Error processing SSI file
 
  Technik und Trends

Error processing SSI file
 
Modbus-TCP

Modbus-TCP hat sich neben Profinet IO, EtherNet/IP, EtherCAT und Powerlink als De-facto-Standard für die industrielle Kommunikation über Ethernet etabliert. Basis hierfür bildet eine stabile Spezifikation, verfügbare Basistechnologie und eine Vielzahl industrieller Seriengeräte.

Zieht man nach der Einführung von Ethernet in der Automatisierungstechnik eine Zwischenbilanz, dann ist zunächst einmal festzustellen, dass es ein einheitliches Anwendungsprotokoll für Industrial Ethernet bisher nicht gibt und wohl auch in absehbarer Zukunft nicht geben wird. Dank der Bemühungen der IAONA sprechen zwar alle Beteiligten Industrieverbände miteinander, konkrete Ergebnisse gibt es bisher aber nur im Bereich der Installationsrichtlinien. Die heute bekannten verschiedenen Lösungen können in zwei Kategorien unterteilt werden:

  • Systeme für verteilte Automatisierung
  • Feldbus-on-Ethernet-Lösungen

Zu den Systemen für die verteilte Automatisierung zählen Profinet CBA und IDA. Beide Konzepte definieren ein ganzheitliches System, bei dem eine Automatisierungsaufgabe durch das Zusammenwirken von verteilten, intelligenten Geräten gelöst wird. Verteilte Systeme unterscheiden sich grundlegend von den heute üblichen dezentralen Automatisierungslösungen und erfordern eine völlig neue Vorgehensweise bei Engineering und Programmierung.

Anders bei den Feldbus-on-Ethernet-Lösungen: Sie sind dadurch gekennzeichnet, dass das jeweilige Feldbusprotokoll weitgehend unverändert beibehalten wurde und Ethernet-TCP/IP als neue Übertragungstechnik zugelassen wurde. Typische Vertreter dieser Kategorie sind Profinet IO (Siemens, PNO), EtherNet/IP (Rockwell Automation, ODVA), Modbus-TCP (Schneider Automation, IDA) und EtherCAT (Beckhoff, ETG). Wesentliche Vorteile dieser Systeme liegen darin, dass die Spezifikationen stabil sind und der Einsatz kein grundsätzliches Umdenken bei den Anwendern erfordert. „Weniger ist mehr“ lautet das Motto dieser Lösungen, die nicht für verteilte Automatisierung, sondern für eine schnelle, zuverlässige Übertragung von Daten zwischen Automatisierungsgeräten und Feldgeräten gedacht sind.

Die Modbus-Lösung

Von Kritikern belächelt und von Praktikern geschätzt, ist Modbus-TCP eigentlich nichts Neues. Vielmehr wurde einfach Ethernet-TCP/IP als eine weitere Übertragungstechnik für das bereits seit 1979 bekannte Modbus-Protokoll zugelassen. Modbus-TCP ist heute ein offener Internet-Draft-Standard, der von Schneider Automation in die für die Internetstandardisierung zuständige Organisation IETF (Internet Engineering Task Force) eingebracht wurde. Die seit der Ursprungsvariante bewährten Modbus-Dienste und das Objektmodell wurden unverändert beibehalten und auf TCP/IP als Übertragungsmedium abgebildet. Die Modbus-Familie wurde damit um eine weitere Variante erweitert und besteht nun aus dem klassischen Modbus-RTU (asynchrone Übertragung über RS-232 oder RS-485), Modbus-Plus (High-Speed-Kommunikation über ein Token-Passing-Netzwerk) und dem Modbus-TCP (Ethernet-TCP/IP-basierte Client-Server-Kommunikation). Allen Varianten gemeinsam ist ein einheitliches Anwendungsprotokoll, das ein universelles Objektmodell für automatsierungstechnische Daten und Kommunikationsdienste für den Zugriff festlegt.

Modbus-Varianten

Das Anwendungsprotokoll ist unabhängig vom jeweils verwendeten Übertragunsgmedium und nach dem Client-Server-Prinzip organisiert. Mit dem Aussenden des Request-Telegramms initiiert der Client einen Dienstaufruf, der vom Server mit einem Response-Telegramm beantwortet wird. Request- und Response-Telegramm enthalten Parameter und/oder Daten. Die Unterschiede zischen dem Modbus-Standardtelegramm und dem Modbus-TCP-Telegramm sind in der folgenden Grafik dargestellt.

