User Tools

Site Tools


commands:movrel

Command:MOVREL (R)

MS2000 or RM2000 syntax
Shortcut R
Format MOVREL [Axis]= [units 1/10 microns]…
Units 1/10 microns
Tiger syntax
Shortcut R
Format MOVREL [Axis]= [units 1/10 microns]…
Units 1/10 microns
Type Axis-Specific
Remembered Using [addr#]SS Z

Move one or more axis motor a distance relative from its current target position. This command is similar to the MOVE command except the new target position is calculated based on the current target position instead of being specified directly. Like the MOVE command, the typical unit of distance is tenths of microns.

The change to the target position is quantized by encoder counts. For example, with 16 TPI and rotary encoders there are 181590.4 encoder counts per millimeter. If you request 1.000 um move, the encoder target will change by 182 encoder counts which is 1.0022 um. By repeating the same relative move 600 times, the total move will be 600*182 = 109200 encoder counts which is 601.3 um, not 600.0 um. However, if you request for 2.000 um moves then the target will move by 363 encoder counts which happens to be closer to 2.000 um: repeated 300 times gives 599.7 um move in total. The reason for this behavior is that the stage and controller don't measure in microns, they can only tell how many encoder counts have gone by.

If the previous move was commanded by serial or TTL, then the post-move target position is based on the pre-move target position – where the previous move would ideally have landed – not on the pre-move actual position. This behavior prevents the possibility of accumulating small positioning errors when making sequential relative moves. Note that events such as manual moves (joystick/wheel), halted moves (by user or via motor error conditions), and automated drift correction moves will change the target position to the actual position.

A positive reply of :A is sent back when the command is received correctly. Reception of the reply does not mean the end of execution, and the command STATUS can be used to determine if the move has been completed.

Example
R X=1234 Y=-321 Z
:A

The controller will move the X-axis an additional 123.4 microns in the positive direction at the maximum set speed (see SPEED). Simultaneously, the Y-axis will move 32.1 microns in the negative direction, while the Z-axis will not move at all.

During this movement, the Joystick and Encoder input will be locked-out and cannot alter the target positions entered. The motors will stop when they have reached their target, or if their limit switch is encountered. To stop the motors during a serial MOVREL command, use the HALT ( \ ) command.

Address: 29391 W Enid Rd. Eugene, OR 97402, USA | Phone: +1 (541) 461-8181
commands/movrel.txt · Last modified: 2023/08/31 03:41 by brandon