DeviceNet Master Protocol API
DeviceNet Master Protocol API
DeviceNet Master Protocol API
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>DeviceNet</strong>-<strong>Master</strong> Dual-Port Memory • 43<br />
3.3.2 Extended Status<br />
The content of the channel specific extended status block is specific to the implementation. Depending<br />
on the protocol, a status area may or may not be present in the dual-port memory. It is always<br />
available in the default memory map (see section 3.2.1 of netX Dual-Port Memory Manual).<br />
Note: Have in mind, that all offsets mentioned in this section are relative to the<br />
beginning of the common status block, as the start offset of this block depends<br />
on the size and location of the preceding blocks.<br />
typedef struct NETX_EXTENDED_STATUS_BLOCK_Ttag<br />
{<br />
UINT8 abExtendedStatus[432];<br />
} NETX_EXTENDED_STATUS_BLOCK_T<br />
For the <strong>DeviceNet</strong> <strong>Master</strong> protocol implementation, the extended status area is structured as follows:<br />
typedef struct DN_FAL_EXT_DIAG_Ttag<br />
{<br />
TLR_UINT8 bGlobalBits; /* Collective global status bits */<br />
#define DN_FAL_GLB_BIT_CTRL 0x01 /* Faulty parameter */<br />
#define DN_FAL_GLB_BIT_ACLR 0x02 /* Auto clear error */<br />
#define DN_FAL_GLB_BIT_NEXC 0x04 /* At least one slave not in data exchange */<br />
#define DN_FAL_GLB_BIT_FAT 0x08 /* Fatal error */<br />
#define DN_FAL_GLB_BIT_EVE 0x10 /* Busevent error */<br />
#define DN_FAL_GLB_BIT_NRDY 0x20 /* Application is not ready */<br />
#define DN_FAL_GLB_BIT_DMAC 0x40 /* Duplicate MAC ID detected */<br />
#define DN_FAL_GLB_BIT_PDUP 0x80 /* Check duplicate MAC ID in process */<br />
TLR_UINT8 bDNM_State; /* Operate mode */<br />
/* DN_FAL_MODE_OFFLINE (0x00) */<br />
/* DN_FAL_MODE_STOP (0x40) */<br />
/* DN_FAL_MODE_IDLE (0x80) */<br />
/* DN_FAL_MODE_RUN (0xC0) */<br />
struct { /* Pending device error */<br />
TLR_UINT8 bErr_device_adr; /* Error device address */<br />
TLR_UINT8 bErr_Event; /* Error number */<br />
} tError;<br />
TLR_UINT16 usBus_Err_Cnt; /* Bus event counter */<br />
TLR_UINT16 usBus_Off_Cnt; /* Bus timeout counter */<br />
/* Reserved bytes */<br />
TLR_UINT8 abReserved[8]; /* Bit wise operate and diag state per slave<br />
*/<br />
TLR_UINT8 abDv_cfg_active[8]; /* Configured slave declared as active */<br />
TLR_UINT8 abDv_cfg_inactive[8]; /* Configured slave declared as inactive */<br />
TLR_UINT8 abDv_state_expl[8]; /* Established explicit connection */<br />
TLR_UINT8 abDv_state_io[8]; /* Established I/O connection */<br />
TLR_UINT8 abDv_diag[8]; /* Slaves with diagnostic */<br />
TLR_UINT8 abDv_reserved[8]; /* Reserved field */<br />
}DN_FAL_EXT_DIAG_T;<br />
Hilscher Gesellschaft für Systemautomation mbH – Rheinstr. 15 – D-65795 Hattersheim<br />
Edition 3 – <strong>API</strong>:<strong>DeviceNet</strong>-<strong>Master</strong>#EN– 2009/01