J'ai actuellement un soucis concernant mon projet, qui est de faire communiquer un automate Wago avec un analyseur de réseau électrique (Digipact PM300).
Malgré les envois de trames du maître (Wago), aucune réponse de l'esclave n'est reçue. L'esclave est configuré sur l'adresse 02, à 9600 Bauds/s.
Le réseau ModBus est en deux fils, tous les câblages sont OK, la configuration logicielle du Wago est OK (il communique par le ModBus via une carte liaison série RS485).
J'utilise la bibliothèque "MODBUS_MASTER_RTU" (ce PDF, pages 16 à 18) pour le Wago. Celui-ci est configuré de la façon suivante:
-Port de Com: 2
-Vitesse: 9600Bauds/s
-Taille d'octet : 8
-Pas de parité
-1 bit de stop
- Halfduplex
tout ça est codé en ST sous CoDeSys.
Mon code se déroule de la façon suivante:
J'initialise ma requête en y plaçant l'adresse d'esclave, le code fonction, l'adresse de début de lecture,etc...
Par la suite, je lance mon bloc "MODBUS_MASTER_RTU" avec les paramètres cités plus haut, une fois cela fait, le bloc fait passer une variable ("StartFunction") à FALSE si il y a TimeOut ou réception de données. ici se pose mon premier soucis: StartFunction ne passe jamais à FALSE....
Continuons mon programme... Par la suite, il éxécute une tempo de 0.2s avant de repasser StartFunction à TRUE, et de relancer le programme.
Ainsi, comme dit plus haut, j'ai deux gros soucis:
-L'automate ne communique pas avec son esclave malgré les bons paramètres ET câblages
-Le bloc ne fait pas son boulot (j'ai regardé dedans, le timer ne se lance pas...)
Quelqu'un a-t-il des solutions?
Merci d'avance!



