NEU! UPGRADE IP 11 verfügbar!
NEU! LICHTWIDGET - DPT 7.600 - Logik Manager Update - sowie viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/B9MUEJj2

Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Ab sofort kann jeder die neue VISU & IFTTT testen. Info: viewtopic.php?f=8&t=5074

Release V 4 am 15. Juni 2024
Es gibt nun einen fixen Termin. Info: viewtopic.php?f=8&t=5117

NEU! Ausführliches Video Tutorial zur VISU
Jetzt werden alle Fragen beantwortet. Das Video: https://youtu.be/_El-zaC2Rrs

[Frage] [V4.0 IP2] ModBus-Profil für E3DC S10X

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
Jürgen
Reactions:
Beiträge: 78
Registriert: Fr Dez 21, 2018 11:51 pm
Hat sich bedankt: 10 Mal
Danksagung erhalten: 39 Mal

[V4.0 IP2] ModBus-Profil für E3DC S10X

#1

Beitrag von Jürgen »

Hallo zusammen,

nach langem Warten habe ich meinen E3DC S10X geliefert bekommen und dieser wurde in Betrieb genommen.
Nun bekommt mein Timberwolf eine weitere Aufgabe, über ModBus TCP die Daten aus dem E3/DC auszulesen.

Ich habe dafür erstmal mit dem Profil von jockele gestartet, die Verbindung hat damit sofort und einfach funktioniert. Da meine Anlage aber größer ist und ich auch die Daten von dem Zusatzwechselrichter auslesen möchte, musste ich hier tiefer einsteigen und dafür ein eigenes Profil erstellen, welches ich später gerne hier teilen möchte.

E3DC hat Ende Juli eine neue Version der ModBus-Schnittstelle herausgebracht, es ist nun die Version 2.20.
Mir liegt leider nur die Dokumentation zu einer älteren Version vor, aber es haben sich einige Änderungen ergeben sowie die Menge der Daten, die Abgerufen werden können wurde nach meinem Vergleich deutlich erweitert.

Das Profil habe ich soweit schon gut fertig gestellt und getestet, aber ich habe ein Problem mit den Datenwerten zu den Registern mit Int32 und Länge 2.
Hier hat sich E3DC etwas ausgedacht, wie Werte mit dem Int32 zu berechenen sind.
Da ich nicht weiß, ob ich die Anleitung als Anhang hier hochladen darf, da ich diese nur aus dem geschützten Kundenportal habe, hier der Entsprechende Ausschnitt dazu:
4.2 Modbus Int32 Register mit Länge 2
• Jedes Register kann mit unterschiedlichen Daten gefüllt werden. Es ist erforderlich, den
entsprechenden Datentyp einzustellen.
• Ein Register kann zu klein sein:
– Dann wird die Länge auf zwei gesetzt.
Aus zwei Registern (uint16) wird also ein Wert (uint32).
– Die Information wird aber in 2 Registern übertragen.
• I. d. R. werden in der Modbus-Software die Register einfach als (uint32) abgefragt. Sollte diese
Umrechnung nicht per Software möglich sein muss die Berechnung manuell erfolgen.
Beispielrechnung:
Netzbezug = 400 Watt
40074(+/-Offset) = 400 (uint16)
40075(+/-Offset) = 0 (uint16)
[Register 40075] < 32768 è Netzbezug
Netzbezug = [Register 40075] * 65536 + [Register 40074]
= 0 * 65536 + 400 = 400
Netzeinspeisung = 0
Netzeinspeisung = 600 Watt
40074(+/-Offset) = 65535 (uint16)
40075(+/-Offset) = 64936 (uint16)
[Register 40075] >= 32768 è Netzeinspeisung
Netzbezug = 0
Netzeinspeisung = 4294967296 - [Register 40075] * 65536 - [Register 40074]
= 4294967296 – 65535 * 65536 – 64936 = 600
Netzleistung (mit positiven oder negativen Werten)
Netzleistung = Netzbezug - Netzeinspeisung
Mit dieser Art, die Werte bei Int32 im ModBus zu dekodieren sind, weiß ich nichts anzufangen.
Wenn ich den wert mit 16 Bit auslese (wie auch im Profil von jockele), stimmt er mit den Wert aus der Web-Schnittstelle überein, aber nur, so lange die Länge in dem Feld ausreicht.
Sobald die Leistung (es betrifft bei mir immer nur die Leistungsangaben) ansteigt, ist der Wert bei 16 Bit nicht vollständig und bei 32 Bit komplett falsch.

