Communication Modbus serie entre TSX et OTB

Forum traitant des automates industriels de marque Schneider - Telemecanique
Pierre9444
Code sa première boucle
Code sa première boucle
Messages : 18
Inscription : 01 mars 2018, 16:12

Re: Communication Modbus serie entre TSX et OTB

Message par Pierre9444 »

Vous pourriez me donnez un exemple d'adresse ?
Si on prend le cas de ma carte de comm située Rack 6, module 5,voie 0
de mon OTB étant l'esclave 1
et de mes 8 entrées TOR à lire dans l'OTB étant dans le module 3 de 0 à 7.

Alors SI je comprends bien avec ces explications et ce que dit schneider https://www.schneider-electric.fr/fr/faqs/FA147283/ sur sa FAQ (désolé , je n'ai pas pu faire de copie d'écran) :

dans leur exemple, je remplace leur 0.0.0.2 par l'adresse de ma carte de comm dans mon TSX ( donc 6.5.0.1) . Par contre, comment lui faire comprendre que je veux les entrées du module 3 ...
Avatar de l’utilisateur
JC87
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1903
Inscription : 20 oct. 2015, 13:00
Localisation : Nouvelle Aquitaine

Re: Communication Modbus serie entre TSX et OTB

Message par JC87 »

Il faut consulter la doc, l'adresse des registres est forcément dedans. Déjà d'un rapide coup d’œil on voit que les entrées commencent à 0 pour le premier module, puis 1 pour le module 1 et ainsi de suite jusqu’à 99. Pour les sorties ça commence a 100 sur le même principe. Ensuite c'est simplement un codage sur 16 bits, bit 0 : entrée 0 etc. Après il faut creuser plus avant dans la doc pour chaque type de module.

JC
"On veut faire du zéro défaut mais on a zéro bonhomme et zéro budget, et bien à la fin on a zéro résultat..."
Pierre9444
Code sa première boucle
Code sa première boucle
Messages : 18
Inscription : 01 mars 2018, 16:12

Re: Communication Modbus serie entre TSX et OTB

Message par Pierre9444 »

Hum hum on en revient à ces satanés registres ^^. Je sens qu'il vont me donner encore quelques nuit blanches avant de comprendre comment ça marche tout ça :lol:
Pierre9444
Code sa première boucle
Code sa première boucle
Messages : 18
Inscription : 01 mars 2018, 16:12

Re: Communication Modbus serie entre TSX et OTB

Message par Pierre9444 »

Finalement, la nuit porte conseils, et vous avez raison, les registres d'entrée sont de 0 à 99 et ceux des sorties sont de 100 à 199.

Par exemple, le premier module de mon OTB étant 15 sorties TOR, son registre sera le 100 et le BIT 3 correspondra à l'état de son entrée 3.

Bon, OK !! C est déjà un pas de géant vers la résolution de ce truc .

Cependant !
Si je veux mettre cette sortie à 1, comment procéder ? Avec un write_VAR ? Si j'en crois la doc, dans "Object_Type" on ne peut mettre que %M, %MW, %S ou %SW.

Sinon j'ai vu qu'il existait un bloc fonction Write_REG pour "écriture de registre" .

Le brouillard s’éclaircit, mais c'est toujours le brouillard :lol:
Avatar de l’utilisateur
JC87
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1903
Inscription : 20 oct. 2015, 13:00
Localisation : Nouvelle Aquitaine

Re: Communication Modbus serie entre TSX et OTB

Message par JC87 »

Bonjour,

Les registres ce sont des mots tout simplement. Pour l'écriture des sorties on peut en effet s'autoriser à penser qu'il faut faire des requêtes Write_var pour chaque module. Bien entendu il faut cadencer les requêtes pour ne pas saturer le buffer de la carte de com. et interférer avec les requêtes de lecture qu'il faut cadencer également. L'idéal serait de ne faire des requêtes d'écriture que sur changement d'état. Pour se faire il faut écrire des sorties virtuelles dans des bits de mots et comparer ces mots avec un état antérieur et si différent balancer la requête d'écriture puis mémoriser l'état présent dans l'état antérieur. Beaucoup de boulot pour rien en résumé là ou un IO scanning se limiterai à quelques lignes de paramétrage.

JC
"On veut faire du zéro défaut mais on a zéro bonhomme et zéro budget, et bien à la fin on a zéro résultat..."
Pierre9444
Code sa première boucle
Code sa première boucle
Messages : 18
Inscription : 01 mars 2018, 16:12

Re: Communication Modbus serie entre TSX et OTB

Message par Pierre9444 »

Oui, tout à fait, je pense avoir trouvé comment faire, je posterai un message la semaine pro en recap !
Pierre9444
Code sa première boucle
Code sa première boucle
Messages : 18
Inscription : 01 mars 2018, 16:12

Re: Communication Modbus serie entre TSX et OTB

Message par Pierre9444 »

Bon , alors si jamais d'autres personnes ne veulent (peuvent) pas passer par l'IO scanning pour faire communiquer leur OTB avec leur automates, voilà comme j'ai fait. Pas sur que ce soit la meilleure solutions, pas sur que ce soit la seule, mais c'est la mienne ! ^^

Alors, tout d'abord, je me suis connecté à l'OTB avec le logiciel Advantys configuration pour lui dire ce que je lui avais mis comme module d'expansion. Je suis allé ensuite dans l'aperçu d'image E/S pour voir les numéros de registres (pour allez les chercher par la suite)
OTB.png
L'OTB est configuré par défaut en RTU (8 bits donc), EVEN (paire) et avec 1 bit de stop. J'ai donc mis les même paramètres dans la config de la carte de comm de mon automate.

Maintenant sous UNITY, pour allez lire ces registres d'entrée, j'ai pris la fonction READ_VAR (en n'oubliant pas de cocher l'option tableau dynamique dans les options du projet).


OTB.png









« '5.8.0.1' » c'est le rack, module et voie de ma carte de comm avec ensuite le numéro de nœuds Modbus.
Semble-t-il qu'il faille mettre ADDM et non ADDR mais mon Unity ne semble pas connaître ADDM...

GEST est un tableau de 4 mots INT, dont le 3° est la tempo type TTLE à régler par nous (x100ms).


RECP est un tableau de mots INT qui en contient autant que de mots à lire (ici 2).

Personnellement, je n'ai que des E/S TOR, donc une fois que j'ai les mots lus dans mon tableau, pour extraire les bits des mots %MW lus sur l’OTB, il faut créer un contact %MWx.b avec b le numéro du bit à prendre en compte et y associer une bobine :

bi.png
bi.png (3.63 Kio) Consulté 2853 fois




Pour les sorties, il faire de même avec WRITE_VAR.


write var.png
write var.png (10.23 Kio) Consulté 2853 fois









Mais avant j'ai mis tout mes petits bits représentant mes sorties TOR, dans un tableau d'EBOOL, puis à l’aide de la fonction MOVE_AREBOOL_INT on effectue la conversion des tableaux EBOOL en éléments de type Int :


move.png










L'IOscanning est beaucoup moins compliquer, mais quand on n'a pas le choix … ^^
Pièces jointes
read var.png
read var.png (9.21 Kio) Consulté 2853 fois
Pierre9444
Code sa première boucle
Code sa première boucle
Messages : 18
Inscription : 01 mars 2018, 16:12

Re: Communication Modbus serie entre TSX et OTB

Message par Pierre9444 »

Semble t il que ce soit le bordel avec les images , la dernière vient a la place de la deuxième ...
Répondre