Automate Schneider M221 avec passerelle Rs485<->Wifi Elfin EW11A

Bonjour,

J’essaie tant bien que mal de faire communiquer jeedom avec un automate Schneider TM221.
Je passe par une passerelle RS485<->Wifi Elfin EW11A.

La passerelle étant en modbus master, je dois donc configurer mon automate en tant qu’esclave (ID:1 par exemple). Non?

J’arrive à me connecter au serveur TCP/IP Elfin avec le plugin Mymodbus mais je n’arrive pas à lire ou écrire sur les différents registres du M221. J’ai configuré pour qu’il se communique avec l’esclave id 1.

Normalement, dans le programme automate, je devrais aller lire et écrire dans un esclave avec la fonction Read_Var ou Write_Var mais comment écrire dans le master (Elfin EW11a) alors qu’il est nécessaire d’entrer un numéro d’esclave?.

Bref, je suis perdu…Je ne sais pas si je dois mettre l’automate en maitre ou esclave du coup et comment je dois configurer mes requètes coté Mymodbus.

un peu d’aide serait le bienvenu.

Merci d’avance

Bonjour

Je vais essayé de vous donner quelques informations, la communication a établir en Modbus n’est jamais simple surtout si l’on utilise des passerelles. Si j’ai bien compris:

  • Liaison TM221 - Passerelle Elfin :

A configurer sur le TM221 :

  • TM221 est l’esclave : fixer une adresse entre 1 et 255
  • Modbus RTU
  • vitesse de la liaison RS485 : 9600 bauds pour les tests si possible
  • Nombre de bits de données : 8 bits
  • Parité : NO parity, sans parité
  • Bits de stop : 2

A configurer dans la passerelle :

Modbus RTU

  • vitesse de la liaison RS485 : 9600 bauds pour les tests si possible
  • Nombre de bits de données : 8 bits
  • Parité : NO parity, sans parité
  • Bits de stop : 2

Attention au câblage du RS485 : il y a un sens, inverser la paire si pas de communication

Ne pas tenter tenter d’écrire dans l’automate, tant que vous n’avez pas réussi à lire les registres cela ne sert à rien.

Pouvez vous nous transmettre la doc de la passerelle wifi et de l’automate ( table et configuration du modbus)

Cordialement

Merci pour ta réponse :slight_smile:
Pour la doc de la passerelle, voici le lien : ★Elfin-EW10&Elfin-EW11
Il n’est notifié nulle part dans la doc les registres.
J’ai remarqué que la passerelle pouvait gérer une transmission 'transparente".

Le plus simple aurait été de pouvoir adresser une adresse esclave à la passerelle et mettre l’automate en master puis faire des read_var/write_var sur l’adresse esclave de la passerelle mais je n’ai pas trouvé cette notion de ID dans la passerelle Elfin.

J’ai fait quelques tests hier et il semble que la passerelle reçoit bien des données que ce soit coté modbus ou tcp/ip mais pourtant rien ne bouge côté automate ou jeedom.

Le plugin Mymodbus établit bien la comm avec la passerelle en TCP/IP.

Pourquoi Bit de stop à 2?

Bonjour

J’ai trouvé aussi les docs, je suis entrain de lire.
Non,non, le TM doit être paramétré en esclave. Jeedom est le maitre.

Il faut accorder les paramètres de la liaison RS485 à l’identique côté TM et côté passerelle. 1 ou 2 bits de stop cela n’a pas d’important si des 2 côtés c’est identique.

Je regarde la doc.
Je fais un retour rapidement.

Cordialement

Bonjour

Coté automate :
image

Côté passerelle :

image

flow control: Half-duplex

Bien accorder les mêmes paramètres des 2 côtés.

avez vous la table Modbus de l’automate?

Mettre RTU des 2 côtés.

J’ai fait des essais avec en mode simulateur et modbus doctor.
J’ai réussi à lire/écrire sur les mots sans soucis:

exemple d’adresse : pour %MW0–>adresse 400001; %MW1–> Adresse 400002 etc…

Je voudrais envoyer des données integer (1 mot), float (2 mots) ou binaire (en utilisant les bits de mots par exemple) ou directement par les adresses sur les %M: %M0–> Adresse 000001

Je laisse Michel répondre…

Bonjour,

Version stable ou bêta de MyModbus ? Pour moi la version stable est peu fonctionnelle… d’où la programmation de la version bêta.

