question

Michael Y avatar image
0 Likes"
Michael Y asked Jacob W2 commented

Release varying quantities of cases to robotic palletizer

I'm modeling a row palletizing system which is fed cases from an upstream production line. To accurately simulate the timing of our proposed system, I need to release varying quantities of cases from the upstream conveyor system for the robot to pick. The pallet pattern in this case is 15 cases per layer which a robot will form by picking two rows of 6 cases and one row of 3 cases. Cases convey narrow side leading from the upstream conveyor and are transferred 90 degrees to a conveyor which the robot will pick from. I need to control the infeed conveyor such that only the required number of cases for the next row to be palletized is transferred to the 'pick' conveyor. I've tried searching the forum and a few different methods myself, but haven't figured out how to release based on the quantity to be picked yet.


Note: trying to upload .fsm or .zip file and keep getting "Something went wrong. Please try again."

FlexSim 21.1.5
conveyorrobotpalletizing
· 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.

Jacob W2 avatar image Jacob W2 ♦ commented ·

Hi @Michael Y, was Felix Möhlmann's answer helpful? If so, please click the "Accept" button at the bottom of their answer. Or if you still have questions, add a comment and we'll continue the conversation.

If we haven't heard back from you within 3 business days we'll auto-accept an answer, but you can always unaccept and comment back to reopen your question.

0 Likes 0 ·

1 Answer

Felix Möhlmann avatar image
0 Likes"
Felix Möhlmann answered

I built something like this using a combination of labels and trigger functions on the conveyor and a decision some time ago.

1660288030522.png

The decision point is responsible for stopping further items if the next target batch is reached until it receives a message from the exit conveyor which resumes any waiting item. The decision point has the following labels and trigger logic:

1660288120638.png

1660288237845.png

The "QtySequence" and "SequencePos" determine how many items should be let through. Each time an item continues past the decision the "CurCount" label is incremented. If it reaches the target number, the SequencePos is increment (1 -> 2 -> 3 -> 1) and the counter is reset. Additionally, the "StopNext" label is set to 1. This has the decision point stop the next item in the arrival trigger (so before the On Continue trigger). The Conveyor.Item reference is also written to label, so the On Message trigger has access to that value and can resume the stopped item once a message is received.

The exit conveyor has the following logic attached:

1660288538645.png

1660288569123.png

The first two labels serve the same purpose as on the decision point. They determine if all items of the current batch have reached the end of the conveyor in the On Item Bump trigger. This then causes the input of the connected queue to be opened, so the items can exit the conveyor. (You can use many different ways of moving the items from the conveyor: push them to a list, create task sequences, implement this logic in a process flow by listening to the item bump event in an event-triggeres source, ...)

When the last item is exiting the conveyor, the On Exit trigger closes the input of the queue again and sends a message to the decision point, letting it know that further items can now continue.

Finally, in this example, the input of the queue is closed in its On Reset trigger, so it starts the model in a closed state.

sequencebatch.gif


1660288030522.png (123.0 KiB)
1660288120638.png (4.0 KiB)
1660288237845.png (72.5 KiB)
1660288538645.png (3.0 KiB)
1660288569123.png (42.0 KiB)
sequencebatch.gif (4.5 MiB)
5 |100000

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