Lecture du modbus RS-485 dans les réglages C07W

Prev Next

Comprendre les réglages

Les paramètres sont toujours traités par le système au format JSON, avant d’être envoyés à la passerelle, et sont divisés en deux parties :

slaveDéfinitions

Dans slaveDefinitions, c’est vous qui décidez de ce que vous allez lire. Il existe plusieurs réglages pour chaque esclave :

Terrain

Valeur (comme par exemple)

Description

« adresse »

3

L’identifiant esclave de l’esclave modbus.

« type »

« Generic-RTU »

Pour choisir le registre que vous souhaitez lire, spécifiez generic-rtu.

« Baudrate »

9600

Le débit de transmission en bits par seconde. Réglez le même débit de bauds ici que sur l’esclave modbus.

« bus »

101

Le buisson d’expansion où la carte d’extension de l’UTR est insérée :

  • 101 : bus d’extension 2.

  • 102 : bus d’extension 1.

« serialConfig »

{

   « Baudrate » : 19200,

   « parité » : 0,

   « stopbits » : 2,

   « poignée de main » : 0,

   « databits » : 8

}

Utilisez cette notation pour définir des paramètres avancés de communication série, tels que le nombre de bits de données, les bits d’arrêt et de parité, ainsi que le protocole de poignée de main.

« databits »

8

Le nombre de bits utilisés pour la transmission de données par caractère.

« Parité »

0

Le type de test de parité que vous souhaitez :

  • 0 (Aucun) : aucun test de parité.

  • 1 (Impair) : le nombre total de bits de données est toujours un nombre impair.

  • 2 (pair) : le nombre total de bits de données est toujours un nombre pair.

  • 3 (Marque) : le bit de parité est toujours 1.

  • 4 (Espace) : le bit de parité est toujours 0.

« stopbits »

2

Le nombre de bits d’arrêt par caractère :

  • 0 (Un) : un bit d’arrêt.

  • 1 (OnePointFive) : des bits d’un arrêt et demi.

  • 2 (Deux) : deux bits d’arrêt.

« poignée de main »

0

Type de contrôle de la transmission :

  • 0 (Aucun) : pas de protocole de poignée de main.

  • 1 (RequestToSend/CleartoSend) : Contrôle de flux RTS/CTS.

  • 2 (XOn/XOff) : contrôle de flux basé sur logiciel.

Exemple d’un bloc slaveDefinitions

"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
                }
            }
        ]
    }
]

slaveParamètres

Pour chaque esclave que vous avez défini dans slaveDefinitions, vous pouvez déterminer dans slaveSettings quels registres vous souhaitez réellement lire. Tout d’abord, vous commencez par déterminer le nom, toujours dans le format suivant :

modbus.rtu.mb_uart{bus_id}. {slave_id}

  • bus_id : le dernier chiffre du bus que vous avez écrit dans slaveDefinitions. Pour le bus 101, c’est 1 et pour le bus 102 c’est 2.

  • slave_id : l’identifiant esclave que vous avez spécifié dans slaveDefinitions.

Par exemple : modbus.rtu.mb_uart1,3 → Bus 101 = 1, ID d’esclave = 3.

De plus, dans measurementPaths, vous déterminez quels registres modbus vous souhaitez lire.

Terrain

Valeur (comme par exemple)

Description

« MeasurementPath »

« voltage.uv »

Le nom du chemin sur lequel les données sont placées.

« functionCode »

4

Type de registre à lire :

  • 1 : Statut de lecture de la bobine

  • 2 : Statut de lecture de l’entrée

  • 3 : Lire le registre de conservation

  • 4 : Registre d’entrée de lecture

« startAddress »

0

L’adresse du modbus que vous souhaitez lire.

« DataType »

1

Type de données à lire :

  • 1 : Int16

  • 2 : Int32

  • 3 : Int64

  • 11 : UInt16

  • 12 : UInt32

  • 13 : UInt64

  • 21 : Flotte

  • 22 : Double

  • 30 : Bool

« facteur »

1

Cela détermine la factorisation de la valeur de lecture.

  • Facteur : 1 → valeur * 1 → renvoie la valeur inchangée.

  • Facteur : 0,1 → valeur * 0,1 → divise la valeur par 10.

  • Facteur : 10 → valeur * 10 → multiplie la valeur par 10.

« minValue » (Optionnel)

0

Si une valeur minimale a été saisie, elle ne sera pas transmise si la mesure est inférieure à cette valeur.

« maxValue » (Optionnel)

500

Si une valeur maximale a été saisie, elle ne sera pas transmise si la mesure est supérieure à cette valeur.

« firstBit » (optionnel)

7

Si vous souhaitez lire un ou plusieurs bits d’un registre, entrez le premier bit ici. Choisissez Int16 comme type de données (type 1 dans les paramètres de la passerelle).

  • Vous voulez lire le bit X : « 0000 0X00 » → « FirstBit » : 2 et « LastBit » : 2.

  • Vous voulez lire les bits XX : « XX00 0000 » → « FirstBit » : 6 et « LastBit » : 7.

« lastBit » (optionnel)

7

Si vous souhaitez lire un ou plusieurs bits d’un registre, entrez le dernier bit ici. Choisissez Int16 comme type de données (type 1 dans les paramètres de la passerelle).

  • Vous voulez lire le bit X : « 0000 0X00 » → « FirstBit » : 2 et « LastBit » : 2.

  • Vous voulez lire les bits XX : « XX00 0000 » → « FirstBit » : 6 et « LastBit » : 7.

Exemple de bloc slaveSettings

"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
                }
            ]
        }
    }
]

Exemple de définition complète des paramètres

{
    "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
                    }
                ]
            }
        }
    ]
}