[vz-users] DVH 4013 Modbus?

Frank Richter frank.richter83 at gmail.com
Thu Dec 22 09:54:42 CET 2016


Hallo Marc,

ich war ungeduldig und hab mir einfach einen DVH4013 bestellt.
Die gewonnen Erkenntnisse möchte ich nicht für mich behalten:

* Ich hatte zunächst auch Schwierigkeiten mit dem USB-Adapter und der
RS485-Verdrahtung.
Getestet wurden:
1) China-Adapter mit FT232RL und MAX485 (
https://www.aliexpress.com/item/1pc-USB-to-TTL-RS485-Converter-Adapter-Module-FT232RL-Dual-function-Protection-Hot-Worldwide/32371804583.html
)
2) China-Adapter mit CP2102 und MAX485 (
https://www.aliexpress.com/item/6in1-USB-to-TTL-UART-485-232-Multi-function-Serial-Interface-Module-CP2102-wholesale/32430642299.html
)
3) MAX485-Modul an USB-TTL-Adapter mit CP2102 (
https://www.aliexpress.com/item/MAX485-module-TTL-to-RS485-module-TTL-turn-RS-485-module-MCU-development-accessories/2007238830.html
)
4) MAX485-Modul an Arduino
Kommunikation kam zunächst nur mit 2) zu Stande, bei den anderen Adaptern
konnte ich mit einem zusätzlichen RS485-Slave und HTerm zwar den Request
fehlerfrei mitlesen, die Zählerantwort war aber voller Bitfehler und wurde
von den Modbus-Tools infolge falscher CRC verworfen. Versuche mit
Pull-up/-down Widerständen (A/B an 5V/GND) brachten keinen Erfolg.
Beim Vergleich der Adapter fielen mir irgendwann die Abschlusswiderstände
auf: der funktionsfähige Chinese hatte keinen, alle anderen hatten dagegen
120 Ohm verbaut. Also hab' ich das MAX485-Modul um den SMD-Widerstand
erleichtert, und seitdem läuft die Kommunikation auch hiermit fehlerfrei.
Fazit: der DVH4013 ist zumindest in einem Test-Setup mit ganz kurzem
RS485-Bus allergisch gegen Abschlusswiderstände.

* Der DVH4013 spricht 9600 8E1. Die Baudrate lässt sich verändern, die
ungewöhnliche Parity wohl nicht.

* Die Modbus-Slave-Adresse berechnet sich aus den letzten beiden Stellen
der Seriennummer + 1. Dabei wird Ziffer für Ziffer behandelt, es erfolgt
keine Umrechnung dezimal zu hex. Beispiel: Meine Seriennummer endet mit 38,
daraus wird das Adressbyte 0x39 = 57, nicht wie man auch erwarten könnte
0x27 = 39!

* Der DVH4013 erwartet zur Abfrage der Modbus-Register function code 03
(output holding register), im Gegensatz zum Eastron SDM630, der function
code 04 (input register) verwendet. Das ist wohl nicht ganz konform mit der
Modbus-Spezifikation, die input register für Messwerte (Sensoren) und
output holding register für Stellwerte (Aktoren) vorsieht.

* Der Zähler liefert, anders als der Eastron, keine Floats, sondern
32-bit-Integer (mit fester impliziter Anzahl Dezimalen lt. Manual).

Nachdem ich das alles aussortiert hatte, konnte ich den Zähler mit Python
(lib: MinimalModbus), mbrtu (lib: libmodbus) und auch per Arduino (lib:
ModbusMaster) zumindest rudimentär auslesen. Hier die zugehörigen
Codeschnipsel:

* Python:
#!/usr/bin/env python
import minimalmodbus
minimalmodbus.TIMEOUT = 1
# port name, slave address (in decimal)
dvh4013 = minimalmodbus.Instrument('/dev/ttyUSB0', 57, mode='rtu')
dvh4013.serial.baudrate = 9600
dvh4013.serial.parity = minimalmodbus.serial.PARITY_EVEN
# Zaehlerstand 1.8.0
print dvh4013.read_long(0x4000)

