Ausschaltverzögerung
Mit dem Funktionsbaustein TOF können Sie eine Ausschaltverzögerung programmieren, z.B. den Lüfter für ein Gerät später abschalten als das Gerät selbst.
Eingang
Zeitgeber TRUE
bei jeder fallenden Flanke an IN wird ein interner Zeitmesser gestartet Wenn eine steigende Flanke an IN anliegt, bevor PT seinen Wert erreicht hat, wird Q nicht abgeschaltet
Ausschaltverzögerung (PT = preset time)
16 Bit: 0–327.27s
32 Bit: 0–21,474,836.47s (32 Bit nicht verfügbar für FP3, FPC, FP5, FP10/10S)
Auflösung jeweils 10ms
Ausgang
Signalausgang
wird zurückgesetzt (FALSE), wenn PT = ET ist
Istwert
ist die tatsächlich abgelaufene Zeit (ET = elapsed time)
Der Wert kann während des Zählens geändert werden, indem aus dem Programmiereditor heraus in die Variable geschrieben wird.
Q wird um die Zeit, die in PT definiert worden ist, verzögert ausgeschaltet. Das Einschalten verläuft verzögerungsfrei.
Wenn IN (wie im Zeitdiagramm bei t3 bis t4) wieder gesetzt wird, bevor die Verzögerungszeit PT abgelaufen ist, bleibt Q gesetzt (Zeitdiagramm bei t2 bis t3).
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
copy_name: TOF;
start: BOOL:=FALSE;
set_value: TIME:=T#0s;
signal_output: BOOL:=FALSE;
current_value: TIME:=T#0s;
END_VAR
Wenn start zurückgesetzt wird, wird dieses Signal um die Zeitspanne set_value verzögert an signal_output weitergegeben.
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_FB,TOF!,copy_name,9,1,14,5,,?BIN?BPT?AQ?AET);
B(B_CONTACT,,start,3,2,5,4,);
B(B_VARIN,,set_value,7,3,9,5,);
B(B_VAROUT,,current_value,14,3,16,5,);
B(B_COIL,,signal_output,21,2,23,4,);
L(1,3,3,3);
L(5,3,9,3);
L(14,3,21,3);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY
copy_name( IN:= start ,
PT:= set_value ,
Q=> signal_output ,
ET=> current_value );
Wenn Sie den Funktionsbaustein in einer Anweisungsliste aufrufen möchten, geben Sie folgendes ein:
CAL |
copy_name(IN:= start,, PT:= set_value,, Q:= signal_output,, ET:= current_value,) |