Tables of Contents

Version: 1.02.06

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 Direct Control 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 operation modes.

Direct Control Operation

This mode enables the PLC to directly control the motor. See Direct Control on how to use the I/O messages to control the motor. Add on instructions are supplied in the downloads section.

CML Operation

This mode lets to motor control itself through CML programming. The PLC reads and writes to registers to monitor and make changes how the motor operates.

I/O Messages

There are two distinct I/O Assemblies based on the operation mode required.

Direct Control Operation

I/OAssembly InstanceSize
Input10036
Output11228
Configuration10

T2O (Input) Message

  • Instance = 100
  • Size = 36 bytes
ByteNameData Type
0-3us50CounterDINT
4-7ActualPositionDINT
8-11MotionTargetDINT
12-15ActualSpeedDINT
16-17MotorStatusINT
18-19PercentActualCurrentINT
20-21PercentOverloadTorqueINT
22-23AnalogININT
24-25DCVoltageINT
26DigitalIOSINT
27TemperatureSINT
28ModeOfOperationDisplaySINT
29ErrorCode(1)SINT
30-31ReadAddress1INT
32-35ReadValue1

DINT

(1) - ErrorCode is currently reserved and returns 0. Use MotorStatus to get motor error information

O2T (Output) Message

  • Instance = 112
  • Size = 28
ByteNameData Type
0-3TargetPositionDINT
4-7TargetSpeedDINT
8-9TargetTorqueINT
10-11TargetAccelertionINT
12-13TargetDecelerationINT
14-15ControlwordINT
16ModeOfOperationSINT
17DigitalOUTSINT
18-19WriteAddress1INT
20-23WriteValue1DINT
24-25ReadAddress1INT
26-27PADINT

CML Operation

I/OAssembly InstanceSize
Input10160
Output11344
Configuration10

T2O (Input) Message

  • Instance = 101
  • Size = 60 bytes
ByteNameData Type
0-3us50CounterDINT
4-7ActualPositionDINT
8-11MotionTargetDINT
12-15ActualSpeedDINT
16-17MotorStatusINT
18-19PercentActualCurrentINT
20-21PercentOverloadTorqueINT
22-23AnalogININT
24-25DCVoltageINT
26DigitalIOSINT
27TemperatureSINT
28ModeOfOperationDisplaySINT
29ErrorCode(1)SINT
30-31ReadAddress1INT
32-35ReadValue1DINT
36-37ReadAddress2INT
38-39ReadAddress3INT
40-41ReadAddress4INT
42-43ReadAddress5INT
44-47ReadValue2DINT
48-51RadValue3DINT
52-55ReadValue4DINT
56-59ReadValue5DINT

(1) - ErrorCode is currently reserved and returns 0. Use MotorStatus to get motor error information

O2T (Output) Message

  • Instance = 113
  • Size = 44
ByteNameData Type
0-3WriteValue1DINT
4-7WriteValue2DINT
8-11WriteValue3DINT
12-15WriteValue4DINT
16-19WriteValue5DINT
20-21WriteAddress1INT
22-23WriteAddress2INT
24-25WriteAddress3INT
26-27WriteAddress4INT
28-29WriteAddress5INT
30-31ReadAddress1INT
32-33ReadAddress2INT
34-35ReadAddress3INT
36-37ReadAddress4INT
38-39ReadAddress5INT
40DigitalOUTSINT
41PADSINT
42-43PADINT

Read/Write Motor Registers

In the I/O messages there is the ability to read and write to internal motor registers. These registers could be configured as flags, input counters, or other custom operations.

  1. Direct Operation has
    • 1 x read register
    • 1 x write register
  2. CML Operation has
    • 5 x read registers
    • 5 x write registers

The register addresses can be changed after a cycle to read/write to more than 1 register.

Register Address

The register address is coded into a 2 byte (UINT16) format as follows

B1B0
Register Type (P, S, A, V, etc)

Register Number (0 to max)

Register Address = Register Type Register Number

The following list maps the register type and the applicable number range


B1 Value (hex)


Register


Register No. Range

Example
RegisterAddress
HexDecimal
16#00N/AN/A---
16#01reservedreserved---
16#02reservedreserved---
16#03P0-25P016#0300768
16#04S0-15S116#0x04011025
16#05A0-8A516#0x0505 1285
16#06T0-8T216#0x06021538
16#07M0-8M016#0x07001792
16#08R0-25R1616#0x08102064
16#09N0-25N1516#0x090F2319
16#0AV0-15V1016#0x0A0A2570

