NEUHEIT! Ab sofort MQTT mit dem Timberwolf Server!
Verfügbar für alle Versionen mit der Insider Preview 5 zur Version 2.0. Infos: viewtopic.php?f=8&t=2846

[TIPP] MODBUS PROFIL: SunSpec Modbus Implementierung für PV-Wechselrichter (z.B. Solaredge,...)

Wissen, Planung & Diskussion zur Modbus Unterstützung im Timberwolf Server.
Stellt uns hier Eure Modbus Projekte und Ideen vor.

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

#41

Beitrag von StefanW »

Hallo Andi,

wir haben das intern besprochen und Matthias wird das noch kurz beschreiben. Die ">0,99" muss man allerdings schon nehmen.

lg

Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART der Elaborated Networks GmbH
Support nur über dieses Forum und in individuellen Fällen über support@wiregate.de.
Bitte KEINE PN Impressum und Datenschutzerklärung oben

ms20de
Elaborated Networks
Reactions:
Beiträge: 509
Registriert: Sa Aug 11, 2018 9:14 pm
Hat sich bedankt: 185 Mal
Danksagung erhalten: 281 Mal

#42

Beitrag von ms20de »

Hallo Andi,

wir haben gestern nochmal überlegt bezüglich des Filters und des Mathebausteins.

Du solltest bei Sendefilter im Modbus, bei dem Skalierungsfaktor die beiden Checkboxen von "nach Wertänderung" und "nach Zeitablauf" entfernen. Dann wird jede Abfrage des Faktor über Modbus an die Logik weitergeleitet. Da dies nur den Eingangswert aktualisert sollte es keine Auswirkungen auf die Performance haben, aber es liegt immer der richtige Faktor an dem Logikbaustein an.

Bei dem Wert der skaliert werden soll kannst du mit dem Sendefilter spielen, welche Filtereinstellungen die besten sind. Bei mir nur "nach Zeitablauf" könntest du den Wert zum Beispiel alle 5 Minuten senden. Aber auch die absolute oder relative Änderung sollte gehen.

Viele Grüße,
Matthias
Zuletzt geändert von ms20de am Mi Apr 21, 2021 11:14 am, insgesamt 2-mal geändert.
[ Timberwolf Entwicklung ]

TWS 2400 ID:102 VPN offen, Reboot auf Nachfrage

Ersteller
tger977
Reactions:
Beiträge: 579
Registriert: So Aug 12, 2018 9:25 am
Hat sich bedankt: 141 Mal
Danksagung erhalten: 206 Mal

#43

Beitrag von tger977 »

Hallo Matthias,

Vielen Dank für die Hinweise! Ich hatte vor Deinem post heute mittag heute morgen die Sendefilter am Scalefactor auf 0,99 gestellt, das hat wohl auch schon funktioniert, ich sehe das in den extra zu Testzwecken angelegten timeseries, daß danach keine Sprünge im phys. Wert entstanden sind, es waren aber auch nur einige wenige Umschaltungen.

Ich habe es nun auf Deine vorgeschlagene Konfig mit keinerlei Sendefilter am Scalefactor umgestellt und beobachte das heute abend bei den mehrfachen Umschaltungen einfach mal weiter. Meine Befürchtung war daß ich eben ohne die Sendefilter da irgendwas bzgl. performance verschlechtere aber das hast Du ja verneint, Danke dafür!
Gruß
Andi

TW2500 #440 (ex Timberwolf 2400 #111) mit PBM #124, VPN offen, Reboot bitte nur nach Absprache

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

#44

Beitrag von StefanW »

Hallo Andi,
tger977 hat geschrieben: Mi Apr 21, 2021 3:19 pmMeine Befürchtung war daß ich eben ohne die Sendefilter da irgendwas bzgl. performance verschlechtere aber das hast Du ja verneint, Danke dafür!
Die Performance des Dispatchers (also des Verteilers als das zentrale Modul des Timberwolf Servers) liegt bei mehr 10.000 Telegramme pro Sekunde (das kommt ein wenig auch darauf an, wieviele Verknüpfungen zu berücksichtigen sind und welche Konvertierungen jeweils anliegen).

Es dürfte auch mit dem Sendefilter von >0.99 funktionieren, aber den Scale einfach immer zu senden und den Wert dann wenn man diesen benötigt (und dann auch die Logik nur von letzterem Triggern lassen) dürfte dafür sorgen, dass stets der aktuelle Scale Faktor anliegt.

