Character: ~
Decimal: 126
Hexadecimal: 0x7E
Command Value: Change in Position, in position units.
Note: This command is supported in RMC100 CPU firmware dated 19990625 or later (and beta firmware dated 19980827B or later).
This command generates a simple move that follows a sine curve for a motion profile. It is intended to be the simple type of move, whether geared or not. In the non-geared case, give the distance to move, the time you would like it to take, and as a safeguard, the maximum speed you allow. In the geared case, give the distance you want the slave axis to move for the distance you want the master to move.
The primary disadvantage of this command is that the move profile has no constant velocity section, and therefore may not be suited for longer moves.
If the axis is not geared, the command fields are used as follows:
In the Mode word…
…the Gear Mode bit must be cleared.
…the Graph Disable, Rotational, and Monitor Pressure bits may be set if desired.
The Acceleration field is reserved. It should be set to zero.
The Deceleration field is used as the requested time in milliseconds that the move may take to complete. This time may not actually be used if the maximum speed (described below) would be exceeded. In this case a longer time will be used. If you do not care about the time taken by the move, but instead want the move to use the maximum speed, enter zero in this field. This field is unsigned. The time is an unsigned number between 0 and 65,535 milliseconds.
The Speed field is used as the maximum speed in position units per second allowed by this move. If the speed required to complete the move in the time given in the Deceleration field is above this maximum speed, the time will be extended to use the maximum speed. The speed is an unsigned number between 0 and 65,535 position units per second.
The Command Value field is used as the requested change in position, given in position units. It is a signed number between -32,768 and 32,767.
Gearing a sine move is most useful when geared to an axis in speed control, or an independent quadrature input. If the axis is geared, the command fields are used as follows:
In the Mode word…
…the Gear Mode bit must be set.
…the Gear Master Select bits are used to select the axis that will be the master for this move.
…the Gear Type bit is used to determine if the axis is slaved off its master’s target or actual position.
…the Graph Disable, Rotational, and Monitor Pressure bits may be set if desired.
The Acceleration and Deceleration fields are reserved. They should be set to zero.
The Speed field is used as the distance that the gear master axis will travel during the slave’s sine move. This is given in position units.
The Command Value field is used to determine the distance the slave will travel during the sine move.
Addendum for Special SI Firmware (e.g. 19980827SI)
The above description of this command is correct except for the following additions:
The Superimposed mode bit is used. When set, this move can be made while the axis is already performing another Geared, Speed Control, or Spline move. When cleared, this move will be the only move performed by the axis. This command is especially useful when superimposed, for example, to catch up one speed control axis with another.
A second nearly identical command is added: Master Relative Sine Move (|, decimal 124, hexadecimal 0x7C). The existing ’r;~’ command is renamed more precisely to be the ”r;Slave Relative Sine Move.” This command is identical in every way except the following items:
Both the Superimposed and Geared Mode bits must be set, otherwise a parameter error will occur.
The distance the user wishes the slave to travel (given by the Command Value) is added to the distance that the slave’s target position lags behind the master’s target position. For example, if the master is at 1000 position units, the slave is at 850 position units, and a Master Relative Sine Move is given with a Speed (master distance) of 500, and a Command Value (slave distance) of 500, then the master will move 500, and the slave will move 650 (500 requested distance plus 1000 - 850 = 150 position units to catch up) so that both arrive at 1500 position units.
Example of the Master Relative Sine Move:
Axis 0 and 1 are controlling two rollers via quadrature encoder feedback from motors. Both axes use the same position units. The drums are rotating at the same speed, but because the drums started at different times, their positions are not guaranteed to be exactly lined up. The user wishes to catch up one drum to the other.
To catch up the two drums, the user would use a sine move superimposed on the speed control of the drum that the user wishes to catch up to the other drum. The following command would be issued to axis 1 (the slave):
Mode |
0x2600 (Geared to axis 0, speed control, superimposed) |
Accel |
0 (Unused) |
Decel |
0 (Unused) |
Speed |
1000 (Master distance) |
Cmd Value |
0 (Slave distance; difference in positions will be added to this value) |
Command |
| (0x7C) |
This single command will calculate the distance between the two axes, and it will generate a move which will move this distance (plus the command value, which is 0) in the time that the master axis moves 1000 position units. This command works whether the master is ahead of the slave (the slave will speed up temporarily) or the slave is ahead of the slave (the slave will slow down temporarily).
Copyright (c) 1997-2015 by Delta Computer Systems, Inc.