OperaMetrix
Protocoles

Connectez tout équipement Modbus à Ignition SCADA

Intégration Modbus TCP avec Ignition : Protocole universel pour les équipements industriels

Exploitez les drivers Modbus TCP et RTU d'Ignition pour connecter compteurs d'énergie, automates, capteurs et équipements industriels. Mappez les registres vers des tags, configurez les types de données et optimisez le polling pour une acquisition de données fiable en temps réel.

Présentation

Modbus est le protocole de communication industrielle le plus largement déployé, supporté par des milliers d'équipements de centaines de fabricants. L'intégration Modbus TCP d'Ignition fournit un support natif pour lire et écrire les Holding Registers, Input Registers, Coils et Discrete Inputs de tout équipement compatible sur votre réseau.

Grâce au driver Modbus intégré d'Ignition, vous pouvez vous connecter aux équipements Modbus TCP via Ethernet et aux équipements Modbus RTU via des liaisons série RS-485/RS-232. Le driver gère la reconnexion automatique, l'optimisation des requêtes et supporte les configurations multi-équipements sur une seule connexion.

Avantages clés

  • Driver natif Modbus TCP/IP et RTU inclus
  • Support de tous les codes fonction Modbus
  • Mapping automatique des registres vers les tags
  • Conversion de types de données et mise à l'échelle intégrées
  • Optimisation des requêtes pour réduire le trafic réseau

Architecture Modbus TCP avec Ignition

Le driver Modbus TCP d'Ignition communique avec les équipements terrain via Ethernet ou connexions série, mappe les registres vers le Tag Provider et expose les données aux clients Vision, Perspective et scripting.

┌─────────────────────────────────────────────────────────────────┐
│                     Ignition Clients                           │
│          (Perspective / Vision / Reporting)                    │
└──────────────────────────┬──────────────────────────────────────┘
                           │
                           ▼
┌─────────────────────────────────────────────────────────────────┐
│                    Tag Provider                                │
│        HR100 = 2345  │  IR200 = 67.8  │  C0 = true            │
└──────────────────────────┬──────────────────────────────────────┘
                           │
                           ▼
┌─────────────────────────────────────────────────────────────────┐
│               Ignition Modbus Driver                           │
│     (TCP/IP + RTU, request optimization, auto-reconnect)       │
└──────────┬───────────────┬──────────────────┬───────────────────┘
           │               │                  │
    Ethernet/TCP     Ethernet/TCP       RS-485 Serial
           │               │                  │
           ▼               ▼                  ▼
    ┌────────────┐  ┌────────────┐    ┌────────────┐
    │  Energy     │  │   PLC      │    │  Sensor    │
    │  Meter      │  │  (Modbus   │    │  (Modbus   │
    │ (Modbus TCP)│  │   TCP)     │    │   RTU)     │
    │  Unit ID: 1 │  │ Unit ID: 2 │    │ Unit ID: 3 │
    └────────────┘  └────────────┘    └────────────┘

Étapes de configuration

1

Étape 1 : Ajouter une connexion Modbus TCP

Dans la Gateway Ignition, accédez à Config > OPC UA > Device Connections et ajoutez un nouvel équipement Modbus TCP. Spécifiez l'adresse IP, le port (502 par défaut) et l'Unit ID de l'équipement cible.

# Modbus TCP Device Configuration
# ─────────────────────────────────
Device Name:     EnergyMeter_01
Driver:          Modbus TCP
Hostname:        192.168.1.100
Port:            502
Unit ID:         1

# Connection Settings
Connect Timeout:       5000 ms
Reconnect Rate:        5000 ms
Max Requests Per Sec:  0 (unlimited)

# For Modbus RTU over TCP (serial-to-Ethernet converter):
Device Name:     TempSensor_RTU
Driver:          Modbus RTU over TCP
Hostname:        192.168.1.200
Port:            4001
Unit ID:         3
2

Étape 2 : Mapper les registres vers les tags Ignition