lg

Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART der Elaborated Networks GmbH
Support nur über dieses Forum und in individuellen Fällen über support@wiregate.de.
Bitte KEINE PN Impressum und Datenschutzerklärung oben

Ersteller
tger977
Reactions:
Beiträge: 579
Registriert: So Aug 12, 2018 9:25 am
Hat sich bedankt: 141 Mal
Danksagung erhalten: 206 Mal

#45

Beitrag von tger977 »

es funktioniert nun offensichtlich so wie es soll und ich habe schöne stetige Verläufe nun :handgestures-thumbupright:

wenn jemand noch Hilfe braucht gerne kurz melden, im Prinzip sind es aber die o.g. Screenshots, nur halt mit den geänderten Sendefiltern beim Scalefactor, der mir durch die Lappen ging :oops:
Gruß
Andi

TW2500 #440 (ex Timberwolf 2400 #111) mit PBM #124, VPN offen, Reboot bitte nur nach Absprache

Ersteller
tger977
Reactions:
Beiträge: 579
Registriert: So Aug 12, 2018 9:25 am
Hat sich bedankt: 141 Mal
Danksagung erhalten: 206 Mal

#46

Beitrag von tger977 »

hatte nun heute doch noch einmal ein spike drin in dem offensichtlich der Scalefactor (einmalig!) nicht passend / konsistent war.

Eine weitere Idee die mir noch kam: nicht die beiden 16Bit Register einzeln in einer Abfragegruppe abzufragen, sondern ggf. einfach eine einzige 32bit Abfrage über eben beide Register zu machen. Dann wäre in den ersten 16Bit der umzurechnende Wert drin und in den zweiten 16Bit der Scalefactor. Über den top Profileditor von Elabnet müsste man das dann ja auch wieder entsprechend zerlegen können um es dem Mathebaustein dann vorzulegen.

Quizfrage an die Modbusexperten von Elabnet: würde diese Idee helfen um noch sicherer konsistente Werte zu bekommen oder läuft das intern bei der Abfrage auf dasselbe heraus wie eine Exklusive Abfrage der beiden Einzelregister?
Gruß
Andi

TW2500 #440 (ex Timberwolf 2400 #111) mit PBM #124, VPN offen, Reboot bitte nur nach Absprache

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

#47

Beitrag von StefanW »

Hallo Andi,
tger977 hat geschrieben: Do Apr 22, 2021 7:56 pmhatte nun heute doch noch einmal ein spike drin in dem offensichtlich der Scalefactor (einmalig!) nicht passend / konsistent war.
Weil das Gerät vermutlich in den 100 ms den Scalefaktor wechselt. Konnten die nicht einfach einen 64 Bit Wert nehmen....

tger977 hat geschrieben: Do Apr 22, 2021 7:56 pmQuizfrage an die Modbusexperten von Elabnet: würde diese Idee helfen um noch sicherer konsistente Werte zu bekommen
Ja würde es. Aber..
tger977 hat geschrieben: Do Apr 22, 2021 7:56 pmoder läuft das intern bei der Abfrage auf dasselbe heraus wie eine Exklusive Abfrage der beiden Einzelregister?
Jein. Was noch nicht ausimplementiert ist (aber in der Datenbank Struktur vorgesehen) ist, dass man aus EINER ZUSAMMENHÄNGENDEN Registerabfrage zwei Objekte machen kann (wir nennen das Sub-Applikation). Gibt es noch nicht, weil wir wollten das Leistungsmerkmal nach drei Mannjahren der Programmierung in der vorliegenden Version ausrollen.

Für eine spätere Version ist geplant, dass man ganze Sets von Registern mit einem Befehl laden und dann in zig Objekte aufteilen kann.

Derzeit könnte man den 64 Bit Wert nehmen, diesen im ganzen als ein Integer an die Logikengine leiten und dort dann in die beiden Bestandteile zerlegen und dann berechnen.

lg

Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART der Elaborated Networks GmbH
Support nur über dieses Forum und in individuellen Fällen über support@wiregate.de.
Bitte KEINE PN Impressum und Datenschutzerklärung oben

Ersteller
tger977
Reactions:
Beiträge: 579
Registriert: So Aug 12, 2018 9:25 am
Hat sich bedankt: 141 Mal
Danksagung erhalten: 206 Mal

#48

Beitrag von tger977 »

