Modbus TCP zu M-BUS Gateway

<< Click to Display Table of Contents >>

Navigation:  Komponenten > Treiber > Modbus Master >

Modbus TCP zu M-BUS Gateway

Auszüge aus dem M-Bus – Modbus-TCP Gateway Benutzerhandbuch

 

Eine ausführliche Beschreibung liegt dem Gerät bei und ist im Downloadbereich auf http://www.busbaer.de erhältlich.

 

Allgemeines

 

Der M-Bus (Meter-Bus) ist eine etablierte Schnittstelle zur automatisierten Zählerauslesung. Vor allem die Einfachheit der Installation (einfaches Zweidrahtsystem mit Speisung durch den Bus) und die hohe Robustheit zeichnen diesen aus. Dies sind spezielle Eigenschaften, die für den Einsatz im industriellen Umfeld interessant sind. Der M-Bus ist in der Norm EN 13757 definiert. Darin ist neben einer eigenen Physik auch ein eigenes Protokoll festgelegt. Für die Anbindung an andere Systeme ist daher eine Übersetzung notwendig. Im Automatisierungsumfeld ist Modbus TCP als Kommunikationsstandard weit verbreitet.

Mit dem Produkt EISBÄR TCP – M80 (im Folgenden kurz EISBÄR TCP – MBUS genannt) steht ein Gateway zur Verfügung, welches die Welt des M-Bus mit der des Modbus TCP verbinden und so die Anbindung von Zählerdaten an unsere EisBär Software ermöglicht. Das Gerät unterstützt auf Seite des M-Bus den Betrieb von bis zu 80 Zählern (Standardlasten). Für die normkonforme Dateninterpretation ist auf dem EISBÄR TCP – MBUS ein leistungsstarker Protokoll-Stack implementiert. Mit diesem ist es möglich, ohne weiteren Konfigurationsaufwand alle am Markt verfügbaren Zähler auszulesen und deren Daten zu interpretieren. Die Daten können so anderen Systemen ohne Aufwand zur Verfügung gestellt werden. Das EISBÄR TCP – MBUS verfügt über eine Ethernet-Schnittstelle, welche Modbus TCP im Slave-Modus (Modbus TCP Server) unterstützt. Der EisBär kann so als Modbus-Master (Modbus TCP Client) über eine Netzwerkverbindung die Daten der Zähler direkt abrufen. Diese sind in Modbus-Registern verfügbar. Da das Gateway EISBÄR TCP – MBUS die Zähler selbstständig abruft, ist die initiale Konfiguration des Geräts notwendig. Diese erfolgt intuitiv über die Konfigurationswebseite des Geräts. Hier wird der volle Funktionsumfang des EISBÄR TCP – MBUS sichtbar. Neben der Basiskonfiguration können hier unter anderem die bereitzustellenden Werte selektiert, Bus-Scans durchgeführt und auch die aktuellen Daten angesehen werden. Somit wird die Fernwartung über einen Service-Rechner erleichtert.

 

Das EISBÄR TCP – MBUS wird in einem 2TE-Gehäuse (Teilungseinheiten) geliefert und ist für die Hutschienenmontage (DIN Tragschiene 35mm) vorgesehen.

 

 

Anschlüsse

 

Die Anschlüsse und Schnittstellen des EISBÄR TCP – MBUS sind auf unterschiedlichen Seiten des Geräts herausgeführt.

 

Folgende Bilder zeigen das Gerät:

clip0047        clip0048

Abbildung: EISBÄR TCP – M80

 

Anschluss

Bezeichnung

Anschlussbelegung

Bemerkung

Spannungsversorgung

24VDC, GND

24VDC:        Positiver Versorgungsanschluss

GND:        Negativer Versorgungsanschluss

24 VDC (±5%), Schraubklemme

Anschlussleitung 2,5mm²

M-Bus-Anschluss

MBUS+, MBUS-

MBUS+: positive Busleitung (2x)

MBUS-: negative Busleitung (2x)

Schraubklemme

Anschlussleitung 2,5mm²

MBUS+ und MBUS- sind jeweils miteinander verbunden

Ethernet-Anschluss

Ethernet

1: TX+

2: TX-

3: RX+

4:

5:

6: RX-

7:

8:

gemäß EIA/TIA-568A/B

 

