Page 1 sur 1
Reset TIMER sous Machine Expert
Posté : 10 janv. 2022, 17:00
par alex123
Bonjour à tous,
Sous machine expert j'essaie d'utiliser les TIMER en passant par la fonction TON.
J'arrive bien à déclencher mes TIMER une première fois mais ils ne se RESET pas pour pouvoir être redeclenché.
Le code est le suivant
xStart_Tempo3 : BOOL;
Tempo3: TON;
A priori, lorsque je passe la variable xStart_Tempo à FALSE, le TIMER devrait se RESET non ?
Pouvez vous m'éclairer SVP
Merci d'avance
Re: Reset TIMER sous Machine Expert
Posté : 10 janv. 2022, 20:17
par itasoft
slts,
c'est du n'importe quoi, ça se mord la queue ton truc, explique exactement ce que tu veux faire
Re: Reset TIMER sous Machine Expert
Posté : 10 janv. 2022, 20:25
par alex123
Salut,
Je sais que ce code ce mord la queue, c’est juste un code test.
Ce que je veux faire en l’occurance c’est alterné entre les étapes 5 et 6 de mon « CASE » en déclenchant les Timer à chaque fois.
Mais une fois qu’un Timer est déclenché , je n’arrive pas à le RESET, tout simplement.
Le fait de passer Xstart_tempo3 et Xstart_tempo4 à FALSE ne suffit pas a RESET apparament… si je suis pluis clair..
Merci
Re: Reset TIMER sous Machine Expert
Posté : 10 janv. 2022, 20:46
par itasoft
slts,
rien compris, es que c'est ça que tu veux faire , un flip-flop, iEtape 5 et 6 cyclique?
---
Tempo3(IN:=iEtape=5, PT:=t#10s);
if Tempo3.Q then
iEtape:=6;
end_if;
Tempo4(IN:=iEtape=6, PT:=t#10s);
if Tempo4.Q then
iEtape:=5;
end_if;
Re: Reset TIMER sous Machine Expert
Posté : 11 janv. 2022, 09:54
par AC23
Bonjour,
Je suis autant perdu que @itasoft.
Mais je pense que ton principal problème est que tes TON sont déclaré dans des CASE. Et par conséquent, si tu change la valeur booléen en dehors cela ne change pas (d'où l'impossibilité de faire un "RESET").
Si tu prend l'exemple de @itasoft. la déclaration du TON est en dehors du IF/END_IF (la même règle que pour le CASE).
Bon courage à toi.
Re: Reset TIMER sous Machine Expert
Posté : 11 janv. 2022, 13:37
par Brebiou
AC23 a écrit : ↑11 janv. 2022, 09:54
Mais je pense que ton principal problème est que tes TON sont déclaré dans des CASE. Et par conséquent, si tu change la valeur booléen en dehors cela ne change pas (d'où l'impossibilité de faire un "RESET").
Bonjour,
AC23 a raison, les déclarations sont a faire en dehors du CASE, sinon elle ne seront scrutée que lorsque l'étape du CASE est active.
Dans ton code, il y a fort a parier que la valeur IN reste a 1 car lors du cycle où il devrait retomber à 0, tu n'es plus dans l'étape scrutée du CASE.