Page 1 sur 2

Adresse variable Modbus TCP

Posté : 05 oct. 2016, 18:33
par Béryl
Bonjour !

Sur une CPU Premium 57204 (avec une carte ETY 5104), comment trouver l'adressage Modbus d'une variable, genre %M0 ?
J'ai actuellement en Ewon 500 qui me sert de passerelle XIP/Unitelway. La CPU était une 203, sous PL7-PRO donc, et ça suffisait très bien.
Je viens de changer cette CPU pour passer sous Unity. Et Unity en Unitelway... :cry:
Donc, je change mon vieil Ewon 500 par un 2005CD qui peut directement passer par la carte réseau.
Évidemment, plus question de le paramétrer en Unitelway ; je passe en Modbus TCP, mais là, il me demande les adresses Modbus des variables dont j'ai besoin !
Autrement dit : plus de %M0, mais une adresse du genre 40010 et des brouettes.

Alors, comment faire la corrélation entre les deux ?

Merci !

Re: Adresse variable Modbus TCP

Posté : 05 oct. 2016, 19:06
par jerome33
Bonjour

adresse 1...10000* => Coils (outputs)
adresse 10001...20000* => Discrete Inputs
adresse 40001...50000* => Holding Registers
adresse 30001...40000* =>Input Registers


ca veut dire que pour %M0 cela correspond dans un PREMIUM à l'adresse 1, %M1 à 2 etc..
40001 pour %MW0
30001 pour %IW0

Re: Adresse variable Modbus TCP

Posté : 06 oct. 2016, 07:38
par Béryl
Ouais, c'est exactement ce qui apparaît quand je dois entrer l'adresse de mon tag dans l'Ewon.
Y'a pas une astuce simple pour avoir les équivalences ?
Pour ne pas chercher 3 heures l'adresse modbus de %MF2012, par exemple, sans se planter 5 ou 6 fois :x

Re: Adresse variable Modbus TCP

Posté : 06 oct. 2016, 12:54
par MiGaNuTs
Pour moi le plus simple c'est de se faire un petit tableau excel avec les formules qui vont bien.

Re: Adresse variable Modbus TCP

Posté : 07 oct. 2016, 12:15
par jerome33
bonjour,
y a pas d'astuce particuliere, si ceux sont des mots, il faut ajouter 40001
ton %MF2012, c'est 2 mots %MW2012 et %MW2013 donc 42013 et 42014

Re: Adresse variable Modbus TCP

Posté : 07 oct. 2016, 13:52
par Béryl
Oui c'est bien comme ça que je fais.
Pas très pratique : une conversion automatique eût été bienvenue à l'entrée des tags !

Mais c'est pas le plus pénible : je n'arrive toujours pas à choper mon automate depuis l'extérieur :evil:
Ce qui était très simple avec un petit Ewon 500 en passerelle XIP/Unitelway, se complique sacrément dès qu'on passe sur un 2005CD en Modbus TCP...

Re: Adresse variable Modbus TCP

Posté : 08 oct. 2016, 11:33
par jerome33
Bonjour,

as tu bien déclaré l'adresse de la passerelle dans l'ETY?

Re: Adresse variable Modbus TCP

Posté : 08 oct. 2016, 19:20
par itasoft
slts,
ton gadget 2005CD ne connait pas l'adressage à la norme IEC61131 ?

Re: Adresse variable Modbus TCP

Posté : 10 oct. 2016, 07:48
par Béryl
jerome33 a écrit :Bonjour,

as tu bien déclaré l'adresse de la passerelle dans l'ETY?
Oui, il semblerait que j'aie besoin de le faire. Cela dit, la CPU est actuellement en réseau avec des variateurs et IHM. Si je change la passerelle, cela ne risque pas de mettre le bazard dans la com ?
De plus, il faut que je régénère mon programme pour le faire et que je le réinjecte en entier (je ne peux que l'analiser en ligne), ce qui implique donc une coupure automate. Je verrai ça lundi prochain, car je dois justement y coller une nouvelle version du programme.

@Itasoft : il semble que non. En ModBus, il attend des adresses Modbus et rien d'autre :cry:

Re: Adresse variable Modbus TCP

Posté : 12 oct. 2016, 11:54
par jpratpsft
Pour info, l'adresse Modbus n'est pas %MW1 ou 40001, ces termes sont des conventions d'écriture uniquement.
En Modbus, il y a 4 types de données:
- 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/Ectriture de mot(s)
Pour chacun des ces types de données, l'adresse peut aller de 0 à 65535 (en hexadecimal, de 0x0000 à 0xFFFF)

La notation %MWxxxx permet d'afficher la donnée avec un offset de 1, %MW0 n'existant pas, %MW1 correspond à la donnée 0 du type 4.

La notation 40001 ou 400001 tien compte de cet offset de 1 et du type de donnée.
Mais la plupart du temps, on parle d'une plage de 40001 à 49999, ce qui est inexact (mais suffisant dans la plupart des application).
J'ai même parfois vu des adresses loufoques comme 5000, qui viendrait après 49999 et qui n'a pas de sens.

La notation correcte serait dont 4x00000 si l'on veut utiliser les adresses de 4x00000 à 4x65535 (en hexadecimal de 4x0000 à 4xFFFF), pour le type et l'adresse.

Je suis un peu sorti du cadre mais je pense que c'est important de savoir cela pour bien comprendre le fonctionnement de Modbus.