Inbetriebnahme

 

Das EISBÄR TCP – MBUS startet nach dem Anschluss an die Versorgungsspannung  selbstständig. Standardmäßig erfolgen folgende Aufrufe beim Systemstart:

 

Konfiguration der Netzwerkschnittstelle (Ethernet) per DHCP oder statische Konfiguration

Bereitstellung des Laufwerks C: (RAMDrive) Bezug der Systemzeit per SNTP

Start des Hauptprogramms welches dann die gesamte Funktionalität u. a. die Webschnittstelle des EISBÄR TCP – MBUS zur Verfügung stellt.

 

 

Netzwerkkonfiguration und erster Zugriff

 

Das EISBÄR TCP – MBUS ist komplett über die Netzwerkschnittstelle konfigurierbar. Diese muss daher entsprechend Ihres Netzwerks konfiguriert werden. Fragen Sie dazu ggf. Ihren Administrator.

Das EISBÄR TCP – MBUS ist standardmäßig auf die IP-Adresse 192.168.1.101 (Subnetz-Maske: 255.255.0.0, Gateway: 192.168.1.254) eingestellt.

Für eine intuitive Bedienung steht auf dem Gerät eine Konfigurationswebseite zur Verfügung, welche über die IP des EISBÄR TCP – MBUS in einem Browser aufgerufen werden kann.

 

Webseite auf dem EISBÄR TCP – MBUS,  z. B.: http://192.168.1.101/ Es öffnet sich folgende Seite im Browser

 

clip0051

 

Konfiguration

 

Das EISBÄR TCP – MBUS wird über die interne Webseite konfiguriert. Alternativ kann auch anhand der Konfigurationsdateien eine Konfiguration manuell erstellt bzw. übertragen werden.

Auf der Webseite lassen sich Geräteparameter, Zählerkonfiguration sowie auch Service-Dienste darstellen bzw. ändern.

Im Auslieferungszustand loggt sich die Webseite automatisch über die Standardzugangsdaten ein. Wurde der Standardnutzer in der Konfiguration bereits deaktiviert, ist die Eingabe der korrekten Zugangsdaten erforderlich. Um einen bereits eingeloggten Nutzer (bzw. Standardnutzer) zu wechseln, kann die Schaltfläche Logout oben rechts gewählt werden.

Die Standardzugangsdaten im Auslieferungszustand sind admin/admin.

 

clip0063

 

Falls der eingeloggte Nutzer Schreibzugriff hat, muss dieser nach beendeter Konfiguration wieder ausgeloggt werden. Bleibt die Verbindung aktiv, ist von keinem anderen Arbeitsrechner ein Schreibzugriff auf das EISBÄR TCP – MBUS möglich.

 

Tab General

 

Der Tab General zeigt eine allgemeine Übersicht des EISBÄR TCP – MBUS. Folgende Werte können hier eingesehen bzw. verändert werden:

 

clip0064

 

 

Feldname

Beschreibung

Schreibzugriff

Device name

Name des Geräts (Zuordnung im CHIPtool)

ja

Serial number

Seriennummer des Geräts

nein

DHCP

Automatische Netzwerkkonfiguration aktivieren

ja

IP address

IP-Adresse des Geräts

ja

Subnet mask

Subnetz-Maske des Geräts

ja

Gateway address

Gateway-Adresse

ja

DNS IP

IP-Adresse des DNS-Servers*

ja

Free Memory Flash (kB)

Freier Platz auf dem internen Speicher des Controllers

nein

System date (local)

Aktuelles, lokales Systemdatum

ja

System time (local)

Aktuelle, lokale Systemzeit

ja

SNTP Server

Adresse des Zeitservers

ja

*Wird  der DNS-Server über DHCP ermittelt, wird dieser nicht auf der Webseite dargestellt.

 

Das Speichern der Konfiguration erfolgt mit der Schaltfläche Save. Mit Reload werden die zuletzt gespeicherten Werte geladen und aktuelle Änderungen zurückgesetzt.

 

Wird die Netzwerkkonfiguration geändert ist das EISBÄR TCP – MBUS nach dem Speichervorgang unter der neuen IP verfügbar. Alle bestehenden Verbindungen werden hierbei getrennt bzw. angemeldete Nutzer automatisch ausgeloggt.

