Uitlezen modbus TCP/IP in settings Gateway Impulse C07W
1
.
Vereisten
Om settings te bewerken heeft u het gebruikersrecht “GatewaySettings” nodig.
2
.
Settings begrijpen
De settings worden steeds in JSON-formaat verwerkt door het systeem, voor ze naar de gateway worden verstuurd.
Deze JSON settings zijn opgedeeld in 2 delen:
SlaveDefinitions
In “slaveDefinitions” bepaal je wat je zal uitlezen. Per “Slave” zijn er een aantal instellingen:
- address: dit is het IP-adres van de modbus slave die je wilt uitlezen.
- slaveId: dit is het slave-id van de modbus slave die je wilt uitlezen.
- type: om zelf te kiezen welke register je wilt uitlezen geef je hier “generic-tcp” in.
Voorbeeld van een SlaveDefinitions blok:
"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
Voor iedere slave die je in SlaveDefinitions hebt gedefinieerd, kunt u in SlaveSettings bepalen welke registers je effectief wilt uitlezen.
Allereerst start je in SlaveSettings met het bepalen van de naam, steeds in het volgende formaat:
modbus.tcp.{ip_adres}__{port}.{slave_id}
- ip_adres: is het IP-adres van de slave. Let op: gebruik “_” in plaats van een “.”.
- port: deze is default 502 voor modbus.
- slave_id: het slave id dat je in de SlaveDefinitions hebt genoteerd.
Bijvoorbeeld: modbus.tcp.192_168_2_11__502.1 (IP-adres = 192.168.2.11. Slave id = 3).
Verder bepaal je in MeasurementPaths welke modbus registers je wilt uitlezen.
- measurementPath: dit is de naam van het pad waar de data op wordt gezet.
- functionCode:
- 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: vul hier het modbus address in dat je wilt uitlezen.
- dataType:
- 1: Int16
- 2: Int32
- 3: Int64
- 11: UInt16
- 12: UInt32
- 13: UInt64
- 21: Float
- 22: Double
- 30: Bool
- minValue (optioneel): indien er een minimum value is ingevuld wordt deze niet doorgestuurd als de uitgelezen waarde onder deze waarde zit.
- maxValue (optioneel): indien er een maximum value is ingevuld wordt deze niet doorgestuurd als de uitgelezen waarde boven deze waarde zit.
- firstBit (optioneel): wanneer u van een register één of meerdere bits wilt uitlezen, vult u hier de eerste bit in.
- lastBit (optioneel): wanneer u van een register één of meerdere bits wilt uitlezen, vult u hier de laatste bit in.
Je wilt bit X uitlezen: “0000 0X00”. In dit geval gebruik je “FirstBit”: 2 en “LastBit”: 2.
Je wilt bits XX uitlezen: “XX00 0000”. In dit geval gebruik je “FirstBit”: 6 en “LastBit”: 7.
Kies als datatype voor Int16 (1 in de gateway settings).
Voorbeeld van een SlaveSettings blok:
"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
.
Voorbeeld van een complete settings definitie
{
"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
}
]
}
}
]
}