Wie kann ich das von E3DC vorgegebene Format uint32 in in den Profileinstellungen des Timberwolf einstellen?
Ich habe bei ModBus keine Möglichkeit dazu gefunden oder habe ich diese nur übersehen?

Oder gibt es eine andere Möglichkeit?
Die letzte Alternative die mir einfallen würde wäre, beide Register einzeln zu importieren und dann im Logik-Editor zu berechnen. Aber dann ist der Vorteil, das Profil für die Community zur Verfügung stellen zu können, deutlich eingeschränkt und es wäre eine lange Anleitung dazu nötig.

Viele Grüße
Jürgen
Timberwolf 2600 #177
Timberwolf 3500 L #1356
VPN ist offen, Zugriff erlaubt, reboot nach Absprache

StefanW
Elaborated Networks
Reactions:
Beiträge: 9775
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 4879 Mal
Danksagung erhalten: 7820 Mal
Kontaktdaten:

#2

Beitrag von StefanW »

Hi Jürgen,

selbstverständlich kann man UInt32 einstellen?

Eine Bedienungsanleitung von E3DC solltest Du hier hochladen dürfen, weil im Allgemeinen für Bedienungsanleitungen kein Urheberrechtsschuz gilt (nicht schutzwürdig, sofern nicht ganz besonders gestaltet).

lg

Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.

Ersteller
Jürgen
Reactions:
Beiträge: 78
Registriert: Fr Dez 21, 2018 11:51 pm
Hat sich bedankt: 10 Mal
Danksagung erhalten: 39 Mal

#3

Beitrag von Jürgen »

Hallo Stefan,

danke für die Aussage zu der Anleitung. Diese werde ich in den nächsten Tagen hochladen, gemeinsam mit dem Profil.

Ja, der Timberwolf kann diesen Wert richtig lesen.
Ich habe noch eine ganze Zeit mit den Dekodierungs-Einstellungen herumexperimentiert. Schließlich hat es mit einer Kombination aus Reihenfolge und Format funktioniert, sofern es meine bisherigen Tests ergeben haben.
ich schreibe nun die Werte noch einige Zeit in eine Zeitreihe und wenn dann alles funktioniert, ist das Profil fertig.

Viele Grüße
Jürgen
Timberwolf 2600 #177
Timberwolf 3500 L #1356
VPN ist offen, Zugriff erlaubt, reboot nach Absprache

StefanW
Elaborated Networks
Reactions:
Beiträge: 9775
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 4879 Mal
Danksagung erhalten: 7820 Mal
Kontaktdaten:

#4

Beitrag von StefanW »

Hi Jürgen,

das Problem bei Modbus ist, dass die Werte i.d.R rein Binär kodiert sind und es JEDER ANDERS macht.

Gerade E3DC hat da so manche Böcke geschossen, wie zwei verschiedene 8 Bit Werte in einem 16-Bit Register unterzubringen (als wenn es nicht 256.000 Register gäbe). :angry-banghead: :angry-argument: :confusion-helpsos: Überhaupt wegen E3DC haben wir die Bitmaske im Modbus Assistenten "erfunden".

Alle gängigen und auch denkbaren Varianten einstellen zu können, hat uns sehr viel Arbeit gemacht, der Assistent verdeckt den Aufwand dahinter. Wir haben mal die Anzahl der Iterationen versucht mit Excel zu berechnen und das war nicht möglich, weil irgendwas um 5120^64 herauskommt. Es ist einfach Crazy.

Ob Werte vertauscht sind oder nicht, also BigEndian oder LittleEndian (benannt nach der Art wie die Lilliputs in Gullivers Reisen ihre Eier aufschlagen, woraus dann ein Bürgerkrieg resultierte), liegt u.a. an der Prozessorarchitektur im Modbus Server (also dem "Slave") und das kennt man als Nutzer von außen nicht, daher sollte das deutlich in der Bedienungsanleitung stehen.


lg

Stefan
Zuletzt geändert von StefanW am Mo Aug 07, 2023 5:45 pm, insgesamt 1-mal geändert.
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.
Antworten

Zurück zu „Modbus“