M-Bus


 

Der M-Bus Treiber ermöglicht es Werte aus M-Bus fähigen Slave Geräten, die nach dem EN13757 Standard auf 2-Draht Technik arbeiten, auszulesen.

Der Name des M-Bus-Treibers lautet: mbus
Die Routing-Adresse des ersten M-Bus-Treibers ist die 60
Die Datenpunktdatei für den ersten M-Bus-Treiber heißt: mbus1.txt
Die Konfigurationsdatei für globale Einstellungen des ersten M-Bus-Treibers heißt: mbus1.cfg

Bei dem M-Bus-Treiber sowie allen weiteren Gateway-Treibern gilt für die Definiton von Datenpunkten in der Datenpunktdatei:

Typ:Bedeutung
MGanzzahliger Wert (Binäre Datenpunkte,Zählwerte) der vom Gateway nur gelesen werden kann/soll.
SGanzzahliger Wert der vom Gateway gelesen sowie geschrieben werden kann/soll.
XAnalogwert (mit Nachkommastellen) der vom Gateway nur gelesen werden kann/soll.
YAnalogwert (mit Nachkommastellen) der vom Gateway gelesen sowie geschrieben werden kann/soll.
AString, findet z.B. Verwendung bei BACnet Trends und ESPA4.4.4 Datenpunkten

Die Adressen sind wie folgt aufgebaut.

„[slave] [typ] [nr]“

Kommunikationsstatus mit Slave Gerät: „[slave] failure“

Dabei gilt folgende Definition:

ParameterWertebereichBeschreibung
<slave>1 - 250
SXXXXXXXX
Primäradresse oder
8 stellige Sekundäradresse (mit vorangestelltem „S“) des anzusprechenden Slave-Gerätes
<typ>failure,
value,
vif,
ident,
manufacturer,
medium,
accesno,
signature,
version,
status,
sBit
Kommunikationsausfall mit Zähler, virtuell
Wertefeld <nr>
VIF-Feld <nr>
Herstellerspezifische Zählernummer, max. 8 Stellen
Hersteller-ID 0..27482 (EN 62056-21)
Gerätetyp=Medium 0..63 (EN 13757-3:2013 Tabelle 6)
Anzahl der Zugriffe
Reserviert
Version 0..254
Statusfeld
Statusbit aus Statusfeld (nr: 1..8)
<nr>Integer 1 - 127<nr>-te Wert aus dem „variable data structure“-Datensatz (–> siehe Dokumentation des Herstellers).

Die Adresse des ersten Wertes vom Slave „2“ wird demnach wie folgt in der Datei mbusX.txt angegeben:

[X 2 value 1]

Die Werte werden auf die Grundeinheiten normiert (W, Wh, m3, …). Durch Angaben in dem Formatfeld können die Werte auf andere Größen umgerechnet werden. Dies erfolgt anhand der Formatdefinition:

format = <format>

Dabei kann <format> folgende Werte annehmen:

<format>Beschreibung
umicro (z.B. Micrometer, Microliter)
mmilli (z.B. Millimeter, Milliliter)
kkilo (z.B. Kilowatt, Kilometer)
MMega (z.B. Megawatt)
GGiga (z.B. Gigawatt)

Hinweis: Wenn in dem Formatfeld ein ':' mit einer hexadezimalen Ziffernfolge angegeben ist, so wird nach dieser Ziffernfolge in den DIF/VIF-Feldern des Datenframe gesucht. Die <nr>-Angabe dient dann nur zur Unterscheidung der Datenpunkte. Es wird NICHT der <nr>-te Wert aus dem „variable data structure“-Datensatz benutzt!

Typische Datenpunktdefinitionen können demnach sein:

[M 2 failure]
name = Kommunikationsfehler mit Slave 2, 0=OK 1=Ausfall
query = pe

[M 2 value 1]
name = Zähler 2, digitale Betriebsmeldung
query = pe

[X 2 value 2]
name = Zähler 2, Temperatur Messwert
query = pe format =

[X 2 value 3]
name = Zähler 2, Verbrauchswert Strom
query = pe
format = k

[X S12345678 value 3]
name = Zähler Sekundäradresse 12345678, Verbrauchswert Strom
query = pe
format = k

[M 2 ident 3]
name = Zähler 2, Seriennummer=Ident-Nummer des Herstellers, max 8 Stellen
query = pe

Auslesung aktivieren/deaktivieren

Der M-Bus Treiber unterstützt die externe Aktivierung der Auslesung. Über einen speziellen Datenpunkt kann festgelegt werden, ob ein Polling der Werte stattfinden soll oder nicht. Die Syntax ist folgendermassen:

[S control]
name = Steuerung der Auslesung (0=Inaktiv, 1=Aktiv)
query = pe
writecache = yes

Tipps und Hinweise

Bei manchen Zählern kann es erforderlich sein, die Wartezeit zwischen den einzelnen Zeichen eines Telegramms zu erhöhen. Dazu kann man den Konfigurationsparameter „ReceiveInterCharTimeout“ auf einen höheren Wert, z. B. 500 (ms) zu setzen. Der Defaultwert ist 300 ms.

Bei Verwendung des M-Bus-Zählerscans kann es in großen Anlagen dazu kommen, dass ein Scan länger dauert. Hier gibt es eine Zeitbeschränkung, die im Defaultwert bei 600 Sekunden (10 Minuten) liegt. Auch hier kann über den Konfigurationsparameter „MeterScanTimeout“ eine höhere Dauer definiert werden.

Anmerkungen zum Pollverhalten

Wie oft ein Zähler abgefragt wird, hängt vom Eintrag „CacheTimeout“ in der Kofigurationsdatei ab. Der globale Parameter wirkt dann, wenn beim Zähler selbst nicht schon ein anderer Eintrag vorhanden ist.

Wie häufig der Treiber einen Polldurchlauf (bzw. -versuch) startet, spezifiziert der Parameter „Interval“. Wenn für „Interval“ ein Wert größer als „CacheTimeout“ angegeben ist, dann ist das Pollintervall ebenfalls größer.

Normalerweise kann man das Intervall aber auf 1 Sekunde belassen, damit der CacheTimeout zur Wirkung kommt.

Spezielle Auslesetelegramme

Manche Zähler benötigen eim Auslesen zusätzliche Informationen im Selektionstelegramm. Diese Zähler werden auch ggf. beim automatischen Scan nicht gefunden.

In der mbus1.cfg können pro Zähler die Telegramme für die Selektion definiert werden über:

[MBUS_6]
SND_UD = 73 06 51 08 05 08 2a

Der Start des M-Bus-Telegramms sowie die checksumme am Ende dürfen nicht angegeben werden.

Weitere M-Bus Schnittstelle über RS485

Manche Geräte können über eine RS485 Schnittstelle M-Bus kommunizieren. Wenn ein M-Bus Treiber über die RS485 Schnittstelle genutzt werden soll, muss diese in den Treiberkonfigurationen (General → Update → Treiberkonfiguration) eingestellt werden. Hierzu muss über das „Bearbeiten-Feld“ die COM3 (extern) Schnittstelle gewählt werden. (siehe auch FAQ: Wie ist die Kombination aus serieller und logischer Schnittstelle auf dem UGW?)