Lecture du modbus TCP/IP dans les paramètres de la passerelle Impulse C07W
1
.
Exigences
Pour modifier les paramètres, vous devez disposer du droit d'utilisateur "GatewaySettings" .
2
.
Comprendre les paramètres
Les paramètres sont toujours traités au format JSON par le système avant d'être envoyés à la passerelle.
Ces paramètres JSON sont divisés en deux parties :
SlaveDefinitions
Dans "slaveDefinitions", vous déterminez ce que vous allez lire. Par "esclave", il existe un certain nombre de paramètres :
- Adresse :il s'agit de l'adresse IP de l'esclave modbus que vous souhaitez lire.
- slaveId:il s'agit de l'identifiant de l'esclave modbus que vous souhaitez lire.
- type:pour choisir le registre à lire vous-même, entre "generic-tcp" ici.
Exemple d'un bloc de SlaveDefinitions :
"slaveDefinitions": [
{
"name": "modbus.tcp",
"slaves": [
{
"address": "192.168.2.11",
"port": 502,
"slaveId": 1,
"type": "generic-tcp"
},
{
"address": "192.168.2.12",
"port": 502,
"slaveId": 1,
"type": "generic-tcp"
}
]
}
]
SlaveSettings
Pour chaque esclave que vous avez défini dans SlaveDefinitions vous pouvez définir les registres que vous souhaitez effectivement lire.
Tout d'abord, vous commencez dans SlaveSettings par définir le nom, toujours dans le format suivant :
modbus.tcp.{ip_adres}__{port}.{slave_id}
- - adresse_ip: est l'adresse IP de l'esclave. Remarque : utilise "_" au lieu de ".".
- - port: il s'agit du port par défaut 502 pour le modbus.
- - slave_id: l'identifiant de l'esclave que vous avez noté dans les SlaveDefinitions.
Par exemple : modbus.tcp.192_168_2_11__502.1 (IP-adres = 192.168.2.11. Slave id = 3).
En outre, dans MeasurementPaths, vous déterminez les registres modbus que vous souhaitez lire.
- measurementPath:il s'agit du nom du chemin sur lequel les données seront placées.
- Code fonction:
- 1: Read Coil Status
- 2: Read Input Status
- 3: Read Holding Register
- 4: Read Input Register
- 5: Force Single Coil
- 6: Preset Single Register
- 15: Force Multiple Coils
- 16: Preset Multiple Registers
- startAddress: entre ici l'adresse modbus que vous souhaitez lire.
- Type de données:
- 1: Int16
- 2: Int32
- 3: Int64
- 11: UInt16
- 12: UInt32
- 13: UInt64
- 21: Float
- 22: Double
- 30: Bool
- minValue (facultatif) : si une valeur minimale est saisie, le message n'est pas transmis si la valeur lue est inférieure à cette valeur.
- maxValue (facultatif): si une valeur maximale est introduite, elle n'est pas transmis si la valeur lue est supérieure à cette valeur.
- firstBit (facultatif): si vous voulez lire un ou plusieurs bits d'un registre, indique ici le premier bit.
- lastBit facultatif): si vous souhaitez lire un ou plusieurs bits d'un registre, indique ici le dernier bit.
Vous voulez lire le bit X : "0000 0X00". Dans ce cas, vous utilisez "FirstBit" : 2 et "LastBit" : 2.
Vous voulez lire les bits XX : "XX00 0000". Dans ce cas, vous utilisez "FirstBit" : 6 et "LastBit" : 7.
Choisis Int16 (1 dans les paramètres de la passerelle) comme type de données.
Exemple d'un bloc SlaveSettings :
"slaveSettings": [
{
"name": "modbus.tcp.192_168_2_11__502.1",
"settings": {
"measurementPaths": [
{
"measurementPath": "voltage.uv",
"functionCode": 4,
"startAddress": 0,
"dataType": 1,
"factor": 1,
"minValue": 0,
"maxValue": 500
}
]
}
},
{
"name": "modbus.tcp.192_168_2_12__502.1",
"settings": {
"measurementPaths": [
{
"measurementPath": "alarm_1,
"functionCode": 3,
"startAddress": 1,
"dataType": 1,
"factor": 1,
"minValue": 0,
"maxValue": 1,
"firstBit": 7,
"lastBit": 7
}
]
}
}
]
3
.
Exemple de définition complète des paramètres
{
"slaveDefinitions": [
{
"name": "modbus.tcp",
"slaves": [
{
"address": "192.168.2.11",
"port": 502,
"slaveId": 1,
"type": "generic-tcp"
},
{
"address": "192.168.2.12",
"port": 502,
"slaveId": 1,
"type": "generic-tcp"
}
]
}
],
"slaveSettings": [
{
"name": "modbus.tcp.192_168_2_11__502.1",
"settings": {
"measurementPaths": [
{
"measurementPath": "voltage.uv",
"functionCode": 4,
"startAddress": 0,
"dataType": 1,
"factor": 1,
"minValue": 0,
"maxValue": 500
}
]
}
},
{
"name": "modbus.tcp.192_168_2_12__502.1",
"settings": {
"measurementPaths": [
{
"measurementPath": "alarm_1,
"functionCode": 3,
"startAddress": 1,
"dataType": 1,
"factor": 1,
"minValue": 0,
"maxValue": 1,
"firstBit": 7,
"lastBit": 7
}
]
}
}
]
}