Uitlezen modbus RS-485 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 slave id van de modbus slave die je wilt uitlezen.
  • type: om zelf te kiezen welke register je wilt uitlezen geef je hier “generic-rtu” in.
  • baudrate: de transmissiesnelheid uitgedrukt in bits per seconde. Stel hier dezelfde baudrate in als op de modbus slave.
  • bus: dit is de plek waar de RTU expansiekaart is ingestoken. Als deze op expansie 1 zit kies je voor 102. Als deze op expansie 2 zit kies je voor 101.
  • serialconfig: gebruik deze notatie om geavanceerde seriële communicatie-parameters in te stellen, zoals het aantal data-bits, stop-bits en parity-bits, en welk handshake protocol moet worden gebruikt.

    baudrate: de transmissiesnelheid uitgedrukt in bits per seconde.
    databits: het aantal gebruikte bits per karakter.

    Voor parity, stopbits en handshake gebruik je de volgende ENUM waardes:

    parity:
    • 0 (None): Geen pariteits-controle.
    • 1 (Odd): Het totaal aantal data-bits is steeds een oneven nummer.
    • 2 (Even): Het totaal aantal data-bits is steeds een even nummer.
    • 3 (Mark): De pariteits-bit is altijd 1.
    • 4 (Space): De pariteits-bit is altijd 0.

      stopbits:

    • 0 (One): Eén stop-bit wordt gebruikt.
    • 1 (OnePointFive): Eén-en-een-halve stop-bits worden gebruikt.
    • 2 (Two): Twee stop-bits worden gebruikt.

      handshake:

    • 0 (None): Geen handshake protocol wordt toegepast.
    • 1 (RequestToSend/ClearToSend): RTS/CTS flow-control.
    • 2 (XOn/XOff): Softwarematige flow-control.

Voorbeeld van een SlaveDefinitions blok:

    "slaveDefinitions": [

        {

            "name": "modbus.rtu",

            "slaves": [

                {

                    "address": 3,

                    "type": "generic-rtu",

                    "busdefinitiontype": 100,

                    "baudrate": 9600,

                    "bus": "101"

                },

                {

                    "address": 4,

                    "type": "generic-rtu",

                    "busdefinitiontype": 100,

                    "bus": "101",

                    "serialconfig": {

                        "baudrate": 19200,

                        "parity": 0,

                        "stopbits": 2,

                        "handshake": 0,

                        "databits": 8

                    }

                }

            ]

        }

    ]

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.rtu.mb_uart{bus_id}.{slave_id}

·         bus_id: het laatste cijfer van de bus die je in de SlaveDefinitions hebt genoteerd. Voor bus 101 is dat 1 en voor bus 102 is dat 2.

·         slave_id: het slave id dat je in SlaveDefinitions hebt genoteerd.

Bijvoorbeeld: modbus.rtu.mb_uart1.3 (Bus 101, dus gebruiken we 1. Slave id = 3).

Verder bepaal je in MeasurementPaths welke modbus registers je wilt uitlezen.

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 (type 1 in de gateway settings).

Voorbeeld van een SlaveSettings blok:

"slaveSettings": [

        {

            "name": "modbus.rtu.mb_uart1.3",

            "settings": {

                "measurementPaths": [

                    {

                        "measurementPath": "voltage.uv",

                        "functionCode": 4,

                        "startAddress": 0,

                        "dataType": 1,

                        "factor": 1,

                        "minValue": 0,

                        "maxValue": 500

                    }

                ]

            }

        },

        {

            "name": "modbus.rtu.mb_uart1.4",

            "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 SlaveSettings blok:

{

    "slaveDefinitions": [

        {

            "name": "modbus.rtu",

            "slaves": [

                {

                    "address": 3,

                    "type": "generic-rtu",

                    "busdefinitiontype": 100,

                    "baudrate": 9600,

                    "bus": "101"

                },

                {

                    "address": 4,

                    "type": "generic-rtu",

                    "busdefinitiontype": 100,

                    "baudrate": 9600,

                    "bus": "101"

                }

            ]

        }

    ],

    "slaveSettings": [

        {

            "name": "modbus.rtu.mb_uart1.3",

            "settings": {

                "measurementPaths": [

                    {

                        "measurementPath": "voltage.uv",

                        "functionCode": 4,

                        "startAddress": 0,

                        "dataType": 1,

                        "factor": 1,

                        "minValue": 0,

                        "maxValue": 500

                    }

                ]

            }

        },

        {

            "name": "modbus.rtu.mb_uart1.4",

            "settings": {

                "measurementPaths": [

                   {

                        "measurementPath": "alarm_1,

                        "functionCode": 3,

                        "startAddress": 1,

                        "dataType": 1,

                        "factor": 1,

                        "minValue": 0,

                        "maxValue": 1,

                        "firstBit": 7,

                        "lastBit": 7

                    }

                ]

            }

        }

    ]

}

Fortgeschritten Tag hinzufügen

    Verwandte Artikel

Brauchen Sie Unterstützung?

Sie können die Antwort, die Sie suchen, nicht finden? Machen Sie sich keine Sorgen, wir sind hier, um Ihnen zu helfen.

Bitten Sie um Hilfe