For a complete list go to Complete Register Address Map

Explicit Messages

K Parameters - Setup Parameters

  • Get Attribute Single  - Service Code 0x0E
  • Set Attribute Single  - Service Code 0x10
Class0x64
Instance1
Attribute

The attribute represents the K number.

example: K37 → 37d → 0x25

H Parameters - Gain Parameters

  • Get Attribute Single  - Service Code 0x0E
  • Set Attribute Single  - Service Code 0x10
Class0x65
Instance1
AttributeH0 → 0x01
H1 → 0x02
H2 → 0x03
H3 → 0x04
H4 → 0x05
H5 → 0x06
H6 → 0x07
H7 → 0x08

Direct Control Operation

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 Direct Control will be important in this case.

There are currently 3 main control modes available while running the motor over EtherNet/IP. 

  1. Position - this mode sets the motor to run to a target position. The position could be absolute or relative
  2. Speed - this mode allows the motors speed to be controlled for continuous motion
  3. 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 ModeCM1T_ControlMode AOI valueO2T ModeOfOperation Value
Position03
Speed13
Torque211


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

BITNameValueDescription
B0Start/New Set Point

0

  • Do not execute any changes in profile registers
  • Do not start a new profile
  • Any profile currently in motion will be completed
0 → 1
  • Start a profile move defined by the profile registers
  • 0 → 1 transition is required to start a profile after
    • an error has been cleared
    • a home has been completed
    • a stop command has been given from CML or an input.
  • In relative mode transition is required to start the next incremental move.
    • The move is incremented from the current 1ms target position not the actual position.
      • This will be the same if there is no position error
      • This is to account for possible drift in a repetitive motion.
1Execute 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.

NameUnitData TypeAccess
PositionTargetcountsDINTAOI(2) or Axis tag
SpeedTargetcounts/sDINTAOI or Axis tag
AccelerationTarget1000 counts/s2INTAOI or Axis tag
DecelerationTarget(1)1000 counts/s2INTAOI or Axis tag
TorqueTarget0.1% rated torqueINTAxis 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

BITNameValueDescription
B0Start/New Set Point

0

  • Do not execute any changes in profile registers
  • Do not start a new profile
  • Any profile currently in motion will be completed
0 → 1
  • Start a profile move defined by the profile registers
  • 0 → 1 transition is required to start a profile after
    • an error has been cleared
    • a home has been completed
    • a stop command has been given from CML or an input.
1Execute 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.

NameUnitData TypeAccess
SpeedTargetcounts/sDINTAOI(2) or Axis tag
AccelerationTarget1000 counts/s2INTAOI or Axis tag
DecelerationTarget(1)1000 counts/s2INTAOI or Axis tag
TorqueTarget0.1% rated torque (1)INTAxis 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

BITNameValueDescription
B0Start/New Set Point

0

  • Do not execute any changes in profile registers
  • Do not start a new profile
  • Any profile currently in motion will be completed
0 → 1
  • Start a profile move defined by the profile registers
  • 0 → 1 transition is required to start a profile after
    • an error has been cleared
    • a home has been completed
    • a stop command has been given from CML or an input.
1Execute 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.

NameUnitData TypeAccess
SpeedTargetcounts/sDINTAOI(1) or Axis tag
TorqueTarget

0.1% rated torque

Range: ± 1100

Where:

  • 1100 = peak torque 
  • 1000 = rated torque
INTAOI or Axis Tag

(1) MoveTorque AOI

General Resources

EDS File

The CM1-T EtherNet/IP eds file can be found on the Datasheets and Downloads page.

CM1-T Library

The CM1-T Library for use with Codesys, Schneider, Beckhoff, Wago and other IEC 61131-3 PLCs can be found on the Datasheets and Downloads page.

RSLogix Resources

See Datasheets and Downloads to download the UDTs, AOIs and sample program.

User Data Types

Direct Control Operation

CM1T_Axis

The CM1-T_Axis data type defines how the bytes are assigned withing the IO message.

