flexsim_agv_route
Dispatch an AGV route over multiple stops, with optional load/unload mission, to simulate material transport in FlexSim. Runs the model and confirms delivery via stats.
Instructions
Dispatch one AGV route: single TS with one TRAVEL per stop, or full mission with load/unload (window only). # AGV-mision
Receta mision completa (AGV-mision): 1) flexsim_add_agv_loop crea el loop
(CPs + StraightPath piloto sin conectar); 2) flexsim_agv_link_path /
flexsim_agv_connect une tramos y CPs con objectconnect verificado por
_flow_path (BFS de outObjects); 3) esta tool con solo stops mueve el
transporter en vacio por la red (un TRAVEL por stop, UNA sola TS); 4) con
load_item+load_from+unload_to anade en LA MISMA TS: TRAVEL stops... +
LOAD(item, load_from) + TRAVEL unload_to + UNLOAD(item, unload_to) con un
solo dispatch; 5) con confirm=true + run_after=true corre hasta run_to_time
y confirma por stats (delivered = stats.input de unload_to > before).
API (fuente, la misma ya usada en flexsim_run_transport y _dispatch_trip,
sin inventar task types: solo TRAVEL/LOAD/UNLOAD): createemptytasksequence
(dispatcher, priority, preempting) (Commands.xml:6854-6858, ej. XML:6858) +
inserttask(ts, type, involved1, involved2) (Commands.xml:7951-7955, ej.
XML:7955 "inserttask(ts, TASKTYPE_TRAVEL, current, NULL);") +
dispatchtasksequence(ts) (Commands.xml:7094-7099, ej. XML:7099);
TASKTYPE_TRAVEL=8 a objeto (FlexsimDefs.h:215; XML:7955/:6498),
TASKTYPE_LOAD (XML:7751), TASKTYPE_UNLOAD solo en headers locales
(FlexsimDefs.h:210 / allobjects.h:290), PREEMPT_NOT en FlexsimDefs.h:262.
Item por las 3 vias de flexsim_run_transport (tal cual, load_from/item,
scan de hijos por nombre); stats con `Object k = Model.find(..);
return k.stats.input.value;` (AGENTE_FLEXSIM.md sec 7); corrida con el
patron de flexsim_run_to_time (Run Speed slider
node("MAIN:/project/exec/step").value = 1000 + stoptime(t) +
applicationcommand("run") + espera getrunstate()==0 + return Model.time,
sin resetmodel porque borraria la TS en curso).
Args:
transporter: TaskExecuter/AGV que ejecuta (dueno de la TS).
stops: 2-6 objetos/ControlPoints en orden de visita.
priority: prioridad de la TS (default 1).
run_after: si True, corre el modelo hasta run_to_time tras despachar.
run_to_time: segundos simulados para la corrida (default 120).
load_item: flowitem a mover (None = ruta solo-stops; con mision los
tres juntos son obligatorios).
load_from: objeto/estacion donde se carga (involved2 del LOAD).
unload_to: objeto/estacion donde se descarga (TRAVEL destino +
involved2 del UNLOAD; se leen sus stats).
confirm: si True (y run_after=true) confirma delivered por stats.
confirm_timeout_s: presupuesto wall-clock para la espera getrunstate
cuando confirm=true (default 600; el target simulado sigue siendo
run_to_time).
Returns JSON {dispatched, transporter, stops, priority, flexsim_result,
console, delivery} (+ model_time y note="ruta ejecutada, verificar stats"
con run_after=true). delivery es null en ruta solo-stops; en mision es
{item, item_path, load_from, unload_to, confirm, delivered (bool|null),
input_before, input_after}.
Limites (AGV-mision): TRAVEL a objeto (inserttask(ts, TASKTYPE_TRAVEL,
destino, NULL), XML:7955) es el que usa la red AGV; TRAVELTOLOC=9 es a
coordenadas (no red) y FREETRAVEL/TRAVELTO no existen como TASKTYPE: no se
usan. Semantica LOAD/UNLOAD (involved1=item, involved2=estacion) no esta en
Commands.xml (remite al QuickReference): si FlexSim la rechaza se devuelve
su error real con dispatched:false. dispatched=true es TS aceptada, no ruta
completada ni entrega. delivered=true es input de unload_to incrementado
tras correr (evidencia, no trazabilidad del item); sin corrida (run_after
false) o sin confirm no se afirma nada (delivered null). Mision parcial
(alguno de load_item/load_from/unload_to sin los otros dos) es error sin
despacho.
Ejemplo multi-waypoint 3 CPs + mision con confirm (sintaxis exacta # T5):
{"params": {"transporter": "AGV1", "stops": ["CP1", "CP2", "CP3"],
"load_item": "Box1", "load_from": "Queue1", "unload_to": "Sink1",
"confirm": true, "run_after": true, "run_to_time": 660}}
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |