# Device Area Objects: 0xF000-0xFFFF ## Modular Device Profile Object 0xF000 Object Type: RECORD, Manufacturer Specific Identity 0x48 | **Subindex** | **Description** | **Data Type** | **Access** | **M/O/C** | **Available** | |----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------|--------------|-------------|-----------------| | 0 | Number of Entries | Unsigned8 | R | M | X | | 1 | Index distance between two modules. This value is always read as 1. | Unsigned16 | R | M | X | | 2 | Maximum number of EtherCAT SubDevices connected to the EtherCAT bus. Reports the maximum bus SubDevice count configured through EC_T_INIT_MASTER_PARMS.dwMaxBusSlaves. | Unsigned16 | R | M | X | | 3 | Available entries in objects 0x8xxx (number of configured SubDevices). | Unsigned32 | R | M | X | | 4 | Available entries in objects 0x9xxx (number of connected SubDevices). | Unsigned32 | R | M | X | Datatype for application access: ```c++ typedef struct _EC_T_OBJF000 { EC_T_WORD wSubIndex0; EC_T_WORD wIndexDistance; EC_T_WORD wMaxModuleCnt; EC_T_DWORD dwGeneralCfg; EC_T_DWORD dwGeneralInfo; } EC_PACKED(1) EC_T_OBJF000; ``` ## Detect Modules Command Object 0xF002 Object Type: RECORD, Manufacturer Specific Identity 0x49 | **Subindex** | **Description** | **Data Type** | **Access** | **M/O/C** | **Available** | |----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------|--------------|-------------|-----------------| | 0 | **Number of Entries** | Unsigned8 | R | M | X | | 1 | **Scan Command Request** When this subindex is written, the EtherCAT MainDevice shall scan the EtherCAT bus and update the objects 0xF04x and 0x9nnn | Octet String (2 byte) | RW | M | X | | 2 | **Scan Command Status** 1: command is finished, no error 3: command is finished, error 100-199: 0-99% of the command is done 255: command is executing | Unsigned8 | R | M | X | | 3 | **Scan Command Response** Byte 0: Scan Command Status Byte 1: always 0 Byte 2-3: 0: no error, > 0: vendor specific error code Byte 4-5: number of EtherCAT SubDevices found | Octet String (6 byte) | R | M | X | Datatype for application access: ```c++ typedef struct _EC_T_OBJF002 { EC_T_WORD wSubIndex0; EC_T_BYTE abyCmdRequest[2]; EC_T_BYTE byCmdStatus; EC_T_BYTE abyCmdResponse[6]; } EC_PACKED(1) EC_T_OBJF002; ``` ## Configured Address List Object 0xF020-0xF02F Object Type: RECORD, Manufacturer Specific Identity 0x50 The object range 0xF020-0xF02F contains objects with each at maximum 128 entries for all configured SubDevices. The last 0xF02n object might be shorter than the first one. | **Index / Subindex** | **Description** | **Data Type** | **Access** | **M/O/C** | **Available** | |------------------------|--------------------------------------------------------------------|-----------------|--------------|-------------|-----------------| | 0xF020 / 0 | Number of Entries | Unsigned8 | R | M | X | | 0xF020 / 1 | Fixed Station Address of the first EtherCAT SubDevice configured. | Unsigned16 | R | M | X | | 0xF020 / 2 | Fixed Station Address of the second EtherCAT SubDevice configured. | Unsigned16 | R | M | X | | … | … | Unsigned16 | R | M | X | | 0xF020 / 128 | Fixed Station Address of the 128th EtherCAT SubDevice configured. | Unsigned16 | R | M | X | | 0xF021 / 0 | Number of Entries | Unsigned8 | R | M | X | | 0xF021 / 1 | Fixed Station Address of the 129th EtherCAT SubDevice configured. | Unsigned16 | R | M | X | | … | … | | | | | ## Detected Address List Object 0xF040-0xF04F Object Type: RECORD, Manufacturer Specific Identity 0x51 The object range 0xF040-0xF04F contains objects with each at maximum 128 entries according to the max. bus SubDevice count (see emInitMaster()). The last 0xF04n object might be shorter than the first one | **Index / Subindex** | **Description** | **Data Type** | **Access** | **M/O/C** | **Available** | |------------------------|------------------------------------------------------------------|-----------------|--------------|-------------|-----------------| | 0xF040 / 0 | Number of Entries | Unsigned8 | R | M | X | | 0xF040 / 1 | Fixed Station Address of the first EtherCAT SubDevice detected. | Unsigned16 | R | M | X | | 0xF040 / 2 | Fixed Station Address of the second EtherCAT SubDevice detected. | Unsigned16 | R | M | X | | … | … | Unsigned16 | R | M | X | | 0xF040 / 128 | Fixed Station Address of the 128th EtherCAT SubDevice detected. | Unsigned16 | R | M | X | | 0xF041 / 0 | Number of Entries | Unsigned8 | R | M | X | | 0xF041 / 1 | Fixed Station Address of the 129th EtherCAT SubDevice detected. | Unsigned16 | R | M | X | | … | … | | | | | ## Frame Statistics Object 0xF120 Object Type: RECORD, Manufacturer Specific Identity 0x56 | **Subindex** | **Description** | **Data Type** | **Access** | **M/O/C** | **Available** | |----------------|--------------------------------------------------------|-----------------|--------------|-------------|-----------------| | 0 | **Number of Entries** | Unsigned8 | R | M | X | | 1 | **Cyclic Lost Frames** Number of cyclic lost frames. | Unsigned32 | R | M | X | | 2 | **Acyclic Lost Frames** Number of acyclic lost frames. | Unsigned32 | R | M | X | Datatype for application access: ```c++ typedef struct _EC_T_OBJF120 { EC_T_WORD wSubIndex0; EC_T_DWORD dwCyclicLostFrames; EC_T_DWORD dwAcyclicLostFrames; } EC_PACKED(1) EC_T_OBJF120; ``` ## Diag Interface Control Object 0xF200 | **Subindex** | **Description** | **Data Type** | **Access** | **M/O/C** | **Available** | |----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|-----------------|--------------|-------------|-----------------| | 0 | **Number of Entries** | Unsigned8 | R | M | X | | 16 | **Reset Diag Info** resets values to 0 of objects 0xAnnn SI 03, 0xAnnn SI 04, 0xAnnn SI05-08, 0xAnnn SI08, 0xAnnn SI09, 0xF120 SI01 and 0xF120 SI01 | Boolean | RW | M | X | Datatype for application access: ```c++ typedef struct _EC_T_OBJF200 { EC_T_WORD wSubIndex0; EC_T_BOOL bResetDiagInfo; } EC_PACKED(1) EC_T_OBJF200; ```