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 |
---|---|
M | Ganzzahliger Wert (Binäre Datenpunkte,Zählwerte) der vom Gateway nur gelesen werden kann/soll. |
S | Ganzzahliger Wert der vom Gateway gelesen sowie geschrieben werden kann/soll. |
X | Analogwert (mit Nachkommastellen) der vom Gateway nur gelesen werden kann/soll. |
Y | Analogwert (mit Nachkommastellen) der vom Gateway gelesen sowie geschrieben werden kann/soll. |
A | String, 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:
Parameter | Wertebereich | Beschreibung |
---|---|---|
<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 |
---|---|
u | micro (z.B. Micrometer, Microliter) |
m | milli (z.B. Millimeter, Milliliter) |
k | kilo (z.B. Kilowatt, Kilometer) |
M | Mega (z.B. Megawatt) |
G | Giga (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?)