NameData TypeDescription
InputSINT[36]Data coming from the CM1-T
OutputSINT[28]Data going to the CM1-T
us50CounterDINTMotor 50us counter
ModeOfOperationSINTSelect control mode
ModeOfOperationDisplaySINTCurrent control mode
ControlwordCM1T_ControlwordControl operation
DriveStatusCM1T_DriveStatusDrive status
PositionTargetDINTTarget position for position move
SpeedTargetDINTMax speed for target move
TorqueTargetINTMax torque for target move
AccelerationTargetINTAcceleration for target move
DecelerationTargetINTDeceleration for target move
PositionActualDINTActual position of the motor
TargetActualDINT1ms target position of the motor
PositionErrorDINTError between actual and target
SpeedActualDINTActual speed of the motor
CurrentActualINTActual current percentage of the motor (0.1% rated)
OverloadActualINT0.1% of overload torque
DCVoltageINT24V DC input value at 0.1V
AnalogININT10bit analog input (0-1023)
DigitalINSINTRead digital inputs
DigitalOUTSINTSet digital outputs
TemperatureSINTDrive temperature in °C
ErrorCodeSINTErrorCode is currently reserved and returns 0.
Use MotorStatus to get motor error information
ReadAddress1INTAddress of register to read
ReadValue1DINTValue of read register
ReadValueAddress1INTAddress of the current read register
WriteValue1DINTRegister write value
WriteRegister1INTWrite register address

CM1T_Controlword

NameData TypeDescription
StartBOOLStart/New set point
HaltBOOLHalt current motion
Relative_MoveBOOLExecute position move as relative
Speed_ControlBOOLExecute move as a speed only move
DisableBOOLDisable the drive
Reset_ErrorBOOLReset error with rising edge
Set_to_ZeroBOOLSet the current position to zero with rising edge
HomeBOOLHome the motor with rising edge

CM1T_DriveStatus

NameData TypeDescription
StatusValueSINTMotor status and error type
StatusValue1SINTAdditional motor status
In_PositionBOOLMotor is in position and ready to move
MovingBOOLMotor is currently moving
DisabledBOOLDrive is disabled
ErrorBOOLDrive is in error state
MoveCompleteBOOLMove is completed
NewStartRequiredBOOLRising edge required to restart motion
HomeAchievedBOOLHoming has been achieved

CML Operation

CM1T_CMLAxis

The CM1-T_CMLAxis data type defines how the bytes are assigned withing the IO message.

NameData TypeDescription
InputSINT[60]Data coming from the CM1-T
OutputSINT[44]Data going to the CM1-T
us50CounterDINTMotor 50us counter
DriveStatusCM1T_DriveStatusDrive status
PositionActualDINTActual position of the motor
TargetActualDINT1ms target position of the motor
PositionErrorDINTError between actual and target
SpeedActualDINTActual speed of the motor
CurrentActualINTActual current percentage of the motor (0.1% rated)
OverloadActualINT0.1% of overload torque
DCVoltageINT24V DC input value at 0.1V
AnalogININT10bit analog input (0-1023)
DigitalINSINTRead digital inputs
DigitalOUTSINTSet digital outputs
TemperatureSINTDrive temperature in °C
ErrorCodeSINT(1) - ErrorCode is currently unused and returns 0. Use MotorStatus to get motor error information
WriteValueDINT[5]

Register write value (array)

Address of register to read

ReadValueDINT[5]Value of read register (array)
WriteAddressINT[5]Write register address (array)
ReadAddressINT[5]Read address register (array)
ReadValueAddressINT[5]Address of the current returned read register (array)

CM1T_CMLDriveStatus

NameData TypeDescription
StatusValueSINTMotor status and error type
StatusValue1SINTAdditional motor status
In_PositionBOOLMotor is in position and ready to move
MovingBOOLMotor is currently moving
DisabledBOOLDrive is disabled
ErrorBOOLDrive is in error state
HomeAchievedBOOLHoming has been achieved

Add-On Instructions

Direct Control Operation

The following tables outlines the available add-on instructions

