8.4. Generic MainDevice Objects: 0x2000-0x20FF

8.4.1. MainDevice State Change Command Register 0x2000

Attribute

Value

Name

Master State Change Command

Object Code

VAR

Data Type

Unsigned32

Category

Customer

Access

RW

Value

0 = invalid 1 = init 2 = pre-operational 3 = bootstrap mode 4 = safe operational 8 = operational

8.4.2. MainDevice State Summary 0x2001

Attribute

Value

Name

Master State Summary

Object Code

VAR

Data Type

Unsigned32

Category

Customer

Access

R

Value

Bit 0: = 1 MainDevice o.k. Bit 1-3: Reserved Bit 4-7: MainDevice State Bit 8: SubDevices in requested State Bit 9: MainDevice in requested State Bit 10: Bus Scan Match Bit 11: Reserved Bit 12: DC is enabled Bit 13: DC In-Sync Bit 14: DC Busy Bit 15: Reserved Bit 16: Link Up Bit 17-31: Reserved

The parameter data itself (Offset 16ff) consists of a flag field and a bunch of data, defined through flag field:

Parameter Flags Bit 12-15

Parameter Flags Bit 0-11

Type of Data

Data

0

CoE DataType e.g. 0x0007 = UINT32

Data Type

Data defined through CoE DataType

1

Length in Byte

Byte Array

Byte stream byData[Size]

2

Length in Byte

ASCII-String

String szString[Length] (not ‘0’ terminated)

3

Length in Byte

Unicode String

String wszString[Length/2] (not L’0’ terminated)

4

0

Text Id

Text Id (Word)

8.4.3. Bus Diagnosis Object 0x2002

Object Type: RECORD, Manufacturer Specific Identity 0x40

Subindex

Description

Data Type

Access

M/O/C

Available

0

Number of Entries

Unsigned8

R

C

X

1

Reserved

Unsigned16

R

C

X

2

Configuration Checksum CRC32

Unsigned32

R

C

X

3

Number of found Slaves

Unsigned32

R

C

X

4

Number of found DC Slaves

Unsigned32

R

C

X

5

Number of Slaves in Configuration

Unsigned32

R

C

X

6

Number of Mailbox slaves in Config.

Unsigned 32

R

C

X

7

Counter: TX frames

Unsigned32

R

C

X

8

Counter: RX frames

Unsigned32

R

C

X

9

Counter: Lost frames

Unsigned32

R

C

X

10

Counter: Cyclic frames

Unsigned32

R

C

X

11

Counter: Cyclic datagrams

Unsigned32

R

C

X

12

Counter: Acyclic frames

Unsigned32

R

C

X

13

Counter: Acyclic datagrams

Unsigned32

R

C

X

14

Clear Counters by writing 1 to bit(s) Bit 0: Clear all Counters Bit 1: Clear Tx Frame Counter (Idx 7) Bit 2: Clear Rx Frame Counter (Idx 8) Bit 3: Clear Lost Frame Counter (Idx 9) Bit 4: Clear Cyclic Frame Counter (Idx 10) Bit 5: Clear Cyclic Datagram Counter (Idx 11) Bit 6: Clear Acyclic Frame Counter (Idx 12) Bit 7: Clear Acyclic DataGram Counter (Idx 13) Bit 7-31: Reserved

Unsigned32

RW

C

X

Datatype for application access:

typedef struct _EC_T_OBJ2002 {
      EC_T_WORD   wSubIndex0;
      EC_T_WORD   wReserved;
      EC_T_DWORD  dwCRC32ConfigCheckSum;
      EC_T_DWORD  dwNumSlavesFound;
      EC_T_DWORD  dwNumDCSlavesFound;
      EC_T_DWORD  dwNumCfgSlaves;
      EC_T_DWORD  dwNumMbxSlaves;
      EC_T_DWORD  dwTXFrames;
      EC_T_DWORD  dwRXFrames;
      EC_T_DWORD  dwLostFrames;
      EC_T_DWORD  dwCyclicFrames;
      EC_T_DWORD  dwCyclicDatagrams;
      EC_T_DWORD  dwAcyclicFrames;
      EC_T_DWORD  dwAcyclicDatagrams;
      EC_T_DWORD  dwClearCounters;
} EC_PACKED(1) EC_T_OBJ2002;

8.4.4. Redundancy Diagnosis Object 0x2003

Object Type: RECORD, Manufacturer Specific Identity 0x52

Subindex

Description

Data Type

Access

M/O/C

Available

0

Number of Entries

Unsigned8

