question

Shinya O avatar image
0 Likes"
Shinya O asked Shinya O commented

TaskSequences with priorities and assignments

Hi,

I would like some implementation ideas for handling task sequences (TSs) with priorities and assignments.

There are group A and group B of operators. Group A is responsible for transporting from Queue1 to Queue3. Group B is responsible for transporting from Queue 2 to Queue 3.

However, even though all operators in group A are performing TS, if there is one or more items in Queue 1, operators in group B will take over the transportation task of group A. (TSs assigned to group A have higher priority than those assigned to group B.)

I tried implementing it with resources and groups in the attachment model, but can I replace this with using a dispatcher? I've already created a large-scale model using the dispatcher, so if it's possible to do this with the dispatcher, I'd like to do it.

Thanks in advance.

TSsample.fsm

FlexSim 23.0.12
tasksequencepriority
tssample.fsm (55.2 KiB)
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

1 Answer

Felix Möhlmann avatar image
0 Likes"
Felix Möhlmann answered Shinya O commented

Building this logic with a dispatcher is possible but I wouldn't recommend it, since you'd have to work around some default behaviour of the dispatcher.

What I'd do is to push the task sequences onto a list and handle the dispatching in a Process Flow. That way you can keep the port-connection logic from your large model intact and only have to replace the Send to Port option on the objects.

In the attached example, an array-label on the queues contains the groups that are allowed to transport the items from the respective queue. The order in which they appear in the array determines the priority when choosing an operator.

tssample_fm.fsm


tssample-fm.fsm (53.3 KiB)
· 3
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Shinya O avatar image Shinya O commented ·

Thank you. The task sequence list worked fine.

I forgot to include the condition in the first question, but in large models multiple task executors may work together. I think it would be difficult to achieve this with task sequence lists. Do you have any ideas?

I'm also using dispatchers in a large model, but there is no center port connection between these and fixed resources. The TS is being sent to the dispatchers from CreateTS in the process flow. I've edited your model a bit to get it closer to this situation. A Groups label is assigned to the task sequence. Modified the rankOfGroup field in the Operators list accordingly.tssample-fm-v2.fsm

0 Likes 0 ·
tssample-fm-v2.fsm (62.2 KiB)
Felix Möhlmann avatar image Felix Möhlmann Shinya O commented ·

If the task sequence is generated in Process Flow anyway, then I don't see a reason to even use a TS list. Which would essentially bring us back to the model you attached to the question. With the only addition being the "Groups" label and list expression that control which operator can be pulled.

You can then also simply pull more than one operator and build a coordinated task sequence in Process Flow for tasks that involve multiple workers.

tssample-fm-v3.fsm

Instead of groups you could also still use the dispatchers to identify valid workers. Assign the dispatcher you would send the task sequence to on a token label and write a list expression that checks if a given operator is an 'outObject' of that dispatcher. Filter by that expression so only operators connected to that dispatcher can be pulled.

0 Likes 0 ·
tssample-fm-v3.fsm (56.2 KiB)
Shinya O avatar image Shinya O Felix Möhlmann commented ·

Thank you. I realized that I don't need a task sequence list. I also found that using a task executor list was more effective than a dispatcher in this case.

0 Likes 0 ·