NameDescriptionRequired
CM1T_DataExchangeExchanges data between the drive and the drive variableYes
CM1T_EnableEnables the motorNo
CM1T_DisableDisables the motorNo
CM1T_ClearFaultClears any faults on the driveNo
CM1_TControlModeSet the type of control mode requiredNo
CM1T_MoveAbsoluteExecutes an absolute position moveNo
CM1T_MoveRelativeExecutes a relative position moveNo
CM1T_MoveSpeedExecutes a speed moveNo
CM1T_MoveTorqueExecutes a torque moveNo
CM1T_MoveHomeExecutes a home routineNo
CM1T_ReadRegisterRead a motor register valueNo
CM1T_WriteRegisterWrite a value to a motor registerNo


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

  1. It exchanges data between the motor connections and the motor/drive tag.
  2. It places the Controlword bits into the Controlword data type
  3. It retrieves the drive status and places it into the DriveStatus variable.

Parameters
OperandTypeFormatDescription
CM1T_DataExchangeCM1T_DataExchangeTagInstance tag for the AOI
DriveInputAB:ETHERNET_MODULE_SINT_32Bytes:I:0TagModule defined connection input for the CM1-T
DriveOutputAB:ETHERNET_MODULE_SINT_20Bytes:O:0TagModule defined connection output for the CM1-T
CM1T_AxisCM1T_AxisTagWorking tag for the CM1-T axis
Execution
ConditionAction
Prescan
  • Initialize tag and local variables
  • rung-condition-out is set to false
Rung Condition - TRUE
  • Process DataExchange
  • rung-condition-out is set to true
Rung Condition - FALSEN/A - rung-condition-out is set to false

CM1T_Enable

This AOI enables the motor and drive. Torque will be present.

Parameters
OperandTypeFormatDescription
CM1T_EnableCM1T_EnableTagInstance tag for the AOI
CM1T_AxisCM1T_AxisTagWorking tag for the CM1-T axis
Execution
ConditionAction
prescan

N/A - rung-condition-out is set to false

rung-condition-in is true
  1. Drive disable bit is set to false (drive is enabled)
  2. rung-condition-out is set
    1. true - when drive status bit shows drive enabled
    2. false - when drive status bit show drive disabled
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
OperandTypeFormatDescription
CM1T_DisableCM1T_DisableTagInstance tag for the AOI
CM1T_AxisCM1T_AxisTagWorking tag for the CM1-T axis
Execution
ConditionAction
prescan

N/A - rung-condition-out is set to false

rung-condition-in is true
  1. Drive disable bit is set to true (drive is disabled)
  2. rung-condition-out is set
    1. true - when drive status bit shows drive disabled
    2. false - when drive status bit show drive enabled
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
OperandTypeFormatDescription
CM1T_ClearFaultCM1T_ClearFaultTagInstance tag for the AOI
CM1T_AxisCM1T_AxisTagWorking tag for the CM1-T axis
Execution
ConditionAction
PrescanN/A
rung-condition-in is true
  • Assert clear error bit
  • rung-condition-out is set
    • true - when drive status bit shows drive error
    • false - when drive status bit shows no drive error
rung-condition-in is false
  • Deassert clear error bit
  • rung-condition-out is set
    • true - when drive status bit shows drive error
    • false - when drive status bit shows no drive error

CM1T_ControlMode

This AOI set the motion control mode.

Parameters
OperandTypeFormatDescription
CM1T_DisableCM1T_ControlModeTagInstance tag for the AOI
CM1T_AxisCM1T_AxisTagWorking tag for the CM1-T axis
ControlMode_ValueDINT

Immediate/
Tag

A value that sets the type of control mode required

0 - POSITION
1 - SPEED
2 - TORQUE

Execution
ConditionAction
prescan

N/A - rung-condition-out is set to false

rung-condition-in is true
  • Sets ModeOfOperation value and Controlword bits to set the control mode required
  • rung-condition-out is true
rung-condition-in is false

N/A - rung-condition-out is set to false

CM1T_MoveAbsolute

This AOI will execute an absolute position move.

Parameters
OperandTypeFormatDescription
CM1T_MoveAbsoluteCM1T_MoveAbsoluteTagInstance tag for the AOI
CM1T_AxisCM1T_AxisTagWorking tag for the CM1-T axis
PositionDINT

Immediate/
Tag

Target absolute position

SpeedDINTImmediate/
Tag
Target speed
AccelerationINTImmediate/
Tag
Target acceleration
Deceleration (optional)INTImmediate/
Tag
Target deceleration
(uses acceleration if set to 0)
Execution
ConditionAction
prescan

N/A - rung-condition-out is set to false

