Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
PQ Plus CMD 68-52 MID
Der PQ Plus CMD 68-52 MID ist ein 3-Phasen Energiezähler mit Modbus-Schnittstelle. Hier soll die Kommunikation mit einem Raspberry Pi beschrieben werden. Wahrscheinlich gilt diese Beschreibung auch für diese sehr ähnlichen Energiezähler:
- Inepro PRO380-Mod
- PQ Plus CMD 68-102MID
- Solar-Log PRO380-CT
- Solar-Log PRO380-Mod
- KDK Dornscheidt PRO380 Mod
- KDK Dornscheidt PRO380-S-CT Mod
Hardware
Getestet wurde die Modbus-Kommunikation mit dem USB-RS485 Konverter DIGITUS DA-70157 und einem Raspberry Pi 2B. Am RS485 Konverter wurden folgende Widerstände angeschlossen:
Pin | Pin | Widerstand |
---|---|---|
+5V | RS485+ | 820Ω |
RS485+ | RS485- | 120Ω |
RS485- | GND | 820Ω |
Ein weiterer 120Ω Widerstand ist am Energiezähler zwischen den Klemen A und B angeschlossen.
Einstellungen am Energiezähler
Diese Beschreibung gilt für folgende Einstellungen am Energiezähler:
- Baud rate: 9600
- Parity: Even
Die Anzahl der Stopbits ist nicht einstellbar (immer 1).
Softwareinstallation
libmodbus
Es wird mindestens Version 3.1.3 von libmodbus benötigt. Wenn diese oder eine neuere Version bereits in der Distribution enthalten ist, können libmodbus und libmodbus-dev einfach über die Paketverwaltung installiert werden. Sonst muss die auf Eastron SDM 630 beschriebene manuelle Installation durchgeführt werden.
mbrtu
cd ~ git clone https://github.com/gitaeuber/mbrtu cd mbrtu make sudo make install
Test der Kommunikation
Beispiel für das Auslesen eines Wertes im Hex Format:
mbrtu -d/dev/ttyUSB0 -b9600 -pE -s1 -a1 -f3 -thex -n1 -r0x1060
Beispiel für das Auslesen eines Wertes im Float Format:
mbrtu -d/dev/ttyUSB0 -b9600 -pE -s1 -a1 -f3 -tF32_dcba -n2 -r0x2008
Parameter | Beschreibung |
---|---|
-d/dev/ttyUSB0 | USB-RS485 Konverter |
-b9600 | Baudrate 9600. Muss der Einstellung am Energiezähler entsprechen. |
-pE | Gerade Parität. Der Energiezähler muss auf Even-Parity eingestellt sein. |
-s1 | Ein Stoppbit. Der CMD68-52 verwendet immer ein Stoppbit. |
-a1 | Modbus Adresse 1. Der Energiezähler muss auf Adresse 1 eingestellt sein. |
-f3 | Function code für das Lesen von Registern. |
-thex | Für das Auslesen von Registern, die hexadezimale Zahlen enthalten. |
-tF32_dcba | Für das Auslesen von Registern, die Werte im Float Format enthalten. |
-n1 | Ein 16 Bit Register (für hexadezimale Zahlen) |
-n2 | Zwei 16 Bit Register (für Float Zahlen) |
-r0x1060 | Messbereich (5A Beim CMD 68-52, tatsächlicher Messbereich hängt vom Stromwandler ab) |
-r0x2008 | Spannung von Phase L1 |