Unterschiede zwischen Modbus-Standardtelegramm und Modbus-TCP-Telegramm

Während bei einer Modbus-Standardkommunikation zusätzlich zu Befehlscode und Daten noch die Slave-Adresse und eine CRC-Prüfsumme übertragen wird, übernimmt diese Funktionen bei Modbus-TCP das unterlagerte TCP-Protokoll.

Am Beispiel eines „Read Discrete Input“-Kommandos werden nachfolgend die Interaktionen zwischen Client und Server beschrieben. Der Client fordert mit diesem Befehl das Lesen der digitalen Eingänge des Servers an. Der Befehlscode und die Parameter werden im Request-Telegramm an den Server geschickt:

Funktionscode 1 Byte 2
Startadresse 2 Byte 0 - 65535
Anzahl Eingänge 2 Byte 1 - 2000

Hat der Server den Lesebefehl korrekt empfangen, dann werden die gewünschten Eingangsdaten im Response-Telegramm an den Client übertragen. Das Response-Telegramm hat folgenden Aufbau:

Funktionscode 1 Byte
Anzahl 1 Byte
Eingangswerte N Byte

N entspricht der Anzahl der Eingänge dividiert durch 8. Ist der Divsionsrest größer 0, dann wird N um eins erhöht und die restlichen Bits werden im letzen Byte übertragen. Hierbei werden nicht benötigte Bits mit Nullen aufgefüllt. Kann der Server die angeforderten Daten nicht bereitstellen, dann sendet er anstelle des Response-Telegramms ein Error-Telegramm an den Client.

Neben dem „Read Discrete Inputs“-Dienst definiert Modbus noch viele weitere in der Spezifikation festgelegte Standardbefehle. Darüber hinaus können die Funktionscodes 65-72 und 100-110 für benutzerdefinierte Dienste individuell benutzt werden. Eine Übersicht einiger einheitlich (Public) festgelegten Modbus-Dienste zeigt die folgende Tabelle:

Methode Datentyp Dienst Code Zugriff
Bitweise Eingänge Read Discrete Input 02 Read
Bitweise Ausgänge/Coils Read Coils 01 Read
Bitweise Ausgänge/Coils Write Single Coil 05 Write
Wortweise Eingänge Read Input Register 04 Read
Wortweise Ausgänge/Coils Write Single Register 06 Write

Modbus-Datenmodell

Das Datenmodell ist einfach strukturiert und unterscheidet 4 Grundtypen: Discrete Inputs (Eingänge), Coils (Ausgänge), Input Register (Eingangsdaten) und Holding Register (Ausgangsdaten). Die Definition und Namensgebung lässt auf die Ursprünge des Modbus-Protokolls schließen. In heutigen Modbus-Implementierungen werden diese Grunddefinitionen sehr großzügig auf die vielfältigen Datentypen moderner Automatisierungsgeräte übertragen. Die Bedeutung und Adresse der Daten müssen die Hersteller im jeweiligen Einzelfall im Gerätehandbuch individuell angeben. Elektronische Gerätedatenblätter und herstellerübergreifende Engineeringtools wie bei den modernen Feldbussystemen sind in der Modbus-Welt bisher (noch) nicht anzutreffen.

Mapping auf TCP/IP

Modbus-TCP verwendet für die Datenübertragung in Ethernet-TCP/IP-Netzwerken das "Transport Control Protocol" (TCP) für die Übertragung des Modbus-Anwendungsprotokolls. Die Parameter und Daten werden dabei nach dem Encapsulation-Prinzip in den Nutzdatencontainer eines TCP-Telegramms eingebettet. Beim Vorgang der Encapsulation (Einbettung) erzeugt der Client einen "Modbus Application Header" (MBAP), der dem Server die eindeutige Interpretation der empfangenen Modbus-Parameter und Befehle ermöglicht. Grundsätzlich darf in einem TCP/IP-Telegramm nur ein Modbus-Anwendungstelegramm eingebettet werden.

Modbus-TCP arbeitet verbindungsorientiert

