Liebe Alle,
der GIRA Homeserver (4.11) spricht leider kein Modbus TCP. Man kann sich nun schön die Finger brechen, und die Anfragen selbst via TCP binär fummeln und danach überlegen, wie man die Byte-Reihenfolge (Endianess) anpasst. Spaß macht das nicht.
Ich hab wegen der ganzen PV-Wechselrichter und Wallboxen mal einen abstrakten Lese-Baustein gehackt. Ist noch nicht fertig, aber wer freiwillig testen möchte .. Freue mich über euer Feedback!
Man gibt die IP, Port und ggf. unit-ID des Modbus Servers an und danach für jedes Register in dezimaler Schreibweise. Unterstützte Datentypen:
Für String/Text muss die Lese-Länge der Register angegeben werden. Gleicher Eingang ist für numeriche Werte auch direkt ein Multiplikator für Umrechnungen am Ausgang!
Ausgabe ist für alle numerischen Typen über die numerischen Ausgänge. Die String/Text-Ausgänge erhalten auch die numerischen Werte als String. Wird ein String abgefragt, so ist dieser nur auf dem String-Ausgang.
Der Baustein baut eine Verbindung via TCP auf und hält diese wenn möglich. Er fragt aber alle Werte einzeln ab, so dass zw. den Reads sich die anderen Werte auch wieder geändert haben können. Bei Problemen kann KeepAlive deaktiviert werden (z.B. IP-Limits)
Download im Download-Bereich!
Freue mich über Geschenke von meiner Amazon Wishlist: https://www.amazon.de/hz/wishlist/ls/22KJ1D22XROTQ
der GIRA Homeserver (4.11) spricht leider kein Modbus TCP. Man kann sich nun schön die Finger brechen, und die Anfragen selbst via TCP binär fummeln und danach überlegen, wie man die Byte-Reihenfolge (Endianess) anpasst. Spaß macht das nicht.
Ich hab wegen der ganzen PV-Wechselrichter und Wallboxen mal einen abstrakten Lese-Baustein gehackt. Ist noch nicht fertig, aber wer freiwillig testen möchte .. Freue mich über euer Feedback!
Man gibt die IP, Port und ggf. unit-ID des Modbus Servers an und danach für jedes Register in dezimaler Schreibweise. Unterstützte Datentypen:
Typ | Beschreibung |
int8 | Signed Int - Fragt 1 Register ab -- DPT 6.x |
uint8 | Unsigned Int - Fragt 1 Register ab -- DPT 5.x |
int16 | Signed Int - Fragt 1 Register ab -- DPT 8.x |
uint16 | Unsigned Int - Fragt 1 Register ab -- DPT 7.x |
int32 | Signed Int - Fragt 2 Register ab -- DPT 13.x |
uint32 | Unsigned Int - Fragt 2 Register ab -- DPT 12.x |
int64 | Signed Int - Fragt 4 Register ab -- DPT 13.x |
uint64 | Unsigned Int - Fragt 1 Register ab -- DPT 12.x |
float32 | Float - Fragt 2 Register ab -- DPT 9.x oder 14.x, je nach Länge |
float64 | Float - Fragt 4 Register ab -- DPT 14.x |
string | ASCII - String-Länge angeben! -- 14byte Text |
Ausgabe ist für alle numerischen Typen über die numerischen Ausgänge. Die String/Text-Ausgänge erhalten auch die numerischen Werte als String. Wird ein String abgefragt, so ist dieser nur auf dem String-Ausgang.
Der Baustein baut eine Verbindung via TCP auf und hält diese wenn möglich. Er fragt aber alle Werte einzeln ab, so dass zw. den Reads sich die anderen Werte auch wieder geändert haben können. Bei Problemen kann KeepAlive deaktiviert werden (z.B. IP-Limits)
Download im Download-Bereich!
Freue mich über Geschenke von meiner Amazon Wishlist: https://www.amazon.de/hz/wishlist/ls/22KJ1D22XROTQ
Kommentar