Ausgang setzen oder rücksetzen
Mit dem Funktionsbaustein SR (set/reset) können Sie einen Ausgang sowohl setzen als auch zurücksetzen.
Eingang
Setzen
Bei jeder steigenden Flanke an S1 wird der Ausgang Q1 gesetzt
Zurücksetzen
Bei jeder steigenden Flanke an R wird der Ausgang Q1 zurückgesetzt, außer wenn S1 gesetzt ist (siehe Zeitdiagramm)
Ausgang
Setzen oder Zurücksetzen abhängig vom Eingang
Wird gesetzt, wenn eine steigende Flanke an S1 anliegt.
Wird zurückgesetzt, wenn eine steigende Flanke an R anliegt und S1 nicht gesetzt ist.
Wird gesetzt, wenn an beiden Eingängen (S1 und R) eine steigende Flanke anliegt.
Q1 hat bei der Initialisierung immer den Status Null (zurückgesetzt).
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: SR;
set: BOOL:=FALSE;
(*output_value is set for each
rising edge at set_input,
if reset_input is not set*)
reset: BOOL:=FALSE;
(*output_value is reset for each
rising edge at reset_input*)
signal_output: BOOL:=FALSE;
END_VAR
Wenn set gesetzt ist (Status = TRUE) wird signal_output gesetzt. Wenn nur reset gesetzt ist, wird signal_output zurückgesetzt (reset, Status = FALSE). Wenn sowohl set als reset gesetzt sind, wird signal_output gesetzt.
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_VAROUT,,signal_output,13,2,15,4,);
B(B_CONTACT,,set,3,1,5,3,);
B(B_CONTACT,,reset,3,3,5,5,);
B(B_FB,SR!,copy_name,8,1,13,5,,?BS1?BR?AQ1);
L(1,2,3,2);
L(1,4,3,4);
L(5,4,8,4);
L(5,2,5,3);
L(5,3,8,3);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
copy_name( SET:= set, RESET:= reset);
signal_output:= signal_output;