Des captures de configuration seraient utiles, équipement et commandes. Y a-t-il d’autres équipements MyModbus actifs ?
Des captures de la configuration fonctionnelle de Modbus Doctor aideraient aussi pour comparer.

Mais comment savait-il ? Est-il derrière mon dos ? :scream:

A+
Michel

Bonjour Michel

Non, je ne suis pas derrière ton dos mais quand tu es en train de répondre c’est notifié en bas.

je sais bien, mais c’était pour la blague…
rhôôôô, vous me gâchez mon plaisir…

Avec doctor modbus tu passes bien à travers la passerelle ?

Si oui, il n’y a plus qu’à bien configurer le plugin et suivre les conseils de Michel.

Non avec modbus doctor je passe directement en mode localhost avec l’adresse 127.0.0.1. C’était surtout pour vérifier que les adresses étaient correctes.
Ci-dessous une capture d’écran.3 on voit bien que le modbus communique avec la passerelle.


Coté Jeedom


Config M221

et en mode simulation avec modbus doctor c’est ok
exemple avec %MW20

en essayant de lire un registre sur mon automate (version mymodbus stable) je me retouve avec des messages d’erreurs:
[2024-05-13 13:12:21] INFO : Arret des daemons [2024-05-13 13:12:23] INFO : holding_registers trouvées :400031 [2024-05-13 13:12:23] INFO : Lancement du démon mymodbus : nice -n 19 /usr/bin/python3 /var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py --host=192.168.0.11 --port=502 --unid=1 --polling=1 --keepopen=1 --protocol=tcpip --eqid=324 --hrs=400031 Exception in thread Thread-1: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py", line 161, in polling_thread rr = client.read_holding_registers(int(hreg_first),i,unit=args.unid) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers return self.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/sync.py", line 109, in execute return self.transaction.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 178, in execute broadcast=broadcast File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 271, in _transact packet = self.client.framer.buildPacket(packet) File "/usr/local/lib/python3.7/dist-packages/pymodbus/framer/socket_framer.py", line 206, in buildPacket data = message.encode() File "/usr/local/lib/python3.7/dist-packages/pymodbus/register_read_message.py", line 33, in encode return struct.pack('>HH', self.address, self.count) struct.error: 'H' format requires 0 <= number <= 65535 Exception in thread Thread-2: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py", line 161, in polling_thread rr = client.read_holding_registers(int(hreg_first),i,unit=args.unid) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers return self.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/sync.py", line 109, in execute return self.transaction.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 178, in execute broadcast=broadcast File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 271, in _transact packet = self.client.framer.buildPacket(packet) File "/usr/local/lib/python3.7/dist-packages/pymodbus/framer/socket_framer.py", line 206, in buildPacket data = message.encode() File "/usr/local/lib/python3.7/dist-packages/pymodbus/register_read_message.py", line 33, in encode return struct.pack('>HH', self.address, self.count) struct.error: 'H' format requires 0 <= number <= 65535 Exception in thread Thread-3: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py", line 161, in polling_thread rr = client.read_holding_registers(int(hreg_first),i,unit=args.unid) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers return self.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/sync.py", line 109, in execute return self.transaction.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 178, in execute broadcast=broadcast File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 271, in _transact packet = self.client.framer.buildPacket(packet) File "/usr/local/lib/python3.7/dist-packages/pymodbus/framer/socket_framer.py", line 206, in buildPacket data = message.encode() File "/usr/local/lib/python3.7/dist-packages/pymodbus/register_read_message.py", line 33, in encode return struct.pack('>HH', self.address, self.count) struct.error: 'H' format requires 0 <= number <= 65535 Exception in thread Thread-4: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py", line 161, in polling_thread rr = client.read_holding_registers(int(hreg_first),i,unit=args.unid) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers return self.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/sync.py", line 109, in execute return self.transaction.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 178, in execute broadcast=broadcast File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 271, in _transact packet = self.client.framer.buildPacket(packet) File "/usr/local/lib/python3.7/dist-packages/pymodbus/framer/socket_framer.py", line 206, in buildPacket data = message.encode() File "/usr/local/lib/python3.7/dist-packages/pymodbus/register_read_message.py", line 33, in encode return struct.pack('>HH', self.address, self.count) struct.error: 'H' format requires 0 <= number <= 65535 Exception in thread Thread-5: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py", line 161, in polling_thread rr = client.read_holding_registers(int(hreg_first),i,unit=args.unid) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers return self.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/sync.py", line 109, in execute return self.transaction.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 178, in execute broadcast=broadcast File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 271, in _transact packet = self.client.framer.buildPacket(packet) File "/usr/local/lib/python3.7/dist-packages/pymodbus/framer/socket_framer.py", line 206, in buildPacket data = message.encode() File "/usr/local/lib/python3.7/dist-packages/pymodbus/register_read_message.py", line 33, in encode return struct.pack('>HH', self.address, self.count) struct.error: 'H' format requires 0 <= number <= 65535 Exception in thread Thread-6: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py", line 161, in polling_thread rr = client.read_holding_registers(int(hreg_first),i,unit=args.unid) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers return self.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/sync.py", line 109, in execute return self.transaction.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 178, in execute broadcast=broadcast File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 271, in _transact packet = self.client.framer.buildPacket(packet) File "/usr/local/lib/python3.7/dist-packages/pymodbus/framer/socket_framer.py", line 206, in buildPacket data = message.encode() File "/usr/local/lib/python3.7/dist-packages/pymodbus/register_read_message.py", line 33, in encode return struct.pack('>HH', self.address, self.count) struct.error: 'H' format requires 0 <= number <= 65535 Exception in thread Thread-7: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py", line 161, in polling_thread rr = client.read_holding_registers(int(hreg_first),i,unit=args.unid) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers return self.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/sync.py", line 109, in execute return self.transaction.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 178, in execute broadcast=broadcast File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 271, in _transact packet = self.client.framer.buildPacket(packet) File "/usr/local/lib/python3.7/dist-packages/pymodbus/framer/socket_framer.py", line 206, in buildPacket data = message.encode() File "/usr/local/lib/python3.7/dist-packages/pymodbus/register_read_message.py", line 33, in encode return struct.pack('>HH', self.address, self.count) struct.error: 'H' format requires 0 <= number <= 65535 Exception in thread Thread-8: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py", line 161, in polling_thread rr = client.read_holding_registers(int(hreg_first),i,unit=args.unid) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers return self.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/sync.py", line 109, in execute return self.transaction.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 178, in execute broadcast=broadcast File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 271, in _transact packet = self.client.framer.buildPacket(packet) File "/usr/local/lib/python3.7/dist-packages/pymodbus/framer/socket_framer.py", line 206, in buildPacket data = message.encode() File "/usr/local/lib/python3.7/dist-packages/pymodbus/register_read_message.py", line 33, in encode return struct.pack('>HH', self.address, self.count) struct.error: 'H' format requires 0 <= number <= 65535 Exception in thread Thread-9: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py", line 161, in polling_thread rr = client.read_holding_registers(int(hreg_first),i,unit=args.unid) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers return self.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/sync.py", line 109, in execute return self.transaction.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 178, in execute broadcast=broadcast File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 271, in _transact packet = self.client.framer.buildPacket(packet) File "/usr/local/lib/python3.7/dist-packages/pymodbus/framer/socket_framer.py", line 206, in buildPacket data = message.encode() File "/usr/local/lib/python3.7/dist-packages/pymodbus/register_read_message.py", line 33, in encode return struct.pack('>HH', self.address, self.count) struct.error: 'H' format requires 0 <= number <= 65535 Exception in thread Thread-10: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py", line 161, in polling_thread rr = client.read_holding_registers(int(hreg_first),i,unit=args.unid) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers return self.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/sync.py", line 109, in execute return self.transaction.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 178, in execute broadcast=broadcast File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 271, in _transact packet = self.client.framer.buildPacket(packet) File "/usr/local/lib/python3.7/dist-packages/pymodbus/framer/socket_framer.py", line 206, in buildPacket data = message.encode() File "/usr/local/lib/python3.7/dist-packages/pymodbus/register_read_message.py", line 33, in encode return struct.pack('>HH', self.address, self.count) struct.error: 'H' format requires 0 <= number <= 65535 Exception in thread Thread-11: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py", line 161, in polling_thread rr = client.read_holding_registers(int(hreg_first),i,unit=args.unid) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers return self.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/sync.py", line 109, in execute return self.transaction.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 178, in execute broadcast=broadcast File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 271, in _transact packet = self.client.framer.buildPacket(packet) File "/usr/local/lib/python3.7/dist-packages/pymodbus/framer/socket_framer.py", line 206, in buildPacket data = message.encode() File "/usr/local/lib/python3.7/dist-packages/pymodbus/register_read_message.py", line 33, in encode return struct.pack('>HH', self.address, self.count) struct.error: 'H' format requires 0 <= number <= 65535 Exception in thread Thread-12: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py", line 161, in polling_thread rr = client.read_holding_registers(int(hreg_first),i,unit=args.unid) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers return self.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/sync.py", line 109, in execute return self.transaction.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 178, in execute broadcast=broadcast File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 271, in _transact packet = self.client.framer.buildPacket(packet) File "/usr/local/lib/python3.7/dist-packages/pymodbus/framer/socket_framer.py", line 206, in buildPacket data = message.encode() File "/usr/local/lib/python3.7/dist-packages/pymodbus/register_read_message.py", line 33, in encode return struct.pack('>HH', self.address, self.count) struct.error: 'H' format requires 0 <= number <= 65535 Exception in thread Thread-13: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py", line 161, in polling_thread rr = client.read_holding_registers(int(hreg_first),i,unit=args.unid) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers return self.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/sync.py", line 109, in execute return self.transaction.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 178, in execute broadcast=broadcast File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 271, in _transact packet = self.client.framer.buildPacket(packet) File "/usr/local/lib/python3.7/dist-packages/pymodbus/framer/socket_framer.py", line 206, in buildPacket data = message.encode() File "/usr/local/lib/python3.7/dist-packages/pymodbus/register_read_message.py", line 33, in encode return struct.pack('>HH', self.address, self.count) struct.error: 'H' format requires 0 <= number <= 65535 Exception in thread Thread-14: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py", line 161, in polling_thread rr = client.read_holding_registers(int(hreg_first),i,unit=args.unid) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers return self.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/sync.py", line 109, in execute return self.transaction.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 178, in execute broadcast=broadcast File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 271, in _transact packet = self.client.framer.buildPacket(packet) File "/usr/local/lib/python3.7/dist-packages/pymodbus/framer/socket_framer.py", line 206, in buildPacket data = message.encode() File "/usr/local/lib/python3.7/dist-packages/pymodbus/register_read_message.py", line 33, in encode return struct.pack('>HH', self.address, self.count) struct.error: 'H' format requires 0 <= number <= 65535 Exception in thread Thread-15: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py", line 161, in polling_thread rr = client.read_holding_registers(int(hreg_first),i,unit=args.unid) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers return self.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/sync.py", line 109, in execute return self.transaction.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 178, in execute broadcast=broadcast File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 271, in _transact packet = self.client.framer.buildPacket(packet) File "/usr/local/lib/python3.7/dist-packages/pymodbus/framer/socket_framer.py", line 206, in buildPacket data = message.encode() File "/usr/local/lib/python3.7/dist-packages/pymodbus/register_read_message.py", line 33, in encode return struct.pack('>HH', self.address, self.count) struct.error: 'H' format requires 0 <= number <= 65535 Exception in thread Thread-16: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py", line 161, in polling_thread rr = client.read_holding_registers(int(hreg_first),i,unit=args.unid) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers return self.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/sync.py", line 109, in execute return self.transaction.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 178, in execute broadcast=broadcast File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 271, in _transact packet = self.client.framer.buildPacket(packet) File "/usr/local/lib/python3.7/dist-packages/pymodbus/framer/socket_framer.py", line 206, in buildPacket data = message.encode() File "/usr/local/lib/python3.7/dist-packages/pymodbus/register_read_message.py", line 33, in encode return struct.pack('>HH', self.address, self.count) struct.error: 'H' format requires 0 <= number <= 65535 Exception in thread Thread-17: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py", line 161, in polling_thread rr = client.read_holding_registers(int(hreg_first),i,unit=args.unid) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers return self.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/sync.py", line 109, in execute return self.transaction.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 178, in execute broadcast=broadcast File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 271, in _transact packet = self.client.framer.buildPacket(packet) File "/usr/local/lib/python3.7/dist-packages/pymodbus/framer/socket_framer.py", line 206, in buildPacket data = message.encode() File "/usr/local/lib/python3.7/dist-packages/pymodbus/register_read_message.py", line 33, in encode return struct.pack('>HH', self.address, self.count) struct.error: 'H' format requires 0 <= number <= 65535 Exception in thread Thread-18: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py", line 161, in polling_thread rr = client.read_holding_registers(int(hreg_first),i,unit=args.unid) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers return self.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/sync.py", line 109, in execute return self.transaction.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 178, in execute broadcast=broadcast File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 271, in _transact packet = self.client.framer.buildPacket(packet) File "/usr/local/lib/python3.7/dist-packages/pymodbus/framer/socket_framer.py", line 206, in buildPacket data = message.encode() File "/usr/local/lib/python3.7/dist-packages/pymodbus/register_read_message.py", line 33, in encode return struct.pack('>HH', self.address, self.count) struct.error: 'H' format requires 0 <= number <= 65535 Exception in thread Thread-19: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py", line 161, in polling_thread rr = client.read_holding_registers(int(hreg_first),i,unit=args.unid) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers return self.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/sync.py", line 109, in execute return self.transaction.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 178, in execute broadcast=broadcast File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 271, in _transact packet = self.client.framer.buildPacket(packet) File "/usr/local/lib/python3.7/dist-packages/pymodbus/framer/socket_framer.py", line 206, in buildPacket data = message.encode() File "/usr/local/lib/python3.7/dist-packages/pymodbus/register_read_message.py", line 33, in encode return struct.pack('>HH', self.address, self.count) struct.error: 'H' format requires 0 <= number <= 65535 Exception in thread Thread-20: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py", line 161, in polling_thread rr = client.read_holding_registers(int(hreg_first),i,unit=args.unid) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers return self.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/sync.py", line 109, in execute return self.transaction.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 178, in execute broadcast=broadcast File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 271, in _transact packet = self.client.framer.buildPacket(packet) File "/usr/local/lib/python3.7/dist-packages/pymodbus/framer/socket_framer.py", line 206, in buildPacket data = message.encode() File "/usr/local/lib/python3.7/dist-packages/pymodbus/register_read_message.py", line 33, in encode return struct.pack('>HH', self.address, self.count) struct.error: 'H' format requires 0 <= number <= 65535 Exception in thread Thread-21: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/var/www/html/plugins/mymodbus/ressources/mymodbus_demond.py", line 161, in polling_thread rr = client.read_holding_registers(int(hreg_first),i,unit=args.unid) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/common.py", line 114, in read_holding_registers return self.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/client/sync.py", line 109, in execute return self.transaction.execute(request) File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 178, in execute broadcast=broadcast File "/usr/local/lib/python3.7/dist-packages/pymodbus/transaction.py", line 271, in _transact packet = self.client.framer.buildPacket(packet) File "/usr/local/lib/python3.7/dist-packages/pymodbus/framer/socket_framer.py", line 206, in buildPacket data = message.encode() File "/usr/local/lib/python3.7/dist-packages/pymodbus/register_read_message.py", line 33, in encode return struct.pack('>HH', self.address, self.count) struct.error: 'H' format requires 0 <= number <= 65535

