The EIP module is an interface module for the CM1 motor which allows the motor to communicate via the EtherNet/IP industrial pro tocol.
Control Registers
Target Position
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.
Target Speed
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.
Target Acceleration
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.
Control Word
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.
The R0 register is used for the Control Word. It has the following value options
R0 Value | Description |
---|---|
0 | Do nothing |
1 | Start the position move |
2 | Stop the motor |
3 | Enable the motor |
4 | Disable the motor |
5 | Home the motor |
- Changing the value of the control word immediately executes the operation
- 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.
- 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 Variable
The variable, V0, can be used as a general purpose variable. This can be read and written to via the write command, and can be manipulated via a CML program running in the motor, if so desired.
Command Structure
Read Status (T?→O)
The read status command can be sent by using the following parameters:
Service | E |
---|---|
Class | 4 |
Attribute | 3 |
Instance | 65 |
Data |
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 00 | 08 00 00 00 | 88 13 00 00 | 0F 00 00 00 |
---|---|---|---|
Motor Status | Current Position | Value of V0 |
In the example above, the motor status is 8 (ready), the motor position is 5000, and the value of V0 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.
Write Command (O →T)
The read status command can be sent by using the following parameters:
Service | 10 |
---|---|
Class | 4 |
Attribute | 3 |
Instance | 66 |
Data | 22 bytes |
The following format is used for the write command:
01 00 | 00 CA 9A 3B | FF 00 00 00 | FF 00 00 00 | 01 00 00 00 | 01 00 00 00 |
---|---|---|---|---|---|
Target Position | Target Speed | Target Acceleration | R0 | V0 |
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.