Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
VSM-103 von Conrad
Conrad hat einen preisgünstigen Drehstromzähler mit S0-Schnittstelle und Modbus in RS-485 Variante und Infrarot. Leider gibt es dazu kaum Doku. http://www.conrad.de/ce/de/product/125442/VOLTCRAFT-VSM-103-DREHSTR-ZAeHLER
Nach dem Kauf des Komplettsystems (http://www.conrad.de/ce/de/product/125441/VOLTCRAFT-SMART-METERING-SYSTEM ) und etwas Schnittstellenauswertung und probieren gibt's dazu hier ein paar weitere Infos.
Bei weiteren Infos oder Fragen am Besten hier eintragen.
Allgemeines
- Preisgünstig
- Undokumentierte Schnittstelle
- Hoher Eigenverbrauch (relativ zu anderen Zählern, jeweils laut Datenblatt)
RS-485
Der Zähler hat eine RS-485 Schnittstelle zum Abfragen. Diese arbeitet in der Betriebsart 8e2. Bisher ist nur die Geschwindigkeit mit 1200 baud getestet worden. Laut Doku sollte es auch schneller gehen.
Modbus
Der Modbus wird binär nach RTU betrieben. Siehe dazu auch http://de.wikipedia.org/wiki/Modbus und insbesondere http://www.simplymodbus.ca/. Grundätzliche Idee: Es gibt einen Master und mehrere Slaves. Der Master schickt Anfragen an die Slaves die darauf antworten.
Anfrage
Der VSM-Zähler erkennt (mindestens) Anfragen nach dem Schema
ID | Funktion | Register | Länge | CRC | ||
---|---|---|---|---|---|---|
Beschreibung | Für VMS-103: 1, 1 Byte | Für VSM-103: 4, 1 Byte | 2 Byte, je nach gewünschtem Wert | 2 Byte, bei VSM-103 immer 2(*) | CRC, 2 Byte | |
Beispiel (hex) | 01 | 04 | 00 96 | 00 02 | 91 e7 | Momentanen Wirk-Gesamtleistung? |
(*) Soweit bisher bekannt
Antwort
Auf erkannte Anfragen antwortet der Zähler dann mit einem Datentelegramm mit meist 8 Byte:
ID | Funktion | Daten-Laenge | Daten | CRC | ||
---|---|---|---|---|---|---|
Beschreibung | Für VMS-103: 1, 1 Byte | Für VSM-103: 4, 1 Byte | Anzahl der Bytes der Antwort, 1 Byte | Daten | CRC | |
Beispiel (hex) | 01 | 04 | 04 | 3b a3 d7 0a | d9 75 | Momentanen Wirk-Gesamtleistung: 0,05 kWatt |
Datenformat
Die Antworten liegen (soweit bisher bekannt) in den 4 Byte als 32Bit Gleitkommazahl vor: http://de.wikipedia.org/wiki/IEEE_754. Wer damit bisher nicht zu tun hatte, hier gibt's eine Excel-Forlage zum berechnen: http://www.simplymodbus.ca/FAQ.htm#Types
CRC
Auch hier http://www.simplymodbus.ca/FAQ.htm#CRC gibt's eine Excel-Vorlage um die 2-Byte CRC zu berechnen. Der VSM-103 beantwortet nur Anfragen mit korrekter CRC.
Bisher bekannte Register
Register | hex | Art | Beschreibung | Auflösung(*) | Bemerkung |
---|---|---|---|---|---|
16 | 0010 | U1 | Spannung zwischen N und L1 | ? | |
18 | 0012 | U2 | Spannung zwischen N und L2 | ? | |
20 | 0014 | U3 | Spannung zwischen N und L3 | ? | |
78 | 004e | F | Frequenz | 2 | |
80 | 0050 | I1 | Strom auf L1 | ? | |
82 | 0050 | I2 | Strom auf L2 | ? | |
84 | 0052 | I3 | Strom auf L3 | ? | |
86 | 0054 | IN | Strom auf N | ? | Nur Vermutung, nicht bestätigt |
88 | 0058 | I_ges | Strom auf Gesamt | ? | Nur Vermutung, nicht bestätigt |
144 | 0090 | P1 | Wirkleistung auf L1 | 3 | in kW –> 1 Watt Auflösung |
146 | 0092 | P2 | Wirkleistung auf L2 | 3 | in kW –> 1 Watt Auflösung |
148 | 0094 | P3 | Wirkleistung auf L3 | 3 | in kW –> 1 Watt Auflösung |
150 | 0096 | P_ges | Wirkleistung gesamt | 3 | in kW –> 1 Watt Auflösung |
208 | 00d0 | S1 | Scheinleistung L1 | ? | Nur Vermutung, nicht bestätigt |
210 | 00d2 | S2 | Scheinleistung L2 | ? | Nur Vermutung, nicht bestätigt |
212 | 00d4 | S3 | Scheinleistung L3 | ? | Nur Vermutung, nicht bestätigt |
214 | 00d6 | Sges | Scheinleistung ges | ? | Nur Vermutung, nicht bestätigt |
272 | 0110 | B1 | Blindleistung L1 | ? | Nur Vermutung, nicht bestätigt |
274 | 0112 | B2 | Blindleistung L2 | ? | Nur Vermutung, nicht bestätigt |
276 | 0114 | B3 | Blindleistung L3 | ? | Nur Vermutung, nicht bestätigt |
278 | 0116 | Bges | Blindleistung ges | ? | Nur Vermutung, nicht bestätigt |
336 | 0150 | LF1 | Leistungsfaktor L1 | ? | |
338 | 0150 | LF2 | Leistungsfaktor L2 | ? | |
340 | 0150 | LF3 | Leistungsfaktor L3 | ? | |
342 | 0150 | LF | Leistungsfaktor ges | ? | |
352 | 0160 | Z1 | Zaehlerstand Wirkenergiebezug | 2 | in kWh –> 0,01 kWh Auflösung |
354 | 0162 | Z2 | Zaehlerstand Blindenergiebezug? | 2 | in kWh –> 0,01 kWh Auflösung, Nur Vermutung, nicht bestätigt |
358 | 0160 | Z3 | Zaehlerstand Wirkenergieabgabe | 2 | in kWh –> 0,01 kWh Auflösung, Nur Vermutung, nicht bestätigt |
360 | 0168 | Z4 | Zaehlerstand Blindenergieeinspeisung? | 2 | in kWh –> 0,01 kWh Auflösung, Nur Vermutung, nicht bestätigt |
1318 | 0526 | ?? | ? | ? | |
1560 | 0618 | ?? | ? | ? |
Auch bei Einträgen ohne Fragezeichen ist die Beschreibung nicht absolut sicher, solange niemand das Bestätigt bitte die erhaltenen Werte auf Sinnhaftigkeit prüfen!
(*) Hier nur: Aussage über die Nachkommastellen, keine Aussage über die Messgenauigkeit
S0-Schnittstelle
Der VSM-103 verfügt über zwei S0-Schnittstellen für Wirk- und Blindenergie mit einer Konstante von 400 Impulsen pro kWh. Ungetestet.
Infrarot-Schnittstelle
Per Infrarot soll ebenfalls eine Modbus-RTU Kommunikation mit 1200 baud möglich sein. Ungetestet.
Software
Bin kein guter Softwerker, aber es funktioniert Verbesserungen willkommen.
use IO::Socket; $socket = IO::Socket::INET->new(PeerAddr=> "192.168.1.23", # Terminalserver <--> PeerPort=> "8000", Proto => "tcp") <------>or die "Kaputt!"; # Momentanleistung <--->150 $frage[0]=pack('H*',"01040096000291e7"); # Zaehlerstand ><------>352 $frage[1]=pack('H*',"01040160000fb1ec"); ...