Differenzierung bei steigender Flanke
Die Funktion ändert bei jeder steigenden Flanke des Eingangssignals (Eingang i) den Zustand des Ausgangssignals (Ausgang o) für die Zeitdauer des aktuellen Zyklus auf TRUE.
Eingang
Ausgang
Die Erkennung der steigende Flanke des Eingangssignals ist auch im ersten Zyklus gewährleistet.
Die Anzahl der verwendeten DFI-Funktionen ist nicht limitiert.
Wenn beim Einschalten der Steuerung ein bestehendes Eingangssignal = TRUE nicht als erste steigende Flanke interpretiert werden soll, muß die Funktion DF verwendet werden.
Vorsicht bei der Programmierung im Zusammenhang mit Anweisungen, welche die Rangfolge der Ausführung ändern. Das können z.B. Sprunganweisungen oder Schleifen innerhalb der Ablaufsprache oder eines Funktionsbausteins sein. Der Ablauf der Anweisungen könnte sich in Abhängigkeit vom Zeitpunkt der Anweisungsausführung und vom Eingangswert verändern. Systemspezifische JUMP und LOOP-Befehle sind:
MC bis MCE
JP bis LBL
F19_SJP bis LBL
LOOP bis LBL
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
input_value: BOOL:=FALSE;
output_value: BOOL:=FALSE;
END_VAR
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_F,DFI!,Instance,9,0,14,3,,?Di?Co);
B(B_VARIN,,input_value,7,1,9,3,);
B(B_VAROUT,,output_value,14,1,16,3,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
output_value:=DFI(input_value);