Requesting support: Robot stopping while unloading item with different values from conveyor

Requesting support: Robot stopping while unloading item with different values from conveyor

kwaghchoure
Contributor Contributor
1,054 Views
19 Replies
Message 1 of 20

Requesting support: Robot stopping while unloading item with different values from conveyor

kwaghchoure
Contributor
Contributor

Hello Flexsim, I am requesting support to see why my robot is stopping. Its unloading parts from conveyor into two separate pallets in different queue. However whenever item with NOK =2 value comes on conveyor it stops.

 

Could someone assist me. I am new and been stuck on this logic for 2 weeks now.

 

Thank you

Kunal 

0 Likes
1,055 Views
19 Replies
Replies (19)
Message 2 of 20

kwaghchoure
Contributor
Contributor

Hello Flexsim, need support.

 

1. How do I tell robot1 to load queue3 when queue pallet is full. Its getting stuck at push to list

2. Operator 1 is not grabbing full pallet that is ready for from Queue.

 

Can someone please look at my process flow and help

 

Regards,

Kunal

0 Likes
Message 3 of 20

FelixMoehlmann
Mentor
Mentor

I have rebuild the Process Flow logic to how I would design it. There are two loops. On the right, each token represents one queue. They first have the operator bring an empty pallet to the queue and then make it available on the list. The partition (NOK == 1 or NOK == 2) is determined by a label on the queue. This allows to for all queue tokens to share the same flow. The robot pulls a pallet with the partition depending on the NOK label on the item. The pallet is not removed from the list at that moment. After moving the item to it, the "robot token" checks if the pallet is now full. If that is the case the token pulls the pallet again, this time removing it from the list. This in turn makes the "queue token" that pushed the pallet to the list continue. It can then make the operator move away the full pallet and then loop back to the start.

Why build the logic this way? Apart from the Process Flow being smaller, simpler and (in my opinion) more elegant, this approach means the logic can be scaled to any number of queues very easily.

0 Likes
Message 4 of 20

kwaghchoure
Contributor
Contributor

Thank you Moehlmann, I loved the optimized flow. Thanks for introducing me to new concept concept of partition and I am trying to learn online about it now

1. I applied this concept on bigger model and Robot got stuck while picking part from conveyor. Could you please let me know why it got stuck?

2. With this partition thing how does the operator know that he has to place NOK full pallet in NOK queue and OK pallet in OK queue.

 

Any other suggestion on my process flow logic in other areas

 

Regards,

Kunal

 
0 Likes
Message 5 of 20

FelixMoehlmann
Mentor
Mentor

The queues have a label "NOK" in my model that denotes what type of items their pallet should receive. This label is missing in your model, so the "Queue Token" can't push the pallet to the correct partition and the "Robot Token" can't find anything to pull.

You can also use this label in the "Object By Case" option in the unload activity when removing the full pallet to choose a different destination queue depending on the type of queue the pallet comes from.

Part of your Process Flow ("Release At Once" Source and following activities) doesn't seem to serve any purpose currently. It does cause an error though, because it attempts to resume an item that has already been picked up by the robot, due to its 0s move and load time. I removed that section in the attached model.

 

0 Likes
Message 6 of 20

kwaghchoure
Contributor
Contributor

Thank you moehlmann_fe, this is smart. I have some follow-up questions. On pallet load operator in tigger event, what is the purpose of writing this quantity [ Object current = param(1); treenode activity = param(2); int rowNumber = param(3); int repeatCount = param(4); treenode processFlow = ownerobject(activity); return /**/Group("LoadQueues").length/**direct*/; ].

 

I see you specified token.Queue.NOK, how does it gets assigned to middle queue only and not other queues

 

Robot 3 stops after loading only the first three parts onto the conveyor, but it should load 12. Did I connect the loopback correctly?

 

The operator unloads the full pallet, but how does he know when the pallet is actually full and ready to be unloaded? I want to understand this so I can use this logic to tell same operator that robot3 pallet is empty and place it back to Empty casette queue for robot2

 

Regards,

Kunal

 

0 Likes
Message 7 of 20

FelixMoehlmann
Mentor
Mentor

"Group("LoadQueues").length" returns the number of objects in the respective group. I use this because I want to create as many tokens as there are queues in the group. I then assign one of the queues to each token as a label. The rest of the code is just the default header of the code field.

All queues have the NOK label. What's important is the value of that label because that gets matched with the NOK label on the item (NOK == 1 -> failed inspection, NOK == 2 -> part is ok). What these values actually are doesn't matter, only that they match what gets assigned to the items.