StefanW hat geschrieben: Do Apr 22, 2021 8:06 pm Weil das Gerät vermutlich in den 100 ms den Scalefaktor wechselt. Konnten die nicht einfach einen 64 Bit Wert nehmen....
ja, das hab ich mir nun auch schon hundertmal gewünscht...
StefanW hat geschrieben: Do Apr 22, 2021 8:06 pm Für eine spätere Version ist geplant, dass man ganze Sets von Registern mit einem Befehl laden und dann in zig Objekte aufteilen kann.

Derzeit könnte man den 64 Bit Wert nehmen, diesen im ganzen als ein Integer an die Logikengine leiten und dort dann in die beiden Bestandteile zerlegen und dann berechnen.
ok, dann lass ich es erstmal so weiterlaufen wie es ist. Ist ja eher ein kosmetisches Problem, die Wallbox reagiert da zum Glück nicht drauf (da viel zu kurz). Wenn man da was geholt hätte über verfügbare einfache Mittel hätte ich das noch probiert, aber mit der Logikengine trau ich mir das selber Zerlegen irgendwie nicht zu...

Macht ihr lieber an der fasttrack MQTT Geschichte weiter ;)

Und danke für diese Expressantwort!
Gruß
Andi

TW2500 #440 (ex Timberwolf 2400 #111) mit PBM #124, VPN offen, Reboot bitte nur nach Absprache

Ersteller
tger977
Reactions:
Beiträge: 579
Registriert: So Aug 12, 2018 9:25 am
Hat sich bedankt: 141 Mal
Danksagung erhalten: 206 Mal

#49

Beitrag von tger977 »

Ok, ich hab mich jetzt doch entschieden per zus. Logikbausteinen "Begrenzer" und einem "Additionsbaustein" die starken Ausreißer "rauszufiltern". Das scheint nach kurzem testen sehr effektiv zu funktionieren und da muss ich echt sagen ist der Doktormodus im Logikeditor sehr sehr hilfreich!
Aber damit habe ich nun mittlerweile nur für die Aufbereitung der aktuellen Leistung eines Wechselrichter 3 (!) Logiken im Einsatz. Das multipliziert sich bei den 2 WR und es kommt für jedes weitere Signal nochmal mehr dazu. Das ist einfach dann sehr schnell sehr unübersichtlich. Und es war nun doch mit ein paar Stunden Aufwand verbunden damit das lief.

Danke liebe Sunspec Entwickler, es hätte auch einfachere Lösungen gegeben...
Gruß
Andi

TW2500 #440 (ex Timberwolf 2400 #111) mit PBM #124, VPN offen, Reboot bitte nur nach Absprache
Benutzeravatar

ztjuu
Reactions:
Beiträge: 38
Registriert: Sa Mär 07, 2020 8:49 am
Wohnort: Bleiberg-Nötsch (Kärnten)
Hat sich bedankt: 31 Mal
Danksagung erhalten: 32 Mal

#50

Beitrag von ztjuu »

Hallo Modbus in Verbindung mit PV-Wechselrichter Nutzer

Gestern habe ich mich mit meinem Fronius-Primo Wechselrichter und SunSpec auseinander gesetzt.

In diesem Beitrag wurde berichtet, dass sich die Adressen jeweils aus einem Integer und einem Skalierungsfaktor zusammensetzt. Bei meinem Fronius ist das nicht ganz so. Wichtig ist die Einstellung auf der Web-Schnittstelle im Fronius Wechselrichter. Hier kann man die Ausgabe über float (Standart) oder int+SF auswählen
Modbus.jpg
Bild ist aus der Anleitung "Fronius Datamanager Modbus TCP & RTU Version: 42,0410,2049 "

Mit dieser Einstellung ändern sich auch die Register. Bei der Einstellung float sind sehr viele Register direkt lesbar. Lediglich bei meinem Multitracker (zwei String Eingänge) sind die einzelnen DC Werte noch mit einem Skalierungsfaktor.

Werde mein Modbus Profil, wenn ich soweit fertig bin hier Downloaden.

Lg
Jürgen
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
TWS 950Q ID:424 VPN: aktiviert Reboot: (OK) Version: 2.0 Prev 5
EFH-Neubau: KNX, 1-Wire, DALI, VPN, CV & in Zukunft Multiroom Sound mit raspberry pi, Ekey-Zugang, ModBus TCP, MQTT
Antworten

Zurück zu „Modbus“