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

                    }

                ]

            }

        }

    ]

}

Geavanceerd Label toevoegen

    Gerelateerde Artikelen

Ondersteuning nodig?

Kunt u het antwoord dat u zoekt niet vinden? Maak je geen zorgen, we zijn hier om te helpen.

Vraag om hulp