one of the projects I work on is about a racetrack collator with two independent belts on it - two different servo motors. Both motors share the same mechanical frame and there is a train on a belt that collects items from the input conveyor.
The way the motion is performed is the following - there is a virutal master axis and both real axis are synchronised with different cam motion profiles.
The problem is when an STO is triggered on any of the slave axis, the synchronization process starts from position 0 of the slaves.
How can I force the slaves to retain their current position until the master passes their position? Then the slaves should catch up with the master according to the profile, the slaves should not start synchronization from 0 position.
Best Regards
Konstantin Kolev
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
can you please explain a little more: what happens at an STO? I assume the slave axes will be stopped and retain their current position?
How, then, do you call MC_CamIn after the STO? Do you restart it with a new rising edge, but on the same master position as before the STO? Which StartMode are you using, is the cam slave absolute or relative, master absolute or relative?
Are the slave axes modulo or finite axes?
Best regards,
Georg Seidel
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
both the master and the slave axis are modulo. Basically the situation is as follows:
One master cycle is 100 units.
Slave's modulo length is 2000 units.
In the CAM table I defined 10 master cycles on X axis - 1000 units and on the Y axis is the slave - 2000 units.
Then depending on the master position 0 to 1000 units the slave's position is plotted on the Y axis - 0 to 2000 units.
For example, while the master is executing the 3rd cycle i.e. above 200 units, I trigger the STO function of the slave and it stops. The master executed his cycle but the slave was stopped during the execution.
How can I set the slave to continue the CAM sequence from the point where it stopped i.e. third cycle of the master?
When I reset the slave error and sync again, everyrhing starts from master's 0 position.
Best Regards
Konstantin Kolev
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm not sure I understood correctly. But this is my take on your question:
When the STO of the slave is triggered, store the current master position (e.g. 225 units)
After the reset of the slave error, call MC_SetPosition on the virtual master and reset it to the stored position (225 units)
Optionally, before MC_CamIn is restartet, move the slave back to the slave position corresponding to the stored master position. (If you do this, no ramping in will be necessary)
Restart MC_CamIn, with absolute master position and absolute slave position. Choose the StartMode that is appropriate for your machine.
Best regards,
Georg Seidel
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
one of the projects I work on is about a racetrack collator with two independent belts on it - two different servo motors. Both motors share the same mechanical frame and there is a train on a belt that collects items from the input conveyor.
The way the motion is performed is the following - there is a virutal master axis and both real axis are synchronised with different cam motion profiles.
The problem is when an STO is triggered on any of the slave axis, the synchronization process starts from position 0 of the slaves.
How can I force the slaves to retain their current position until the master passes their position? Then the slaves should catch up with the master according to the profile, the slaves should not start synchronization from 0 position.
Best Regards
Konstantin Kolev
Dear Mr. Kolev,
can you please explain a little more: what happens at an STO? I assume the slave axes will be stopped and retain their current position?
How, then, do you call MC_CamIn after the STO? Do you restart it with a new rising edge, but on the same master position as before the STO? Which StartMode are you using, is the cam slave absolute or relative, master absolute or relative?
Are the slave axes modulo or finite axes?
Best regards,
Georg Seidel
Hello Mr. Seidel,
both the master and the slave axis are modulo. Basically the situation is as follows:
Then depending on the master position 0 to 1000 units the slave's position is plotted on the Y axis - 0 to 2000 units.
For example, while the master is executing the 3rd cycle i.e. above 200 units, I trigger the STO function of the slave and it stops. The master executed his cycle but the slave was stopped during the execution.
How can I set the slave to continue the CAM sequence from the point where it stopped i.e. third cycle of the master?
When I reset the slave error and sync again, everyrhing starts from master's 0 position.
Best Regards
Konstantin Kolev
Dear Mr. Kolev,
I'm not sure I understood correctly. But this is my take on your question:
Best regards,
Georg Seidel