Page tree
Skip to end of metadata
Go to start of metadata

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. 

Explicit Device ID

General Description

The use of EtherCAT Device identification is to identify an EtherCAT slave explicitly. This is necessary for the following use cases:

  • Hot Connect applications 
    Within some applications it might be useful to connect or disconnect parts of the network. In this case the master must have the possibility to identify which part of the network is available.
  • Prevention against cable swapping 
    If at least two identical devices are used in one application it might be necessary to prevent the mix-up of these devices by cable swapping. Example Scenario: Within a machining center there might be two identical drives to work in X and Y direction. To avoid that the drives receive wrong process data, for example after a device replacement, an explicit identification of the devices can be used.

The Device Identification value can be used optionally for unique addressing.

Rotary Selectors

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


x10x1
DescriptionMost significant 4 bitsLeast significant 4 bits
Example valueBh5h
Combined valueB5h (181d)

ID Range Usage

The following ID range is permissible

IDUsage
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

  • Value cannot be used and will be read as 0 by the master

Configured Station Alias

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
00No identification used or expected
>00Explicit Device ID is used
0>0Configured Station Alias is used
>0>0Internal error generated

 

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

ObjectNameUnitsData TypeApplicable Modes of OperationDescription
0x6040Controlword-UINT16AllThe Controlword is used to control the state of the mode of operation.
0x60FEDigital outputs-UINT16AllSet the state of the digital outputs
0x607ATarget positionunitsINT32CSP, PPSet the target position of the motor
0x60FFTarget speed

units/ms

units/s

INT32

CSV

PV

Set the target speed of the motor. Note PV mode and CSV mode have different units.
0x6060Modes of operation-INT8AllSet the required mode of operation

TxPDO - 0x1A00

ObjectNameUnitsData TypeApplicable Modes of OperationDescription
0x6041

Statusword

-UINT16AllThe Statusword describes the current state of the mode of operation.
0x603FError Code-UINT16AllThe actual error code currently active.
0x6064Position Actual ValueunitsINT32AllThe value of the motor's actual position
0x606CSpeed Actual Valueunits/msINT32AllThe value of the motor's actual speed
0x6077Torque Actual Value0.1% rated torqueINT16AllThe value of the motor's actual peak torque
0x60FDDigital Inputs-UINT16AllDigital inputs status
0x2301Temperature°cINT16AllThe actual motor temperature in °c.
0x6079DC Voltage0.1VDCINT16AllThe actual DC 24V DC bus voltage
0x6061Modes of operation display-INT8AllThe 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

ObjectNameUnitsData TypeApplicable Modes of OperationDescription
0x6040Controlword-UINT16AllThe Controlword is used to control the state of the mode of operation.
0x60FEDigital outputs-UINT16AllSet the state of the digital outputs
0x607ATarget positionunitsINT32CSP, PPSet the target position of the motor

TxPDO - 0x1A01

ObjectNameUnitsData TypeApplicable Modes of OperationDescription
0x6041

Statusword

-UINT16AllThe Statusword describes the current state of the mode of operation.
0x603FError Code-UINT16AllThe actual error code currently active.
0x6064Position Actual ValueunitsINT32AllThe value of the motor's actual position
0x6077Torque Actual Value0.1% rated torqueINT16AllThe value of the motor's actual peak torque
0x606CSpeed Actual Valueunits/msINT32AllThe value of the motor's actual speed
0x60FDDigital Inputs-UINT16AllDigital inputs status

CSV Mode

This mapping is useful when a minimum amount of data wants to be transferred using CSP mode.

RxPDO - 0x1602

ObjectNameUnitsData TypeApplicable Modes of OperationDescription
0x6040Controlword-UINT16AllThe Controlword is used to control the state of the mode of operation.
0x60FEDigital outputs-UINT16AllSet the state of the digital outputs
0x60FFTarget speed

units/ms


INT32

CSV

Set the target speed of the motor. Note PV mode and CSV mode have different units.

TxPDO - 0x1A02

ObjectNameUnitsData TypeApplicable Modes of OperationDescription
0x6041

Statusword

-UINT16AllThe Statusword describes the current state of the mode of operation.
0x603FError Code-UINT16AllThe actual error code currently active.
0x6064Position Actual ValueunitsINT32AllThe value of the motor's actual position
0x6077Torque Actual Value0.1% rated torqueINT16AllThe value of the motor's actual peak torque
0x606CSpeed Actual Valueunits/msINT32AllThe value of the motor's actual speed
0x60FDDigital Inputs-UINT16AllDigital inputs status

Profile Mode

This mapping is useful when profile position or profile velocity mode is used.

RxPDO - 0x1603

ObjectNameUnitsData TypeApplicable Modes of OperationDescription
0x6040Controlword-UINT16AllThe Controlword is used to control the state of the mode of operation.
0x60FEDigital outputs-UINT16AllSet the state of the digital outputs
0x607ATarget positionunitsINT32CSP, PPSet the target position of the motor
0x60FFTarget speed

units/ms

units/s

INT32

CSV

PV

Set the target speed of the motor. Note PV mode and CSV mode have different units.
0x6081Profile velocity-UINT32PPSet the required mode of operation
0x6083Profile acceleration
UINT32PP, PV

TxPDO - 0x1A03

ObjectNameUnitsData TypeApplicable Modes of OperationDescription
0x6041

Statusword

-UINT16AllThe Statusword describes the current state of the mode of operation.
0x603FError Code-UINT16AllThe actual error code currently active.
0x6064Position Actual ValueunitsINT32AllThe value of the motor's actual position
0x606CSpeed Actual Valueunits/msINT32AllThe value of the motor's actual speed
0x6077Torque Actual Value0.1% rated torqueINT16AllThe value of the motor's actual peak torque
0x60FDDigital Inputs-UINT16AllDigital inputs status
0x2301Temperature°cINT16AllThe actual motor temperature in °c.
0x6079DC Voltage0.1VDCINT16AllThe actual DC 24V DC bus voltage
  • No labels