- Présentation de Jelina
- CommBridge
- Acquisition de données
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. Créer les nœuds
Section intitulée « 1. Créer les nœuds »(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.

2. Créer un plan
Section intitulée « 2. Créer un plan »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].

3. Consulter les résultats
Section intitulée « 3. Consulter les résultats »(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) :

4. Écrire des données
Section intitulée « 4. Écrire des données »Les données ne peuvent être modifiées que si le point est en mode
rwouwoet 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.

5. Paramètres
Section intitulée « 5. Paramètres »Connexion
Section intitulée « Connexion »| 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 :
- 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.
- 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.
Ajouter un groupe
Section intitulée « Ajouter un groupe »| 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.
Ajouter des données
Section intitulée « Ajouter des données »| 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.
- Pour les registres Discrete et Coils, le type de données par défaut est boolean.
- 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.
- 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 :
- AB : registre d’un mot ; octet de poids fort avant l’octet de poids faible dans le mot (gros-boutiste).
- BA : registre d’un mot ; octet de poids faible avant l’octet de poids fort dans le mot (petit-boutiste).
Ordre sur 32 bits :
- ABCD : deux mots, mot de poids fort en premier ; dans chaque mot, octet de poids fort en premier (gros-boutiste).
- BADC : deux mots, mot de poids fort en premier ; dans chaque mot, octet de poids faible en premier (gros-boutiste avec permutation des octets).
- CDAB : deux mots, mot de poids faible en premier ; dans chaque mot, octet de poids fort en premier (petit-boutiste avec permutation des octets).
- DCBA : deux mots, mot de poids faible en premier ; dans chaque mot, octet de poids faible en premier (petit-boutiste).
6. Paramètres du protocole Modbus
Section intitulée « 6. Paramètres du protocole Modbus »Le type de registre détermine le type de données, le nombre de registres et le mode lecture/écriture.
Types de registres
Section intitulée « Types de registres »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 |
Types de données
Section intitulée « Types de données »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.
- Types d’origine : uint16, int16, uint32, int32, float, boolean, combine, string, hex string.
- 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.
- 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) |