25/05/2023, 17:53:15
(16/05/2023, 13:22:52)Whitehot a écrit : Bonjour Mr Waloo,
Est ce que tu as un retour d'expérience à partager sur la conception de cette installation. Est ce que tu l'as mis en oeuvre? Je cherche à traiter la même problématique.
Damien
Salut @Whitehot,
oui, c'est mis en oeuvre et ça fonctionne. J'ai fait une petite fonction pour gérer les 2 sorties (sorties de la fonction) en fonction du mode (entrée de la fonction).
Il faut un type de données
Code :
TYPE Ordre_Fil_Pilote :
(
Arret := 0,
Hors_gel := 1,
Eco := 2,
Confort_2 := 3,
Confort_1 := 4,
Confort := 5
);
END_TYPE
Et l'entête de la fonction :
Code :
FUNCTION_BLOCK FbFil_Pilote
VAR_INPUT
Commande : Ordre_Fil_Pilote := Arret;
END_VAR
VAR_OUTPUT
xPositif : BOOL; (* Contact à ouverture NC *)
xNegatif : BOOL; (* Contact à fermeture NO *)
END_VAR
VAR
TON_5Min : TON;
END_VAR
... puis le code la fonction :
Code :
(* Tempo 5 minutes active en confort-1°C et confort-2°C *)
TON_5Min(
IN := (Commande = Confort_1 OR Commande = Confort_2) AND NOT TON_5Min.Q,
PT := T#5m);
IF Commande = Arret THEN
(* Demi-alternance positive *)
xPositif := FALSE;
xNegatif := FALSE;
ELSIF Commande = Hors_gel THEN
(* Demi-alternance négative *)
xPositif := TRUE;
xNegatif := TRUE;
ELSIF Commande = Eco THEN
(* Pleine alternance *)
xPositif := FALSE;
xNegatif := TRUE;
ELSIF Commande = Confort_2 THEN
(* 4"53' pas de signal puis 7' pleine alternance *)
IF TON_5Min.ET < T#4m53s THEN
xPositif := TRUE;
xNegatif := FALSE;
ELSE
xPositif := FALSE;
xNegatif := TRUE;
END_IF;
ELSIF Commande = Confort_1 THEN
(* 4"57' pas de signal puis 3' pleine alternance *)
IF TON_5Min.ET < T#4m57s THEN
xPositif := TRUE;
xNegatif := FALSE;
ELSE
xPositif := FALSE;
xNegatif := TRUE;
END_IF;
ELSIF Commande = Confort THEN
(* Pas de signal *)
xPositif := TRUE;
xNegatif := FALSE;
END_IF;
Chez moi c'est en fonction depuis plusieurs mois.
S'il te faut plus d'infos, n'hésite pas.
A+
Michel