Logiciel Modbus pour tester et déboguer

Modbus est un protocole de communication couramment utilisé dans les systèmes d'automatisation industrielle, les systèmes de maison intelligente, les réseaux automatisés de petits objets (entrepôts, serres, etc.). Le protocole sert également à connecter des équipements de différents types à un ordinateur personnel. Le développement de projets tels que Arduino et Raspberry Pi a considérablement accru l'intérêt pour les tâches liées à la robotique et à l'automatisation. Tout cela assure la croissance de la popularité de Modbus auprès des amateurs et des professionnels.

Dans cet article, nous couvrirons les principales fonctionnalités des solutions logicielles et matérielles existantes pour tester et déboguer les appareils et les réseaux basés sur le protocole Modbus.

Si vous connaissez l'architecture du protocole, vous pouvez accéder directement à la description du logiciel Modbus . Sinon, vous trouverez ci-dessous une brève introduction à Modbus.

Table des matières:

  1. À propos du protocole Modbus
  2. Développement et test d'appareils Modbus
  3. Débogage de systèmes d'automatisation basés sur des appareils Modbus
  4. Défis de communication Modbus

À propos du protocole Modbus


Modbus est un protocole commun utilisé dans les systèmes d'automatisation aux niveaux moyen et inférieur (terrain). Le niveau intermédiaire est le niveau des contrôleurs - des appareils qui collectent des données et contrôlent le processus technologique. Le niveau de champ est le niveau d'interaction entre les capteurs et les contrôleurs ou les capteurs et le serveur.

La structure typique d'un système d'automatisation qui utilise Modbus comme protocole de base est illustrée ci-dessous.

Protocole Modbus

L'environnement standard pour le protocole Modbus est RS485/422/232. Modbus RTU ou Modbus ASCII fonctionnent dessus. Dans les réseaux TCP / IP, cependant, le protocole de niveau supérieur est le protocole de transport TCP et cette variante est appelée Modbus TCP. Dans cet article, nous parlerons du mode de transmission Modbus RTU.

Le protocole Modbus est implémenté à l'aide d'une relation maître-esclave. Cela signifie que la communication est toujours initiée par un appareil, le maître, qui envoie une demande à un esclave (serveur) et attend une réponse. Il y a toujours un maître sur le réseau et de 1 à 247 esclaves.

Le maître interagit avec les dispositifs esclaves au format requête-réponse. La demande contient une séquence d'octets, appelée trame, dans laquelle le temps entre les octets est normalisé en fonction du taux de transfert de données et ne dépasse pas l'intervalle pendant lequel 1,5 octet de données peut être transmis. En mode RTU, les messages commencent par un intervalle silencieux d'au moins 3,5 fois les caractères.

Un message de demande est envoyé au format suivant:

Protocole Modbus

ID - adresse de l'appareil (1 octet),
FN - Fonction Modbus (1 octet),
[args] - arguments de fonction (N octets, selon la fonction),
CRC - une somme de contrôle CRC-16 (2 octets).

Le format d'un message de réponse:

Protocole Modbus

Comme vous pouvez le voir, les trames de réponse et de demande ont des constructions similaires, à l'exception du champ Données, qui fournit un contenu différent selon la fonction effectuée.

Dans le cas où la fonction demandée n'est pas prise en charge par le périphérique esclave ou si les arguments dans le champ [args] de la demande sont incorrects pour ce serveur, dans le champ FN de la réponse, le bit haut sera mis à 1 et le champ Data sera contiennent des informations supplémentaires sur l'erreur survenue.

En outre, des dispositifs esclaves particuliers peuvent avoir des registres spécifiques avec des informations supplémentaires.

Les types de registres référencés dans les appareils Modbus sont les suivants:

Champ Accès Taille La description
Entrées discrètes
lecture seulement
1 bit
utilisé comme entrées
Sorties bobines
lecture écriture
1 bit
utilisé pour contrôler discret
Registres d'entrée
lecture seulement
16 bit
utilisé pour l'entrée
Tenir des registres
lecture écriture
16 bit
utilisé pour une variété de choses, y compris les entrées, les sorties, les données de configuration, etc.

