Je ne comprends pas pourquoi tu réagis comme cela. Je ne cherche à agresser personne avec mes questionnements.
Apparemment tu n'as pas compris mes interrogations.
Je ne suis plus débutant en automatisme, je sais très bien programmer des fronts.
Mon travail consiste en bonne partie à dépanner des programmes dont je ne suis pas l'auteur, dans des contextes différents.
Et je déteste ne pas comprendre quand un automate ne fait pas ce qu'il est censé faire.
Peut-être que je suis autiste ou perfectionniste ou timbré...
Il m'arrive de jouer à des jeux mathématiques et logiques.
Donc j'ai fait quelques tests avec les simulateurs que j'ai sous la main.
J'ai simplement réalisé ce petit programme (et rien d'autre) : Le but est de tester le changement de valeur d'un bit sur un même cycle de scrutation et la détection des fronts.
Au passage en mode RUN, les variables sont toutes à 0.
Au cours du cycle la variable %M0 passe à 1 puis repasse à 0. Elle a donc la valeur 0 à la fin de chaque cycle.
- Avec le simulateur Unity Pro sans l'option "détection de front par scrutation unique pour EBOOL" du langage LD :
Tous les compteurs s'incrémentent (à chaque cycle) et ils ont tous la même valeur à la fin de la scrutation.
- Avec les simulateurs TwidoSuite, EcoStruxure Machine Expert Basic (M221) et Unity Pro avec l'option "détection de front par scrutation unique pour EBOOL" du langage LD :
Les 2 compteurs de fronts restent à 0 et les 2 compteurs d'état s'incrémentent.
Effectivement l'aide de TwidoSuite dit bien : "Des instructions sur test booléennes peuvent être utilisées pour détecter des fronts montants ou descendants sur les entrées de l'automate. Un front est détecté lorsque l'état d'une entrée est passé de la valeur "scrutation n-1" à la valeur "scrutation n" courante. La détection de ce front reste effective pendant la scrutation courante."
L'aide d'EcoStruxure Machine Expert Basic ajoute quelques précisions : "Les objets [contact de front] sont mis à jour seulement au début du cycle de tâche maître suivant la détection d'un front. Le changement d'état d'un bit mémoire (%M0, par exemple) est signalé avec une scrutation de retard."
Les résultats sont pour moi très instructifs.
Je suis surtout très très surpris qu'on puisse lire une valeur à 1 et détecter le front montant au cycle suivant !
Je n'ai pas encore fait le test avec les tâches rapides ou auxiliaires dans Unity Pro.