Problème ecriture d'un registre dans un PLC

Bonjour,
j’utilise le plugin mymodbus pour lire et écrire des registes ou bits dans un PLC.
polling réglé à 60s
temps entre 2 requêtes 0.5s

Aucun problème de lecture.

J’envoie 2 requêtes d’écriture sur registre.

La première requête d’écriture sur 1 registre fonctionne correctement.

La deuxième requête d’écriture sur 1 registre n’est pas envoyée. En revanche, l’envoi manuel (test) fonctionne ?


avec en option #[Home][T° amb RdC][T° amb RdC]#*10

Pouvez-vous m’aider ?

Bonjour,

Quelle différence faites-vous entre l’envoi qui ne fonctionne pas et l’envoi manuel ?
Quel est le déclencheur pour la requête non envoyée ?
Êtes-vous sûr que la requête n’est pas envoyée ou est-ce que la valeur envoyée ne correspond pas à ce que vous souhaiteriez ?
Vous avez des log de vos tests ?

A+
Michel

L’envoi manuel: tout à droite de la commande correspondante , clic sur test ( fonctionne).
Déclencheur: polling toutes les 60 s
Oui je suis sûr que la commande n’est pas envoyée puisque la valeur reste inchangée dans le PLC par contre la bonne valeur est bien mise à jour par un envoi manuel (test).

Log deamon:
[2024-12-18 23:51:17] DEBUG : V350JTRA22 -Chauffage: ‹ one_cycle_read › launched
[2024-12-18 23:51:17] DEBUG : V350JTRA22 -Chauffage: ‹ one_cycle_read › treatment cmd_id = 21703
[2024-12-18 23:51:17] DEBUG : V350JTRA22 -Chauffage: ‹ one_cycle_read ›/MB 3_31: requesting read
[2024-12-18 23:51:17] DEBUG : Adding transaction 7278
[2024-12-18 23:51:17] DEBUG : send: 0x1c 0x6e 0x0 0x0 0x0 0x6 0x2 0x1 0x0 0x5 0x0 0x1b
[2024-12-18 23:51:17] DEBUG : V350JTRA22 -Chauffage: ‹ add_change › launched with payload = {‹ values::cycle_ok ›: {‹ value ›: 1, ‹ eqId ›: ‹ 252 ›}}
[2024-12-18 23:51:17] DEBUG : V350JTRA22 -Chauffage: ‹ add_change › No modification to send
[2024-12-18 23:51:17] DEBUG : Connection lost V350JTRA22 -Chauffage due to [Errno 104] Connection reset by peer
[2024-12-18 23:51:17] DEBUG : callback_disconnected called: [Errno 104] Connection reset by peer
[2024-12-18 23:51:17] DEBUG : Wait V350JTRA22 -Chauffage 100.0 ms before reconnecting.
[2024-12-18 23:51:17] DEBUG : V350JTRA22 -Chauffage: ‹ on_connect_callback › called with connected = False
[2024-12-18 23:51:17] DEBUG : Connecting V350JTRA22 -Chauffage
[2024-12-18 23:51:17] DEBUG : Connected to V350JTRA22 -Chauffage
[2024-12-18 23:51:17] DEBUG : V350JTRA22 -Chauffage: ‹ on_connect_callback › called with connected = True
[2024-12-18 23:51:22] DEBUG : Adding transaction 7278
[2024-12-18 23:51:22] DEBUG : send: 0x1c 0x6e 0x0 0x0 0x0 0x6 0x2 0x1 0x0 0x5 0x0 0x1b
[2024-12-18 23:51:22] DEBUG : recv: 0x1c 0x6e 0x0 0x0 0x0 0x7 0x2 0x1 0x4 0x96 0x80 0x0 0x0 old_data: addr=None
[2024-12-18 23:51:22] DEBUG : Processing: 0x1c 0x6e 0x0 0x0 0x0 0x7 0x2 0x1 0x4 0x96 0x80 0x0 0x0
[2024-12-18 23:51:22] DEBUG : decode PDU for 1
[2024-12-18 23:51:22] DEBUG : Frame advanced, resetting header!!
[2024-12-18 23:51:22] DEBUG : Getting transaction 7278
[2024-12-18 23:51:22] DEBUG : V350JTRA22 -Chauffage: ‹ process_read_response › launched for command id = 21703
[2024-12-18 23:51:22] DEBUG : V350JTRA22 -Chauffage: ‹ cmd_decode › launched for command id = 21708
[2024-12-18 23:51:22] DEBUG : V350JTRA22 -Chauffage: ‹ cmd_decode › launched for command id = 21707
[2024-12-18 23:51:22] DEBUG : V350JTRA22 -Chauffage: ‹ cmd_decode › launched for command id = 21706
[2024-12-18 23:51:22] DEBUG : V350JTRA22 -Chauffage: ‹ add_change › launched with payload = {‹ values::21703 ›: 1, ‹ values::21708 ›: True, ‹ values::21707 ›: False, ‹ values::21706 ›: True}
[2024-12-18 23:51:22] DEBUG : V350JTRA22 -Chauffage: ‹ add_change › No modification to send
[2024-12-18 23:51:22] DEBUG : V350JTRA22 -Chauffage: ‹ one_cycle_read › treatment cmd_id = 21704
[2024-12-18 23:51:22] DEBUG : V350JTRA22 -Chauffage: ‹ one_cycle_read ›/L MI 5_41: requesting read
[2024-12-18 23:51:22] DEBUG : Adding transaction 7279
[2024-12-18 23:51:22] DEBUG : send: 0x1c 0x6f 0x0 0x0 0x0 0x6 0x2 0x3 0x0 0x3 0x0 0x2d
[2024-12-18 23:51:22] DEBUG : recv: 0x1c 0x6f 0x0 0x0 0x0 0x5d 0x2 0x3 0x5a 0x0 0xbe 0x0 0x0 0x0 0x0 0x0 0xf3 0x0 0x6 0x0 0xa5 0x0 0x0 0xff 0x31 0x0 0xad 0xfe 0xc 0x1 0xf4 0x1 0x90 0x3 0xe7 0x0 0x8 0x0 0x0 0x0 0xe6 0x0 0x0 0x0 0x36 0x3 0x9a 0x0 0x29 0x3 0x9a 0x3 0x96 0x0 0x32 0x1 0xb8 0x0 0x0 0x0 0x0 0x0 0x0 0x4 0xd2 0x0 0xa 0x0 0xd2 0x0 0x0 0x0 0xb4 0x0 0x0 0x0 0x0 0x0 0xc4 0x0 0xf8 0x0 0x1 0x0 0xdc 0x1b 0xa9 0x0 0x0 0x1 0x90 0x0 0xf0 0x0 0x3c 0xfe 0x70 0x7 0x8 old_data: addr=None
[2024-12-18 23:51:22] DEBUG : Processing: 0x1c 0x6f 0x0 0x0 0x0 0x5d 0x2 0x3 0x5a 0x0 0xbe 0x0 0x0 0x0 0x0 0x0 0xf3 0x0 0x6 0x0 0xa5 0x0 0x0 0xff 0x31 0x0 0xad 0xfe 0xc 0x1 0xf4 0x1 0x90 0x3 0xe7 0x0 0x8 0x0 0x0 0x0 0xe6 0x0 0x0 0x0 0x36 0x3 0x9a 0x0 0x29 0x3 0x9a 0x3 0x96 0x0 0x32 0x1 0xb8 0x0 0x0 0x0 0x0 0x0 0x0 0x4 0xd2 0x0 0xa 0x0 0xd2 0x0 0x0 0x0 0xb4 0x0 0x0 0x0 0x0 0x0 0xc4 0x0 0xf8 0x0 0x1 0x0 0xdc 0x1b 0xa9 0x0 0x0 0x1 0x90 0x0 0xf0 0x0 0x3c 0xfe 0x70 0x7 0x8
[2024-12-18 23:51:22] DEBUG : decode PDU for 3
[2024-12-18 23:51:22] DEBUG : Frame advanced, resetting header!!
[2024-12-18 23:51:22] DEBUG : Getting transaction 7279
[2024-12-18 23:51:22] DEBUG : V350JTRA22 -Chauffage: ‹ process_read_response › launched for command id = 21704
[2024-12-18 23:51:22] DEBUG : V350JTRA22 -Chauffage: ‹ cmd_decode › launched for command id = 21717
[2024-12-18 23:51:22] DEBUG : V350JTRA22 -Chauffage: ‹ cmd_decode › launched for command id = 21718
[2024-12-18 23:51:22] DEBUG : V350JTRA22 -Chauffage: ‹ cmd_decode › launched for command id = 21719
[2024-12-18 23:51:22] DEBUG : V350JTRA22 -Chauffage: ‹ cmd_decode › launched for command id = 21721
[2024-12-18 23:51:22] DEBUG : V350JTRA22 -Chauffage: ‹ cmd_decode › launched for command id = 21720
[2024-12-18 23:51:22] DEBUG : V350JTRA22 -Chauffage: ‹ cmd_decode › launched for command id = 21731
[2024-12-18 23:51:22] DEBUG : V350JTRA22 -Chauffage: ‹ cmd_decode › launched for command id = 21725
[2024-12-18 23:51:22] DEBUG : V350JTRA22 -Chauffage: ‹ cmd_decode › launched for command id = 21722
[2024-12-18 23:51:22] DEBUG : V350JTRA22 -Chauffage: ‹ cmd_decode › launched for command id = 21724
[2024-12-18 23:51:22] DEBUG : V350JTRA22 -Chauffage: ‹ cmd_decode › launched for command id = 21733
[2024-12-18 23:51:22] DEBUG : V350JTRA22 -Chauffage: ‹ cmd_decode › launched for command id = 21729
[2024-12-18 23:51:22] DEBUG : V350JTRA22 -Chauffage: ‹ add_change › launched with payload = {‹ values::21704 ›: 1, ‹ values::21717 ›: 190, ‹ values::21718 ›: 6, ‹ values::21719 ›: 165, ‹ values::21721 ›: 243, ‹ values::21720 ›: 10, ‹ values::21731 ›: 0, ‹ values::21725 ›: 60, ‹ values::21722 ›: 248, ‹ values::21724 ›: 220, ‹ values::21733 ›: 440, ‹ values::21729 ›: 196}
[2024-12-18 23:51:22] DEBUG : MyModbusd: Message received from MyModbusClient V350JTRA22 -Chauffage: {‹ add_change ›: {‹ values::21722 ›: 248, ‹ values::21724 ›: 220, ‹ values::21733 ›: 440}}
[2024-12-18 23:51:22] DEBUG : Send to jeedom: {‹ values ›: {‹ 21722 ›: 248, ‹ 21724 ›: 220, ‹ 21733 ›: 440}}
[2024-12-18 23:51:23] DEBUG : V350JTRA22 -Chauffage: ‹ one_cycle_read › exit with error_or_exception = False