Die Veränderung der Netzwerkparameter des EISBÄR TCP – MBUS kann die Erreichbarkeit einschränken. Falls die Netzwerkparameter bereits korrekt durch einen Administrator gesetzt wurden, sollten diese nicht geändert werden.

Durch das Setzen der Parameter über die Schaltfläche Save wird das EISBÄR TCP – MBUS automatisch neu initialisiert.

Datum und Uhrzeit werden im EISBÄR TCP – MBUS stets als UTC-Zeit (ohne Zeitzonenverschiebung) verarbeitet. Bei der Darstellung auf der Website rechnet der Browser diese entsprechend der lokal eingestellten Zeitzone des Rechners um. In Mitteleuropa ist dies beispielsweise die Mitteleuropäische Zeit bzw. die Mitteleuropäische Sommerzeit. Ist hier eine andere Zeitzone eingestellt, so wird auch die Zeit auf der Website entsprechend dargestellt.

 

Tab Meter

 

Der Tab Meter zeigt eine Übersicht der angeschlossenen Zähler und gibt dem Nutzer die Möglichkeit, automatisiert nach Zählern zu suchen, manuell Zähler hinzuzufügen oder bereits vorhandene Zähler zu konfigurieren:

 

clip0068

 

Feldname

Beschreibung

Interface

Schnittstelle zum Zähler (M-Bus)

S (Status)

Zeigt den Status des Zählers bzw. Zählerwerts (Ausrufezeichen: Zähler nicht auslesbar bzw. Zählerwert nicht aktuell, E: Zähler / Zählerwert editiert, A: Zähler / Zählerwert neu hinzugefügt, Stern: Zählerwertliste begrenzt siehe Parameter Maximum value count im Tab Configuration)

Serial

Seriennummer des Zählers (Zählernummer, Sekundär-ID)

MAN

Hersteller des Zählers (Kürzel)

Medium

Zählermedium

Version

Versionsnummer des Zählers

Link

Primäradresse eines Zählers

Value

Zählerstand bzw. Messwert

Scale

Skalierungsfaktor (wissenschaftliche Notation)

Unit

Einheit

Cycle

Ausleseintervall in Sekunden (bei 0 wird der allgemeine Auslesezyklus verwendet)

User label

Benutzerdefinierte Beschreibung des Zählerwerts – Zulässige Zeichen sind: A-Z, a-z, 0-9, !,§,$,%,&,/,(,),=,?,+ und * Ein Komma ist ebenfalls zulässig. Unzulässig sind: <,> und “.

Description

Beschreibung des Zählerwerts entsprechend der zweiten Spalte in Tabelle 18: Messtypen. Die Darstellung von Speichernummer, Tarif, Werttyp und Rohdaten ist über den Parameter Description mode im Tab Configuration konfigurierbar.

Register

Modbus-Registeradresse mit einem festen Raster von jeweils 10 Registern. Zählerwerte mit der Adresse 0 werden im Modbus TCP-Protokoll nicht übertragen.

 

Tab Server

 

Der Tab Server ermöglicht die Parametrierung der Modbus-Schnittstelle des EISBÄR TCP – MBUS.

 

clip0078

 

Feldname

Beschreibung

Schreibzugriff

Modbus Mode

Betriebsart Modbus TCP

nein

Modbus Port

Netzwerk-Port zu dem sich die Gegenstelle (der Modbus TCP Client) verbinden muss

ja

 

Das Speichern der Konfiguration erfolgt über die Schaltfläche Save. Mit Reload werden die zuletzt gespeicherten Werte geladen und aktuelle Änderungen zurückgesetzt.

Durch das Setzen der Parameter über die Schaltfläche Save wird das EISBÄR TCP – MBUS automatisch neu initialisiert.

 

Tab User

 

Im Tab User können verschiedene Nutzer mit spezifischen Zugriffsrechten angelegt werden. Im Auslieferungszustand sind folgende Nutzer vorkonfiguriert:

 

Nutzername

Passwort

Bemerkung

admin

admin

Administrativer Nutzer, der den Vollzugriff auf alle Dienste des EISBÄR TCP – MBUS ermöglicht (HTTP, FTP, Flash-Update, IP-Konfiguration)

web

web

Standardnutzer für die Weboberfläche – Ist ein Nutzer mit diesem Namen und Passwort vorhanden,