R

C

X

1

Red Enabled

Unsigned8

R

C

X

2

Main Line Slave Count

Unsigned16

R

C

X

3

Red Line Slave Count

Unsigned16

R

C

X

4

Line Break Detected

Unsigned8

R

C

X

Datatype for application access:

typedef struct _EC_T_OBJ2003 {
      EC_T_WORD   wSubIndex0;
      EC_T_BYTE   byRedEnabled;
      EC_T_WORD   wNumOfMainSlaves;
      EC_T_WORD   wNumOfRedSlaves;
      EC_T_BYTE   byLineBreak;
} EC_PACKED(1) EC_T_OBJ2003;

8.4.5. Notify Counter Object 0x2004

Subindex

Description

Data Type

Access

M/O/C

Available

0

Number of Entries

Unsigned8

R

C

X

1

Maximum Messages

Unsigned8

R

C

X

2

Message Count

Unsigned8

R

C

X

3

Flags

Unsigned8

RW

C

X

4 …

Messages

OBJ2004_NOTIFYMSG

R

C

X

Datatype for application access:

typedef struct _EC_T_OBJ2004 {
      EC_T_WORD   wSubIndex0;
      EC_T_BYTE   byMaxMessages;
      EC_T_BYTE   byMessageCount;
      EC_T_BYTE   byFlags;
  /* SubIndex 004 and following see EC_T_OBJ2004_NOTIFYMSG below */
} EC_PACKED(1) EC_T_OBJ2004;

8.4.5.1. Notify Counter Object 0x2004: Subindex 4-255

Byte-Offset

Description

Data Type

0

Notification Code

Unsigned32

4

Notification Count

Unsigned32

Datatype for application access:

typedef struct _EC_T_OBJ2004_NOTIFYMSG {
      EC_T_DWORD  dwCode;
      EC_T_DWORD  dwCount;
} EC_PACKED(1) EC_T_OBJ2004_NOTIFYMSG;

8.4.6. MAC Address 0x2005

Object Type: RECORD, Manufacturer Specific Identity 0x41

Subindex

Description

Data Type

Access

M/O/C

Available

0

Number of Entries

Unsigned8

R

C

X

1

Hardware

Unsigned48

R

C

X

2

Red Hardware

Unsigned48

R

C

X

3

Configuration Source

Unsigned48

R

C

X

4

Configuration Destination

Unsigned48

R

C

X

Datatype for application access:

typedef struct _EC_T_OBJ2005 {
      EC_T_WORD  wSubIndex0;
      EC_T_BYTE  abyHardware[6];
      EC_T_BYTE  abyRedHardware[6];
      EC_T_BYTE  abyCfgSource[6];
      EC_T_BYTE  abyCfgDestination[6];
} EC_PACKED(1) EC_T_OBJ2005;

8.4.7. Mailbox Statistics Object 0x2006

Object Type: RECORD, Manufacturer Specific Identity 0x54

Subindex

Description

Data Type

Access

M/O/C

Available

0

Number of Entries

Unsigned8

R

C

X

1

AoE Total Read Transfer Count

Unsigned32

R

C

X

2

AoE Read Transfer Count Last Second

Unsigned32

R

C

X

3

AoE Total Bytes Read

Unsigned32

R

C

X

4

AoE Bytes Read Last Second

Unsigned32

R

C

X

5 … 8

AoE Write Statistics Total / Last Second

Unsigned32

R

C

X

9 … 16

CoE Read / Write Statistics Total / Last Second

Unsigned32

R

C

X

17…24

EoE

Unsigned32

R

C

X

25…32

FoE

Unsigned32

R

C

X

33…40

SoE

Unsigned32

R

C

X

41…48

VoE

Unsigned32

R

C

X

49…56

RawMbx

Unsigned32

R

C

X

57…64

Reserved

Unsigned32

R

C

X

65

Clear Counters by writing 1 to bit(s) Bit 0…63: Clear Counter at SubIndex n, with: Bit 0: n = 1, Bit 1: n = 2 …, Bit 63: n = 64 E.g. 0x0000000100: Clear CoE Total Read Transfer Count

Unsigned64

RW

C

X

Datatype for application access:

typedef struct _EC_T_OBJ2006 {
      EC_T_WORD       wSubIndex0;
      EC_T_DWORD      dwCnt[64];
      EC_T_UINT64     qwClearCounters;
} EC_PACKED(1) EC_T_OBJ2006;

8.4.8. Add History Diagnosis Message Command Object 0x2007

Object Type: RECORD, Manufacturer Specific Identity 0x58

