DevIOIEModbus
Introduction
L'interface DevIOIEModbus permet l'intégration d'équipements utilisant le protocole Modbus dans l'environnement DevIO. Elle supporte Modbus TCP/IP pour la communication avec des automates, capteurs, variateurs et autres équipements industriels.
Cas d'usage typiques : - Supervision d'automates industriels (Schneider, Siemens, Omron, etc.) - Collecte de données depuis des capteurs intelligents - Pilotage de variateurs de vitesse et d'actionneurs - Interfaçage avec des modules I/O déportés
Compatibilité et prérequis
- Versions supportées : DevIO v6.0 et supérieures
- Environnements : Windows (toutes versions compatibles DevIO)
- Dépendances :
- Équipements compatibles Modbus TCP/IP
- Interface Ethernet sur les équipements
- Accès réseau vers les équipements cibles
Note
Pour vérifier la compatibilité d'un équipement, il suffit qu'il soit équipé d'une interface Ethernet et qu'il supporte le protocole Modbus TCP/IP.
Fonctionnalités supportées
- Lecture/écriture de bits : Coils (sorties) et Discrete Inputs (entrées)
- Lecture/écriture de registres : Input Registers (lecture seule) et Holding Registers (lecture/écriture)
- Gestion de blocs : Lecture/écriture de groupes de données en une seule transaction
- Types de données : Booléens, entiers, flottants, caractères
- Gestion des ordres : Big-endian (Motorola) et Little-endian (Intel)
- Connexions multiples : Gestion de plusieurs équipements simultanément
- Support FTP : Transfert de fichiers avec les équipements compatibles
- Historiques : Récupération de données historiques au format CSV
Configuration de l'interface
Paramètres de ligne de commande
| Paramètre | Description | Valeur par défaut |
|---|---|---|
-SERVER |
Nom du serveur DevIO | (obligatoire) |
-NAME |
Nom interne de l'interface | (obligatoire) |
-HANDLE |
Handle de l'interface | - |
-NUMBER |
Numéro d'interface | - |
-DLL |
DLL Modbus à utiliser | TCPIP |
-HASFTP |
Support FTP activé | (flag) |
-USEADR |
Utiliser l'adresse dans les requêtes | (flag) |
-CB |
Mode callback | (flag) |
-1 |
Mode single (une connexion) | (flag) |
-FFR |
FTP : interdire la réutilisation | (flag) |
-FUFA |
FTP : utiliser fresh always | (flag) |
-FUFF |
FTP : utiliser fresh on first | (flag) |
-FMC |
FTP : nombre max de connexions | -1 |
-MOD |
Adresse Modbus de l'équipement | 255 |
-NET |
Réseau FTP | - |
-ADDR |
Adresse FTP | - |
-ONE |
Base d'adressage à 1 | (flag) |
-NDE |
Pas de déconnexion sur erreur | (flag) |
-ALARMS |
Récupération d'alarmes | (flag) |
-DEL |
Supprimer après transfert | (flag) |
-SEP |
Séparateur CSV | , |
-DEC |
Séparateur décimal | . |
-HEAD |
Fichier CSV avec en-tête | (flag) |
-RNT |
Renommer vers | - |
-LOG |
Activer les logs détaillés | (flag) |
Exemple de configuration
DevIOIEModbus.exe -SERVER MonServeurDevIO -NAME Modbus_Interface1 -DLL TCPIP -MOD 1 -ONE
Configuration du modèle d'équipement dans DevIO Studio
Création de l'interface
- Ouvrir votre projet dans DevIO Studio
- Clic-droit sur Interfaces d'échanges > Nouvelle Interface d'échange
- Renseigner les champs principaux :
- Mnémonique : Nom logique de l'interface (ex : MODBUS1)
- Description : (ex : Interface Modbus pour automates)
- Exécutable : DEVIOIEModbus.exe
- Services empilés : 3 (par défaut)
- Temps attente réponse : 5000 ms
- Réessai : 3
- Famille d'évènement : 6
Écran de configuration de l'interface Modbus dans DevIO Studio
Création de l'équipement
- Créer un nouvel équipement dans DevIO Studio
- Sélectionner le type : Interface d'échange
- Choisir l'interface : DevIOIEModbus
- Configurer les paramètres :
- Adresse Modbus : ID de l'esclave (1-247)
- Adresse IP : Adresse réseau de l'équipement
- Port : Port Modbus TCP (généralement 502)
Configuration des canaux
- Adresse canal : Adresse Modbus du registre ou de la bobine
- Type de données : BOOL (bits), USHORT, FLOAT, etc.
- Mode : Lecture, écriture ou lecture/écriture
- Base d'adressage : 0 ou 1 selon l'équipement
Configuration des blocs de données
Qu'est-ce qu'un bloc ?
Un bloc représente un ensemble de données Modbus échangées en une seule transaction avec l'équipement. Quand on lit ou écrit une variable d'un bloc, c'est tout le bloc qui est lu ou écrit.
Types de blocs Modbus
| Type | Mnémonique | Description | Accès |
|---|---|---|---|
| Coils | C | Bits de sortie | Lecture/Écriture |
| Discrete Inputs | D | Bits d'entrée | Lecture seule |
| Input Registers | I | Registres d'entrée (16 bits) | Lecture seule |
| Holding Registers | H | Registres de maintien (16 bits) | Lecture/Écriture |
Création d'un bloc
- Clic-droit sur l'équipement > Nouveau bloc
- Choisir le type de bloc approprié
- Configurer les paramètres :
- Mnémonique : Nom logique du bloc
- Description : Description du bloc
- Propriétés : Entrée, Sortie ou Entrée/Sortie
- Périodicité : Temps entre chaque lecture
- Adresse : Format
[Type][Adresse]/[Quantité]
Exemples d'adressage de blocs
[C50/100]: 100 bits de sortie à partir de l'adresse 50[D10/10]: 10 bits d'entrée à partir de l'adresse 10[I100/70]: 70 registres d'entrée à partir de l'adresse 100[H0/16]: 16 registres de maintien à partir de l'adresse 0
Configuration d'un bloc Coils (bits de sortie)
Configuration d'un bloc Holding Registers
Configuration des données dans un bloc
Adressage interne au bloc
Chaque variable d'un bloc est positionnée grâce à une adresse interne. L'adressage interne commence toujours à 0, indépendamment de l'adresse Modbus du bloc.
Adressage des mots (registres)
[W2]: Mot 2 du bloc[W1/3]: 4e bit du mot 1[W4/0/8]: 8 bits à partir du bit 0 du mot 4
Adressage des bits
[0]: Octet 0 du bloc[1/5]: Bit 5 de l'octet 1[2/3/4]: 4 bits à partir du bit 3 de l'octet 2
Types de données supportés
| Format | Nom complet | Taille | Plage de valeurs |
|---|---|---|---|
byte |
Octet | 1 octet | 0 à 255 |
char |
Caractère signé | 1 octet | -128 à 127 |
unsigned char |
Caractère non signé | 1 octet | 0 à 255 |
short |
Entier court signé | 2 octets | -32 768 à 32 767 |
unsigned short |
Entier court non signé | 2 octets | 0 à 65 535 |
int |
Entier standard signé | 4 octets | ±2,1 milliards |
unsigned int |
Entier standard non signé | 4 octets | 0 à 4,3 milliards |
float |
Flottant simple précision | 4 octets | ±3,4×10^38 |
double |
Flottant double précision | 8 octets | ±1,7×10^308 |
Création d'une donnée
- Double-clic sur le bloc concerné
- Clic-droit > Nouvelle donnée
- Choisir le type (Booléen ou Numérique)
- Configurer les paramètres :
- Mnémonique : Nom de la variable
- Description : Description de la variable
- Adresse : Adresse interne au bloc
- Format : Type de données (pour les numériques)
- Paramètres : Options spécifiques
Configuration d'une donnée booléenne
Configuration d'une donnée numérique
Accès unitaire aux données
Déclaration d'entrée/sortie unitaire
Les données peuvent être lues ou écrites individuellement, sans passer par un bloc. Seules les variables de type BOOL ou USHORT peuvent être déclarées unitairement.
Format d'adressage unitaire
C1000: Bit de sortie (Coil) à l'adresse 1000D200: Bit d'entrée (Discrete Input) à l'adresse 200I100: Registre d'entrée (Input Register) à l'adresse 100H0: Registre de maintien (Holding Register) à l'adresse 0
Utilisation et supervision
Démarrage de l'interface
L'interface se lance automatiquement avec DevIO ou peut être démarrée manuellement :
DevIOIEModbus.exe -SERVER MonServeur -NAME Modbus_Interface -DLL TCPIP -MOD 1
Surveillance des connexions
- État de connexion : Visible dans DevIO Studio
- Qualité des données : Indicateur de validité Modbus
- Performances : Temps de réponse et taux d'erreur
Surveillance et diagnostic
- Utiliser la console de logs pour diagnostiquer les problèmes de communication
- Vérifier la connectivité réseau et les paramètres d'adressage
- Surveiller les timeouts et les erreurs de communication
Astuces et bonnes pratiques
- Nommage : Utiliser des noms explicites pour les interfaces, équipements et variables
- Adressage : Documenter les correspondances entre adresses Modbus et variables DevIO
- Performance : Optimiser la taille des blocs selon les besoins (pas trop grand, pas trop petit)
- Sécurité : Utiliser des mots de passe pour sécuriser les connexions si nécessaire
- Test : Tester la communication avant la mise en production
FAQ et dépannage
Problèmes courants
Q : L'équipement Modbus ne répond pas - Vérifier l'adresse IP et le port (généralement 502) - Contrôler l'adresse Modbus de l'esclave (-MOD) - Tester la connectivité réseau (ping)
Q : Erreurs de lecture/écriture - Vérifier les adresses des registres/bobines - Contrôler les droits d'accès sur l'équipement - Vérifier la base d'adressage (0 ou 1)
Q : Problèmes de types de données - Vérifier l'ordre des octets (Big/Little endian) - Contrôler la taille des registres (16/32 bits) - Adapter le type de données DevIO
Diagnostic
- Utiliser
-LOGpour activer les traces détaillées - Consulter les logs Modbus pour les codes d'erreur
- Utiliser un simulateur Modbus pour les tests
Annexes et références utiles
- Spécification Modbus TCP
- DevIO Studio - Gestion des interfaces
- Configuration des canaux
- Documentation technique des équipements Modbus