Aller au contenu
JelinaJelina DocumentationDocumentation technique
Retour au site officiel

Acquisition Modbus TCP

Description : selon le support de transmission, Modbus peut utiliser un port série ou un port réseau (y compris la fibre optique). RTU relève de la communication série et TCP de la communication réseau Ethernet. Le protocole Modbus suit un échange entre un maître et des esclaves. Sur la passerelle de périphérie, le pilote Modbus utilise un client Master (maître) qui interroge activement les esclaves Modbus. Chaque esclave prépare une réponse à partir de la requête reçue et la renvoie à la passerelle.

(1) Dans « Jumeau intelligent », passez à « Connectivité des équipements ».

(2) Glissez Client Modbus maître, Traitement des données et Transfert MQTT dans l’espace des plugins pour créer trois nœuds.

(3) Reliez les trois nœuds dans cet ordre : client Modbus (maître) → Traitement des données → Transfert MQTT.

Sélectionnez le protocole Modbus-TCP.

(1) Double-cliquez sur Client Modbus maître et cliquez sur « Ajouter un plan ».

(2) Renseignez la connexion puis « Suivant ».

(3) Cliquez sur [Ajouter un groupe], renseignez les informations du groupe, puis cliquez sur [Confirmer].

(4) Cliquez sur [Ajouter des données], renseignez les données des points, puis cliquez sur [Confirmer].

(5) Cliquez sur [Terminer] pour ajouter le plan d’acquisition.

(6) Activez le plan, puis cliquez sur [Enregistrer].

(1) Cliquez sur « Déployer » dans la connectivité des équipements.

(2) Passez au [Jumeau intelligent] et placez le pointeur sur le nœud client Modbus (maître) pour afficher ses informations.

(3) Cliquez sur un plan pour consulter valeurs temps réel et historiques de ses points.

Acquisition (avant traitement) :

Après traitement (consultez le plan dans le plugin Traitement des données) :

Les données ne peuvent être modifiées que si le point est en mode rw ou wo et si l’acquisition fonctionne normalement.

(1) Cliquez sur le bouton [Écrire] d’un point, configurez les données, puis cliquez sur [OK].

(2) Consultez l’historique des données.

Paramètre Description Format Exemple
Nom du plan Nom du plan défini par l’utilisateur Non vide Acquisition slave
Protocole Protocole Modbus Modbus TCP, Modbus RTU Modbus TCP
Acquisition synchronisée Indique si l’acquisition est synchronisée Yes, No YES
Période d’acquisition Période d’interrogation : intervalle entre deux lectures des registres de chaque groupe du plan Nombre, intervalle : (100,2147483647] 2000
Délai de validité de l’acquisition Tous les points d’un groupe doivent être acquis dans le délai configuré ; sinon, les données du groupe sont rejetées. Ce délai comprend le délai intertrame. Nombre, intervalle : (0, période d’acquisition] 1000
Délai d’expiration Durée maximale d’une acquisition pour chaque groupe du plan ; au-delà, les données de la lecture sont rejetées Nombre, intervalle : (0, période d’acquisition] 1000
Nombre maximal de registres par lot Nombre maximal de registres lors de l’acquisition par lot de points consécutifs Entier naturel, intervalle : [1,120] 120
Délai intertrame Intervalle minimal entre deux acquisitions. Valeur par défaut : 0. Augmentez-le si les acquisitions expirent fréquemment ; sinon, ne le modifiez pas. Millisecondes, nombre, intervalle : [0, 2147483647] 0
Délai d’écriture intertrame Attente supplémentaire lors d’une écriture, nécessaire pour certains équipements dont l’écriture est lente. 0 signifie aucune attente supplémentaire. Millisecondes, nombre, intervalle : [0, 2147483647] 0
Code fonction d’écriture des registres Définit le code fonction utilisé pour écrire les registres de maintien. Auto, 06, 10 ; voir ci-dessous Auto
Acquisition sur changement Mode d’acquisition : No désactive l’acquisition sur changement ; SingleData transmet uniquement les points modifiés ; WholeGroup transmet tout le groupe lorsqu’une de ses données change. No, SingleData, WholeGroup SingleData
Délai de réinitialisation de l’acquisition sur changement Force une transmission lorsque les données restent inchangées au-delà de ce délai. 0 désactive ce déclenchement. Secondes, nombre, intervalle : (0, 2147483647] 0
Temporisation après échec Après un échec d’acquisition, allonge le délai avant la prochaine acquisition selon le facteur de temporisation, jusqu’à période d’acquisition × facteur maximal Yes, No ; voir ci-dessous Yes
Facteur de temporisation Facteur de variation du délai en cas d’échec ; doit être supérieur à 0 et différent de 1 Nombre 2
Facteur maximal de temporisation Facteur limite de temporisation ; une fois atteint, il reste constant Nombre 16

