Transfer from path to another path

Hi!
I’m trying to create sets of rolls on conveyor so that the space between rolls is 100mm. I’ve done this by using frames with component sensors. It works fine when I start the simulation. First set is produced correctly and transferred to process station.
But when the code creates the second set the first roll is stopped at the feeder exit and does not move on the infeed conveyor. What I’m doing wrong.

Start of the simulation. Works fine.

Second set coming. Stopped at the feeder.

What I am doing wrong :thinking:

Or is there ready built in feature for this? I’m using VC Professional 4.3.

Hard to debug without the layout/component. From the script, consider using events to handle the transition of components. For example, you might be stopping a path before the part actually leaves it. And make sure path has capacity for more than one part.

I hope you did not over engineer what you want to do because the SegmentSize property of a One Way Path behavior can be used to space parts. When parts arrive to path, if its distance to part in front of it is more than segment size, you will notice no change. If the distance is less than segment size, for instance the parts would be too close to one another, the path will delay part to enforce the segment size as shown in this image.

Thanks @WilliamSmith!! I’ll try with that SegmentSize property.

Hi and thanks for your help. This solution made my model a lot simpler. Now I have issue on stopping conveyor. Im using stopMovement command when rolls come to the end of the conveyor. When the next roll set comes it stops before it reaches the end of conveyor. I’ve tried to use path.Enable command but it brings back the same problem and the rolls stop at end of feeder. Do you have any tips how should I start the conveyor again.

If you use vcComponent.stopMovement() then turning on path won’t make that component move again. You need to call vcComponent.startMovement() to make the component move. If you are using segment sizes, a component will not move if there is not enough room in next segment. Someone in support can probably help you fine tune everything.

1 Like

The components transfer from conveyor path to lift container with script in lift. I use for loop to grab components. I’ve checked the list of components on path after the lift takes components.

for i in range (len(RollStack)-1,-1,-1):
TrolleyCont.grab(Path.getComponent(i))

RollStack list is created when trolley drives in to conveyor to get rolls.
Should I clear path on conveyor somehow or set it on initial state. :thinking:

The video does not show Output panel. Are you trying to verify the path object has components after the first stack is taken? Do a simple check to see if the object passed as argument in grab() is not None. And if you want to approach this like state machine, verify the rules or conditions for each state in the process are correct. To save time, you could enable tracing in the script editor, run simulation and see where your script is stuck. Another simple test is to see what happens if you insert delay(1) before checking path for child components and see if you get a different result.

Yes I’ve checked that the path is empty. It has something to do with that segmentation. When the lift takes the first set it the second set stops at distance previous set minus 1 roll. When I turn the segmentation of it works fine. How do I clear those segments can it be done with python?

At first I took the components with cont.grab(path.Components[i]) in for loop. Then I tried cont.grab(path.getComponent(i)) in a for loop and latest which I’ve tried is:

   parts=conveyor.ChildComponents
   for part in parts:
       cont.grab(part)

With changing segment size during simulation, I feel that would be a hack. The property is RW, but you will not notice any change unless there are no components in the path and no component waiting to flow into the path. This is where I get off the bus, so good luck. If you can share your layout with support, do so since things would be easier if there was a layout to check and test. I tested segment size with template components in eCat, and you might not need to change segment size.

Thanks for your help @WilliamSmith! I took my earlier version with extra sensors and use those to create space between rolls. It seems to be working (for now). Somehow accumulating set to false don’t let rolls enter conveyor even when the first set is taken away.

Yep problem solved.

1 Like