ModBus smartCORE Modul
Beschreibung
Das "modbus" Modul ließt primär die ModBus Register von ModBus Teilnehmern aus. Diese Teilnehmer können hierbei
- über eine serielle Verbindung (ModBus/RTU)
- über TCP (ModBus/TCP)
verbunden sein.
Verwendete Schnittstellen & Protokolle
- ModBus
JSON-Konfiguration
Im folgenden Abschnitt soll die gesamte JSON-Konfiguration des Moduls beschrieben und die einzelnen Parameter erläutert werden.
Beispielkonfiguration
Im Folgenden sei eine ModBus/TCP Beispielkonfiguration dargestellt:
{
"module": "ModBus",
"comment": "ModBus/TCP config",
"factory": "modbus",
"config": {
"version": 1,
"type": "modbus",
"enable": true,
"pollCycleInMilliseconds": 1000,
"transport": {
"type": "tcp",
"ipAddress": "192.168.0.1",
"ipPortNumber": 502,
"timeoutInMilliseconds": 200
},
"devices": [
{
"enable": true,
"deviceName": "Device Name",
"deviceAddress": 1,
"readChannels": [
{
"name": "Channel Name",
"address": 49152,
"registerType": "HoldingReg",
"registerFormat": "REAL",
"byteOrder": "ABCD",
"bitOffset": 0,
"unit": "",
"scale": 1.0,
"offset": 0.0
}
]
}
]
}
}
Globale Modulparameter
Parametername | Erforderlich | Datentyp | sinnvoller Wertebereich | Default | Beschreibung |
---|---|---|---|---|---|
version | JA | INT | 1 | ModBus Protokollversion | |
type | JA | STRING | "modbus" | Serielle Schnittstelle für Kommunikation | |
enable | JA | BOOL | true | Schalter für Produktion der Daten in smartCHANNELs | |
pollCycleInMilliseconds | JA | INT | 1 - | Abfrageintervall [ms] der ModBus Zugriffe | |
transport | JA | JSON Objekt | Konfiguration der ModBus Transportschicht (siehe unten) | ||
devices | JA | JSON Array von JSON Objekten | Liste der ModBus Teilnehmer |
ModBus/TCP spezifische Transportparameter ("transport")
Parametername | Erforderlich | Datentyp | sinnvoller Wertebereich | Default | Beschreibung |
---|---|---|---|---|---|
type | JA | STRING | "tcp" | Auswahl ModBus/TCP | |
ipAddress | JA | STRING | Gültige IP Adresse | IP Adresse des ModBus Geräts | |
ipPortNumber | JA | INT | Gültige IP Portnummer | IP Portnummer des ModBus Geräts (sollte, falls nicht anders spezifiziert, auf 502 eingestellt werden) | |
timeoutInMilliseconds | JA | INT | 1 - | Timeout [ms] für TCP Verbindung (sollte, falls nicht anders spezifiziert, auf 200 eingestellt werden) |
ModBus/RTU spezifische Transportparameter ("transport")
Parametername | Erforderlich | Datentyp | sinnvoller Wertebereich | Default | Beschreibung |
---|---|---|---|---|---|
type | JA | STRING | "rtu" | Auswahl ModBus/RTU | |
baudRate | JA | INT | Gültige ModBus Baudrate | Baudrate der seriellen Schnittstelle | |
dataBits | JA | INT | 5 - 8 | Datenbits der seriellen Schnittstelle | |
encoding | JA | STRING | "rtu" | Kodierung der ModBus Daten (es wird ausschließlich "rtu" unterstützt | |
parity | JA | STRING | "no", "even", "odd" | Parität der seriellen Schnittstelle | |
stopBits | JA | DOUBLE | 1.0, 1.5, 2.0 | Stoppbits der seriellen Schnittstelle | |
portName | JA | STRING | Gültiges Device File | Gerätedatei der seriellen Schnittstelle | |
terminationResistor | JA | BOOL | true, false | Schalter für INTERNEN Abschlusswiderstand | |
timeoutInMilliseconds | JA | INT | 1 - | Timeout [ms] für TCP Verbindung (sollte, falls nicht anders spezifiziert, auf 200 eingestellt werden) | |
deviceTimeoutInMilliseconds | Nein | INT | 0 - | 0 | Zusätzlicher Timeout [ms] zwischen den Abfragen unterschiedlicher ModBus Teilnehmer |
ModBus Geräteparameter ("devices")
Parametername | Erforderlich | Datentyp | sinnvoller Wertebereich | Default | Beschreibung |
---|---|---|---|---|---|
enable | JA | BOOL | true | Schalter zur Aktivierung des ModBus Geräts | |
deviceName | JA | STRING | Name des ModBus Geräts | ||
deviceAddress | JA | INT | 1 - | Adresse des ModBus Geräts | |
readChannels | JA | JSON Array von JSON Objekten | siehe unten |
ModBus Kanalkonfiguration ("readChannels")
Parametername | Erforderlich | Datentyp | sinnvoller Wertebereich | Default | Beschreibung |
---|---|---|---|---|---|
name | JA | STRING | Name des smartCHANNELs | ||
address | JA | INT | Adresse des ModBus Registers | ||
registerType | JA | STRING | Gültiger ModBus Registertyp | Typ des ModBus Registers ("InputReg", "HoldingReg", "Coil", "Status", "0x17" (nur Lesezugriff)) | |
registerFormat | JA | STRING | Gültiges ModBus Registerformat | Format des ModBus Registers ("I8","I16","I32","I64","UI8","UI16","UI32","UI64","REAL","BOOL") | |
byteOrder | JA | STRING | Byteorder des ModBus Registers ("A" = MSB, "B" bzw. "D" = LSB) | ||
bitOffset | JA | UINT | Bitoffset des zu interpretierenden Werts | ||
unit | JA | STRING | Einheit des smartCHANNELs | ||
scale | JA | DOUBLE | Skalierung des smartCHANNELs | ||
offset | JA | DOUBLE | Offset des smartCHANNELs |
ModBus Kanalkonfiguration ("readChannelGroups")
Alternativ können mehrere Kanalkonfigurationen zu einem JSON Array zusammengefasst werden, so dass die dieser Gruppe zugrundeliegenden ModBus Register in einem einzigen Schritt ausgelesen werden können (falls der Register Typ identisch ist). Dieses so zusammengefasste readChannelGroup Array kann dann in dem JSON Array der "readChannelGroups" aufgelistet werden, z.B.
"readChannelGroups": [
[
{
"name": "Channel 1",
"address": 49152,
"registerType": "HoldingReg",
"registerFormat": "REAL",
"byteOrder": "ABCD",
"bitOffset": 0,
"unit": "",
"scale": 1.0,
"offset": 0.0
},
{
"name": "Channel 2",
"address": 49158,
"registerType": "HoldingReg",
"registerFormat": "REAL",
"byteOrder": "ABCD",
"bitOffset": 0,
"unit": "",
"scale": 1.0,
"offset": 0.0
}
]
]
Es können alternativ "readChannels" bzw. "readChannelGroups" spezifiziert werden.
Modul-Informationen
Information | Wert |
---|---|
Autoren | optiMEAS Measurement and Automation Systems GmbH |
seit smartCORE | 0.1 |
Modultyp | Producer |
Abhängigkeiten | KEINE |