EK9500-CoE data access via CIP

CoE means "CAN over EtherCAT". This protocol allows access to all parameters of an EtherCAT device. The CoE data model is based on the fundamentals of CANopen and uses index and subindex to read or write parameters if they allow it. The parameters of an EtherCAT slave can usually be viewed and adjusted via the DeviceManager. However, in some applications it is necessary to change certain parameters during runtime or to perform optimizations during operation. As of firmware version v1.23, it is possible to view and adjust CoE data acyclically via the CIP protocol and ADS.

Requirement:

Class/Instance/Attribute definitions for CoE

  1. Terminal position → Class Code
    (Class Code Range: 0x300-0x3FF, 0x400-0x4FF is reserved)
    • 0x300     →     EK9500
    • 0x301     →     1st terminal
    • 0x302     →     2nd terminal
    • 0x3FF     →     255th. Terminal
  2. CoE-Index → CIP Object Instance
    • Index 0x1000     →      “CoE over CIP” Object Instance 0x1000
    • Index 0x1008     →      “CoE over CIP” Object Instance 0x1008
    • Index 0x8000     →      “CoE over CIP” Object Instance 0x8000
    • Index 0xFFFF     →      “CoE over CIP” Object Instance 0xFFFF
  3. CoE-SubIndex → CIP Object Instance Attribute
    (open and manufacturer specific range for attributes: ids 0x100-0xCFF, max 3071)
    • SubIndex 0         →     Instance Attribute 0x100
    • SubIndex 1         →     Instance Attribute 0x101
    • SubIndex 2         →     Instance Attribute 0x102
    • SubIndex 3         →     Instance Attribute 0x103
    • SubIndex 248     →     Instance Attribute 0x1F8
                                            Instance Attribute 0x000-0x0FF (reserved)
                                            Instance Attribute 0x1F9-0xCFF (reserved)
  4. CoE Service → CIP Service
    • OBJ_Read     →     GetAttributeSingle
    • OBJ_Write      →     SetAttributeSingle

Examples for CoE over CIP
(EK9500+EL4134+EL3104+EL2004+EL2024+EL3061+EL6090)

  1. Device Name, EK9500
    • Index 0x1008, SubIndex 0x0 of EK9500 at Slot 0      →       result: „EK9500“
      GetAttributeSingle (Class: 0x300, Intance: 0x1008, Attribute: 0x100)
  2. Device Name, EL3104
    • Index 0x1008, SubIndex 0x0 of EL3104 at Slot 3      →       result: „EL3104-0000“
      GetAttributeSingle (Class: 0x302, Intance: 0x1008, Attribute: 0x100)
  3. AO settings Ch.1 → Offset
    • Index 0x8010, SubIndex 0x11 of EL4134 at Slot 2
      SetAttributeSingle (Class: 0x302, Intance: 0x8010, Attribute: 0x111)
  4. DIS CHR settings → Row 1
    • Index 0x8008, SubIndex 0x11 of EL6090 at Slot 7
      GetAttributeSingle (Class: 0x307, Intance: 0x8008, Attribute: 0x111)

The following screenshot shows the assignments IP address, Class Code, Instance and Attribute at the function block FB_GET_ATTRIBUTE_SINGLE in TwinCAT 3. In this example the CoE object "8008:11 Row 1", which corresponds to the first line of the EL6090 display terminal, is read.

EK9500-CoE data access via CIP 1:
Example TwinCAT, 4th DIS CHR settings → Row 1 (EL6090)

The screenshot "Example Allen Bradley (Studio5000), 4th DIS CHR settings → Row 1 (EL6090)" shows how and where the assignments "IP address, class code, instance and attributes" are to be set in the "Studio5000" control software from Allen Bradley.

EK9500-CoE data access via CIP 2:
Example Allen Bradley (Studio5000), 4th DIS CHR settings → Row 1 (EL6090)