Temporizador con retardo a la desconexión
El bloque de función TOF permite programar un retardo para realizar una desconexión, por ejemplo, para desconectar el ventilador de una máquina con retardo con respecto al apagado de la propia máquina.
Entrada
temporizador ON
en el flanco de subida de IN arranca un temporizador interno. Si se detecta otro flanco de de IN antes de alcanzar el valor de PT, Q no pasará a OFF
retardo a la desconexión (PT = preset time)
dato de 16 bits: 0–327.27s
dato de 32 bits: 0–21,474,836.47s (dato de 32 bits no disponible para FP3, FPC, FP5, FP10/10S)
resolución de 10ms
Salida
señal de salida
se resetea (FALSE) si PT = ET
valor actual
representa el valor actual del temporizador
El valor se puede cambiar durante la operación de contaje escribiendo en la variable desde el editor de programación.
Q pasa a off con un tiempo de retardo definido en PT. La activación se realiza sin retardo.
Si IN (en el diagrama de tiempos, de t3 a t4) pasa a ON antes de alcanzar el tiempo de retardo PT, Q permanece activado (diagrama de tiempos: de t2 a t3).
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: TOF;
start: BOOL:=FALSE;
set_value: TIME:=T#0s;
signal_output: BOOL:=FALSE;
current_value: TIME:=T#0s;
END_VAR
Si start pasa a off, signal_output se resetea con un retardo igual a set_value.
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 );
Para llamar al bloque de función en lista de instrucciones, introducir:
CAL |
copy_name(IN:= start,, PT:= set_value,, Q:= signal_output,, ET:= current_value,) |