[M221] Table d'échange modbus RTU
-
quentinmoure
- Apprend le binaire

- Messages : 7
- Enregistré le : 20 juin 2024, 09:53
[M221] Table d'échange modbus RTU
Bonjour,
J'ai développé un programme de gestion de ventilation grâce à un automate M221 et deux racks déportés en réseau. L'ensemble est bien fonctionnel mais il faut que je mette à disposition certaines variables (exclusivement des booléens, des "coils") via un liaison série modbus RTU. La personne en charge de la programmation de l'entité récupérant ces valeurs sur le bus série me demande les détails de la table d'échange modbus.
Je me suis documenté sur internet via les vidéos de LeTomas AHUMADA ou Yannick Sutra sur Youtube et via la documentation du M221 mais quelque chose doit m'échapper. Il me semble comprendre que je n'ai pas besoin du module d'envoi de variables sur la liaison série sachant que je souhaite juste les mettre à disposition pour que l'autre PC vienne les chercher quand il le souhaite.
Je ne sais pas si la table d'échange modbus dont il est question correspond à l'IOscaner.
Pourriez-vous me mettre sur la voie pour configurer cette table d'échange modbus ou m'expliquer ce qui m'échappe.
Cordialement,
Quentin
J'ai développé un programme de gestion de ventilation grâce à un automate M221 et deux racks déportés en réseau. L'ensemble est bien fonctionnel mais il faut que je mette à disposition certaines variables (exclusivement des booléens, des "coils") via un liaison série modbus RTU. La personne en charge de la programmation de l'entité récupérant ces valeurs sur le bus série me demande les détails de la table d'échange modbus.
Je me suis documenté sur internet via les vidéos de LeTomas AHUMADA ou Yannick Sutra sur Youtube et via la documentation du M221 mais quelque chose doit m'échapper. Il me semble comprendre que je n'ai pas besoin du module d'envoi de variables sur la liaison série sachant que je souhaite juste les mettre à disposition pour que l'autre PC vienne les chercher quand il le souhaite.
Je ne sais pas si la table d'échange modbus dont il est question correspond à l'IOscaner.
Pourriez-vous me mettre sur la voie pour configurer cette table d'échange modbus ou m'expliquer ce qui m'échappe.
Cordialement,
Quentin
-
MiGaNuTs
- Mi homme - Mi automate