rung-condition-in is true
  • Processes values and sets start bit
  • rung-condition-out is true
rung-condition-in is false

N/A - rung-condition-out is set to false

CM1T_MoveRelative

This AOI will execute a relative position move.

Parameters
OperandTypeFormatDescription
CM1T_MoveRelativeCM1T_MoveRelativeTagInstance tag for the AOI
CM1T_AxisCM1T_AxisTagWorking tag for the CM1-T axis
PositionDINT

Immediate/
Tag

Target absolute position

SpeedDINTImmediate/
Tag
Target speed
AccelerationINTImmediate/
Tag
Target acceleration
Deceleration (optional)INTImmediate/
Tag
Target deceleration
(uses acceleration if set to 0)
StartBOOL

Immediate/
Tag

0 → 1 transition will execute a new relative move.

If a motion is currently in process it will increment relative to the current position

Execution
ConditionAction
prescan

N/A - rung-condition-out is set to false

rung-condition-in is true
  • Processes values and sets start bit as per Start input variable
  • rung-condition-out is true
rung-condition-in is false

N/A - rung-condition-out is set to false

CM1T_MoveSpeed

This AOI will execute a speed move.

Parameters
OperandTypeFormatDescription
CM1T_MoveSpeedCM1T_MoveSpeedTagInstance tag for the AOI
CM1T_AxisCM1T_AxisTagWorking tag for the CM1-T axis
SpeedDINTImmediate/
Tag
Target speed
AccelerationINTImmediate/
Tag
Target acceleration
Deceleration (optional)INTImmediate/
Tag
Target deceleration
(uses acceleration if set to 0)
Execution
ConditionAction
prescan

N/A - rung-condition-out is set to false

rung-condition-in is true
  • Processes values and start the speed move
  • rung-condition-out is true
rung-condition-in is false

N/A - rung-condition-out is set to false

CM1T_MoveTorque

This AOI will execute a torque move.

Parameters
OperandTypeFormatDescription
CM1T_MoveSpeedCM1T_MoveSpeedTagInstance tag for the AOI
CM1T_AxisCM1T_AxisTagWorking tag for the CM1-T axis
TorqueINTImmediate/
Tag
Target torque
MaxSpeedDINTImmediate/
Tag
Target speed
Execution
ConditionAction
prescan

N/A - rung-condition-out is set to false

rung-condition-in is true
  • Processes values and start the torque move
  • rung-condition-out is true
rung-condition-in is false

N/A - rung-condition-out is set to false

CM1T_ReadRegister

This AOI loads a register address to read. It returns the register value. The value is returned when the ReadRegister (output) address and the ReadValueAddress (input) address are equal.

Parameters
OperandTypeFormatDescription
CM1T_ReadRegisterCM1T_ReadRegisterTagInstance tag for the AOI
CM1T_AxisCM1T_AxisTagWorking tag for the CM1-T axis
AddressINT

Immediate/

Tag
Address of register to read
ValueDINTTagTag to load the returned value
DoneBOOLTagOptional output indicating the value has been returned.
Execution
ConditionAction
prescan

N/A - rung-condition-out is set to false

rung-condition-in is true
  • Processes values and start the torque move
  • rung-condition-out is true
rung-condition-in is false

N/A - rung-condition-out is set to false

CM1T_WriteRegister

This AOI loads a register address and value to write. Once the write cycle is complete the done output is set.

Parameters
OperandTypeFormatDescription
CM1TWriteRegisterCM1T_WriteRegisterTagInstance tag for the AOI
CM1T_AxisCM1T_AxisTagWorking tag for the CM1-T axis
AddressINT

Immediate/

Tag
Address of register to write
ValueDINT

Immediate/
Tag

Tag/value to load into the write value
DoneBOOLTagOptional output indicating the value has been written.
Execution
ConditionAction
prescan

N/A - rung-condition-out is set to false

rung-condition-in is true
  • Processes values and start the torque move
  • rung-condition-out is true
rung-condition-in is false

N/A - rung-condition-out is set to false

CML Operation

The following tables outlines the available add-on instructions

NameDescriptionRequired
CM1T_CMLDataExchangeExchanges data between the drive and the drive variableYes
CM1T_CMLReadRegisterReads a motor registerNo
CM1T_CMLWriteRegisterWrites to a motor registerNo

