-
Die vorliegende Erfindung betrifft ein Verfahren zum Übertragen von zeitkritischen und nicht zeitkritischen Daten in einem Kommunikationssystem aufweisend einen Hauptteilnehmer und einen oder mehrere Nebenteilnehmer sowie eine Recheneinheit, ein Computerprogramm und ein insbesondere als Automatisierungsnetzwerk ausgebildetes Kommunikationssystem zu dessen Durchführung.
-
Stand der Technik
-
In der Automatisierungstechnik werden unterschiedliche Netzwerkprotokolle, üblicherweise Feld- oder Motionbusse bzw. sog. „Industrial Ethernet“, eingesetzt, um die einzelnen Komponenten, wie z.B. elektrische Steuerungen, Antriebsregler, E/A-Geräte, Feldgeräte, usw., miteinander zu verbinden. Diese umfassen Netzwerkprotokolle mit zyklischer Datenübertragung, wie z.B. Sercos 2, Sercos III, EtherCAT oder Profinet IRT. Meist ist ein Kommunikationsteilnehmer als Hauptteilnehmer („Master“) ausgebildet, der die Kommunikation mit den Nebenteilnehmern („Slaves“) kontrolliert.
-
Bei der zyklischen Datenübertragung findet die Übertragung der Daten in Kommunikationszyklen statt, wobei üblicherweise innerhalb eines Zyklus eine Anzahl einzelner Datenpakete (sog. „Telegramme“) übertragen wird. Die Zeit zwischen dem Beginn benachbarter Zyklen wird als Zykluszeit bezeichnet und ist meist konstant. Übliche Zykluszeiten liegen im µs- und ms-Bereich. Die zyklische Datenübertragung wird üblicherweise zur Übertragung von zeitkritischen Daten verwendet, d.h. Daten, die in einer bestimmten Zeit sicher übertragen sein müssen. Hier werden für die zeitkritischen Daten die erforderlichen Kommunikationsressourcen in einem Kommunikationszyklus fest reserviert. Diese reservierten Ressourcen kann der entsprechende Kommunikationsteilnehmer anschließend exklusiv nutzen, ohne dass es zu Kollisionen mit den Daten von anderen Kommunikationsteilnehmern kommt. Beispielsweise wird die zyklische Datenübertragung zur Ansteuerung von Aktoren (wie beispielsweise interpolierenden Antrieben) verwendet, wenn diese eine vorbestimmte Aktion zu einer vorbestimmten Zeit durchführen müssen (z.B. bei Bearbeitungsmaschinen wie Werkzeugmaschinen, Druckmaschinen usw.). Hierbei wird z.B. in jedem Kommunikationszyklus ein Sollwert an jeden Aktor übermittelt. Sollen mehrere Aktoren gemeinsam eine koordinierte Aktion ausführen, wie beispielsweise eine koordinierte mehrdimensionale Bewegung, können in jedem Kommunikationszyklus die entsprechend zusammengehörigen Sollwerte kontextrichtig versandt werden, so dass die Aktoren ihre Aktion synchron ausführen können. In einem Kommunikationszyklus werden dementsprechend üblicherweise Daten für mehrere Empfänger übertragen, wobei für eine Vielzahl von Empfängern jeweils ein oder mehrere Datenpakete vorgesehen sein können.
-
Bei der azyklischen Datenübertragung findet die Übertragung der einzelnen Datenpakete zufällig statt. Greifen in einem Kommunikationssystem jedoch mehrere Kommunikationsteilnehmer unkoordiniert auf einen gemeinsamen Übertragungskanal zu, kann es prinzipiell zu Paketkollisionen kommen. Dies ist der Fall, wenn zwei Kommunikationsteilnehmer zum selben Zeitpunkt ein Signal aussenden, sich diese Signale bei der Übertragung überlagern und ein Empfänger aufgrund der Interferenz keines der beiden Datenpakete fehlerfrei empfangen kann. Wird hier ein solcher Fehlerfall detektiert, wird üblicherweise das erneute Senden des Datenpakets angefordert. Dieses Verfahren ist als ‚Automatic Repeat Request‘ (ARQ) bekannt. Der nicht abgestimmte Zugriff der Kommunikationsteilnehmer auf den gemeinsamen Übertragungskanal kann also zu nicht vorhersehbaren Verzögerungen bei der Zustellung der Datenpakete kommen. Die azyklische Datenübertragung wird üblicherweise zur Übertragung von nicht zeitkritischen Daten verwendet.
-
Bei einer Datenübertragung in zyklischen Kommunikationssystemen fallen neben den zeitkritischen Daten üblicherweise auch nicht zeitkritische Daten an. Diese werden üblicherweise nicht in den für die zeitkritischen Daten gedachten Ressourcen übertragen, da diese knapp bemessen sind. In den eingangs genannten industriellen Ethernet-Systemen sind daher Methoden definiert, neben den zeitkritischen Daten auch nicht zeitkritische Daten in den Kommunikationszyklen zu übertragen. Diese Übertragung ist üblicherweise in einem speziellen Zeitfenster eines jeden Kommunikationszyklus möglich, in dem keine zeitkritischen Daten eingeplant sind. In üblichen industriellen Netzwerken können die Kommunikationsteilnehmer das Zeitfenster für nicht zeitkritische (bzw. „azyklische“) Daten unkoordiniert nutzen. Das heißt, die Kommunikationsteilnehmer senden Daten, ohne dies untereinander abzustimmen. Zwar kommt es dabei in „Switched“-Ethernet nicht zu echten Paketkollisionen im Ethernetkabel. In den Switchen kann es allerdings Verzögerung kommen wenn mehr nicht zeitkritische Daten zu übertragen sind, als in das dafür vorgesehen Fenster eines Kommunikationszyklus passen. Einige Datenpakete können in diesem Fall erst in den folgenden Zyklen übertragen werden. Die Übertragung von solchen Daten ist dadurch nicht vorhersehbar und kann nicht garantiert werden.
-
Zyklische Daten können in einem zyklischen Kommunikationssystem relativ effizient eingeplant und die entsprechenden Ressourcen reserviert werden. Dafür sind nur während der Initialisierungsphase Kontrollinformationen auszutauschen. Die Ressourcenplanung kann anschließend beliebig lange gültig bleiben, ohne dass weitere Kontrollinformationen ausgetauscht werden müssen.
-
Für azyklische Daten gilt dies nicht. Diese Daten müssen im Betrieb je nach Bedarf übertragen werden. Dabei ist bei der Inbetriebnahmephase noch nicht klar, wann welcher Netzwerkknoten wie viele azyklische Daten übertragen möchte, bzw. wann wie viele azyklische Daten an welchen Netzwerkknoten zu übertragen sind.
-
Es ist zwar denkbar, für jeden Kommunikationsteilnehmer eine gewisse, zusätzliche Menge an Übertragungsressourcen fest zuzuweisen, die nur genutzt werden, wenn tatsächlich azyklische Daten zu übertragen sind. Allerdings ist dies sehr ineffizient, da diese Ressourcen ungenutzt bleiben, wenn der entsprechende Kommunikationsteilnehmer gerade keine azyklischen Daten zu übertragen hat. Ein anderer Kommunikationsteilnehmer könnte diese Ressourcen für die Übertragung von seinen azyklischen Daten nicht nutzen.
-
Eine Alternative wäre für die Übertragung von azyklischen Daten freie Ressourcen in einem Kommunikationszyklus temporär für einen Kommunikationsteilnehmer zu reservieren und anschließend wieder freizugeben. Allerdings kann der dafür notwendige Overhead durch Kontrollkommandos unter Umständen in keinem Verhältnis zur Länge der eigentlichen Nachricht stehen.
-
Offenbarung der Erfindung
-
Erfindungsgemäß werden ein Verfahren zum Übertragen von zeitkritischen und nicht zeitkritischen Daten in einem Kommunikationssystem aufweisend einen Hauptteilnehmer und einen oder mehrere Nebenteilnehmer sowie eine Recheneinheit, ein Computerprogramm und ein insbesondere als Automatisierungsnetzwerk ausgebildetes Kommunikationssystem zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
-
Die Erfindung stellt eine Lösung vor, bei der bei einer in Kommunikationszyklen stattfindenden Datenübertragung in einem Netzwerk aufweisend einen Hauptteilnehmer und einen oder mehrere Nebenteilnehmer neben Sende-Datenübertragungsblöcken für zeitkritische Daten (typischerweise sog. E/A-Daten (Eingabe/Ausgabe), d.h. Sollwerte (typischerweise für Aktoren) und Mess-/Istwerte (typischerweise von Sensoren), z.B. einer Bewegung (z.B. Position, Geschwindigkeit, Beschleunigung, Ruck), für Strom, Spannung, Ein/Aus, Offen/Zu usw.) ein fester Bereich des Ressourcenraums eines Kommunikationszyklus in Form von Sende-Datenübertragungsblöcken für nicht zeitkritische Daten (wie z.B. (Konfigurations-) Parameter, Statusabfragen, Daten für Visualisierungszwecke usw.) und Empfangs-Datenübertragungsblöcken für nicht zeitkritische Daten (wie z.B. Alarme, Antworten auf Statusabfragen, Alarme, nicht zeitkritische Sensorwerte usw.) für azyklische Zwecke mit spontanem Bedarf reserviert wird. Ein solcher azyklischer Ressourcenblock besitzt dabei zweckmäßigerweise eine feste Länge und Datenstruktur. Langfristig ist kein azyklischer Ressourcenblock (d.h. Sende-Datenübertragungsblock bzw. Empfangs-Datenübertragungsblock für nicht zeitkritische Daten) einem Nebenteilnehmer fest zugewiesen. In Übertragungsrichtung vom Hauptteilnehmer zu den Nebenteilnehmern werden die Daten, die vom Hauptteilnehmer in einem Sende-Datenübertragungsblock für nicht zeitkritische Daten gesendet werden, von allen Nebenteilnehmern überwacht. In Übertragungsrichtung zum Hauptteilnehmer sendet ein Nebenteilnehmer in einem Empfangs-Datenübertragungsblock für nicht zeitkritische Daten nur, wenn er zuvor vom Hauptteilnehmer (durch den zugeordneten Sende-Datenübertragungsblock) dazu aufgefordert wurde. Insbesondere ist jedem Sende-Datenübertragungsblock für nicht zeitkritische Daten ein Empfangs-Datenübertragungsblock für nicht zeitkritische Daten zugeordnet.
-
Durch die eindeutige Zuordnung der Empfangs-Datenübertragungsblöcke zu den Nebenteilnehmern kann je nach Protokoll sogar auf eine Adressierung dieser Daten verzichtet werden. Die Zuweisung der Empfangs-Datenübertragungsblöcke wird zentral durch den Hauptteilnehmer gesteuert.
-
Grundsätzlich erinnert die Erfindung zwar an ein PCF-Verfahren (Point Coordination Function) in WLAN. Allerdings unterstützt PCF bereits nicht das parallele Senden von zeitkritischen Daten in einem Sende-Datenübertragungsblock für zeitkritische Daten im selben Kommunikationszyklus. Weiterhin haben die Sende-Datenübertragungsblöcke bzw. Empfangs-Datenübertragungsblöcke für nicht zeitkritische Daten gemäß einer bevorzugten Weiterbildung der Erfindung eine festgelegte Größe, die insbesondere nicht vom Nebenteilnehmer nach Bedarf gewählt wird. Müssen keine oder wenige Daten übertragen werden, so wird der Ressourcenblock aufgefüllt. Große Datenpakete müssen ggf. fragmentiert werden. Durch die feste Größe ist die Dauer, in der der Nebenteilnehmer sendet, eindeutig bekannt.
-
Auch müssen die zusammengehörigen Sende-Datenübertragungsblock und Empfangs-Datenübertragungsblock für nicht zeitkritische Daten nicht zwangsläufig direkt aufeinanderfolgen bzw. im selben Kommunikationszyklus liegen. Stattdessen ist es gemäß einer weiteren bevorzugten Ausführungsform der Erfindung möglich, dass in der Zwischenzeit andere Daten in einer oder beiden Richtungen übertragen werden. Allerdings ist der zeitliche Zusammenhang bzw. die Zuordnung zwischen zusammengehörigen Sende-Datenübertragungsblock und Empfangs-Datenübertragungsblock für nicht zeitkritische Daten fest, eindeutig definiert und allen Nebenteilnehmern bekannt.
-
Werden in einem Kommunikationszyklus mehrere Sende- und Empfangs-Datenübertragungsblöcke eingeplant sind, ist es möglich, dass diese eine unterschiedliche Konfiguration besitzen, die für unterschiedliche Zwecke optimiert sind.
-
Beispielsweise können Paare von zusammengehörigen Sende-Datenübertragungsblock und Empfangs-Datenübertragungsblock vorgesehen sein, die unterschiedlich lange beabstandet sind. So könnte einem Sende-Datenübertragungsblock ein Empfangs-Datenübertragungsblock im nächsten Zyklus zugewiesen sein. Einem weiteren Sende-Datenübertragungsblock ein Empfangs-Datenübertragungsblock im übernächsten Zyklus usw. Der Hauptteilnehmer könnte bei der Nutzung der unterschiedlichen Blöcke berücksichtigen, wie lange ein Nebenteilnehmer für eine Bearbeitung der Daten benötigt, so dass eine Antwort vorteilhafterweise mit dem zugehörigen Empfangs-Datenübertragungsblock gesendet werden kann.
-
Alternativ oder zusätzlich können sich die Sende- und Empfangs-Datenübertragungsblöcke in der Größe der Nutzdaten unterscheiden, sowohl innerhalb desselben Typs als auch zwischen den Typen. Dabei kann die Größe der Datenübertragungsblöcke eines Paares von zusammengehörigen Sende-Datenübertragungsblock und Empfangs-Datenübertragungsblock symmetrisch oder asymmetrisch ausgeführt werden. Bei dem symmetrischen Fall sind einem kleinen Sende-Datenübertragungsblock ein keiner Empfangs-Datenübertragungsblock und einem großen Sende-Datenübertragungsblock ein großer Empfangs-Datenübertragungsblock zugeordnet. Bei dem asymmetrischen Fall sind einem kleinen Sende-Datenübertragungsblock ein großer Empfangs-Datenübertragungsblock und einem großen Sende-Datenübertragungsblock ein kleiner Empfangs-Datenübertragungsblock zugeordnet.
-
Das Prinzip der deterministischen Kommunikation mit geringen Zykluszeiten wird in Zukunft nicht nur auf bedrahtete Ethernetsysteme beschränkt sein. Mobile, flexible und leicht umkonfigurierbare Systeme sind letztendlich nur durch drahtlose Kommunikation (z.B. funkbasiert, optische Freiraumkommunikation, etc.) zu erreichen. Der zyklische Ablauf der Anwendung spiegelt sich dabei idealerweise in einer ebenfalls zyklischen Kommunikation wieder. Wie in den industriellen Ethernetsystemen sollten die zeitkritischen, zyklischen Daten dabei langfristig eingeplant werden. Durch so eine Absprache zwischen den Funkteilnehmern können im Echtzeitbetrieb anschließend Paketkollisionen verhindert werden und damit die Zuverlässigkeit der Übertragung innerhalb der gesetzten Deadlines gesteigert werden.
-
Bei dem Hauptteilnehmer handelt es sich im Rahmen eines Automatisierungssystems beispielsweise um Steuerungen (bspw. SPS), Antriebsregler und/oder synchron arbeitenden E/A-Geräte. Geeignete untergeordnete Teilnehmer sind zusätzlich auch Feldgeräte wie z.B. Sensoren bzw. Geber, wie Drehgeber bzw. Drehwinkelgeber, Lineargeber, Temperaturgeber, Druckgeber uvm.
-
Ein Datenübertragungsblock im Sinne der Erfindung entspricht im Falle von industriellen Ethernetsystemen einem bestimmten Zeitfenster (Zeitschlitz) bzw. einer definierten Menge an Bytes in einem Ethernet-Summentelegramm. In allgemeinen Kommunikationssystemen kann ein Datenübertragungsblock durch ein Zeit- oder Frequenzintervall definiert sein. Bei Codemultiplexverfahren (Code Division Multiplex, CDM oder Code Division Multiple Access, CDMA) beispielsweise durch unterschiedliche Spreizcodes.
-
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
-
Es versteht sich, dass die vorstehend genannten und die nachfolgend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.
-
Die Erfindung ist anhand eines Ausführungsbeispiels in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung ausführlich beschrieben.
-
Figurenliste
-
- 1 zeigt eine Ausführungsform eines Feldbusnetzwerks, in der die Erfindung vorteilhaft durchgeführt werden kann.
- 2 zeigt beispielhafte Sende- und Empfangsdatenblöcke, die gemäß einer bevorzugten Ausführungsform der Erfindung zwischen dem Hauptteilnehmer und Nebenteilnehmern ausgetauscht werden.
-
Detaillierte Beschreibung der Zeichnung
-
In 1 ist eine Ausführungsform eines Feldbusnetzwerks, in der die Erfindung vorteilhaft durchgeführt werden kann, schematisch als Blockdiagramm dargestellt und insgesamt mit 100 bezeichnet. Das Feldbusnetzwerk 100 ist ein echtzeitfähiges, redundantes Feldbusnetzwerk mit Ringtopologie, wie z.B. Sercos III. Es weist einen Hauptteilnehmer 10 und eine Anzahl von Nebenteilnehmern 20, 22, 24, 26 auf, die über einen ersten Ring 101 und einen zweiten Ring 102 verbunden sind. Bei dem Hauptteilnehmer 10 kann es sich beispielsweise um eine elektrische Steuerung (SPS u.ä.) handeln. Bei den Nebenteilnehmern kann es sich ebenfalls um Steuerungen oder um Feldgeräte wie Sensoren und Aktoren handeln.
-
Der erste Ring 101 und der zweite Ring 102 können beispielsweise mittels einer leitungs- oder funkgebundenen Datenübertragung realisiert sein, welche eine bidirektionale Kommunikation zulässt. Jeder Teilnehmer (Haupt- und Nebenteilnehmer) weist Schnittstellen für die Datenübertragung auf, z.B. Buchsen für Ethernetkabelverbindungen und/oder Antennen. Da es sich um ein ringförmiges, redundantes System handelt, weist jeder Teilnehmer logisch vier Anschlüsse (jeweils zwei Eingänge (in der Figur Pfeilspitzen) und zwei Ausgänge (in der Figur Pfeilenden) auf.
-
Das Feldbusnetzwerk 100 hat einen sog. gegenläufigen Doppelring aus zyklisch arbeitenden Netzwerksegmenten, z.B. gemäß einem der einleitend genannten Feldbusstandards. Gegenläufig heißt, dass die Botschaften auf dem ersten Ring 101 im Uhrzeigersinn und auf dem zweiten Ring 102 gegen den Uhrzeigersinn zirkulieren. Der logische Doppelring wird im vorliegenden Beispiel physikalisch durch ein einziges Ethernet-Kabel gebildet, wobei jedem logischen Ring eigene Adern im Kabel zugeordnet sind, z.B. vier Adern für den einen Ring und vier andere Adern für den anderen Ring.
-
Das Feldbusnetzwerk 100 ist beispielsweise Teil eines Automatisierungssystems, wie z.B. einer mehrachsigen Druckmaschine oder einer mehrachsigen Werkzeugmaschine (z.B. Fräse). Bei dem Hauptteilnehmer handelt es sich beispielsweise um eine Steuerung (bspw. SPS), bei den Nebenteilnehmern um Steuerungen (bspw. SPS), Antriebsregler (als Teil eines Aktors) und/oder synchron arbeitenden E/A-Geräte wie z.B. antriebsreglerlose Aktoren und Sensoren bzw. Geber, wie Drehgeber bzw. Drehwinkelgeber, Lineargeber, Temperaturgeber, Druckgeber uvm.
-
Der Hauptteilnehmer 10 ist zur Durchführung der zyklischen Kommunikation dazu eingerichtet, zyklisch (d.h. in regelmäßigen Zeitabständen) Botschaften sowohl an einem ersten Datenausgang auf den ersten Ring 101 als auch an einem zweiten Datenausgang auf den zweiten Ring 102, jeweils als sendenden Kanal, auszugeben. Die beiden Botschaften sind in jedem Übertragungszyklus identisch, für unterschiedliche Übertragungszyklen jedoch nicht. Jeder Nebenteilnehmer empfängt die Botschaft an seinen mit den jeweiligen Ringen verbundenen Dateneingängen und gibt sie, gegebenenfalls nach einer Verarbeitung, an den an den denselben Ringen angeschlossenen (d.h. korrespondierenden) Datenausgängen wieder aus. Im fehlerfreien bzw. idealen Fall erreichen dann die beiden Botschaften wieder den Hauptteilnehmer, der sie aus dem Datenverkehr entfernt.
-
Lediglich der Vollständigkeit halber sei erwähnt, dass im Fehlerfall, z.B. bei einer Unterbrechung des Rings, der jeweils letzte Teilnehmer die Botschaft nicht weiterleiten kann, sondern sie auf dem jeweils anderen Ring zurücksendet. Die Botschaft kommt somit zum Hauptteilnehmer zurück, bevor sie alle Nebenteilnehmer erreicht hatte, weshalb sie der Hauptteilnehmer nicht aus dem Datenverkehr entfernt, sondern auf der anderen Seite wieder ausgibt. Nach dem Durchlaufen der jeweils anderen Seite erreichen dann die beiden Botschaften wieder den Hauptteilnehmer, der sie dann aus dem Datenverkehr entfernt.
-
Neben dieser zyklischen Kommunikation kann in einem solchen Kommunikationsnetzwerk auch eine azyklische Kommunikation stattfinden, die herkömmlicherweise grundsätzlich von jedem Teilnehmer ausgehen kann. Bei der azyklischen Datenübertragung findet die Übertragung der einzelnen Botschaften zufällig bzw. wahlfrei statt, wie es bei Ethernet/IP bekannt ist. Die damit einhergehenden Probleme wurden eingangs bereits geschildert.
-
Zur besseren Bewältigung dieser Aufgabe sind der Hauptteilnehmer und die Nebenteilnehmer nun vorzugsweise zu einem Verfahren gemäß einer bevorzugten Ausführungsform der Erfindung eingerichtet. Auf herkömmliche Weise sendet der Hauptteilnehmer 10 in jedem Übertragungszyklus ein oder mehrere Sende-Datenübertragungsblöcke 40 für zeitkritische Daten auf die beiden Ringe 101, 102 aus. Der oder die Sende-Datenübertragungsblöcke 40 enthalten jeweils zeitkritische Daten, z.B. Sollwerte, die bestimmten Nebenteilnehmern, z.B. durch Zeitschlitze, zugeordnet sind. Weiterhin können die Sende-Datenübertragungsblöcke 40 Ressourcen zur Aufnahme von Daten von zeitkritischen Daten, üblicherweise Istwerten, von den Nebenteilnehmern enthalten, welche von den Nebenteilnehmern zum Hauptteilnehmer übertragen werden sollen.
-
Darüber hinausgehend sind nun jedoch in jedem Kommunikationszyklus auch mindestens ein Sende-Datenübertragungsblock für nicht zeitkritische Daten und mindestens ein Empfangs-Datenübertragungsblock für nicht zeitkritische Daten ausgebildet. Beispielsweise sind in 2 zahlreiche Datenpakete in zwei Kommunikationszyklen n, n+1 gezeigt, wie sie gemäß einer bevorzugten Ausführungsform der Erfindung in Erscheinung treten können. Die Kommunikationszykluszeit ist mit T bezeichnet.
-
Zur Veranschaulichung der Erfindung sind die Übertragungsrichtung 200 vom Hauptteilnehmer zu den Nebenteilnehmern und die Übertragungsrichtung 300 von den Nebenteilnehmern zum Hauptteilnehmer separat dargestellt, wenngleich diese auch durch nacheinander übertragene Pakete in demselben Zyklus und in derselben physikalischen Richtung realisiert sein können.
-
Beispielsweise beginnt jeder Kommunikationszyklus mit einer Präambel 201, 301, in der Verwaltungsinformationen wie Adressen usw. hinterlegt sein können. Weiterhin wird in jedem Kommunikationszyklus vom Hauptteilnehmer an jeden Nebenteilnehmer üblicherweise ein Sende-Datenübertragungsblock 210, 211 für zeitkritische Daten gesendet. Ebenso werden vorzugsweise von jedem Nebenteilnehmer zeitkritische Daten in einem Empfangs-Datenblock 310, 311 für zeitkritische Daten an den Hauptteilnehmer (und/oder gegebenenfalls an andere Nebenteilnehmer) gesendet. Diese Abläufe sind an sich aus dem Stand der Technik, wie beispielsweise den einleitend genannten Feldbus-Standards, bekannt.
-
Im Rahmen einer bevorzugten ausführungsform der Erfindung werden nun jedoch in einem Kommunikationszyklus auch Sende-Datenübertragungsblöcke 220, 221 für nicht zeitkritische Daten und Empfangs-Datenübertragungsblöcke 320, 221 für nicht zeitkritische Daten übertragen, wobei eine eindeutige Zuordnung eines jeden der Empfangs-Datenübertragungsblöcke 320, 221 zu einem der Sende-Datenübertragungsblöcke 220, 221 besteht. In 2 sind beispielsweise der Empfangs-Datenübertragungsblock 320 dem Sende-Datenübertragungsblock 220 und der Empfangs-Datenübertragungsblock 321 dem Sende-Datenübertragungsblock 221 zugeordnet. Die jeweils zusammengehörigen Sende- und Empfangs-Datenübertragungsblöcke können - wie dargestellt - in unterschiedlichen Kommunikationszyklen liegen oder auch im selben. Insbesondere können auch einem Teil der Sende-Datenübertragungsblöcke jeweils ein Empfangs-Datenübertragungsblock im selben Kommunikationszyklus und einem anderen Teil der Sende-Datenübertragungsblöcke jeweils ein Empfangs-Datenübertragungsblock in einem anderen Kommunikationszyklus zugeordnet sein.
-
Alternativ oder zusätzlich können die Größen der Datenübertragungsblöcke beliebig ausgestaltet sein. Es können große und kleine Sende-Datenübertragungsblöcke vorgesehen sein (in 2 ist beispielsweise 220 klein und 221 groß), wobei jedem wahlfrei ein großer oder kleiner Empfangs-Datenübertragungsblock zugeordnet ist. In 2 sind ohne Einschränkung der Allgemeinheit beispielsweise dem kleinen Sende-Datenübertragungsblock 220 ein großer Empfangs-Datenübertragungsblock 320 und dem großen Sende-Datenübertragungsblock 221 ein kleiner Empfangs-Datenübertragungsblock 321 zugeordnet. Die Verwendung der ersten Art von Zuordnung bietet sich an, wenn der Hauptteilnehmer einem Nebenteilnehmer die Möglichkeit geben will, viel Daten an ihn zu übertragen, er aber gleichzeitig kaum Daten an den Nebenteilnehmer zu senden hat. Die Verwendung der zweiten Art von Zuordnung bietet sich für den umgekehrten Fall an, z.B. wenn der Nebenteilnehmer sehr viele Daten senden muss und diese daher fragmentiert werden.
-
Insgesamt ist die konkrete Ausgestaltung und Zuordnung der Sende-Datenübertragungsblöcke und der zugeordneten Empfangs-Datenübertragungsblöcke somit im Sinne des vorstehend Erläuterten beliebig flexibel, vorzugsweise jedoch nach der erstmaligen Konfiguration (welche üblicherweise durch den Hauptteilnehmer erfolgt) zunächst fest und allen beteiligten Haupt- und Nebenteilnehmern bekannt. Grundsätzlich ist eine Rekonfiguration jederzeit möglich, jedoch nicht notwendig.
-
Während des Betriebs nutzt der Hauptteilnehmer einen verfügbaren Sende-Datenübertragungsblock 220, 221 usw., um nicht zeitkritische Daten an einen bestimmten Nebenteilnehmer zu senden. Dazu sendet er beispielsweise im Header des Sende-Datenübertragungsblocks die eindeutige Adresse des Nebenteilnehmers und im Nutzdatenteil die entsprechenden nicht zeitkritischen Daten, wie z.B. Konfigurationsparameter o.ä.
-
Gründe, einen bestimmten Nebenteilnehmer zu adressieren, sind unter anderem:
- a) Der Hauptteilnehmer möchte nicht zeitkritische Daten an diesen Nebenteilnehmer übertragen.
- b) Der Hauptteilnehmer hat Kenntnis davon, dass der Nebenteilnehmer nicht zeitkritische Daten an den Hauptteilnehmer senden möchte.
- c) Der Nebenteilnehmer wurde seit einer bestimmten Zeitspanne nicht kontaktiert. Der Hauptteilnehmer möchte dem Nebenteilnehmer die Möglichkeit geben, Daten oder Anfragen an den Hauptteilnehmer zu senden.
-
In den Fällen b) und c) kann es sein, dass der Hauptteilnehmer keine nicht zeitkritischen Daten an den Nebenteilnehmer zu senden hat. In diesem Fall sendet er einen leeren Sende-Datenübertragungsblock. Diese Tatsache kann beispielsweise ebenfalls bereits im Header kenntlich gemacht sein, um dem Teilnehmer ein unnützes Auswerten des Nutzdatenteils zu ersparen.
-
Alle angeschlossenen Nebenteilnehmer empfangen den entsprechenden Sende-Datenübertragungsblock und vergleichen die darin enthaltene Adresse mit ihrer eigenen Adresse.
-
Die Nebenteilnehmer, die nicht die Adresse des gesendeten Sende-Datenübertragungsblocks besitzen, verwerfen den Sende-Datenübertragungsblock mitsamt den Daten und wissen gleichzeitig, dass sie in dem zugehörigen Empfangs-Datenübertragungsblock in Richtung des Hauptteilnehmers nicht senden dürfen.
-
Der Nebenteilnehmer, bei dem die gesendete Adresse mit der eigenen übereinstimmt, wertet den empfangenen Sende-Datenübertragungsblock und die enthaltenen Daten weiter aus. Gleichzeitig hat dieser Nebenteilnehmer das Recht, in Richtung des Hauptteilnehmers denjenigen Empfangs-Datenübertragungsblock zu nutzen, der diesem Sende-Datenübertragungsblock zugeordnet ist.
-
Die Vertraulichkeit und Authentifizierung der Daten spielt insbesondere in funkbasierten Kommunikationssystemen eine wichtige Rolle. Aus diesem Grund sollten Verschlüsselungsalgorithmen (insbesondere für die Nutzdaten) auch in diesem Verfahren eingesetzt werden. Dabei gibt es grundsätzlich zwei Möglichkeiten, was die Verschlüsselung der Nebenteilnehmer-Adresse betrifft:
- 1. Die Nebenteilnehmer-Adresse wird im Klartext übertragen. Sie kann somit vor einer Entschlüsselung der Daten von allen Nebenteilnehmern überprüft werden. Dies hat den Vorteil, dass nicht-adressierte Nebenteilnehmer auch keine Entschlüsselung der Daten prüfen müssen. Es wird hier also nicht unnötig Energie verbraucht. Als Nachteil ist für einen Angreifer jedoch direkt sichtbar, in welcher Reihenfolge der Hauptteilnehmer die Nebenteilnehmer kontaktiert und wann somit Nebenteilnehmer senden dürfen.
- 2. Die Nebenteilnehmer-Adresse wird (vorzugsweise zusammen mit den Daten) mit einem (vorzugsweise individuellen) Schlüssel verschlüsselt. In diesem Fall müssen alle Nebenteilnehmer versuchen, die Daten zu entschlüsseln. Bei den nicht adressierten Nebenteilnehmern wird dies fehlschlagen und einen nicht-authentisierten Sender anzeigen. In diesem Fall sollten sie den Sende-Ressourcenblock ignorieren. Nur der adressierte Nebenteilnehmer kann das Paket erfolgreich entschlüsseln und die Adresse vergleichen.
-
Optional können in einem Kommunikationszyklus in Richtung der Nebenteilnehmer weitere Sende-Datenübertragungsblöcke für dieses Verfahren vorgesehen sein. So kann der Hauptteilnehmer weitere Daten spontan an den gleichen Nebenteilnehmer und/oder an andere Nebenteilnehmer versenden. Jedem dieser Sende-Datenübertragungsblöcke ist wieder ein Empfangs-Datenübertragungsblock mit einem definierten zeitlichen Versatz zugewiesen.
-
Der zuvor adressierte Nebenteilnehmer verwendet nun in Richtung des Hauptteilnehmers den entsprechenden Empfangs-Datenübertragungsblock. Wenn er keine sinnvollen Daten zu versenden hat, so sendet er stattdessen einen leeren Empfangs-Datenübertragungsblock zurück an den Hauptteilnehmer und macht dies zweckmäßigerweise ebenfalls entsprechend kenntlich.
-
Bei einer sternförmigen Netzwerktopologie, können die Nebenteilnehmer nur Daten an den Hauptteilnehmer senden und nicht direkt an weitere Nebenteilnehmer. Da der Hauptteilnehmer den sendenden Nebenteilnehmer durch die Adressierung selbst zugewiesen hat, sind ihm Sender und Empfänger eindeutig bekannt. In Richtung des Hauptteilnehmers muss also eine Adresse nicht explizit mitgesendet werden.
-
In einem vermaschten Netzwerk, bei dem ein Nebenteilnehmer auch prinzipiell andere Nebenteilnehmer kontaktieren kann, ist eine solche Adresse für den Empfangs-Datenübertragungsblock wiederum hilfreich. Unter der Voraussetzung, dass der Hauptteilnehmer jeden Kanalzugriff kontrolliert, sollte ein anderer Nebenteilnehmer nicht automatisch das Recht zum Senden in einem weiteren Empfangs-Datenübertragungsblock bekommen.
-
Wie schon in der obigen detaillierten Beschreibung erläutert, kann die Reihenfolge, in der der Hauptteilnehmer die Nebenteilnehmer kontaktiert, nach unterschiedlichen Schemata ablaufen. Die einfachste Methode ist, wenn der Hauptteilnehmer reihum die Nebenteilnehmer adressiert und ihnen die Möglichkeit gibt, nicht zeitkritische Daten an ihn zu schicken. Besitzt das Kommunikationssystem N Nebenteilnehmer, so muss ein einzelner Nebenteilnehmer maximal N-1 Zyklen warten, bevor er wieder die Möglichkeit zum Senden bekommt. Allerdings dauert es bei fragmentierten Daten auch dementsprechend länger, bis das Gesamtpaket übertragen ist.
-
Sinnvoller ist es daher, wenn der Hauptteilnehmer bei seinem Ablaufplan den aktuellen Bedarf an Übertragungsressourcen berücksichtigt. So ist ihm in Richtung der Nebenteilnehmer ja direkt bekannt, für welche Nebenteilnehmer nicht zeitkritische Daten vorliegen. Diese Nebenteilnehmer können mit höherer Priorität adressiert werden. Vor dem gleichen Hintergrund kann ein Nebenteilnehmer auch mehrfach hintereinander adressiert werden, um die fragmentierten Teile von einem größeren Datenpaket so zusammenhängend wie möglich zu übertragen. Es sollte allerdings verhindert werden, dass ein Nebenteilnehmer durch andauernde Anfragen verhindert, dass andere Nebenteilnehmer nicht zeitkritische Daten senden können. Dazu kann vorteilhafterweise eine maximale Anzahl an Zyklen definiert sein, bis ein Nebenteilnehmer wieder durch den Hauptteilnehmer adressiert wird und das Recht bekommt, in einem Empfangs-Datenübertragungsblock zu senden.
-
In dem hier beschriebenen Verfahren ist zwischen einem Sende-Datenübertragungsblock und einem zugeordneten Empfangs-Datenübertragungsblock eine beliebig lange Zeitspanne möglich, insbesondere länger als dies im PCF-Verfahren definiert ist. Dadurch kann ein Nebenteilnehmer ggf. auch auf in einem Sende-Datenübertragungsblock übertragene nicht zeitkritische Daten, die eine etwas aufwendigere Verarbeitung benötigen, im zugehörigen Empfangs-Datenübertragungsblock noch direkt antworten. Ist die Zeitspanne (wie bei PCF) auf einen minimalen Versatz festgelegt, kann dies unter Umständen nicht möglich sein. In diesem Fall könnte der Empfangs-Datenübertragungsblock nicht genutzt werden und eine sinnvolle Antwort könnte erst nach einem weiteren Polling-Aufruf zurückgesendet werden. Wird die Zeitspanne zwischen Sende-Datenübertragungsblock und Empfangs-Datenübertragungsblock also mit der mittleren Verarbeitungszeit abgestimmt, so kann die Anzahl der notwendigen Polling-Aufrufe deutlich reduziert werden. Durch den zeitlichen Versatz zwischen den zusammengehörigen Sende- und Empfangs-Datenübertragungsblöcken ist es denkbar, dass der Hauptteilnehmer in einem Kommunikationszyklus mehrere nicht zeitkritische Daten an einen oder mehrere Nebenteilnehmer verschicken kann, bevor diese antworten können. Der Hauptteilnehmer sendet in diesem Fall den zweiten Sende-Datenübertragungsblock, bevor er eine Antwort auf den ersten bekommen hat.
-
Sind also in einem Kommunikationszyklus mehrere Sende-Datenübertragungsblöcke vorgesehen, wie z.B. in 2, bietet es sich an, die unterschiedlichen Sende-Datenübertragungsblöcke für unterschiedliche Nebenteilnehmer oder zur Übertragung von längeren Datenpaketen, die fragmentiert werden müssen, an einen Nebenteilnehmer zu nutzen. In diesem zweiten Fall ist es vertretbar, wenn die Bestätigung für den Empfang erst nach mehreren Fragmenten den Hauptteilnehmer erreicht.