FB_PcWatchDog_BAPI

![]() | 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. |
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 ( |
tTimeout | TIME | Gibt die Zeit bis zum Abbruch der internen ADS-Kommunikation an. |
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 |