I am playing around with the "Pull Control" feature with a Pick And Place robot, but I am trying to figure out the correct way to think in order to achieve the desired behavior.
I have three buffers the robot can pick from. Each time the Pull Ctrl is called, I loop through the robot's forward blocklist and unblock the MU in the buffers I want to pick from. But each time, the robot only picks one(?) part from one buffer even if I have unblocked several MUs. This causes the wrong amount of parts to be picked for the succeeding assembly station.
Is there a way to wait until the robot has picked everything it unblocked in an instance of the Pull Ctrl? Or am I thinking about this the wrong way?
See the attached model file.
Edit: Maybe I should include that the first PCB assembly works fine, but when several MUs queue up in the buffers the robot picks the wrong amount. So the second PCB assembly doesn't work as intended.
Solved! Go to Solution.
Hi, thank you for the answer.
However the robot should pick one component at a time, not all three. That is why the robot in my model has a capacity of one.
I managed to fix it, all that was needed was a simple "return" statement once the pull ctrl found a part to unblock.
The pull ctrl only triggers (among other conditions) when the robot is ready to receive a mu, so once I unblock a MU the robot has a "job" to perform and the succeeding MUs that trigger the Pull Ctrl "wait" for the robot to finish loading and unloading the immediately unblocked MU.
For this to be fully correct some of the code would need restructuring and some of it becomes redundant, but the point comes across.