Tables of Contents
Introduction
This section explains how to use the CM1-T Cool Muscle motor with EtherNet/IP. It is assumed there is a basic knowledge of EtherNet/IP and PLC programming. The implementation makes use of the different Modes Of Operation in the motor. It does not use CML logic and bank programming. However, setup (K) and controller gain (H) parameters are used for things like motor resolution, s-curve, software limits, etc. These are all accessible to be setup with Control Room or over explicit messages.
Device Profile
The CM1-T uses a generic device profile. This is to allow it to be flexible and operate in a number of control modes.
I/O Messages
The breakdown of the I/O messages is shown below.
T2O (Input) Message
The input message is 32 bytes long.
Byte | Name | Data Type |
---|---|---|
0-3 | us50Counter | DINT |
4-7 | ActualPosition | DINT |
8-11 | MotionTarget | DINT |
12-15 | ActualSpeed | DINT |
16-17 | MotorStatus | INT |
18-19 | PercentActualCurrent | INT |
20-21 | PercentOverloadTorque | INT |
22-23 | AnalogIN | INT |
24-25 | DCVoltage | INT |
26-27 | PAD | INT |
28 | DigitalIN | SINT |
29 | Temperature | SINT |
30 | ModeOfOperationDisplay | SINT |
31 | ErrorCode | SINT |
O2T (Output) Message
The output message is 20 byes long
Byte | Name | Data Type |
---|---|---|
0-3 | TargetPosition | DINT |
4-7 | TargetSpeed | DINT |
8-9 | TargetTorque | INT |
10-11 | TargetAccelertion | INT |
12-13 | TargetDeceleration | INT |
14-15 | Controlword | INT |
16 | ModeOfOperation | SINT |
17 | DigitalOUT | SINT |
18-19 | PAD | INT |
Control Modes
This section focuses on controlling the motor with the provided Add on Instructions (AOIs). These will satisfy most applications, however, if required, the motor can be controlled by setting the CM1-T objects directly (see I/O Messages). Understanding the Modes Of Operation will be important in this case.
There are currently 3 main control modes available while running the motor over EtherNet/IP.
- Position - this mode sets the motor to run to a target position. The position could be absolute or relative
- Speed - this mode allows the motors speed to be controlled for continuous motion
- Torque - this mode allows the motors torque to be controlled.
The control modes are mapped to the ModeOfOperation value from the CM1T_ControlMode AOI:
Control Mode | CM1T_ControlMode AOI value | O2T ModeOfOperation Value |
---|---|---|
Position | 0 | 3 |
Speed | 1 | 3 |
Torque | 2 | 11 |
In addition:
- Homing is an additional mode that can be executed at any point. Homing should start from a known safe state to avoid unexpected changes in motion
- All modes can be switched to during motion. It is recommended the state is switched during a known safe state.
- Torque can be limited in all modes. Running in torque mode will disable errors such as position error which can still occur in other modes if the set torque is too low. The torque is set in 0.1% of rated torque. The range is [0,1100]. By default the torque is set to 1100 when using the AOIs supplied.
All modes use common objects such as position, speed, torque, acceleration and controlword. Switching parameters in another mode will change the value in the existing mode.
Setting the Start bit to 0 will NOT halt motion. The HALT bit must be used to interrupt motion.
Position Mode
Absolute position and relative position both use the position mode. The key difference in operation between the two is the usage of the start bit in the CM1T_Controlword. An absolute move will accept a new position immediately if the start bit is 1.
Start Bit Usage
BIT | Name | Value | Description |
---|---|---|---|
B0 | Start/New Set Point | 0 |
|
0 → 1 |
| ||
1 | Execute any changes in any of the profile registers immediately. |
Motion Parameters
Position moves will accept the following motion parameters. These will be processed immediately if the start bit is high.
Name | Unit | Data Type | Access |
---|---|---|---|
PositionTarget | counts | DINT | AOI(2) or Axis tag |
SpeedTarget | counts/s | DINT | AOI or Axis tag |
AccelerationTarget | 1000 counts/s2 | INT | AOI or Axis tag |
DecelerationTarget(1) | 1000 counts/s2 | INT | AOI or Axis tag |
TorqueTarget | 0.1% rated torque | SINT | Axis Tag |
(1) If the deceleration is set to 0 the acceleration value will be used
(2) MoveAbsolute or MoveRelative AOI
Speed Mode
A speed move has no target position and will continue to run at the target speed. Setting a -ve speed value will reverse direction.
Start Bit Usage
BIT | Name | Value | Description |
---|---|---|---|
B0 | Start/New Set Point | 0 |
|
0 → 1 |
| ||
1 | Execute any changes in any of the profile registers immediately. |
Motion Parameters
Speed moves will accept the following motion parameters. These will be processed immediately if the start bit is high.
Name | Unit | Data Type | Access |
---|---|---|---|
SpeedTarget | counts/s | DINT | AOI(2) or Axis tag |
AccelerationTarget | 1000 counts/s2 | INT | AOI or Axis tag |
DecelerationTarget(1) | 1000 counts/s2 | INT | AOI or Axis tag |
TorqueTarget | 0.1% rated torque (11 | SINT | Axis Tag |
(1) If the deceleration is set to 0 the acceleration value will be used
(2) MoveSpeed AOI
Torque Mode
A torque move only uses a target torque and maximum speed. Acceleration of the motor should be limited by adjusting the target torque or speed.
Setting a -ve torque value will reverse direction.
Start Bit Usage
BIT | Name | Value | Description |
---|---|---|---|
B0 | Start/New Set Point | 0 |
|
0 → 1 |
| ||
1 | Execute any changes in any of the profile registers immediately. |
Motion Parameters
Torque moves will accept the following motion parameters. These will be processed immediately if the start bit is high.
Name | Unit | Data Type | Access |
---|---|---|---|
SpeedTarget | counts/s | DINT | AOI(1) or Axis tag |
TorqueTarget | 0.1% rated torque Range: ± 1100 Where:
| SINT | AOI or Axis Tag |
(1) MoveTorque AOI
RSLogix Resources
CM1T_Axis Data Type
The CM1-T_Axis data type defines how the bytes are assigned withing the IO message.
Name | Data Type | Description |
---|---|---|
Input | SINT[32] | Data coming from the CM1-T |
Output | SINT[20] | Data going to the CM1-T |
us50Counter | DINT | Motor 50us counter |
ModeOfOperation | SINT | Select control mode |
ModeOfOperationDisplay | SINT | Current control mode |
Controlword | CM1T_Controlword | Control operation |
DriveStatus | CM1T_DriveStatus | Drive status |
PositionTarget | DINT | Target position for position move |
SpeedTarget | DINT | Max speed for target move |
TorqueTarget | INT | Max torque for target move |
AccelerationTarget | INT | Acceleration for target move |
DecelerationTarget | INT | Deceleration for target move |
PositionActual | DINT | Actual position of the motor |
TargetActual | DINT | 1ms target position of the motor |
PositionError | DINT | Error between actual and target |
SpeedActual | DINT | Actual speed of the motor |
CurrentActual | INT | Actual current percentage of the motor (0.1% rated) |
OverloadActual | INT | 0.1% of overload torque |
DCVoltage | INT | 24V DC input value at 0.1V |
AnalogIN | INT | 10bit analog input (0-1023) |
DigitalIN | SINT | Read digital inputs |
DigitalOUT | SINT | Set digital outputs |
Temperature | SINT | Drive temperature in °C |
ErrorCode | SINT | Error in communication module |
CM1T_Controlword
Name | Data Type | Description |
---|---|---|
Start | BOOL | Start/New set point |
Halt | BOOL | Halt current motion |
Relative_Move | BOOL | Execute position move as relative |
Speed_Control | BOOL | Execute move as a speed only move |
Disable | BOOL | Disable the drive |
Reset_Error | BOOL | Reset error with rising edge |
Set_to_Zero | BOOL | Set the current position to zero with rising edge |
Home | BOOL | Home the motor with rising edge |
CM1T_DriveStatus
Name | Data Type | Description |
---|---|---|
StatusValue | SINT | Motor status and error type |
StatusValue1 | SINT | Additional motor status |
In_Position | BOOL | Motor is in position and ready to move |
Moving | BOOL | Motor is currently moving |
Disabled | BOOL | Drive is disabled |
Error | BOOL | Drive is in error state |
MoveComplete | BOOL | Move is completed |
NewStartRequired | BOOL | Rising edge required to restart motion |
HomeAchieved | BOOL | Homing has been achieved |
Add-On Instructions
The following tables outlines the available add-on instructions
Name | Description | Required |
---|---|---|
CM1T_DataExchange | Exchanges data between the drive and the drive variable | Yes |
CM1T_Enable | Enables the motor | No |
CM1T_Disable | Disables the motor | No |
CM1T_ClearFault | Clears any faults on the drive | No |
CM1_TControlMode | Set the type of control mode required | No |
CM1T_MoveAbsolute | Executes an absolute position move | No |
CM1T_MoveRelative | Executes a relative position move | No |
CM1T_MoveSpeed | Executes a speed move | No |
CM1T_MoveTorque | Executes a torque move | No |
CM1T_MoveHome | Executes a home routine | No |
CM1T_DataExchange
This AOI is required if any other AOIs are used. One instance is required for each CM1-T axis being controlled.
It has a number of functions
- It exchanges data between the motor connections and the motor/drive tag.
- It places the Controlword bits into the Controlword data type
- It retrieves the drive status and places it into the DriveStatus variable.
Parameters
Operand | Type | Format | Description |
---|---|---|---|
CM1T_DataExchange | CM1T_DataExchange | Tag | Instance tag for the AOI |
DriveInput | AB:ETHERNET_MODULE_SINT_32Bytes:I:0 | Tag | Module defined connection input for the CM1-T |
DriveOutput | AB:ETHERNET_MODULE_SINT_20Bytes:O:0 | Tag | Module defined connection output for the CM1-T |
CM1T_Axis | CM1T_Axis | Tag | Working tag for the CM1-T axis |
Scan Modes
Scan Mode | Description |
---|---|
Prescan | Initialize tag and local variables |
Rung Condition - TRUE | Process DataExchange |
Rung Condition - FALSE | N/A |
CM1T_Enable
This AOI enables the motor and drive. Torque will be present.
Parameters
Operand | Type | Format | Description |
---|---|---|---|
CM1T_Enable | CM1T_Enable | Tag | Instance tag for the AOI |
CM1T_Axis | CM1T_Axis | Tag | Working tag for the CM1-T axis |
Execution
Condition | Action |
---|---|
prescan | N/A - rung-condition-out is set to false |
rung-condition-in is true |
|
rung-condition-in is false | N/A - rung-condition-out is set to false |
CM1T_Disable
This AOI disables the motor and drive. Torque will not be present
Parameters
Operand | Type | Format | Description |
---|---|---|---|
CM1T_Disable | CM1T_Disable | Tag | Instance tag for the AOI |
CM1T_Axis | CM1T_Axis | Tag | Working tag for the CM1-T axis |
Execution
Condition | Action |
---|---|
prescan | N/A - rung-condition-out is set to false |
rung-condition-in is true |
|
rung-condition-in is false | N/A - rung-condition-out is set to false |
CM1T_ClearFault
This AOI clears any drive fault/error condition. This will also enable the motor. The rung-out-condition indicates the drive error state (true or false).
Parameters
Operand | Type | Format | Description |
---|---|---|---|
CM1T_Disable | CM1T_Disable | Tag | Instance tag for the AOI |
CM1T_Axis | CM1T_Axis | Tag | Working tag for the CM1-T axis |
Execution
Condition | Action |
---|---|
Prescan | N/A |
rung-condition-in is true |
|
rung-condition-in is false |
|