Pymodbus mit Beaglebone Black

OP #4330110
Lesenswert?

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)
Angehängte Dateien:
OP #4332153
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren