Hallo zusammen, ich möchte gerne mit einem Beaglebone Black und Modbus RTU Protokoll einen Energiezähler auslesen. Im Internet habe ich dafür das Pymodbus package gefunden und bereits auf dem BBB installiert. Da ich in sachen Python und embedded Linux/BBB totaler Neuling bin, weiß ich jetzt leider nicht genau wie ich den Datenaustausch mit Pymodbus zum laufen bringe. Ich habe mir ein RS485 Serial Cape mit dem MAX3485 gebastelt, welcher UART1 und als RTS-Signal GPIO1_28 verwendet (Schaltplan im Anhang). Des weiteren habe ich einen PAP gemacht und angehängt. Zum auslesen der entsprechenden Register muss ich dann lt. Datenblatt (siehe unten) den Funktions-Code "03hex - Read Hold. Register" verwenden, wobei die Register 36 - 52 (also insgesamt 17 Register) ausgelesen werden sollen. Die Adresse des Slave (Energiezähler) ist auf 01 eingestellt. Das Modbus-RTU Protokoll setzt sich folgendermaßen zusammen: Slave Adresse - Funktions Code - Startadresse Daten - Anzahl Register - CRC LO_Byte - CRC HI_Byte. Somit ergibt sich zum anfordern der Daten folgender Hex-Code: 01 03 00 24 00 11 CRC_LO CRC_HI. Soweit, so gut. Leider weiß ich nicht wie ich das ganze mit Pymodbus umsetzen kann. Kann mir hier vielleicht irgendjemand weiter helfen? Danke schon mal für eure Hilfe! Energiezähler: (http://www.meterbuy.com/fileadmin/user_upload/Data_sheets/120102_SAIA_-_Data_sheet_26-527_EN_DS_Energy-Meter-ALE3-with-Modbus.pdf)
Ich hab bis jetzt zwar nur libmodbus und freemodbus verwendet, aber ich würde es einfach mal probieren wie in diesem Beispiel. https://pymodbus.readthedocs.org/en/latest/examples/synchronous-client.html
Danke für die Antwort. Ok dann werde ich es mal damit diesem Beispiel probieren. Den libmodbus habe ich auch schon gesehen und dazu folgendes gelesen: https://groups.google.com/forum/#!topic/libmodbus/GH_W4JKKydk Die patches die beschrieben werden sind zu finden unter: https://github.com/stephane/libmodbus/pull/139 Allerdings verstehe ich nicht ganz wie ich die files unter https://github.com/hmis/libmodbus/commit/53c183b0db23e61fbf5bcc122cd40adcae9d4294 verändern soll, wenn ich das package auf meinem BBB installiert habe. Muss ich die entsprechenden .c und .h files mit z.B. nano aufrufen und verändern? Kann ich dann einfach den Code aus folgender Seite verwenden, um alles zum laufen zu bringen? Muss ich das dann einfach in ein main.c packen und die entsprechenden header files ergänzen? http://libmodbus.org/docs/v3.0.6/modbus_read_registers.html Würde gerne beide, also den pymodbus und den libmodbus ausprobieren. Danke schon mal für eure Hilfe.
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.