CM1T_CMLDataExchange

This AOI is required if any other CML AOIs are used. One instance is required for each CM1-T axis being controlled.

It has a number of functions

  1. It exchanges data between the motor connections and the motor/drive tag.
  2. It retrieves the drive status and places it into the DriveStatus variable.

Parameters
OperandTypeFormatDescription
CM1T_DataExchangeCM1T_DataExchangeTagInstance tag for the AOI
DriveInputAB:ETHERNET_MODULE_SINT_32Bytes:I:0TagModule defined connection input for the CM1-T
DriveOutputAB:ETHERNET_MODULE_SINT_20Bytes:O:0TagModule defined connection output for the CM1-T
CM1T_AxisCM1T_AxisTagWorking tag for the CM1-T axis
Execution
ConditionAction
PrescanN/A - rung-condition-out is set to false
Rung Condition - TRUE
  • Process DataExchange
  • rung-condition-out is set to true
Rung Condition - FALSEN/A - rung-condition-out is set to false

CM1T_CMLReadRegister

This AOI loads a register address to read. It returns the register value. The value is returned when the ReadRegister (output) address and the ReadValueAddress (input) address are equal.

Parameters
OperandTypeFormatDescription
CM1T_ReadRegisterCM1T_ReadRegisterTagInstance tag for the AOI
CM1T_AxisCM1T_AxisTagWorking tag for the CM1-T axis
SlotSINTImmediate/
Tag
There are 5 slots available. Enter 1-5.
AddressINT

Immediate/

Tag
Address of register to read
ValueDINTTagTag to load the returned value
DoneBOOLTagOptional output indicating the value has been returned.
Execution
ConditionAction
prescan

N/A - rung-condition-out is set to false

rung-condition-in is true
  • Processes values and start the torque move
  • rung-condition-out is true
rung-condition-in is false

N/A - rung-condition-out is set to false

CM1T_CMLWriteRegister

This AOI loads a register address and value to write. Once the write cycle is complete the done output is set.

Parameters
OperandTypeFormatDescription
CM1TWriteRegisterCM1T_WriteRegisterTagInstance tag for the AOI
CM1T_AxisCM1T_AxisTagWorking tag for the CM1-T axis
SlotSINTImmediate/
Tag
There are 5 slots available. Enter 1-5.
AddressINT

Immediate/

Tag
Address of register to write
ValueDINT

Immediate/
Tag

Tag/value to load into the write value
DoneBOOLTagOptional output indicating the value has been written.
Execution
ConditionAction
prescan

N/A - rung-condition-out is set to false

rung-condition-in is true
  • Processes values and start the torque move
  • rung-condition-out is true
rung-condition-in is false

N/A - rung-condition-out is set to false

Adding CM1-T and AOIs to Project

Download and extract the CM1-T_AOIs.zip support file.

The file includes the following

  1. Direct Control Operation
    1. CM1T_SampleApplication.ACD - This a sample application built RSLogix. It shows how to
      1. Run the motors in each of the modes
      2. Reset from faults
      3. Enable/Disable the motor
    2. User Data Types (UDT)
    3. Add-On Instructions (AOI)
  2. CML Operation
    1. CM1T_CMLSampleApplication.ACD - RSLogix application to read/write motor registers
    2. CM1T_CMLSampleApplication.crp - Control Room project with CML sample program.
      1. Executes incremental move if variable is set (Run, distance, speed and acceleration set from PLC)
      2. Increments counter variable (Variable read in PLC)
    3. User Data Types (UDT)
    4. Add-On Instructions (AOI)

Direct Control Operation

Import User Data Types (UDTs)

The following steps show how to import the UDTs used by the CM1-T module.

  1. Right click on Data Types → User-Defined and select "Import Data Type..."
  2. Browse to the location where the CM1T_AOI support file was extracted. Select the CM1T_Axis and click import. 
  3. On the Import Configuration window click OK
  4. The CM1T_Axis, CM1T_Controlword and CM1T_DriveStatus should all have been import as shown below. If they were not repeat steps 1-3 with the CM1T_Controlword and CM1T_DriveStatus.

Import Add-On Instructions (AOIs)

