Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Der Timberwolf Server unterstützt ab Firmware V 2.0 die beiden Protokolle Modbus RTU und Modbus TCP in der Rolle als der steuernde Client (“Master”).

...

Table of Contents
excludeinhalt

...

Einsatzbereich

Die Protokollsammlung Modbus wird seit 40 Jahren in der Industrie und der Gebäudeautomatisierung für Sensornetze, Messwertaufbereitung und zur Anlagensteuerung verwendet.

Modbus ist der De-Facto Standard für den Datenaustausch mit Wärmepumpen, vielen Systemen der HKL-Technik, zur Steuerung von Wechselrichtern an Photovoltaikanlagen, Hausbatteriesystemen und Ladestationen für Elektrofahrzeuge. Darüber hinaus existiert ein umfangreiches Angebot für Modbus Sensoren und Modbus Smartmeter.

Haupteinsatzbereiche für Modbus ist:

  • Smartmeter: Für Modbus stehen teils äußerst preisgünstige Smartmeter und Zähler zur Verfügung

  • E-Mobility: Die meisten Wandladestationen sind Modbus fähig

  • Photovoltaik: Praktisch alle PV-Wechselrichter können den Status per Modbus ausgeben

  • Hausbatterien: Eine Vielzahl von Batterie-Steuerungen lassen sich per Modbus einbinden

  • Heizungssteuerungen: Viele Heizungs- und Wärmepumpensteuerungen sind ebenfalls per Modbus ansteuerbar

  • Sensoren: Für Modbus existiert sowohl ein breites Angebot an sehr günstigen Sensoren als auch für den professionellen Einsatz in der Industrie

  • Industrie: Sammeln, Umrechnen und Zusammenfassen von Messwerten inkl. Langzeitaufzeichnung und grafischer Auswertung sowie , Umrechnung von Modbus Systemen für übergeordnete SCADA Systeme

Übersicht

Historisches: Modbus wurde 1979 von dem Unternehmen Modicon als serielles Kommunikationsprotokoll zur Verwendung mit seinen speicherprogrammierbaren Steuerungen (SPS) veröffentlicht. Die Protokollsammlung Modbus dient der Übertragung von Informationen zwischen elektronischen Geräten. Modicon wurde 1988 zunächst durch die Daimler AG (AEG) und schließlich 1994 von der Schneider Electric SE übernommen. Der Modbus Standard wird von der “Modbus Organization, Inc”, einer in den USA registrierten unabhängigen, nur von den Mitgliedern getragenen non-profit Organisation, verwaltet.

...

Implementierung im Timberwolf Server: Der Timberwolf Server ist ab Firmware 2.0 mit einer umfassenden Modbus Implementierung ausgestattet. Die von jedem Browser auf jedem Endgerät nutzbare Benutzeroberfläche (“Web-APP”) ermöglicht eine besonders einfache und flexible Konfiguration der Leistungsmerkmale. Diese grafische Webschnittstelle ermöglicht eine interaktive Konfiguration, so dass die Parametrisierung nicht „blind“ vorgenommen werden muss. Alle Daten von Modbus Geräten können in Intervallen ab 10 ms abgefragt werden. Zusätzlich lassen sich alle Werte automatisch auf Plausibilität prüfen, mit freien Formeln umrechnen und in die Datentypen des Objekt-Systems konvertieren. Diese Objekte können anschließend dauerhaft aufgezeichnet und / oder (fast) beliebig mit allen anderen unterstützten Bussystemen n:m verknüpft werden.

Protokolle: Modbus RTU vs. Modbus TCP

Das Modbus Protokoll steht für zwei Übertragungsmedien zur Verfügung: Über serielle RS-485 Bussysteme sowie über TCP/IP Netzwerke. Die Verwendung von Modbus über RS-485 Bussysteme wird als „Modbus RTU“ bezeichnet. Die Protokollvariante, welche über TCP/IP Netze kommuniziert, wird als „Modbus TCP“ bezeichnet.

...

Modbus RTU basiert elektrisch auf dem sehr robusten RS-485 Bussystem.

Info

Bussysteme RS-485

