Set/reset
El bloque de funciones SR (set/reset) proporciona una salida tanto set como reset.
Entrada
Set
La salida Q1 pasa a ON en cada flanco de subida de S1
Reset
La salida Q1 pasa a OFF cuando detecta el flanco de subida de R, excepto si S1 está a ON (ver el diagrama de tiempos)
Salida
Set o reset dependiendo del las entradas
Se activa cuando se detecta el flanco de subida en S1.
pasa a OFF si se detecta el flanco de subida en R y si S1 no se ha activado..
pasa ON si se detecta el flanco de subida de las dos entradas (S1 y R).
Después de la inicialización, Q1 siempre está en estado de reset.
Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU. Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.
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
Si set está a TRUE, se activa signal_output. Si solo se activa reset (reset=TRUE), se resetea la señal signal_output (estado = FALSE). Si se activan tanto set como reset, signal_output pasa a TRUE.
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;