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)