Associate Robots to a specific queue

Associate Robots to a specific queue

jose_a10
Not applicable
272 Views
10 Replies
Message 1 of 11

Associate Robots to a specific queue

jose_a10
Not applicable

[ FlexSim 21.0.3 ]

Hello,

I'm doing a crossdocking system and I have a question about how to associate robots to a specific queue.


I have 6 queues, each one represents an area destinated to the items needed to fullfill a specific dispatch order. Then, I have 2 robots that grab the items of a queue and send them to a combiner, combining those items with a pallet. So, I wnat that robot1 only grab items from Queue1,2,3 and robot2 of Queue3,4,5.

How can I do this?


If requested I can post my model.

@Eric M

0 Likes
Accepted solutions (1)
273 Views
10 Replies
Replies (10)
Message 2 of 11

eric_m3
Not applicable
Accepted solution

Hi @Jose A10, I would add some kind of reference on the Queues to the robot you want to use. This could be a label or an s-connection or something. Then when the items are ready to be transported, you can create a task sequence for the robot and reference it based on the label / connection. The key here is just using some kind of logic that will allow you to reference the robot based on which queue the items are in when creating a task sequence.

In the attached example, I used an s-connection from the queues to the robots. I created a label referencing the item's specific queue in the Source activity. Then, in the Create Task Sequence activity, I use the code token.Queue.centerObjects[1] to assign the task sequence to the desired robot. Let me know if you have any questions.

robot based on queue.fsm

0 Likes
Message 3 of 11

jose_a10
Not applicable

I understood the example you did, but I cant figure out how to insert that logic in my model. As you know, in the process flow in my model, I use the robots as a resource, to transport the items to the combiner. I have 3 combiners, 2 robots, so I dont know how to associate them. Even If I add another robot, I'm having difficulties creating the logic with process flow taking into account the logic that I've already have.

0 Likes
Message 4 of 11

moehlmann_fe
Advocate
Advocate

You could send the token to a specific "Acquire" activity based on the queue the item has to be picked up from. Each of these activities can then only acquire a fitting robot by querying for a specific label value.

RobotByQueue_Query.fsm


Message 5 of 11

jose_a10
Not applicable

The logic of my model sets a dispatch order to a specific queue. Then the items with the same label value as the required goes to that queue. When the order is fullfilled there are different items with different label values. I've attached my model, so you can understand what I am trying to do and perhaps give me a hand with this.


As you can see in the model attached, I have 6 UA (queues), and 2 robots to transport the items of an order to a combiner where they are combined with a pallet. I want to specify that the robot1 only works with UA1,2,3 and Robot2 with UA4,5,6.

Another question came to my mind. Should I add another combiner and use one robot for 2 combiners?

Appreciate the answer.

Draft_Crossdock.fsm


0 Likes
Message 6 of 11

eric_m3
Not applicable

I would follow Felix's suggestion by adding a label to each of the queues that assigns a robot number (1 or 2). Then assign a label to the robot that's the same value as the label on the queues you want to attached to that robot. In the Acquire Robot activity, you can use the query below to acquire the robot where the two labels match:

WHERE LabelOnRobot = puller.Queue.LabelOnQueue

You could add a combiner, or you could have both robots share the one in the middle doing something similar to what was done above. If all combiners are never used at once, you might even be able to get rid of the third one.

Message 7 of 11

jose_a10
Not applicable

As you said, I created 3 new labels for the queues:

UA1 and UA2 - L1

UA3 and UA4 - L2

UA5 and UA6 - L3

Then I added a new robot (Robot3), this way I can have 1 robot per 2 queues(UA), and one robot per combiner. Then I inserted the query in the acquire robot activity, but then the system stops when the items reach the UA's. The token is stuck in the acquire robots activity.

Please, take a look at the model I attched in this comment so I can understand why it doesnt work.

Draft_Crossdock.fsm

0 Likes
Message 8 of 11

moehlmann_fe
Advocate
Advocate

Hi @Jose A10,

The name of the label should be the same on each object of one categery. It is the value of the value that will be used to distinguish between them. So for example, all Queues get a label called "Number". For the UA1 and UA2 its value is 1 for UA3 and UA4 2 and for UA5 and UA6 it is 3.

In the query, you ought to replace "LabelOnRobot" and "LabelOnQueue" with the actual names of the labels you assigned. In this version of your model I just used "Number" as the name for the labels on the queues, robots and combiner.

You should also only acquire a combiner after you know which queue the items are coming from, so you can use the same logic to acquire the correct combiner.

draft-crossdock_1.fsm


Message 9 of 11

jose_a10
Not applicable

So for the combiners the query is the same? I will add an activity Acquire: Combiner before the activity Assign Labels: Pallet, and then in the query i will insert the query, right?

WHERE Numberpuller.Queue.Number
0 Likes
Message 10 of 11

moehlmann_fe
Advocate
Advocate
Yes, you acquire the combiner after you assign the "Queue" label to the token and before assigning the pallet (because that depends on which combiner you acquire). The label on the combiner is also called "Number" so the query is correct.
Message 11 of 11

jose_a10
Not applicable
Ok! Thank you both, it was a great help!!
0 Likes