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?
Gast
#5154943
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.
Gast
#5155136
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.
Gast
#5156141
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!
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.