2012-05-19 3 views
1

Nous utilisons Jamod RTU pour capturer des ruptures de compteurs électriques variés connectés en série. Nous avons défini modoute timeoutexception = 1200ms. Maintenant, ce qui se passe, quand nous sommes ping un mètre et nous n'obtenons pas le résultat (ou la lecture), nous passons au suivant connecté dans la même série. Mais parfois, le compteur précédent renvoie la lecture à l'application et la lecture de ce compteur est enregistrée pour la nouvelle ou la suivante. Pour résoudre ce problème, nous avons réduit le délai réseau de l'administrateur nport (pour la gestion des ports COM) de 5 000 à 500 ms. Mais je ne pense pas que ce soit la solution permanente. Est-il possible d'éviter ce message tardif ou de marquer chaque message avec son compteur corrosponding?Eviter les messages modbus provenant du compteur

Répondre

2

Chaque réponse MODBUS a une adresse de source de périphérique incorporée dans le message. La lecture résout votre problème.

0

De la page 10 de Modicon Modbus Protocol Reference Guide PI–MBUS–300 Rev. J

Comment le champ Adresse est Handled

Le champ d'adresse d'un télégramme contient deux caractères (ASCII) ou huit bits (RTU). Les adresses de périphérique esclave valides sont comprises entre 0 et 247 décimales. Les adresses des esclaves individuels sont affectées de 1 à 247. Un maître adresse un esclave en plaçant l'adresse de l'esclave dans le champ d'adresse du message . Lorsque l'esclave envoie sa réponse, il place sa propre adresse dans ce champ d'adresse pour permettre au maître de savoir quel esclave répond.

L'adresse 0 est utilisée pour l'adresse de diffusion, que tous les appareils esclaves reconnaissent. Lorsque le protocole Modbus est utilisé sur des réseaux de niveau supérieur, les émissions peuvent ne pas être autorisées ou peuvent être remplacées par d'autres méthodes. Par exemple, Modbus Plus utilise une base de données globale partagée pouvant être mise à jour à chaque rotation de jeton.

Vous pouvez ainsi garder une trace des adresses d'esclaves et affecter des valeurs à la réception par l'adresse d'esclave spécifiée. Cela devrait être accessible à partir de getUnitID() sur tous les objets de réponse.

Questions connexes