Module smartCORE ModBus
Description
Le module « modbus » lit principalement les registres ModBus des participants ModBus. Ces participants peuvent être connectés
- via une liaison série (ModBus/RTU)
- via TCP (ModBus/TCP)
Interfaces et protocoles utilisés
- ModBus
Configuration JSON
La section suivante décrit l'ensemble de la configuration JSON du module et explique chacun des paramètres.
Exemple de configuration
Voici un exemple de configuration ModBus/TCP :
{
"module": "ModBus",
"comment": "ModBus/TCP config",
"factory": "modbus",
"config": {
"version": 1,
"type": "modbus",
"enable": true,
"pollCycleInMilliseconds": 1000,
"transport": {
"type": "tcp",
"ipAddress": "192.168.0.1",
"ipPortNumber": 502,
"timeoutInMilliseconds": 200
},
"devices": [
{
"enable": true,
"deviceName": "Device Name",
"deviceAddress": 1,
"readChannels": [
{
"name": "Channel Name",
"address": 49152,
"registerType": "HoldingReg",
"registerFormat": "REAL",
"byteOrder": "ABCD",
"bitOffset": 0,
"unit": "",
"scale": 1.0,
"offset": 0.0
}
]
}
]
}
}
Paramètres globaux du module
| Nom du paramètre | Requis | Type de données | Plage de valeurs pertinente | Défaut | Description |
|---|---|---|---|---|---|
| version | OUI | INT | 1 | Version du protocole ModBus | |
| type | OUI | STRING | "modbus" | Interface série pour la communication | |
| enable | OUI | BOOL | true | Commutateur pour la production des données dans des smartCHANNELs | |
| pollCycleInMilliseconds | OUI | INT | 1 - | Intervalle d'interrogation [ms] des accès ModBus | |
| transport | OUI | Objet JSON | Configuration de la couche de transport ModBus (voir ci-dessous) | ||
| devices | OUI | Tableau JSON d'objets JSON | Liste des participants ModBus |
Paramètres de transport spécifiques à ModBus/TCP ("transport")
| Nom du paramètre | Requis | Type de données | Plage de valeurs pertinente | Défaut | Description |
|---|---|---|---|---|---|
| type | OUI | STRING | "tcp" | Sélection de ModBus/TCP | |
| ipAddress | OUI | STRING | Adresse IP valide | Adresse IP de l'appareil ModBus | |
| ipPortNumber | OUI | INT | Numéro de port IP valide | Numéro de port IP de l'appareil ModBus (à régler sur 502, sauf indication contraire) | |
| timeoutInMilliseconds | OUI | INT | 1 - | Timeout [ms] de la connexion TCP (à régler sur 200, sauf indication contraire) |
Paramètres de transport spécifiques à ModBus/RTU ("transport")
| Nom du paramètre | Requis | Type de données | Plage de valeurs pertinente | Défaut | Description |
|---|---|---|---|---|---|
| type | OUI | STRING | "rtu" | Sélection de ModBus/RTU | |
| baudRate | OUI | INT | Débit en bauds ModBus valide | Débit en bauds de l'interface série | |
| dataBits | OUI | INT | 5 - 8 | Bits de données de l'interface série | |
| encoding | OUI | STRING | "rtu" | Codage des données ModBus (seul "rtu" est pris en charge) | |
| parity | OUI | STRING | "no", "even", "odd" | Parité de l'interface série | |
| stopBits | OUI | DOUBLE | 1.0, 1.5, 2.0 | Bits d'arrêt de l'interface série | |
| portName | OUI | STRING | Fichier de périphérique valide | Fichier de périphérique de l'interface série | |
| terminationResistor | OUI | BOOL | true, false | Commutateur pour la résistance de terminaison INTERNE | |
| timeoutInMilliseconds | OUI | INT | 1 - | Timeout [ms] de la connexion TCP (à régler sur 200, sauf indication contraire) | |
| deviceTimeoutInMilliseconds | Non | INT | 0 - | 0 | Timeout supplémentaire [ms] entre les interrogations de participants ModBus différents |
Paramètres d'appareil ModBus ("devices")
| Nom du paramètre | Requis | Type de données | Plage de valeurs pertinente | Défaut | Description |
|---|---|---|---|---|---|
| enable | OUI | BOOL | true | Commutateur d'activation de l'appareil ModBus | |
| deviceName | OUI | STRING | Nom de l'appareil ModBus | ||
| deviceAddress | OUI | INT | 1 - | Adresse de l'appareil ModBus | |
| readChannels | OUI | Tableau JSON d'objets JSON | voir ci-dessous |
Configuration des canaux ModBus ("readChannels")
| Nom du paramètre | Requis | Type de données | Plage de valeurs pertinente | Défaut | Description |
|---|---|---|---|---|---|
| name | OUI | STRING | Nom du smartCHANNEL | ||
| address | OUI | INT | Adresse du registre ModBus | ||
| registerType | OUI | STRING | Type de registre ModBus valide | Type du registre ModBus ("InputReg", "HoldingReg", "Coil", "Status", "0x17" (lecture seule)) | |
| registerFormat | OUI | STRING | Format de registre ModBus valide | Format du registre ModBus ("I8","I16","I32","I64","UI8","UI16","UI32","UI64","REAL","BOOL") | |
| byteOrder | OUI | STRING | Ordre des octets du registre ModBus ("A" = MSB, "B" ou "D" = LSB) | ||
| bitOffset | OUI | UINT | Décalage en bits de la valeur à interpréter | ||
| unit | OUI | STRING | Unité du smartCHANNEL | ||
| scale | OUI | DOUBLE | Mise à l'échelle du smartCHANNEL | ||
| offset | OUI | DOUBLE | Offset du smartCHANNEL |
Configuration des canaux ModBus ("readChannelGroups")
Il est également possible de regrouper plusieurs configurations de canaux dans un tableau JSON, de sorte que les registres ModBus sous-jacents à ce groupe puissent être lus en une seule étape (si le type de registre est identique). Ce tableau readChannelGroup ainsi regroupé peut ensuite être listé dans le tableau JSON « readChannelGroups », par exemple
"readChannelGroups": [
[
{
"name": "Channel 1",
"address": 49152,
"registerType": "HoldingReg",
"registerFormat": "REAL",
"byteOrder": "ABCD",
"bitOffset": 0,
"unit": "",
"scale": 1.0,
"offset": 0.0
},
{
"name": "Channel 2",
"address": 49158,
"registerType": "HoldingReg",
"registerFormat": "REAL",
"byteOrder": "ABCD",
"bitOffset": 0,
"unit": "",
"scale": 1.0,
"offset": 0.0
}
]
]
On peut spécifier soit « readChannels », soit « readChannelGroups ».
Informations sur le module
| Information | Valeur |
|---|---|
| Auteurs | optiMEAS GmbH |
| depuis smartCORE | 0.1 |
| Type de module | Producer |
| Dépendances | AUCUNE |