Zykluszeitüberwachung einstellen (Watchdog timer)
Mit der Konstanten s wird eine Überwachungszeit für die Programmabarbeitung eingestellt, wenn der Trigger EN auf TRUE gesetzt wird. Der Wertebereich für s* ist 1 bis 255. Damit ergibt sich eine einstellbare Überwachungszeit von 2,5ms * s* (637,5 ms).
Eingang
Spezifiziert Zykluszeitüberwachungswert
Wir empfehlen, anstelle von diesem F-Befehl den entsprechenden FP7-Befehl zu verwenden: FP_RESET_WATCHDOG
Die Zykluszeitüberwachung spricht an, wenn die Zeit zur Programmabarbeitung eines Zyklus länger als die mit dem Systemregister 30 eingestellte Zeit dauert. Der voreingestellte Wert des Systemregisters 30 ist bei jedem neuen Programmbearbeitungszyklus maßgebend. Wollen Sie jedoch innerhalb des Zyklus bestimmte Programmteile zusätzlich mit einer kürzeren Zeit überwachen, können Sie mit dem Befehl F/P142_WDT eine entsprechende Überwachungszeit aktivieren. Bei Beginn des nächsten Zyklus ist dann wieder die im Systemregister 30 voreingestellte Zeit wirksam.
Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.
VAR
start: BOOL:=FALSE;
(*activates the function*)
END_VAR
Wenn die Variable start auf TRUE gesetzt wird, wird die Funktion ausgeführt.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 6 ;
NETWORK_BODY
B(B_F,F142_WDT,,10,0,18,4,,?DEN?H@'s'?AENO);
B(B_VARIN,,1234,8,2,10,4,);
B(B_CONTACT,,start,3,1,5,3,);
L(1,0,1,6);
L(1,2,3,2);
L(5,2,10,2);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF start then
(* Watchdog timer value is changed to 123.4ms *)
F142_WDT(1234);
END_IF;