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'.