Recherche informations sur trames MODBUS
Bonjour a toutes et à tous,
Je suis à la recherche d'information concernant les trames MODBUS. Avant de vous précisez vraiment l'objet de ma recherche, je vais pour présenter la problématique ainsi que les choses que je sais déjà.
Je possède un logiciel me permettant d'allumer des LEDs connectées aux sorties TOR d'un automate. Pour converser entre mon logiciel et mon automate, j'utilise une liaison série RS485 avec le protocole MODBUS.
Avec le logiciel serial port monitor, j'ai réussi a capturer les trames MODBUS de la conversation entre l'automate et le logiciel.
J'ai effectuer plusieurs tests et voici ce que j'obtiens:
Code:
1 2 3 4 5 6 7 8 9
|
Lorsque pas de LED allumées => 02 01 00 00 00 01 02 00 00 B2 A0
Lorsque LED 1 allumée => 02 01 00 00 00 01 02 00 01 73 60
Lorsque LED 2 allumée => 02 01 00 00 00 01 02 00 02 33 61
Lorsque LED 3 allumée => 02 01 00 00 00 01 02 00 04 B3 63
Lorsque LED 4 allumée => 02 01 00 00 00 01 02 00 08 B3 66
Lorsque LED 6 allumée => 02 01 00 00 00 01 02 00 20 B3 78
Lorsque LED 8 allumée => 02 01 00 00 00 01 02 00 80 B3 00
Lorsque LED 3 et 5 allumée => 02 01 00 00 00 01 02 00 14 B2 AF |
SI j'ai bien compris comment se construit une trame MODBUS:
02 XX XX XX XX XX XX XX XX XX XX correspond au numéro de l'esclave
XX 10 XX XX XX XX XX XX XX XX XX correspond au numéro de la requête (ici Ecriture de n mots de sortie)
XX XX XX XX XX XX XX XX XX B2 A0 correspond au CRC16 (ici celui lorsque aucune LED n'est allumée)
Il me reste donc la partie que l'on appelle données. Dans cette partie, j'ai remarqué que des deux derniers octets changeaient de valeur en fonction de quelle LED était allumée:
Lorsque pas de LED allumées => 00 00
Lorsque LED 1 allumée => 00 01
Lorsque LED 2 allumée => 00 02
Lorsque LED 3 allumée => 00 04
Lorsque LED 4 allumée => 00 08
Lorsque LED 6 allumée => 00 20
Lorsque LED 8 allumée => 00 80
Lorsque LED 3 et 5 allumée => 00 14
J'en déduit donc que cela indique la ou les LEDs qui sont allumées, mais que signifie la partie avant ces deux octets, à savoir 00 00 00 01 02 ?
Dans l'attente de vos réponses,
Cordialement,
Clairetj
PS: j’émets l'hypothèse que 00 00 00 01 02 doit représenter une partie de l'adresse de mes sorties TOR mais je ne suis pas sur