RS-485 wurde 1983 von der Electronic Industrie Alliance ("EIA") entwickelt um die - erheblichen - Limitationen der seriellen RS-232 Schnittstelle zu überwinden. Der Standard wurde später von der Telecommunications Industry Association ("TIA") übernommen, die EIA löste sich 2010 auf.

Deswegen wird RS-485 auch als EIA-485 bzw. als TIA-485-A, selten auch als TIA/EIA-485-A bezeichnet. Wir verwenden in unseren Dokumentationen und Beschreibungen die übliche Bezeichnung RS-485. Die Buchstabenfolge "RS" stand für "Radio Selector", nach manchen Quellen auch als "Recommended Standard".

Der Standard beschreibt nur die elektrischen Schnittstellenbedingungen, es werden darin weder Stecker, Kabel oder die Übertragungsprotokolle definiert. RS-485 ist damit ein Industriestandard für eine physikalische Schnittstelle für die asynchrone Datenübertragung mit differenzieller Übertragung.

Die wesentlichen Merkmale von RS-485 

  • Multipoint Bussystem: RS-485 erlaubt zwischen 32 bis 320 Teilnehmer (abhängig von der Buslast)

  • Leitung: Eine einfache Leitung mit zwei verdrillten Adern ist ausreichend, Schirm üblicherweise nicht auflegen, für optimale Reichweite wird die Verwendung einer Leitung mit einem Wellenwiderstand von ca. 120 Ohm empfohlen.

  • Topologie: Nur als streng linearer Bus, keine Abzweigungen, auf keinen Fall Sterne

  • Entfernung: Leitungslängen bis 1220 Meter (4000 ft), der Bus ist sehr störfest.

  • Terminierung: Der Bus ist an beiden Enden mit jeweils einem 120 Ohm Widerstand (zwischen den beiden Daten-Adern) abzuschließen.

...

Modbus TCP “to intern” Gateways: Daneben gibt es auch “unechte” Modbus TCP Gateways, bei denen es zwar keinen nach außen geführten RTU Bus gibt, aber dennoch sich mehrere Funktionsmodule im Gerät befinden oder über einen herstellereigenen Bus geführt werden. Letzteres findet sich bei modularen HKL-Anlagen sowie modularen Wechselrichter- und Batterieanlangen. Die einzelnen Funktionseinheiten werden dann über die Unit ID adressiert, da der gemeinsame Controller über eine IP-Adresse angesprochen wird..

Info

Prüfen Sie die Dokumentation bei Modbus TCP Geräten auf Unit-ID Vorgaben

Bitte prüfen Sie bei Modbus TCP Geräten - ohne erkennbar herausgeführten RTU Bus - daher, ob diese als normaler Modbus TCP Server implementiert sind (welche die Unit ID nicht beachten) oder als Modbus TCP Gateway und daher zusätzlich die Angabe der richtigen Unit ID für die vollständige Adressierung erforderlich ist.

...

Modbus ist ein Client-Server-Protokoll (früher als “Master-Slave” bezeichnet). Der Client (früher “Master”) steuert die Kommunikation im Bus und fragt die Modbus Geräte ab, die als Modbus Server (früher als “Slave” bezeichnet) agieren. Der Client (“Master”) fragt nun von den Servern (“Slaves”) entweder die einzelnen Register ab („lesen“) oder überträgt Werte an dessen Register („schreiben“). Modbus RTU:

Ein die gesamte Kommunikation am Bus steuernder Client (aka “Master”) kann auch mehrere Server (aka “Slave”) ansprechen. Im Timberwolf Server legen Sie die Intervalle fest, welche Register welcher Server angesprochen werden und wie Lese- und / oder Schreib-Register angesprochen und konvertiert sowie mit dem Objektsystem verknüpft werden.

Zu Unterscheiden sind ZWEI verschiedene Ausführungen des “Modbus”:

Modbus RTU: In einem Modbus RTU Bus (serieller zweidraht Bus) darf es nur einen steuernden Client geben und bis zu 248 angesprochene Slaves adressierbare Server pro Modbus System (das ist ein auf RS-485 basierender serieller Bus mit Modbus Protokoll).

