In my model, there are Processors and Queues. Queues are for putting both unfinished product and finished good. There are 2 CPs at each Queues and Processors, as AGV can load and unload directly to Queues and Processors. But I need AGV always unload box to Processors first, if Processors are all unavailable, then AGV unload at Queues.
My problem is how can I give these moving requirements(boxes) their priority. These priorities well be used for selecting one AGV task. From AGVs point of view, there are load tasks and unload tasks, loading requirements has priority over loading requirements; unloading at Processor has priority over Queues. Furthermore, how do AGV select one task in process flow? If I add some fields into List, how can I determine the task AGV is going to execute.