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

                    }

                ]

            }

        }

    ]

}

    Articles Connexes

Besoin d'aide?

Vous ne trouvez pas la réponse que vous cherchez ? Ne vous inquiétez pas, nous sommes là pour vous aider.

Demander de l'aide