Bonjour à tous,
J'ai développé un code source pour un master Modbus RTU. J'arrive à dialoguer avec plusieurs marques de PLC modbus via la liaison série mais j'ai du mal à dialoguer avec un PLC de marque TPW 04. La réponse du PLC modbus est de la forme 200000 voire 2000000. Je n'arrive pas à expliquer les raisons d'un tel échec. Pourriez vous s'il vous plait m'aider à ce niveau.
Merci d'avance
Modbus RTU with TPW04
Re: Modbus RTU with TPW04
Merci d'avoir répondu
Voici quelques messages envoyés et les réponses associées
Coils: on envoie 2110012525 , on reçoit 200000.
Discrete inputs: on envoie 220001185249, on reçoit 200000.
Holding register: on envoie 2367560116112, on reçoit 204000000.
Holding Register: on envoie 2367560116112, on reçoit 2000000.
Connection tests: on envoie 28000133248, on reçoit 20000000.
Les requêtes sont envoyés au format décimal mais sont reçues en hexadécimal du coté du PLC
Merci
Voici quelques messages envoyés et les réponses associées
Coils: on envoie 2110012525 , on reçoit 200000.
Discrete inputs: on envoie 220001185249, on reçoit 200000.
Holding register: on envoie 2367560116112, on reçoit 204000000.
Holding Register: on envoie 2367560116112, on reçoit 2000000.
Connection tests: on envoie 28000133248, on reçoit 20000000.
Les requêtes sont envoyés au format décimal mais sont reçues en hexadécimal du coté du PLC
Merci
- Bruce33
- Créateur de langage
- Messages : 716
- Inscription : 28 oct. 2015, 06:54
- Localisation : Pas-de-Calais
Re: Modbus RTU with TPW04
Décimal ou hexadécimal, ce n'est qu'une représentation de la valeur.
Et dans votre représentation de la trame d'envoi, je ne m'y retrouve pas !
Vous semblez mélanger les représentations décimale et ASCII.
En Modbus RTU, il vaut mieux représenter les valeurs en hexadécimal, pour bien distinguer les octets.
Prenons votre trame de lecture des bobines : 2110012525
Pouvez-vous la décomposer pour savoir ce que vous souhaitez faire avec ?
Je suppose qu'on a :
- 2 = adresse modbus du TPW04
- 1 = fonction de lecture des bobines
- après je ne sais plus, c'est l'adresse 1, ou 10 ou 100...?
- puis quelle quantité de bobines ?
- et enfin le CRC ?
A priori TPW04 c'est un modèle d'automate, de marque WEG. Mais je ne connais pas... Vous travaillez avec un appareil commercialisé au Brésil ?
- Bruce33
- Créateur de langage
- Messages : 716
- Inscription : 28 oct. 2015, 06:54
- Localisation : Pas-de-Calais
Re: Modbus RTU with TPW04
Je trouve que c'est maladroit et pas très fair-play de poster les mêmes messages simultanément sur plusieurs forums : https://control.com/forums/threads/modb ... plc.48720/
D'après la documentation du TPW04, la fonction 2 n'est pas gérée.
Tous les bits (aussi bien les entrées que les sorties) sont accessibles dans les données 0x.
C'est donc la fonction 1 qu'il faut utiliser pour lire les entrées.
Si vous êtes sûr du câblage et du paramétrage de la liaison série alors le problème de communication provient de votre logiciel.
Les réponses que vous recevez sont très étranges : il y a bien l'adresse de l'esclave modbus puis que des zéros... et pas de CRC ?
D'après la documentation du TPW04, la fonction 2 n'est pas gérée.
Tous les bits (aussi bien les entrées que les sorties) sont accessibles dans les données 0x.
C'est donc la fonction 1 qu'il faut utiliser pour lire les entrées.
Si vous êtes sûr du câblage et du paramétrage de la liaison série alors le problème de communication provient de votre logiciel.
Les réponses que vous recevez sont très étranges : il y a bien l'adresse de l'esclave modbus puis que des zéros... et pas de CRC ?
Re: Modbus RTU with TPW04
Ce qui est marrant, c'est qu'ici comme la-bas, il a les mêmes réponses
Re: Modbus RTU with TPW04
Bonjour,
Personnellement je ne vois pas où est le mal. Le forum ici est francophone alors que l'autre est anglophone.
Je vous remercie pour vos retours quand même
Personnellement je ne vois pas où est le mal. Le forum ici est francophone alors que l'autre est anglophone.
Je vous remercie pour vos retours quand même