Versions Compared

Key

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

Der Timberwolf Server unterstützt ab Firmware 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 RTU Gateways: Bei “echten” Modbus Gateways gibt es einen Anschluss für einen RS-485 Bus zur Nutzung mit Modbus RTU Geräten. Hier können also serielle RTU Geräte angeschlossen werden, der Timberwolf Server spricht hier mit dem Gateway per Modbus TCP und das Gateway setzt diese Kommunikation auf den RS-485 Bus mit Modbus RTU um. Da an Modbus RTU theoretisch bis zu 248 Geräte angeschlossen werden können, muss eine Adressierung der RTU Geräte möglich sein. Dies erfolgt durch die im Modbus TCP mit angebbare Modbus Unit ID Adresse. Diese dient dann als ID in Modbus RTU. Geben Sie hier im Timberwolf Server dann unter ID die entsprechende ID im RTU System an.Modbus wird vom Gateway dannn als Modbus RTU ID umgesetzt und auf den Bus mit gesendet. Auf diese Weise kann ein das Gateway abfragender Client jedes einzelne Gerät auf dem hinter dem Gateway liegenden RTU Bus adressieren.

Hinweis: Im Timberwolf Server müssen Sie bei Nutzung von Modbus TCP nicht angeben, ob es sich um einen normalen Modbus TCP Server handelt oder um ein Modbus TCP Gateway. Geben Sie einfach - soweit für die Adressierung nötig - die zu nutzende ID an, diese wird dann immer mitgesendet und von Gateways entsprechend beachtet (und von normalen Servern nicht). Damit können Sie auch Modbus RTU Geräte, die z.B. sich in einem Nebengebäude befinden, mit dem Timberwolf Server verbinden, wenn Sie nur eine IP Verbindung (LAN/WLAN) zum Nebengebäude (oder weiter entfernt über VPN) verbinden.

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 , die über die Unit ID angesteuert werden. Bei z.B. Wechselrichtern / Batterien können die einzelnen Funktionseinheiten damit zwar mit einer IP angesprochen werden, aber 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 dann die einzelne Funktionseinheit adressiert werden.Unser Rat: 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.

Rollen: Modbus Client und Modbus Server

...

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”).

...

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.

...