Operator holding items and picking other items

Operator holding items and picking other items

tushar_hazare
Advocate Advocate
14 Views
4 Replies
Message 1 of 5

Operator holding items and picking other items

tushar_hazare
Advocate
Advocate

[ FlexSim 24.1.1 ]

Hello All,

In this model i used multiple operators to transfer the items but after some time operator not unloading items and its holding that part and moving to next task.

I want to do that first operator complete that task and move to next task.

PFA model operator movement.fsm

Thank you in advance

0 Likes
Accepted solutions (1)
15 Views
4 Replies
Replies (4)
Message 2 of 5

moehlmann_fe
Observer
Observer
Accepted solution

When a pallet moves past the exit transfer, the transport task generated for that pallet is aborted by the default behaviour. This brings two issues with it:

- The preempting task sequence only has a single task in it, resulting in an error because the trigger code assumes that the operator will only receive transport task sequences with five tasks. So we need to check for the number of tasks in the task sequence.

- We don't want to abort the task sequence if the box was already taken from the pallet. Thus, when a task sequence with a single task is received (the abort TS) and the operator is currently holding an item, we change the preempt value of the TS so the transport task is not aborted.

- Additionally, you added multiple exit transfers, yet the trigger code always assumes that the pickup happens at the first one. Use the information about the pick location from the first travel or load task to send the operator to the correct location.

if(taskSequence.tasks.length == 5)
{     Object pallet = taskSequence.tasks[2].involved1;     taskSequence.tasks[2].involved1 = pallet.first;     taskSequence.tasks[5].involved1 = pallet.first;     taskSequence.addTask(TASKTYPE_PICKOFFSET, pallet, taskSequence.tasks[1].involved1, 1, 1, 0);     taskSequence.tasks[6].rank = 2; } else {     if(current.subnodes.length > 0)     {         // Ignore abort task         taskSequence.preempt = 0;     } }

Just to say it again. This code is tailored to exact situation in the model. If you make alterations or add for example a time table or other tasks to the operators, the logic will break and need to be adjusted.

0 Likes
Message 3 of 5

tushar_hazare
Advocate
Advocate

In this code (taskSequence.tasks.length == 5) 5 means number of queues, right?


0 Likes
Message 4 of 5

moehlmann_fe
Observer
Observer
No, it's the number of tasks in the default transport task sequence generated by fixed resources when the "Use Transport" option is active.
0 Likes
Message 5 of 5

tushar_hazare
Advocate
Advocate
Ohh Got it. Thank you so much for your quick support
0 Likes