Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
ISKRAemeco MT 174
Genaue Typenbezeichnung: MT174-D2A52-G22-M3K0
Das „K0“ bedeutet, dass er über eine bidirektionale Kundenschnittstelle nach DIN EN 62056-21 verfügt.
Hardware
Kommunikation mittels IR-Schreib-Lesekopf bei 300bd, 7E1 nach DIN EN 62056-21.
Kommunikation
Der Zähler sendet nicht automatisch, er muss mit einer Initialisierungssequenz angestoßen werden.
/?!<0D><0A>
Der Zähler antwortet z.B. mit
/ISk5MT174-0001
Die Baudrate läßt sich auch auf 9600 Baud umstellen wenn man innerhalb von 2s nachdem der Zähler seine Identifikation geschickt hat, ein Acknowledge Paket (ACK050CRLF) schickt (Zahlen in <> in HEX).
<06>050<0D><0A>
Worauf der Zähler beginnt seine Daten mit 9600 Baud auszugeben.
Beispiel vzlogger.conf
Im Frontend wird ein Kanal 'El.Energie (Zählerstände)' angelegt. Als Auflösung wird '1' eingetragen. Der Style sollte 'steps' sein. Weiter sollte der 'Initialverbrauch' (aktueller Zählerstand) eingetragen werden.
{ "retry": 0, "daemon": true, "verbosity": 15, "log": "/var/log/vzlogger.log", "local": { "enabled": false, "port": 8080, "index": true, "timeout": 0, "buffer": 0 }, "meters": [ { "enabled": true, "allowskip": false, "interval": -1, "aggtime": -1, "aggfixedinterval": false, "channels": [ { "uuid": "hier die UUID des im Frontend angelegten Kanals (El. Energie (Zählerstand) ) einfügen", "identifier": "1.8.0", "api": "volkszaehler", "middleware": "http://localhost/middleware.php", "aggmode": "max", "duplicates": 0 } ], "protocol": "d0", "device": "/dev/ttyUSB0", "pullseq": "2F3F210D0A", "ackseq": "063035300d0a", "baudrate": 300, "baudrate_read": 9600, "parity": "7e1", "wait_sync": "off", "read_timeout": 10, "baudrate_change_delay": 0 } ] }
Test mit Test1107
Zum Testen kann http://www.meter-test-equipment.com/download/pdf/en/Test1107pack.exe verwendet werden.
Einzustellen ist, ausser dem passenden COM-Port, nichts da das Programm automatisch gemäß DIN EN 62056-21 initialisiert.
Beispieldaten
Nach der Initialisierungssequenz „/?!“ wurde der Standard-Datensatz mit 300bd ausgegeben und sieht wie folgt aus:
==> /?!<0D><0A>\\ <== /?!\\ <== --- 0x2F --- /\\ <== --- 0x49 --- I\\ <== --- 0x53 --- S\\ <== --- 0x6B --- k\\ <== --- 0x35 --- 5\\ <== --- 0x4D --- M\\ <== --- 0x54 --- T\\ <== --- 0x31 --- 1\\ <== --- 0x37 --- 7\\ <== --- 0x34 --- 4\\ <== --- 0x2D --- -\\ <== --- 0x30 --- 0\\ <== --- 0x30 --- 0\\ <== --- 0x30 --- 0\\ <== --- 0x31 --- 1\\ <== --- 0x0D --- CR\\ <== --- 0x0A --- LF\\ <== -- STX -- \\ <== 0-0:C.1.0*255(29789454)\\ <== 1-0:0.0.0*255(74632183)\\ <== 1-0:0.9.1*255(132228)\\ <== 1-0:0.9.2*255(1120609)\\ <== 1-0:1.7.0*255(0.420*kW)\\ <== 1-0:1.8.0*255(0000112.628*kWh)\\ <== 1-0:2.7.0*255(0.223*kW)\\ <== 1-0:2.8.0*255(0000074.224*kWh)\\ <== 0-0:F.F.0*255(0000000)\\ <== 1-0:31.6.0*255(105.59*A)\\ <== 1-0:51.6.0*255(100.93*A)\\ <== 1-0:71.6.0*255(100.93*A)\\ <== 1-0:31.7.0*255(1.09*A)\\ <== 1-0:51.7.0*255(1.38*A)\\ <== 1-0:71.7.0*255(2.42*A)\\ <== 1-0:32.7.0*255(232.3*V)\\ <== 1-0:52.7.0*255(233.7*V)\\ <== 1-0:72.7.0*255(233.8*V)\\ <== 1-0:0.2.0*255(1.01)\\ <== 0-0:C.1.6*255(724F)\\ <== !\\ <== -- ETX -- \\ <== -- BCC -- \\
Script für ZOC-Terminal
Ein Script für das ZOC Terminal Programm. Hier mit einer Schleife welche das Auslesen 2 mal wiederholt.
/* REXX (CREATED BY AB) */ CALL ZocTimeout 2 i = 0 do while i < 2 /* set serial port settings: COM6, 300-7E1, no RTS/CTS, no CD, 250ms-Break */ CALL ZocSetDevParm "[1]COM6:300-7E1|0|250" CALL ZocDelay 0.5 CALL ZocSend "/?!^(0D)^(0A)" CALL ZocWait "MT174-0001" CALL ZocDelay 0.5 /* Acknowlege proposed standard 9600 baud of MT-174 */ CALL ZocSend "^(06)050^(0D)^(0A)" /* set serial port settings: COM6, 300-7E1, no RTS/CTS, no CD, 250ms-Break */ CALL ZocDelay 0.2 CALL ZocSetDevParm "[1]COM6:9600-7E1|0|250" /* wait till end of data block <CR><LF><ETX> <BCC> */ CALL ZocWait "^(0D)^(0A)^(03)" /* wait additional time for BCC */ CALL ZocDelay 0.1 /* start again after pause */ CALL ZocDelay 0.2 i = i + 1 end