Reset TON
Reset TON
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
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
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
voilà une piste, à toi de trouver
quand ajouter step1 := 0;
ou
comment mieux écrire dans step1 en une seule fois
Re: Reset TON
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...
J'ai plutôt l'impression que le TON n'est pas capable de redémarrer...
Re: Reset TON
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+
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+
- JC87
- Mi homme - Mi automate

- Messages : 2243
- Enregistré le : 20 oct. 2015, 13:00
- Localisation : Nouvelle Aquitaine
Re: Reset TON
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
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
"On veut faire du zéro défaut mais on a zéro bonhomme et zéro budget, et bien à la fin on a zéro résultat..."
Re: Reset TON
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;
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;
<< La vie d'un homme passe par trois phases : apprentissage, apprentissage et apprentissage. >>
Et j'ai même pas fini la première phase
-
philou77
- Mi homme - Mi automate

- Messages : 2142
- Enregistré le : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: Reset TON
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 !
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 !
Modifié en dernier par philou77 le 04 nov. 2021, 11:48, modifié 2 fois.
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! 
Re: Reset TON
Te sens pas pousser des ailes mec !!! C'est mon code.
Re: Reset TON
Sinon merci à tous pour votre aide, j'ai réussi à régler le problème.
-
philou77
- Mi homme - Mi automate

- Messages : 2142
- Enregistré le : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: Reset TON
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'.
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'.
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! 



