SetCheckpoint#

This command defines a checkpoint in the motion queue. Thus, if you send a sequence of motion commands to the robot, then the command SetCheckpoint, then other motion commands, you will be able to know the exact moment when the motion command sent just before the SetCheckpoint command was completed. At that precise moment, the robot will send back the response [3030][n] (on both ports), where n is a positive integer number defined by you. If blending was activated, the checkpoint response will be sent somewhere along the blending. If a checkpoint is the last queued command, in the absence of blending with another command, the checkpoint response will be sent once the robot has come to a stop (along with an EOB). Finally, note that you can use the same checkpoint number multiple times.

Syntax#

SetCheckpoint(n)

Arguments#

  • n: an integer number, ranging from 1 to 8,000, representing the checkpoint number.

Responses#

  • [3030][n]

    • Sent when the checkpoint has been reached.

  • [3040][n]

    • Sent when the checkpoint has been discarded and will never be reached (due to motion cleared, robot deactivated, error, safety stop. etc.)

Note

Using a checkpoint is the only reliable method to confirm whether a specific motion sequence has been completed. Do not rely on the EOM or EOB messages, as these may be received well before the motion or sequence is finished—or not received at all if these messages are not enabled.

Usage restrictions#

This command is added to the robot’s motion queue and can only be executed when the robot is ready for motion, not in an error state and when no safety signal conditions are present. Otherwise, the robot will report one of the following:

  • [1005][The robot is not activated.]

  • [1006][The robot is not homed.]

  • [1011][The robot is already in error.]

Cyclic protocols#

In cyclic protocols, the SetCheckpoint command is represented by MotionCommandID 17. See Section 4.2 for more details.