Subindex

Description

Data Type

Access

M/O/C

Available

0

Number of Entries

Unsigned8

R/W

M

X

1

Diagnosis code

Unsigned32

W

M

X

2

Message type

Unsigned8

W

M

X

3

Message text ID

Unsigned16

W

M

X

4

Length of the parameters data

Unsigned8

W

M

X

5

Parameters data according to Object 0x10F3

…

W

M

X

Datatype for application access:

typedef struct _EC_T_OBJ2007_HISTORY_ADD_DIAGMSG
{
    EC_T_WORD               wSubIndex0;
    EC_T_DWORD              dwDiagCode;
    EC_T_BYTE               byType;
    EC_T_WORD               wTextID;
    EC_T_BYTE               byParmsLen;
    EC_T_BYTE               abyParms[HISTORY_OBJECT_DIAGELE_SIZE];
} EC_PACKED(1) EC_T_OBJ2007_HISTORY_ADD_DIAGMSG;

8.4.9. Debug Register 0x2010

Attribute

Value

Name

Debug Register

Object Code

VAR

Data Type

Unsigned64

Category

Customer

Access

RW

Value

Lower 32Bit: Log level, see EC_T_INIT_MASTER_PARMS.LogParms.dwLogLevel (semantics changed in V3.0, formerly dwStateChangeDebug) Upper 32Bit: reserved

8.4.10. MainDevice Init Parameters 0x2020

Object Type: RECORD, Manufacturer Specific Identity 0x42

Sub-index

Description

Data Type

Access

M/O/C

Available

0

Number of Entries

Unsigned8

R

C

X

1

dwVersion Application

Unsigned32

R

C

X

2

dwVersion Master

Unsigned32

R

C

3

EC_T_INIT_MASTER_PARMS.dwMaxSlavesProcessedPerCycle

Unsigned32

R

C

X

4

EC_T_INIT_MASTER_PARMS.dwEcatCmdTimeout [ms]

Unsigned32

R

C

X

5

EC_T_INIT_MASTER_PARMS.dwEcatCmdMaxRetries

Unsigned32

R

C

X

6

Bus cycle time [us] (EC_T_INIT_MASTER_PARMS.dwBusCycleTimeNsec / 1000)

Unsigned32

R

C

X

7

Obsolete, always 0 (formerly EoE timeout [ms])

Unsigned32

R

C

X

8

Obsolete, always 0 (formerly FoE busy timeout [ms])

Unsigned32

R

C

X

9

EC_T_INIT_MASTER_PARMS.dwMaxAcycFramesQueued

Unsigned32

R

C

X

10

Maximum acyclic commands per frame

Unsigned32

R

C

X

11

EC_T_INIT_MASTER_PARMS.dwMaxBusSlaves

Unsigned32

R

C

X

12

Reserved

Unsigned32

R

C

X

13

EC_T_INIT_MASTER_PARMS.LogParms.dwLogLevel (semantics changed in V3.0)

Unsigned32

R

C

X

14

Link layer name, see EC_T_LINK_PARMS.szDriverIdent

VisibleString

R

C

X

15

Link layer polling mode active

Bool32

R

C

X

16

Link layer allocate send frame active

Bool32

R

C

X

Datatype for application access:

#define EC_OD_DRIVER_IDENT_SIZE 40  /* maximum length of link layer name */
typedef struct _EC_T_OBJ2020 {
      EC_T_WORD   wSubIndex0;
      EC_T_DWORD  dwApplicationVersion;
      EC_T_DWORD  dwMasterVersion;
      EC_T_DWORD  dwMaxSlavesProcessedPerCycle;
      EC_T_DWORD  dwEcatCmdTimeout;
      EC_T_DWORD  dwEcatCmdMaxRetries;
      EC_T_DWORD  dwBusCycleTimeUsec;
      EC_T_DWORD  dwEoeTimeout;
      EC_T_DWORD  dwFoeBusyTimeout;
      EC_T_DWORD  dwMaxAcycFramesQueued;
      EC_T_DWORD  dwMaxAcycCmdsPerFrame;
      EC_T_DWORD  dwMaxBusSlave;
      EC_T_DWORD  dwReserved2;
      EC_T_DWORD  dwStateChangeDebug;
      EC_T_CHAR   szDriverIdent[EC_OD_DRIVER_IDENT_SIZE];
      EC_T_BOOL   bPollingModeActive;
      EC_T_BOOL   bAllocSendFrameActive;
} EC_PACKED(1) EC_T_OBJ2020;