16/04/2020, 15:54:43
(16/04/2020, 12:52:26)carmic a écrit : J'ai déjà lu le mode d'emploi et aussi vu pas mal de vidéo et c'est en configurant ETS5 avec mes participants que je me suis posé la question du double appuis.Le problème du double-appui n'est pas lié au matériel mais au contenu des GA
Avant d'acheter les participants, je veux être sûr que je n'aurai pas le problème et que ça ne vient pas du matériel.
(16/04/2020, 12:52:26)carmic a écrit : Et la, en regardant ton post, je n'ai pas compris pourquoi ça marcherait en toggle a moins que les BP écoutent les autres BP ou l'état de sortie.Tu souhaitais réaliser une fonction télérupteur et il me semblait qu'il y avait une confusion entre le toggle des entrées et le toggle des sorties. Je n'ai répondu qu'à la question de la réalisation du télérupteur sans aborder la problématique du double-appui.
Concernant un éventuel problème de double-appui, il faut poster un cas en décrivant précisément qui commande quoi et quelles sont les GA créées.
En attendant, voici le principe général :
En préambule :
- il est possible d'associer un même objet à plusieurs GA mais seul objet avec le flag S (S= Send=envoyer) envoie l’adresse de groupe sur le bus ;
- les objets sans le flag S sont seulement à l'écoute pour mettre à jour leur état interne ;
- la chronologie de placement des objets est importante car la première fois que objet est placé dans une GA il a obligatoirement le flag S, lorsque l'objet sera ensuite placé dans d'autres GA, il n’aura pas le flag S.
- Un BP1 commande la Lampe 1 (l'objet ON/OFF du BP change de valeur à chaque à chaque appui)
- Un BP2 commande la Lampe 2 (l'objet ON/OFF du BP change de valeur à chaque à chaque appui)
GA 1 :
OBJ ON/OFF BP1 (S = 1)
OBJ Sortie ON/OFF Lampe 1
GA 2 :
OBJ ON/OFF BP2 (S = 1)
OBJ Sortie ON/OFF lampe 2
Je n'ai volontairement pas créé de GA supplémentaires (afin d'éviter des confusions) pour le retour d'état des sorties utilisées pour piloter une LED d'état ou par le superviseur.
La base :
L'objet du bouton et l'actionneur de la lampe doivent appartenir au même groupe ; dans l'exemple BP1 et Lampe 1 pour GA1.
Dès l'appui sur BP1, un télégramme est émis sur le bus et tous les participants écoutent ce message et l'analysent. Comme il contiendra des informations ("ON" ou "OFF") affectées au groupe GA1 , ce télégramme ne sera traité que par les participants de ce groupe (ici l'actionneur de la lampe 1 qui émet alors un accusé de réception sur le bus et effectue la tache demandée).
Modification
On ajoute un BP3 qui commande simultanément les lampes 1 et 2 en ON/OFF (Basculement à chaque appui). On ajoute une GA pour cette fonctionnalité :
GA 3 :
OBJ ON/OFF BP3 (S = 1)
OBJ ON/OFF Lampe 1
OBJ ON/OFF Lampe 2
Le problème du double appui va apparaître :
1ère situation
Etat initial : toutes les lampes sont éteintes et il n'y eu aucune action sur les BP (toutes les GA=OFF)
--> appui sur BP1 --> Lampe 1 s'allume (GA1=ON)
On souhaite éteindre la lampe 1 avec le BP3 (la GA3 est toujours à OFF car elle n'a pas été informée du changement d'état du BP1, l'objet BP1 n'étant pas dans la GA3)
--> appui sur BP3
--> GA3 passe de OFF à ON : la lampe 1 reste allumée et la lampe 2 s'allume (il faudra un second appui sur BP3 pour éteindre les 2 lampes)
2ème situation
Etat initial : toutes les lampes sont éteintes et il n'y eu aucune action sur les BP (toutes les GA=OFF)
On souhaite allumer les lampe 1 et 2 avec le BP3
-->appui sur BP3
--> Lampes 1 et 2 s'allument et GA3=ON
Je souhaite éteindre la lampe 1 avec le BP1 (la GA1 est toujours à OFF car elle n'a pas été informée du changement d'état du BP3, l'objet BP3 n'étant pas dans la GA1)
-->appui sur BP1
--> GA1 passe de OFF à ON (La lampe 1 reste allumée) ; il faudra un second appui sur BP1 pour l'éteindre
Il faut donc inclure dans les GA "l'écoute" de l'état des autres boutons afin d'éviter ce problème de double-appuis et pour que les objets des boutons soit synchronisés, il suffit de tous les lier à la GA, en précisant celui qui doit émettre la valeur sur le bus en cas de changement.
La solution finale
GA 1 :
OBJ ON/OFF BP1 (S = 1)
OBJ Sortie ON/OFF Lampe 1
OBJ ON/OFF BP2 (S=0)
OBJ ON/OFF BP3 (S=0)
GA 2 :
OBJ ON/OFF BP2 (S = 1)
OBJ Sortie ON/OFF Lampe 2
OBJ ON/OFF BP1 (S=0)
OBJ ON/OFF BP3 (S=0)
GA 3 :
OBJ ON/OFF BP3 (S = 1)
OBJ Sortie ON/OFF Lampe 1
OBJ Sortie ON/OFF Lampe 2
OBJ ON/OFF BP1 (S=0)
OBJ ON/OFF BP2 (S=0)