Bevor Nutzdaten über Modbus-TCP übertragen werden können, muss zunächst eine TCP/IP-Verbindung zwischen Client und Server aufgebaut werden.Serverseitig ist für Modbus-TCP die Portnummer 502 festgelegt. Der Verbindungsaufbau geschieht typischerweise automatisch über das TCP/IP-Socketinterface durch die Protokollsoftware und ist dadurch völlig transparent für den Anwendungsprozess. Ist die TCP/IP-Verbindung zwischen Client und Server erst einmal hergestellt, dann können Client und Server beliebig oft und viele Nutzdaten über diese Verbindung übertragen. Client und Server können gleichzeitig mehrere TCP/IP-Verbindungen aufbauen. Die maximale Anzahl hängt von der jeweiligen Leistungsfähigkeit der TCP/IP-Anschaltung ab. Bei der zyklischen Übertragung von Eingangs- und Ausgangsdaten bleibt die Verbindung zwischen Client und Server permanent bestehen. Im Falle einer Bedarfsdatenübertragung für Parameter oder Diagnosemeldungen kann die Verbindung nach Abschluss der Datenübertragung abgebaut und bei erneutem Kommunikationsbedarf wieder aufgebaut werden.

Modbus-Sequenz

Systemaspekte

Die serielle Kommunikation über RS-232/485-Modbus-Schnittstellen ist seit vielen Jahren ein weit verbreiteter Industriestandard. Dank des einheitlichen Anwendungsprotokolls können auch diese Geräte über Protokollumsetzer, z.b. mit dem Anybus Communicator, einfach in Modbus-TCP-Netzwerke integriert werden. In fast allen neueren Geräten, die über einen integrierten Ethernet-TCP/IP-Anschluss verfügen, ist Modbus-TCP als Standardvariante für das Industrial-Ethernet-Anwendungsprotokoll vorhanden. Als Clients stehen eine breite Palette von Standard-SPS mit zusätzlichem Kommunikationsprozessor, u.a. von Schneider, Modicon, Rockwell und Siemens, sowie PC-Karten und OPC-Server zur Verfügung.

Performance

Die Leistungsfähigkeit eines Modbus-TCP-Netzwerkes hängt ganz wesentlich von der Art und Ausführung des jeweiligen Ethernet-Netzwerkes und von der Leistungsfähigkeit der Prozessoren im Kommunikationsinterface der beteiligten Geräte ab. Die Protokolleffizienz des Modbus-TCP-Protokolls ist mit etwa 60% relativ hoch. Dies wird dadurch erreicht, dass das Anwendungsprotokoll die Übertragung mehrerer Registerwerte in einem TCP/IP-Frame erlaubt und dem regulärem TCP/IP-Overhead nur wenige Byte zusätzlichen Protokoll-Overhead hinzufügt. In einem 100 Mbit/s switched Ethernet-Netzwerk können im theoretischen Idealfall etwa 3,6 Millionen 16-Bit-Registerwerte pro Sekunde übertragen werden. In der Praxis wird dieser Wert jedoch bei weitem nicht erreicht, da die tatsächlichen Übertragungszeiten im Netzwerk und vor allem die Protokollbearbeitungszeiten in der Kommunikationsschnittstelle der Feldgeräte nicht vernachlässigt werden können und performance-bestimmende Faktoren darstellen. Praxistests mit einer Momentum-SPS haben ergeben, dass pro Sekunde etwa 4.000 dezentrale I/O-Geräte mit je 32 digitalen E/A- und 16 analogen Messwerten bedient werden konnten. Dies entspricht in etwa auch der Datentransportleistung eines Profibus-DP-Systems mit 1,5 Mbit/s.

Zertifizierung

Für die Zertifizierung von Modbus-TCP-Geräten wurde an der Universität von Michigan ein spezialisiertes Prüflaboratorium eingerichtet. Die Prüfung umfasst einen Protokoll- und einen Interoperabilitätstest. Zertifizierte Geräte werden im Modbus-Produktkatalog gekennzeichnet und bieten Anwendern den Vorteil, dass eventuelle Kommunikationsprobleme im Verbund mit anderen Geräten bereits im Vorfeld eines industriellen Einsatzes erkannt und im Verlauf der Prüfprozedur behoben wurden.

Abgrenzung und Ausblick

