Page 1 sur 2
Reset TON
Posté : 03 nov. 2021, 22:35
par PLCboy
Bonjour,
Je dois faire en sorte que le code suivant s'exécute en boucle avec à chaque fois les tempo reseté, mais je n'y arrive pas. Le code suivant s'exécute une seule fois. Il serait préférable de le faire en Grafcet ? On sait reseté des TON ? car j'ai même forcé les entrées et sorties des TON à 0 mais même comme ça elles ne réagissent plus une fois déjà utilisées.
IF StartArchive THEN
step1 := 1;
TON_0 (IN := step1,
PT := t#1s,
Q => step1_finish,
ET => ET_step1);
TON_1 (IN := step1_finish,
PT := t#1s,
Q => Open_file_on_rising_edge,
ET => ET_Open_file_on_rising_edge);
TON_2 (IN := Open_file_on_rising_edge,
PT := t#5s,
Q => step2,
ET => ET_step2);
TON_3 (IN := step2,
PT := t#2s,
Q => step3,
ET => ET_step3);
TON_4 (IN := step3,
PT := t#1s,
Q => file_close,
ET => ET_file_close);
END_IF;
Merci d'avances pour vos lumières.
JP
Re: Reset TON
Posté : 03 nov. 2021, 22:51
par dpo
A la grosse louche, ton problème vient du fait que tu ne remets jamais à zéro la condition de ta première tempo donc pas de raison qu'elle se relance.
voilà une piste, à toi de trouver
quand ajouter step1 := 0;
ou
comment mieux écrire dans step1 en une seule fois
Re: Reset TON
Posté : 03 nov. 2021, 23:11
par PLCboy
Salut, j'ai déjà essayé en forçant dans des table d'animation mais jamais le TON ne redémarre.
J'ai plutôt l'impression que le TON n'est pas capable de redémarrer...
Re: Reset TON
Posté : 04 nov. 2021, 08:16
par skip74
Salut
Tes tempos sont exécutés dans un bout de code sous condition ( dans le if), tant qu'elle n'est pas exécutée, si tu met le bit d'activation sur 0, elle le voit pas passer... En plus vu que tu met le bit toujours a 1 avant l'exécution de la tempo elle est pas prête de le voir passer.......
A+
Re: Reset TON
Posté : 04 nov. 2021, 08:57
par JC87
Hello,
Si il s'agit de faire une séquence avec des temps, un simple graphe avec utilisation des temps d'étape comme condition de transition fera l'affaire à mon avis.
JC
Re: Reset TON
Posté : 04 nov. 2021, 10:15
par AC23
JC87 a écrit : ↑04 nov. 2021, 08:57
Hello,
Si il s'agit de faire une séquence avec des temps, un simple graphe avec utilisation des temps d'étape comme condition de transition fera l'affaire à mon avis.
JC
Bonjour,
Je pense aussi.
Sinon si tu veux garder absolument le code en structure text.
Code : Tout sélectionner
IF StartArchive THEN
step1 := NOT file_close;
TON_0 (IN := step1,
PT := t#1s,
Q => step1_finish,
ET => ET_step1);
TON_1 (IN := step1_finish,
PT := t#1s,
Q => Open_file_on_rising_edge,
ET => ET_Open_file_on_rising_edge);
TON_2 (IN := Open_file_on_rising_edge,
PT := t#5s,
Q => step2,
ET => ET_step2);
TON_3 (IN := step2,
PT := t#2s,
Q => step3,
ET => ET_step3);
TON_4 (IN := step3,
PT := t#1s,
Q => file_close,
ET => ET_file_close);
END_IF;
Mais comme dit plutôt tes TON sont dans une condition IF... alors il faut faire attention à ce que tu veux faire.
Ici je suis parti du principe que ton bit "file_close" est juste une impulsions, car dès que ce bit passe à "TRUE" le bit step1 passe à "FALSE" se qui remet tout les TON à "FALSE". et donc file_close repasse à "FALSE" se qui fait passer le step1 à "TRUE" (et la boucle recommence) tant que "StartArchive" = "TRUE".
en espérant t'avoir aider,
Bien cordialement;
Re: Reset TON
Posté : 04 nov. 2021, 11:14
par philou77
Salut !
Tiens, revoilà mon bout de code....
Que veux tu faire exactement avec mon code..
je te rappelle que celui ci a été écrit pour un besoin bien particulier...
alors avant de vouloir le modifier, il serait bien que tu décrives précisément ce que tu veux faire !
mais le morceau de code que tu montres ne fait pas partie de la programmation initiale !
Re: Reset TON
Posté : 04 nov. 2021, 11:32
par PLCboy
Te sens pas pousser des ailes mec !!! C'est mon code.
Re: Reset TON
Posté : 04 nov. 2021, 11:32
par PLCboy
Sinon merci à tous pour votre aide, j'ai réussi à régler le problème.
Re: Reset TON
Posté : 04 nov. 2021, 11:50
par philou77
Re !
j'ai pris la peine de rouvrir mon code pour vérifier et modifier mon post....
Pour ton info, je me sens rien pousser du tout 'mec'.