Inhaltsverzeichnis

Iskraemeco MT174

Genaue Typenbezeichnung: MT174-D2A52-G22-M3K0
Das „K0“ bedeutet, dass er über eine bidirektionale Kundenschnittstelle nach DIN EN 62056-21 verfügt. Dieser hier kommuniziert in d0.

Hardware

Kommunikation mittels IR-Schreib-Lesekopf bei 300bd, 7E1 nach DIN EN 62056-21. Der Lesekopf muss mit der Zuleitung nach unten montiert werden.

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. Ein Haken bei 'Öffentlich' und bei 'Cookie' machen. Weiter sollte der 'Initialverbrauch' (aktueller Zählerstand) eingetragen werden. Die UUIDs werden automatisch erzeugt und können durch klicken auf das (i) rechts neben dem Kanal sichtbar gemacht werden. Wenn alles funktioniert, kann 'verbosity' in der vzlogger.conf auf 0 gesetzt werden.

vzlogger.conf
{
  "retry": 0,
  "verbosity": 15,
  "log": "/var/log/vzlogger/vzlogger.log",
  "local": {
    "enabled": false,
    "port": 8081,
    "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-0:1.8.0",
          "api": "volkszaehler",
          "middleware": "http://localhost/middleware.php",
          "aggmode": "none",
          "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 dieses Windows-Programm 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, 9600-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