FB_IEC870_5_101ErrorFifo

FB_IEC870_5_101ErrorFifo 1:

IEC60870-5-10x Fehler-Fifo. Der älteste Eintrag wird immer überschrieben. Der Fifo hat eine konstante Größe. Die Größe wird durch die Konstante: IEC870_MAX_ERROR_FIFO_SIZE bestimmt (default: 10 Elemente).

Der Funktionsbaustein besitzt drei Aktionen:

Im Normalfall werden die Fehlermeldungen durch die internen IEC60870-5-10x Gerätefunktionen dem Fifo hinzugefügt. Die SPS-Applikation kann diese Fehlermeldungen durch den Aufruf der Aktion: RemoveError auslesen und auswerten.

VAR_INPUT

VAR_INPUT
    putError    : ST_IEC870_5_101ErrorFifoEntry;
END_VAR

putError: Fehlermeldung, die dem Fifo hinzugefügt werden soll.

VAR_OUTPUT

VAR_OUTPUT
    getError    : ST_IEC870_5_101ErrorFifoEntry;
    nErrors     : UDINT; (* Error counter *)
    bOk         : BOOL; (* TRUE = new entry added or removed succesfully, FALSE = fifo empty *)
END_VAR

getError: Fehlermeldung, die aus dem Fifo entfernt wurde.

nErrors: Liefert die aktuelle Anzahl Fifo-Einträge (Fehlermeldungen im Fifo).

bOk: Diese Variable wird TRUE, wenn ein neuer Eintrag erfolgreich hinzugefügt oder aus dem Fifo entfernt wurde.

 

Beispiel in ST:

Im folgenden ST-Beispiel wird der Gerätefehler-Fifo ausgelesen und die registrierten Fehler ins Windows Application Log geschrieben.

PROGRAM P_LogErrors
VAR_IN_OUT
    fbErrors : FB_IEC870_5_101ErrorFifo;
END_VAR
REPEAT
    fbErrors.RemoveError();
    IF fbErrors.bOk THEN
        ADSLOGSTR( ADSLOG_MSGTYPE_ERROR OR ADSLOG_MSGTYPE_LOG, 
            'IEC60870-5-10x device error: 0x%s', 
            DWORD_TO_HEXSTR( fbErrors.getError.nErrId, 8, FALSE) );
    END_IF
UNTIL NOT fbErrors.bOk
END_REPEAT

 

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS Bibliotheken

TwinCAT v2.9.0 Build >= 1030

PC oder CX (x86)

TcIEC870_5_101.Lib

( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib;  werden automatisch eingebunden )

TwinCAT v2.10.0 Build >= 1301

CX (ARM)