La description complète du protocole Modbus RTU est fournie dans sa spécification fonctionnelle.

Lors de la configuration d'un réseau Modbus, un point à considérer est que le protocole permet la transmission de données à partir de plusieurs périphériques qui doivent être reçus par un seul serveur ou contrôleur sur lequel un pilote Modbus est installé. Une application série peut contrôler le port de communication d'un serveur (ex. COM1) lorsqu'elle reçoit des données Modbus de plusieurs capteurs.

Malheureusement, il existe une limitation, car l'ouverture simultanée du port de réception dans plusieurs applications peut représenter un défi important.

Il existe une solution à ce dilemme. Virtual COM Port Driver PRO par Eltima permet la création de ports RS485 virtuels et le fractionnement des données Modbus afin que plusieurs ports puissent recevoir les données en même temps.

Essayez maintenant Virtual Serial Port Driver Pro
Période d'essai de 14 jours gratuits

Vous pouvez désormais dupliquer le flux de données entrant dans un port physique vers plusieurs ports virtuels. En connectant plusieurs applications à des copies virtuelles de votre port COM1, toutes les applications peuvent obtenir un accès partagé à votre port physique.

Développement et test d'appareils Modbus


Lors du développement et du débogage des appareils Modbus RTU, les experts utilisent des outils logiciels et matériels spécialisés. Quant aux périphériques matériels, la solution la plus simple sera le convertisseur RS485/USB. De tous les appareils de ce type, la solution probablement la plus efficace est MOXA UPORT 1130/UPORT 1150. L'appareil est conçu pour être facile à utiliser et nécessite un minimum de compétences pour être assemblé. Il existe également des solutions plus complexes comme Ethernet/RS-485 (par exemple, NPORT de MOXA).

En pratique, en ce qui concerne le développement de dispositifs Modbus RTU, la fonction esclave est implémentée plus souvent. Les dispositifs esclaves comprennent divers capteurs, relais contrôlés, modules d'E/S, etc. Les dispositifs maîtres sont créés moins souvent. Dans les réseaux d'automatisation, la fonction maître est généralement effectuée soit par un contrôleur, qui a déjà une pile Modbus implémentée, soit par un système OPC Server/SCADA équipé d'un pilote Modbus.

Nous ne considérerons pas le développement de la pile Modbus directement dans cet article. La seule chose à mentionner est la bibliothèque FreeMODBUS, sur la base de laquelle il est assez facile de construire un appareil prenant en charge les fonctions esclaves Modbus.

Logiciel efficace pour les tests Modbus


Les tests peuvent être effectués à différents niveaux de développement d'appareils Modbus. Les solutions logicielles et matérielles de test Modbus diffèrent selon le stade de développement et l'objectif du test.

Au cours du processus de développement, une situation peut survenir lorsqu'un périphérique reçoit une demande et y répond (cela peut être indiqué par les DEL de réception/transmission de paquets, si de tels éléments sont fournis dans la conception, ou détecté à l'aide d'un débogueur et d'un paramètre un point d'arrêt) mais les données ne sont pas affichées dans le terminal ou un autre programme spécialisé. Dans ce cas, vous aurez besoin d'un renifleur de port série dédié.

Serial Port Monitor est l'un des meilleurs logiciels de surveillance Modbus disponibles à ce jour. Cette solution Modbus peut facilement lire et enregistrer toutes les données série transitant par les ports COM du système. La fonctionnalité avancée de l'application permet de capturer des données en temps réel afin qu'un développeur puisse résoudre tous les problèmes une fois qu'ils ont été détectés.

Le moniteur de port série est capable de fonctionner en mode terminal, c'est-à-dire d'émuler le transfert de données d'un port COM surveillé vers un périphérique qui y est inséré. Cette option est particulièrement pratique pour le test de communication Modbus, car elle permet d'observer la réaction d'un appareil particulier à une commande et des données spécifiques.

