question

Raashid Mohammed avatar image
0 Likes"
Raashid Mohammed asked Adrian Haws edited

Only Two Operators loading and unloading

In my model I'm creating boxes in two separate queues (a1 and b1). Then I'm acquiring operators from a group, who load from the beginning queue and unload to either queue a11 or b11. As the tokens loop through, a label called "pick" is incremented. Once the value for "pick" is the same as the number of boxes assigned I'm releasing the operator out of the loop.

The problem is that I want only two Operators loading and unloading at each pair of queues. There are a total of six operators. I want the other two operators to wait if there are already two operators working on each pair of queues. What's currently happening is that one of the pairs of queues has four operators loading and unloading, and all six operators are being utilized.

What I'm trying to model is that I have an empty trailer in a dock with flex conveyor. Only two operators at a time can load from flex conveyor and unload on trailer. Each trailer has a certain number of boxes

Choose One
process flowresourcescheduletask sequencespick
model5.fsm (25.7 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.

Adrian Haws avatar image
2 Likes"
Adrian Haws answered Raashid Mohammed commented

Raashid,

You mentioned a few specific things that need to happen in your model:

  • Up to two operators work on each pair of queues
  • The number of total operators available varies
  • If there are more boxes to unload, more operators are needed

I created an example model to accomplish this, so I'll explain how it works:

  1. I added a couple MTBFMTTR tables to demonstrate operators going on and off shift. Each operator has a label called "opAvail" that is originally set to 1. When an operator goes off then back on shift, that value is changed to 0 and 1 in the breakdown table (with custom code).
  2. Boxes are initially created with a schedule source, assigned to a queue, then pushed to an item list. An event-triggered source then pulls from that list and is directed in the flow depending on which queue the item was created in.
  3. The maximum amount of operators at each pair of queues is defined by the max content of zones.
  4. The operators in use are determined by a series of lists. The token first tries to pull from a smaller list for that pair of queues. If there aren't any operators available there yet, it will pull from the global Task Executer list called "Operators", which has an initial content of the group of operators and acts like a "Resource". Once the task sequence is done, a "Decide" will see if the operator is still available (by looking at the label "opAvail". If it is, the operator will be pushed onto the specific list for the pair of queues. If not, the operator will be pushed back onto the "Operators" list. The way the lists are set up ensures that the operators aren't constantly switching between different queues.

There are several small details that are necessary to make to model logic perform correctly (mostly just in the Process Flow) but overall it's fairly simple. Take a look at the model and let me know if you need clarification on anything. It shouldn't be too difficult to expand this model to fit your needs.


· 12
5 |100000

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

Raashid Mohammed avatar image Raashid Mohammed commented ·

@Adrian Haws

Thank you for the model Adrian. I try to add time table instead of MTTR/MTBF tables

Looks like the operators don't pull for Conv1 ( list1) during Timetable 1

they finish loading both conv2 and conv3 but they don't load from conv1 until next shift starts

I might be doing something wrong

Please help 1887-available-operators-6-1.fsm

See attached model

0 Likes 0 ·
Adrian Haws avatar image Adrian Haws Raashid Mohammed commented ·

@Raashid Mohammed This is because the operators don't get pushed back onto the "Operators" list until the label "opAvail" is 0 (when they go off shift). We can add a "Decide" activity before pushing the operator back onto the local list (List1, for example) to see if the content of the queue is 0. If it is 0, the operator will be pushed back onto "Operators" and keep working on a different queue. I've set up this logic for you in the attached model.

2 Likes 2 ·
Raashid Mohammed avatar image Raashid Mohammed Adrian Haws commented ·

Thank You so Much

0 Likes 0 ·
Show more comments
Adrian Haws avatar image
1 Like"
Adrian Haws answered Jeff Nordgren edited

Hi Raashid,

There are multiple ways to accomplish what you're describing. I chose to make three different resources connected to separate groups of two operators each. Then I placed a "Decide" activity after the "Assign Labels" to go to a different "Acquire" activity based on the Queue assigned to the label. Let me know if I misunderstood what you're trying to do.

See attached updated model.


1851-model5-1.fsm (27.7 KiB)
· 7
5 |100000

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

Raashid Mohammed avatar image Raashid Mohammed commented ·

Hi Adrian,

I only want one resource with six operators. My main focus is that the trailer in a dock can only have up to two operators loading. I want operators to be acquired based on the availability of work.

Another example is if I have two docks and three operators. I want one trailer to be loaded by two operators max and the other with one operator. Once the trailer with two operators is complete I want one of the operators to go and help the operator loading at the other trailer.

Let me know if it made sense :)

Thank you,

Raashid

0 Likes 0 ·
Adrian Haws avatar image Adrian Haws Raashid Mohammed commented ·

@Raashid Mohammed I'm not sure that I completely understand. Correct me if I'm wrong, but it sounds like there are two operators that are never utilized in loading and unloading since up to two operators work on each trailer (and I assume you won't be switching operators halfway through). So why is it important to have only one group of operators? Also, will you be using three operators or six operators total?

0 Likes 0 ·
Raashid Mohammed avatar image Raashid Mohammed Adrian Haws commented ·

The resource pool will be a input source. In the end I want the end user to choose how many operators they have in the shift and see how are they utilized.

Like I mentioned above, each dock can accept up to two operators. For example I have two docks with trailers. If the end user has only two resources then the model should send one resource per dock. But if the end user decides to have three operators, then one dock will be loaded by up to two operators and the other by one operator. If that's the case, then once the dock with two operators is complete one of the operators will go and help the dock which has one operator loading.

All the operators act like floaters helping each other out if they are available, but there can be only two operators per dock working at a time. In this model I have six operators for two docks as just an example. In the actual simulation model there are twenty docks and variable resources (defined by the end user based on their availability for the shift). Each of these docks can be loaded with boxes by one to two operators, depending on how many resources we have.

I hope this helped. Thanks.

0 Likes 0 ·
Show more comments
Raashid Mohammed avatar image Raashid Mohammed commented ·

Thanks Adrian

Just one thing. if not already known

All tokens will come with count value which determines how many boxes are loaded on to the trailer

Each token with count value is a trailer

let me know if you have any questions

Thanks for all the help

Raashid

0 Likes 0 ·
Adrian Haws avatar image Adrian Haws Raashid Mohammed commented ·

So it sounds like you have a statistical distribution of how many boxes are created in each queue?

I'm getting close, and should be able to give you something tomorrow.

0 Likes 0 ·
Raashid Mohammed avatar image Raashid Mohammed Adrian Haws commented ·

@Adrian Haws

The count value is already defined from the imported table from excel. I am not using any distribution in my original model

In Example model I have distribution for variety

0 Likes 0 ·