Forum Lifedomus
Automates... Déclenchements en parallèle, réentrance et paramètres d'entrée/sortie - Version imprimable

+- Forum Lifedomus (http://forum-lifedomus.com)
+-- Forum : Les outils de configuration et design (http://forum-lifedomus.com/forumdisplay.php?fid=7)
+--- Forum : Config Studio (CS) (http://forum-lifedomus.com/forumdisplay.php?fid=8)
+---- Forum : Automatismes (http://forum-lifedomus.com/forumdisplay.php?fid=42)
+----- Forum : Automates (Module logique avancé) (http://forum-lifedomus.com/forumdisplay.php?fid=144)
+----- Sujet : Automates... Déclenchements en parallèle, réentrance et paramètres d'entrée/sortie (/showthread.php?tid=911)



Automates... Déclenchements en parallèle, réentrance et paramètres d'entrée/sortie - bizniouf - 07-10-2014

Bonjour,

Lorsqu'un automate A exécute un automate B, l'automate A continue de se dérouler en parallèle de l'exécution de l'automate B.
J'observe que lorsqu'on essaie d'exécuter un automate qui est déjà lancé, il ne se passe rien : Dans le cas précédent, l'automate A continue de se dérouler, et l'automate B, qui était déjà en cours d'exécution, continue l'exécution commencée.

Je suis tombé sur un cas de figure où ce fonctionnement pose problème, à savoir que je déclenche un automate pour générer un nombre pseudo-aléatoire que j'utilise dans plusieurs automates dans le cadre d'une simulation de présence (je prendrai le temps à l'occasion d'expliquer comment j'ai fait si ça intéresse certains). Dans ce cas, le fonctionnement ci-avant décrit a pour conséquence de ne pas générer un nouveau nombre pseudo-aléatoire, avec des conséquences fâcheuses sur ma simulation de présence.

L'idéal serait de pouvoir déclencher plusieurs instances du même automate en parallèle, sauf que dans mon cas ça ne fonctionnerait pas puisque la seule façon d'échanger des paramètres d'entrée/sortie entre automates est aujourd'hui d'utiliser des variables publiques, ce qui est incompatible avec toute réentrance. Donc (ça faisait longtemps...) il faudrait qu'un automate puisse prendre des variables en entrée et fournir un résultat en sortie...

En attendant il faudrait qu'on puisse paramétrer le déclenchement d'un automate depuis un autre de telle façon que l'appelant se mette en attente de la fin de l'exécution du second avant de poursuivre son traitement ET il faudrait qu'on puisse spécifier qu'un automate est réentrant ou non ET que l'appelant se mette en attente si l'automate appelé n'est pas réentrant et qu'il est déjà en cours d'exécution...

Bon, ce serait peut-être plus simple d'implémenter le passage de paramètres en entrée/sortie... ;-)

Thierry


Automates... Déclenchements en parallèle, réentrance et paramètres d'entrée/sortie - coyotus - 01-26-2015

+1 :)


Automates... Déclenchements en parallèle, réentrance et paramètres d'entrée/sortie - coyotus - 01-26-2015

Bonjour,

A force de travailler avec les automates, j'en arrive aux même demandes que bizniouf, voici mes remarques/suggestions d'évolution :

1. paramètres entrée/sortie

[INDENT]comme déjà suggéré plus haut[/INDENT]


2. action pré/post lancement, ainsi qu'action sur arrêt en cours d'exécution

[INDENT]disposer de 3 séries d'opérations différentes qui seront lancées respectivement :[/INDENT]

  1. [*=1]avant/au lancement de l'automate,
    [*=1]à la fin de l'automate
    [*=1]si l'automate est arrêté en cours d'exécution


3. exécution parallèle/impérative

[INDENT]L'automate A lance un automate B, il faudrait pouvoir dire si on doit ou non attendre la fin de l'automate B pour continuer l’exécution de l'automate A, ou si automate A continue son travail tout de suite après le lancement de B.
Cette propriété devrait être configurée dans l'automate A au niveau des propriétés de l'action "lancer automate B" et non pas dans les propriétés de l'automate B lui même : ainsi automate B pourrait être lancé de façon parallèle par un automate A et impérative par un automate C [/INDENT]


4. états des automate dans le CS
[INDENT]pouvoir utiliser les retours d'état des automates dans le CS (déclencheurs, if, ...). Pour l'instant ne sont disponibles que "Est démarré" et "Est activé" dans le DS, mais rien dans le CS
retour d'état que j'ai identifié :[/INDENT]
  • [*=1]activé : "Est activé", "Dès que activé"
    [*=1]désactivé : idem
    [*=1]démarré : idem
    [*=1]arrêté : idem
    [*=1]arrêté en cours d'exécution : idem
    [*=1]date & heure de la dernière exécution (à rajouter aussi dans le DS)
[INDENT]
[/INDENT]
Cordialement

Hervé