Control Registers

Target Position (P0)

The target position register is the value of the motor position you wish to send the motor to. This is measured in pulses. By default the motor will perform 1000 pulses per revolution. By sending the motor a position of 1,000,000,000 the motor will continue to run forward to an infinite position until stopped. Internally this writes to the P0 register in the motor.

Target Speed (S0)

The speed parameters in the motor are measured in pulses per second. The values you program in the motor are a multiple of the speed unit that is set in parameter K37. By Default, this speed unit is set to 100 pulses per second. This means that if you set the motors speed value to 50, the rotational speed of the motor will be 100pps x 50 = 5000 pulses per second. Internally this writes to the S0 register in the motor.

Target Acceleration (A0)

The motors acceleration is measured in thousands of pulses per second squared (Kpps2). This means that if you set the motors acceleration value to 10, for example, the motor will accelerate to the desired speed at 10,000 pulse/sec2. For example, if the speed was set to 5000 pulses per second, we would reach this speed in half a second with an acceleration value of 10. Internally this writes to the A0 register in the motor.

Control Word (V1)

The Control word is a holding register which you can set to command the motor to perform different functions such as starting a motion, stopping, homing, etc.

Internally this writes to the R0 register int eh motor. It is used for the Control Word. It has the following value options

R0 ValueDescription
0Do nothing
1Start the position move
2Stop the motor
3Enable the motor
4Disable the motor
5Home the motor
  1. Changing the value of the control word immediately executes the operation 
  2. If the Control Word is left with the value 1 then changing the position once the motor has come to a stop will execute the next move. This allows the Modbus master to only change the position and not need to also toggle the control word to execute the next move.
  3. The home routine is by default set to a hardstop search in the CCW direction. Please see K42 to K48 for home routine options.

General Purpose Write Variable (V0)

The variable, V0, can be used as a general purpose variable. This can be written to via the write command, and can be manipulated via a CML program running in the motor, if so desired.

General Purpose Read Variable (V2)

The variable, V2, can be used as a general purpose variable. This can be read by the read status command, and can be manipulated via a CML program running in the motor, if so desired.

Command Structure

Read Status (T→O)

Input Assembly Object - Instance 0x65

The read status command can be sent by using the following parameters:

Service0x0E
Class0x04
Attribute0x03
Instance0x65
Data Length14

Data description:

Bytes

Data

0-1

Communication Error Code

2-5

Motor Status Code

6-9

Motor Position

10-13

V2 value

 

Example:

By sending the motor the read status command, the motor will respond with the motor status, current position, and value of a general use variable V0 in the following format:

00 0008 00 00 0088 13 00 000F 00 00 00
Comm ErrorMotor StatusCurrent PositionValue of V2

In the example above, the motor status is 8 (ready), the motor position is 5000, and the value of V2 is 16.

All values are written and read in little endian, byte-wise manner. Therefore, the value of "0F 00 00 00" is 16 and not 251658240 as it would be read in a big endian manner.

1.1.1    Communication Error Code

Bit (0=LSB)

Status Flag

0

Communication Error – motor controller is responding with communication error codes

1

Communication Error – communication with motor controller has timed out (was previously established)

2

Communication Error – communication with motor controller was never established

3-7

Reserved

8

EtherNet/IP module has defaults loaded and needs motor configuration loaded

9

EtherNet/IP module has motor configuration loaded and will initialize on reset

10-15

Reserved

The communication error code can also be read from:

Service

0x0E

Class

0x64

Instance

0x1

Attribute

0x64

Motor Status Code:

Value

Error

Status

0

NO

Motor Running

1

YES

Position Error overflow – motor disabled

2

YES

Over Speed – motor disabled

4

YES

Over Current – motor disable

8

NO

Motor is position

16

NO

Motor windings disabled

128

YES

Over Temperature Limit – motor disabled

512

NO

Emergency Stop Enabled – motor disabled

Write Command (O →T)

Output Assembly Object - Instance 0x66

The read status command can be sent by using the following parameters:

Service0x10
Class0x04
Attribute0x03
Instance0x66
Data Length 22 bytes

Data description:

Bytes

Description

0-1

Communication to motor controller run/idle flag. This should always be set to 1

2-5

Position Word - P0 (32 bit)

6-9

Speed Word - S0 (32 bit)

10-13

Acceleration Word - A0 (32 bit)

14-17

Control Word - V1 (32 bit)

18-21

V0 variable (32 bit)

Example:

The following format is used for the write command:

01 0000 CA 9A 3BFF 00 00 00FF 00 00 0001 00 00 0001 00 00 00
Comm FlagTarget PositionTarget SpeedTarget AccelerationControl WordV0

In the above example, we are commanding the motor to go to position 1000000000 (infinite move) at a speed of 255 and acceleration of 255. Setting the control word to 1 to start the move, and setting V0 to 1.

Configuration Object

Configuration Assembly Object - Instance 0x80

The Ethernet/IP communications interface does not implement the Configuration Assembly Object.  However, some Ethernet/IP scanner (client) devices require a Configuration Assembly Object to be specified when configuring server devices.  In this case Instance 0x80 should be used with a data length of 0 bytes.

  • No labels