question

Yifei Wang avatar image
1 Like"
Yifei Wang asked Brandon Peterson commented

How to assign each transporter to be in charge of different queues?

Hi,

Please see my model. Based on this model, I would like each transporter to be in charge of multiple queues. For example, I would like the transporter 1 to be in charge of moving all desired objects from racks to queue 1and 2. Transporter 2 is going to be in charge of moving all desired objects from racks to queue 3 and 4. Can someone help me with this? Thanks!

Note: one queue may need multiple kinds of itemtypes. Please refer to the model.

newmodel.fsm

FlexSim 16.1.0
forkliftqueues
newmodel.fsm (28.4 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.

Brandon Peterson avatar image
5 Likes"
Brandon Peterson answered Brandon Peterson commented

Yifei,

On the racks in your model you can use the "Center Port By Case" picklist option in the Use Transport field. In the field "Case Function" enter the word "port". Then you can set the cases 1 and 2 to return the number for the center port connection to transporter 1 and the cases 3 and 4 to return the number for the center port connection to transporter 2. Doing it this way will not be affected by the itemtype of the flowitems.

Hope this helps!

Brandon

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

Yifei Wang avatar image Yifei Wang commented ·

Brandon,

Thank you for your reply. I set up the model in the way you described. However, transporter 1 works does not goes to queue 2 instead it goes to queue 3. Transporter 2 is not moving at all. Do you know why this happens? newmodel.fsm

0 Likes 0 ·
newmodel.fsm (28.9 KiB)
Yifei Wang avatar image Yifei Wang Yifei Wang commented ·

Brandon,

Please see the new attached model. I fixed some code in the previous one. But, I am still not sure why Center Port by Case is not working here.

newmodel.fsm

1 Like 1 ·
newmodel.fsm (28.9 KiB)
Brandon Peterson avatar image Brandon Peterson ♦ Yifei Wang commented ·

Yifei,

Because you are using the option to pull from a list for your send to port field the port value returned to the use transport trigger is 0. This is why it does not work for you.

3 Likes 3 ·
Show more comments
Adrian Haws avatar image
1 Like"
Adrian Haws answered Yifei Wang commented

Hi Yifei,

We were able to find another solution using the Send to Port in rack properties with "Push to Task Sequence List" instead of "Center Port By Case." Then in that list add another Expression Field called "unloadStation." So each of these racks will send the destination of the object to a list. Then in each transporter in the OnResourceAvailable trigger click on "Pull from Task Sequence List" and enter a Query to determine which partitions to pull from. So for Transporter1 it would look like this:

WHERE unloadStation = node("/Queue1", model()) OR unloadStation = node("/Queue2", model())

We ran the model and it seemed to work just fine according to what you described. See attached model and let us know if you have any questions!


1001-newmodel-1.fsm (29.9 KiB)
· 4
5 |100000

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

Yifei Wang avatar image Yifei Wang commented ·

Hi Adrian,

Thanks for your answer. I am glad it works!! I am wondering how to fix my SendToPort on Racks because I would like the transporter to send the items to the shortest queue among the ones it is responsible for.

0 Likes 0 ·
Yifei Wang avatar image Yifei Wang commented ·
0 Likes 0 ·
Adrian Haws avatar image Adrian Haws Yifei Wang commented ·

@Yifei Wang it looks like your model is already doing that in the Query for

ORDER BY queueSize ASC

When you step through your model and look at the entries for FRList1 it shows that each item does get transported to the shortest queue among those available.

Does the updated model do what you want it to?

0 Likes 0 ·
Yifei Wang avatar image Yifei Wang Adrian Haws commented ·

Adrian,

When you look at the model when it runs, the transporter does not always go to the shorter queue.

0 Likes 0 ·
David Besson avatar image
1 Like"
David Besson answered Yifei Wang commented

You could:

  1. for each Queue: add a Dispatcher and connect it with a center port
  2. for each Dispatcher: connect the corresponding Transporters
  3. for each Rack: change the transport field as follow: "centerobject(destination, 1)"

See attached model.

990-newmodel-r1.fsm


990-newmodel-r1.fsm (30.2 KiB)
· 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.

Yifei Wang avatar image Yifei Wang commented ·
995-990-newmodel-r1-autosave.fsm

David,

Thank you for your answer. Your answer works for me. This is a small model I am building right now. Later on, I would like to implement all those codes in a real plant simulation. Things may be more complicated there. I would prefer to have transporters connect to racks. Also, my SendToPort Pull from FRList will not work with your model. Any help will be appreciated. Thanks!

0 Likes 0 ·