Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Bei meinem Fronius gehts jetzt auch, mit einer kleinen Modifikation am LBS.
Das Array mit dem Rückgabewert von $modbus->readMultipleRegisters muss "gedreht" werden:
Hallo, da im SunSpec LBS Thread sich niemand meldet, probiere ich es hier beim Modbus nochmal:
Der Baustein macht eigentlich genau, was er soll, jedoch müllt er mir den Fehler-Log voll:
Habe die modbus phps aus dem Helios LBS benutzt.
Hier die Logik:
ich verwende den LBS um eien sdm230 eastron Stromleser auszulesen und erhalte folgende Fehler im system-log und lbs-log:
2019-11-19 09:31:21
676342
?
7293
Datei: /usr/local/edomi/main/include/php/ModbusMaster.php | Fehlercode: 8192 | Zeile: 38 | Methods with the same name as their class will not be constructors in a future version of PHP; ModbusMaster has a deprecated constructor
ERROR
2019-11-19 09:31:21
771456
?
7293
Datei: /usr/local/edomi/main/include/php/PhpType.php | Fehlercode: 0 | Zeile: 205 | The input data should be an array of 2 or 4 bytes.
2019-11-19 09:32:17
303661
7396
notice
EXE19001030 [v0.5]: File: /usr/local/edomi/main/include/php/IecType.php | Error: 8192 | Line: 52 | Non-static method IecType::iecBYTE() should not be called statically
2019-11-19 09:32:17
305454
7396
notice
EXE19001030 [v0.5]: File: /usr/local/edomi/main/include/php/ModbusMaster.php | Error: 8192 | Line: 487 | Non-static method IecType::iecBYTE() should not be called statically
und kann auch leider keine Werte auslesen.
Mein Setup:
Centos 7, Edomi 2.0
Raspberry mit usb-modbus - verbunden zum sdm230.
Raspberry ist als Modbus-Master eingerichtet: https://github.com/3cky/mbusd
abfragen funktionieren wenn ich z.bsp von einem windows host mit verschiedenen programmen abfrage....
Bei meinem Fronius gehts jetzt auch, mit einer kleinen Modifikation am LBS.
Das Array mit dem Rückgabewert von $modbus->readMultipleRegisters muss "gedreht" werden:
Kurze Rückmeldung,
habe es hinbekommen. Habe zu kompliziert gedacht. Endianess muss nicht gedreht werden (also v4=0). Nur den Port "hart" im LBS auf 1502 setzten und die richtigen Typen wählen.
Bekomme jetzt alle Daten aus dem Plenticore. Muss diese jetzt nur noch sinnvoll weiterverarbeiten und in die Visu einbinden...
Die Sunspec unterstütz der Plenticore wohl auch. Damit könnte ich mich als nächstes beschäftigen wenn ich nicht über die Kostal Beschreibung an die Daten komme. Muss mir aber noch die Beschreibungen der einzelnen Layer zu Gemüte führen...
Ist ein guter Hinweis damit mal rum zu spielen.
Gruß
Ich versuche auch gerade meinen Fronius mit dem LBS ans laufen zu bekommen.
Ich denke ein guter Test ist das Auslesen des SunSpec registers "Manufacturer".
Bei mir lieferte das Lesen von zwei Registern - bei mir laut Mapping ab 40005: noui
Buchstaben stimmen schon mal so halbwegs, aber die Reihenfolge nicht.
Im LBS die Endianess umgestellt, dann kommt das hier: oniu
Daran konnte ich dann noch sehen, dass die Registeradresse eins niedriger sein muss, also vermutlich alle Angaben aus den SunSpec Tabellen.
40004 statt 40005 liefert dann: Fron
Registerindex und Endianess sollten also vor weiteren Versuchen bekannt sein.
Nächster Punkt wäre dann der Scaling_Factor, der zu manchen Werten dazugehört. Der kann dann z.B. -1 sein.
Bedeutet Wert = Registerwert * 10 ^ -1
Da bin ich aber mangels Zeit noch nicht weiter.
Zuletzt geändert von DerSeppel; 02.07.2019, 15:35.
Grund: Rechtschreibung und so.
Hallo Dirk,
aufgrund von Gartenprojekten bin ich leider noch nicht soweit wie ich möchte
Nachdem ich im LBS den Port und den Endianess angepasst habe stimmt z.B. die IP Adresse die ich zurück bekomme. Leider sind die eigentlichen Werte, die mich interessieren im Moment noch unplausibel.
Da kommen immer noch "Daily Yield" Werte von 1.1947136558255E-16
Ich denke da stimmt die Umrechnung der Werte noch nicht. Da ich den Endianess geändert habe stimmt jetzt evtl. die Konvertierung der Datentypen (Float?) nicht. Da bin ich aber noch nicht weiter gekommen.
Vielleicht habe ich am WE mal wieder etwas Zeit...
Gruß
Rainer
Ok,
einen hab ich noch...
Anscheinend kommen bei mir die Daten vom Plenticore in anderer Byte Reihenfolge...
Gerade an der IP Adresse (die ich testweise mal ausgelesen habe) erkennt man das Highbyte und Lowbyte anscheinend vertauscht sind.
Beispiel:
Soll: 199.199.199.199
Ist: 91.991.991.9919
Hi Rainer,
hast d die Problematik schon gelöst?
bei mir wird demnächst auch ein Plenticore werkeln.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Einen Kommentar schreiben: