Hallo, ich arbeite zur Zeit an der Implementierung von Modbus RTU über RS485 auf einem Arduino. Dieser soll den Master darstellen. Dank der umfangreichen Bibliotheken (ich nutze ModBusMaster485 und RS485) sollte es eigentlich kein Problem darstellen. Ich möchte verschiedene Daten aus einem Wechselrichter auslesen. Laut der Dokumentation des Wechselrichters muss ich jedoch nicht die Standard-Funktionscodes wie 01 readCoilStatus oder 03 readHoldingRegisters nutzen, sondern proprietäre des Herstellers (z.B. Funktionscode 33). Hat jemand eine Idee wie man dies durchführen kann?
:
Bearbeitet durch User
Welche Bibliothek verwendest du? Wir haben hier ModbusMaster232 im Einsatz und können dir evtl. weiterhelfen.
Die Bibliothek heißt ModBusMaster458 (Link: https://github.com/Libelium/waspmoteapi/tree/master/libraries/ModbusMaster485) von Doc Walker.
Oh, da müssten wir tiefer reinschauen. Hoffentlich findest du jemanden, der dir da weiterhelfen kann.
Die Bibliothek ist letztlich völlig egal, es sollte nur Modbus RTU über RS485 sein. Aber wenn ihr RS232 einsetzt, dürfte der Unterschied ja nicht deutlich sein. Aber danke für die Wünsche.
:
Bearbeitet durch User
Hallo H.Z. ich habe mir mal die Bibliothek angeschaut... https://github.com/Libelium/waspmoteapi/tree/master/libraries/ModbusMaster485 Diese ist in C++ geschrieben und lässt sich relativ gut analysieren. Auf http://www.modbus.org/ findest du die Modbus Spezifikation, welche keinen FunctionCode 33 auflistet. Wenn du eine ausführliche Dokumentation deines Wechselrichtes hast, welche dir erläutert was hinter FunctionCode 33 steckt, dann kannst du diese in die Bibliothek leicht einpflegen. Ich hoffe dieser Tip hilft dir etwas weiter. Gruß Leo
Ja, die Doku habe ich. Ich habe nur darauf gehofft, dass es auch ohne ändern der Library geht, da ich dort keine Erfahrungen besitze... Vielen Dank trotzdem!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.