CoE interface – parameter management in the EtherCAT system
Background
Many different devices are used in an automation environment. These devices can be used separately or together in a group on a bus system. Such devices can be controllers, shaft encoders, servo drives, motors, I/O modules or sensors among other things.
Depending upon complexity, such a device must be parameterizable/adjustable for the respective requirement. Parameterization is perhaps not necessary in the case of a simple digital 24 V input with a fixed switching threshold and delay; in the case of a rotary encoder, however, it will not be possible to do without it (e.g. number of lines, absolute or relative, data format, etc.)
On top of that it can be of interest to store data in the device during production or operation.
The manufacturer could store production data such as device name, serial number, firmware version, calibration data or date of manufacture, if necessary provided with protection against access or amendment.
The user could store user calibration data and the application-specific settings in the device.
In order to create a user-friendly interface for device operation, different organizations have created various standards in which the following are defined:
- The device classes that exist (e.g.: class ‘rotary encoder’, ‘analogue input module’)
- The parameters that each representative of such a class has (obligatory and optional elements)
- The place where these parameters are to be found and the mechanism with which they are to be changed.
EtherCAT follows the so called CoE standard here: Can-Application-protocol-over-EtherCAT.
Can-over-EtherCAT
The CiA organization (CAN in Automation) pursues among other things the goal of creating order and exchangeability between devices of the same type by the standardization of device descriptions. For this purpose so-called profiles are defined, which conclusively describe the changeable and unchangeable parameters of a device. Such a parameter encompasses at least the following characteristics:
- Index number – for the unambiguous identification of all parameters. The index number is divided into a main index and a subindex in order to mark and arrange associated parameters.
- Main index
- Subindex, offset by a colon ‘:’ - Official name – in the form of an understandable, self-descriptive text
- Specification of changeability, e.g. whether it can only be read or can also be written
- A value – depending upon the parameter the value can be a text, a number or another parameter index.
Sample: the parameter ‘Vendor ID’ might have the index number 0x4120:01 and the numerical value ‘2’ as the ID of a Beckhoff device.
Since hexadecimal values are favored in the machine environment, the parameter is thus represented from the user’s point of view as
with the property RO (read only), because the vendor ID should not be changed by the user.
Such a list of parameters, the whole of the device-specific CoE directory, can become very extensive. The first entries of a Beckhoff EL3152 analog input terminal appear as follows in the TwinCAT System Manager:
![CoE interface – parameter management in the EtherCAT system 2:](Images/gif/2469189259__Web.gif)
The index numbers are specified in the profile; they begin in EtherCAT with 0x1000, because the underlying entries do not have to be displayed.
CoE directory – availability
An EtherCAT device can have a CoE directory, but does not need to have one. Simple slaves need no parameter directory or do not have the controller required for administration. On the other hand, the EtherCAT master (like TwinCAT) as a software EtherCAT device can also manage a CoE directory.
If present, the CoE directory is in operation from the PREOP state.
The object directory can be read via the SDO information service (Service Data Objects).
CoE directory – localization in the EtherCAT Slave
The CoE directory as a parameter system must be administrated in the device in the firmware (FW) in the local controller. This is the so-called online directory, because it is only available to the user if the EtherCAT slave is in operation with operating voltage supplied and, if applicable, can be manipulated via EtherCAT communication.
So that the parameters can be viewed and changed in advance without the presence of a slave, a default copy of the entire directory is usually stored in the device description file ESI (XML). This is called the offline directory. Changes in this directory do not affect the later operation of the slave with TwinCAT. The xml files can be obtained from the Beckhoff website in the Download area.
The TwinCAT system manager 2.11 can display both lists and marks this:
![CoE interface – parameter management in the EtherCAT system 3:](Images/gif/2469191691__Web.gif)
In the online directory | In the offline directory |
---|---|
the actual current slave list is read. This may take several seconds, depending on the size and cycle time | the offline list from the ESI file is displayed. In this case modifications are not meaningful or possible. |
the actual identity is displayed | the configured status is shown under Identity |
the firmware and hardware version of the equipment according to the electronic information is displayed | no firmware or hardware version is displayed, since these are features of the physical device |
a green online is visible in the TwinCAT System Manager, CoE Online tab | a red offline is visible in the TwinCAT System Manager, CoE Online tab |
Classification
Different CoE parameter types are possible, including string (text), integer numbers, Boolean values or larger byte fields. They can be used to describe a wide range of features. Examples of such parameters include manufacturer ID, serial number, process data settings, device name, calibration values for analog measurement or passwords.
The ranges in the Slave CoE that are important for the application-oriented EtherCAT fieldbus user are
- 0x1000: This is where fixed identity information for the device is stored, including name, manufacturer, serial number etc., plus information about the current and available process data configurations.
- 0x8000: This is where the operational and functional parameters for all channels are stored, such as filter settings or output frequency.
The following ranges are also of interest
- 0x4000: In some EtherCAT devices the channel parameters are stored here (as an alternative to the 0x8000 range).
- 0x6000: Input PDOs ("input" from the perspective of the EtherCAT master)
- 0x7000: Output PDOs ("output" from the perspective of the EtherCAT master)
Channel-based order
The CoE directory is located in EtherCAT devices that usually encompass several functionally equivalent channels. e.g. a 4-channel 0 – 10 V analog input terminal also has 4 logical channels and thus 4 identical sets of parameter data for the channels. In order to avoid having to list each channel in the documentation, the placeholder "n" tends to be used for the individual channel numbers.
In the CoE system 16 indices, each with 255 subindices, are generally sufficient for representing all channel parameters. The channel-based order is therefore arranged in 16dec/10hex steps. The parameter range 0x8000 exemplifies this:
- Channel 0: Parameter range 0x8000:00 ... 0x800F:255
- Channel 1: Parameter range 0x8010:00 ... 0x801F:255
- Channel 2: Parameter range 0x8020:00 ... 0x802F:255
- tbc...
This is generally written as 0x80n0.
CoE directory – changes of value
Several parameters, in particular the setting parameters of the slave, are variable and can be written by the user from the fieldbus side. This can be done in write or read mode
- via the system manager (Fig. Manual insertion of a start-up entry) by the operator clicking on it.
The values are then changed directly in the online-connected slave.
This is useful for commissioning of the system/slaves. Click on the row of the index to be parameterized and enter a value in the "SetValue" dialog. - from the control system/PLC via ADS, e.g. through blocks from the TcEtherCAT.lib library
This is recommended for modifications while the system is running or if no System Manager or operating staff are available. - during the EtherCAT startup through predefined commands, the so-called startup list.
The TwinCAT configuration is usually created in advance without EtherCAT slaves actually being present. Then it should be possible before commissioning to adjust known properties such as filter settings offline in order to accelerate commissioning.
CoE directory – startup list
![]() | Start-up list Changes made to the local CoE directory of the EtherCAT slaves are lost with the old device in case of exchange. If a device is replaced with a new Beckhoff device, it will have the default settings. It is therefore advisable to link all changes in the CoE list of an EtherCAT slave with the Startup list of the slave, which is processed whenever the EtherCAT fieldbus is started. In this way a replacement EtherCAT slave can automatically be parameterized with the specifications of the user. If EtherCAT slaves are used which are unable to store local CoE values permanently, the Startup list must be used. |
The startup list is used for these cases: the values here, which are entered by the user, are transmitted to the respective slave upon each EtherCAT state transition/start. A startup entry consists of
- Time: the state transition in which the command is sent
PS (PREOP-->SAFEOP) is usually the correct choice, since an EtherCAT slave then switches to operative input mode. - Index: Subindex
- Data
The order of the entries is not taken into account: all entries to which a state transition applies are handed over simultaneously as asynchronous commands to the EtherCAT system and executed there, as soon as the bus load allows.
No check is made of whether an identical entry is already present in the slave.
Sample
In the following, the user scaling is activated in the startup list of an EL3152. Entries required for operation that already exist in the list are marked with a grey background.
Upon right-clicking on the surface, the following dialog appears:
![CoE interface – parameter management in the EtherCAT system 5:](Images/gif/2469194123__Web.gif)
![CoE interface – parameter management in the EtherCAT system 6:](Images/gif/2469196555__Web.gif)
The corresponding values are adopted upon clicking the entry 0x8000:01; 01 is entered in Data as the desired value. The entry ‘P->S’ marks the time of the execution.
![CoE interface – parameter management in the EtherCAT system 7:](Images/gif/2469198987__Web.gif)
Entries created by the user are marked with a light blue background.
CoE directory - data management
![]() | Data management If slave CoE parameters are modified online, Beckhoff devices store any changes in a fail-safe manner in the EEPROM, i.e. the modified CoE parameters are still available after a restart. |
Summary of the characteristics
- Not every EtherCAT device must have a CoE directory
- If a CoE directory is present, it is administrated, prepared for querying and writing and stored in the device by the controller.
- The EtherCAT master can be used for viewing/querying/changing, or a local user interface on the device (keypad, screen) allows access.
- Changed settings are stored fail-safe in Beckhoff devices.
If the device is later exchanged, however, the settings that have been changed from the series standard are lost. The EtherCAT master can then load the changed CoE parameters into the new device at startup, if it is set up appropriately. - So that a CoE directory is available offline during the preparation for configuration, it can be contained in the device description as a copy.
- The extent to which the CoE directory is supported depends on the capabilities of the EtherCAT master.