Acquisition synchronisée :

  1. Yes configure uniformément la période d’acquisition, le délai d’expiration et le délai de validité pour tous les groupes du plan ; ces réglages s’appliquent à tous les points du plan.
  2. No permet de configurer séparément ces trois paramètres pour chaque groupe.

Code fonction d’écriture des registres : Auto utilise 06 pour un registre et 10 pour plusieurs registres ; 06 utilise toujours 06 ; 10 utilise toujours 10.

Temporisation après échec : avec une période d’acquisition de 1 seconde, un facteur de 2 et un facteur maximal de 16, les attentes lors d’échecs successifs sont de 1s, 2s, 4s, 8s, 16s. Avec une période de 10 secondes, un facteur de 0.5 et une limite de 0.1, elles sont de 10s, 5s, 2.5s, 1.25s. Dès qu’une acquisition réussit, la période d’acquisition initiale est rétablie.

Si le facteur de temporisation est supérieur à 1, le facteur maximal doit lui être supérieur. Si le facteur est inférieur à 1, la limite doit lui être inférieure.

Paramètre Description Format Exemple
Nom du groupe Nom du groupe défini par l’utilisateur Non vide Groupe un
Slave ID Adresse de l’équipement Modbus : adresse esclave de l’équipement interrogé Nombre, intervalle : (0,255] 1
IP Adresse IP de l’équipement Modbus Adresse en notation décimale pointée 172.21.78.157
Port Port de l’équipement Modbus ; 502 par défaut Nombre, intervalle : (0,65535] 502
Période d’acquisition Période d’interrogation : intervalle entre deux lectures des registres du groupe Nombre, intervalle : (100,2147483647] 2000
Délai de validité de l’acquisition Délai de validité des données acquises pour tous les points du groupe. Si tous les points ne sont pas lus dans ce délai, toutes les données du groupe sont rejetées. Nombre, intervalle : (0, période d’acquisition] 1000
Délai d’expiration Durée maximale d’une acquisition du groupe ; au-delà, les données de la lecture sont rejetées Nombre, intervalle : (0, période d’acquisition] 1000

Remarque : Lorsque l’acquisition synchronisée de la connexion est réglée sur No, les paramètres concernent les points du groupe. Modbus limite le nombre de registres lus en une opération. Pour Holding Register et Input Register, un groupe de registres consécutifs peut comporter au maximum 120 points ; pour Discrete et Coils, la limite est de 2000 points.

Paramètre Condition Description Format Exemple
Alias des données Nom du point, unique dans son groupe Non vide, ne doit pas commencer par un chiffre ou un trait de soulignement ni contenir d’espaces M
Adresse Adresse de registre unique dans le groupe Adresse de registre ; deux adresses d’un même groupe ne peuvent être identiques Nombre, intervalle : (0,2147483647) 0
Type de registre Code d’opération Modbus Holding Register, Input Register, Discrete, Coils ; voir ci-dessous Holding Register
Type de données Dépend du type de registre Type d’origine des données du registre uint16, int16, uint32, int32, float, boolean, combine, string, hex string ; voir ci-dessous uint16
Ordre des octets Dépend du type de registre et du type de données Ordre de stockage en mémoire des données de plusieurs octets AB, BA, ABCD, CDAB, BADC, DCBA ; voir ci-dessous AB
Nombre de registres Dépend du type de registre et du type de données Nombre de registres utilisés par le type de données Voir ci-dessous 1
Mode lecture/écriture Dépend du type de registre ro (lecture seule), rw (lecture/écriture), wo (écriture seule) ro, rw, wo ro
Calcul Formule définie par l’utilisateur à partir de l’alias des données {M}/10
Décalage Type de données bit Décalage de bit, du poids fort au poids faible, après ajustement de l’ordre des octets Nombre, intervalle : [0,15]

