Integration in eigene Anwendung - Druckversion +- ECS-Forum (https://www.ecs-online.dyndns.org/mybb) +-- Forum: Batteriemanagementsystem(BMS) (https://www.ecs-online.dyndns.org/mybb/forumdisplay.php?fid=5) +--- Forum: Lipro 1-x (https://www.ecs-online.dyndns.org/mybb/forumdisplay.php?fid=6) +--- Thema: Integration in eigene Anwendung (/showthread.php?tid=916) |
Integration in eigene Anwendung - ChristianL - 09.04.2021 Guten Morgen zusammen. Ich nutze die LiPro1-3 RS485 V2 in unserem WoMo auf den 130Ah Winston Zellen. Leider ist es mir noch immer nicht gelungen die Lipro´s ohne das ECS Kommtool auszulesen. Ziel Ist es eine Visualisierung ausserhalb der Windows-Welt zu schaffen, möchte nicht ständig einen Rechner anschließen und Android gibt es bei mir auch nicht ;-) Da die Lipro mit dem offenen Modbus Protokoll kommunizieren, stehen ja auch erst einmal alle Möglichkeiten offen, aber leider ist das System dann wohl doch noch nicht so weit verbreitet, dass man dazu etwas findet. Leider bin ich auch kein Programmierer, habe nur ein paar Basic-Script Fähigkeiten, daher einfach mal die Frage in die Runde: Gibt es irgendwo ein Skript (am liebsten PHP) welches einen Grundaufbau beschreibt um das BMS abzufragen? Und sei es auch nur ein Schnipsel mit ein paar Ansätzen. Ich denke das könnte mir schon helfen. Besten Dank und VG Christian RE: Integration in eigene Anwendung - ECSadmin - 09.04.2021 Hallo Christian, womit möchten Sie es den auslesen? Arduino? ESP32? Oder ähnlich? Es gibt fertige Lib's für Modbus RTU. Wenn Sie mit unserem Kommtool auslesen, können sie im Log Fenster unten auch sehen, wie die Anfrage aussieht und was der LiPro darauf antwortet. Auch das Programm Modbus Poll kann genutzt werden um sich die Anfragen anzuschauen. Das schöne an Modbus RTU ist, der einfache Aufbau. Es gibt eine genaue Beschreibung auf Modbus.org Alle Dokumente sind offen. Hier mal ein Beispiel einer Anfrage: 01 03 00 00 00 0A C5 CD Die Bedeutung der einzelnen Bytes: 01: Slave Adresse 03: Funktionscode: Read holding Register 00 00: Start Adresse 00 0A: Anzahl Register C5 CD: Checksumme Das ist super erklärt in der Protokollbeschreibung: MODBUS Application Protocol 1 1 b Ein oft gemachte Fehler ist die Einstellung der Schnittstelle. 19200 Baud mit gerader Parität . Das ist Default beim Modbus RTU Standard. RE: Integration in eigene Anwendung - ChristianL - 09.04.2021 Hallo. Danke für die Antwort. Die Idee ist mit einem Raspberry alle paar Sekunden/Minuten ein Script zu starten, welches die Register der Lipro´s ausliest. Anschließend die Daten in eine Datenbank (z.b. influxDB) zu schreiben und mittels Grafana zu visualisieren. Bei meinen Suchen bin ich bisher als vielversprechenste Möglichkeit auf "Php Serial Modbus" (https://github.com/toggio/PhpSerialModbus) als Hilfsfunktion zum auslesen gestoßen. Wird wohl auch nicht mehr wirklich gepflegt, aber könnte ja funktionieren... Wurden von euch denn schon mal Überlegungen in die Richtung getätigt? Könnte mir vorstellen das in dem GreenView auch sowas in der Richtung unter der Haube werkelt Grundsätzlich, muss jede MB-Adresse des jeweiligen Lipro´s einzeln gelesen werden oder könnte man auch gleich alle Adressen (z.B. 0-32) auf einmal auslesen und anschließend die Werte trennen? RE: Integration in eigene Anwendung - ECSadmin - 12.04.2021 Hallo, wie gesagt es gibt diverse Lib's. Wir haben was selbst gemachtes in unseren Geräten, da wir nur wenige Funktionen benötigen. Zitat:Grundsätzlich, muss jede MB-Adresse des jeweiligen Lipro´s einzeln gelesen werden oder könnte man auch gleich alle Adressen (z.B. 0-32) auf einmal auslesen und anschließend die Werte trennen? Jap, siehe mein Beispiel oben. Dort werden 10 Register ausgelesen. --> Anzahl der Register 0A Bitte die Modbus Protokollbeschreibung durchlesen. Es ist wirklich gut erklärt. Sie müssen dies auch lesen wenn Sie die fertigen Libs verwenden, sonst fehlen die Grundlagen. Wenn nach dem lesen noch Fragen sind, einfach nochmal melden. MODBUS Application Protocol 1 1 b Gruß Falko Jahn RE: Integration in eigene Anwendung - ChristianL - 13.04.2021 Danke, mache ich. |