Sine Move Command

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:

 

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:

 

Addendum for Special SI Firmware (e.g. 19980827SI)

The above description of this command is correct except for the following additions:

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.