Calcul CRC Modbus en C#

Lorsque vous communiquez avec des équipements à travers votre PC, vous utilisez habituellement le port série RS232.Le CRC est utilisé pour vérifier l'intégrité du message envoyé lors de l'envoi de commande.Le CRC est aussi utilisé en liaison modbus afin de vérifier les trames envoyées.L'émetteur du message calcule une valeur "CheckSum" qui est fonction du contenu du message, puis l'ajoute à la fin du message. Le récepteur fait le même calcul, et contrôle que le "CheckSum" a la même valeur que celui de l'émetteur.

Topologie modbus serie

Pour la vérification de l'intégrité des trames Modbus, il existe 2 types de méthodes : Le LRC (Longitudinal Redundancy Check) qui est utilisé uniquement lorsque vous communiquez en modbus ASCII quant au Cyclic Redundancy Check ou CRC, il est utilisé  en modbus RTU.Le champ de contrôle de trame de message d'erreur contient deux octets de 8 bits qui contiennent le résultat du calcul du CRC effectué sur le contenu du message.Vous retrouverez en bas de page une classe C# permettant le calcul de CRC que vous pourrez inclure dans votre projet.Ici,nous allons vous expliquer comment le calcul de CRC est effectué en modbus RTU pour lire les valeurs du "holding register".

Utilisation du code

Ajouter la classe CRC_Modbus.cs à votre projet,ajouter l'espace de noms CRC, créez un objet de la classe CRC_Modbus. Il existe une méthode CRC16 qui calcule et renvoie deux octets CRC de 8 bits. Dans le constructeur CRC_Modbus, les valeurs de la table CRC sont initialisés (c'est le CRC_table ,tableau qui a une taille de 512).La fonction ci-dessous permet de calculer le CRC d'une trame Modbus.

Modbus calcul crc

Supposons qu'on veuille envoyer une trame,ci-dessous la méthode d'envoie.La variable  modbus_bytes correspond à la trame à envoyer,device adresse l'adresse du device avec lequel on veut communiquer,le data_type,le code fonction(ici on veut lire dans le holding register),le start_adress l'adresse du mot à lire codé sur 2 bytes poids fort et poids faible,le length le nombre de mot à lire codé aussi sur 2 bytes poids fort et faible.Après le calcul du CRC,la trame(CRC inclu) peut être envoyé via le port série.

Calcul crc modbus csharp

 

Crc calculation for modbuscrc-calculation-for-modbus.zip (2.29 Ko)

S'inscrire à la formation : Comprendre et mettre en oeuvre les réseaux industriels modbus:

Profil
 
Formation modbus

automatisme réseaux industriels Modbus RS232 série CRC formation automatisme automate programmable API

  • 1 vote. Moyenne 1 sur 5.

Ajouter un commentaire

 

7 choses à savoir si Tu débutes en automatisme...

7 choses que tu dois savoir si tu debutes en automatismeCliquez ici pour télécharger le guide PDF

Superv 3