Créez des tags OPC qui référencent les adresses de registres Modbus. Ignition utilise une syntaxe d'adresse simple : HR pour les Holding Registers, IR pour les Input Registers, C pour les Coils et DI pour les Discrete Inputs, suivis du numéro de registre.

# Modbus Address Syntax in Ignition
# ────────────────────────────────────

# Holding Registers (Function Code 03 / 06 / 16)
HR100          # Read Holding Register 100 as Int16
HR100:INT32    # Read HR100-101 as 32-bit integer
HR100:FLOAT    # Read HR100-101 as 32-bit float

# Input Registers (Function Code 04)
IR200          # Read Input Register 200 as Int16
IR200:FLOAT    # Read IR200-201 as 32-bit float

# Coils (Function Code 01 / 05 / 15)
C0             # Read Coil 0 as Boolean
C100           # Read Coil 100 as Boolean

# Discrete Inputs (Function Code 02)
DI0            # Read Discrete Input 0 as Boolean
DI50           # Read Discrete Input 50 as Boolean

# Tag path example in Ignition:
# [Modbus]EnergyMeter_01/HR100:FLOAT
3

Étape 3 : Configurer les types de données et la mise à l'échelle

Les registres Modbus sont en 16 bits par défaut. Configurez les types de données multi-registres pour les entiers 32 bits, les flottants et les chaînes. Appliquez des facteurs d'échelle et des offsets pour convertir les valeurs brutes en unités d'ingénierie.

# Data Type Suffixes for Modbus Addresses
# ──────────────────────────────────────────
HR100          # INT16   (1 register)
HR100:INT32    # INT32   (2 registers)
HR100:UINT16   # UINT16  (1 register, unsigned)
HR100:UINT32   # UINT32  (2 registers, unsigned)
HR100:FLOAT    # FLOAT32 (2 registers, IEEE 754)
HR100:DFLOAT   # FLOAT64 (4 registers)
HR100:STRING20 # String of 20 characters (10 registers)

# Byte/Word Order (for multi-register types)
HR100:FLOAT:ABCD   # Big-endian (default)
HR100:FLOAT:CDAB   # Word-swapped
HR100:FLOAT:BADC   # Byte-swapped
HR100:FLOAT:DCBA   # Little-endian

# Scaling in Ignition Tag Configuration:
# Raw Value:  0 - 4095  (12-bit ADC)
# Scaled:     0.0 - 100.0 (engineering units)
# Mode:       Linear (y = mx + b)
# Scale High: 100.0
# Scale Low:  0.0
# Raw High:   4095
# Raw Low:    0
4

Étape 4 : Configurer les taux de polling et l'optimisation

Ajustez le taux de polling Modbus pour équilibrer la réactivité avec la charge réseau. Activez l'optimisation des requêtes pour combiner plusieurs lectures de registres en moins de transactions Modbus, réduisant la surcharge de communication.

# Polling and Optimization Settings
# ────────────────────────────────────

# Tag Group Configuration
Tag Group:          Default
Poll Rate:          1000 ms    # Read every 1 second
Stale Timeout:      5000 ms    # Mark stale after 5s
Leased Poll Rate:   250 ms     # When actively viewed

# Device-Level Optimization
Request Optimization:  Enabled
Max Registers/Read:    125      # Modbus limit = 125
Max Coils/Read:        2000     # Modbus limit = 2000
Max Gap Size:          8        # Gap between registers
                                # to merge into 1 request

# Example: Without optimization
# HR100, HR101, HR110, HR111 = 4 separate requests

# With optimization (Max Gap = 12):
# HR100-HR111 = 1 request (12 registers)

# Performance tip: Group tags by device and poll rate
# Fast Group (250ms):  Critical alarms, safety signals
# Normal Group (1s):   Process values, measurements
# Slow Group (30s):    Configuration, setpoints

Fonctionnalités clés

Support Modbus TCP/IP

Le driver Modbus TCP natif se connecte à tout équipement via Ethernet. Supporte les connexions simultanées multiples, la reconnexion automatique et les timeouts configurables pour une communication robuste.

Modbus RTU / Série