The following steps show how to import the CM1-T modules AOIs. The only required AOI is CM1T_DataExchange. All the other AOIs depend on this one to populate the data type.

  1. Right click on Add-On Instructions and select "Import Add-On Instruction..."
  2. Browse to the extracted AOI folder and select CM1T_DataExchange. Click Import
  3. On the Configuration Import window click OK.
  4. Repeat steps 1-3 until all required AOIs are imported
  5. The Add-On Instruction tree will look as follows once all AOIs are imported

Add CM1-T Module

The following steps show how to add an CM1-T module in RSLogix. At present the EtheNet/IP is in testing and the CM1-T is added a a generic module.

  1. Open an existing project or start a new one
  2. In the Controller Organizer expand I/O Configuration and right click on "Ethernet". Select "New Module"
  3. Search "Generic", Select "ETHERNET-MODULE" and click Create
  4. Fill in the following properties shown below
    1. Name: Give the drive a name. E.g. CM1T_Drive, Axis1, LabelXAxis, etc
    2. Comm Format: Data - SINT
    3. IP Address: Enter the IP Address of the CM1-T you are adding.
    4. Connection Parameters
      1. Input: Assembly Instance = 100, Size = 36
      2. Output: Assembly Instance = 112, Size = 28
      3. Configuration: Assembly Instance = 1, Size = 0
    5. Click OK
  5. The Module Properties window should open. If it does not double click on the newly created module inside the Ethernet heading.
    Select the Connection Tab
    1. Set the packet interval as required. Typically this would be 10ms.
    2. Check the boxes as shown in the picture above

The final set of steps below shows how to add the CM1T_DataExchange AOI and configure it to exchange data between the tag created for the CM1-T and the CM1-T module. A single instance of the CM1T_DataExchange should be created per module. There should never be more than one per module.

  1. Add the CM1T_DataExchange AOI to a rung
  2. Create a CM1T_DataExchange Tag and attached it to this instance. In this example it is called FB_CM1T_DataExchnage
  3. Expand the DriveInput drop down menu and select the CM1T_Drive module input create earlier
  4. Expand the DriveOuput drop down menu and select the CM1T_Drive module output create earlier
  5. Create a new CM1T_Axis tag and attach it to the instruction. This is the tag that will be used in all other AOIs


All CM1-T AOIs are now ready to be used. See the example application for more details on running the motor.

Example Logic - Direct Control Operation Sample

The following logic is from the Direct operation sample application. The example shows how to run the motor in each of the modes, enable, disable, halt, and recover from an error.

CML Operation

Import User Data Types (UDTs)

Following the instructions for Direct Control Operation except import 

  • CM1T_CMLAxis
  • CM1T_CMLDriveStatus

Import Add-On Instructions (AOIs)

Follow the instructions for Direct Control Operation except import

  • CM1T_CMLDataExchange
  • CM1T_CMLReadRegister
  • CM1T_CMLWriteRegister

Add CM1-T Module

Follow the instructions for Direct Control Operation except on step 4 enter the following configuration data

  1. Name: Give the drive a name. E.g. CM1T_Drive, Axis1, LabelXAxis, etc
  2. Comm Format: Data - SINT
  3. IP Address: Enter the IP Address of the CM1-T you are adding.
  4. Connection Parameters
    1. Input: Assembly Instance = 101, Size = 60
    2. Output: Assembly Instance = 113, Size = 44
    3. Configuration: Assembly Instance = 1, Size = 0
  5. Click OK

Example Logic - CML Operation Sample

The following sample logic is supplied with the AOIs. It requires the motor to be programmed with a CML program. The program does the following

  1. Motor indexes continuously by the distance amount defined by PLC
  2. Motor indexes with speed and acceleration defined by PLC
  3. Indexing is started and stopped by PLC
  4. A counter showing number of indexes is read by the PLC

Appendix

A - Support Files

See Datasheets and Downloads.

B - Complete Register Address Map 

K Registers

