EtherCAT State Machine
The EtherCAT State Machine (ESM) is required on all EtherCAT devices. The ESM in general
- defines 5 communication states of the slave device
- Init, Pre-Operational, Safe-Operational, Operational
- Bootstrap is an optional state for firmware upload
- specifies initialization and error handling of the slave device
- identifies the current communication relationship between the master and slave device
- requested and current state are accessed through the AL Control and AL Status registers
The ESM states can be transitioned as shown
Init State
- No communication to the application layer is allowed
- master only has communication to the data link registers (slave device eeprom, addressing, etc)
Pre-Operational State
- Mailbox (SDO) communication to the application layer is available
- No Process Data (PDO) communication.
- PDO register mapping should be completed. Transition to Safe-Operation will configure mapping.
Safe-Operational State
- Mailbox (SDO) communication to the application layer is available
- Slave output (tx) Process Data (PDO) communication is evaluated
Operational State
- All communication is commenced and valid
Bootstrap State
- The bootstrap state is used when updating EtherCAT firmware.
PDO Mappings
The Cool Muscle EtherCAT slave has a few static PDO mapping options. It does not use dynamic mapping.
- The RxPDO is the PDO received by the motor/slave device
- The TxPDO is the PDO transmitted by the motor/slave device
Position units are in encoder counts (pulses). There are 50,000 encoder counts per revolution.
The following mappings are available.
Dynamic Switching of mode
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.
RxPDO - 0x1600
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 |
TxPDO - 0x1A00
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. |
CSP Mode
This mapping is useful when a minimum amount of data wants to be transferred using CSP mode.
RxPDO - 0x1601
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 |
TxPDO - 0x1A01
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 |
CSV Mode
This mapping is useful when a minimum amount of data wants to be transferred using CSP mode.
RxPDO - 0x1602
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. |
TxPDO - 0x1A02
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 |
Profile Mode
This mapping is useful when profile position or profile velocity mode is used.
RxPDO - 0x1603
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 |
TxPDO - 0x1A03
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 |