loggt sich die Weboberfläche automatisch mit diesen Zugangsdaten ein. Andernfalls wird der Nutzer zur Eingabe der Zugangsdaten aufgefordert. Im Auslieferungszustand hat dieser Nutzer vollen Zugriff auf die Webseite des EISBÄR TCP – MBUS

ftp

ftp

Nutzer für den FTP-Zugriff auf das Log-Verzeichnis: C:/log

 

Der Nutzer admin kann in der allgemeinen Nutzerkonfiguration nicht geändert bzw. gelöscht werden. Das Administrator Passwort kann nur über die Schaltfläche Change password geändert werden, wenn der Nutzer admin selbst einloggt ist.

Bei Verlust des Administratorpassworts kann das EISBÄR TCP – MBUS nur im Hause der Firma Alexander Maier GmbH zurückgesetzt werden, ein Zugriff auf die Dateien auf dem EISBÄR TCP – MBUS ist nur begrenzt möglich. Beim Zurücksetzen gehen alle Konfigurationsdaten verloren.

Nur der Nutzer admin hat per FTP vollen Zugriff auf das Dateisystem des EISBÄR TCP – MBUS. Der zweite FTP-Nutzer kann auf C:/log zugreifen.

 

Spezifikation Modbus TCP

 

Das Modbus-Protokoll wurde ursprünglich von der Firma Modicon (heute Schneider Electric) für den Datenverkehr mit ihren Controllern entwickelt. Daten wurden in Form von 16-Bit-Registern (Integer-Format) oder als Status-Informationen in Form von Datenbytes übertragen. Im Laufe der Zeit wurde das Protokoll kontinuierlich erweitert. Modbus TCP ist eine Art davon. Modbus TCP ist Teil der Norm IEC 61158. Eine Spezifikation findet sich unter: http://www.modbus.org

 

Das Modbus-Protokoll ist ein Single-Master Protokoll. Dieser Master steuert die gesamte Übertragung und überwacht eventuell auftretende Timeouts (keine Antwort vom adressierten Gerät). Die angeschlossenen Geräte dürfen nur nach Anforderung durch den Master Telegramme versenden. Das EISBÄR TCP – MBUS Gateway ist ein Modbus TCP-Server und daher ein Modbus TCP-Slave. Die Modbus-Kommunikation erfordert den Aufbau einer TCP-Verbindung zwischen einem Client (z. B.: PC mit EisBär SCADA) und dem Server (EISBÄR TCP – MBUS). Für die Kommunikation wird der für Modbus reservierte TCP-Port aus dem Konfigurations-Tab Server verwendet. Dieser ist standardmäßig auf 502 konfiguriert. Falls zwischen Server und Client eine Firewall angeordnet ist, muss sichergestellt werden, dass der konfigurierte TCP-Port freigeschaltet ist.

 

Funktionscodes

 

Folgende Funktionscodes werden beim EISBÄR TCP – MBUS unterstützt:

Code

Name

Beschreibung

0x01

Read Coil

Aktuell ohne Funktion

0x03

Read Holding Register

Abruf der Zählerdaten

0x05

Write Single Coil

Aktuell ohne Funktion

0x06

Write Single Register

Aktuell ohne Funktion

0x10

Write Multiple Register

Aktuell ohne Funktion

0x0F

Force Multiple Coil

Aktuell ohne Funktion

0x2B

Read Device Identification

Abruf von Geräteinformationen mit MEI = 0x0E

 

Die mit „ohne Funktion“ gekennzeichneten Funktionscodes werden mit ILLEGAL DATA ADDRESS (0x02) beantwortet, alle anderen, nicht aufgeführten mit der Fehlermeldung ILLEGAL Funktion (0x01).

 

Wird der Funktionscode 0x2B mit MEI = 0x03 genutzt, gibt das Gerät einen Identifikationspaket zurück. Als Device ID Code werden die Werte 0x01 und 0x02 unterstützt, somit können die einfachen "basic device identification" und die normalen "regular device identification" Daten abgerufen werden. Folgende Daten sind über die Geräteidentifikation abrufbar:

 

Object ID

Name

Datentyp

Beispiel

Typ

0x00

VendorName

String

Alexander Maier GmbH

Basic

0x01

