pb régulation vanne

Forum traitant des automates industriels de marque Schneider - Telemecanique
Répondre
md42
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 116
Enregistré le : 22 mars 2016, 08:54

pb régulation vanne

Message par md42 »

bonjour,

sous Unity et M340, je cherche à réguler une vanne de dosage avec un signal de commande en 0-10V.
j'ai fais un bout de code mais je bloque sur un endroit précis:
A l'ouverture d'une lance, je donne une consigne précise à ma vanne et ensuite au bout de 5 secondes, je voudrais rentrer dans ma boucle de régulation pour affiner. La partie affectation de consigne fonctionne bien, la partie affinage de la régulation aussi.

Que mettre comme code entre les deux pour laisser le temps à la vanne pour atteindre sa consigne et ensuite affiner le réglage.
je me doute bien que c'est une tempo, mais je ne vois pas comment faire.
Merci pour l'aide



if R_trig.Q (lance1) then consigne_auto := 1280;
elsif R_trig.Q (lance2) then consigne_auto := 1350;
elsif R_trig.Q (lance3) then consigne_auto := 2700;
elsif consigne_auto <> 0 then

ATTENTE de 5s

if dosage_auto = 1 and debit_reel < (Q_calcule - hysteresis)
then consigne_auto := consigne_auto + 5;
String_dos5 := 'Dose +';

elsif dosage_auto = 1 and debit_reel > (Q_calcule + hysteresis)
then consigne_auto := consigne_auto - 5;
String_dos5 := 'Dose -';

elsif dosage_auto = 1 then
consigne_auto := consigne_auto;
String_dos5 := 'Zone morte';
end_if;
end_if;
md42
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 116
Enregistré le : 22 mars 2016, 08:54

Re: pb régulation vanne

Message par md42 »

quelqu'un peux m'aider??
Merci
Avatar du membre
Cyril93
Maître du binaire
Maître du binaire
Messages : 484
Enregistré le : 29 oct. 2015, 14:22
Localisation : IDF

Re: pb régulation vanne

Message par Cyril93 »

utilise la balise code, indente ton code :evil:
si tu veux une chance que quelqu'un lise ton truc :D

edit : allez je suis de bonne humeur aujourd'hui :lol:

Code : Tout sélectionner

TON1(pt:=t#5s);      (* déclarer TON1 instance de TON *)

if R_trig.Q (lance1) then
     consigne_auto := 1280;
elsif R_trig.Q (lance2) then 
     consigne_auto := 1350;
elsif R_trig.Q (lance3) then 
     consigne_auto := 2700;
elsif consigne_auto <> 0 then
     TON1.IN:=TRUE;
ELSE
     TON1.IN:=FALSE;
END_IF;

IF TON1.Q THEN
     if dosage_auto = 1 and debit_reel < (Q_calcule - hysteresis) then 
           consigne_auto := consigne_auto + 5;
           String_dos5 := 'Dose +';

     elsif dosage_auto = 1 and debit_reel > (Q_calcule + hysteresis) then
           consigne_auto := consigne_auto - 5;
           String_dos5 := 'Dose -';

     elsif dosage_auto = 1 then
           consigne_auto := consigne_auto;
           String_dos5 := 'Zone morte';
     end_if; 
END_IF;
Répondre