Benutzer-Werkzeuge

Webseiten-Werkzeuge


pqplus_cmd68-52

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
pqplus_cmd68-52 [2020/02/14 21:38]
pqplus [Test der Kommunikation]
pqplus_cmd68-52 [2020/02/18 14:07] (aktuell)
pqplus [Test der Kommunikation]
Zeile 13: Zeile 13:
 |RS485+|RS485-|120Ω| |RS485+|RS485-|120Ω|
 |RS485-|GND|820Ω| |RS485-|GND|820Ω|
-Ein weiterer 120Ω Widerstand ist am Energiezähler ​zwischen ​den Klemen ​A und B angeschlossen.+Anschlussbelegung D-Sub Stecker am DIGITUS DA-70157 
 +^Pin^Funktion^ 
 +|1|RS485-| 
 +|2|RS485+| 
 +|3|nicht verwendet| 
 +|4|nicht verwendet| 
 +|5|GND| 
 +|6|+5V| 
 +|7|nicht verwendet| 
 +|8|nicht verwendet| 
 +|9|nicht verwendet| 
 +Anschlussbelegung der Klemmen am mitgelieferten Adapter 
 +^Klemme^Funktion^ 
 +|1|RS485+| 
 +|2|RS485-| 
 +|3|+5V| 
 +|4|GND| 
 +Klemmen ​am Energiezähler ​PQ Plus CMD 68-52 
 +^Klemme^Bezeichnung^Verbunden mit^ 
 +|22|COM A|RS485+| 
 +|23|COM B|RS485-| 
 +Zwischen ​den Klemmen ​A und B muss ein 120Ω Widerstand ​angeschlossen ​werden. GND und +5V können nicht mit dem PQ Plus CMD 68-52 verbunden werden.
  
 ===== Einstellungen am Energiezähler ===== ===== Einstellungen am Energiezähler =====
 Diese Beschreibung gilt für folgende Einstellungen am Energiezähler:​ Diese Beschreibung gilt für folgende Einstellungen am Energiezähler:​
   * Baud rate: 9600   * Baud rate: 9600
-  * Parity: ​Even+  * Parity: ​None
 Die Anzahl der Stopbits ist nicht einstellbar (immer 1). Die Anzahl der Stopbits ist nicht einstellbar (immer 1).
  
Zeile 35: Zeile 56:
 Beispiel für das Auslesen eines Wertes im Hex Format: Beispiel für das Auslesen eines Wertes im Hex Format:
 <​code>​ <​code>​
-mbrtu -d/​dev/​ttyUSB0 -b9600 -pE -s1 -a1 -f3 -thex -n1 -r0x1060+mbrtu -d/​dev/​ttyUSB0 -b9600 -pN -s1 -a1 -f3 -thex -n1 -r0x1060 
 +</​code>​ 
 +Liefert dieses Ergebnis: 
 +<​code>​ 
 +ADDR=1 REG=4192 DATA=0x5
 </​code>​ </​code>​
 Beispiel für das Auslesen eines Wertes im Float Format: Beispiel für das Auslesen eines Wertes im Float Format:
 <​code>​ <​code>​
-mbrtu -d/​dev/​ttyUSB0 -b9600 -pE -s1 -a1 -f3 -tF32_dcba -n2 -r0x2008+mbrtu -d/​dev/​ttyUSB0 -b9600 -pN -s1 -a1 -f3 -tF32_dcba -n2 -r0x2008 
 +</​code>​ 
 +Liefert die Netzspannung von L1: 
 +<​code>​ 
 +ADDR=1 REG=8200 DATA=231.20
 </​code>​ </​code>​
 ^Parameter ^Beschreibung^ ^Parameter ^Beschreibung^
 |-d/​dev/​ttyUSB0|USB-RS485 Konverter| |-d/​dev/​ttyUSB0|USB-RS485 Konverter|
 |-b9600|Baudrate 9600. Muss der Einstellung am Energiezähler entsprechen.| |-b9600|Baudrate 9600. Muss der Einstellung am Energiezähler entsprechen.|