Modbus Tester par Eltima Software

Serial Port Monitor logo

Serial Port Monitor

Enregistrez et analysez l'activité des ports série
4.8 Classement basé sur 41+ utilisateurs, Revue(75)
Télécharger 14-jours d’essai entièrement fonctionnel
Serial Port Monitor

Le logiciel dédié est utile lorsqu'il est nécessaire non seulement de vérifier si un appareil fonctionne (c'est-à-dire de répondre correctement aux demandes), mais également de mesurer le temps de défaillance.

La solution de testeur Modbus permet de consigner les flux de données entrants et sortants. De plus, toutes les données collectées peuvent être affichées dans différentes vues (table, ligne, vidage, terminal), ce qui facilite la comparaison et l'analyse.

Débogage de systèmes d'automatisation basés sur des appareils Modbus


Il y a beaucoup plus de spécialistes qui déboguent des systèmes d'automatisation et des appareils prenant en charge le protocole Modbus que ceux qui développent ces appareils. Ainsi, en fonction des spécificités des tâches, les exigences pour le logiciel Modbus seront légèrement différentes.

S'il est nécessaire de connecter un contrôleur à un seul appareil esclave, vous pouvez établir une communication série en utilisant un convertisseur RS-485/USB, un PC et un logiciel ou terminal spécialisé. Dans ce cas, aucun test long n'est nécessaire, suivi de l'analyse de nombreux fichiers journaux. Ainsi, la logique de l'opération et l'ensemble d'outils ne seront pas différents de ceux utilisés au stade des tests de développement de dispositifs esclaves.

Si vous disposez déjà d'un réseau d'appareils prêt, les tâches suivantes peuvent être distinguées:

  • vérifier l'opérabilité de tous les appareils du réseau (c'est-à-dire la communication avec chaque appareil séparé et vérifier l'exactitude de sa réponse);

  • test de charge (identification de la capacité de fonctionnement maximale de l'appareil). Il est recommandé de faire plusieurs sessions et d'analyser les données collectées pour les échecs, les non-réponses, la corruption des données, etc.

Pour accomplir ces tâches, vous aurez besoin d'un terminal capable de créer une liste de demandes ou d'un outil spécialisé tel que Modbus Poll, un simulateur maître Modbus qui permet de surveiller plusieurs esclaves Modbus et/ou des zones de données en même temps.

Défis de communication Modbus


Certains appareils Modbus peuvent avoir des paramètres d'interface RS-485 particuliers (le nombre de bits de données, la parité, le nombre de bits d'arrêt). Les appareils avec des paramètres différents ne peuvent pas fonctionner sur le même réseau avec le même maître. L'outil le plus pratique pour tester et configurer de tels périphériques est un programme de terminal qui prend en charge le basculement rapide entre les paramètres de port préinstallés ou fonctionne avec plusieurs lignes simultanément.

Un autre défi consiste à fournir l'échange de données avec un appareil fonctionnant sur un protocole différent de la spécification standard de Modbus RTU. Par exemple, le protocole de l'esclave peut être logiquement similaire à Modbus (structure du package, délais d'attente, etc.) mais utilise certaines fonctions au-delà de la norme.

Dans ce cas, ce sera une bonne idée d'utiliser Modbus Poll, qui permet de formuler des requêtes arbitraires, ou un terminal qui prend en charge des fonctionnalités similaires.

Le système SCADA standard n'est pas efficace pour travailler avec de tels appareils et la communication avec l'équipement est établie sur un serveur OPC spécial.

Serial Port Monitor

Configuration requise: Windows (32-bit et 64-bit): XP/2003/2008/Vista/7/8/10, Windows Server 2012, Windows Server 2012/2016/2019 , 9.16MB taille
Version 7.0.342 (le 16 Jan, 2018) Notes de mise à jour
Catégorie: Serial Port Software