05-21-2017, 04:22 PM
.
Bonjour,
Il m'arrive depuis un automate d'en appeler un autre.
Cela me permet par exemple d'utiliser l'automate appelé comme une fonction. Plutôt que de reproduire l'automate appelé 3 fois dans les 3 automates maîtres, il n'est repris qu'une seule fois, et si cette "fonction(alité)" est appelée à évoluer, je fais la modif une seule fois !
MAIS
J'ai constaté un GROS problème.
Je crée une action pour exécuter l'automate, puis une autre qui suit cette action : elles sont lancées les une après les autres, et l'action qui suit le lancement de l'automate n'attend pas la fin de l'automate.
Exemple (je lui ai fait actionner des lampes pour être sûr des actions)
Mon automate principal s'appelle Z_Main.
Il a démarré à 20:14:12 en appelant l'automate Z_Sub.
[attachment=1719]
L'automate Z_Sub a bien démarré à 20:14:12
[attachment=1720]
comme je suis sûr qu'il dure 5 secondes (cfr Délais), je m'attendais à ce que la seconde action de l'automate Z_Main démarre à 20:14:17.
Or elle a été enclenchée à 20:14:13 (13 ou 12, c'est la même chose, c'est dû aux arrondis, à l'après de quelques millisecondes)
[attachment=1721]
N.B. pour avoir les heures d'exécution de mise à jour de l'automate appelé (Z_Sub), il ne suffit pas de l'ouvrir une fois appelé (quand on l'ouvre directement, on a les heures d'exécution de la fois précédente), mais il faut faire une modif dans l'automate (changer la durée du Wait), afin de pouvoir le sauver, et alors on a les heures mises à jour.
La "solution" serait d'ajouter un Délais dans l'automate Z_Main qui correspond à la durée d'exécution du Z_Sub. Mais ce n'est pas propre, ET ici c'est facile, mais vous pouvez avoir des automates Z_Sub qui ont des durées d'exécution variables ...
Bonjour,
Il m'arrive depuis un automate d'en appeler un autre.
Cela me permet par exemple d'utiliser l'automate appelé comme une fonction. Plutôt que de reproduire l'automate appelé 3 fois dans les 3 automates maîtres, il n'est repris qu'une seule fois, et si cette "fonction(alité)" est appelée à évoluer, je fais la modif une seule fois !
MAIS
J'ai constaté un GROS problème.
Je crée une action pour exécuter l'automate, puis une autre qui suit cette action : elles sont lancées les une après les autres, et l'action qui suit le lancement de l'automate n'attend pas la fin de l'automate.
Exemple (je lui ai fait actionner des lampes pour être sûr des actions)
Mon automate principal s'appelle Z_Main.
Il a démarré à 20:14:12 en appelant l'automate Z_Sub.
[attachment=1719]
L'automate Z_Sub a bien démarré à 20:14:12
[attachment=1720]
comme je suis sûr qu'il dure 5 secondes (cfr Délais), je m'attendais à ce que la seconde action de l'automate Z_Main démarre à 20:14:17.
Or elle a été enclenchée à 20:14:13 (13 ou 12, c'est la même chose, c'est dû aux arrondis, à l'après de quelques millisecondes)
[attachment=1721]
N.B. pour avoir les heures d'exécution de mise à jour de l'automate appelé (Z_Sub), il ne suffit pas de l'ouvrir une fois appelé (quand on l'ouvre directement, on a les heures d'exécution de la fois précédente), mais il faut faire une modif dans l'automate (changer la durée du Wait), afin de pouvoir le sauver, et alors on a les heures mises à jour.
La "solution" serait d'ajouter un Délais dans l'automate Z_Main qui correspond à la durée d'exécution du Z_Sub. Mais ce n'est pas propre, ET ici c'est facile, mais vous pouvez avoir des automates Z_Sub qui ont des durées d'exécution variables ...