question

Óscar Manuel CMN avatar image
0 Likes"
Óscar Manuel CMN asked Regan Blackett edited

An operator doesn´t work

Hi!

The objective of the model is for operators to take an item from a queue and take it to the next machine and then process it. Also, operators have to stay on that workstation (queue+machine) until the queue is empty, only then can they decide whether to go to another queue. Also, the queue they go to has to be the one with the fewest items.


In zone1, I have 3 operators, but only two of them work at the same time. I suppose it will be because a queue can only be acquired by an operator, and I don´t know how to solve this.
Thanks!
FIFO-WHN2-SQ.fsm

19.0.0 Version

FlexSim 19.0.9
process flow
fifo-whn2-sq.fsm (87.1 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

Regan Blackett avatar image
0 Likes"
Regan Blackett answered Regan Blackett edited

I did a sample model that I think handles the rules that you want. It works on a two-list system rather than one which it looks like you were going for.

I have one list for the queues, and another for the items. At the start of the model, the operators will first try to pull the queue with the least number of flowitems, with at least one flowitem in it, and then sorts by the queue with the lowest queue size, and in case there is more than one queue that meets that criteria, I do a second sort on distance to the operator.

Once a queue has been chosen from that list, the operator will only pull flowitems that are in that queue until it is empty. To do this I partitioned the list by queue during the send to port event of the queues. When the queue is empty the queue is pushed back onto its list and the operator searches frot he next available queue.

Shortest queue until empty.fsm


· 5
5 |100000

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

Óscar Manuel CMN avatar image Óscar Manuel CMN commented ·

But, if you have two parallel machines attached to the same queue, you woul still have the same problem, right? The problem is that two operators can access the same queue simultaneously. If an operator removes a queue from the list, it is no longer available so that another operator can collect items from it.



0 Likes 0 ·
Regan Blackett avatar image Regan Blackett ♦ commented ·

@Óscar Manuel CMN

Here's an updated version to accommodate some queues that have multiple processors as potential destinations. I created a Field on the Queues List called "AllowedPullers" that gets a value equal to the number of center ports on the Queue.

Then in the Pull from List to find a Queue, I added a SELECT statement to the query which decrements the AllowedPullers Field. This will keep Queues on the list until all of its puller slots have been consumed. So more than one operator can "use" a queue if there are parallel machines downstream.

I also changed the way queueSize is handled so rather than looking at how many things are phsycially in the queue, I'm looking at the number of items that haven't been pulled from a queue's assigned partition on the item list. With travel time on the operators looking at the phsycial things in the queuse alone wasn't enough.

at time 288 you can see the operator at Queue 1 transition to Queue 2 to help the queue with two parallel processes available.


Shortest queue until empty_3.fsm

0 Likes 0 ·
Óscar Manuel CMN avatar image Óscar Manuel CMN Regan Blackett ♦ commented ·

Thanks!!

Could you clarify a few points for me please?

1. What is the ID tag for?

2. What does trueQueuesize do and what does it expression mean?

getstat(List("ItemList1").as(treenode), "PartitionContent", STAT_CURRENT, value)

3. Are "customode" tabs necessary?

4. I know that in the Condition tab inside "DECIDE" you look if there are more objetcs in the queue but how does the expression you write there work?

getstat(getactivity(processFlow, "List: Items"), "PartitionContent", STAT_CURRENT, current, token.PulledQueue) == 0


0 Likes 0 ·
Óscar Manuel CMN avatar image Óscar Manuel CMN Óscar Manuel CMN commented ·

I implemented your logic in my model but it doesn´t work properly. I will have written something wrong but I cannot find the fault.

Oscar.fsm


0 Likes 0 ·
oscar.fsm (98.3 KiB)
Show more comments