Imposta/resetta
Il Function Block SR (imposta/resetta) vi permette di impostare e resettare un'uscita.
Ingresso
Impostazione
L'uscita Q1 viene impostata per ciascun fronte di salita su S1
Reset
L'uscita Q1 viene resettata per ciascun fronte di salita rilevato su R, eccezion fatta nei casi in cui venga impostato S1 (vedere diagramma tempi)
Uscita
Impostazione o reset a seconda degli ingressi
viene impostata se viene rilevato un fronte di salita su S1.
viene resettata se viene rilevato un fronte di salita su R a condizione che S1 non venga impostato.
viene impostata se viene rilevato un fronte di salita su entrambi gli ingressi (S1 e R).
Al momento dell'inizializzazione, Q1 ha sempre lo stato zero (reset).
Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU. La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.
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
Se set viene impostato (stato = TRUE), signal_output verrà impostato. Se viene impostato solo reset, signal_output verrà resettato (reset , stato = FALSE). Se sia set sia reset vengono impostati, signal_output verrà impostato.
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;