-
Die Erfindung betrifft ein Verfahren zum Betreiben eines Kommunikationsnetzwerks umfassend mehrere Teilnehmer. Die Erfindung betrifft weiter ein zugehöriges Kommunikationsnetzwerk.
-
Um azyklische Kommunikation in einem Ethernet-Netzwerk, beispielsweise in einem EtherCAT-Netzwerk gemäß IEC-Norm „IEC 61158” so zu realisieren, dass die zyklische Echtzeitkommunikation nicht gestört wird, gibt es üblicherweise zwei Möglichkeiten. Bei der Möglichkeit 1 kontrolliert ein Master die komplette azyklische Kommunikation, das heißt, dass auch die azyklischen Telegramme, die von einem Slave zum Master übertragen werden müssen, vom Master abgeholt werden (zum Beispiel bei einem aus dem Stand der Technik bekannten EtherCAT-Kommunikationsnetzwerk). Bei der zweiten Möglichkeit werden Phasen festgelegt, in denen azyklische Kommunikation stattfinden darf (zum Beispiel bei einem ebenfalls aus dem Stand der Technik bekannten PROFINET IRT-Kommunikationsnetzwerk). Bei der Möglichkeit 1 kann während der Übertragung der azyklischen Telegramme die Leitung nicht in beiden Richtungen benutzt werden, da entweder ein azyklisches Telegramm zum Slave übertragen (Write, in dem Fall ist das zurückkommende Telegramm ohne Inhalt) oder vom Slave gelesen (Read, in dem Fall ist das hinkommende Telegramm unbenutzt) wird. Bei der Möglichkeit 2 können leicht Überlastsituationen auftreten, wenn mehrere Slaves gleichzeitig Telegramme zu senden haben. Außerdem ist die Konfiguration der verschiedenen Phasen aufwändig.
-
Bei einer zyklischen Kommunikation wird die Datenübertragung in wiederkehrenden, gleich langen Zeitabschnitten durchgeführt, den Zyklen. Zyklische Kommunikation tritt üblicherweise in jedem Zyklus immer wieder auf dieselbe Art und Weise auf, zum Beispiel für den Prozeßdatenaustausch (Eingänge/Ausgänge), aber auch zur Statusüberwachung. Die ausgetauschte Datenmenge zwischen einzelnen Teilnehmern ist jeweils eher gering, es liegen in der Regel Echtzeitanforderungen vor.
-
Azyklische Kommunikation tritt in der Regel nicht in jedem Zyklus auf, sondern üblicherweise nur nach Bedarf. Die Datenmenge ist dafür häufig größer als bei den Prozeßdaten, die Übertragung hat keine oder nur geringe Echtzeitanforderungen. Die größere Datenmenge muss häufig in kleineren Einheiten zwischen den Zyklischen Daten übertragen werden, um deren Echtzeitanforderungen nicht zu beeinträchtigen.
-
Aus der
DE 10 2004 068 213 ist ein Master-Slave-Steuerungssystem bekannt, bei dem die Kommunikation so erfolgt, dass vom Master versandte Bustelegramme nacheinander durch einzelnen Slave-Stationen durchlaufen. Wenn das Bustelegramm an der letzten Slave-Station angekommen ist, nimmt es dann den gleichen Weg wieder zurück zum Master. Auf einem Hinweg können die einzelnen Slave-Stationen Sendedaten in für sie reservierte Datenfelder im Bustelegramm einschreiben. Auf dem Rückweg können die Slave-Stationen dann die Daten aus anderen Datenfeldern im Bustelegramm auslesen.
-
Aus der
EP 1 748 338 A1 ist Master-Slave-Bussystem, bei dem ein Slave-Teilnehmer beim Durchlauf eines Bustelegramm zum Datenaustausch das vorderste Datensegment abtrennt und am Ende des Bustelegramms dafür eine weiteres Datensegment anfügt.
-
Die
US 2011/0205886 A1 zeigt ein Master-Slave-Kommunikationsnetzwerk auf EtherCAT-Basis.
-
Die der Erfindung zugrunde liegende Aufgabe kann daher darin gesehen werden, ein verbessertes Verfahren zum Betreiben eines Kommunikationsnetzwerks umfassend mehrere Teilnehmer bereitzustellen, das die bekannten Nachteile überwindet.
-
Die der Erfindung zugrunde liegende Aufgabe kann des Weiteren darin gesehen werden, ein entsprechendes Kommunikationsnetzwerk bereitzustellen.
-
Diese Aufgaben werden mittels des jeweiligen Gegenstands der unabhängigen Ansprüche gelöst. Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand von jeweils abhängigen Unteransprüchen.
-
Nach einem Aspekt wird ein Verfahren zum Betreiben eines Kommunikationsnetzwerks bereitgestellt, umfassend einen Master-Teilnehmer und mehrere Slave-Teilnehmer, die über eine Datenleitung miteinander verbunden sind, wobei der Master-Teilnehmer Telegramme auf der Datenleitung versendet, die über die Datenleitung von einem Slave-Teilnehmer zum nächsten Slave-Teilnehmer weitergeleitet werden, wobei ein Telegramm wenigstens ein Datagramm mit einem Kopfabschnitt und einem Datenfeld umfasst, wobei der Kopfabschnitt ein Kommandofeld und zwei Adressfelder aufweist, wobei das eine Adressfeld eine Adresse eines ersten Slave-Teilnehmers und das andere Adressfeld eine Adresse eines zweiten Slave-Teilnehmers umfasst, wobei das Kommandofeld ein Kommando aufweist, das dem ersten Slave-Teilnehmer befiehlt, Daten aus dem Datenfeld zu lesen, und das dem zweiten Teilnehmer befiehlt, Daten in das Datenfeld zu schreiben, wobei der erste Slave-Teilnehmer bei einem Empfang des Telegramms Daten aus dem Datenfeld des Telegramms liest und nach dem Auslesen das Telegramm weiterleitet, und wobei der zweite Slave-Teilnehmer bei einem Empfang des vom erste Slave-Teilnehmer weitergeleiteten Telegramms Daten in das Datenfeld schreibt.
-
Nach noch einem Aspekt wird ein Kommunikationsnetzwerk bereitgestellt, umfassend einen Master-Teilnehmer und mehrere Slave-Teilnehmer, die über eine Datenleitung miteinander verbunden sind, wobei der Master-Teilnehmer ausgelegt ist, Telegramme auf der Datenleitung zu versenden, die über die Datenleitung von einem Slave-Teilnehmer zum nächsten Slave-Teilnehmer weitergeleitet werden, wobei ein Telegramm wenigstens ein Datagramm mit einem Kopfabschnitt und einem Datenfeld umfasst, wobei der Kopfabschnitt ein Kommandofeld und zwei Adressfelder aufweist, wobei das eine Adressfeld eine Adresse eines ersten Slave-Teilnehmers und das andere Adressfeld eine Adresse eines zweiten Slave-Teilnehmers umfasst, wobei das Kommandofeld ein Kommando aufweist, das dem ersten Slave-Teilnehmer befiehlt, Daten aus dem Datenfeld zu lesen, und das dem zweiten Teilnehmer befiehlt, Daten in das Datenfeld zu schreiben, wobei der erste Slave-Teilnehmer ausgelegt ist, bei einem Empfang des Telegramms Daten aus dem Datenfeld des Telegramms auszulesen und nach dem Auslesen das Telegramm weiterzuleiten, und wobei der zweite Slave-Teilnehmer ausgelegt ist, bei einem Empfang des vom erste Slave-Teilnehmer weitergeleiteten Telegramms Daten in das Datenfeld zu schreiben.
-
Die Erfindung umfasst also insbesondere den Gedanken, ein gemeinsames Datenfeld in einem Telegramm vorzusehen, in welchen Teilnehmer des Kommunikationsnetzwerks Daten sowohl hineinschreiben als auch Daten aus dem Datenfeld auslesen können. Dadurch ist insbesondere in vorteilhafter Weise eine effiziente Nutzung des Datenfelds gegeben. Denn so können beispielsweise die Teilnehmer mittels des Datenfelds Daten untereinander austauschen. So kann ein Teilnehmer Daten in das Datenfeld reinschreiben, die von einem anderen Teilnehmer ausgelesen werden. Den Teilnehmern steht somit in vorteilhafter Weise ein gemeinsames Datenfeld für einen Austausch von Daten zur Verfügung. Das Telegramm kann somit stets genutzt werden unabhängig davon, ob es von einem Master, der insbesondere auch ein Teilnehmer des Kommunikationsnetzwerks ist, an die Teilnehmer, also die Slaves, gesendet wird oder ob es von einem Slave an den Master gesendet wird. Stets kann das Telegramm genutzt werden. Dies im Gegensatz zum bekannten Stand der Technik, in dem abhängig von einem Schreib- oder Lesezugriff auf die Teilnehmer das Telegramm entweder auf dem Weg vom Master oder auf dem Weg zurück zum Master ungenutzt bleibt.
-
Erfindungsgemäß ist vorgesehen, dass das Telegramm mehrere Adressfelder mit zugeordneten Adressen der Teilnehmer aufweist, die Daten aus dem Datenfeld lesen oder in das Datenfeld schreiben sollen. Dadurch wird insbesondere der technische Effekt bewirkt, dass bekannt ist, welcher Teilnehmer Daten aus dem Datenfeld lesen soll und welcher Teilnehmer Daten in das Datenfeld hineinschreiben soll. Somit weiß jeder Teilnehmer, wenn er das Telegramm empfängt, ob er Daten in das Datenfeld schreiben oder Daten aus dem Datenfeld lesen soll. Das heißt also insbesondere, dass die Adressfelder eine Kennung, beispielsweise ein Flag, aufweisen, die anzeigt, ob der Teilnehmer, dem die Adresse des Adressfelds zugeordnet ist, Daten aus dem Datenfeld lesen oder Daten in das Datenfeld schreiben soll. Insbesondere kann ein Adressfeld ein Broadcastflag und/oder eine Gruppenadresse umfassen, das respektive die anzeigt, dass das Telegramm von denjenigen Teilnehmern, die von der Gruppenadresse oder dem Broadcastflag umfasst oder adressiert sind, bearbeitet (Lesen von Daten aus dem Datenfeld und/oder Schreiben von Daten in das Datenfeld) werden soll.
-
In einer weiteren Ausführungsform kann vorgesehen sein, dass das Telegramm zumindest einen Zähler aufweist, der beim Lesen aus dem und/oder beim Schreiben in das Datenfeld inkrementiert (also hochgezählt) wird. Dadurch wird beispielsweise der technische Effekt bewirkt, dass ein Protokoll über einen erfolgreichen Lesevorgang und/oder über ein erfolgreichen Schreibvorgang geführt wird, so dass sich auch nachträglich jederzeit feststellen lässt, wie viele Schreibvorgänge und/oder Lesevorgänge durchgeführt wurden. Ein solcher Zähler kann beispielsweise auf Englisch als ein „Working Counter”, also als ein Arbeitszähler, bezeichnet werden. Der Zähler wird insbesondere nur inkrementiert, wenn der Lesevorgang und/oder der Schreibvorgang erfolgreich durchgeführt wurden. Der Zähler für Lesevorgänge kann insbesondere als ein Lesezähler bezeichnet werden. Der Zähler für Schreibvorgänge kann beispielsweise als ein Schreibzähler bezeichnet werden. Wenn nur ein Zähler vorgesehen ist, kann dieser insbesondere als ein Schreib-/Lesezähler bezeichnet werden.
-
Nach einer weiteren Ausführungsform kann vorgesehen sein, dass das Telegramm zwei Zähler aufweist, wobei der eine Zähler ausschließlich beim Lesen aus dem Datenfeld und der andere Zähler ausschließlich beim Schreiben in das Datenfeld inkrementiert wird. Dadurch wird beispielsweise der technische Effekt bewirkt, dass ein noch genaueres Protokoll über erfolgreiche Schreibvorgänge und/oder Lesevorgänge geführt werden kann, welches besonders einfach auszulesen. Denn aufgrund der beiden Zähler steht unmittelbar die Information zur Verfügung, wie viele Schreibvorgänge und wie viele Lesevorgänge durchgeführt wurden.
-
Gemäß einer anderen Ausführungsform kann vorgesehen sein, dass abhängig davon, ob gelesen oder geschrieben wird, mit unterschiedlichen Inkrementen inkrementiert wird. Dadurch wird insbesondere der technische Vorteil bewirkt, dass beispielsweise nur ein Zähler benötigt wird. Denn aus dem Zählerwert kann aufgrund der unterschiedlichen Inkremente rückgerechnet werden, wie viele Schreibvorgänge und wie viele Lesevorgänge durchgeführt wurden. Bei zwei Zählern wird insbesondere der technische Effekt bewirkt, dass allein die Angabe des Zählerwerts reicht, um festzustellen, ob es sich bei dem entsprechenden Zähler um den Zähler für Schreibvorgänge oder um den Zähler für Lesevorgänge handelt. Der Zähler (Lesezähler oder Schreib-/Lesezähler) wird also bei einem Lesevorgang um einen ersten Inkrementen inkrementiert, also hochgezählt. Bei einem Schreibvorgang wird der Zähler (Schreibzähler oder Schreib-/Lesezähler) um einen zweiten Inkrementen inkrementiert, also hochgezählt. Der erste Inkrement und der zweite Inkrement sind unterschiedlich.
-
In einer weiteren Ausführungsform kann vorgesehen sein, dass bei einem Schreiben von Daten in das Datenfeld die zu schreibenden Daten mit im Datenfeld bereits vorhandenen Daten verknüpft werden. Dadurch wird beispielsweise der technische Effekt bewirkt, dass weitere Daten in das Datenfeld geschrieben werden können, obwohl bereits Daten in dem Datenfeld vorhanden sind. Die Verknüpfung kann zum Beispiel eine Veroderung der zu schreibenden Daten mit den bereits vorhandenen Daten umfassen. Insbesondere kann die Verknüpfung auch andere logische und/oder arithmetische Operationen und/oder beliebige Kombinationen zwischen logischen und arithmetischen Operationen zwischen den zu schreibenden Daten und den bereits vorhandenen Daten umfassen. Die logische Operation kann beispielsweise ein logisches UND umfassen, um zum Beispiel in vorteilhafter Weise zu ermitteln, ob alle Teilnehmer im selben Zustand sind. Die arithmetische Operation kann beispielsweise eine arithmetische SUMME umfassen, um zum Beispiel in vorteilhafter Weise Zähler, insbesondere Fehlerzähler, zu einem Gesamtzählerwert, insbesondere zu einem Gesamtfehlerwert, zusammenzuziehen oder zusammenzuführen.
-
Gemäß einer anderen Ausführungsform respektive einem anderen Aspekt kann vorgesehen sein, dass
- – das Telegramm von einem ersten Teilnehmer empfangen wird,
- – welcher Daten aus dem Datenfeld ausliest, so dass das Datenfeld nach dem Lesen leer ist, wobei
- – der erste Teilnehmer nach dem Auslesen das Telegramm mit dem leeren Datenfeld weitersendet, wobei
- – das Telegramm mit dem leeren Datenfeld von einem zweiten Teilnehmer empfangen wird, welcher Daten in das leere Datenfeld schreibt.
-
Dadurch wird insbesondere der technische Effekt bewirkt, dass mit einem Telegramm effizient ein Lesevorgang bei einem Teilnehmer und ein Schreibvorgang bei einem zweiten Teilnehmer vorgenommen werden kann, wobei hierfür keine Konfiguration von Phasen, in denen eine azyklische Kommunikation vorgesehen ist, notwendig ist, und dass der Master bei jedem neuen Senden des Telegramms entscheiden kann, welche Teilnehmer des Kommunikationsnetzwerks er adressieren möchte. Durch das leere Datenfeld steht dem zweiten Teilnehmer der gesamte Speicherplatz zur Verfügung, um Daten in das Datenfeld zu schreiben. Da bei einem leeren Datenfeld keine Verknüpfung von zu schreibenden Daten mit bereits vorhandenen Daten durchgeführt werden muss, werden somit eine Bearbeitungszeit und ein Rechenaufwand verringert. Das Telegramm kann somit in vorteilhafter Weise nach dem Schreiben der Daten in das Datenfeld schnell und mit einer geringeren Verzögerung relativ zu einer Bearbeitung umfassend eine Verknüpfung weitergeleitet werden. „Leer” im Sinne der vorliegenden Erfindung kann beispielsweise bedeuten, dass das Datenfeld keinen Inhalt hat. „Leer” im Sinne der vorliegenden Erfindung kann beispielsweise bedeuten, dass das Datenfeld eine logische Null (0) als einzigen Inhalt hat.
-
Nach einer Ausführungsform kann vorgesehen sein, dass ein Master das Telegramm an einen Teilnehmer, insbesondere den ersten Teilnehmer oder den zweiten Teilnehmer, sendet.
-
In einer Ausführungsform kann vorgesehen sein, dass die Teilnehmer ein empfangenes Telegramm zum nächsten Teilnehmer weiterleiten.
-
In einer weiteren Ausführungsform kann vorgesehen sein, dass der Teilnehmer, insbesondere der erste Teilnehmer oder der zweite Teilnehmer, das Telegramm an einen weiteren Teilnehmer, insbesondere den zweiten Teilnehmer oder den ersten Teilnehmer, sendet.
-
In einer anderen Ausführungsform kann vorgesehen sein, dass der Teilnehmer, insbesondere der erste Teilnehmer oder der zweite Teilnehmer, das Telegramm an den Master sendet.
-
Sofern nach einer Ausführungsform ein Datenaustausch mit dem Telegramm zwischen den Teilnehmern nur in eine Richtung (zum Beispiel eine Hin- oder eine Rückrichtung; Hinrichtung oder Hinweg ist die Richtung vom Master zum Teilnehmer, Rückrichtung oder Rückweg ist die Richtung vom Teilnehmer zum Master) erfolgen oder durchgeführt werden kann, so ist insbesondere vorgesehen, dass ein Teilnehmer (zum Beispiel der erste Teilnehmer), der Daten aus dem Datenfeld auslesen soll, vor dem Teilnehmer (zum Beispiel dem zweiten Teilnehmer) bezogen auf eine Datenaustauschrichtung oder eine Laufrichtung des Telegramms liegt, der Daten in das Datenfeld hineinschreiben soll. Denn wenn keine Verknüpfung durchgeführt werden soll, so muss das Datenfeld erst leer sein, bevor wieder Daten in das Datenfeld hineingeschrieben werden können. Somit müssen zuerst die Daten aus dem Datenfeld mittels eines Teilnehmers (zum Beispiel erster Teilnehmer) gelesen werden, bevor Daten von einem weiteren Teilnehmer (zum Beispiel zweiter Teilnehmer) in das Datenfeld geschrieben werden können. In dieser Ausführungsform verläuft eine Datenleitung vom Teilnehmer zurück zum Master nicht mehr durch die Teilnehmer, so dass diese auf dem Rückweg des Telegramms das Telegramm nicht mehr empfangen und bearbeiten können.
-
Sofern nach einer Ausführungsform ein Datenaustausch mit dem Telegramm zwischen den Teilnehmern in beiden Richtungen (also Hin- und Rückrichtung) erfolgen oder durchgeführt werden kann, so kann insbesondere vorgesehen sein, dass eine Positionierung eines Teilnehmers (zum Beispiel der erste Teilnehmer), der lesen soll, und eines Teilnehmers (zum Beispiel der zweite Teilnehmer), der schreiben soll, beliebig ist. Denn so kann das Auslesen der Daten aus dem Datenfeld auf der Hinrichtung oder auf dem Hinweg, also die Richtung vom Master in Richtung Teilnehmer, durchgeführt werden. Das Schreiben von Daten in das Datenfeld kann auf der Rückrichtung oder auf dem Rückweg, also die Richtung vom letzten Teilnehmer des Kommunikationsnetzwerks zurück zum Master, durchgeführt werden. In dieser Ausführungsform verläuft eine Datenleitung vom Teilnehmer zurück zum Master durch die Teilnehmer, so dass diese auf dem Rückweg des Telegramms das Telegramm empfangen und bearbeiten können.
-
Nach einer Ausführungsform kann vorgesehen sein, dass die Teilnehmer Teilnehmer einer Automatisierungsanlage oder einer Automatisierungseinrichtung sind. Die Automatisierungsanlage oder -einrichtung kann beispielsweise eine Steuerungsanlage und/oder Steuerungseinrichtung umfassen. Die Teilnehmer können vorzugsweise Teilnehmer einer Steuerungsanlage und/oder einer Steuerungseinrichtung sein. Das heißt also, dass die entsprechende vorstehend genannte Anlage und/oder Einrichtung mehrere Teilnehmer aufweist, die über ein Kommunikationsnetzwerk miteinander verbunden sind. Zum Beispiel verbindet eine Datenleitung die Teilnehmer untereinander. Beispielsweise verbindet die Datenleitung den Master mit den Teilnehmern. Über das Kommunikationsnetzwerk können Telegramme übertragen werden, so dass Telegramme von einem Teilnehmer zum nächsten Teilnehmer weitergeleitet werden können.
-
Nach einer Ausführungsform ist das Kommunikationsnetzwerk ein Ethernet-Kommunikationsnetzwerk. Das Telegramm kann beispielsweise ein Ethernettelegramm sein.
-
Nach einer anderen Ausführungsform ist das Kommunikationsnetzwerk ein EtherCAT-Kommunikationsnetzwerk. Das Telegramm kann beispielsweise ein EtherCAT-Telegramm sein.
-
Das Telegramm kann beispielsweise ein Datagramm umfassen, wobei das Datagramm den vorstehend genannten Zähler oder die vorstehend genannten Zähler und/oder das Datenfeld und/oder die vorstehend genannten Adressfelder umfassen kann. Das Telegramm kann beispielsweise analog zum Telegramm 201 der 2 gebildet sein, wie noch nachstehend erläutert.
-
Nach einer anderen Ausführungsform können Teilnehmer einen Aktor und/oder einen Sensor steuern und/oder auslesen. Dies insbesondere basierend auf einem empfangenen Telegramm, insbesondere basierend auf Daten des Datenfelds. Das heißt also insbesondere, dass ein Teilnehmer einen Aktor und/oder einen Sensor steuern und/oder auslesen kann. Dies basierend auf einem empfangenen Telegramm, insbesondere basierend auf Daten des Datenfelds. So kann beispielsweise ein Teilnehmer Daten in das Datenfeld schreiben, die Informationen über einen Status des Aktors und/oder des Sensors umfassen. So kann beispielsweise ein Teilnehmer Daten aus dem Datenfeld lesen, die eine Information umfassen, wie der Teilnehmer den Aktor und/oder den Sensor steuern soll.
-
Wenn der Teilnehmer Daten aus dem Datenfeld ausliest, so werden diese ausgelesenen Daten vorzugsweise in den Teilnehmer geschrieben, insbesondere in einen Speicher des Teilnehmers und/oder des zugehörigen Aktors und/oder Sensors. Ein Auslesen von Daten aus dem Datenfeld bewirkt also insbesondere ein Schreiben von Daten in den Teilnehmer, also einen Schreibzugriff auf den Teilnehmer.
-
Wenn der Teilnehmer Daten in das Datenfeld hineinschreibt, so werden diese zu schreibende Daten insbesondere aus dem Teilnehmer ausgelesen, insbesondere aus einem Speicher des Teilnehmers und/oder des zugehörigen Aktors und/oder Sensors. Ein Schreiben von Daten in das Datenfeld bewirkt also insbesondere ein Auslesen von Daten aus dem Teilnehmer, also einen Lesezugriff auf den Teilnehmer.
-
Nach einer Ausführungsform kann ein Teilnehmer ein empfangenes Telegramm verarbeiten. Ein Verarbeiten kann beispielsweise ein Lesen von Daten aus dem Telegramm, insbesondere aus dem Datenfeld, umfassen. Ein Verarbeiten kann beispielsweise ein Schreiben von Daten in das Telegramm, insbesondere in das Datenfeld, umfassen. Der Teilnehmer kann beispielsweise das verarbeitete Telegramm weitersenden.
-
Nach einer Ausführungsform kann vorgesehen sein, dass ein Teilnehmer ein empfangenes Telegramm lediglich weiterleitet, also nicht verarbeitet.
-
Nach einer Ausführungsform kann das Kommunikationsnetzwerk eine Topologie ausgewählt aus der folgenden Gruppe von Topologien aufweisen: Ring, Linie, Stern, Baum und eine Kombination hiervon.
-
Die im Zusammenhang mit dem Verfahren gemachten Ausführungen gelten analog für Teilnehmer und für das Kommunikationsnetzwerk und umgekehrt. Das heißt also insbesondere, dass sich Ausführungsformen hinsichtlich eines Teilnehmers und/oder eines Kommunikationsnetzwerks aus Ausführungsformen hinsichtlich des Verfahrens und umgekehrt in jeder möglichen Kombination ergeben können. Wenn der Singular für „Teilnehmer” verwendet wird, so soll stets der Plural mitgelesen werden und umgekehrt.
-
Die Erfindung wird im Folgenden anhand von bevorzugten Ausführungsbeispielen näher erläutert. Hierbei zeigen
-
1 ein EtherCAT-Telegramm,
-
2 ein EtherCAT-Telegramm mit einem Datenfeld,
-
3 ein Kommunikationsnetzwerk,
-
4 ein weiteres Kommunikationsnetzwerk und
-
5 ein Ablaufdiagramm eines Verfahrens zum Betreiben eines Kommunikationsnetzwerks.
-
Im Folgenden können für gleiche Merkmale gleiche Bezugszeichen verwendet werden.
-
1 zeigt ein EtherCAT-Telegramm 101.
-
Das EtherCAT-Telegramm 101 umfasst einen Ethernet-Kopfabschnitt 103, auch Ethernet-Header genannt. Ferner umfasst das EtherCAT-Telegramm 101 mehrere Datagramme 105. Explizit gezeigt sind zwei Datagramme. Das Bezugszeichen 107 zeigt auf ein Kästchen des EtherCAT-Telegramms 101, in dem fünf Punkte eingezeichnet sind. Damit soll symbolisch dargestellt werden, dass anstelle des Kästchens 107 weitere Datagramme 105 vorgesehen sein können.
-
Die Datagramme 105 umfassen jeweils einen Datagramm-Kopfabschnitt 109, auch Datagramm-Header genannt. Der Datagramm-Kopfabschnitt 109 umfasst eine Zieladresse (also ein Adressfeld mit einer Zieladresse eines Teilnehmers) eines Teilnehmers eines Kommunikationsnetzwerks, für den das Datagramm 105 mit dem der Zieladresse entsprechenden Datagramm-Kopfabschnitt 109 bestimmt ist. Ferner umfasst der Datagramm-Kopfabschnitt 109 ein Kommando oder mehrere Kommandos (nicht gezeigt), die der Teilnehmer mit der Zieladresse ausführen soll.
-
Des Weiteren umfassen die Datagramme 105 jeweils Daten 111 für den Teilnehmer mit der entsprechenden Zieladresse. Ferner umfassen die Datagramme 105 jeweils einen Zähler 113, auch Working-Counter oder Arbeitszähler genannt, der anzeigt, ob eine Bearbeitung des entsprechenden Datagramms 105 mittels des Teilnehmers mit der entsprechenden Zieladresse erfolgreich war. Es ist vorzugsweise möglich, mittels jeden Datagramms 105 ein oder mehrere Teilnehmer zu adressieren.
-
Das EtherCAT-Telegramm 101 umfasst ferner eine Prüfsumme 115, die beispielsweise über die Daten 111 gebildet werden kann. Die Prüfsumme 115 kann beispielsweise eine CRC(Cycle Redundancy Check, auf Deutsch: Zyklische Redundanzprüfung)-Prüfsumme sein.
-
2 zeigt ein weiteres EtherCAT-Telegramm 201.
-
Das EtherCAT-Telegramm 201 umfasst analog zum EtherCAT-Telegramm 101 der 1 einen Ethernet-Kopfabschnitt 103. Die geschweifte Klammer mit dem Bezugszeichen 203 umfasst ein oder zeigt auf ein Datagramm 205 des EtherCAT-Telegramms 201. Die geschweifte Klammer mit dem Bezugszeichen 207 umfasst ein oder zeigt auf einen Datagramm-Kopfabschnitt 209, oder Datagramm-Header, des Datagramms 205. Der Datagramm-Kopfabschnitt 209 umfasst ein Kommandofeld 211, ein erstes Adressfeld 213 und ein zweites Adressfeld 215. Das Datagramm 205 umfasst ferner ein Datenfeld 217, in welches Daten geschrieben und aus welchem Daten gelesen werden können. Hierbei umfasst das erste Adressfeld 213 eine Adresse eines ersten Teilnehmers eines EtherCAT-Kommunikationsnetzwerks, welcher Daten aus dem Datenfeld 217 lesen soll. Das zweite Adressfeld 215 umfasst eine Adresse eines zweiten Teilnehmers des EtherCAT-Kommunikationsnetzwerks, welcher Daten in das Datenfeld 217 schreiben soll. Das Kommandofeld 211 umfasst ein Kommando, welches dem ersten Teilnehmer befiehlt, Daten aus dem Datenfeld 217 zu lesen, und welches dem zweiten Teilnehmer befiehlt, Daten in das Datenfeld 217 zu schreiben. Das Kommando kann beispielsweise ein FMRW-Kommando sein. „FMRW” steht für die englischen Begriffe: Fixed Address Multiple Read Write, also auf Deutsch: Mehreres Lesen und/oder Schreiben an festen Adressen. Hierbei ist vorzugsweise vorgesehen, dass der erste Teilnehmer die Daten aus dem Datenfeld 217 liest, so dass nach dem Lesen der Daten das Datenfeld 217 leer ist. Der zweite Teilnehmer schreibt somit Daten in ein leeres Datenfeld 217. Das Telegramm 201 umfasst ferner eine Prüfsumme 115, die insbesondere über die Daten in dem Datenfeld 217 gebildet sein kann. Die Prüfsumme 115 kann beispielsweise eine CRC-Prüfsumme 115 sein. Die Reihenfolge der einzelnen Elemente (Adressfelder und Kommandofeld) oder Bestandteile des Datagramm-Kopfabschnitts 209 kann beispielsweise beliebig sein und muss nicht zwangsläufig der in 2 gezeigten Reihenfolge entsprechen. Diese gezeigte Reihenfolge ist lediglich beispielhaft, nicht aber einschränkend. Dies gilt auch für den Datagramm-Kopfabschnitt 109 der 1. Das Kommando im Kommandofeld 211 kann beispielsweise ein Lese-, Schreib- oder Schreib/Lese-Kommando oder eine beliebige Kombination hiervon sein, jeweils mit unterschiedlichen Adressierungsarten, also mit Adressen, welcher Teilnehmer, welches Kommando ausführen soll.
-
Ferner umfasst das Datagramm 205 eine Zähler 113, also einen Arbeitszähler oder Working-Counter, der anzeigt, ob ein Schreibvorgang in das und/oder ein Lesevorgang aus dem Datenfeld 217 erfolgreich durchgeführt wurde. Hierfür ist vorzugsweise vorgesehen, dass der Zähler 113 nach einem erfolgreichen Schreibvorgang und nach einem erfolgreichen Lesevorgang inkrementiert wird. Insbesondere wird bei nur einem Zähler 113 der Zähler 113 mit unterschiedlichen Inkrementen abhängig davon inkrementiert, ob erfolgreich in das Datenfeld 217 geschrieben oder aus dem Datenfeld 217 gelesen wurde.
-
In einer nicht gezeigten Ausführungsform können zwei Zähler 113 vorgesehen sein, wobei einer der beiden Zähler ausschließlich bei einem erfolgreichen Schreibvorgang in das Datenfeld 217 inkrementiert wird und wobei der andere Zähler ausschließlich bei einem erfolgreichen Lesevorgang aus dem Datenfeld 217 inkrementiert wird.
-
In einer nicht gezeigten Ausführungsform kann das EtherCAT-Telegramm 201 zusätzlich zum Datagramm 205 noch Datagramme 105 analog zu 1 aufweisen. Das heißt also insbesondere, dass das EtherCAT-Telegramm 101 der 1 mit einem Datagramm 205 der 2 erweitert werden kann. Insbesondere kann vorgesehen sein, dass ein Datagramm-Kopfabschnitt 109 der 1 gemäß dem Datagramm-Kopfabschnitt 209 der 2 gebildet ist.
-
3 zeigt ein Kommunikationsnetzwerk 301.
-
Das Kommunikationsnetzwerk 301 umfasst mehrere Teilnehmer 303, die ausgebildet sind, das erfindungsgemäße Verfahren durchzuführen. Gezeigt sind 4 Teilnehmer 303a, b, c, d. Es können aber vorzugsweise zwei, drei oder mehr als 4 Teilnehmer 303a, b, c, d vorgesehen sein. Das Kommunikationsnetzwerk 301 umfasst einen weiteren Teilnehmer 305, der als Master konfiguriert ist. Die vier Teilnehmer 303a, b, c, d sind als Slaves konfiguriert. Der Master 305 und die Teilnehmer 303a, b, c, d sind über eine Datenleitung 311 miteinander verbunden.
-
Der Master 305 weist eine Sendeschnittstelle 307 auf, mittels welcher der Master 305 Telegramme an die Teilnehmer 303a, b, c, d senden kann. Ein solches Telegramm kann beispielsweise das Telegramm 101 der 1 oder das Telegramm 201 der 2 sein. Der Master 305 umfasst eine Empfangsschnittstelle 309, mittels welcher der Master 305 Telegramme von den Teilnehmern 303a, b, c, d empfangen kann. Die Übertragung eines Telegramms über das Kommunikationsnetzwerk 301 kann beispielsweise wie folgt durchgeführt werden.
-
Der Master 305 sendet über seine Sendeschnittstelle 307 das Telegramm 201 (die Ausführungen gelten analog für das Telegramm 101) an denjenigen der Teilnehmer 303, der dem Master 305 über die Datenleitung 311 unmittelbar nachgeschaltet ist, hier der Teilnehmer 303a. Eine Laufrichtung des ausgesendeten Telegramms 201 ist mit einem Pfeil mit dem Bezugszeichen 313 dargestellt. Das Telegramm 201 durchläuft nun nacheinander in Laufrichtung von links nach rechts die vier Teilnehmer 303a, b, c, d. Nach dem Durchlauf des vierten Teilnehmers, hier der Teilnehmer 303d, wird das Telegramm 201 von dem letzten der vier Teilnehmer, also dem Teilnehmer 303d, zurück an den Master 305 gesendet. Der Master empfängt das Telegramm 201 über seine Empfangsschnittstelle 309.
-
Im ersten Adressfeld 213 des Datagramms 205 kann beispielsweise die Adresse des Teilnehmers 303b stehen. Im zweiten Adressfeld 215 des Datagramms 205 kann beispielsweise die Adresse des Teilnehmers 303d stehen. Der Master 305 kann vorzugsweise diese Adressierung durchführen. Der Master 305 kann beispielsweise Daten in das Datenfeld 217 schreiben. Beim Übertragen des Telegramms 201 über das Kommunikationsnetzwerks 301, also beim Durchlauf des Telegramms 201 durch die Teilnehmer 303a, b, c, d, wird das Telegramm 201 vom Teilnehmer 303b empfangen. Der Teilnehmer 303b liest die Daten aus dem Datenfeld 217 aus, so dass das Datenfeld 217 nach dem Auslesen leer ist. Beispielsweise weist das Datenfeld 217 eine logische Null auf. Der Teilnehmer 303b sendet das Telegramm 201 weiter an den Teilnehmer 303c. Diese sendet das Telegramm 201 weiter an den Teilnehmer 303d. Der Teilnehmer 303d schreibt Daten in das Datenfeld 217 und sendet anschließend das Telegramm 201 weiter an den Master 305. Der Master 305 empfängt das Telegramm 201 über seine Empfangsschnittstelle 309.
-
In dem Kommunikationsnetzwerk 301 der 3 durchläuft ein Abschnitt 311a der Datenleitung 311, der vom letzten Teilnehmer 303d zurück zum Master 305 führt, nicht mehr die vier Teilnehmer 303a, b, c, d. Ein Datenaustausch ist somit nur in eine Richtung, der Laufrichtung, möglich. Daher muss in dieser Ausführungsform der Teilnehmer, welcher Daten aus dem Datenfeld 217 lesen soll, bezogen auf die Laufrichtung vor dem Teilnehmer angeordnet sein, der Daten in das Datenfeld 217 schreiben soll. Dies allerdings nur unter der Prämisse, dass Daten in ein leeres Datenfeld 217 geschrieben werden sollen. Sofern eine Verknüpfung der zu schreibenden Daten mit bereits im Datenfeld 217 vorhandenen Daten vorgesehen ist, kann eine Position der Teilnehmer, die schreiben sollen, und der Teilnehmer, die lesen sollen, zueinander beliebig sein.
-
Obwohl nicht explizit gezeigt, weisen die vier Teilnehmer 303a, b, c, d ebenfalls jeweils eine Sendeschnittstelle zum Senden von und eine Empfangsschnittstelle zum Empfangen von Telegrammen auf.
-
4 zeigt ein weiteres Kommunikationsnetzwerk 401.
-
Das Kommunikationsnetzwerk 401 ist im Wesentlichen analog zu dem Kommunikationsnetzwerk 301 der 3 aufgebaut. Auf die entsprechenden Ausführungen wird verwiesen. Als ein Unterschied durchläuft der Abschnitt 311a der Datenleitung 311, der vom letzten Teilnehmer 303d zurück zum Master 305 führt, auf seinem Rückweg die vier Teilnehmer 303a, b, c, d. Ein Datenaustausch ist somit sowohl auf einem Hinweg des Telegramms 201 von der Sendeschnittstelle 307 des Masters 305 durch die Teilnehmer 303a, b, c, d als auch auf einem Rückweg vom letzten Teilnehmer 303d durch die vier Teilnehmer 303a, b, c, d zur Empfangsschnittstelle 309 des Masters 305 möglich. In dieser Konfiguration ist daher eine Positionierung des Teilnehmers, der lesen soll, zu dem Teilnehmer, der schreiben soll, beliebig. Dies unabhängig davon, ob in ein leeres Datenfeld 217 geschrieben werden soll oder ob eine Verknüpfung zwischen zu schreibenden Daten und bereits im Datenfeld 217 vorhandenen Daten vorgesehen ist.
-
So kann beispielsweise der Teilnehmer, der Daten aus dem Datenfeld 217 lesen soll, der Teilnehmer 303d sein. Der Teilnehmer, der Daten in das Datenfeld 217 schreiben soll, kann beispielsweise der Teilnehmer 303a sein. Die Übertragung des Telegramms 201 über das Kommunikationsnetzwerk 401 kann dann wie folgt sein.
-
Der Master 305 sendet über seine Sendeschnittstelle 307 das Telegramm 201 aus. Im ersten Adressfeld 213 des Datagramms 205 steht die Adresse des Teilnehmers 303d. Im zweiten Adressfeld 215 des Datagramms 205 steht die Adresse des Teilnehmers 303a. Im Datenfeld 217 stehen Daten, die der Teilnehmer 303d lesen soll. Das Telegramm 201 durchläuft nacheinander die Teilnehmer 303a, b, c, d. Wenn der Teilnehmer 303d das Telegramm 201 empfängt, liest er die Daten aus dem Datenfeld 217 aus. Dieses kann beispielsweise nach dem Auslesen leer sein und daher beispielsweise eine logische Null aufweisen. Das Telegramm 201 durchläuft dann über den Abschnitt 311a der Datenleitung 311 nochmals den Teilnehmer 303d, dann den Teilnehmer 303c, dann den Teilnehmer 303b und wird dann vom Teilnehmer 303a empfangen. Der Teilnehmer 303a schreibt Daten in das Datenfeld 217 und sendet das Telegramm 201 anschließend an den Master 305, der das Telegramm 201 mittels seiner Empfangsschnittstelle 309 empfängt.
-
5 zeigt ein Ablaufdiagramm eines Verfahrens zum Betreiben eines Kommunikationsnetzwerks, das mehrere Teilnehmer umfasst.
-
Gemäß einem Schritt 501 wird ein Telegramm umfassend ein Datenfeld von einem ersten Teilnehmer empfangen. Das Telegramm kann beispielsweise analog zum Telegramm 201 der 2 gebildet sein. In einem Schritt 503 liest der erste Teilnehmer Daten aus dem Datenfeld aus, so dass das Datenfeld nach dem Lesen leer ist. Gemäß einem Schritt 505 sendet der erste Teilnehmer nach dem Auslesen das Telegramm mit dem leeren Datenfeld weiter. In einem Schritt 507 wird das Telegramm mit dem leeren Datenfeld von einem zweiten Teilnehmer empfangen, welcher gemäß einem Schritt 509 Daten in das leere Datenfeld schreibt. In einer nicht gezeigten Ausführungsform kann vorgesehen sein, dass nach dem Schreiben der zweite Teilnehmer das Telegramm an einen weiteren Teilnehmer oder an einen Master sendet. Der zweite Teilnehmer kann beispielsweise unmittelbar dem ersten Teilnehmer folgen. Vorzugsweise sind zwischen dem ersten und dem zweiten Teilnehmer noch weitere Teilnehmer angeordnet, so dass das Telegramm erst diese weiteren Teilnehmer durchlaufen muss, bevor es dann zum zweiten Teilnehmer gelangt.
-
In einer nicht gezeigten Ausführungsform kann das Verfahren auch für eine Slave-to-Slave Kommunikation genutzt oder verwendet werden, indem von einem Teilnehmer gelesen und in einen später von dem Telegramm (Frame) durchlaufenen Teilnehmer geschrieben wird.
-
In einer nicht gezeigten Ausführungsform kann das Verfahren erweitert werden, um eine sogenannten „One-to-Many(einer für alle)-Kommunikation” zu ermöglichen. In dieser Ausführungsform wird von einem Teilnehmer gelesen und bei mehreren oder allen folgenden Teilnehmern geschrieben. Dazu wird der Datagramm-Kopfabschnitt 209 (Datagramm-Header) um entsprechende Kennzeichen erweitert. Der Datagramm-Kopfabschnitt 209 weist also ein entsprechendes Kennzeichen auf. Zum Beispiel kann das Kennzeichen oder die Kennung ein Broadcastflag und/oder eine Gruppenadresse sein.
-
In einer nicht gezeigten Ausführungsform kann vorgesehen sein, dass Daten von mehreren Teilnehmern gelesen werden, wobei die jeweiligen zu lesenden Daten jeweils in das Datenfeld geschrieben werden und dabei mit den im Datenfeld bereits vorhandenen Daten verknüpft werden, wobei diese verknüpften Daten vorzugsweise in einen weiteren Teilnehmer geschrieben werden können. Der weitere Teilnehmer liest also die verknüpften Daten aus. Die Verknüpfung kann zum Beispiel durch eine Veroderung der Daten im Datenfeld 217 des Telegramm 201 mit den aus den Teilnehmern zu lesenden Daten erfolgen (also den Daten, die in das Datenfeld 217 geschrieben werden sollen). Grundsätzlich können beispielsweise auch andere logische und/oder arithmetische Operationen als Verknüpfung durchgeführt oder verwendet werden.