Modbus TCP: In Modbus TCP (TCP Netzwerk) ist die Zahl der Clients, die einen Server (gleichzeitig) abfragen nicht durch das Protokoll selbst begrenzt. Üblich ist es jedoch durchaus, dass in der jeweiligen Implementierung eines Modbus TCP Servers die Anzahl der gleichzeitigen Verbindungen durch Clients limitiert ist. Dies entnehmen Sie bitte der Anleitung des fremden Modbus TCP Servers bzw. Gateways.

Status
colourGreen
titleHinweis
Im Timberwolf Server ist die Anzahl der gleichzeitigen Verbindungen zu den Modbus Geräten (als Server) nicht künstlich begrenzt. Sie können den Timberwolf Server bis zur Ausschöpfung der Systemressourcen bzw. der verfügbaren Bandbreiten der Bussysteme konfigurieren.

Datenaustausch: Register, Registersets und Functioncode

Modbus Geräte können jeweils über bis zu vier Sets zu jeweils 65.536 Register verfügen. Zwei dieser Sets sind nur für 1-Bit Register vorgesehen (jeweils in der Variante “Nur-Lesen” sowie “Lesen- und Schreiben”), die anderen beiden Sets ausschließlich für 16 Bit Register (ebenfalls jeweils einmal als “Nur-Lesen” sowie einmal als “Lesen- und Schreiben”).

...

Für die Zuordnung der Functionscodes zu Registerset gilt die folgende Tabelle:

REGISTER

FUNCTIONCODES & ERRORCODES

Register-Adresse
(Base 1)

Datagram-Adresse
(Base 0)

Registerset

Breite

(Multiple)
Read

Single
Write

Multiple
Write

00001 bis
65536

0x0000 bis
0xFFFF

Set 0
Discrete Output
Coils

1 Bit

R/W

FC: 0x01 (01)
ER: 0x81

FC: 0x05 (05)
ER: 0x85

FC: 0x0F (15)
ER: 0x8F

00001 bis
65536

0x0000 bis
0xFFFF

Set 1
Discrete Input
Contacts

1 Bit

RO

FC: 0x02 (02)
ER: 0x82

00001 bis
65536

0x0000 bis
0xFFFF

Set 3
Analog Input
Registers

16 Bit

RO

FC: 0x04 (04)
ER: 0x84

00001 bis
65536

0x0000 bis
0xFFFF

Set 4
Analog Output
Holding Registers

16 Bit

R/W

FC: 0x03 (03)
ER: 0x83

FC: 0x06 (06)
ER: 0x86

FC: 0x10 (16)
ER: 0x90

Status
colourGreen
titleerläuterung
Die Datagram Adresse ist derjenige 16-Bit Wert der Registeradresse, der in der Kommunikation mit dem Modbus Gerät tatsächlich im Protokoll verwendet (also über den Bus übertragen) wird und ist hier der Unterscheidung wegen in hexadezimaler Schreibweise angegeben. Die Datagram Adresse erfolgt nach dem binären System und die erste nutzbare Adresse ist “0”.
In der Gerätedokumentation werden Registeradressen jedoch meist zur Basis 1 angegeben (erste nutzbare Adresse beginnt mit 1) obwohl diese zur Basis 0 über den Bus übertragen werden. Der Unterschied zur Darstellung in der Dokumentation wird auch manchmal als “Offset” bezeichnet. Details hierzu weiter unten.
Die Errorcodes werden vom Timberwolf Server automatisch ausgewertet.

Status
colourGreen
titleFunktion
Im Modbus Profileditor kann die Registeradresse mit dem Functioncode durch interaktive Prüfung bei der Erfassung eines Datenaustauschpunktes bereits während der Eingabe vom Nutzer getestet werden, so dass keine “blinde” Konfiguration nötig ist.

Registeradressierung: Base 0 oder Base 1 / Dezimal oder Hex

Damit wird bezeichnet, ob die Zählweise einer Adressierung bei 0 oder bei 1 beginnt. In der Computertechnik starten Adressen und Zähler bei dem Wert “0”, der Mensch ist gewohnt ab “1” zu zählen.

...