Par exemple, pour tester une propriété de température dont l’adresse sur l’équipement est 1, définissez l’adresse du registre sur 1.

  1. Pour les registres Discrete et Coils, le type de données par défaut est boolean.
  2. Pour uint16, int16 et combine, l’ordre des octets peut être AB ou BA ; pour uint32, int32 et float, il peut être ABCD, CDAB, BADC ou DCBA. Les autres types n’ont pas de réglage d’ordre des octets.
  3. Pour Discrete et Coils, le nombre de registres par défaut est 1. Il est également de 1 pour uint16, int16 et boolean, et de 2 pour uint32, int32 et float. Pour combine, choisissez 1 ou 2. Pour string et hex string, saisissez le nombre de registres manuellement.

Ordre sur 16 bits :

  1. AB : registre d’un mot ; octet de poids fort avant l’octet de poids faible dans le mot (gros-boutiste).
  2. BA : registre d’un mot ; octet de poids faible avant l’octet de poids fort dans le mot (petit-boutiste).

Ordre sur 32 bits :

  1. ABCD : deux mots, mot de poids fort en premier ; dans chaque mot, octet de poids fort en premier (gros-boutiste).
  2. BADC : deux mots, mot de poids fort en premier ; dans chaque mot, octet de poids faible en premier (gros-boutiste avec permutation des octets).
  3. CDAB : deux mots, mot de poids faible en premier ; dans chaque mot, octet de poids fort en premier (petit-boutiste avec permutation des octets).
  4. DCBA : deux mots, mot de poids faible en premier ; dans chaque mot, octet de poids faible en premier (petit-boutiste).

Le type de registre détermine le type de données, le nombre de registres et le mode lecture/écriture.

0x, 1x, 3x et 4x désignent les plages d’adresses définies par le protocole Modbus.

Type de registre Nom Adresse automate Adresse protocole Accès Description
Holding Register Registre de maintien (4x) 40001-49999 0000H-FFFFH Lecture/écriture ; lecture : 0x03, écriture : 0x06 Paramètres de sortie ou mémorisés, définis pendant le fonctionnement du contrôleur
Input Register Registre d’entrée (3x) 30001-39999 0000H-FFFFH Lecture seule, 0x04 Paramètres d’entrée reçus d’équipements externes pendant le fonctionnement du contrôleur
Discrete État d’entrée discrète (1x) 10001-19999 0000H-FFFFH Lecture seule, 0x02 Port d’entrée dont l’état est modifié par une action externe
Coils État de bobine (0x) 00001-09999 0000H-FFFFH Lecture/écriture ; lecture : 0x01, écriture unique : 0x05, écriture multiple : 0x0F Port de sortie dont l’état peut être défini et lu

Le type de données dépend du type d’origine, de la permutation des octets de poids fort et faible dans un registre et de la permutation de l’ordre des registres. Chaque lettre représente un octet.

  1. Types d’origine : uint16, int16, uint32, int32, float, boolean, combine, string, hex string.
  2. Permutation des octets d’un registre : échange des deux groupes de 8 bits d’une donnée de 16 bits. Sur 16 bits, les deux ordres sont AB et BA ; l’octet de poids fort en premier correspond à AB, et celui de poids faible en premier à BA.
  3. Permutation des registres : échange des deux mots de 16 bits d’une donnée de 32 bits, par exemple ABCD et CDAB.

Types de données d’origine :

Nom Description Nombre de registres
uint16 Entier non signé sur 16 bits 1
int16 Entier signé sur 16 bits 1
uint32 Entier non signé sur 32 bits 2
int32 Entier signé sur 32 bits 2
float Nombre à virgule flottante sur 32 bits 2
combine 1、2
boolean Booléen 1
string Chaîne ASCII Configurable
hex string Chaîne hexadécimale Configurable

Ordre des éléments de poids fort et faible :

Valeur Description
AB Registre de 2 octets, octet de poids fort en premier (ordre direct)
BA Registre de 2 octets, octet de poids faible en premier (ordre inversé)
ABCD Registre de 2 mots, mot de poids fort en premier et, dans chaque mot, octet de poids fort en premier (gros-boutiste)
BADC Registre de 2 mots, mot de poids fort en premier et, dans chaque mot, octet de poids faible en premier (gros-boutiste avec permutation des octets)
CDAB Registre de 2 mots, mot de poids faible en premier et, dans chaque mot, octet de poids fort en premier (petit-boutiste avec permutation des octets)
DCBA Registre de 2 mots, mot de poids faible en premier et, dans chaque mot, octet de poids faible en premier (petit-boutiste)