NEU! Insider Preview IP1 verfügbar - Jetzt mit OS-Updates & Grafana 9 (Speed-Upgrade & Neue Plugins)
Info im Wiki: https://elabnet.atlassian.net/l/cp/jDHx8XTt

------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--> BLACK WEEK - Bis 35% auf Timberwolf Server & Extensions <--
Info im Forum: viewtopic.php?f=86&t=3867

----------------------------------------------------------------------------------------------------------------------------------------------------------
Hauptversion 3.5.1 verfügbar - Jetzt mit HTTP-API und hunderten Verbesserungen
Info im Forum: viewtopic.php?f=8&t=3831

[Gelöst] V3.5.1: Modbus-Wort auf mehrere Booleans dekodieren

Wissen, Planung & Diskussion zur Modbus Unterstützung im Timberwolf Server.
Stellt uns hier Eure Modbus Projekte und Ideen vor.
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
Antworten

Ersteller
mclb
Reactions:
Beiträge: 90
Registriert: Mo Jan 07, 2019 9:27 pm
Wohnort: Sonnberg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

V3.5.1: Modbus-Wort auf mehrere Booleans dekodieren

#1

Beitrag von mclb »

Hallo zusammen,

ich arbeite gerade am Modbus-Profil meiner Wallbox (Schrack i-charge Semipublic), an sich ist das ja alles relativ einfach und schnell zusammengeklickt.
Allerdings habe ich jetzt ein Modbus-Register (1 Wort), bei dem in jedem Bit ein anderer Status geliefert wird, z.B. Kommunikationsfehler, Ladekabel angeschlossen, usw. Das würde ich nun gern auf einzelne Kommunikationsobjekte aufdröseln. Mein Ansatz wäre das einfach in einer Logik zu machen, oder gibt es da einen einfacheren/direkteren Weg?

Danke
Marcus
TWS 950Q ID:249 <VPN offen, Reboot nach Absprache erlaubt>

StefanW
Elaborated Networks
Reactions:
Beiträge: 7648
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Grafing
Hat sich bedankt: 3776 Mal
Danksagung erhalten: 5228 Mal
Kontaktdaten:

#2

Beitrag von StefanW »

Guten Morgen Marcus,
mclb hat geschrieben: Do Nov 24, 2022 8:26 amich arbeite gerade am Modbus-Profil meiner Wallbox (Schrack i-charge Semipublic), an sich ist das ja alles relativ einfach und schnell zusammengeklickt.
Jep. Wir haben es so einfach wie möglich gemacht. ich denke, es ist die beste und am einfachsten einzurichtende Modbus Implementierung am Markt.

mclb hat geschrieben: Do Nov 24, 2022 8:26 amAllerdings habe ich jetzt ein Modbus-Register (1 Wort), bei dem in jedem Bit ein anderer Status geliefert wird, z.B. Kommunikationsfehler, Ladekabel angeschlossen, usw.
Ja, das findet man häufig

mclb hat geschrieben: Do Nov 24, 2022 8:26 amDas würde ich nun gern auf einzelne Kommunikationsobjekte aufdröseln. Mein Ansatz wäre das einfach in einer Logik zu machen, oder gibt es da einen einfacheren/direkteren Weg?
Jep. Einfach Bitmaske aktivieren im Formatassistenten und das Register achtmal hintereinander anlegen, jeweils mit einem anderen maskierten Bit und schon hast Du acht, fertig vom Modbus Daemon dekodierte, vereinzelte Objekte.


Hinweis: Sowas geht auch mit anderen Bitmustern. E3DC kam auf die (wenig schlaue) Idee, zwei 8 Bit Integer Werte in ein 16 Bit Register zu quetschen (anstatt einfach ein anderes, der 65.536 im Standard verfügbaren 16-Bit Register zu nutzen). Mit anderen Modbus Implementierungen steht man da schnell am Schlauch.

Beim Timberwolf Server kannst nun zweimal das gleiche Register anlegen, im einen mit der Bitmaske die einen 8 Bit und im anderen die anderen 8 Bit maskieren und dann jeweils einuzeln zu Integer wandeln (was übrigens von 1 - 32 Bit mit Integer funktioniert). Das klappt auch über mehrere Register hinweg. Man könnte also zwei 16 Bit Register nehmen und vom einen drei Bit und vom anderen 5 Bit ausmaskieren und dann diese 8 Bit als Integer dekodieren lassen. Alles in einem Assistenten. Mit ein paar Klicks.


lg

Stefan
Zuletzt geändert von StefanW am Do Nov 24, 2022 10:12 am, insgesamt 6-mal geändert.
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART der Elaborated Networks GmbH
Bitte immer zuerst im WIKI / Handbuch lesen. Support nur über dieses Forum. Keine PN.
Link zu Impressum und Datenschutzerklärung oben

Ersteller
mclb
Reactions:
Beiträge: 90
Registriert: Mo Jan 07, 2019 9:27 pm
Wohnort: Sonnberg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

#3

Beitrag von mclb »

Hi Stefan,

danke für die rasche Antwort, das werde ich dann gleich mal versuchen, wenn ich heute Nachmittag daheim bin.

LG
Marcus
TWS 950Q ID:249 <VPN offen, Reboot nach Absprache erlaubt>

Ersteller
mclb
Reactions:
Beiträge: 90
Registriert: Mo Jan 07, 2019 9:27 pm
Wohnort: Sonnberg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

#4

Beitrag von mclb »

So, gerade heim gekommen und das gleich versucht ... ist wirklich extrem einfach! :-) Nur halt viel Klickerei, aber dafür könnt ihr ja nichts.

Danke für die tolle Umsetzung!
TWS 950Q ID:249 <VPN offen, Reboot nach Absprache erlaubt>

StefanW
Elaborated Networks
Reactions:
Beiträge: 7648
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Grafing
Hat sich bedankt: 3776 Mal
Danksagung erhalten: 5228 Mal
Kontaktdaten:

#5

Beitrag von StefanW »

Hi Marcus,

wunderbar. Ein Screenshot von dem Assistenten wäre schön, für alle anderen.

lg

Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART der Elaborated Networks GmbH
Bitte immer zuerst im WIKI / Handbuch lesen. Support nur über dieses Forum. Keine PN.
Link zu Impressum und Datenschutzerklärung oben

Ersteller
mclb
Reactions:
Beiträge: 90
Registriert: Mo Jan 07, 2019 9:27 pm
Wohnort: Sonnberg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

#6

Beitrag von mclb »

OK, also hier ein Screenshot, wie ich für das Register 700 das erste Bit herausfiltere.
Bild

Mittlerweile hab ich alle Register im Profil angelegt. Jetzt muss ich mal sehen, ob ich den Zähler auf denselben Bus legen kann, die auswählbaren Baudraten am Zähler enden bei 38400, die Wallbox ist auf 57600 eingestellt. Gerade nochmal den Kontakt beim Hersteller angeschrieben, auf welche Baudraten ich die Wallbox noch einstellen kann, ein beschreibbares Modbus-Register dazu gäbe es ja. Der Rest (also Stoppbits und Parität) sind gleich, das sollte dann also passen.
TWS 950Q ID:249 <VPN offen, Reboot nach Absprache erlaubt>
Antworten

Zurück zu „Modbus“