M340 - Multiples blocs READ_VAR

Forum traitant des automates industriels de marque Schneider - Telemecanique
Nicat
Asservi son premier moteur
Asservi son premier moteur
Messages : 30
Inscription : 22 nov. 2017, 17:23

M340 - Multiples blocs READ_VAR

Message par Nicat »

Bonjour,

Je dois établir une communication entre un M340 & de multiples équipements (Environ 15 connectés sur 3 passerelles RS485/ModbusTCPIP différentes). Voilà en gros l'architecture :
Image


Pour cela, j'utilise un bloc READ_VAR et je viens lire les 20 premiers mots dans chaque équipement, 1 par 1
Image


Mais...cela semble fastidieux si je dois faire 100 blocs READ_VAR. Il y aurait t'il une manière plus simple de lire dans tous les esclaves ?
Dans mon exemple, avoir un bloc READ_VAR par adresse IP mais qui puisse lire ses 15 équipements et les ranger dans un seul tableau (A 1 ou 2 dimensions)
Ses variables vont être réutilisés donc je dois pouvoir y accéder facilement dans le tableau (Le mieux serait de pouvoir avoir un tableau "Tab_1[Numéro passerelle][Numéro équipement]")



Merci !
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2076
Inscription : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: M340 - Multiples blocs READ_VAR

Message par philou77 »

Salut !

Tu as la réponse dans ta question...
Tu peux indexer tout ce petit monde..

Je fait 1 read et 1 write pour lecture valeur et écriture consigne dans 7 régulateurs de température !
Inconvénient, si il y en a un qui change pour une raison x ou Y....ca va faire de la modif de prog !!

Tu peux aussi faire appel à un bloc paramétré !
Avantage, un nouveau type de connexion = un nouveau bloc !

Plus tout ce à quoi je ne pense pas !

Bref, plein de solutions..
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
Avatar de l’utilisateur
JC87
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1901
Inscription : 20 oct. 2015, 13:00
Localisation : Nouvelle Aquitaine

Re: M340 - Multiples blocs READ_VAR

Message par JC87 »

Hello,

En effet je pense comme Philou qu'il faut partir sur un traitement indexé. J'avais fait quelque chose comme ça il y a quelques années sur une installation de GTC ou j'avais une vingtaine de boitiers d'entrées/sorties TOR déportées en Modbus RTU sur neuf automates différents.

J'avais un grafcet qui enchainait les requêtes Read_Var et Write_Var en passant d'esclave en esclave grâce un compteur qui me servait d'index pour mettre l'adresse à jour et les variables de chaque esclave dans des tableaux. Le graphe enchainait les requêtes jusqu’à jusqu’à trouver un "0" dans le tableau des adresses Modbus ce qui signifiait qu'il n'y avait plus d'esclave a traiter. Pour ajouter un esclave il suffisait de mettre une adresse différente de 0 à la suite dans ce tableau qui pouvait aller jusqu’à 30 et il n'y avait absolument rien d'autres à faire.

Au final je n'avais qu'une seule requête de lecture et d'écriture. A voir si tu peut mettre ton adresse dans un tableau car toi c'est du Modbus TCP/IP. Si tu veut fais moi un mp et je te passerai mon code dont tu pourrait peut être t'inspirer.

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..."
Répondre