ProductCode

String

1036

Basic

0x02

MajorMinorRevision

String

001

Basic

0x03

VendorUrl

String

www.busbaer.de

Regular

0x04

ProductName

String

EISBÄR TCP – M80*

Regular

0x05

ModelName

String

Standard

Regular

0x06

UserApplicationName

String

Modbus TCP Gateway

Regular

* Entspricht dem konfigurierten Devicename im Tab General

 

Datenanordnung

 

Die Datenanordnung in den Modbus-Registern entspricht dem üblichen Aufbau. Es wird die big endian Darstellung genutzt, daher wird in den 16 Bit-Registern das höhere Byte zuerst gesendet, das niedrigere dann danach.

 

Beispiel:        Wert: 0x1234        gesendet wird: zuerst 0x12, dann 0x34

 

Zahlen und Datenbereiche, welche über 16 Bit hinausgehen, werden in ähnlicher Weise dargestellt. Auch hier wird das höchstwertige 16 Bit-Register zuerst gesendet, es liegt daher an der niedrigsten Registeradresse.

 

Beispiel:        Wert: 0x12345678        gesendet wird: zuerst 0x12, dann 0x34, 0x56 und 0x78

 

Die Anordnung der 32- und 64-Bit Werte lässt sich innerhalb der Systemkonfiguration über den Parameter MODBUS_SWAP anpassen.

 

Zur Überprüfung des Datenlayouts kann im Tab Server die Übertragung von Pseudodaten aktiviert werden. Es werden dann folgende Daten über Modbus entsprechend der Registerbelegung bereitgestellt:

Adresse

Wert

Beschreibung

Dekodierter Wert

0

0x0002

Seriennummer des EISBÄR TCP – MBUS, oberes Word

0x2993A

1

0x993A

Seriennummer des EISBÄR TCP – MBUS, unteres Word

2

0x0001

Version des Kommunikationsprotokolls des EISBÄR TCP – MBUS

1

3

0x006F

Version der Software des EISBÄR TCP – MBUS

0x6F = 111: Version 1.11

4

0x519C

Zeitstempel des EISBÄR TCP – MBUS, oberes Word

0x519CC16D = 1369227629:

Mittwoch, 22. Mai 2013, 15:00:29 GMT+2

5

0xC16D

Zeitstempel des EISBÄR TCP – MBUS, unteres Word

6

0x0000

Leerfeld


7

0x0100

Typfeld des Registersatzes im oberen Byte

0x01: Gatewayeintrag

8

0x0000

Leerfeld


9

0x0000

Leerfeld


10

0x00BC

Seriennummer des Zählers, oberes Word

0xBC614E = 12345678

11

0x614E

Seriennummer des Zählers, unteres Word

12

0x0443

Herstellerkennung des Zählers (s. Kap.: 6.2.2)

0x0443: ABC

13

0x0102

Version (oberes Byte) und Medium (unteres Byte) des Zählers

0x0102: Version 1, Medium 2 (Elektrizität)

14

0x519C

Zeitstempel des Zählers, oberes Word

0x519CC164 = 1369227620:

Mittwoch, 22. Mai 2013, 15:00:20 GMT+2

15

0xC164

Zeitstempel des Zählers, unteres Word

16

0x0000

Leerfeld


17

0x0200

Typfeld des Registersatzes im oberen Byte

0x02: Zählereintrag

18

0x0000

Leerfeld


19

0x0000

Leerfeld


20

0x0000

Zählerwert (Ganzzahl), höchstes Word

0xBC614E = 12345678

Resultierender Zählerwert:

12345678 * 10^-4 = 1234.5678 Wh

21

0x0000

Zählerwert (Ganzzahl)

22

0x00BC

Zählerwert (Ganzzahl)

23

0x614E

Zählerwert (Ganzzahl), niedrigstes Word

24

0x449A

Zählerwert (Gleitkomma), oberes Word

0x449A522B = 1234.567800

25

0x522B

Zählerwert (Gleitkomma), unteres Word

26

0xFFFC

Skalierungsfaktor (Exponent zur Basis 10)

0xFFFC = -4: Faktor = 10^-4

27

0x0005

Typfeld des Registersatzes im oberen Byte und Einheit im

unteren Byte (s. Kap.: 6.2.2 und Tabelle 19: Einheiten)

