Temporisation avec retard à la désactivation
Le bloc fonction TOF permet de programmer un retard à la désactivation, par ex. pour éteindre le ventilateur d’une machine après la machine elle-même.
Entrée
Temporisateur activé
Un temporisateur interne est démarré à chaque front descendant détecté sur IN. Si un front montant est détecté sur IN avant que PT n’ait atteint sa valeur, Q ne sera pas désactivée.
Retard à la désactivation (PT = preset time)
Valeur de 16 bits : 0–327.27s
Valeur de 32 bits : 0–21,474,836.47s (valeur de 32 bits non disponible pour FP3, FPC, FP5, FP10/10S)
Résolution de 10ms chacune
Sortie
Sortie de signal
Réinitialisée (FALSE) si PT = ET
Temps écoulé
Indique la valeur courante du temps écoulé
La valeur peut être modifiée pendant le comptage en écrivant dans la variable à partir de l’éditeur de programmation.
Q est désactivée avec un retard correspondant à la durée définie dans PT. L’activation est effectuée sans retard.
Lorsque IN (comme indiqué dans le chronogramme pour t3 à t4) est activée avant que la durée du retard PT soit écoulée, Q reste activée (chronogramme pour t2 à t3).
Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU. Le même en-tête de POU est utilisé pour tous les langages de programmation.
VAR
copy_name: TOF;
start: BOOL:=FALSE;
set_value: TIME:=T#0s;
signal_output: BOOL:=FALSE;
current_value: TIME:=T#0s;
END_VAR
Lorsque start est réinitialisé, ce signal est transféré à la sortie de signal signal_output avec un retard correspondant à la durée prédéfinie dans 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 );
Si vous souhaitez appeler le bloc fonction dans une liste d’instructions, entrez ce qui suit :
CAL |
copy_name(IN:= start,, PT:= set_value,, Q:= signal_output,, ET:= current_value,) |