64
Programming manual for Meca500 (for firmware 9.2.x)
COMMUNICATING OVER CyCLIC PROTOCOLS
3.2.3 Motion commands
Most commands related to robot movement are posted to the robot motion queue. The robot will
execute these commands sequentially (see
There are two types of motion commands: cyclic (velocity-mode move commands) and non-cyclic (all
other move commands):
•
velocity-mode commands (e.g.,
MoveJointsVel
) are canceled as soon as any subsequent command
is received (or after velocity timeout);
•
other commands (e.g.,
MoveJoints
) are executed completely before the subsequent command
starts being executed.
3.3. Sending motion commands
Motion commands are sent via three cyclic data fields and the six command arguments.
3.3.1 Command Id
We have assigned a unique number to each of the available motion commands (see
). By entering
this number in the MotionCommandID field, you are specifying the motion command that is to be sent
to the robot.
3.3.2 MoveId and SetPoint
With the combination of two fields, MoveID and SetPoint, we are able to send either cyclic motion
commands (i.e., executed at every cycle) or non-cyclic motion commands (i.e., commands that are added
to the motion queue).
The SetPoint is a bit that enables or disables the robot's reception of motion commands from the cyclic
data. When this bit is cleared, the robot ignores the MotionCommandID and the MoveID fields.
The MoveID field determines if commands are cyclic (MoveID is 0) or non-cyclic (MoveID is not 0, one
new command being queued every time the MoveID value is changed).
Always wait for the robot to acknowledge the current MoveID before changing the cyclic data
(MoveID, MotionCommandID or the motion command arguments). Otherwise, a motion
command may be lost.
Always change the MoveID after updating MotionCommandID and the corresponding
arguments, otherwise the robot may receive a mix of old and new MotionCommandID and
arguments
3.3.3 Adding non-cyclic motion commands to the motion queue (position mode)
Non-cyclic motion commands (
MoveJoints
,
MovePose
,
MoveLin
,
Delay
,
SetJointVel
,
SetConf
, etc.) are
added to the motion queue and processed later (once previous commands have been completed). They
are sent by changing the MoveID field to a different non-zero integer value (while SetPoint is 1).
When MoveID is changed, the motion command defined in the MotionCommandID field will be added
to the motion queue. The robot then acknowledges by updating its own MoveID field to match your
MoveID value.
Summary of Contents for Meca500 R3
Page 10: ......