question

Korbinian H avatar image
0 Likes"
Korbinian H asked Korbinian H commented

Send Operator to the longest queue and assign it there till queue is empty

Hello guys,

How can I implement a rule to check for the longest queue, then send the operator there and transport and process the items, until the queue is empty?
After this, the operator should be again assigned to next longest queue.

I have attached a model where workers already carry the items and process them afterwards. I have implemented this behaviour like in the Task Sequence Tutorial 2, but the operators still get randomly assigned.

Thanks in advance.

longestqueue.fsm

FlexSim 17.1.2
task sequencequeue contentoperator assignment
longestqueue.fsm (19.9 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.

Steven Hamoen avatar image
1 Like"
Steven Hamoen answered Korbinian H commented

@Korbinian H I would use process flow for this. Your operators are the tokens and the items are on a list. If your operator looks for items from the same queue. If it can't find one anymore he takes the queue with the highest number, not used by the other operator.

· 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.

Anna Lisa Dierking avatar image
1 Like"
Anna Lisa Dierking answered Korbinian H commented

@Korbinian H

I have an example for you that worked for me without using Process Flow.

I have 2 global variables (arrays), one containing all the processors and one all the operators. Every processor also has a label containing the operator it is associated with ("Operator") [label is empty onReset] and every operator has a label with the processor he is associated with ("Maschine") [label is empty onReset].

Most of the logic used is inside the processors. I used the onEntry trigger to figure out if there is an operator that is supposed to work that machine. If there is no operator associated the processor looks through the array to see if there is any operator available (= label "Maschine" on operator is empty). If there is a free operator, the label "Operator" on the processor refers to the centerobject-port-number that connects that free operator to the processor.

After the last item leaves the processor, the processor sets the operator free (-> label "Operator" on processor and label "Maschine" on operator are empty). The Processor also sends a message to all the other processors to let them know that they can now look for a free operator if there is no operator already associated with the processor.

I hope this is helpful.

beispielmodell-ald-f1714-rev01-12.fsm


· 1
5 |100000

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