FB_PcWatchDog_BAPI

FB_PcWatchDog_BAPI 1:
FB_PcWatchDog_BAPI 2:

Diese Funktionalität ist nur verfügbar auf IPCs und Embedded-PCs mit einer BIOS-Version, die die BIOS-API unterstützt.

Der Funktionsbaustein FB_PcWatchdog_BAPI aktiviert einen Hardware-Watchdog auf dem PC. Der Watchdog wird über bExecute = TRUE und die Watchdogzeit aktiviert. Die Watchdogzeit kann minimal 1 s und maximal 15300 s (255 min) sein. Aktiviert wird der Watchdog über bEnable = TRUE und nWatchdogTimeS >=1 s.

Wenn der Watchdog einmal aktiviert wurde, muss der Funktionsbaustein zyklisch in kürzeren Abständen aufgerufen werden als nWatchdogTimeS, da bei Ablauf der nWatchdogTimeS-Zeit der PC automatisch einen Neustart durchführt. Der Watchdog kann daher dafür eingesetzt werden um Systeme automatisch neu zu booten, die in eine Endlosschleife gelaufen sind bzw. bei denen die SPS steht.

Hinweis

Reboot des PCs

Der Watchdog muss vor der Verwendung von Breakpoints, einem SPS-Reset bzw. Urlöschen und vor einem TwinCAT-Stopp, einem Wechsel in den Konfig-Modus oder dem Aktivieren der Konfiguration deaktiviert werden, da es sonst unmittelbar nach Ablauf der Zeit nWatchdogTimeS zum Reboot des PCs kommt.

FB_PcWatchDog_BAPI 3: Eingänge

VAR_INPUT
    sNetID         : T_AmsNetID;
    nWatchdogTimeS : UDINT;
    bExecute       : BOOL;
    tTimeout       : TIME;
END_VAR

Name

Typ

Beschreibung

sNetID

T_AmsNetID

AMS-Netwerkkennung des Geräts (leerer String oder lokale Netzwerkkennung)

nWatchdogTimeS

UDINT

Watchdogzeit in Sekunden, 0 = deaktiviert, >0 (max. 15300) = aktiviert.

bExecute

BOOL

Mit steigender Flanke wird das Kommando ausgeführt. Der Eingang muss zurückgesetzt werden, sobald der Baustein nicht mehr aktiv ist (bBusy=FALSE).

tTimeout

TIME

Gibt die Zeit bis zum Abbruch der internen ADS-Kommunikation an.

FB_PcWatchDog_BAPI 4: Ausgänge

VAR_OUTPUT
    bEnabled : BOOL;
    bBusy    : BOOL;
    bError   : BOOL;
    nErrId   : UDINT;
END_VAR

Name

Typ

Beschreibung

bEnabled

BOOL

TRUE = Watchdog aktiviert, FALSE = Watchdog deaktiviert

bBusy

BOOL

Dieser Ausgang bleibt so lange auf TRUE, bis der Baustein eine Befehlsanforderung ausführt.

bError

BOOL

Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in nErrId enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.

nErrId

UDINT

ADS-Fehlercode oder befehlsspezifischer Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt.

Beispiel für den Aufruf des Bausteins in ST:

PROGRAM MAIN
VAR
    fbWatchdog     : FB_PcWatchdog_BAPI;
    nWatchdogTimeS : UDINT := 10;  (* 10s *)
    bEnabled       : BOOL; (* TRUE: watchdog is activated *)
    bError         : BOOL;
    nErrID         : UDINT;
    fbTimer        : TON := (IN := TRUE, PT := T#0S);
END_VAR
fbTimer();

(* 1st enable, then refresh watchdog every 1s *)
IF fbTimer.Q THEN
    fbWatchdog(
        sNetID         := '', 
        nWatchdogTimeS := nWatchdogTimeS, 
        bExecute       := TRUE, 
        tTimeout       := T#5S, 
    );
    
    IF NOT fbWatchdog.bBusy THEN
        bEnabled   := fbWatchdog.bEnabled;
        bError     := fbWatchdog.bError;
        nErrID     := fbWatchdog.nErrID;
        
        fbWatchdog(bExecute := FALSE);
    
        (* restart timer*)
        fbTimer(IN := FALSE);
        fbTimer(IN := TRUE, PT := T#1S); (* refresh watchdog every s *)
    END_IF
END_IF

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken (Kategoriegruppe)

TwinCAT v3.1.0

IPCs und Embedded-PCs mit einer BIOS-Version, die die BIOS-API unterstützt.

PLC Lib Tc2_System-Version
>=3.4.14.0