Is this meant to me the case?
Everything I have read suggests the BCO run should move the robot to the home position, but mine does not move.
Is this meant to me the case?
Everything I have read suggests the BCO run should move the robot to the home position, but mine does not move.
it depends if robot is in right place or not... BCO simply tells robot to get on programmed path and if the first point coincides (or it is set to be "current robot position") no movement will be observable...
If you execute a PTP $POS_ACT command, this will usually fulfill BCO without moving the robot. Likewise, if you select a motion command in a program that the robot is already physically at, and run it, you will get BCO without any actual motion.
BCO is lost whenever a program is cancelled, or a manual Line Select is performed. Basically, anything the breaks the relationship between the robot's current physical location, and the "natural flow" of the program.
(or it is set to be "current robot position")
Thanks, useful info.
So if I understand correctly it is possible the files I am running (which are exports from roboDK) have a command which translates to "whichever position the robot is currently at is the start position for this program"
If you execute a PTP $POS_ACT command
Again, thanks.
Is is the same thing referred to in quote above?
yes, both are same thing....
Well, PTP $POS_ACT commands the robot to move to where it already is.
OTOH, executing PTP HOME (which is often at the beginning of most default KRL modules) will move the robot directly to HOME position, without regard to where it's starting. However, if the robot is already at or very close to HOME, the final effect will appear very similar to PTP $POS_ACT.
Basically, executing any motion command when the robot is already physically at (or very close to) that location, will have an effect similar to what you are seeing. PTP $POS_ACT is a special case, since $POS_ACT is the system variable for "robot current position."
As a side note: PTP $POS_ACT actually does make the robot move, a tiny bit (0.01mm or so). I once found this the hard way while playing with
It turns out that this will cause the robot to slowly crawl in a semi-random direction until the program is stopped. The root cause is that $POS_ACT is not perfect, and so the "noise" from the conversion from axis angles to Cartesian coordinates can cause this kind of behavior.