log mymodbus
[2024-12-18 23:51:00] mymodbus.DEBUG: mymodbus::deamon_info
[2024-12-18 23:51:00] mymodbus.DEBUG: mymodbus::getDeamonLaunchable
[2024-12-18 23:51:00] mymodbus.DEBUG: mymodbus::getCompleteConfiguration
[2024-12-18 23:51:00] mymodbus.DEBUG: mymodbus::getEqConfiguration
[2024-12-18 23:51:00] mymodbus.DEBUG: mymodbus::deamon_info * daemon_info = ‹ {« log »:« mymodbus »,« state »:« ok »,« launchable »:« ok »} ›
[2024-12-18 23:51:05] mymodbus.DEBUG: mymodbus::deamon_info
[2024-12-18 23:51:05] mymodbus.DEBUG: mymodbus::getDeamonLaunchable
[2024-12-18 23:51:05] mymodbus.DEBUG: mymodbus::getCompleteConfiguration
[2024-12-18 23:51:05] mymodbus.DEBUG: mymodbus::getEqConfiguration
[2024-12-18 23:51:05] mymodbus.DEBUG: mymodbus::deamon_info * daemon_info = ‹ {« log »:« mymodbus »,« state »:« ok »,« launchable »:« ok »} ›
[2024-12-18 23:51:10] mymodbus.DEBUG: mymodbus::deamon_info
[2024-12-18 23:51:10] mymodbus.DEBUG: mymodbus::getDeamonLaunchable
[2024-12-18 23:51:10] mymodbus.DEBUG: mymodbus::getCompleteConfiguration
[2024-12-18 23:51:10] mymodbus.DEBUG: mymodbus::getEqConfiguration
[2024-12-18 23:51:10] mymodbus.DEBUG: mymodbus::deamon_info * daemon_info = ‹ {« log »:« mymodbus »,« state »:« ok »,« launchable »:« ok »} ›
[2024-12-18 23:51:16] mymodbus.DEBUG: mymodbus::deamon_info
[2024-12-18 23:51:16] mymodbus.DEBUG: mymodbus::getDeamonLaunchable
[2024-12-18 23:51:16] mymodbus.DEBUG: mymodbus::getCompleteConfiguration
[2024-12-18 23:51:16] mymodbus.DEBUG: mymodbus::getEqConfiguration
[2024-12-18 23:51:16] mymodbus.DEBUG: mymodbus::deamon_info * daemon_info = ‹ {« log »:« mymodbus »,« state »:« ok »,« launchable »:« ok »} ›
[2024-12-18 23:51:21] mymodbus.DEBUG: mymodbus::deamon_info
[2024-12-18 23:51:21] mymodbus.DEBUG: mymodbus::getDeamonLaunchable
[2024-12-18 23:51:21] mymodbus.DEBUG: mymodbus::getCompleteConfiguration
[2024-12-18 23:51:21] mymodbus.DEBUG: mymodbus::getEqConfiguration
[2024-12-18 23:51:21] mymodbus.DEBUG: mymodbus::deamon_info * daemon_info = ‹ {« log »:« mymodbus »,« state »:« ok »,« launchable »:« ok »} ›
[2024-12-18 23:51:23] mymodbus.DEBUG: jeemymodbus.php: $result {« values »:{« 21722 »:248,« 21724 »:220,« 21733 »:440}} type: array
[2024-12-18 23:51:23] mymodbus.DEBUG: jeemymodbus.php: Mise à jour cmd ‹ Temp Départ eau › → new value: ‹ 248 ›
[2024-12-18 23:51:23] mymodbus.DEBUG: jeemymodbus.php: Mise à jour cmd ‹ Temp Retour › → new value: ‹ 220 ›
[2024-12-18 23:51:23] mymodbus.DEBUG: jeemymodbus.php: Mise à jour cmd ‹ OUT PID › → new value: ‹ 44 ›
[2024-12-18 23:51:26] mymodbus.DEBUG: mymodbus::deamon_info
[2024-12-18 23:51:26] mymodbus.DEBUG: mymodbus::getDeamonLaunchable
[2024-12-18 23:51:26] mymodbus.DEBUG: mymodbus::getCompleteConfiguration
[2024-12-18 23:51:26] mymodbus.DEBUG: mymodbus::getEqConfiguration
[2024-12-18 23:51:26] mymodbus.DEBUG: mymodbus::deamon_info * daemon_info = ‹ {« log »:« mymodbus »,« state »:« ok »,« launchable »:« ok »} ›
[2024-12-18 23:51:31] mymodbus.DEBUG: mymodbus::deamon_info
[2024-12-18 23:51:31] mymodbus.DEBUG: mymodbus::getDeamonLaunchable
[2024-12-18 23:51:31] mymodbus.DEBUG: mymodbus::getCompleteConfiguration
[2024-12-18 23:51:31] mymodbus.DEBUG: mymodbus::getEqConfiguration
[2024-12-18 23:51:31] mymodbus.DEBUG: mymodbus::deamon_info * daemon_info = ‹ {« log »:« mymodbus »,« state »:« ok »,« launchable »:« ok »} ›
[2024-12-18 23:51:36] mymodbus.DEBUG: mymodbus::deamon_info
[2024-12-18 23:51:36] mymodbus.DEBUG: mymodbus::getDeamonLaunchable
[2024-12-18 23:51:36] mymodbus.DEBUG: mymodbus::getCompleteConfiguration
[2024-12-18 23:51:36] mymodbus.DEBUG: mymodbus::getEqConfiguration
[2024-12-18 23:51:36] mymodbus.DEBUG: mymodbus::deamon_info * daemon_info = ‹ {« log »:« mymodbus »,« state »:« ok »,« launchable »:« ok »} ›
[2024-12-18 23:51:41] mymodbus.DEBUG: mymodbus::deamon_info
[2024-12-18 23:51:41] mymodbus.DEBUG: mymodbus::getDeamonLaunchable
[2024-12-18 23:51:41] mymodbus.DEBUG: mymodbus::getCompleteConfiguration
[2024-12-18 23:51:41] mymodbus.DEBUG: mymodbus::getEqConfiguration
[2024-12-18 23:51:41] mymodbus.DEBUG: mymodbus::deamon_info * daemon_info = ‹ {« log »:« mymodbus »,« state »:« ok »,« launchable »:« ok »} ›
[2024-12-18 23:51:46] mymodbus.DEBUG: mymodbus::deamon_info
[2024-12-18 23:51:46] mymodbus.DEBUG: mymodbus::getDeamonLaunchable
[2024-12-18 23:51:46] mymodbus.DEBUG: mymodbus::getCompleteConfiguration
[2024-12-18 23:51:46] mymodbus.DEBUG: mymodbus::getEqConfiguration
[2024-12-18 23:51:46] mymodbus.DEBUG: mymodbus::deamon_info * daemon_info = ‹ {« log »:« mymodbus »,« state »:« ok »,« launchable »:« ok »} ›
[2024-12-18 23:51:51] mymodbus.DEBUG: mymodbus::deamon_info
[2024-12-18 23:51:51] mymodbus.DEBUG: mymodbus::getDeamonLaunchable
[2024-12-18 23:51:51] mymodbus.DEBUG: mymodbus::getCompleteConfiguration
[2024-12-18 23:51:51] mymodbus.DEBUG: mymodbus::getEqConfiguration
[2024-12-18 23:51:51] mymodbus.DEBUG: mymodbus::deamon_info * daemon_info = ‹ {« log »:« mymodbus »,« state »:« ok »,« launchable »:« ok »} ›
[2024-12-18 23:51:56] mymodbus.DEBUG: mymodbus::deamon_info
[2024-12-18 23:51:56] mymodbus.DEBUG: mymodbus::getDeamonLaunchable
[2024-12-18 23:51:56] mymodbus.DEBUG: mymodbus::getCompleteConfiguration
[2024-12-18 23:51:56] mymodbus.DEBUG: mymodbus::getEqConfiguration
[2024-12-18 23:51:56] mymodbus.DEBUG: mymodbus::deamon_info * daemon_info = ‹ {« log »:« mymodbus »,« state »:« ok »,« launchable »:« ok »} ›

