Bonjour à tous,
Le lien est une évolution majeure de l’IPX800 v5. Il facilite grandement la mise en œuvre de nos configurations.
Pourtant, nous avons tous constaté des comportements parfois étonnants de ces liens :
- Les états des variables situées aux deux extrémités du lien peuvent être différents.
- Inexplicablement, un lien ne peut pas être établi…
Bug ou spécificité ?
La documentation sur le comportement des liens n’est pas très détaillée.
Je propose, dans ce post, que nous partagions notre expérience sur ce sujet.
Pour initialiser le sujet, je vous livre mon analyse de ce nouveau moyen d’assembler les ressources. Il s’agit de ma propre interprétation, suite à ce que j’ai pu constater durant ces quelques dernières semaines. J’ai peut-être fait de grosses erreurs d’interprétation et n’hésitez pas à apporter la controverse. L’unique but est de parfaire la connaissance du produit et d’exploiter au mieux les nouvelles possibilités qu’il apporte.
Rappel :
-
Les ressources communiquent entre elles au moyen de leurs variables (variables d’entrée et variables de sortie). Pour activer ou modifier le comportement d’une ressource, il faut écrire des informations sur une de ses variables d’entrées. En retour, la ressource restitue le résultat son action en écrivant sur ses variables de sorties.
-
Sur les IPX800 v4 et v5, la communication entre deux variables est assurée par le moteur de règles. Ce moteur de règles assure l’écriture de valeurs dans les variables d’entrée des ressources lors de la détection d’événements. Les événements sont déclenchés suivant les variations d’états des différentes variables et suivant les consignes préalablement paramétrées dans des règles.
Le lien est une règle
Pour fonctionner, le lien utilise le moteur de règle. Lorsque l’on établit un lien entre une sortie (extrémité source du lien) et une entrée (extrémité destination du lien), on crée une règle simplifiée ayant les valeurs suivantes :
- Evènement = variable de sortie située à l’extrémité source du lien
- Action : Une des 5 actions disponibles dans le moteur de règles ; ON/OFF, ON, OFF, SWITCH, SET VAL. Par défaut, l’action ON/OFF est sélectionnée.
- Variable modifiée = variable d’entrée située à l’extrémité destination du lien
Le lien n’est pas permanent
Le lien établi n’est donc pas un lien permanent, équivalent à un fil électrique connecté aux deux extrémités, mais un lien évènementiel, établi uniquement à chaque variation de l’extrémité source avec les limitations dépendantes de l’action sélectionnée. En absence de variation sur la variable source, la connexion source => destination est désactivée. Cela explique que, dans certains cas, les variables situées aux deux extrémités du lien puissent avoir des valeurs ou des états différents.
Le lien ne peut être établi qu’entre une entrée et une sortie
Une règle peut utiliser, dans la partie événement, indifféremment des sorties ou des entrées. Un lien lui, ne peut être établi qu’entre une sortie (source) et une entrée (destination). Par contre, il peut être crée aussi bien à partir de la source qu’à partir de la destination.
Sortie distribuée sur plusieurs liens
Sur une sortie source, il est possible de créer jusqu’à 8 liens. Dès la création d’un deuxième lien, le connecteur passe automatiquement en mode multi-liens et son aspect est modifié :
Il semble que, lors de la création de chaque destination supplémentaire, un couple action-variable soit ajouté à la règle déjà créée :
Dans cette hypothèse, l’ensemble des liens au départ d’une seule sortie n’utilise qu’une seule règle.
Réception de plusieurs liens sur une seule entrée
Sur une entrée destination, il est possible de recevoir jusqu’à 8 liens. Dès la création d’un deuxième lien, le connecteur passe automatiquement en mode multi-liens et son aspect est modifié :
Discussion
Sur le forum, plusieurs intervenants ont indiqué que, dans cette configuration, les liens étaient combinés entre eux avec la logique OU. On pourrait donc penser que la partie événement de la règle initiale serait modifiée et que les différentes sources seraient combinées entre elles avec l’opérateur OU :
Si l’on teste la configuration suivante :
et que l’on fait varier successivement les 2 variables IO a et IO b on obtient le résultat suivant :
La colonne « Règle a OU b » a été obtenue de la même manière mais en supprimant les liens et en activant la règle IOa OU IOb.
On constate que le variable IO c ne réagit pas suivant une logique combinatoire OU mais suivant une logique événementielle où c’est la dernière variation sur un des liens qui conditionne le résultat.
La connexion de plusieurs liens sur une seule entrée est donc identique à la création de plusieurs règles indépendantes ayant la même variable destination.
Limitation sur les connexions multi-liens
Un lien ne peut avoir qu’une seule extrémité reliée à un connecteur en mode multi-lien
Réédité suite aux contributions de @cce66 et de @Jweb et la confirmation de @GCE
Si l’on tente de créer un lien et que cela provoquerait soit la création d’un lien qui aurait deux connexions multi-liens, soit la modification de liens existant en liens à deux connexions multi-liens, deux cas de peuvent ce produire :
-
nous avons le message « IHM, Invalid selection »
En glissant la souris sur le lien, nous avons le message « Already used »
Le lien n’est pas créé. -
le lien souhaité est crée, mais des liens existant sont supprimés sans avertissement.
Ce problème fait l’objet d’un prochain correctif. La description détaillée de ce point est réalisée plus bas, dans ce fil, ainsi que la réponse de @GCE
En clair, la configuration suivante est interdite à cause du lien entre IOb et IOc :
Edit : suite aux contributions de @cce66 et de @Jweb et la confirmation de @GCE
Visualisation des variables raccordée à des liens dans les pages collections
Dans le menu Variable, il est possible de voir la collection d’une catégorie de variable.
Sur la page collection, il est possible d’afficher toutes les variables de la catégorie sur deux pages. La page « Virtual » affiche les variables indépendantes et la page « Système » affiche les variables dépendantes du système proprement dit, mais aussi les variables dépendantes des ressources. Deux pictogrammes symbolisent l’état de la connexion des accès. Le pictogramme de gauche symbolise l’accès écriture (accès in), celui de droite l’accès lecture (accès out). Le pictogramme indique qu’il n’y a aucun lien raccordé sur l’accès
Cette variable par exemple est connectée physiquement à l’entrée opto 4 en écriture. Son accès lecture n’est pas connecté
Le symbole indique la présence d’au moins un lien sur l’accès.
Cette variable est la variable d’entrée Start d’une ressource temporisateur et au moins un lien est raccordé sur son accès écriture.
Cette variable est la variable Output d’une ressource comparateur et au moins un lien est raccordé sur son accès lecture.
Problème avec la longueur du nom d’une input
Edit : Vu avec @patam, le problème évoqué n’est pas de conséquence sur les liens
Dans le Tuto Utilisation de la fonction MQTT sur l’IPX800 5,Patam remonte le problème suivant
[quote=« patam, post:4, topic:14502 »]
Le nom de l’input1 est trop long c’est pour ça que le input 1 ne fonctionne pas par les liens.
[/quote]
Personnellement, je n’ai, ni utilisé la fonction MQTT, ni rencontré par ailleurs ce problème.
@patam : pourriez vous le documenter ?
En espérant que ce post suscite de nombreuses remontées et que plus aucune zone d’ombre ne subsiste dans l’utilisation des liens…
Bonne soirée