The EtherCAT State Machine (ESM) is required on all EtherCAT devices. The ESM in general
The ESM states can be transitioned as shown
Init State
Pre-Operational State
Safe-Operational State
Operational State
Bootstrap State
The use of EtherCAT Device identification is to identify an EtherCAT slave explicitly. This is necessary for the following use cases:
The Device Identification value can be used optionally for unique addressing.
The CM1-E uses 2 rotary selectors on the side of the motor to set the ID. These use hexadecimal values to set the range from 0-255. The values are set as follows
x10 | x1 | |
---|---|---|
Description | Most significant 4 bits | Least significant 4 bits |
Example value | Bh | 5h |
Combined value | B5h (181d) |
The following ID range is permissible
ID | Usage |
---|---|
0x00 (0) | No ID is set and Explicit Device ID is not used |
0x01-0xFE (1-254) | Explicit Device ID has been set |
0xFF (255) | Reserved
|
For backwards compatibility with certain master controllers the Configured Station Alias Register 0x0012 may be used. The following conditions exist:
Explicit Device ID Value | Configured Station Alias Value | Usage |
---|---|---|
0 | 0 | No identification used or expected |
>0 | 0 | Explicit Device ID is used |
0 | >0 | Configured Station Alias is used |
>0 | >0 | Internal error generated |
The CM1-E slave will accept a number of PDO rates. The rate is auto-detected and no additional setup is required on the slave.
Accepted rates are
The detected rate can be read in object 0xFE00:1.
The Cool Muscle EtherCAT slave has a few static PDO mapping options. It does not use dynamic mapping.
Position units are in encoder counts (pulses). There are 50,000 encoder counts per revolution.
The following mappings are available.
This mapping is useful as a generic mapping. The master can run in any of the available modes as well as switch dynamically between them. The PDO also offers a lot of feedback information for diagnostics.
Object | Name | Units | Data Type | Applicable Modes of Operation | Description |
---|---|---|---|---|---|
0x6040 | Controlword | - | UINT16 | All | The Controlword is used to control the state of the mode of operation. |
0x60FE | Digital outputs | - | UINT16 | All | Set the state of the digital outputs |
0x607A | Target position | units | INT32 | CSP, PP | Set the target position of the motor |
0x60FF | Target speed | units/ms units/s | INT32 | CSV PV | Set the target speed of the motor. Note PV mode and CSV mode have different units. |
0x6060 | Modes of operation | - | INT8 | All | Set the required mode of operation |
Object | Name | Units | Data Type | Applicable Modes of Operation | Description |
---|---|---|---|---|---|
0x6041 | Statusword | - | UINT16 | All | The Statusword describes the current state of the mode of operation. |
0x603F | Error Code | - | UINT16 | All | The actual error code currently active. |
0x6064 | Position Actual Value | units | INT32 | All | The value of the motor's actual position |
0x606C | Speed Actual Value | units/ms | INT32 | All | The value of the motor's actual speed |
0x6077 | Torque Actual Value | 0.1% rated torque | INT16 | All | The value of the motor's actual peak torque |
0x60FD | Digital Inputs | - | UINT16 | All | Digital inputs status |
0x2301 | Temperature | °c | INT16 | All | The actual motor temperature in °c. |
0x6079 | DC Voltage | 0.1VDC | INT16 | All | The actual DC 24V DC bus voltage |
0x6061 | Modes of operation display | - | INT8 | All | The mode of operation currently running. |
This mapping is useful when a minimum amount of data wants to be transferred using CSP mode.
Object | Name | Units | Data Type | Applicable Modes of Operation | Description |
---|---|---|---|---|---|
0x6040 | Controlword | - | UINT16 | All | The Controlword is used to control the state of the mode of operation. |
0x60FE | Digital outputs | - | UINT16 | All | Set the state of the digital outputs |
0x607A | Target position | units | INT32 | CSP, PP | Set the target position of the motor |
Object | Name | Units | Data Type | Applicable Modes of Operation | Description |
---|---|---|---|---|---|
0x6041 | Statusword | - | UINT16 | All | The Statusword describes the current state of the mode of operation. |
0x603F | Error Code | - | UINT16 | All | The actual error code currently active. |
0x6064 | Position Actual Value | units | INT32 | All | The value of the motor's actual position |
0x6077 | Torque Actual Value | 0.1% rated torque | INT16 | All | The value of the motor's actual peak torque |
0x606C | Speed Actual Value | units/ms | INT32 | All | The value of the motor's actual speed |
0x60FD | Digital Inputs | - | UINT16 | All | Digital inputs status |
This mapping is useful when a minimum amount of data wants to be transferred using CSP mode.
Object | Name | Units | Data Type | Applicable Modes of Operation | Description |
---|---|---|---|---|---|
0x6040 | Controlword | - | UINT16 | All | The Controlword is used to control the state of the mode of operation. |
0x60FE | Digital outputs | - | UINT16 | All | Set the state of the digital outputs |
0x60FF | Target speed | units/ms | INT32 | CSV | Set the target speed of the motor. Note PV mode and CSV mode have different units. |
Object | Name | Units | Data Type | Applicable Modes of Operation | Description |
---|---|---|---|---|---|
0x6041 | Statusword | - | UINT16 | All | The Statusword describes the current state of the mode of operation. |
0x603F | Error Code | - | UINT16 | All | The actual error code currently active. |
0x6064 | Position Actual Value | units | INT32 | All | The value of the motor's actual position |
0x6077 | Torque Actual Value | 0.1% rated torque | INT16 | All | The value of the motor's actual peak torque |
0x606C | Speed Actual Value | units/ms | INT32 | All | The value of the motor's actual speed |
0x60FD | Digital Inputs | - | UINT16 | All | Digital inputs status |
This mapping is useful when profile position or profile velocity mode is used.
Object | Name | Units | Data Type | Applicable Modes of Operation | Description |
---|---|---|---|---|---|
0x6040 | Controlword | - | UINT16 | All | The Controlword is used to control the state of the mode of operation. |
0x60FE | Digital outputs | - | UINT16 | All | Set the state of the digital outputs |
0x607A | Target position | units | INT32 | CSP, PP | Set the target position of the motor |
0x60FF | Target speed | units/ms units/s | INT32 | CSV PV | Set the target speed of the motor. Note PV mode and CSV mode have different units. |
0x6081 | Profile velocity | - | UINT32 | PP | Set the required mode of operation |
0x6083 | Profile acceleration | UINT32 | PP, PV |
Object | Name | Units | Data Type | Applicable Modes of Operation | Description |
---|---|---|---|---|---|
0x6041 | Statusword | - | UINT16 | All | The Statusword describes the current state of the mode of operation. |
0x603F | Error Code | - | UINT16 | All | The actual error code currently active. |
0x6064 | Position Actual Value | units | INT32 | All | The value of the motor's actual position |
0x606C | Speed Actual Value | units/ms | INT32 | All | The value of the motor's actual speed |
0x6077 | Torque Actual Value | 0.1% rated torque | INT16 | All | The value of the motor's actual peak torque |
0x60FD | Digital Inputs | - | UINT16 | All | Digital inputs status |
0x2301 | Temperature | °c | INT16 | All | The actual motor temperature in °c. |
0x6079 | DC Voltage | 0.1VDC | INT16 | All | The actual DC 24V DC bus voltage |