0x00: Zählerwerteintrag

0x05: Wh

28

0x519C

Zeitstempel des Zählerwerts, oberes Word

0x519CBBB3 = 1369226163:

Mittwoch, 22. Mai 2013, 14:36:03 GMT+2

29

0xBBB3

Zeitstempel des Zählerwerts, unteres Word

 

Zählerdatenerfassung und Verarbeitung

 

Die Hauptaufgabe des EISBÄR TCP – MBUS liegt in der Verarbeitung und Weiterleitung der erfassten Zählerwerte. Hierzu müssen folgende Punkte erfüllt sein:

•Die verfügbaren Zähler müssen im EISBÄR TCP – MBUS korrekt konfiguriert sein (Zählerkonfiguration).

•Für die Übertragung der Daten über Modbus-TCP müssen gültige Registeradressen für die einzelnen Zähler bzw. Zählerwerte konfiguriert sein.

•Die erfassten Zählerdaten müssen über Modbus TCP an eine Steuerung übermittelt werden können.

•Die Zählerdaten müssen von der Steuerung verarbeitet werden können (Zählerdatenformat).

 

Modbus Registerlayout

 

Dieses Kapitel beschreibt die Modbus-Registerspezifikation. Diese arbeiten mit einem festen Raster von jeweils 10 Modbus-Registern.

Die Registeradressen werden ausgehend vom Wert 0 gezählt.

Bei Datentypen, die mehr als ein Register umfassen, wird das höherwertige Datenwort an der niedrigeren Adresse encodiert.

Die Modbus-Register werden über den Funktionscode 0x03 (Read holding register) ausgelesen.

 

Im Modbus-Protokoll werden die Daten als Integer- oder Float-Wert übermittelt. Andere Datenformate, welche beim M-Bus spezifiziert sind (z. B.: BCD), werden intern vor der Übertragung bereits in Integer-Werte gewandelt. Die 10 Modbus-Register eines Zählerwerteintrags sind entsprechend der folgenden Tabelle definiert, wobei das Offset zur konfigurierten Modbus-Adresse hinzuaddiert werden muss:

 

Offset

Bezeichnung

Datenbreite

Beschreibung / Bemerkung

0 - 3

Zählerwert

64 Bit

Vorzeichenbehafteter, ganzzahliger Zählerwert (unskaliert)

4 - 5

Zählerwert

32 Bit

Gleitkomma-Zählerwert (skaliert zur Einheit im Register 7), IEEE 754

6

Skalierungsfaktor

16 Bit

Vorzeichenbehafteter Skalierungsfaktor zur Basis 10

7

Typfeld / Einheit

16 Bit

Das Typfeld (Wert 0 für Zählerwert-Eintrag) wird im höherwertigen Byte übertragen. Im niederwertigen Byte wird die Einheit übertragen. Diese wird anhand Tabelle 19: Einheiten im Kapitel 6.2.1 zugeordnet. Der übertragene Wert entspricht dem Index.

8 - 9

Zeitstempel

32 Bit

Unix-Zeitstempel, der durch den Zähler bereitgestellt wird. Falls der Zähler keine Zeitwerte übermittelt, ist dieser Zeitstempel 0.

 

Die folgende Abbildung zeigt eine Beispielkonfiguration der Modbus-Adressen über die Weboberfläche:

clip0103

 

Dem Modbus-Master werden in diesem Beispiel folgende Daten übermittelt.

Adresse

Wert

Bezeichnung

Dekodierter Wert

18

19

0x0000

0x0000

Reserviert


Zählerwerteintrag

20

21

22

23

0x0000

0x0000

0x0000

0x010B

Zählerwert (Ganzzahl)

0x000000000000010B = 267

Resultierender Zählerwert: 267 * 10^3 Wh

24

25

0x4882

0x5F00

Zählerwert (Gleitkomma)

0x48825F00 = 267000.000000 Wh

26

0x0003

Skalierungsfaktor

Faktor = 10^3

27

0x0005

Typfeld / Einheit

Typ = 0 → Zählerwerteintrag

Einheit = 5 → Wh

28

29

0x519C

0xBBB3

Zeitstempel

0x519CBBB3 = 1369226163 =

Mittwoch, 22. Mai 2013, 14:36:03 GMT+2