FC310x - PCI Cards for PROFIBUS

Slave diagnostics

 

DP-State

Each DP slave has a status variable that indicates the current state of that DP slave. This status is maintained in real time, so that it is always adapted to the current DP slave data, and can be linked to a PLC variable (-> DpState of the slave):

Slave diagnostics - DP state
 
 

Diagnostic data

Each DP slave can acyclically report DP diagnostic data during data exchange operation. The slave here sets the Diag_Flag in the response to the cyclic Data_Exchange telegram, as a result of which the DP master automatically reads the DP diagnostic data from the slave. This does not affect the Data-Exchange cycle in the Beckhoff DP master, because the DP diagnostic telegram is sent at the end of the cyclic Data-Exchange cycle, and before the beginning of the next cycle. If the DP diagnostic data read from the slave has changed from its previous state, the DP master sets the "ExtDiagFlag" variable, which can be linked to a variable in the control program.

The DP slave's current diagnostic data is displayed in the System Manager on the slave’s Diag tab. It can also be read by the control program via ADS, which will cause the "ExtDiagFlag" flag to be reset once more:

 
ADS-Read parameters
Meaning
Net-ID
Net-ID of the master (see the device's ADS tab)
Port
200
IndexGroup
0x00yyF181 (yy = station address of the slave)
IndexOffset 
Offset within the diagnostic data
Length
Length of the diagnostic data that is to be read
Data
Diagnostic data

The diagnostic data contains the slave statistics (32 bytes) and the DP diagnostic data sent by the slave (up to 244 bytes), and is constructed as follows:

 
Offset
Meaning
Slave statistics
0
Receive Error Counter (WORD): The number of faulty telegrams occurring while communicating with this slave
2
Repeat-Counter[8] (WORD): The Repeat Counters indicate how many repeats have had to be made, and how often. Repeat Counter[0] indicates how often a telegram had to be repeated once for this slave, Repeat Counter[1] indicates how often a telegram had to be repeated twice for this slave, etc. The maximum number of retries is set with the parameter Max Retry Limit (TwinCAT 2.8: see PROFIBUS tab of the master, TwinCAT 2.9: see Bus Parameters dialog). The value range is from 0 to 8, therefore there are 8 repeat counters (for 1 to 8 retries)
18
reserved for extensions
20
NoAnswer Counter (DWORD): The number of telegrams in communication with this slave that have not received an answer. The first time that a slave fails to answer, the telegram is repeated up to MaxRetryLimit times, but if it does not answer even then, further telegrams are not repeated. 
24-27
Last-DPV1-Error[4] (BYTE): The last faulty DPV1 response is entered here (byte 0: DPV1 service (bit 7 is set, indicating an error), byte 1: Error_Decode, byte 2: Error_Code_1 (Error_Class/Error_Code), byte 3: Error_Code_2), see description DPV1 error codes
27-31
reserved for future use
from 32