question

Jacob G3 avatar image
0 Likes"
Jacob G3 asked Jason Lightfoot commented

Simulating stacking/destacking pallets on conveyor

Im trying to simulate a pallet stacker / destacker on a conveyor line. Full stacks comes in and pallets are released one at a time to supply two infeed stations.


1664038709927.png


Similar to this https://www.youtube.com/watch?v=aLvsvYLPuPI&ab_channel=MecaluxGroup


I want to avoid handing over the stack to a splitter and handle it on the conveyor itself. I think I can make it work using process flow if I just can figure out how to split the item from the stack. My question:

1. How do reference the item on a conveyor station

2. How do I seperate 1 item from a combined item

Once splice I can release the 1 item and adjust the postion.



FlexSim 22.2.1
process flowsplitting
1664038709927.png (598.0 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.

Jason Lightfoot avatar image Jason Lightfoot ♦♦ commented ·

Hi @Jacob G3, was Joerg Vogel'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

Joerg Vogel avatar image
0 Likes"
Joerg Vogel answered

You NEED an Entry Transfer first! You insert items into a conveyor system.

I assume you want to transfer bottom most item first. This means your container item holding all stacked pallets releases all of them and then transfers to one side. This results in the behavior as I described it. You releases all stacked items to a queue and this queue sends items one by one to one side Of your conveyor.

The stacked items are at arriving all subnodes of the container item. You move each of them by addressing each as first of the container item until the container gets empty. In a Loop structure you call the command moveobject of first item into the queue as destination.

You could do this without a queue object but then you are responsible to manage time events to insert items into your entry transfer. In such a case you move your stacked items into model workspace and keep each location of still stacked items projected from container item coordinate space to model workspace. You need to update all items of your stack by decrementing whenever one leaves.

If you need a physically correct animation of falling or dropping items vertically you move your stacked items to an single conveyor on an vertical rotated plane which releases items to your system. Or you attach instead an object which uses animation creator or kinematics to impose the dropping action.

Addresing stacked items please refer to manual section referencing items.

https://docs.flexsim.com/en/22.2/Reference/CodingInFlexSim/BasicModelingFunctions/BasicModelingFunctions.html#referencing

probably you need at some point command moveobject.

https://docs.flexsim.com/en/22.2/Reference/CodingInFlexSim/CommandReference/Commands.html#moveobject

get object coordinates in relation to an container node

https://docs.flexsim.com/en/22.2/Reference/CodingInFlexSim/FlexScriptAPIReference/Tree/Object.html#Property-location

project object coordinates into another space by project

https://docs.flexsim.com/en/22.2/Reference/CodingInFlexSim/FlexScriptAPIReference/Data/Vec3.html#Method-project

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

Felix Möhlmann avatar image Felix Möhlmann commented ·

Here's an example of what Jörg is describing.

The decision point moves the arriving stack of pallets into the queue as single objects. From there they enter the second conveyor through the entry transfer. The 3d shape of the queue is hidden in the picture/gif below.

1664182698492.png

destacker.gif

As he mentions, you could then connect the output logic of the queue to a process flow to add delay time inbetween the items, as well as add animations/kinematics.

destacker_fm.fsm

In case you want to experiment further with your approach. You can get the current item at a Decision Point or Photo Eye through the following syntax. It assumes that you have an object reference to the DP/PE.

Object DP;
Object curItem = DP.as(Conveyor.DecisionPoint).activeItem;
1 Like 1 ·
1664182698492.png (105.5 KiB)
destacker.gif (5.5 MiB)
destacker-fm.fsm (52.5 KiB)