ModBus TCP Interface
Verfasst: 04.01.2020, 17:39
ModBus TCP Interface
Ich habe ein allgemein gültiges ModBus TCP Interface erstellt.
Damit lassen sich alle ModBus Geräte im Netzwerk auslesen und steuern.
Aufruf mit Script.
Beispiel:
system.Exec("tclsh /usr/local/addons/modbus/modbus_interface.tcl 192.168.010.100 502 255 03 528 1",&lGetOut,&lGetErr);
Syntax:
Lesen : modbus_interface.tcl IP-Adresse Port DeviceNummer Funktion Register Länge
Schreiben : modbus_interface.tcl IP-Adresse Port DeviceNummer Funktion Register Wert
Port : normalerweise 502
DeviceNummer : Beispiel Wallbe 255 , Solaredge 1
Funktion :
01 read coils
02 read discrete inputs
03 read holding registers
04 read input registers
05 write single coils
06 write single register
15 write multible coils
16 write multible registers
Register, Länge und Wert : siehe Dokumentation des ModBus-Geräts
Source Code : Alles unter /usr/local/addons/modbus in der CCU abspeichern.
Den beiden Scripten ggf. Ausführungsrechte zuweisen.
Achtung! Bitte mit äusserster Vorsicht ausprobieren!!!!!!
Falsche Werte im Modus Write können
1. Orginale Werte überschreiben. Die sind dann unwiederruflich weg.
2. Können falsche Werte das Gerät oder weitere angeschlossene Devices beschädigen oder zerstören.
Daher zuerst alle Werte die verändert werden sollen sichern. (Auslesen und abspeichern!)
Ich übernehme keine Gewährleistung für etwaige Schäden.
Freue mich aber über Kritik, Anregungen oder Verbesserungen.
Steuere damit eine LadeBox Typ WallBe Pro für ein E-Auto via Smartphone
Ladeleistung, Timer, Ladung An/aus und Status.
Werde die Ladeleistung des Autos nun mit der aus meinen Wechselrichter SolarEdge SEK7
ausgelesenen Solarleistung syncronisieren.
Dank an Andrey-Nakin für die großartige Vorarbeit. Musste nur Kleinigkeiten anpassen. Siehe MIT License.
Ich habe ein allgemein gültiges ModBus TCP Interface erstellt.
Damit lassen sich alle ModBus Geräte im Netzwerk auslesen und steuern.
Aufruf mit Script.
Beispiel:
system.Exec("tclsh /usr/local/addons/modbus/modbus_interface.tcl 192.168.010.100 502 255 03 528 1",&lGetOut,&lGetErr);
Syntax:
Lesen : modbus_interface.tcl IP-Adresse Port DeviceNummer Funktion Register Länge
Schreiben : modbus_interface.tcl IP-Adresse Port DeviceNummer Funktion Register Wert
Port : normalerweise 502
DeviceNummer : Beispiel Wallbe 255 , Solaredge 1
Funktion :
01 read coils
02 read discrete inputs
03 read holding registers
04 read input registers
05 write single coils
06 write single register
15 write multible coils
16 write multible registers
Register, Länge und Wert : siehe Dokumentation des ModBus-Geräts
Source Code : Alles unter /usr/local/addons/modbus in der CCU abspeichern.
Den beiden Scripten ggf. Ausführungsrechte zuweisen.
Achtung! Bitte mit äusserster Vorsicht ausprobieren!!!!!!
Falsche Werte im Modus Write können
1. Orginale Werte überschreiben. Die sind dann unwiederruflich weg.
2. Können falsche Werte das Gerät oder weitere angeschlossene Devices beschädigen oder zerstören.
Daher zuerst alle Werte die verändert werden sollen sichern. (Auslesen und abspeichern!)
Ich übernehme keine Gewährleistung für etwaige Schäden.
Freue mich aber über Kritik, Anregungen oder Verbesserungen.
Steuere damit eine LadeBox Typ WallBe Pro für ein E-Auto via Smartphone
Ladeleistung, Timer, Ladung An/aus und Status.
Werde die Ladeleistung des Autos nun mit der aus meinen Wechselrichter SolarEdge SEK7
ausgelesenen Solarleistung syncronisieren.
Dank an Andrey-Nakin für die großartige Vorarbeit. Musste nur Kleinigkeiten anpassen. Siehe MIT License.