Merci d’avance

Les commandes action ne sont pas dans le cycle de polling et c’est volontaire. On n’écrit une valeur que sur événement en dehors du polling de lecture.

edit : il faut donc programmer l’écriture dans un scénario

Il faudrait mettre les log dans des balises de Texte préformaté via la bouton </>
Là comme ça, pour moi, ce n’est pas très lisible et certains caractères sont modifiés par discourse (le moteur du community)

1 « J'aime »

Bonsoir,

Je ne comprends pas tout. Je ne vois pas ce qu’il faudrait écrire dans un scénario !
Actuellement, l’action consiste uniquement d’envoyer une valeur de température lue par un capteur ENocean vers le PLC.

D’autre part, j’ai une autre action qui envoie la consigne de température et qui elle fonctionne très bien.

Que dois-je écrire dans ce scénario ?

Je fais également ça, voilà comment :

  • dans le champs option/valeur de la commande action de MyModbus, j’ai choisi valeur de la commande à écrire dans le registre :

  • dans la commande « source » (celle dont la valeur doit être écrite dans l’automate) j’ai ajouté une commande action en cas de changement. La condition est différent d’une valeur impossible afin qu’à chaque changement de valeur la condition soit vrai et l’action soit exécutée. Dans la configuration de la commande info « source » :

