Conclusion:
MODBUS TCP sur l’IPX envoi systématiquement l’ID 255 ce qui ne me permet pas d’adresser les périphériques MODBUS qui sont reliés derrière la passerelle TCP → RTU(RS485) (ce que je peux faire sans problème à partir d’un programme python)
example (avec une librairie MODBUS)
Une mise à jour de l’objet MODBUS TCP avec possibilité d’indiquer l’ID DEVICE pourrait résoudre le problème, le cas échéant. En effet lorsque l’on dispose d’une passerelle TCP → RTU il peut y avoir plusieurs périphériques MODBUS connectés derrière la passerelle (avec 1 périphérique l’ID 255 convient mais avec plusieurs périphériques impossible de communiquer).
Avec MODBUS TCP l’ID DEVICE est indispensable pour adresser les périphériques derrière la passerelle comme dans le cas du RTU.
Merci pour cette analyse complète!
Votre cas correspond au cas particulier où vous avez une chaine Modbus RTU où un périphérique est déjà par nécessité maître et donc l’IPX V5 ne peut pas y être maitre (comme elle est obligatoirement maitre en RTU), il faut alors passer par une passerelle Modbus TCP <=> RTU pour interroger un périphérique de la chaine RTU et l’ID de ce périphérique est alors nécessaire (sinon en Modbus TCP pas besoin, l’IP du périphérique suffit).
Je place donc une demande d’évolution mais vous vous doutez bien qu’elle ne sera pas prioritaire …
Bonjour Jweb,
Je comprends tout à fait que cette demande puisse ne pas être prioritaire étant donné que le cas d’une passerelle MODBUS maître n’est pas très courant, mais tout de même relativement répandu …
C’est le cas de mon installation photovoltaïque qui comporte une passerelle maître EMS, un Inverseur MODBUS sur l’id 5 qui est connecté a un compteur d’énergie lui même en connecté en en RTU à l’inverseur sur l’ID 1
Ce serait fantastique de pouvoir piloter l’inverseur avec l’IPX et de récupérer des données du compteur d’énergie
Une idée: peux-être l’évolution pourrait être facile à mettre en place sans changement de l’interface utilisateur, et en utilisant des données déjà disponibles, en prenant en compte en TCP le même ID que celui qui est configuré en RTU.