Bonjour ,
Désolé, mais ce programme ne fonctionne pas...
Si on déchiffre ce que tu as écrit :
1 --> RESET M34 = I0.3 and M34
2 --> SET M34 = I0.3 and not M34
3 --> Q0.7 = M34
Pour rappel, un automate lit du haut vers le bas le programme.
Condition initiale : M34 = 0, Q0.7 = 0
A l'étape 1, si I0.3 = 1, il ne se passe rien.
A l'étape 2, si I0.3 = 1, M34 = 1
A l'étape 3, Q0.7 = 1
Donc le SET fonctionne bien.
Condition initiale : M34 = 1, Q0.7 = 1
A l'étape 1, si I0.3 = 1, alors M34 = 0.
A l'étape 2, si I0.3 = 1, puisque M34 est à 0, la condition est vrai donc M34 repasse a 1
A l'étape 3, Q0.7 = 1
Donc le reset est annulé par le set qui se trouve après.
Si tu inverses l'ordre des opérations ça sera le reset qui sera la dernière opération donc ta sortie restera à 0.
Le problème est que la variable M34 évolue durant le cycle de scutation. Pour pallier à ce problème, il faut une variable qui ne varie pas en cours de scrutation : c'est le cas de Q0.7 qui n'est actualisé qu'à la fin.
1 --> RESET M34 = I0.3 and Q0.7
2 --> SET M34 = I0.3 and not Q0.7
3 --> Q0.7 = M34
Donc le déroulement devient :
Condition initiale : Q0.7 = 0
A l'étape 1, si I0.3 = 1, il ne se passe rien.
A l'étape 2, si I0.3 = 1, M34 = 1.
A l'étape 3, Q0.7 = 1.
Donc le SET fonctionne bien.
Condition initiale : Q0.7 = 1
A l'étape 1, si I0.3 = 1, alors M34 = 0.
A l'étape 2, si I0.3 = 1, puisque Q.7 est à 1, la condition est fausse.
A l'étape 3, Q0.7 = 0.
Le reset fonctionne.
Enfin pour être parfait, il faut que les conditions I0.3 soit testées sur un front montant, et non un état 1, car sinon la sortie clignote à chaque scrutation de programme.
PS : désolé mais je ne maitrise pas le TSX07 (je connais mieux le 37/57 et M340...)