Peux tu mettre le log en texte préformaté svp.
image

1 « J'aime »

Fait normalement

Je pense que ta config est comme cela:

image

Ce que je ne comprend pas c’est que normalement c’est la passerelle qui interroge l’automate tu ne devrais pas avoir des bytes reçus mais envoyés ( send). as tu bien configuré l’automate en esclave sur la liaison série?. est qu’il y a des voyants sur la liaison série ? Si c’est le cas lors du polling tu devrais voir clignoter le voyant RX de l’automate. Mets un temps de polling à 3 secondes.

formaté, je sais je suis chiant:
Cela permet de ne pas avoir de coupure de ligne et de copier le texte dans un autre viewer.

[    20.571] (II) systemd-logind: took control of session /org/freedesktop/login1/session/c6
[    20.572] (--) PCI:*(1@0:0:0) 10de:2216:1043:8822 rev 161, Mem @ 0x84000000/16777216, 0x4000000000/17179869184, 0x4400000000/33554432, I/O @ 0x00007000/128, BIOS @ 0x????????/524288
[    20.572] (II) LoadModule: "glx"
[    20.572] (II) Loading /usr/lib64/xorg/modules/extensions/libglx.so
[    20.572] (II) Module glx: vendor="X.Org Foundation"
[    20.572] 	compiled for 1.20.14, module version = 1.0.0
[    20.572] 	ABI class: X.Org Server Extension, version 10.0
[    20.687] (==) Matched nouveau as autoconfigured driver 0

Si j’ai bien compris tu as fait cet test:

image

Tu pourrais faire cela pour t’affranchir du plugin pour l’instant:

J’ai déjà essayer et Doctor Modbus se connecte bien au serveur mais me mets Status : Timeout -00 quoi que je fasse