Comme c’est une distance, elle n’est jamais négative donc la condition est toujours vrai.

Effectivement, pas besoin de scénario dans ce cas.

Bonjour,
Je viens de remarquer que je n’ai pas le même menu que vous, et ce, avec le même type d’action « « défaut » ».
image
Important, j’ai oublié de dire que je suis en version bêta de mymodbus.
Je vais donc faire plusieurs essais avec (ne pas exécuter … et action avant exécution).

re,
j’ai des petites questions :
1 dans la configuration d’une commande action défaut, « ne pas exécuter la commande… » = défaut . Défaut signifie oui ou non ?
2 toujours dans la configuration d’une commande si j’écris une action dans « « Action avant exécution de la commande » », que dois-je mettre dans option de la commande ?

Merci d’avance,

Bonjour,

En effet, comme indiqué, c’est parce qu’il faut prendre la commande « source », la commande info. Les paramètres ne sont pas les mêmes pour une commande info ou action.

Ca signifie sans doute que c’est la configuration par défaut qui est prise. Sinon on force à oui ou à non pour la commande en cours de configuration. La configuration par défaut se trouve dans Réglages / Système / Configuration, onglet Equipement, tout en bas.

Dans option de quelle commande ?

Bonsoir,
Toujours de nombreux essais sans succès.
Finalement, je me suis penché davantage sur le lancement de la commande par un scénario.
Et là tout semble fonctionner correctement. Je confirmerai ceci demain.
En relisant la documentation, je ne trouve pas que cette méthode soit clairement expliquée.

C’est pourtant vraiment juste les commandes source et action à modifier comme indiqué, rien de plus.

C’est de l’utilisation de Jeedom, pas particulièrement du plugin.

Je confirme le bon fonctionnement en poussant la commande action par un scénario.
Je remercie Michel_F pour son aide.
En dehors du fait que l’utilisation d’un scénario ne soit pas indiquée dans la documentation, le plugin fonctionne à la perfection et son utilisation est relativement simple.
Merci à l’auteur.

1 « J'aime »