RegisterAddress
HexDecimal
K2116#0115277
K2216#0116278
K2316#0117279
K2416#0118280
K2516#0119281
K2616#011A282
K2716#011B283
K2816#011C284
K2916#011D285
K3016#011E286
K3116#011F287
K3216#0120288
K3316#0121289
K3416#0122290
K3516#0123291
K3616#0124292
K3716#0125293
K3816#0126294
K3916#0127295
K4016#0128296
K4116#0129297
K4216#012A298
K4316#012B299
K4416#012C300
K4516#012D301
K4616#012E302
RegisterAddress
HexDecimal
K4716#012F303
K4816#0130304
K4916#0131305
K5016#0132306
K5116#0133307
K5216#0134308
K5316#0135309
K5416#0136310
K5516#0137311
K5616#0138312
K5716#0139313
K5816#013A314
K5916#013B315
K6016#013C316
K6116#013D317
K6216#013E318
K6316#013F319
K6416#0140320
K6516#0141321
K6616#0142322
K6716#0143323
K6816#0144324
K6916#0145325
K7016#0146326
K7116#0147327
K7216#0148328

  

RegisterAddress
HexDecimal
K7316#0149329
K7416#014A330
K7516#014B331
K7616#014C332
K7716#014D333
K7816#014E334
K7916#014F335

K80

16#0150336
K8116#0151337
K8216#0152338
K8316#0153339
K8416#0154340
K8516#0155341
K8616#0156342
K8716#0157343
K8816#0158344
K8916#0159345
K9016#015A346

H Registers

RegisterAddress
HexDecimal
H016#0200512
H116#0201513
H216#0202514
H316#0203515
H416#0204516
H516#0205517
H616#0206518
H716#0207519

  

  

P Registers

RegisterAddress
HexDecimal
P016#0300768
P116#0301769
P216#0302770
P316#0303771
P416#0304772
P516#0305773
P616#0306774
P716#0307775
P816#0308776
P916#0309777
P1016#030A778
P1116#030B779
P1216#030C780
P1316#030D781
P1416#030E782
P1516#030F783
P1616#0310784
P1716#0311785
P1816#0312786
P1916#0313787
P2016#0314788
P2116#0315789
P2216#0316790
P2316#0317791
P2416#0318792
P2516#0319793

S Registers

RegisterAddress
HexDecimal
S016#04001024
S116#04011025
S216#04021026
S316#04031027
S416#04041028
S516#04051029
S616#04061030
S716#04071031
S816#04081032
S916#04091033
S1016#040A1034
S1116#040B1035
S1216#040C1036
S1316#040D1037
S1416#040E1038
S1516#040F1039

  

A Registers

RegisterAddress
HexDecimal
A016#05001280
A116#05011281
A216#05021282
A316#05031283
A416#05041284
A516#05051285
A616#05061286
A716#05071287
A816#05081288

T Registers

RegisterAddress
HexDecimal
T116#06011537
T216#06021538
T316#06031539
T416#06041540
T516#06051541
T616#06061542
T716#06071543
T816#06081544

M Registers

RegisterAddress
HexDecimal
M016#07001792
M116#07011793
M216#07021794
M316#07031795
M416#07041796
M516#07051797
M616#07061798
M716#07071799

R Registers

RegisterAddress
HexDecimal
R016#08002048
R116#08012049
R216#08022050
R316#08032051
R416#08042052
R516#08052053
R616#08062054
R716#08072055
R816#08082056
R916#08092057
R1016#080A2058
R1116#080B2059
R1216#080C2060
R1316#080D2061
R1416#080E2062
R1516#080F2063
R1616#08102064
R1716#08112065
R1816#08122066
R1916#08132067
R2016#08142068
R2116#08152069
R2216#08162070
R2316#08172071
R2416#08182072
R2516#08192073

N Registers

RegisterAddress
HexDecimal
N016#09002304
N116#09012305
N216#09022306
N316#09032307
N416#09042308
N516#09052309
N616#09062310
N716#09072311
N816#09082312
N916#09092313
N1016#090A2314
N1116#090B2315
N1216#090C2316
N1316#090D2317
N1416#090E2318
N1516#090F2319
N1616#09102320
N1716#09112321
N1816#09122322
N1916#09132323
N2016#09142324
N2116#09152325
N2216#09162326
N2316#09172327
N2416#09182328
N2516#09192329

V Registers

RegisterAddress
HexDecimal
V016#0A002560
V116#0A012561
V216#0A022562
V316#0A032563
V416#0A042564
V516#0A052565
V616#0A062566
V716#0A072567
V816#0A082568
V916#0A092569
V1016#0A0A2570
V1116#0A0B2571
V1216#0A0C2572
V1316#0A0D2573
V1416#0A0E2574
V1516#0A0F2575


  • No labels