The operator moving the full pallet back is triggered by the pallet being pulled and removed from the list. This happens after the "Pallet Full?" Decide activity in the Robot 1 flow.

I can't open the model you uploaded. It seems to be corrupted somehow?

0 Likes
Message 8 of 20

kwaghchoure
Contributor
Contributor

Hello moehlmann, this information is super helpful and detailed Thanks! I will try to apply this on my operator funload.

 

Model is working without problem but I see this errors after creating a zone activity for robot 3 to stop when conveyor is full: time: 2045.022775 exception: Error: A token is leaving (possibly by proxy) without entering zone "Robot 3 load/Zone1 in process flow "furnace arrival". How do I troubleshoot it.

 

I am testing this logic for Robot4 to load parts from overflow buffer pallet to conveyor WHEN black inspection table is empty. (Robot4 : Test Process flow). My model stops immediately because my decide location is not correct. Could you please let me know the correct location for my decide activity. Is their a way to simplify this logic that I have build?

 

Regards,

Kunal

 

 

0 Likes
Message 9 of 20

kwaghchoure
Contributor
Contributor

Hello Moehlamnn_fe, can I have support on this blocker please 

0 Likes
Message 10 of 20

FelixMoehlmann
Mentor
Mentor

There is no "Enter Zone" activity in the flow of Robot3. So you get an error stating that a token that is not inside the zone is leaving it. This is the default setting on Exit Zone activities. You can also set it to ignore exits of non-member tokens. I don't see why you need a zone there, though. The Wait for Event activities (two of which currently listen to the same station) already make sure that the entry point is free before the token can move more items.

I have merged the inspection and robot 4 logic into one flow. It seemed a bit simpler to build the logic from the item's viewpoint (tokens represent items and choose where to move it to).

0 Likes
Message 11 of 20

kwaghchoure
Contributor
Contributor

Thank you for helping me to understand the Enter Zone logic error. 

 

On Assign label "Check Duration / Acquire Priority", what is the purpose of check duration = 10 and priority = 10. I noted that in decrease priority value = 0, this value 10 has any specific meaning in priority or we can chose any other value as well.

 

Robot4 logic looks AMAZING, took me some time to understand it, neat and simple. The robot4 has another role to load conveyor "EntryTransfer20" by pulling a part from overflow buffer when inspection table is empty. To integrate this logic should I create a list when parts is loaded to overflow buffer and add decision to pull from list using decide when vision station is empty? Could you provide suggestion on integrating this logic?

 

To make operator 4 walk to path I created, should I connect pallet jack to control point or operator to control point?

 

 

 

 

 

0 Likes
Message 12 of 20

FelixMoehlmann
Mentor
Mentor

"CheckDuration" is the time it takes for the inspection. I write this to a label so both split tokens are guaranteed to use the same value. To change the value you only need to change it in the Assign Labels activity instead of the Delay and the Max Wait Time of the Acquire activity.

The priority value of 10 does not have any meaning other than being larger than the value after the decrease. You could use any other pair of non-equal numbers. The priority is used so that items on the inspection table are moved before those in the buffer. Since you stated that the buffered items should only be moved if the table is empty.

Robot 4 is already loading buffered items when there is space on the conveyor and the inspection table is empty. The token loops back to the left part of the flow after moving the item to a buffer.

The Task Executer that executes the travel task needs to be connected to the network. That would be the operator.

0 Likes
Message 13 of 20

kwaghchoure
Contributor
Contributor

Hello moehlmann, thanks for walking me through the labels and robot4 logic. I was able to play with it and get better understanding now.

 

I tried connecting task executor "operator 4" using A and S both connection but for some reason it doesn't follow the path. Is it because I joined pallet to operator to make it look like one object in process flow and 3D is not recognizing the process flow?

 

Kunal

0 Likes
Message 14 of 20

FelixMoehlmann
Mentor
Mentor

What you load into the operator shouldn't matter. Can you upload your model with the paths?

0 Likes
Message 15 of 20

kwaghchoure
Contributor
Contributor

Hello Hello moehlmann, I have uploaded the model.

 

I am facing same challenge with both the operator, "funload Operator and operator 4".

 

Could you also help me to understand some visual aspects. Robot 6 after grabbing parts turn backward and hold parts. Any particular reason why it turns backward 

 

