Lecture modbus TCP/IP 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 »

"192.168.2.11"

L’adresse IP de l’esclave modbus.

« Port »

502

Le numéro de port de l’esclave modbus.

« slaveid »

1

L’identifiant esclave de l’esclave modbus.

« type »

« generic-TCP »

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

Exemple d’un bloc slaveDefinitions

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

EsclaveParamè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.tcp. {ip_address}__{port}. {slave_id}

  • ip_address : l’adresse IP de l’esclave. Utilisez un underline (« _ ») au lieu d’un point (« . »).

  • Port : Ceci est la norme 502 pour Modbus.

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

Par exemple : modbus.tcp.192_168_2_11__502.1 → adresse IP = 192.168.2.11, Port = 502, ID esclave = 1.

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 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.

Exemple de bloc slaveSettings

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

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

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