- Messages : 1574
- Enregistré le : 12 nov. 2015, 21:02
- Localisation : 45 - Loiret
- Contact :
Re: [M221] Table d'échange modbus RTU
Dans (presque) tous les protocoles de communications un y'a un maitre et des esclaves (ou un client et des serveurs).
C'est le maitre (ou client) qui se charge de gérer l'IO-Scanning.
Les esclaves (ou serveurs) n'ont rien d'autre a faire que de répondre aux commandes qu'ils reçoivent.
En l’occurrence tu n'a pas grand chose a faire sur ton M221 vu qu'il sera esclave. Il faut juste activer la fonction esclave Modbus et définir son adresse (ou n°d'esclave ou id, ou identifiant).
Ensuite tu a joute a fournir un tableau qui liste les informations dont le maitre a besoin, et il va se démer.. brouiller pour venir les chercher.
Enfin ça c'est la méthode sans optimisation de la com', parce que si les adresses des coils a interroger ne sont pas consécutives ca va obliger a faire pleins de requêtes et du coup ça allonge le temps de rafraichissement des valeurs.
C'est le maitre (ou client) qui se charge de gérer l'IO-Scanning.
Les esclaves (ou serveurs) n'ont rien d'autre a faire que de répondre aux commandes qu'ils reçoivent.
En l’occurrence tu n'a pas grand chose a faire sur ton M221 vu qu'il sera esclave. Il faut juste activer la fonction esclave Modbus et définir son adresse (ou n°d'esclave ou id, ou identifiant).
Ensuite tu a joute a fournir un tableau qui liste les informations dont le maitre a besoin, et il va se démer.. brouiller pour venir les chercher.
Enfin ça c'est la méthode sans optimisation de la com', parce que si les adresses des coils a interroger ne sont pas consécutives ca va obliger a faire pleins de requêtes et du coup ça allonge le temps de rafraichissement des valeurs.
-
quentinmoure
- Apprend le binaire

- Messages : 7
- Enregistré le : 20 juin 2024, 09:53
Re: [M221] Table d'échange modbus RTU
Donc si je comprends bien dans mon cas je suis esclave serveur car je mets juste à disposition les variables et le maitre va venir piocher dedans ?
Dans ce cas, comment pioche t-il dans mes variables ? Il attends des adresses modbus pour savoir "où taper". S'agit-il des adresses telles que %M15, par exemple ou dois-je créer un nouveau tableau, une table d'échange ?
Merci pour ton aide
Dans ce cas, comment pioche t-il dans mes variables ? Il attends des adresses modbus pour savoir "où taper". S'agit-il des adresses telles que %M15, par exemple ou dois-je créer un nouveau tableau, une table d'échange ?
Merci pour ton aide
-
MiGaNuTs
- Mi homme - Mi automate

- Messages : 1574
- Enregistré le : 12 nov. 2015, 21:02
- Localisation : 45 - Loiret
- Contact :
Re: [M221] Table d'échange modbus RTU
Ouiquentinmoure a écrit : ↑23 sept. 2024, 11:10 Donc si je comprends bien dans mon cas je suis esclave serveur car je mets juste à disposition les variables et le maitre va venir piocher dedans ?
Soit il configure son IO-Scanning en fonction de son besoin, soit il envoie des requêtes readvar et writevar "a la main".
Ouiquentinmoure a écrit : ↑23 sept. 2024, 11:10Il attends des adresses modbus pour savoir "où taper". S'agit-il des adresses telles que %M15, par exemple
C'est possible aussi. Si c'est bien fait ça peut même être une bonne option pour optimiser la vitesse de com'quentinmoure a écrit : ↑23 sept. 2024, 11:10 ou dois-je créer un nouveau tableau, une table d'échange ?
De rien, avec plaisir.
-
quentinmoure
- Apprend le binaire

- Messages : 7
- Enregistré le : 20 juin 2024, 09:53
Re: [M221] Table d'échange modbus RTU
Super, on touche au but !
Ce qui m'étonne c'est que lui attends une adresse numérique, sauf que si je lui donne "15" pour la variable stockée en %M15, comment se fait la différence avec la variable en %MW15 par exemple ?
Ce qui m'étonne c'est que lui attends une adresse numérique, sauf que si je lui donne "15" pour la variable stockée en %M15, comment se fait la différence avec la variable en %MW15 par exemple ?
-
MiGaNuTs
- Mi homme - Mi automate

- Messages : 1574
- Enregistré le : 12 nov. 2015, 21:02
- Localisation : 45 - Loiret
- Contact :
Re: [M221] Table d'échange modbus RTU
%M15 c'est un bit
%MW15 c'est un registre
C'est pas les mêmes commandes (function code) pour lire les bits, pour lire les registres pour lire les entrées et pour lire les sorties.
%MW15 c'est un registre
C'est pas les mêmes commandes (function code) pour lire les bits, pour lire les registres pour lire les entrées et pour lire les sorties.
Re: [M221] Table d'échange modbus RTU
et %MW15:x0 à %MW15:X15 c'est les bits de mots associés au registre %MW15
Si c'est pas clair dans ta tête, ce sera bien pire dans ton code.
Re: [M221] Table d'échange modbus RTU
OUI mais un PLC tiers vient lire dans ton automate "ReadVar", il faut éviter (même interdire) qu'il vienne écrire "WriteVar" chez toi.
Sinon tu vas au devant de problèmes pour savoir qui fait quoi.
Si c'est pas clair dans ta tête, ce sera bien pire dans ton code.
-
MiGaNuTs
- Mi homme - Mi automate

- Messages : 1574
- Enregistré le : 12 nov. 2015, 21:02
- Localisation : 45 - Loiret
- Contact :
Re: [M221] Table d'échange modbus RTU
C'est pas possible avec un M221. Soit tu active le mode esclave Modbus RTU, soit tu l'active pas. Il n'y a pas d'autres choix.
Si le maitre écrit n'importe quoi n'importe ou, bah il va se passer des trucs imprévisibles.
A la charge de celui qui programme le maitre de ne pas faire n'importe quoi.
Le Modbus a été créé dans les années 70 (presque 80 il est vrai) pour répondre des problématiques des années 70.
Si on veux de la com' qui réponds a des problématiques du 21eme siècle, il faut utiliser des protocoles du 21eme siècle.
Edit:
Et puis de toutes façons en Modbus RTU y'a qu'un seul automate maitre. C'est l'essence même du Modbus RTU.
Re: [M221] Table d'échange modbus RTU
C'est bien comme ça que je voyais la chose, c'est une convention de travail, ni plus ni moins.MiGaNuTs a écrit : ↑23 sept. 2024, 13:57 C'est pas possible avec un M221. Soit tu active le mode esclave Modbus RTU, soit tu l'active pas. Il n'y a pas d'autres choix.
Si le maitre écrit n'importe quoi n'importe ou, bah il va se passer des trucs imprévisibles.
A la charge de celui qui programme le maitre de ne pas faire n'importe quoi.
On lit dans un PLC distant, le PLC distant écrit localement, et tout le monde suit cette règle.
Si c'est pas clair dans ta tête, ce sera bien pire dans ton code.
