[M221] Table d'échange modbus RTU

Forum traitant des automates industriels de marque Schneider - Telemecanique
quentinmoure
Apprend le binaire
Apprend le binaire
Messages : 7
Enregistré le : 20 juin 2024, 09:53

[M221] Table d'échange modbus RTU

Message par quentinmoure »

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
MiGaNuTs
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1574
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret
Contact :

Re: [M221] Table d'échange modbus RTU

Message par MiGaNuTs »

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.
quentinmoure
Apprend le binaire
Apprend le binaire
Messages : 7
Enregistré le : 20 juin 2024, 09:53

Re: [M221] Table d'échange modbus RTU

Message par quentinmoure »

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
MiGaNuTs
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1574
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret
Contact :

Re: [M221] Table d'échange modbus RTU

Message par MiGaNuTs »

quentinmoure 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 ?
Oui
quentinmoure a écrit : 23 sept. 2024, 11:10 Dans ce cas, comment pioche t-il dans mes variables ?
Soit il configure son IO-Scanning en fonction de son besoin, soit il envoie des requêtes readvar et writevar "a la main".
quentinmoure 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
Oui
quentinmoure a écrit : 23 sept. 2024, 11:10 ou dois-je créer un nouveau tableau, une table d'échange ?
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 Merci pour ton aide
De rien, avec plaisir.
quentinmoure
Apprend le binaire
Apprend le binaire
Messages : 7
Enregistré le : 20 juin 2024, 09:53

Re: [M221] Table d'échange modbus RTU

Message par quentinmoure »

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 ?
MiGaNuTs
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1574
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret
Contact :

Re: [M221] Table d'échange modbus RTU

Message par MiGaNuTs »

%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.
roudy
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 144
Enregistré le : 19 janv. 2019, 17:28

Re: [M221] Table d'échange modbus RTU

Message par roudy »

MiGaNuTs a écrit : 23 sept. 2024, 11:47 %M15 c'est un bit
%MW15 c'est un registre
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.
roudy
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 144
Enregistré le : 19 janv. 2019, 17:28

Re: [M221] Table d'échange modbus RTU

Message par roudy »

MiGaNuTs a écrit : 23 sept. 2024, 11:26 Soit il configure son IO-Scanning en fonction de son besoin, soit il envoie des requêtes readvar et writevar "a la main".
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
Mi homme - Mi automate
Messages : 1574
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret
Contact :

Re: [M221] Table d'échange modbus RTU

Message par MiGaNuTs »

roudy a écrit : 23 sept. 2024, 12:07 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ème pour savoir qui fait quoi.
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.
roudy
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 144
Enregistré le : 19 janv. 2019, 17:28

Re: [M221] Table d'échange modbus RTU

Message par roudy »

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.
C'est bien comme ça que je voyais la chose, c'est une convention de travail, ni plus ni moins.
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.
Répondre