Modbus-TCP ist ein pragmatischer Ansatz zur Nutzung von Ethernet als Übertragungsmedium in der Automatisierungstechnik. Der Einsatz ist immer dann sinnvoll, wenn die Vorteile der Ethernet-Übertragungstechnik - wie große Rechweite, hohe Teilnehmeranzahl und die zusätzliche Nutzung der IT-Funktionen (Webtechnologie, E-Mail-Übertragung und Filetransfer) - über dasselbe Medium, die Zusatzkosten der erforderlichen Netzwerkinfrastruktur (sternförmige Verkabelung mit intelligenten Switches) rechtfertigen. Gegenüber anderen Industrial-Ethernet-Konzepten hat Modbus-TCP einen erheblichen Zeitvorsprung und sowohl bei Geräteherstellern als auch bei Anwendern eine deutlich niedrigere Einstiegsschwelle hinsichtlich der Initialkosten und des erforderlichen Know-hows. Als Kommunikationssystem für die zukünftige Generation verteilter Automatisierungssysteme hat Modbus-TCP jedoch im Vergleich zu Profinet und IDA Publish/Subscibe-Nachteile im Hinblick auf die bereitgestellte Funktionalität und die Unterstützung beim Engineering.

Modbus-TCP on Chip

Anybus-IC für EthernetHMS Industrial Networks bietet mit dem Anybus-IC einen neuen Single-Chip-Controller für Modbus-TCP und embedded Internet.
Auf nur 8 cm2 vereint das Anybus-IC einen leistungsfähigen 32-Bit-Mikrocontroller mit Flash- und RAM-Speicher, einen 10/100 Mbit Ethernet-Controller sowie alle analogen Funktionen einer industriegerecht ausgeführten Fast-Ethernet-Schnittstelle. Geringer Platzbedarf und niedrige Anschaltkosten machen den Ethernet-Anschluss nun auch für einfache Feldgeräte möglich.

Der Baustein wird in einem 32-pin Dual-Inline-Gehäuse (42 x 21 x 12 mm, L x B x H) gefertigt. Zum Betrieb genügt eine 5-Volt-Versorgungsspannung. Der Ethernet-Anschluss bietet volle 100 Mbit/s Full-Duplex-Datenübertragung und der integrierte 32-Bit-Mikroprozessor gewährleistet kurze Protokollbearbeitungszeiten.

Beim Einsatz in intelligenten Geräten, die über einen eigenen Mikroprozessor verfügen, wird das Anybus-IC über eine serielle 2-Leiter-TTL-Schnittstelle mit dem Prozessor verbunden. Es übernimmt die gesamte Protokollbearbeitung, so dass der Mikroprozessor des Endgerätes nicht unnötig durch die Abwicklung des Ethernet-Busprotokolls belastet wird.

Für den Einsatz in prozessorlosen Endgeräten wie Ventilinseln und modularen E/As stellt das Anybus-IC eine getaktete Schieberegister-Schnittstelle bereit, an der bis zu 128 Eingangs- und 128 Ausgangssignale direkt angeschlossen werden können. Die Anzahl der tatsächlich vorhandenen E/As wird bei jedem Power-On automatisch erkannt, so dass sich auch variable E/A-Konfigurationen, wie sie typischerweise in modularen E/A-Geräten auftreten, problemlos realisieren lassen.

Neben dem Modbus-TCP-Anwendungsprotokoll beinhaltet das Anybus-IC auch alle Funktionen der Embedded-Internet-Technologie:

  • Embedded Web-Server mit Zugriff auf dynamische Gerätedaten sowie der Möglichkeit zur Einbettung von Java-Applets und Scripts
  • On-Chip-Filesystem mit 1,4 MByte freiem Speicher für Anwenderdaten und Programme
  • Telnet-Zugriff, FTP-Filetranfer und E-Mail-Versand

Das Anybus-IC für Ethernet mit Modbus-TCP-Protokoll ergänzt die bereits verfügbaren Varianten für Profibus-DP und DeviceNet. Durch konsequente Standardisierung der mechanischen, elektrischen und softwaretechnischen Schnittstellen lassen sich die verschiedenen Anybus-ICs einfach unterein-ander austauschen.


      © Copyright 2006-2010  HMS Industrial Networks GmbH - All rights reserved Connecting Devices™