Fio banner fr 1 1

Formation automatisme en ligne 3

Calcul CRC Modbus en C#

Lorsque vous communiquez avec des équipements à travers votre PC, vous utilisez habituellement le port 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 contôle que le "CheckSum" a la même valeur que celui de l'émetteur.

Pour la vérification des trames Modbus, il existe 2 types de méthodes : Le LRC (Longitudinal Redundancy Check) qui est utilisés uniquement lorsque vous communiquez en mode ASCII quant au Cyclic Redundancy Check, il est utilisé  en mode 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 de CRC effectuée 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, je vais vous expliquer comment le calcul CRC est effectuée en mode 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:

Formation modbus

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

Aucune note. Soyez le premier à attribuer une note !

Ajouter un commentaire

Code incorrect ! Essayez à nouveau

 

Cliquez ici pour s'inscrire à la formation TIA Portal

Its plc profesionnal edition 1