pqplus_cmd68-52
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
pqplus_cmd68-52 [2020/02/14 16:34] – [Test der Kommunikation] pqplus | pqplus_cmd68-52 [2020/02/21 15:06] – [Einbindung über einen vzlogger exec-Kanal] pqplus | ||
---|---|---|---|
Zeile 13: | Zeile 13: | ||
|RS485+|RS485-|120Ω| | |RS485+|RS485-|120Ω| | ||
|RS485-|GND|820Ω| | |RS485-|GND|820Ω| | ||
- | Ein weiterer 120Ω Widerstand ist am Energiezähler | + | 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 | ||
+ | ^Klemme^Bezeichnung^Verbunden mit^ | ||
+ | |22|COM A|RS485+| | ||
+ | |23|COM B|RS485-| | ||
+ | Zwischen | ||
===== 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: | + | * Parity: |
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: | ||
< | < | ||
- | mbrtu -d/ | + | mbrtu -d/ |
+ | </ | ||
+ | Liefert dieses Ergebnis: | ||
+ | < | ||
+ | ADDR=1 REG=4192 DATA=0x5 | ||
</ | </ | ||
Beispiel für das Auslesen eines Wertes im Float Format: | Beispiel für das Auslesen eines Wertes im Float Format: | ||
< | < | ||
- | mbrtu -d/ | + | mbrtu -d/ |
+ | </ | ||
+ | Liefert die Netzspannung von L1: | ||
+ | < | ||
+ | ADDR=1 REG=8200 DATA=231.20 | ||
</ | </ | ||
^Parameter ^Beschreibung^ | ^Parameter ^Beschreibung^ | ||
|-d/ | |-d/ | ||
|-b9600|Baudrate 9600. Muss der Einstellung am Energiezähler entsprechen.| | |-b9600|Baudrate 9600. Muss der Einstellung am Energiezähler entsprechen.| | ||
- | |-pE|Gerade Parität. Der Energiezähler muss auf Even-Parity eingestellt sein.| | + | |-pN|Kein Parity Bit. Am 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 55: | Zeile 84: | ||
|-r0x2008|Spannung von Phase L1| | |-r0x2008|Spannung von Phase L1| | ||
+ | Eine Liste der Modbus Register ist auf den letzten Seiten dieses Dokuments: [[https:// | ||
+ | ===== Einbindung über einen vzlogger exec-Kanal ===== | ||
+ | Das folgende Script '' | ||
+ | < | ||
+ | #!/bin/bash | ||
+ | |||
+ | set -e | ||
+ | set -u | ||
+ | |||
+ | usage() { | ||
+ | cat <<EOF | ||
+ | $0 [options] register ... | ||
+ | -t|--tty | ||
+ | -b|--baudrate | ||
+ | -p|--parity | ||
+ | -s|--stopbits | ||
+ | -a|--addr | ||
+ | EOF | ||
+ | } | ||
+ | |||
+ | TEMP=" | ||
+ | -l tty:, | ||
+ | +t:b:p:s:a: " | ||
+ | eval set -- " | ||
+ | |||
+ | MBRTU=" | ||
+ | TTY="" | ||
+ | BAUDRATE="" | ||
+ | PARITY="" | ||
+ | STOPBITS="" | ||
+ | ADDR="" | ||
+ | |||
+ | while test " | ||
+ | case $1 in | ||
+ | -t|--tty) | ||
+ | shift | ||
+ | TTY=" | ||
+ | ;; | ||
+ | -b|--baudrate) | ||
+ | shift | ||
+ | BAUDRATE=" | ||
+ | ;; | ||
+ | -p|--parity) | ||
+ | shift | ||
+ | PARITY=" | ||
+ | ;; | ||
+ | -s|--stopbits) | ||
+ | shift | ||
+ | STOPBITS=" | ||
+ | ;; | ||
+ | -a|--addr) | ||
+ | shift | ||
+ | ADDR=" | ||
+ | ;; | ||
+ | esac | ||
+ | shift | ||
+ | done | ||
+ | shift | ||
+ | |||
+ | checkparameter() { | ||
+ | PARMNAME=" | ||
+ | CONTENT=" | ||
+ | if [ -z " | ||
+ | printf "%s must not be empty\\n" | ||
+ | exit 1 | ||
+ | fi | ||
+ | } | ||
+ | |||
+ | checkparameter tty " | ||
+ | checkparameter baudrate " | ||
+ | checkparameter parity " | ||
+ | checkparameter stopbits " | ||
+ | checkparameter addr " | ||
+ | |||
+ | for reg in " | ||
+ | NOW=" | ||
+ | METER=" | ||
+ | |||
+ | if [ -z " | ||
+ | printf >&2 "no data received on modbus\\n" | ||
+ | else | ||
+ | printf "%d: %s = %f\\n" " | ||
+ | fi | ||
+ | done | ||
+ | |||
+ | # end of file | ||
+ | </ | ||
+ | |||
+ | == Eintrag in vzlogger.conf == | ||
+ | < | ||
+ | // Meter configuration | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | ] | ||
+ | </ |