Page 1 sur 1

Adressage des variables en modbus tcp?

Posté : 06 déc. 2020, 14:19
par sldahut
Bonjour,

Avant de vous demander de l'aide, je vous explique le contexte :

- Je débute en automatisme, j'ai des bases de programmation/architecture/telecoms, mais je n'avais jusqu'à présent pas eu l'occasion de travailler sur un automate, je me rends qu'il y a une approche assez spécifique (et très intéressante)!

- Je cherche à récupérer les données en modbus TCP d'un automate M340.

J'ai fait des tests, mais je n'arrive pas à faire le lien entre l'adressage des données que je peux récuperer en modbus et les valeurs des variables du M340. Par exemple sous CcoStructure Control Explert (ex unity), je fais un test sur une entrée analogique 0-10V. Je vois bien ma valeur (8975mV). C'est l'adresse %IW0.3.0.

Quand j'utilise un utilitaire (par exemple : https://www.modbusdriver.com/modpoll.html ) pour récupérer, je ne sais pas quelle adresse utiliser, j'ai testé mais sans la trouver (d'ailleurs, je ne sais pas si je vais récupérer 8975... ou une valeur "brute" entre 0 et 32767 qui correspond à la plage 0-10V?).

En modbus tcp, j'ai compris que c'était une valeur en 3x car (input register = %IW). Mais comment ensuite avoir l'adressage du "0.3.0" ? Est ce normé? Est ce une information que je peux avoir sous unity?

(il y a eu un thread sur le même surjet : http://forum-automatisme.net/viewtopic.php?f=15&t=1043 mais je n'y trouve pas cette information, possiblement car cela dépend de l'automate?)

Merci pour votre aide !

Sébastien

Re: Adressage des variables en modbus tcp?

Posté : 06 déc. 2020, 19:11
par itasoft
slts,
Je cherche à récupérer les données en modbus TCP d'un automate M340. depuis quel équipement Client ?

quelle requête est utilisé et les paramètres de la requête ?

Re: Adressage des variables en modbus tcp?

Posté : 06 déc. 2020, 19:40
par sldahut
Bonsoir,

Pour le moment, je le fais en test (depuis modpoll dont j'ai donné le lien). Mon objectif sera ensuite de développer un script qui collecte les données (probablement depuis un équipement linux en python ; il existe des librairie modbus TCP), mais avant de me lancer dans le développement, je cherche à identifier l'adressage dont j'aurai forcément besoin.

Sébastien

Re: Adressage des variables en modbus tcp?

Posté : 06 déc. 2020, 20:54
par dpo
dans le programme automates tu recopies ton %IW dans une variables adressée en %MW0 (par exemple)
et tu attaques cette adresse %MW0 depuis ton soft
Requete en lecture, type n mots , départ 0, quantité 1

Re: Adressage des variables en modbus tcp?

Posté : 06 déc. 2020, 21:35
par sldahut
Dans le programme automates tu recopies ton %IW dans une variables adressée en %MW0 (par exemple)
et tu attaques cette adresse %MW0 depuis ton soft
Requete en lecture, type n mots , départ 0, quantité 1
J'aurais souhaité le faire de façon complètement transparente/indépendante par rapport au programme de l'automate.
Il n'est pas possible de faire la requête directement sur les variables %IW ?
De ce que j'avais lu c'était une valeur en 3x car (input register) et dans ce cas, il faut simplement connaitre son adresse pour faire la requête?

Re: Adressage des variables en modbus tcp?

Posté : 07 déc. 2020, 03:53
par itasoft
Il n'est pas possible de faire la requête directement sur les variables %IW ?
NON
ceci dit il faut d'abord essayer sur une variable %MW pour voir déjà si ta requête fonctionne avant d'aller plus loin

Re: Adressage des variables en modbus tcp?

Posté : 07 déc. 2020, 08:28
par sldahut
J'avais compris :

- 0x - Coils - Lecture/Ecriture de bit(s)
- 1x - Discrete Inputs - Lecture de bit(s)
- 3x - Input words - Lecture de mot(s)
- 4x - Holding Registers - Lecture/Ecriture de mot(s)

(copier/coller de http://forum-automatisme.net/viewtopic.php?f=15&t=1043 )

Et je pensais donc qu'on pouvais obtenir les données avec des requêtes pour :
%MW >> 4x
%IW >> 3x

Ce n'est donc pas le cas? A quoi sert l'adressage en 3x du coup? (j'ai fait des tests de requêtes et sur quelques adresses je récupères des valeurs en 3x, même si je n'ai pas réussi à identifier ma %IW0.3.0, ce qui fait que je suis venu poster dans le forum)
ceci dit il faut d'abord essayer sur une variable %MW pour voir déjà si ta requête fonctionne avant d'aller plus loin
Oui, si pas le choix au niveau de la methode, dans ce cas, c'est ce que je vais faire, il faut que je commence par tester cela.

Re: Adressage des variables en modbus tcp?

Posté : 10 déc. 2020, 19:37
par BenAutom
Franchement, je ne me suis jamais emmerdé : je ne lis que des %MW !!!!
Un %IW ça veux rien dire !!!!! (hormis pour une PT100 sur unes entrée spécifique.).
9656mV ca veut dire quoi? Rien! Sauf si il y a une mise à l'échelle.
En effet, dans ton automate, tu va faire une mise à l'échelle pour utiliser la valeur physique (des litres/h, des bars, etc.)
Donc je te conseille de lire la valeur mise à l'échelle. (donc un ou des %MW)

Re: Adressage des variables en modbus tcp?

Posté : 10 déc. 2020, 21:07
par skip74
Bon modbus est un bus de communication non propriétaire datant de plus de 40 ans....donc il n'est pas illogique de se dire que les mapping mémoire des entrées sorties de l'époque et celle de nos jours n'ont plus grand chose à voir ...