-
Die Erfindung betrifft ein Verfahren zum Konfigurieren eines Feldgeräts gemäß dem Oberbegriff des Anspruchs 1 sowie ein Feldgerät zum Anschluß an einen Feldbus gemäß dem Oberbegriff des Anspruch 9.
-
In der Prozessautomatisierungstechnik werden vielfach Feldgeräte eingesetzt, die zur Erfassung und/oder Beeinflussung von Prozessvariablen dienen. Beispiele für derartige Feldgeräte sind Füllstandsmessgeräte, Massedurchflussmessgeräte, Druck- und Temperaturmessgeräte etc., die als Sensoren die entsprechenden Prozessvariablen Füllstand, Durchfluss, Druck bzw. Temperatur erfassen.
-
Zur Beeinflussung von Prozessvariablen dienen Aktoren, z. B. Ventile oder Pumpen, über die der Durchfluss einer Flüssigkeit in einem Rohrleitungsabschnitt bzw. der Füllstand in einem Behälter geändert werden kann.
-
Als Feldgeräte werden im Prinzip alle Geräte bezeichnet, die prozessnah eingesetzt werden und die prozessrelevante Informationen liefern oder verarbeiten.
-
Eine Vielzahl solcher Feldgeräte wird von der Firma Endress + Hauser hergestellt und vertrieben.
-
Zunehmend werden etablierte Feldbusprotokolle wie Profibus oder Fieldbus Foundation durch Industrial Ethernet Protokolle ersetzt, welche höhere Datenübertragungsraten ermöglichen. Allerdings gibt es eine Vielzahl verschiedener Industrial Ethernet Protokolle wie beispielsweise EtherNet/IP, Modbus TCP, EtherCAT, PROFINET oder Powerlink, die jeweils von unterschiedlichen Herstellern unterstützt werden. Derzeit ist nicht erkennbar, dass eines dieser Industrial Ethernet Protokolle die anderen verdrängen kann. Ein Anbieter von Feldgeräten ist daher gezwungen, für jedes der marktüblichen Industrial Ethernet Protokolle eine gesonderte Geräteversion vorzusehen, die dieses Industrial Ethernet Protokoll unterstützt.
-
Aufgabe der Erfindung ist es, eine Anpassung eines Feldgeräten an unterschiedliche Industrial Ethernet Protokolle zu ermöglichen.
-
Gelöst wird diese Aufgabe durch die in den Ansprüchen 1 und 9 angegebenen Merkmale.
-
Vorteilhafte Weiterentwicklungen der Erfindung sind in den Unteransprüchen angegeben.
-
Ein erfindungsgemäßes Verfahren ist dazu ausgelegt, ein Feldgerät zu konfigurieren, das mit einem Feldbus verbunden ist, wobei der Feldbus für Industrial Ethernet Protokolle ausgelegt ist. Das Verfahren umfasst die Schritte des Analysierens eines auf dem Feldbus übertragenen Datenpakets; des Ermittelns eines in dem Datenpaket verwendeten Industrial Ethernet Protokolls; und des selbsttätigen Aktivierens eines für das ermittelte Industrial Ethernet Protokoll geeigneten Protokollstacks.
-
Durch das erfindungsgemäße Verfahren zum Konfigurieren des Feldgeräts wird es dem Feldgerät ermöglicht, das jeweils verwendete Industrial Ethernet Protokoll zu erkennen und sich selbsttätig darauf einzustellen, indem ein für das jeweilige Industrial Ethernet Protokoll geeigneter Protokollstack aktiviert wird. Dadurch wird der Umgang mit der momentan am Markt befindlichen Vielfalt von Industrial Ethernet Derivaten wesentlich vereinfacht. Da die Adaption des Feldgeräts an das jeweilige Protokoll vom Feldgerät automatisch durchgeführt wird, werden Fehler beim Einstellen eines geeigneten Industrial Ethernet Protokolls vermieden, und das Bedienpersonal wird entlastet.
-
Ein weiterer Vorteil ist, dass durch eine einzige Version eines bestimmten Feldgeräts sämtliche wesentlichen Industrial Ethernet Protokolle abgedeckt werden können. Es ist daher nicht mehr erforderlich, für jedes Industrial Ethernet Protokoll ein auf dieses Protokoll abgestimmtes Feldgerät mit einer passenden Softwareversion anzubieten. Da es nur mehr eine Geräteversion und eine Softwareversion gibt, welche für sämtliche wesentlichen Industrial Ethernet Protokolle eingesetzt werden kann, wird der Vertrieb der Feldgeräte, aber auch die Lagerhaltung und die Softwareaktualisierung deutlich vereinfacht.
-
Gemäß einer vorteilhaften Ausführungsform wird zur Unterscheidung der verschiedenen Industrial Ethernet Protokolle zunächst das Typ-Feld im Ethernet-Header eines Datenpakets ausgewertet. Wenn sich anhand der Typinformation ergibt, dass es sich bei dem Datenpaket um ein Internet-Protocol-Paket handelt, dann werden die von dem Paket verwendeten Portnummern ausgewertet. Als Ergebnis der Auswertung erhält man das verwendete Industrial Ethernet Protokoll.
-
Gemäß einer vorteilhaften Ausführungsform handelt es sich bei dem Industrial Ethernet Protokoll um eines der folgenden: EtherNet/IP, Modbus TCP, EtherCAT, PROFINET, Powerlink.
-
Sobald das auf dem Feldbus verwendete Protokoll erkannt ist, kann entsprechend einer vorteilhaften Ausführungsform ein für dieses Industrial Ethernet Protokoll geeigneter Protokollstack aus verschiedenen gespeicherten Protokollstack-Komponenten auf Seiten des Feldgeräts zusammengestellt und anschließend aktiviert werden. Dabei macht man sich die Tatsache zunutze, dass einige Protokollschichten bei vielen gängigen Industrial Ethernet Protokolle übereinstimmen, und dass die benötigten Protokollstacks zumindest zum Teil modular aus einigen wiederkehrenden Protokollstack-Komponenten zusammengestellt werden können. Dadurch wird der Aufwand für das Bereitstellen einer Vielzahl unterschiedlicher Protokollstacks deutlich verringert.
-
Nachfolgend ist die Erfindung anhand von in der Zeichnung dargestellten Ausführungsbeispielen näher erläutert.
-
Es zeigen:
-
1 einen Überblick über ein erfindungsgemäßes Feldbussystem;
-
2 die Datenstruktur eines Ethernet Frame;
-
3A eine erste Variante der Übertragung von Daten eines Industrial-Ethernet-Protokolls, bei der die Daten unmittelbar über Ethernet übertragen werden;
-
3B eine zweite Variante der Übertragung von Daten eines Industrial-Ethernet-Protokolls, bei der die Daten über TCP/IP oder UDP/IP übertragen werden;
-
4A einen ersten Ethernet Frame zur Übertragung von EtherCAT-Daten, wobei die EtherCAT-Daten unmittelbar über Ethernet übertragen werden;
-
4B einen zweiten Ethernet Frame zur Übertragung von EtherCAT-Daten, wobei die EtherCAT-Daten über UDP/IP übertragen werden;
-
5 einen Überblick über die verschiedenen Ebenen des OSI-Schichtenmodells;
-
6 die Datenstruktur eines IP-Headers;
-
7A die Datenstruktur eines UDP-Datagramms;
-
7B die Datenstruktur eines TCP-Headers;
-
8A, 8B Ablaufdiagramme zur erfindungsgemäßen Erkennung von Industrial-Ethernet-Protokollen; und
-
9 den Aufbau eines erfindungsgemäßen Feldgeräts.
-
1 zeigt einen Überblick über ein Feldbussystem mit drei Feldgeräten 1, 2, 3, die über einen Feldbus 4 mit einem Hostrechner 5 verbunden sind. Der Datenaustausch zwischen den Feldgeräten 1, 2, 3 und dem Hostrechner 5 erfolgt über ein Feldbusprotokoll. Während bei bisherigen Feldbussystemen in erster Linie klassische Feldbusprotokolle wie beispielsweise Profibus, Fieldbus (FF) oder HART verwendet wurden, werden bei modernen Implementierungen zunehmend Industrial-Ethernet-Protokolle eingesetzt. Zum aktuellen Zeitpunkt sind im industriellen Umfeld eine Vielzahl von verschiedenen Industrial-Ethernet-Derivaten im Einsatz, beispielsweise PROFINET, EtherNet/IP, Modbus TCP, EtherCAT, Powerlink etc. Es zeichnet sich nicht ab, dass sich eines der vielen Industrial-Ethernet-Protokolle auf dem Markt besonders stark etablieren kann.
-
Mit der vorliegenden Erfindung wird ein Feldgerät zur Verfügung gestellt, welches verschiedene Industrial-Ethernet-Protokolle unterstützt und welches in der Lage ist, den Feldbus abzuhören, das auf dem Feldbus verwendete Industrial-Ethernet-Protokoll selbsttätig zu analysieren und dementsprechend einen geeigneten Protokoll-Stack für das betreffende Industrial-Ethernet-Protokoll zu aktivieren.
-
Hierzu soll im Folgenden zunächst ein Überblick über die verschiedenen Industrial-Ethernet-Protokolle gegeben werden.
-
Bei sämtlichen Industrial-Ethernet-Protokollen erfolgt die Datenübertragung auf dem Feldbus mit Hilfe von Ethernet Frames. Die Struktur eines Ethernet Frame ist in 2 gezeigt. Diese Struktur ist im Standard IEEE 802.3 festgelegt. Im Header des Ethernet Frame 6 wird zunächst die Ziel-MAC-Adresse 7 spezifiziert, anschließend wird die Quell-MAC-Adresse 8 angegeben. Bei den MAC-Adressen handelt es sich um Kennungen, die einer bestimmten Gerätehardware zugeordnet sind und eine ein-eindeutige Identifizierung der betreffenden Gerätehardware ermöglichen. Optional kann im Ethernet-Header ein VLAN-Tag 9 spezifiziert sein, welches angibt, zu welchem virtuellen LAN (Local Area Network) das Ethernet Frame 6 gehört. Wenn im System keine verschiedenen virtuellen LANs definiert sind, erübrigt sich die Übertragung eines VLAN-Tags. Im Typ-Feld 10 wird der Typ des Ethernet Frame 6 angegeben, der sogenannte „Ethertype”. Beispielsweise werden Ethernet Frames, in denen Daten gemäß dem Internet Protocol (IP) übertragen werden, mit dem Ethertype 0x0800 gekennzeichnet. Im Anschluss an den Ethernet-Header werden die eigentlichen Nutzdaten 11 übertragen. Dabei ist die Länge der in einem Ethernet Frame 6 übertragenen Nutzdaten 11 variabel; der gesamte Ethernet Frame 6 kann eine Länge zwischen 64 Byte und 1518 Byte aufweisen. Im Anschluss an die Nutzdaten 11 wird ein PAD-Füllfeld 12 übertragen, gefolgt von einer CRC(Cyclic Redundancy Check)-Prüfsumme 13. Das PAD-Füllfeld 12 umfasst sogenannte „Padding Bytes”, also Füllbytes, die zum Auffüllen des Datenfeldes auf eine erforderliche Mindestgröße dienen.
-
Der in 2 gezeigte Ethernet Frame 6 dient in sämtlichen Industrial-Ethernet-Protokollen als Grundeinheit für die Datenübertragung auf dem Feldbus.
-
Allerdings gibt es zwei grundlegend verschiedene Varianten, wie die von den Ethernet Frames zur Verfügung gestellte Übertragungskapazität zur Übertragung der Daten des jeweiligen Industrial-Ethernet-Protokolls genutzt werden kann. Diese beiden Varianten werden im Folgenden anhand der 3A und 3B erläutert.
-
Bei der in 3A gezeigten ersten Variante wird zunächst der Ethernet-Header 14 übertragen, und auf den Ethernet-Header 14 folgen unmittelbar die Daten 15 des jeweiligen Industrial-Ethernet-Protokolls. Die Daten 15 des jeweiligen Industrial-Ethernet-Protokolls werden im Nutzdatenfeld des Ethernet Frame übermittelt. Da die Ethernet-Schicht die Ebenen 1 und 2 des OSI-Schichtenmodells bildet, bedeutet dies, dass die Daten 15 des Industrial-Ethernet-Protokolls auf der Ebene 3 (Vermittlungsschicht) des OSI-Schichtenmodells übertragen werden. Zum Abschluss des Ethernet Frame werden die PAD- und CRC-Felder 16 übermittelt.
-
Die in 3A gezeigte erste Variante, bei der die Daten des jeweiligen Industrial-Ethernet-Protokolls auf der OSI-Ebene 3 übermittelt werden, wird beispielsweise bei dem Industrial-Ethernet-Protokoll „Powerlink” eingesetzt.
-
Die Übertragung der Daten des jeweiligen Industrial-Ethernet-Protokolls kann auch entsprechend der in 3B gezeigten zweiten Variante erfolgen. Bei dieser zweiten Variante wird zunächst ein Ethernet-Header 17 übertragen. Auf den Ethernet-Header 17 folgen nicht unmittelbar die Nutzdaten des jeweiligen Industrial-Ethernet-Protokolls, sondern es werden zusätzliche Protokollschichten eingeführt. Dazu wird im Anschluss an den Ethernet-Header 17 ein IP-Header 18, also ein Header des Internet Protocol, übertragen, auf den dann ein TCP(Transmission Control Protocol)- oder UDP(User Datagram Protocol)-Header 19 folgt, je nachdem, ob die Datenübertragung über TCP/IP oder UDP/IP erfolgen soll. Im Anschluss an die beiden Header 18 und 19 beginnt dann die Übertragung der Daten 20 des jeweiligen Industrial-Ethernet-Protokolls. Zum Abschluss des Ethernet Frame werden die PAD- und CRC-Felder 21 übertragen.
-
Die Entscheidung, ob TCP/IP oder UDP/IP zur Datenübertragung verwendet werden soll, hängt in erster Linie von den Anforderungen an die Zuverlässigkeit der Datenübertragung ab. Bei TCP handelt es sich um ein verbindungsorientiertes Protokoll, das heißt, es wird eine Datenverbindung zwischen Sender und Empfänger aufgesetzt.
-
Dies ermöglicht eine zuverlässige Datenübertragung, bei der Übertragungsfehler erkannt und korrigiert werden können. Bei UDP dagegen handelt es sich um ein verbindungsloses Protokoll mit einem im Vergleich zu TCP geringeren Verwaltungsaufwand. Dadurch ist die Netzwerkbelastung bei UDP geringer als bei TCP, und es kann ein höherer Datendurchsatz erreicht werden. Die Verwendung von TCP/IP oder UDP/IP für die Datenübertragung hat den Vorteil, dass zum Routen und Switchen der Datenpakete gängige Hardwarekomponenten verwendet werden können, die auch in der Infrastruktur des Internet eingesetzt werden.
-
Im Unterschied zu der in 3A gezeigten ersten Variante, bei der die Übertragung der Daten zum Industrial-Ethernet-Protokoll auf der Ebene 3 des OSI-Schichtenmodells erfolgt, wird bei der in 3B gezeigten zweiten Variante die Ebene 3 des OSI-Modells durch das Internet Protocol (IP) gebildet, und die Ebene 4 des OSI-Modells wird durch TCP oder UDP gebildet. Die Übertragung der Daten des jeweiligen Industrial-Ethernet-Protokolls erfolgt dann erst auf der Ebene 5 des OSI-Schichtenmodells.
-
Die in 3B gezeigte zweite Variante der Datenübertragung über TCP/IP oder UDP/IP wird beispielsweise in den Industrial-Ethernet-Protokollen EtherNet/IP und Modbus TCP verwendet. Diese beiden Industrial-Ethernet-Protokolle verwenden das Internet Protocol (IP) als Basis. Bei EtherNet/IP kann die Datenübertragung sowohl über TCP/IP als auch über UDP/IP erfolgen. Bei Modbus TCP erfolgt die Datenübertragung ausschließlich über TCP/IP.
-
Daneben gibt es auch Industrial-Ethernet-Protokolle, die sowohl Ethernet Frames der in 3A gezeigten Art als auch Ethernet Frames der in 3B gezeigten Art verwenden. Zu diesen Industrial-Ethernet-Protokollen gehören beispielsweise die Industrial-Ethernet-Protokolle EtherCAT und PROFINET. Bei diesen beiden Industrial-Ethernet-Protokollen werden sowohl Ethernet Frames entsprechend der ersten Variante eingesetzt, bei denen die Daten des jeweiligen Industrial-Ethernet-Protokolls unmittelbar im Nutzdatenfeld des Ethernet Frame übermittelt werden, als auch Ethernet Frames entsprechend der zweiten Variante, bei denen die Übermittlung der Daten des jeweiligen Industrial Ethernet Protokolls über die Zwischenschichten TCP/IP oder UDP/IP erfolgt.
-
Für das Beispiel EtherCAT sind in den 4A und 4B für beide Varianten der Datenübertragung die entsprechenden Ethernet Frames gezeigt. Beide Varianten kommen bei EtherCAT zum Einsatz. Bei dem in 4A gezeigten Ethernet Frame 22 werden die EtherCAT-Daten unmittelbar als Nutzdaten des Ethernet Frame 22 übertragen. Insofern entspricht der in 4A gezeigte Ethernet Frame 22 der in 3A gezeigten ersten Variante. Der Ethernet Frame 22 besteht aus einem Ethernet-Header 23, der die Ziel-MAC-Adresse 24, die Quell-MAC-Adresse 25 sowie den Ethertype 26 umfasst. Nach dem Ethernet-Header 23 werden die Nutzdaten 27 übertragen. Als Teil der Nutzdaten 27 wird zuerst ein EtherCAT-spezifischer Header 28 übertragen, der die Länge 29, ein reserviertes Bit 30 sowie eine Typinformation 31 umfasst. Anschließend werden die eigentlichen EtherCAT-Befehle und -Daten 32 übertragen. Zum Abschluss des Ethernet Frame 22 wird ein PAD-Füllfeld sowie eine CRC-Prüfsumme 33 übertragen.
-
Bei dem in 4A gezeigten Ethernet Frame 22 werden im Nutzdatenfeld unmittelbar EtherCAT-Befehle und -Daten übertragen. Insofern handelt es sich um einen Ethernet Frame mit einem eigens hierfür vorgesehenen Ethertype, nämlich 0x88A4. Durch den Wert 0x88A4 im Typ-Feld 10 des Ethernet Frame (vgl. 2) wird klargestellt, dass im Nutzdatenfeld des Ethernet Frame EtherCAT-Daten und -Befehle übertragen werden.
-
Daneben werden im Industrial-Ethernet-Protokoll EtherCAT die Nutzdaten auch über UDP/IP übertragen. In 4B ist ein hierfür verwendeter Ethernet Frame 34 gezeigt. Der Ethernet Frame 34 umfasst einen Ethernet-Header 35 mit einer Ziel-MAC-Adresse 36, einer Quell-MAC-Adresse 37 sowie einem Ethertype 38. Im Anschluss an den Ethernet-Header 35 wird ein IP-Header 39 sowie ein UDP-Header 40 übertragen, insofern entspricht der Ethernet Frame 34 der in 3B gezeigten zweiten Übertragungsvariante. Erst nach der Übertragung der beiden Header 39, 40 beginnt die Übertragung der eigentlichen Nutzdaten 41 des Industrial-Ethernet-Protokolls EtherCAT. Die Nutzdaten 41 umfassen einen EtherCAT-spezifischen Header 42, in dem die Länge und der Typ der folgenden EtherCAT-Befehle und -Daten angegeben sind, und anschließend die EtherCAT-Befehle und -Daten 43. Zum Abschluss des Ethernet Frame 34 wird ein PAD-Füllfeld sowie eine CRC-Prüfsumme 44 übertragen.
-
Bei dem in 4B gezeigten Ethernet Frame 34 erfolgt die Übertragung der EtherCAT-Befehle und -Daten über UDP/IP, also über das Internet Protocol. Insofern handelt es sich bei dem Ethernet Frame 34 um ein IP-Paket. Dies wird durch den Wert 0x0800 im Typ-Feld 10 des Ethernet Frame (vgl. 2) angezeigt.
-
In 5 ist nochmals im Überblick dargestellt, auf welchen Ebenen des OSI-Schichtenmodells bei den verschiedenen Industrial-Ethernet-Protokollen die Datenübertragung stattfindet. Bei sämtlichen Industrial-Ethernet-Protokollen dient eine Ethernet-Schicht 46 als Basis für die Datenübertragung. Die Ethernet-Schicht 46 bildet die Ebenen 1 und 2 (Physikalische Schicht sowie Sicherungsschicht) des OSI-Schichtenmodells. Das Powerlink-Protokoll 47 setzt unmittelbar auf der Ethernet-Schicht 46 auf. Dies entspricht der in 3A gezeigten ersten Übertragungsvariante. Auch im EtherCAT-Protokoll 48 und im PROFINET-Protokoll 49 gibt es Frames, die unmittelbar aufsetzend auf die Ethernet-Schicht 46 übertragen werden. Im Powerlink-Protokoll 47 erfolgt die Datenübertragung vollständig auf der Ebene 3 (Vermittlungsschicht) des OSI-Schichtenmodells. Im EtherCAT-Protokoll 48 und im PROFINET-Protokoll 49 erfolgt die Datenübertragung zumindest zum Teil auf der Ebene 3.
-
Alternativ dazu kann auf die Ethernet-Schicht 46 als Ebene 3 eine Internet-Protocol-Schicht 50 aufgesetzt werden, auf die dann als Ebene 4 (Transportschicht) eine TCP- oder eine UDP-Schicht 51 aufgesetzt wird. Dies entspricht der in 3B gezeigten zweiten Übertragungsvariante. Das jeweilige Industrial-Ethernet-Protokoll wird dann auf der Ebene 5 des OSI-Schichtenmodells übertragen, und zwar über TCP/IP oder über UDP/IP.
-
Beispielsweise werden die beiden Protokolle EtherNet/IP 52 und Modbus TCP 53, wie in 5 gezeigt, auf der Ebene 5 des OSI-Modells übertragen. Dabei kann das Protokoll EtherNet/IP 52 sowohl über TCP/IP als auch über UDP/IP übertragen werden. Das Protokoll Modbus TCP 53 dagegen wird ausschließlich über TCP/IP übertragen.
-
Darüber hinaus können die Protokolle PROFINET 48 und EtherCAT 49 nicht nur auf der Ebene 3, sondern darüber hinaus auch auf der Ebene 5 des OSI-Modells übertragen werden, wie dies in 5 veranschaulicht ist. Das Protokoll PROFINET 48 kann sowohl über TCP/IP als auch über UDP/IP übertragen werden. Dagegen wird das Protokoll EtherCAT 49 lediglich über UDP/IP übertragen.
-
Ein Feldgerät gemäß Ausführungsformen der vorliegenden Erfindung ist dazu ausgelegt, den auf dem Feldbus übertragenen Datenverkehr auszuwerten und das dort verwendete Industrial-Ethernet-Protokoll zu bestimmen. Anschließend kann das Feldgerät das eigene Industrial-Ethernet-Protokoll entsprechend dem auf dem Feldbus verwendete Industrial-Ethernet-Protokoll einstellen. Hierzu kann das Feldgerät beispielsweise einen geeigneten Protokoll-Stack aktivieren.
-
Im Folgenden soll der erfindungsgemäße Ablauf zur Bestimmung des auf dem Feldbus verwendeten Industrial-Ethernet-Protokolls dargestellt werden.
-
Hierzu greift das Feldgerät zunächst auf den Ethernet-Header eines auf dem Feldbus übertragenen Ethernet Frame zu. Die Struktur des Ethernet Frame ist bereits in 2 dargestellt worden. Der Ethernet Frame 6 umfasst ein Typ-Feld 10, in dem der Typ des Ethernet Frame, der sogenannte „Ethertype”, angegeben ist. Dieser Ethertype wird nun vom Feldgerät analysiert. Anhand des Ethertype kann unterschieden werden, ob der aktuell auf dem Feldbus übertragene Ethernet Frame das Internet Protocol (IP) zur Datenübertragung verwendet, oder ob irgendein anderes Protokoll auf die Ethernet-Schicht aufgesetzt ist. Falls der Ethernet Frame das Internet Protocol verwendet, dann ist dies im Typ-Feld 10 des Ethernet-Headers durch den Wert 0x0800 gekennzeichnet.
-
Wenn im Typ-Feld 10 dagegen ein anderer Wert als 0x0800 steht, dann handelt es sich nicht um ein IP-Paket. In diesem Fall kann anhand des im Typ-Feld 10 gespeicherten Werts unmittelbar erkannt werden, welches Protokoll auf der Ebene 3 des OSI-Schichtenmodells verwendet wird. Wenn beispielsweise im Typ-Feld 10 des Ethernet-Headers der Wert 0x88AB steht, dann wird auf Ebene 3 das Powerlink-Protokoll verwendet, es handelt sich dann also um ein Powerlink-Paket. Wenn das Typ-Feld 10 dagegen den Wert 0x88A4 hat, dann handelt es sich um ein Paket, bei dem das EtherCAT-Protokoll auf der Ebene 3 verwendet wird. Wenn dagegen im Typ-Feld 10 der Wert 0x8892 steht, dann handelt es sich um ein PROFINET-Paket, bei dem das PROFINET-Protokoll auf der Ebene 3 verwendet wird.
-
Insofern kann für den Fall, das es sich bei dem Ethernet Frame nicht um ein IP-Paket handelt, anhand des Typ-Felds 10 ermittelt werden, welches Industrial-Ethernet-Protokoll verwendet wird. Bei dem Wert 0x88AB handelt es sich um ein Powerlink-Paket, bei 0x88A4 handelt es sich um ein EtherCAT-Paket, und bei dem Wert 0x8892 handelt es sich um ein PROFINET-Paket.
-
Dagegen kann für den Fall, dass es sich bei dem Ethernet Frame um ein IP-Paket handelt, noch keine Aussage über das verwendete Industrial-Ethernet-Protokoll getroffen werden. In diesem Fall wird die Analyse des Ethernet Frame fortgesetzt. Dazu wird der auf den Ethernet-Header folgende IP-Header analysiert.
-
Für die Version 4 des Internet Protocol (IPv4) ist ein derartiger IP-Header in 6 gezeigt. Die Bedeutung der einzelnen Felder ist hinlänglich dokumentiert, beispielsweise in der Protokollspezifikation RFC791, so dass die einzelnen Felder des IP-Headers hier nur im Überblick beschrieben werden. Der IP-Header umfasst ein Versionsfeld 57, ein IHL-(IP Header Length)-Feld 58, ein TOS-(Type of Service)-Feld 59, ein Total-Length-Feld 60, ein Identification-Feld 61, verschiedene Flags 62, einen Fragment-Offset 63, ein TTL-(Time-To-Live)-Feld 64, ein Protocol-Feld 65 sowie eine Header-Checksum 66. Darüber hinaus umfasst der IP-Header eine Quelladresse 67, eine Zieladresse 68 sowie Zusatzinformationen 69 („Options and Padding”).
-
Für die weitere Analyse relevant ist das Protocol-Feld 65, das als Byte 9 des IP-Headers übertragen wird (wobei die Nummerierung der Bytes mit Byte 0 startet). Das Protocol-Feld 65 bezeichnet das Folgeprotokoll, also das auf das Internet Protocol auf der nächsthöheren Ebene folgende Protokoll, zu dem die in dem IP-Paket transportierten Nutzdaten gehören. Wenn das IP-Paket beispielsweise ein TCP-Paket enthält, dann steht im Protocol-Feld 65 des IP-Headers der Wert 6 für das Protokoll TCP. Enthält das IP-Paket dagegen ein UDP-Paket, so enthält das Protocol-Feld 65 des IP-Headers den Wert 17 für das Protokoll UDP. Diese Werte werden seit RFC3232 von der IANA (Internet Assigned Numbers Authority) in einer Online-Datenbank für Protokoll-Nummern festgelegt. Im IP-Header der Version 6 des Internetprotokolls (IPv6) gibt es ebenfalls ein Feld, welches das auf der nächsthöheren Ebene folgende Protokoll spezifiziert und insoweit dem Protocol-Feld 65 entspricht, allerdings heißt es dort „Next Header”. Die zulässigen Werte sind in der Version IPv6 die gleichen wie in der Version IPv4.
-
Durch Auslesen und Analysieren des Protocol-Felds 65 des IP-Headers kann daher auf einfache Weise ermittelt werden, welches der Folgeprotokolle UDP oder TCP auf der OSI-Ebene 4 auf das IP-Protokoll folgt. Die Information, ob TCP oder UDP als Folgeprotokoll verwendet wird, kann dann zum geeigneten Auslesen des UDP-Datagramms bzw. des TCP-Headers verwendet werden. Die Information, ob UDP oder TCP als Folgeprotokoll verwendet wird, kann insbesondere dazu verwendet werden, den Quell-Port und den Ziel-Port des IP-Pakets zu ermitteln, wie im folgenden anhand von 7A und 7B dargestellt ist. Die Portnummern von Quell-Port und Ziel-Port ermöglichen dann die Bestimmung des verwendeten Industrial-Ethernet-Protokolls.
-
In 7A ist die Struktur eines UDP-Datagramms dargestellt. Das UDP-Datagramm umfasst ein Feld 70 für den Quell-Port, in dem die Portnummer auf der Senderseite angegeben ist. Außerdem umfasst das UDP-Datagramm ein Feld 71 für den Ziel-Port, in dem die Portnummer auf der Empfängerseite angegeben ist. In Feld 72 ist die Länge des UDP-Datagramms angegeben, und im Feld 73 wird eine Prüfsumme übertragen. Anschließend werden die Nutzdaten 74 übertragen.
-
Die Portnummern auf der Sender- und Empfängerseite können daher durch Auslesen der Felder 70 und 71 des UDP-Datagramms erhalten werden.
-
Alternativ zu UDP kann beispielsweise TCP als Übertragungsprotokoll auf der Ebene 4 des OSI-Schichtenmodells verwendet werden. In 7B ist die Struktur eines TCP-Headers gezeigt. Der TCP-Header umfasst ein Feld 75 für den Quell-Port, ein Feld 76 für den Ziel-Port, ein Feld 77 für die „Sequence Number” sowie ein Feld 78 für die „Acknowledgement Number”. Darüber hinaus umfasst der TCP-Header ein Feld „Data Offset” 79, ein Reserve-Feld 80, eine Reihe von Flags 81, ein Feld „Window” 82, ein Prüfsummenfeld 83, einen „Urgent Pointer” 84 sowie ein Optionsfeld 85. Im Anschluss an das Optionsfeld 85 beginnt die Übertragung der Nutzdaten 86.
-
Durch Auslesen der Felder 75 und 76 des TCP-Headers können der Quell-Port sowie der Ziel-Port des IP-Pakets ermittelt werden. Dabei bezeichnet der Quell-Port die Portnummer auf der Senderseite, während der Ziel-Port die Portnummer auf der Empfängerseite bezeichnet. Diese Portnummern sind charakteristisch für das verwendete Industrial Ethernet Protokoll. Daher ermöglicht eine Auswertung dieser Portnummern sowohl bei dem in 7A gezeigten Beispiel eines UDP-Datagramms als auch bei dem in 7B gezeigten Beispiel eines TCP-Headers die Bestimmung des verwendeten Industrial-Ethernet-Protokolls. Die Auswertung der so erhaltenen Portnummern kann beispielsweise anhand der folgenden Übersicht erfolgen:
EtherNet/IP:
Ports:
2222/TCP
2222/UDP
44818/TCP
44818/UDP
PROFINET:
Ports:
34962/TCP (PROFINET RT Unicast)
34962/UDP (PROFINET RT Unicast)
34963/TCP (PROFINET RT Multicast)
34963/UDP (PROFINET RT Multicast)
34964/TCP (PROFINET Context Manager)
34964/UDP (PROFINET Context Manager)
EtherCAT:
Port:
0x88A4/UDP
Modbus TCP:
Port:
502/TCP
-
Anhand der obigen Aufstellung ist ersichtlich, dass die verwendeten Portnummern für das jeweils eingesetzte Industrial-Ethernet-Protokoll spezifisch sind. Für den Fall, dass ein IP-Paket vorliegt (was durch den Ethertype 0x0800 angezeigt wird), kann daher durch Auswerten der Portnummern von Quell-Port und Ziel-Port ermittelt werden, welches Industrial-Ethernet-Protokoll für die Datenübertragung auf dem Feldbus verwendet wird. Dabei kann die Zuordnung der Portnummern zum entsprechenden Industrial-Ethernet-Protokoll beispielsweise mit Hilfe einer Zuordnungstabelle durchgeführt werden.
-
Zusammenfassend kann festgestellt werden, dass durch eine Analyse des Typ-Felds im Ethernet-Header sowie eine Auswertung der Portnummern von Quell-Port und Ziel-Port eine eindeutige Bestimmung des verwendeten Industrial-Ethernet-Protokolls ermöglicht wird.
-
In 8A ist das erfindungsgemäße Verfahren zur automatischen Auswahl eines geeigneten Industrial-Ethernet-Protokolls in Form eines Ablaufdiagramms dargestellt.
-
Im Schritt 87 wird anhand des Typ-Felds im Ethernet-Header der Ethertype des Ethernet-Frame ausgewertet. Wenn der Ethertype nicht gleich 0x0800 ist, dann handelt es sich um einen Ethernet Frame mit einem eigens hierfür vorgesehenen Ethertype. In diesem Fall ermöglicht der Ethertype einen Rückschluss auf das verwendete Industrial Ethernet Protokoll.
-
Wenn der Ethertype nicht gleich 0x0800 ist, kann daher im Schritt 88 anhand des Ethertype das verwendete Industrial Ethernet Protokoll bestimmt werden.
-
Im Schritt 89 wird dann der zu dem ermittelten Industrial Ethernet Protokoll gehörige Protokollstack auf Seiten des Feldgeräts aktiviert.
-
Wenn der Ethertype dagegen gleich 0x0800 ist, dann handelt es sich bei dem Ethernet Frame um ein IP-Paket.
-
In diesem Fall wird im nächsten Schritt 90 das Byte Nr. 9 des IP-Headers ausgelesen, um auf diese Weise das Folgeprotokoll zu bestimmen, also das auf der nächsthöheren Ebene auf das Internet Protocol folgende Protokoll. Wenn im Byte Nr. 9 des IP-Headers der Wert 6 steht, dann handelt es sich bei dem Folgeprotokoll um TCP, wenn dort der Wert 17 steht, dann handelt es sich um UDP.
-
Im darauffolgenden Schritt 91 wird auf den jeweiligen Header des Folgeprotokolls zugegriffen, also beispielsweise auf den TCP-Header oder den UDP-Header, um die Portnummern von Quellport und Zielport des IP-Pakets zu bestimmen. Diese Portnummern sind spezifisch für das verwendete Industrial Ethernet Protokoll.
-
Insofern kann im nächsten Schritt 92 anhand der Portnummern das verwendete Industrial Ethernet Protokoll bestimmt werden. Beispielsweise kann das zu den Portnummern gehörige Industrial Ethernet Protokoll mittels einer Zuordnungstabelle ermittelt werden.
-
Im Schritt 93 wird dann der zu dem ermittelten Industrial Ethernet Protokoll gehörige Protokollstack auf Seiten des Feldgeräts aktiviert.
-
Ergänzend oder alternativ zu den bisher beschriebenen Schritten können zur Ermittlung des verwendeten Industrial Ethernet Protokolls auch die in dem Datenpaket übertragenen Nutzdaten analysiert werden. Bei dieser Analyse werden die Nutzdaten auf darin enthaltene protokollspezifische Strukturen überprüft, insbesondere auf mindestens eines von: Befehlen, Objekten, Diensten, Adressen, Blöcken, etc., die für das verwendete Industrial Ethernet Protokoll typisch sind.
-
Bei der bisherigen Darstellung war davon ausgegangen worden, dass auf dem Feldbus ein bestimmtes Industrial Ethernet Protokoll eingesetzt wird. Es gibt aber auch Feldbussysteme, in denen auf dem Feldbus zwei oder mehr unterschiedliche Industrial Ethernet Protokolle parallel verwendet werden. Bei einer derartigen „hybriden” Installation muss ein erfindungsgemäßes Feldgerät erkennen, welche der unterschiedlichen Ethernet Frames an es selbst adressiert sind, dann das Industrial Ethernet Protokoll dieser Ethernet Frames analysieren, und dann einen für dieses Protokoll geeigneten Protokollstack aktivieren.
-
In 8B ist ein modifizierter Ablauf für derartige „hybride” Installationen gezeigt, bei denen zwei oder mehr unterschiedliche Industrial Ethernet Protokolle nebeneinander verwendet werden.
-
Bei einer derartigen Installation wird in einem ersten Schritt 94 die Ziel-MAC-Adresse des Ethernet Frame mit der eigenen MAC-Adresse des Feldgeräts verglichen, um herauszufinden, ob der Ethernet Frame an das Feldgerät adressiert ist.
-
Wenn die Ziel-MAC-Adresse des Ethernet Frames nicht mit der eigenen MAC-Adresse des Feldgeräts übereinstimmt, wird entsprechend Schritt 95 auf den nächsten Ethernet Frame gewartet.
-
Wenn dagegen die Ziel-MAC-Adresse des Ethernet Frames mit der eigenen MAC-Adresse des Feldgeräts übereinstimmt, dann steht fest, dass der betrachtete Ethernet Frame an das Feldgerät adressiert ist. Nur in diesem Fall wird das in dem Ethernet Frame verwendete Industrial Ethernet Protokoll ermittelt.
-
Sobald feststeht, dass der betrachtete Ethernet Frame an das eigene Feldgerät adressiert ist, wird das verwendete Industrial Ethernet Protokoll bestimmt. Dabei entspricht der Ablauf den in 8A gezeigten Schritten.
-
Im Schritt 96 wird anhand des Typ-Felds im Ethernet-Header der Ethertype des Ethernet-Frame ausgewertet.
-
Wenn der Ethertype nicht gleich 0x0800 ist, wird in Schritt 97 anhand des Ethertype das verwendete Industrial Ethernet Protokoll bestimmt.
-
Im Schritt 98 wird dann auf Seiten des Feldgeräts der Protokollstack zu dem ermittelten Industrial Ethernet Protokoll aktiviert.
-
Wenn der Ethertype dagegen gleich 0x0800 ist, dann handelt es sich bei dem Ethernet Frame um ein IP-Paket. In diesem Fall wird im Schritt 99 das Byte Nr. 9 des IP-Headers ausgelesen, um so das auf das Internet Protocol folgende Protokoll (zum Beispiel UDP oder TCP) zu bestimmen.
-
Im folgenden Schritt 100 werden die Portnummern von Quell-Port und Ziel-Port des IP-Pakets ausgelesen. Hierzu wird auf den jeweiligen Header des Folgeprotokolls zugegriffen, also beispielsweise auf den TCP-Header oder den UDP-Header.
-
Im nächsten Schritt 101 wird anhand der so ermittelten Portnummern das verwendete Industrial Ethernet Protokoll bestimmt.
-
Im Schritt 102 wird dann auf Seiten des Feldgeräts der passende Protokollstack aktiviert.
-
In 9 ist gezeigt, wie der passende Protokollstack auf Seiten des Feldgeräts 103 zusammengestellt und aktiviert werden kann. Vorzugsweise kann dies mit Hilfe eines Baukastensystems aus verschiedenen Protokollstack-Komponenten geschehen, die geeignet zusammengestellt werden.
-
Das Feldgerät 103 umfasst eine Prozessoreinheit 104, einen flüchtigen Arbeitsspeicher 105 sowie einen nichtflüchtigen Speicher 106, beispielsweise einen Flash-Speicher. Im nichtflüchtigen Speicher 106 sind neben der Betriebssoftware 107 auch verschiedene Protokollstack-Komponenten abgespeichert. Insbesondere sind im nichtflüchtigen Speicher 106 eine Ethernet-Schicht 108, ein UDP/IP-Stack 109, ein TCP/IP-Stack 110 sowie die Industrial Ethernet Protokollebenen zu EtherNet/IP 111, Modbus TCP 112, EtherCAT 113, PROFINET 114, Powerlink 115 etc. gespeichert.
-
Nach dem Hochstarten des Feldgeräts analysiert eine Konfigurationseinheit 116, die im Arbeitsspeicher 105 läuft, die auf dem Feldbus übertragenen Ethernet Frames. Dabei ermittelt die Konfigurationseinheit 116 mit Hilfe der in den 8A und 8B gezeigten Verfahren das in den Ethernet Frames verwendete Industrial Ethernet Protokoll. Anschließend wird ein für das ermittelte Protokoll passender Protokollstack zusammengestellt. Hierzu werden die verschiedenen benötigten Protokollstack-Komponenten aus dem nichtflüchtigen Speicher 106 in den Arbeitsspeicher 105 geladen. Anschließend wird der im Arbeitsspeicher 105 zusammengestellte Protokollstack aktiviert.
-
Dies soll im Folgenden anhand eines Beispiels veranschaulicht werden. Es soll angenommen werden, dass die Konfigurationseinheit 116 ermittelt, dass die Ethernet Frames das Protokoll Modbus TCP verwenden. Um im Arbeitsspeicher 105 einen Modbus TCP-Stack 117 zu erzeugen, lädt die Konfigurationseinheit 116 aus dem nichtflüchtigen Speicher 106 die Ethernet-Schicht 108, den TCP/IP-Stack 110 sowie die Protokollebene zu Modbus TCP 112. Aus diesen Komponenten kann der benötigte Modbus TCP-Stack 117 modular zusammengestellt werden. Anschließend wird der so zusammengestellte Modbus TCP-Stack 117 aktiviert, und das Feldgerät kann über Modbus TCP auf dem Feldbus kommunizieren.
-
Dabei bietet die modulare Zusammenstellung der benötigten Protokollstacks den Vorteil, dass der Speicherbedarf für die Stackkomponenten, die für die Zusammenstellung der Protokollstacks für eine Vielzahl verschiedener Industrial Ethernet Protokolle benötigt werden, in einem vernünftigen Rahmen gehalten werden kann. Dadurch wird es ermöglicht, mit vertretbarem Aufwand ein Feldgerät zu realisieren, das sich selbsttätig auf eine Vielzahl verschiedener Industrial Ethernet Protokolle einstellen kann.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- Standard IEEE 802.3 [0033]