Protokoll- und Stationsfehler

Die Stationsfehlermeldungen werden in einem FIFO abgelegt. Es können bis zu 10 Fehlermeldungen zwischengespeichert werden. Bei fatalen Kommunikationsfehlern (z.B. Fehler der Verbindungsschicht, die Checksumme des Frames passt nicht) wird die Verbindung unterbrochen und muss neu aufgebaut werden. Fehler in der Applikationsschicht (z.B. der ASDU-Sendepuffer ist wegen zu vieler Frames übergelaufen) werden nur geloggt und führen nicht zum Verbindungsabbruch. Es ist immer noch möglich auch bei diesen Fehlern die Verbindung aus der Applikation heraus zu unterbrechen. Neben dem Fehler-Code wird auch die Fehlerquelle in der Fehlermeldung abgelegt. Dieses erleichtert die Lokalisierung des Fehlers.

Beispiel

Die anfallenden Fehlermeldungen einer 60870-5-104 Zentralstation können durch folgenden Aufruf ausgelesen werden:

PROGRAM MAIN
VAR
...

client : FB_IEC870_5_104Master;

...
END_VAR

...

REPEAT
client.system.device.errors.RemoveError( );
IF client.system.device.errors.bOk THEN
ADSLOGSTR( ADSLOG_MSGTYPE_ERROR OR ADSLOG_MSGTYPE_LOG,
'IEC60870-5-104 master error: 0x%s',
DWORD_TO_HEXSTR( client.system.device.errors.getError.nErrId, 8, FALSE) );
END_IF
UNTIL NOT client.system.device.errors.bOk
END_REPEAT

...

Das zugehörige Tutorial SPS-Beispiel kann hier heruntergeladen werden.