Page 1 sur 1

pb régulation vanne

Posté : 01 mars 2017, 17:58
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;

Re: pb régulation vanne

Posté : 01 mars 2017, 21:25
par md42
quelqu'un peux m'aider??
Merci

Re: pb régulation vanne

Posté : 02 mars 2017, 08:31
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;