11.01.2014 Views

DeviceNet Master Protocol API

DeviceNet Master Protocol API

DeviceNet Master Protocol API

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!