Zum Hauptinhalt springen

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

ParameternameErforderlichDatentypsinnvoller WertebereichDefaultBeschreibung
versionJAINT1ModBus Protokollversion
typeJASTRING"modbus"Serielle Schnittstelle für Kommunikation
enableJABOOLtrueSchalter für Produktion der Daten in smartCHANNELs
pollCycleInMillisecondsJAINT1 -Abfrageintervall [ms] der ModBus Zugriffe
transportJAJSON ObjektKonfiguration der ModBus Transportschicht (siehe unten)
devicesJAJSON Array von JSON ObjektenListe der ModBus Teilnehmer

ModBus/TCP spezifische Transportparameter ("transport")

ParameternameErforderlichDatentypsinnvoller WertebereichDefaultBeschreibung
typeJASTRING"tcp"Auswahl ModBus/TCP
ipAddressJASTRINGGültige IP AdresseIP Adresse des ModBus Geräts
ipPortNumberJAINTGültige IP PortnummerIP Portnummer des ModBus Geräts (sollte, falls nicht anders spezifiziert, auf 502 eingestellt werden)
timeoutInMillisecondsJAINT1 -Timeout [ms] für TCP Verbindung (sollte, falls nicht anders spezifiziert, auf 200 eingestellt werden)

ModBus/RTU spezifische Transportparameter ("transport")

ParameternameErforderlichDatentypsinnvoller WertebereichDefaultBeschreibung
typeJASTRING"rtu"Auswahl ModBus/RTU
baudRateJAINTGültige ModBus BaudrateBaudrate der seriellen Schnittstelle
dataBitsJAINT5 - 8Datenbits der seriellen Schnittstelle
encodingJASTRING"rtu"Kodierung der ModBus Daten (es wird ausschließlich "rtu" unterstützt
parityJASTRING"no", "even", "odd"Parität der seriellen Schnittstelle
stopBitsJADOUBLE1.0, 1.5, 2.0Stoppbits der seriellen Schnittstelle
portNameJASTRINGGültiges Device FileGerätedatei der seriellen Schnittstelle
terminationResistorJABOOLtrue, falseSchalter für INTERNEN Abschlusswiderstand
timeoutInMillisecondsJAINT1 -Timeout [ms] für TCP Verbindung (sollte, falls nicht anders spezifiziert, auf 200 eingestellt werden)
deviceTimeoutInMillisecondsNeinINT0 -0Zusätzlicher Timeout [ms] zwischen den Abfragen unterschiedlicher ModBus Teilnehmer

ModBus Geräteparameter ("devices")

ParameternameErforderlichDatentypsinnvoller WertebereichDefaultBeschreibung
enableJABOOLtrueSchalter zur Aktivierung des ModBus Geräts
deviceNameJASTRINGName des ModBus Geräts
deviceAddressJAINT1 -Adresse des ModBus Geräts
readChannelsJAJSON Array von JSON Objektensiehe unten

ModBus Kanalkonfiguration ("readChannels")

ParameternameErforderlichDatentypsinnvoller WertebereichDefaultBeschreibung
nameJASTRINGName des smartCHANNELs
addressJAINTAdresse des ModBus Registers
registerTypeJASTRINGGültiger ModBus RegistertypTyp des ModBus Registers ("InputReg", "HoldingReg", "Coil", "Status", "0x17" (nur Lesezugriff))
registerFormatJASTRINGGültiges ModBus RegisterformatFormat des ModBus Registers ("I8","I16","I32","I64","UI8","UI16","UI32","UI64","REAL","BOOL")
byteOrderJASTRINGByteorder des ModBus Registers ("A" = MSB, "B" bzw. "D" = LSB)
bitOffsetJAUINTBitoffset des zu interpretierenden Werts
unitJASTRINGEinheit des smartCHANNELs
scaleJADOUBLESkalierung des smartCHANNELs
offsetJADOUBLEOffset 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

InformationWert
AutorenoptiMEAS Measurement and Automation Systems GmbH
seit smartCORE0.1
ModultypProducer
AbhängigkeitenKEINE