Shortcut | RM |
---|---|
Format | RBMODE [X=control] [Y=axis_byte] [Z=buffer_pointer] [F=mode_byte] |
Remembered | Using SS Z |
Firmware Module Required | RING BUFFER |
Shortcut | RM |
---|---|
Format | [addr#]RBMODE [X=control] [Y=axis_byte] [Z=buffer_pointer] [F=mode_byte] |
Type | Card-Addressed |
Remembered | Using [addr#]SS Z |
Firmware Module Required | RING BUFFER |
Provides control of movement and save operations involving the controller’s internal 50-position ring-buffer (optionally to 250 positions, contact ASI). The LOAD command is used to fill the ring buffer.
Many firmware builds have axis_byte set to 3 as a default, so only the X and Y axes enabled for ring-buffer moves, check the axis_byte parameter if you are having trouble moving an axis.
The command, without any arguments, sets the TTL input interrupt flag and performs the same operation that a TTL IN0 input pulse would control as determined by the current IN0_mode
. See TTL command.
A move to the Next Position may be initiated by:
IN0_INT
Firmware Module Required). @
button (as long as other special functions are not utilizing the @
button). RM
command without arguments.
0 – Clears the ring buffer (RING_BUFFER
firmware required)
1 – Starts array scan (ARRAY_MODULE
firmware required)
RM X?
returns the number of used positions in the ring buffer (Tiger v2.89+
or MS2000 v9.2g+
).
Consume mode:
RM X?
returns the number of open positions in the ring buffer. (MS2000 9.2o+
)
1-31: The axis_byte
is a decimal value that represents the underlying binary bit pattern of a byte. This value determines which axes are commanded to move, the same axis positions are reported using TTL IN0_mode=5
. The ordering of axes is the order on the card/controller, with the first axis getting the LSB. The axis_byte
setting also applies to the SERVOLOCK_TTL
module and TTL-triggered moves.
You can determine the axis order by looking at the BU X command, which will respond with axis information below the build name. This will be something like: “Motor Axes: X Y Z F
” in a 4-axis build, which would mean X=0, Y=1, Z=2, F=3. You can verify the axis index with the Z2B <axis>?
command.
For example to enable all 4 axes you would send the command RM Y=15
.
::::fzyx
→ which axes are in each bit position
00001111
→ the bit pattern needed to enable all axes (15 in decimal)
MSB::LSB
→ most significant bit - least significant bit
If you wanted to disable only the Z axis in a 4-axis build like this you would send the command RM Y=11
to the controller (11
is 00001011
in binary).
Sets or reads the read index for the next move. The read index is zero-indexed, so its maximum value is the one less than the number of positions in the ring buffer.
Consume mode:
The read index is read-only. (MS2000 9.2o+
)
When entering and exiting consume mode the ring buffer is cleared and the read/write indices are reset to 0.
The lowest two bits are used to specify the mode:
0 – Consume Mode: A TTL pulse or RM
command moves to the next position and consumes that position if a position exists in the ring buffer. New positions can be loaded on the fly. This mode reduces the capacity of the ring buffer by 1. Available on MS2000 9.2o+
and Tiger 3.41
firmware.
1 – TTL Triggered Mode: (default)
A TTL pulse or RM
command without arguments moves to the next position.
2 – One-shot Autoplay Mode: A TTL pulse or RM
command without arguments plays the ring buffer from the current position to end with a delay between points set by RT Z (make sure delay is set appropriately; e.g. setting 1ms won’t work with motorized stage).
3 – Repeat Autoplay Mode: Upon a TTL pulse or RM
command without arguments, plays from current position continuously in a loop with delay set by RT Z
(make sure delay is set appropriately; e.g. setting 1ms won’t work with motorized stage). While running, another trigger causes autoplay to stop. Also enables repeat mode for ARRAY module. Starting v3.24, this mode works on TGLED card too. When TTL X=21, TGLED cycles through all LED channels without waiting for a TTL trigger.
Bits 3-7 are reserved.
MSB – read-only, set to 1 if ring buffer is auto playing and 0 otherwise
On Tiger v2.81-2.88 these were on X pseudoaxis instead of F
CAUTION: If you are using TTL mode 12 (see the TTL command), the values entered into the ring buffer using the LOAD command represent RELATIVE coordinates, not ABSOLUTE coordinates. You must drive the stage to the appropriate starting position before triggering a ring buffer sequence.