Benutzer-Werkzeuge

Webseiten-Werkzeuge


hardware:channels:meters:warming:kamstrup_multical_401

Kamstrup Multical 401

Der Kamstrup Multical 401 kann nach DIN EN 62056-21 über die IR-Schnittstelle ausgelesen werden. Wahrscheinlich geht es auch mit anderen Zählern der Firma Kamstrup, bitte bei erfolgreichen Versuchen das Wiki entsprechend ergänzen.

Hardware

Man benötigt den IR-Schreib-Lesekopf, da der Zähler erst angesprochen werden muss, bevor er sendet. Je nachdem woran man den IR-Kopf anschließen will, braucht man die USB-Version, RS232-Version oder die TTL-Version.

Kommunikation

Anders als in dem technischen Handbuch von Kamstrup beschrieben wird für eine erfolgreiche Kommunikation nur ein Stop-Bit benötigt und keine zwei. Die korrekten einstellungen für die Seriele Schnittstelle lauten also: (300/1200),7E1 und nicht (300/1200),7E2

Für den Zähler gibte es mehrere Dokumentierte Befehle auf denen er antwortet.

Kurioserweise hat man sich bei Kamstrup dafür entschieden, dass Befehle mit 300 Baud angenommen werden, dieser Antwortet jedoch mit 1200 Baud. Ein umstellen der Schnittsetellengeschwindigkeit nach dem Senden ist also erforderlich.

Folgende Befehle sind seitens Kamstrup dokumentiert:

Befehl:

/?![CR][LF][ACK]000[CR][LF]

Antwort:

/KAM[0]MCC[CR][LF][STX]
0.0(11 digits C/N)6.8(Energy * unit)
6.26(Volume * m3)
6.31(Hours * h) ! [CR] [LF] [ETX] [BCC]

Befehl (STANDARD DATA 1):

/#1

Antwort Beispiel:

0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000

Bedeutung:

- Zählerstand
- Volumen
- Betriebstunden
- T Vorlauf
- T Rücklauf
- T Vorlauf - T Rücklauf
- mom. Leistung
- mom. Durchfluß
- Max Leistung
- Info

Befehl (STANDARD DATA 2):

/#2

Antwort Beispiel:

00000000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000

Bedeutung laut tech. Dok:

- Cust. No.
- TA2
- TL2
- TA3
- TL3
- In-A
- In-B
- ABCCC
- DDEFFGG
- Date

Befehl (Target Data):

/#3

Antwort Beispiel:

00000000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000

Bedeutung laut tech. Dok:

- Cust. No.
- Reading day
- Energy
- Volume
- TA2
- TA3
- In-A
- In-B
- Peak power/flow year

Befehl (Montly Data):

/#5

Antwort Beispiel:

00000000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000 0000000

Bedeutung laut tech. Dok:

- Cust. No.
- Reading date
- Energy
- Volume
- TA2
- TA3
- In-A
- In-B
- Peak power/flow actual
Auf letzteren ( Montly Data ) hat mein Zähler jedoch nicht reagiert ( eingesetzt von den Stardwerken Flensburg )

Beispielcode in Python

Dieser Beispielcode füttert ein RRD-tool alle etwa 30 Sekunden mit den Daten, die dann mit rrd-graph geplottet werden können:

import serial
import rrdtool
from time import sleep
 
mc401 = serial.Serial(port='/dev/ttyUSB0', bytesize=serial.SEVENBITS, parity=serial.PARITY_EVEN, stopbits=serial.STOPBITS_ONE, timeout=2)
 
while True:
  mc401.baudrate = 300
  mc401.write("/#1")
  mc401.flush()
  sleep(1)
  mc401.baudrate = 1200
  mc401.flushInput()
  data = mc401.read(87).split()
  try:
    rrdtool.update('multical401.rrd', 'N:%s:%s:%s:%s:%s:%s:%s' % (data[0], data[1], data[3], data[4], data[5], data[6], data[7]))
  except IndexError:
    pass
  sleep(26)
 
mc401.close()

Quellen

hardware/channels/meters/warming/kamstrup_multical_401.txt · Zuletzt geändert: 2018/01/25 15:53 von jau