-|-pE|Gerade ParitätDer Energiezähler muss auf Even-Parity eingestellt sein.|+|-pN|Kein Parity BitAm Energiezähler muss Parity: None eingestellt sein.|
 |-s1|Ein Stoppbit. Der CMD68-52 verwendet immer ein Stoppbit.| |-s1|Ein Stoppbit. Der CMD68-52 verwendet immer ein Stoppbit.|
 |-a1|Modbus Adresse 1. Der Energiezähler muss auf Adresse 1 eingestellt sein.| |-a1|Modbus Adresse 1. Der Energiezähler muss auf Adresse 1 eingestellt sein.|
Zeile 56: Zeile 85:
  
 Eine Liste der Modbus Register ist auf den letzten Seiten dieses Dokuments: [[https://​www.kdk-dornscheidt.de/​wp-content/​uploads/​2017/​11/​Bedienungsanleitung_KDK_PRO380_4205100Pro_420506Pro_S_Mbus_Modbus_V3_00.pdf|Bedienungsanleitung KDK PRO380]] Eine Liste der Modbus Register ist auf den letzten Seiten dieses Dokuments: [[https://​www.kdk-dornscheidt.de/​wp-content/​uploads/​2017/​11/​Bedienungsanleitung_KDK_PRO380_4205100Pro_420506Pro_S_Mbus_Modbus_V3_00.pdf|Bedienungsanleitung KDK PRO380]]
 +
 +===== Einbindung über einen vzlogger exec-Kanal =====
 +Das folgende Script ''​exec-modbus''​ kann über einen vzlogger exec-Kanal angebunden werden
 +<​code>​
 +#!/bin/bash
 + 
 +set -e
 +set -u
 + 
 +usage() {
 +cat <<EOF
 +$0 [options] register ...
 +        -t|--tty
 +        -b|--baudrate
 +        -p|--parity
 +        -s|--stopbits
 +        -a|--addr
 +EOF
 +}
 + 
 +TEMP="​$(getopt -n installremote \
 +        -l tty:,​baudrate:,​parity:,​stopbits:,​addr:​ -- \
 +        +t:b:p:s:a: "​$@"​)"​
 +eval set -- "​${TEMP}"​
 + 
 +MBRTU="​mbrtu"​
 +TTY=""​
 +BAUDRATE=""​
 +PARITY=""​
 +STOPBITS=""​
 +ADDR=""​
 + 
 +while test "​$1"​ != "​--";​ do
 +        case $1 in
 +                -t|--tty)
 +                        shift
 +                        TTY="​$1"​
 +                        ;;
 +                -b|--baudrate)
 +                        shift
 +                        BAUDRATE="​$1"​
 +                        ;;
 +                -p|--parity)
 +                        shift
 +                        PARITY="​$1"​
 +                        ;;
 +                -s|--stopbits)
 +                        shift
 +                        STOPBITS="​$1"​
 +                        ;;
 +                -a|--addr)
 +                        shift
 +                        ADDR="​$1"​
 +                        ;;
 +        esac
 +        shift
 +done
 +shift
 + 
 +checkparameter() {
 +        PARMNAME="​${1:​-}"​
 +        CONTENT="​${2:​-}"​
 +        if [ -z "​${CONTENT}"​ ]; then
 +                printf "%s must not be empty\\n"​ "​${PARMNAME}"​
 +                exit 1
 +        fi
 +}
 + 
 +checkparameter tty "​${TTY}"​
 +checkparameter baudrate "​${BAUDRATE}"​
 +checkparameter parity "​${PARITY}"​
 +checkparameter stopbits "​${STOPBITS}"​
 +checkparameter addr "​${ADDR}"​
 + 
 +for reg in "​$@";​ do
 +        NOW="​$(date +%s)"
 +        METER="​$($MBRTU -d"​${TTY}"​ -b"​${BAUDRATE}"​ -p"​${PARITY}"​ -s"​${STOPBITS}"​ -Q -P -a"​${ADDR}"​ -f3 -tF32_dcba -n2 -r"​${reg}"​ | cut -d\  -f3)"
 + 
 +        if [ -z "​${METER}"​ ]; then
 +                printf >&2 "no data received on modbus\\n"​
 +        else
 +                printf "%d: %s = %f\\n" "​${NOW}"​ "​${reg}"​ "​${METER:​-0}"​
 +        fi
 +done
 + 
 +# end of file
 +</​code>​
pqplus_cmd68-52.1581712701.txt.gz · Zuletzt geändert: 2020/02/14 21:38 von pqplus