Robot 7: I have added change visual to change rotation of object by 90 degree in process flow. Robot 6 grabs item from STA18, in air turn it in air by 90% and place on STA 19. Then grabs from STA19 and place it on STA20 (NO change in rotation. In current model object automatically goes back to its same orientation after robot places it on STA19. Source of robot 7 is also causing an error. 

 

Kunal 

 

 

0 Likes
Message 16 of 20

FelixMoehlmann
Mentor
Mentor

The operator itself must be connected to a control point as "AGV Traveler". It will be positioned at that point on every reset. All objects the operator is supposed to travel to must be connected to a control as a "Location".

Robot6 is turning weirdly because you are telling it to load each item three times, with each of the decision points as load stations. Because the items are not actually on the conveyor anymore for the second and third task, the load offsets are wrong and lead to the weird movement. Just load each item once and leave the "Station" field of the Load activity at the default "Item Container" option. There are very few reasons why one would ever need to change that setting.

The initial orientation of an item on a conveyor is controlled by the Entry Orientation setting on the Entry Transfer. This overrides any previous rotation changes. Also, you are currently removing the item from the conveyor/station before the process time of the station has elapsed, leading to the "processeventlist" error. Have the station stop the item and set its processing time to 0 to fix.

0 Likes
Message 17 of 20

kwaghchoure
Contributor
Contributor

Hello Moehlmann, thanks for the explanation, I was only connecting the operator and not the pallet jack which is why my flow didn't work which makes sense.  

 

On robot 7 I see how it changed the orientation,  Robot 7 also picks same item it placed on STA 19 in same orientation and place in same orientation on STA20 , but in my mode its changing the orientation to horizontal again which should not happen, any particular reason why this would happen?

 

anodeFG load operator, unloads pallet at robot5 queues, somehow pallet also appears in Robot4 queue magically at same time. I am using two different label for each pallet type for different robots queue. Could you please look into my process flow and let me know why this would happen.

 

Robot5 is getting same error we saw earlier after item is placed in pallet but it continues to place item in pallet [ time: 612.069803 exception: Exception caught in Executive::processeventinlist() ]. I think because of this anodeFG load operator is not getting input to pick FULL pallet from Robot5 queue and place in Queue54 and also robot is not understanding to use 2nd pallet when 1st pallet is full. 

 

Also, how do we hide AGV path in presentation mode? What setting do I have to look at? 

 

Kunal 

0 Likes
Message 18 of 20

FelixMoehlmann
Mentor
Mentor

Item Orientation:

As I wrote previously, the orientation of an item that gets placed on a conveyor depends on the setting on the Entry Transfer.

Screenshot 2026-06-19 095450.png

Appearing tote:

There are two flows that use the anodeFG load operator. Both have independent resources, resulting in two tokens utilizing the operator at the same time. Both flows should share a resource.

Robot error message:

As before, the item is removed from the station before its process time has elapsed. Either set that to 0 or make the Event-Triggered Source listen to the On Process Finish event instead of On Arrival.

Robot tote swap:

The bottom Pull from List activity in the Robot5 flow is linked to the wrong list, so the token can't pull the tote. There were also some minor issues with the logic to move the full tote away (Station in first travel activity must point to the queue, since the tote is not linked to the AGV network, Queue54 was not connected to the network yet)

Path visibility:

Visibility of CPs, Control Areas and paths can be set on the "General" tab of the AGV Network properties (in toolbox).

0 Likes
Message 19 of 20

kwaghchoure
Contributor
Contributor

Hello Moehlmann, appreciate conveyor loading explanation and flexsim error resolution.

 

Operator: anodeFG also load robot 8 with full pallet from Robot7 and new empty pallet from queue ( Robot 8 loads item from black tote to blue pallet) . Operator is following process logic for loop1 and after unloading full pallet from Robot8, he doesn't load the next available full pallet from Robot7 and blue empty pallet. In the process flow list, its showing pallet available in list for pickup and model doesn't stop or getting error. Can you please look into this. 

 

Secondly I have added 3D step file for conveyor to Robot1, for some reason the 2nd conveyor shows no item after 1000 seconds. Do you think the 3D step file is causing this issue?

 

Kunal

 

 

0 Likes
Message 20 of 20

FelixMoehlmann
Mentor
Mentor

The tokens are waiting in the Push To List activities for the pushed values to be pulled (which in the case of the full pallet will never happen). Change the activities to release the token after a maximum wait time but keep the pushed value on the list.

Screenshot 2026-06-23 083655.png

At Robot1, one of the Decision Points at the end of the conveyor is too far forward. The items are stopped at the end of the conveyor before the item center has reached the DP so the Wait for Event activity in Process Flow is never triggered. Either move the DP back a bit or (more robust solution) set the DPs to be triggered when the leading edge of the item reaches them rather than the center.

0 Likes