Connectez-vous aux équipements Modbus RTU via des liaisons série RS-485 et RS-232. Supporte le RTU over TCP pour les convertisseurs série-Ethernet, permettant l'accès distant aux instruments de terrain existants.

Mapping de registres

Syntaxe d'adressage intuitive pour les Holding Registers, Input Registers, Coils et Discrete Inputs. Mappez toute adresse Modbus directement vers un tag Ignition avec détection automatique du type.

Conversion de types de données

Support intégré pour INT16, INT32, FLOAT32, FLOAT64, types non signés et chaînes. Ordre des octets et des mots configurable (ABCD, CDAB, BADC, DCBA) pour la compatibilité avec tout fabricant.

Cas d'utilisation

Gestion de l'énergie

Lecture de compteurs d'énergie et suivi de puissance

Connectez les compteurs d'énergie Modbus (Schneider PM5xxx, Janitza, Socomec) à Ignition pour le suivi de puissance en temps réel, le suivi de la demande et l'analyse des coûts énergétiques sur plusieurs bâtiments ou lignes de production.

Automatisation des bâtiments

Contrôle CVC et automatisation des bâtiments

Intégrez les contrôleurs CVC, variateurs de fréquence (VFD) et capteurs de température via Modbus TCP pour la gestion centralisée des bâtiments. Surveillez et contrôlez les consignes, planifications et alarmes depuis les tableaux de bord Ignition.

Eau et assainissement

Traitement de l'eau et des eaux usées

Surveillez les débitmètres, capteurs de niveau, analyseurs de pH et contrôleurs de pompes via Modbus RTU/TCP dans les stations de traitement des eaux. Collectez les données de procédé en temps réel pour les rapports de conformité et le contrôle automatisé.

Technologies

Modbus TCP

Protocole Modbus fonctionnant sur les réseaux Ethernet TCP/IP pour la communication haute vitesse des équipements sur le port 502.

Modbus RTU

Implémentation binaire compacte de Modbus pour la communication série sur les couches physiques RS-485 et RS-232.

RS-485

Standard de bus série multi-drop supportant jusqu'à 32 équipements sur un seul bus avec des distances jusqu'à 1200 mètres.

Modbus Driver

Le driver OPC UA intégré d'Ignition pour la communication Modbus TCP et RTU avec les équipements industriels.

Tag Provider

Le système de tags d'Ignition qui expose les valeurs des registres Modbus en tant que tags temps réel pour les écrans, scripts et historiens.

Questions fréquentes

Retrouvez les réponses aux questions courantes sur cette intégration.

Modbus TCP communique via Ethernet en utilisant TCP/IP sur le port 502, tandis que Modbus RTU utilise des connexions série (RS-485 ou RS-232). Ignition supporte les deux nativement. Pour les équipements RTU connectés via des convertisseurs série-Ethernet, utilisez l'option de driver "Modbus RTU over TCP".
Différents fabricants utilisent des ordres d'octets différents pour les valeurs 32 bits. Dans Ignition, ajoutez l'ordre des octets à l'adresse : HR100:FLOAT:ABCD (big-endian), HR100:FLOAT:CDAB (word-swapped), HR100:FLOAT:BADC (byte-swapped) ou HR100:FLOAT:DCBA (little-endian). Consultez la documentation de votre équipement ou essayez CDAB en premier, car c'est l'alternative la plus courante.
Oui. Pour Modbus TCP, créez une connexion séparée pour chaque adresse IP. Pour les équipements partageant la même IP (par exemple derrière une passerelle), utilisez des Unit ID différents pour adresser chacun d'entre eux. Ignition peut gérer des centaines de connexions Modbus simultanément avec une configuration appropriée des taux de polling.
Ignition supporte des taux de polling aussi rapides que 25 millisecondes par groupe de tags. Cependant, le taux effectif dépend du nombre de tags, de la latence réseau et du temps de réponse de vos équipements Modbus. Activez l'optimisation des requêtes et regroupez les tags par fréquence de mise à jour pour maximiser le débit tout en minimisant la charge des équipements.

Prêt à démarrer ?

Contactez notre équipe pour discuter de vos besoins et obtenir une solution sur mesure.