* mbrtu:
mbrtu -d/dev/ttyUSB0 -b9600 -pE -a57 -f3 -tint -n2 -r0x4000
mbrtu ist Stand heute allerdings nicht wirklich für den Zähler geeignet, da
es nichts mit den 32--bit-Integern anzufangen weiß. Außerdem treten in
meinem Setup öfters Timeouts auf, die ich via Python nicht bekomme.

* Arduino:
auf Anfrage, keine Ahnung ob das hier jemand interessiert

Fazit: Anfangs hat mich der Zähler einiges an Zeit gekostet, aber wenn man
mal weiß worauf man achten muss, ist das Ding für vz-Anwendung IMHO
durchaus geeignet. Die Software-Seite wäre natürlich noch ausbaufähig -
möglicherweise kommt ja noch Modbus-Support direkt per vzlogger, vor ein
paar Monaten gab es da Aktivitäten, ich kenne aber den aktuellen Stand
nicht.
Vorteile gegenüber S0-Zähler liegen auf der Hand: aktuelle Leistung
sekundengenau verfügbar (ohne "Blindflug" zwischen 2 Impulsen), bei
Verwendung des Zählerstands keine Abweichungen im Gesamtverbrauch durch
Logerausfall/-wartung, weitere Parameter wie Strom/Spannung/cos phi
verfügbar.
Vorteile gegenüber dem Eastron SDM630 sehe ich vor allem in den
phasensaldierenden Registern für Bezug und Einspeisung und möglicherweise
in der Mehrtarif-Fähigkeit, falls jemand sowas sucht.
Nicht vorhanden sind wohl Blind- und Scheinleistung, halte ich aber für
entbehrlich.

Grüße
Frank
Danke für die Info, dann warte ich mal ab was bei der Überprüfung rauskommt.
Der DZG-Zähler wär' mir eigentlich lieber als der Eastron SDM630, weil
dieser wohl nicht phasensaldierend zählen kann.

Gruß
Frank

Am 29. November 2016 um 16:44 schrieb Marc Haber <mh+volkszaehler-users@
zugschlus.de>:

> Hallo,
>
> On Tue, Nov 29, 2016 at 02:59:43PM +0100, Frank Richter wrote:
> > bist du mit deinem Zähler mittlerweile weitergekommen?
>
> Er funktioniert auch nicht mit der vom Hersteller auf Anfrage
> nachgelieferten Windows-Softare und mit dem vom Hersteller empfohlenen
> RS485-Adapter. Er ist deswegen seit einer Woche beim Hersteller zur
> Prüfung.
>
> Ich melde mich, sobald ich neues weiß.
>
> > Ich bin nämlich auch auf der Suche nach einem Modbus-Zähler, aber bisher
> > sind die Aussichten auf erfolgreiches Auslesen bei diesem Modell ja nicht
> > so rosig...
> > Beim Hersteller habe ich mal angefragt, ob es weitere Dokumentation oder
> > Software zur Modbus-Kommunikation gibt, die bekomme ich aber nur nach dem
> > Kauf.
>
> Die Dokumentation ist dürftig, die Windows-Software entspricht dem
> was man von Windows-Software erwartet. Dafür ist der Support per
> E-Mail individuell, schnell und hilfreich. Da das so selten ist,
> möchte ich das gerne lobend erwähnen.
>
> > Weil das Manual nichts bzgl. Änderung der Modbus-Adresse hergibt, vermute
> > ich derzeit, dass der Zähler mit fester Adresse geliefert wird, die dann
> > möglicherweise auch länger als ein Byte ist. Vielleicht die oben rechts
> > aufgelaserte Nummer? Eine falsche Adresse würde zumindest die erfolglosen
> > Kommunikationsversuche erklären.
>
> Die Modbus-Adresse berechnet sich in der Tat aus der Seriennummer des
> Zählers und ist nicht änderbar.
>
> Grüße
> Marc
>
> --
> ------------------------------------------------------------
> -----------------
> Marc Haber         | "I don't trust Computers. They | Mailadresse im Header
> Leimen, Germany    |  lose things."    Winona Ryder | Fon: *49 6224 1600402
> Nordisch by Nature |  How to make an American Quilt | Fax: *49 6224 1600421
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20161222/9344b816/attachment.html>


More information about the volkszaehler-users mailing list