Drahtlose Kommunikationssysteme für den Produktionsbereich

Werbung
AG Vernetzte Systeme
Fachbereich Informatik
Technische Universität Kaiserslautern
Masterarbeit
Drahtlose Kommunikationssysteme
für den Produktionsbereich
Christopher Kramer
24. Juni 2014
Drahtlose Kommunikationssysteme
für den Produktionsbereich
Masterarbeit
AG Vernetzte Systeme
Fachbereich Informatik
Technische Universität Kaiserslautern
Christopher Kramer
Tag der Ausgabe
Tag der Abgabe
:
:
10.12.2013
24.06.2014
Erstgutachter
Zweitgutachter
:
:
Prof. Dr. Reinhard Gotzhein
M. Sc. Dennis Christmann
Ich erkläre hiermit, die vorliegende Masterarbeit selbstständig verfasst zu haben. Die verwendeten Quellen und Hilfsmittel sind im Text kenntlich gemacht und im Literaturverzeichnis vollständig aufgeführt.
Kaiserslautern, 24. Juni 2014
( Christopher Kramer )
Zusammenfassung
Im Produktionsbereich kommen verstärkt drahtlose Kommunikationssysteme zum Einsatz, um
Anlagen zu überwachen, zu steuern und zu regeln. Diese Arbeit analysiert zunächst die Anforderungen, die sich in diesem Einsatzbereich an das Kommunikationssystem ergeben, und
konkretisiert sie anhand eines Anwendungsszenarios. Anschließend werden verfügbare Systeme betrachtet und insbesondere die für diesen Bereich konzipierten internationalen Standards
WirelessHART und ISA 100.11a verglichen. Schließlich wird in Hinblick auf die identifizierten
Anforderungen und im Vergleich zu den vorhandenen Standards ein neues drahtloses Kommunikationssystem konzipiert. Dabei wird ein dienstorientierter Ansatz verfolgt, bei dem die
Anwendung über eine Middleware-Schicht auf das Kommunikationssystem zugreift. Teil dieser Middleware ist eine Service Registry zur Verwaltung der im Netzwerk verfügbaren Dienste.
Die detaillierte Konzeption und Implementierung dieser Service Registry bilden den Fokus dieser Arbeit.
Abstract
In producing industries, more and more wireless communication systems are used for monitoring and controlling of production facilities. This thesis first analyzes the requirements for the
communication system that yield from these applications. A concrete application scenario is
presented to make the requirements more concrete. Next, available systems are examined and
the international standards WirelessHART and ISA 100.11a, which have been specifically designed for these applications, are compared. Finally, a new wireless communication system is designed that meets the identified requirements and is compared to existing standards. It follows
a service-oriented approach, in which applications access the communication system through a
middleware layer. A service registry that manages the available services is part of this middleware. The focus of the thesis lies on the detailed conceptual design and implementation of this
service registry.
Inhaltsverzeichnis
1 Einleitung
1
2 Anforderungen an drahtlose Kommunikationssysteme im Produktionsbereich
3
2.1 Anwendungsszenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2.2 Performanz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.3 Zuverlässigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.4 Garantien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.5 Skalierbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.6 Flexibilität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.7 Sicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.8 Ressourcen-Effizienz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.9 QoS-Anforderungen Applikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.9.1 Datenstrom 1: Sensor Temperatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.9.2 Datenstrom 2: Sensor Produktfertigstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.9.3 Datenstrom 3: Steuerungsbefehl Maschinenabschaltung . . . . . . . . . . . . . . . . . . 14
3 State of the Practice
15
3.1 Überblick über existierende Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.1 IEEE 802.15.1 Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.2 IEEE 802.11 WLAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1.3 IEEE 802.15.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.4 ZigBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.1.5 UWB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1.6 WirelessHART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.7 ISA 100.11a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.1.8 WIA-PA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Inhaltsverzeichnis
3.1.9 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2 Vergleich von WirelessHART und ISA 100.11a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.1 Physical Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.2 MAC Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.3 Network Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.4 Transport Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2.5 Application Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2.6 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4 Konzeption eines drahtlosen Kommunikationssystems für den Produktionsbereich
37
4.1 Eingesetzte Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2 Protokoll-Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2.1 Physical Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2.2 MAC Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2.3 Network Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.2.4 Middleware Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.2.5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5 Middleware für drahtlose Kommunikation im Produktionsbereich
55
5.1 Vorteile einer dienstorientierten Middleware-Schicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.2 Architektur des Middleware Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.2.1 Replikation und Verteilung von Service Registries . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.2.2 Auswahl von Knoten für die Service Registry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.2.3 Dienst-Bekanntmachung und Replikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.2.4 Aufsuchen eines Dienstes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.3 Implementierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6 Zusammenfassung und Ausblick
81
A Abschätzung der minimalen Datenrate
83
Literaturverzeichnis
85
1. KAPITEL
Einleitung
Der heute herrschende starke Wettbewerbsdruck zwingt produzierende Wirtschaftsunternehmen, ihre Produktionsabläufe stetig zu optimieren, um die Effizienz zu steigern. Mit diesem
Ziel werden immer mehr Produktionsabläufe automatisiert und die Automatisierung selbst immer weiter optimiert. Dabei kommen Sensoren zum Einsatz, die unterschiedliche Messwerte der
aktuellen Produktionsabläufe, wie z.B. Temperatur oder Druck, erfassen. Im einfachsten Fall
dienen diese Messwerte zur Überwachung der Produktion. Deuten sie auf Probleme in der Produktion hin, kann diese beispielsweise angehalten werden, um das Problem zu beseitigen. Darüber hinausgehend können die Messwerte zur Steuerung der Produktion dienen. Dabei liest das
Überwachungspersonal die Messwerte ab und passt bei Bedarf Produktionsparameter an. So
kann gewährleistet werden, dass die Produktion sicher und effizient betrieben wird. Werden die
Produktionsparameter nicht mehr von Menschen, sondern vollautomatisch basierend auf den
Messwerten angepasst, spricht man von Regelung.
Zur Überwachung und Steuerung ist es noch denkbar, dass die Messwerte von Personal abgelesen werden und darauf basierend Entscheidungen getroffen werden. Allerdings ist dies sehr
aufwendig und fehleranfällig, insbesondere dann, wenn sehr viele Sensoren abzulesen sind.
Deutlich einfacher, schneller und zuverlässiger ist es, die Messdaten über ein Kommunikationssystem zu übertragen. So können sie beispielsweise von einzelnen Sensoren über aggregierende
Zwischenknoten zu einem zentralen Leitstand übertragen werden, wo sie angezeigt und ausgewertet werden. Das Überwachungspersonal am Leitstand kann basierend auf diesen Daten
die Produktionsparameter beeinflussen, beispielsweise die Geschwindigkeit eines Motors oder
einer Pumpe verändern. Diese Steuerungsbefehle würden wieder über ein Kommunikationssystem zu den Aktuatoren, wie etwa einem Motor oder einer Pumpe, übertragen. Im Falle der
Regelung gibt das System automatisch Steuerungsbefehle an die Aktuatoren, ohne dass der Eingriff des Steuerungspersonals nötig ist.
Traditionell kommen in der Automatisierungstechnik drahtgebundene Kommunikationssysteme zum Einsatz. Mit dem Aufkommen drahtloser Kommunikationssysteme bietet sich die Möglichkeit, auch Automatisierungstechnik im industriellen Umfeld drahtlos kommunizieren zu
lassen, was einerseits eine ganze Reihe Vorteile verspricht, andererseits auch viele Herausforderungen mit sich bringt [AGB11, PW10].
Die möglichen Kosteneinsparungen sind sicher einer der treibenden Vorteile. Drahtlose Systeme sind einfacher und günstiger zu installieren als drahtgebundene, da das aufwendige Verlegen von Kabeln entfällt. So geben Akerberg, Gidlund und Björkman an, dass das Verlegen
von Kabeln in einer gewöhnlichen verfahrenstechnischen Anlage ungefähr $200 je Meter kostet
2
Kapitel 1. Einleitung
[AGB11]. In [MTA05] wird abgeschätzt, dass die Verkabelung eines Geräts mit einem drahtgebundenen Kommunikationssystem inkl. Arbeitskosten ca. $350 kostet und damit bei einer
Anlage mit 200 Geräten Kosten in Höhe von $70.000 entstehen. Für ein auf ZigBee basierendes
drahtloses Kommunikationssystem werden die Kosten für die Funkknoten und deren Installation mit $60 je Knoten beziffert. Dazu kommen die Anschaffungskosten eines Access Points in
Höhe von ca. $100. Anschaffung und Installation eines Systems mit 200 Geräten kosten daher
ca. $12.000 [MTA05]. Diese Abschätzung zeigt deutlich das Kosteneinsparungspotenzial, das
hinter der Einführung drahtloser Kommunikationssysteme im Produktionsbereich steckt. Dazu
kommt noch, dass davon ausgegangen wird, dass die Kosten für Wartung und Instandhaltung
von Kabeln deutlich teurer sind, beispielsweise weil Kabel brechen oder Steckverbindungen sich
lösen. Nach [Ene02] sind die meisten Netzwerkausfälle auf Probleme an den Steckverbindungen
zurückzuführen, was durch drahtlose Systeme gelöst wird.
Dadurch, dass drahtlose Kommunikationssysteme eine einfache Überwachung und Regelung
von Produktionsanlagen erlauben, ermöglichen sie auch Energieeinsparungen und damit zusätzliche Kosteneinsparungen. Die U.S. Energiebehörde schätzte 2006, dass indem die manuelle Überprüfung von industriell eingesetzten Motoren durch dauerhafte drahtlose Überwachung ersetzt
wird, deren Energieverbrauch um bis zu 18% gesenkt werden könne [US 06].
Da drahtlose Systeme keine Kabel-Zuleitung benötigen, bieten sie eine erhöhte Flexibilität. So
können sekundäre Prozessvariablen, die lange Zeit nicht überwacht worden sind, weil es nicht
ökonomisch gewesen wäre, oder Messdaten von rotierenden Teilen, bei denen es technisch nicht
möglich ist Kabel zu verlegen, mit Hilfe drahtloser Kommunikationssysteme überwacht werden [AGB11]. Indem mehr Variablen gemessen werden können, lässt sich der Produktionsprozess besser optimieren und somit die Effizienz steigern. Da drahtlose Systeme auch problemlos
Messwerte von beweglichen und rotierenden Teilen erfassen können, kann durch die stetige
Überwachung auch die Zuverlässigkeit und Sicherheit dieser Systeme verbessert werden. Außerdem erlauben es drahtlose Systeme, schnell und einfach temporär Messungen durchzuführen, ohne dass erst aufwendig Kabel verlegt werden müssen. Ebenso können mobile Arbeiter
oder Roboter leicht drahtlos kommunizieren.
Unter Umständen ist es möglich, durch drahtlose Systeme auch die Verfügbarkeit und Zuverlässigkeit zu erhöhen, indem beispielsweise mehrere redundante Sensoren platziert werden oder die
Kommunikation nicht durch Kabelbruch gestört wird. Durch den Einsatz von Mesh-Netzwerken
ist es denkbar, dass bei Ausfall eines Knotens alternative Routen genutzt werden können, um
gebrochene Links zu kompensieren.
Die restliche Arbeit gliedert sich wie folgt: Zunächst analysiert Kapitel 2 die Anforderungen, die
im Produktionsbereich an ein drahtloses Kommunikationssystem gestellt werden. Daraufhin
betrachtet Kapitel 3 vorhandene Systeme und vergleicht insbesondere die beiden wichtigsten
Standards WirelessHART und ISA 100.11a. In Kapitel 4 wird anschließend ein neues drahtloses
Kommunikationssystem für den Produktionsbereich konzipiert. Dabei werden die zuvor ermittelten Anforderungen beachtet und das neue System mit den existierenden Standards verglichen. Kapitel 5 geht genauer auf den Middleware Layer ein, der einen Teil des neu konzipierten
Systems darstellt. Dabei wird insbesondere die im Rahmen diese Arbeit implementierte Service
Registry detailliert beschrieben. Abschließend fasst Kapitel 6 die Ergebnisse dieser Arbeit zusammen und gibt einen Ausblick auf künftige Arbeiten.
2. KAPITEL
Anforderungen an drahtlose
Kommunikationssysteme im
Produktionsbereich
Drahtlose Kommunikationssysteme sind uns aus dem Alltag schon lange bekannt, seien es Mobiltelefone oder drahtlos über Wireless Local Area Network (WLAN IEEE 802.11) [IEE12a] ans
Internet angebundene PCs. Aber obwohl es für diese Einsatzzwecke bereits bewährte standardisierte Technologien gibt, so gelten im Produktionsbereich doch deutlich andere Anforderungen
als beispielsweise bei Unterhaltungselektronik. Bevor in Kapitel 3 die unterschiedlichen Standards betrachtet werden, die für die drahtlose Kommunikation im Produktionsbereich nutzbar
sind, werden hier zunächst die wichtigsten Anforderungen definiert, die für derartige Systeme
im Produktionsbereich gelten. Nachdem anhand eines Anwendungsszenarios der Einsatzbereich genauer dargestellt wird, werden beispielhaft für dieses Szenario Anforderungen an die
Dienstgüte (Quality of Service - QoS) des Kommunikationssystems definiert und abschließend
formalisiert.
Insgesamt werden in diesem Kapitel die Anforderungen aus Anwendungssicht betrachtet. Welche Anforderungen sich daraus an die einzelnen Schichten der Realisierung ableiten und wie
diese umgesetzt werden, wird bei der Konzeption in Kapitel 4 behandelt.
2.1 Anwendungsszenario
Die Definition eines beispielhaften Anwendungsszenarios macht einerseits anschaulich, wie die
hier betrachteten drahtlosen Kommunikationssysteme im Produktionsbereich konkret eingesetzt werden können. Zum anderen ermöglicht es uns, die Anforderungen an ein geeignetes
Kommunikationssystem anhand konkreter Zahlen überprüfbar zu definieren.
Im Anwendungsszenario kommt das drahtlose Kommunikationssystem in einer Produktionsanlage zur Überwachung, Steuerung, Regelung und Notfall-Abschaltung zum Einsatz. Die Anlage hat eine Größe von ca. 300 Meter Länge und 150 Meter Breite. In der Produktionsanlage
werden Waren durch Maschinen und Roboter produziert, wobei Maschinen stets stationär sind,
einzelne Roboter sich dagegen in der Fabrik bewegen können. Ungefähr 40 drahtlose Funkknoten sind in der Produktionsanlage montiert, um diverse Sensordaten zu ermitteln. Einige dieser
4
Kapitel 2. Anforderungen
Funkknoten sind mit mehreren Sensoren ausgestattet. Insgesamt werden Daten von 70 Sensoren
erfasst. Die eingesetzten Sensoren lassen sich in neun Typen einteilen, welche in Tab. 2.1 definiert sind. Dabei gibt es zum einen periodisch getriggerte Sensoren, deren Messwert in einem
festen Intervall genommen und übermittelt wird. Daneben gibt es ereignisgesteuerte Sensoren,
die nicht regelmäßig, sondern nur bei Eintritt eines bestimmten sporadischen Ereignisses einen
Wert übermitteln. Je nach Sensor unterscheidet sich die Datengröße eines Messwertes und wie
häufig die Werte übermittelt werden müssen. Da ereignisgesteuerte Sensornachrichten kein festes Intervall haben, lässt sich hier nur angeben, wie oft das Ereignis üblicherweise auftritt. Wichtiger ist jedoch das minimale Ereignis-Eintrittsintervall Intmin , welches die kürzeste mögliche
Zeit zwischen zwei Eintritten des Ereignisses angibt.
Tabelle 2.1.: Sensortypen im Anwendungsszenario
Typ
Trigger
Temperatur
Druck
Gaserkennung
Vibration
Drehzahl
Lichtschranke
Produktfertigstellung
Maschinenzustand
Roboterposition
Periodisch
Periodisch
Periodisch
Periodisch
Periodisch
Ereignis
Ereignis
Periodisch
Periodisch
Datengröße
Intervall
32 Bit
32 Bit
8 Bit
8 Bit
16 Bit
1 Bit
8 Bit
4 Bit
32 Bit
1s
1s
1s
10 s
0,1 s
∼ 1-30 s
∼ 20-50 s
10 s
10 s
Intmin
Anzahl
10
6
2
10
10
10
1
20
1
1s
20 s
Sämtliche Sensordaten werden zusätzlich zum Messwert mit einem Zeitstempel mit einer maximalen Abweichung von 10 ms (32 Bit) sowie einer eindeutigen Kennung (16 Bit) versehen.
Die Sensordaten werden zur Überwachung und Steuerung der Anlage, teils über aggregierende
Knoten, zu einem Leitstand übermittelt. Dort befindet sich ein drahtloser Knoten, der die Daten empfängt. Das Kontrollpersonal kann die Daten am Leitstand überprüfen und bei Bedarf
Steuerungsbefehle an die Anlage schicken. Dazu sind in der Anlage 20 drahtlose Knoten an den
Maschinen und Robotern (Aktuatoren) installiert, die diese Steuerungsbefehle empfangen und
an die Maschinen bzw. Roboter weitergeben. Die möglichen Steuerungsbefehle lassen sich in die
in Tab. 2.2 aufgeführten vier Typen einteilen.
Tabelle 2.2.: Typen von Steuerungsbefehlen im Anwendungsszenario
Typ
Ventilöffnung / Schließung
Maschinenabschaltung
Zielposition Roboter
Heizungs-Solltemperatur
Datengröße
Intervall
Intmin
Anzahl
8 Bit
1 Bit
32 Bit
16 Bit
∼ 1-3 h
Selten
∼ 30-90 min
∼ 20-120 min
30 s
60 s
30 s
30 s
4
10
1
5
Steuerungsbefehle werden genau wie Sensordaten mit einer eindeutigen Kennung (16 Bit), allerdings nicht mit einem Zeitstempel, versehen. Alle Steuerungsbefehle sind ereignisgesteuert (durch das Kontrollpersonal ausgelöst). Zusätzlich zu den vom Leitstand gegebenen Steuerungsbefehlen gibt es in der Anlage auch vollautomatische Regelungssysteme, die basierend auf
gemessenen Sensordaten Aktuatoren direkt ansprechen, ohne dass das Kontrollpersonal ein-
2.2. Performanz
5
greifen muss. Es werden auf diese Weise 15 Aktuatoren automatisch geregelt, wobei vier unterschiedliche Typen von Regelungsbefehlen Verwendung finden, die in Tab. 2.3 aufgelistet sind.
Das Versenden von Regelungsbefehlen kann wie bei Sensorwerten entweder periodisch in einem festen Intervall oder ereignisgesteuert, z.B. bei Überschreitung eines Grenzwerts, ausgelöst
werden. Die meisten Aktuatoren führen Regelungsalgorithmen nicht selbst aus, sondern bekommen die Regelungsbefehle von einem Reglerknoten, der Sensorwerte von einem oder mehreren
Sensoren empfängt und darauf basierend Regelungswerte berechnet und Regelungsbefehle an
den Aktuatorknoten sendet. Dazu kommen im Netzwerk 10 weitere Funkknoten als Regler zum
Einsatz.
Tabelle 2.3.: Typen von Regelungsbefehlen im Anwendungsszenario
Typ
Trigger
Motorgeschwindigkeit
Ventilöffnung / Schließung
Maschinen-Notabschaltung
Heizungs-Solltemperatur
Periodisch
Ereignis
Ereignis
Periodisch
Datengröße
Intervall
16 Bit
8 Bit
1 Bit
16 Bit
1s
∼ 1 min
Selten
5 min
Intmin
Anzahl
10 s
60 s
5
4
4
2
2.2 Performanz
Die Performanz eines drahtlosen Kommunikationssystems setzt sich aus zwei Aspekten zusammen: der Übertragungsrate, also der Geschwindigkeit, mit der Daten übermittelt werden
können, sowie der Übertragungsverzögerung, also der Zeit, die die Übertragung eines Bits von
einem Knoten zum anderen benötigt.
Die Übertragungsrate eines Knotens für Sensornetzwerke kann, verglichen
mit anderen Kommunikationssystemen, beispielsweise aus der Unterhaltungselektronik, verhältnismäßig gering ausfallen. Da die Datenmengen der Nachrichten im Vergleich gering sind
(s. Anwendungsszenario in Kapitel 2.1), wird keine hohe Übertragungsrate benötigt. Typische
übertragene Daten sind Sensorwerte und Steuerungsbefehle im Umfang von wenigen Bytes bei
Updatefrequenzen im Bereich ab 100 ms. Im ungünstigsten Fall können nie zwei Knoten gleichzeitig senden, weil jeder Knoten jeden anderen beim Senden stört. Im Anwendungsszenario
benötigt dann ein drahtloses Kommunikationssystem mindestens eine Brutto-Übertragungsrate
von ca. 185 kbit/s, um die geforderten Anforderungen einhalten zu können (s. Anhang A). Um
noch etwas Spielraum nach oben zu lassen, wird eine minimale Brutto-Übertragungsrate von
200 kbit/s verlangt.
Übertragungsrate
Wichtiger als die Übertragungsrate ist für ein Kommunikationssystem im industriellen Umfeld die Übertragungsverzögerung. Aus Sicherheitsgründen muss
beispielsweise bei einem Regelungsbefehl zur Maschinen-Notabschaltung in jedem Fall eine maximale Verzögerung eingehalten werden; eine unbegrenzte maximale Verzögerung, wie sie z.B.
in der Unterhaltungselektronik vorkommen darf und zum Verwerfen der Daten mit der Folge
von Qualitätseinbußen führt, wäre hier undenkbar.
Übertragungsverzögerung
Damit der Schedule periodischer Nachrichten eingehalten werden kann und sich die Nachrichten nicht aufstauen, soll die maximale Verzögerung stets geringer als das Update-Intervall sein.
6
Kapitel 2. Anforderungen
Darüber hinaus darf bei periodischen Nachrichten eine maximale Verzögerung von einer Sekunde nicht überschritten werden. Ausnahmen sind die Nachrichten des Gaserkennungs-Sensors
sowie die Regelungsbefehle zur Regelung der Motorgeschwindigkeit, welche maximal 500 ms
verzögert werden dürfen.
Bei den ereignisgesteuerten Nachrichten hängt die maximale Verzögerung stark vom Typ der
Nachricht ab. Die zulässigen maximalen Verzögerungen sind in Abhängigkeit des Nachrichtentyps in Tab. 2.4 aufgeführt.
Tabelle 2.4.: Maximale Verzögerungen für ereignisgesteuerte Nachrichten
Nachrichtentyp
Sensor Produktfertigstellung
Sensor Lichtschranke
Steuerungsbefehle
Regelung Ventil
Regelung Notabschaltung
maximale Verzögerung (s)
5,0
1,0
1,0
0,5
0,1
2.3 Zuverlässigkeit
Zuverlässigkeit ist im industriellen Einsatz eine besonders wichtige Anforderung. Da drahtlose Kommunikationssysteme aber auf einem potenziell unzuverlässigen Medium aufbauen,
können Verluste und Verfälschungen durch das Medium nicht ausgeschlossen werden. Gerade
im Produktionsbereich muss sowohl damit gerechnet werden, dass andere drahtlose Kommunikationssysteme – wie etwa WLAN oder Bluetooth [Blu13b] – das Medium mitbenutzen, als
auch dass Störungen durch Maschinen, wie etwa Motoren, Thermostate oder Computer auftreten [LWE05]. Um trotzdem die gerade im industriellen Einsatz benötigte Zuverlässigkeit zu
erreichen, muss das Kommunikationssystem Verluste und Verfälschungen erkennen und eventuell entsprechende Maßnahmen ergreifen, um diese auszugleichen.
Obwohl Verluste auf einem drahtlosen Medium nicht ausgeschlossen werden können, gibt es dennoch Mechanismen, um die Wahrscheinlichkeit von Verlusten zu reduzieren,
beispielsweise indem eine freie Frequenz genutzt und so Interferenzen mit anderen Systemen
vermieden werden. Daher ist es zunächst wünschenswert, dass das Kommunikationssystem geeignete Maßnahmen einsetzt, um die Verlustrate bestmöglich zu reduzieren. Kommt es dennoch
zu Verlusten, so muss das Kommunikationssystem dies in jedem Fall erkennen. Wie das System
auf den Verlust reagiert, hängt vom zugehörigen Nachrichtentyp ab.
Verluste
• Steuerungs- und Regelungsbefehle sowie ereignisgesteuerte Sensor-Nachrichten müssen
neu übertragen werden, bis die Übertragung erfolgreich war oder nach 20 Sekunden ein
Timeout auftritt. Wird ein Timeout ausgelöst, so muss das System automatisch in einen
sicheren Zustand gefahren werden.
• Periodische Sensor-Nachrichten werden bei Verlust verworfen, es findet also keine Neuübertragung statt. Allerdings dürfen die Nachrichten nicht beliebig oft in Folge verloren
gehen, sonst muss das System automatisch in einen sicheren Zustand fahren.
– Nachrichten der Sensoren Gaserkennung und Maschinenzustand dürfen maximal 5x
in Folge verloren gehen.
2.4. Garantien
7
– Nachrichten der anderen Sensoren dürfen maximal 20x in Folge verloren gehen.
Die Verfälschung einer Nachricht muss erkannt werden. Sie führt dazu, dass
die Nachricht verworfen wird. Die Behandlung erfolgt dann so, als sei ein Verlust aufgetreten.
Verfälschungen
Er muss sichergestellt sein, dass die Verarbeitung von Steuerungs- und Regelungsbefehlen exakt in der Reihenfolge erfolgt, wie sie versendet wurden. Bei Sensornachrichten ist
eine Umordnung zulässig, da die Werte ohnehin anhand des Zeitstempels geordnet werden
können.
Umordnung
2.4 Garantien
In der industriellen Anwendung ist es besonders wichtig, dass die Anforderungen, die an Performanz und Zuverlässigkeit des Systems gestellt werden, mit definierten Garantien eingehalten
werden. Da es oft um die Überwachung und Steuerung sicherheitsrelevanter Systeme geht, ist
eine Best-Effort Dienstgüte [CAH96], die keinerlei Garantien für die Einhaltung von Anforderungen gibt, völlig unzureichend.
Für ein drahtloses Kommunikationssystem ist es allerdings extrem schwierig, eine deterministische Dienstgüte, also die garantierte Einhaltung der geforderten Anforderungen, gewährleisten
zu können. Dies liegt daran, dass das zugrundeliegende drahtlose Medium auch von anderen
Systemen genutzt oder beispielsweise durch Maschinen gestört werden kann, und somit prinzipiell unzuverlässig ist. Wird das drahtlose Medium auf allen zur Verfügung stehenden Frequenzen gestört, so bleibt dem drahtlosen Kommunikationssystem keine Möglichkeit mehr, Daten
erfolgreich zu übertragen, um Garantien einzuhalten. Handelt es sich um ein sicherheitskritisches System, so bleibt in diesem Fall keine andere Option, als es kontrolliert in einen sicheren Zustand zu bringen. Dazu ist es erforderlich, dass das drahtlose Kommunikationssystem
Störsituationen erkennt und der Befehl, das System in einen sicheren Zustand zu fahren, trotz
gestörtem Funkmedium alle Knoten zuverlässig erreicht bzw. aufgrund lokaler Informationen
ausgelöst wird.
Unter der Voraussetzung, dass keine Interferenzen durch externe Störquellen auftreten, soll das
Kommunikationssystem sämtliche Anforderungen an Performanz und Zuverlässigkeit – d.h.
minimale Übertragungsrate, maximale Übertragungsverzögerung, Behandlung von Verlusten,
Verfälschungen sowie Umordnung – deterministisch erfüllen. Treten Interferenzen durch externe
Störquellen auf, die dazu führen, dass Anforderungen nicht eingehalten werden können, muss
das System diese erkennen und das System kontrolliert in einen sicheren Zustand bringen.
2.5 Skalierbarkeit
Die Skalierbarkeit des Kommunikationssystems kann im Produktionsbereich ebenfalls eine wichtige Rolle spielen. Wird beispielsweise eine Produktionsanlage ausgebaut, so werden auch dem
drahtlosen Kommunikationssystem neue Funkknoten hinzugefügt. Das Kommunikationssystem sollte also in einem gewissen Maße in Bezug auf die Netzwerkgröße skalierbar sein. Allerdings wird hier nicht davon ausgegangen, dass zu einem drahtlosen Netzwerk einer Produktionsanlage 1000 oder mehr Knoten gehören. Obwohl derart hohe Anforderungen an die Skalierbarkeit solcher Systeme in der Forschung genannt werden [GH09], wird von ABB [ABB], einem
8
Kapitel 2. Anforderungen
Konzern, der unter anderem auf die Automatisierung von Industrieanlagen spezialisiert ist, angegeben, dass ca. 50 Knoten in einem drahtlosen Netzwerk einer Produktionsanlage realistisch
sind [AGB11]. Es ist auch nicht zwingend erforderlich, dass sämtliche Funkknoten einer Produktionsanlage im selben Funknetzwerk verbunden sind. Unterschiedliche Produktionsstraßen
können unterschiedliche Funknetzwerke betreiben und bei Bedarf über Gateways Daten untereinander austauschen. Eine derart hierarchische Netzwerkstruktur ist nicht nur äußerst skalierbar, sie bietet auch Vorteile in Organisation und Wartung.
In unserem Anwendungsszenario gehen wir von 40 Sensorknoten, 20 Aktuatorknoten und 10
Reglerknoten, also insgesamt 70 Knoten in einem Funknetzwerk aus. Um noch etwas Raum für
Erweiterungen zu lassen, verlangen wir vom Kommunikationssystem, mindestens 100 Knoten
in einem drahtlosen Netzwerk zu unterstützen. Darüber hinaus muss es möglich sein, über Gatewayknoten mit anderen drahtlosen oder drahtgebundenen Netzwerken zu kommunizieren.
Da die Reichweite von typischen Funkknoten im Innenbereich je nach Technologie meist nicht
mehr als 10 m bis 30 m beträgt (s. Kapitel 3) und die Größe einer Produktionsanlage wie im
Anwendungsszenario leicht 100 m übersteigt, muss das Kommunikationssystem Multi-HopTopologien unterstützen. Im Gegensatz zu einer Single-Hop-Topologie, bei der wie in Abb. 2.1 illustriert jeder Knoten mit jedem anderen in direkter Verbindung steht, müssen Nachrichten bei
einer Multi-Hop-Topologie unter Umständen von Zwischenknoten, sogenannten Routern, weitergeleitet werden.
1
●
5
●
4
●
2
●
3
●
Abbildung 2.1.: Single-Hop-Topologie mit 5 gleichwertigen Knoten
Die Sterntopologie ist eine der einfachsten Multi-Hop-Topologien: Hierbei haben alle Endgeräte eine direkte Verbindung zu einem zentralen Router und jedes Paket wird zuerst zum Router gesendet und von dort zum Zielknoten weitergeleitet (s. Abb. 2.2). Da die Sterntopologie
die maximal mögliche Entfernung der Endgeräte lediglich verdoppelt, können so mit typischen
Funkknoten maximal 20 bis 60 m im Innenbereich erzielt werden. Da dies nicht ausreicht, um
Produktionsanlagen mit Entfernungen von 100 m und mehr abzudecken, ist diese Topologie
für das betrachtete Szenario unzureichend. Insgesamt skaliert die Sterntopologie nicht, da alle
Knoten mit nur einem zentralen Router verbunden sind.
Bei der Mesh-Topologie übernimmt dagegen jeder Knoten die Funktion eines Routers und kann
Pakete für andere Knoten weiterleiten (s. Abb. 2.3). Die Knoten können dabei beliebig verbunden
sein, wodurch es möglich wird, beliebig große Topologien zu bilden. Selbst sehr weitläufige
Produktionsanlagen können so durch Platzierung von genügend Routern abgedeckt werden.
Ein Kompromiss aus Stern- und Mesh-Topologie stellt die Stern-Mesh-Topologie dar (s. Abb. 2.4),
bei der die Router eine Mesh-Topologie bilden und die Endgeräte sternförmig mit den Routern
verbunden sind. Auch bei dieser Topologie können beliebig große Netzwerke gebildet werden,
sofern genügend Router vorhanden sind.
2.5. Skalierbarkeit
9
1
●
2
●
6
●
4
●
5
●
3
●
Abbildung 2.2.: Sterntopologie mit 5 Endgeräten (grau) und einem zentralen Router (rot)
1
●
3
●
2
●
4
●
5
●
Abbildung 2.3.: Mesh-Topologie aus 5 Routern
6
●
5
●
4
●
1
●
11
●
3
●
2
●
8
●
10
●
7
●
9
●
Abbildung 2.4.: Stern-Mesh-Topologie mit 3 als Mesh vernetzten Routern (rot) und 8 sternförmig angebundenen Endgeräten (grau)
10
Kapitel 2. Anforderungen
Aus Anwendungssicht ist es nicht relevant, welche Multi-Hop-Topologie das Kommunikationssystem bildet. Es ist nur wichtig, dass die benötigte Entfernung abgedeckt werden kann. Daher
sind Mesh- oder Stern-Mesh-Topologien denkbar. Welche Vor- und Nachteile diese in Bezug auf
die Einhaltung der anderen Anforderungen haben, wird in Kapitel 4 genauer untersucht werden.
2.6 Flexibilität
Eine weitere wichtige Anforderung ist die Flexibilität des Systems. Wie im Anwendungsszenario beschrieben, kann es in einer Produktionsanlage Roboter geben, die sich innerhalb der
Anlage bewegen können. Durch die Positionsänderung kann sich die Topologie des Funknetzwerks ändern. Das drahtlose Kommunikationssystem kann also nicht von einer völlig statischen
Topologie ausgehen. Allerdings ist es auch nicht nötig, dass eine völlig dynamische Topologie,
bei der sich alle Knoten jederzeit bewegen können, unterstützt wird. In einer Produktionsanlage
sind die meisten Sensoren und Aktuatoren typischerweise fest installiert und nur wenige Knoten
mobil. Um sowohl die mehrheitlich stationären als auch die wenigen mobilen Knoten optimal
anzubinden, sollte es das Kommunikationssystem idealerweise erlauben, zu konfigurieren, ob
ein Knoten stationär oder mobil ist.
Ein weiterer Aspekt der Flexibilität stellt die Erweiterbarkeit des Systems dar. Obwohl im Anwendungsszenario eine sehr begrenzte Menge möglicher Knotentypen, Steuerungs- und Regelungsbefehle angegeben ist, so ist es leicht denkbar, dass neue Typen hinzukommen. Beispielsweise könnte die Produktionsanlage mit zusätzlichen Helligkeitssensoren ausgerüstet werden.
Die Anbindung dieser neuartigen Knoten an das Netzwerk sollte möglich sein, ohne dass die
Anlage dazu heruntergefahren und das Netz neu konfiguriert werden muss. Es wird daher ein
flexibler Mechanismus verlangt, mit dem Dienste, die von einem Knoten bereitgestellt werden,
während des Betriebs bekannt gemacht werden können, sodass andere Knoten sie auffinden
und abonnieren können. Ein Dienst könnte das Bereitstellen eines Sensorwertes oder das Entgegennehmen von Befehlen zur Steuerung bzw. Regelung eines Aktuators sein.
Die Zuordnung von Diensten zu Knoten sollte ebenfalls flexibel gestaltbar sein. Da, wie im
Anwendungsszenario erwähnt, ein Funkknoten mit mehreren Sensoren ausgestattet sein kann,
muss das System es erlauben, dass ein Knoten mehrere Dienste anbietet. Ebenso muss es möglich sein, dass ein Knoten mehrere Dienste abonniert. So könnte beispielsweise ein Reglerknoten
zur Regelung einer Heizung die Sensorwerte mehrerer Temperatur-Sensoren abonnieren, um
anhand dieser Daten die Soll-Temperatur einer Heizung zu berechnen und als Regelungsbefehl
an den Aktuator-Knoten der Heizung zu senden. Gleichermaßen könnte ein Knoten als virtueller Sensorknoten die Sensorwerte mehrerer Sensoren abonnieren und sie aggregiert als Dienst
bereitstellen, der von mehreren anderen Knoten abonniert werden kann.
Eine weitere Flexibilitäts-Anforderung ergibt sich aus der Wartbarkeit des Systems. Da das Anhalten einer Industrieanlage Kosten verursacht, sollte das drahtlose Kommunikationssystem so
flexibel sein, dass es häufige Wartungsarbeiten während des Betriebs zulässt. Fällt beispielsweise
ein unkritischer Sensorknoten aus, so sollte es möglich sein, ihn durch einen neuen zu ersetzen,
ohne die Anlage anhalten zu müssen. Ebenso sollte es während des Betriebs möglich sein, zusätzliche Knoten zum Netzwerk hinzuzufügen.
2.7. Sicherheit
11
2.7 Sicherheit
In drahtlosen Kommunikationssystemen ist es gegenüber drahtgebundenen Systemen schwieriger, die Sicherheit des Systems zu gewährleisten. Da auf das drahtlose Medium auch von außerhalb der Anlage zugegriffen werden kann, können Angreifer die gesendeten Nachrichten
potenziell abhören, gefälschte Nachrichten senden oder durch Störsignale die Verfügbarkeit des
Systems beeinträchtigen. Ein solcher Angriff auf das Kommunikationssystem kann Kosten verursachen oder die Betriebssicherheit der Anlage gefährden. Daher müssen geeignete Maßnahmen ergriffen werden, um Angriffe abzuwehren. Dabei müssen mehrere Aspekte der Sicherheit
berücksichtigt werden:
• Vertraulichkeit: Es muss sichergestellt sein, dass Nachrichten von einen Angreifer nicht abgehört werden können.
• Integrität: Es muss sichergestellt sein, dass ein Angreifer Nachrichten nicht modifizieren
kann bzw. dass eine Modifikation erkannt wird.
• Authentizität: Es muss sichergestellt sein, dass zu jeder empfangenen Nachricht überprüft
werden kann, ob sie vom angegebenen Absender stammt oder nicht.
• Verfügbarkeit: Da nicht ausgeschlossen werden kann, dass ein Angreifer das drahtlose Medium durch einen Störsender blockiert und das System damit unverfügbar macht, müssen
Maßnahmen getroffen werden, dies zu erkennen und das System in einen sicheren Zustand zu bringen.
Wie das drahtlose Kommunikationssystem diese Aspekte gewährleistet, ist aus Anwendungssicht nicht relevant. Wichtig ist nur, dass nach aktueller Ansicht sichere Verfahren zum Einsatz
kommen, also beispielsweise nicht auf gebrochene Verschlüsselungsverfahren vertraut wird.
2.8 Ressourcen-Effizienz
Einer der Vorteile drahtloser Kommunikationssysteme ist es, dass Knoten sich bewegen können,
da sie nicht an ein festes Kabel gebunden sind. Damit dieser Vorteil genutzt werden kann, ist es
erforderlich, dass die Knoten ohne feste Energieversorgung auskommen, also mit einer Batterie oder einem Akku betrieben werden können. Damit Batterien nicht zu häufig ausgetauscht
werden müssen, sollte die Lebensdauer einer Batterie mindestens einige Monate, besser Jahre
betragen. Da in einer Produktionsanlage allerdings auch viele stationäre Knoten problemlos an
eine feste Energieversorgung angeschlossen werden können, sollte das Kommunikationssystem
idealerweise eine Unterscheidung zwischen Knoten mit fester Energieversorgung und Knoten
mit Batterieversorgung erlauben. So ist es möglich, dass Knoten mit fester Energieversorgung
mehr Aufgaben übernehmen und damit die Knoten entlasten, die von einer Batterie gespeist
werden.
Sollen Knoten beweglich sein, so ergeben sich damit auch Anforderungen an Größe und Gewicht
der Knoten. Es ist in einer Produktionsanlage zwar i.d.R. nicht nötig, dass die Knoten Briefmarkengröße haben, allerdings sollte es möglich sein, Knoten zu fertigen, die bei einer Dicke von
bis zu 5 cm nicht deutlich größer als eine Postkarte sind. So ist sichergestellt, dass die Knoten
problemlos in der Nähe von Sensoren und Aktuatoren in der Anlage platziert werden können.
Da die Funkknoten mit wenig Energie auskommen, klein und möglichst günstig sein sollen,
ist die eingesetzte Hardware verhältnismäßig schwach. Daher ist das Kommunikationssystem
12
Kapitel 2. Anforderungen
gezwungen, effizient mit der zur Verfügung stehenden Rechenleistung sowie dem zur Verfügung stehenden persistenten und flüchtigen Speicher umgehen.
2.9 QoS-Anforderungen Applikation
Nachdem die Anforderungen an das Kommunikationssystem in Bezug auf unterschiedliche
Aspekte beschrieben wurden, sollen nun die QoS-Anforderungen von drei exemplarischen Datenströmen formal definiert werden. Dabei kommt der Ansatz zur formalen Spezifikation von
QoS-Anforderungen für Netzwerke aus [WG07] zum Einsatz.
Zu jedem Datenstrom wird eine QoS-Spezifikation qosReq angegeben, welche sich aus qbase , q pre f
und s zusammensetzt:
qosReq = (qbase , q pre f , s)
• qbase spezifiziert die minimale Netzwerkgüte, die für eine ausreichende Anwendungsgüte
erforderlich ist.
• q pre f spezifiziert die Netzwerkgüte, die für eine bevorzugte Anwendungsgüte gewünscht
ist.
• s beschreibt die Skalierung anhand von Nutzen, Kosten und Skalierungs-Schwellwerten,
wird im Folgenden allerdings nicht genauer spezifiziert.
Um qbase und q pre f angeben zu können, werden zunächst Performanz-, Zuverlässigkeits- und
Granatiedomäne definiert:
• Die Performanzdomäne P beschreibt die Effizienzaspekte des Datenstroms hinsichtlich Ressourcen und Zeit. Hier wird sie definiert als die Menge aller geordneten Tripel bestehend
aus der minimalen Periodendauer Periodmin , der maximalen Übertragungsverzögerung
Delaymax und der Länge einer Nachricht Length:
P = Periodmin × Delaymax × Length
Periodmin = R+ [ms], Delaymax = R+ [ms], Length = N[b]
• Die Zuverlässigkeitsdomäne R beschreibt die Betriebssicherheit des Datenstroms. Sie wird
definiert als kartesisches Produkt aus Verlust Loss, Periode Period, auf die sich die Verlustangabe bezieht, Anzahl maximal in Folge auftretender Verluste Burstiness sowie der
Uhrenungenauigkeit ClockO f f set:
R = Loss × Period × Burstiness × ClockO f f set
Loss = N0 , Period = R+ [ms], Burstiness = N0 , ClockO f f set = R+ [ms]
• Die Garantiedomäne G beschreibt den Grad der Verbindlichkeit. Sie wird definiert als kartesisches Produkt von Verbindlichkeitsverpflichtung DoC, dem zugehörigen Wert im Falle
einer statistischen Garantie Stat, sowie einer Priorität Prio, mit der mehrere QoS-Anforderungen unterschiedlich priorisiert werden können:
G = DoC × Stat × Prio
DoC = {bestE f f ort, enhancedBestE f f ort, statistical, deterministic},
Stat = { p ∈ R|0 < p ≤ 1}, Prio = N0
2.9. QoS-Anforderungen Applikation
13
Nachdem diese Domänen definiert sind, werden für qbase und q pre f jeweils für alle drei Domänen
Variablen definiert:
qbase = ( pbase , rbase , gbase ) mit pbase ∈ P, rbase ∈ R, gbase ∈ G
q pre f = ( p pre f , r pre f , g pre f ) mit p pre f ∈ P, r pre f ∈ R, g pre f ∈ G
Diese Variablen werden nun für drei beispielhafte Datenströme mit konkreten Werten, welche
die Anforderungen des jeweilgen Datenstroms widerspiegeln, festgesetzt.
2.9.1 Datenstrom 1: Sensor Temperatur
Eine Nachricht dieses Datenstroms ist wie in Kapitel 2.1 beschrieben 80 Bit groß (4 Byte Temperaturwert, 4 Byte Zeitstempel, 2 Byte Kennung). Nachrichten werden periodisch jede Sekunde
oder falls möglich alle 500 ms gesendet. Die maximale Übertragungsverzögerung darf wie in Kapitel 2.2 gefordert das Übertragungsintervall nicht überschreiten und nicht mehr als 1 s betragen.
Für den Verlust wird wie in Kapitel 2.3 keine maximale Verlusthäufigkeit pro Zeit gefordert, allerdings eine maximale Anzahl von 20 verlorenen Nachrichten in Folge. Außerdem wird ein maximaler ClockOffset von 10 ms verlangt. Die Garantieverbindlichkeit wird mit enhancedBestEffort
spezifiziert, was wie folgt zu verstehen ist: Unter der Annahme, dass das Medium nicht von externen Störquellen beeinträchtigt wird, müssen die Anforderungen deterministisch eingehalten
werden. Kommt es zu einer Störung durch externe Quellen, ist eine deterministische Einhaltung
unmöglich, daher gilt dann lediglich eine BestEffort-Verbindlichkeit. Wie bereits erwähnt, muss
das System in diesem Fall die Anlage allerdings kontrolliert in einen sicheren Zustand bringen.
pbase,1 = (1 s, 1 s, 80 b)
p pre f ,1 = (500 ms, 500 ms, 80 b)
rbase,1 = (unde f ined, unde f ined, 20, 10 ms)
r pre f ,1 = rbase,1
gbase,1 = (enhancedBestE f f ort, 1, 0)
g pre f ,1 = gbase,1
2.9.2 Datenstrom 2: Sensor Produktfertigstellung
Eine Nachricht dieses Datenstroms ist wie in Kapitel 2.1 beschrieben 160 Bit groß (2 Byte Art des
Produkts, 4 Byte Zeitstempel, 2 Byte Kennung). Nachrichten werden ereignisgesteuert gesendet
(übliche Intervalle: alle 20-50 s), das minimale Ereignis-Eintrittsintervall Intmin beträgt 20 s. Wie
in Tab. 2.4 angegeben, beträgt die maximal zulässige Übertragungsverzögerung für Nachrichten
dieses Datenstroms 5 s. Da es sich um einen ereignisgesteuerten Datenstrom handelt, dürfen –
wie in Kapitel 2.3 beschrieben – keine Verluste auftreten. Der maximale ClockOffset muss wie
beim ersten Datenstrom auf 10 ms begrenzt sein. Außerdem wird genau wie beim ersten Datenstrom eine enhancedBestEffort Verbindlichkeit gefordert, die ein deterministisches Verhalten
verlangt, solange keine Störung durch externe Quellen vorliegt.
14
Kapitel 2. Anforderungen
pbase,2 = (20.000 ms, 5000 ms, 160 b)
p pre f ,2 = pbase,2
rbase,2 = (0, unde f ined, unde f ined, 10 ms)
r pre f ,2 = rbase,2
gbase,2 = (enhancedBestE f f ort, 1, 0)
g pre f ,2 = gbase,2
2.9.3 Datenstrom 3: Steuerungsbefehl Maschinenabschaltung
Eine Nachricht dieses Datenstroms ist wie in Kapitel 2.1 beschrieben 17 Bit groß (1 Bit Abschaltung, 16 Bit Kennung). Nachrichten werden ereignisgesteuert im Fehlerfall gesendet, also äußerst selten. Das minimale Ereignis-Eintritts-Intervall Intmin beträgt 60 s. Wie alle Steuerungsund Regelungsnachrichten darf aus Anwendungssicht keine Nachricht verloren gehen. Auch
hier wird wieder ein ClockOffset von 10 ms sowie eine enhancedBestEffort Verbindlichkeit gefordert.
pbase,3 = (60.000 ms, 1.000 ms, 17 b)
p pre f ,3 = Pbase,3
rbase,4 = (0, unde f ined, unde f ined, 10 ms)
r pre f ,3 = rbase,3
gbase,3 = (enhancedBestE f f ort, 1, 0)
g pre f ,3 = gbase,3
3. KAPITEL
State of the Practice
Zunächst wird in diesem Kapitel ein Überblick über Standards gegeben, die in drahtlosen Kommunikationssystemen im Produktionsbereich eingesetzt werden können. Dabei werden zuerst
Standards betrachtet, die nicht speziell für industrielle Produktionsanlagen, sondern ursprünglich für andere Einsatzzwecke gedacht sind. Zu jedem dieser Standards wird insbesondere untersucht, welche Stärken und Schwächen er in Hinblick auf den Einsatz im industriellen Produktionsbereich aufweist. Im Anschluss werden drei Standards vorgestellt, die speziell für den
Einsatz in industriellen Produktionsanlagen entworfen worden sind.
Im zweiten Teil dieses Kapitels werden die beiden wichtigsten Standards für drahtlose Kommunikationssysteme im Produktionsbereich, WirelessHART [Eur10] und ISA 100.11a [ISA11],
detailliert verglichen. Dazu werden die Gemeinsamkeiten und Unterschiede der Systeme auf
den einzelnen Protokollebenen untersucht.
3.1 Überblick über existierende Standards
Es gibt einige standardisierte Protokolle für drahtlose Kommunikationssysteme, die für den
Einsatz im Produktionsbereich denkbar sind. Neben Standards, die in erster Linie für vielseitige Einsatzzwecke entworfen worden sind, wie Bluetooth, WLAN, IEEE 802.15.4, ZigBee und
UWB, wurden mittlerweile mit WirelessHART, ISA 100.11a und WIA-PA gleich mehrere Protokolle speziell für den Einsatz in industriellen Produktionsanlagen standardisiert. In diesem
Kapitel wird ein Überblick über die genannten Standards gegeben und aufgezeigt, warum jene,
die nicht speziell für den Einsatz im industriellen Produktionsumfeld konzipiert wurden, den
Anforderungen nur unzureichend gerecht werden.
3.1.1 IEEE 802.15.1 Bluetooth
Bluetooth wurde bereits ab 1994 vom Mobilfunkspezialisten Ericsson mit dem Ziel entwickelt,
eine günstige und energiesparende Schnittstelle zwischen Handys und Handyzubehör zu erhalten [Haa98]. Um die Verbreitung der Schnittstelle zu fördern und sie somit erfolgreicher zu machen, gründete Ericsson 1998 zusammen mit Nokia, IBM, Toshiba und Intel die Bluetooth Special
Interest Group (SIG), der mittlerweile über 20.000 Unternehmen angehören [Blu14]. Basierend
auf Bluetooth Version 1.1 wurde der internationale Standard IEEE 802.15.1 [IEE05b] geschaffen,
der im Gegensatz zu Bluetooth nur Physical- und MAC Layer spezifiziert. Die folgenden von
16
Kapitel 3. State of the Practice
der Bluetooth SIG veröffentlichten Bluetooth-Versionen werden zwar von zahlreichen Geräten
unterstützt, führten allerdings bisher nicht zu einer Aktualisierung des internationalen IEEEStandards.
Mittlerweile findet Bluetooth Verwendung vor allem in Handys, Handy-Zubehör, Laptops und
Computer-Peripherie-Geräten.
Die ursprüngliche Version 1.0 erreicht eine Brutto-Datenrate von 1,0 Mbit/s. Mit Bluetooth 2.0 +
EDR (Enhanced Data Rate) [Blu04] und Bluetooth 3.0 + HS (High Speed) [Blu09] wurde die maximal mögliche Brutto-Datenrate auf bis zu 24 Mbit/s erhöht (s. Tab. 3.1). Ab Version 3.0 kommt
dabei ein zusätzlicher auf IEEE 802.11 (WLAN) basierender High-Speed-Kanal zum Einsatz.
Version 4.0 [Blu10] unterstützt neben dem klassischen Bluetooth auch das energiesparende Bluetooth Low Energy, was allerdings nur Datenraten bis zu 1 Mbit/s erlaubt. Für die Anwendung
als drahtloses Kommunikationssystem im Produktionsbereich, wie sie in Kapitel 2 spezifiziert
wurde, bieten alle Bluetooth-Versionen eine mehr als ausreichende Übertragungsrate.
Tabelle 3.1.: Bluetooth Versionen und Datenraten
Version
1.0
2.0 + EDR
3.0 + HS
4.0 Low Energy
Brutto-Datenrate (Mbit/s)
Veröffentlicht
1
3
24
1
1999
2004
2009
2010
Bluetooth verwendet das lizenzfreie 2,4 GHz ISM-Band (Industrial, Scientific, Medical). Das Frequenzspreizverfahren Frequency Hopping Spread Spectrum kommt zum Einsatz, um die Robustheit von Bluetooth gegenüber Störungen im vielfältig genutzten 2,4 GHz Band zu verbessern.
Das Verfahren wechselt bis zu 1600 mal pro Sekunde zwischen 79 verschiedenen Frequenzen.
Auf diese Weise wird Bluetooth kaum gestört, wenn auf einzelnen Frequenzen Interferenzen
auftreten. Durch den schnellen Frequenzsprung ist es allerdings nicht möglich, die Medienbelegung vor dem Senden per Carrier Sense zu überprüfen. Damit Bluetooth andere Kommunikationssysteme, die auf dem 2,4 GHz Band senden ohne Frequency Hopping einzusetzen (wie
beispielsweise IEEE 802.11), nicht zu sehr stört, wurde mit Bluetooth 1.2 das sogenannte Adaptive Frequency Hopping (AFH) eingeführt. Mit AFH nutzt Bluetooth von den möglichen 79
Frequenzen jene nicht, auf denen andere drahtlose Kommunikationssysteme erkannt wurden.
Mindestens 20 Frequenzen werden allerdings immer verwendet, auch wenn auf diesen andere
Kommunikationssysteme erkannt wurden.
Die Reichweite eines Bluetooth-Gerätes hängt davon ab, welcher Klasse es angehört [Blu13a]:
Für den industriellen Einsatz ist die erste Klasse vorgesehen, sie erlaubt den Geräten mit bis zu
100 mW zu senden und so eine Reichweite von ca. 100 m zu erreichen. Die Geräte-Klasse 2 wird
meistens in Mobiltelefonen verwendet, erlaubt eine Sendestärke von 2,5 mW und damit eine
Reichweite von ca. 10 m. Geräte der Klasse 3 senden mit bis zu 1 mW und erreichen damit eine
Reichweite von nur etwa einem Meter.
Die von Bluetooth definierten Topologien sind Piconetze und Scatternetze. In einem Piconetz sind
mit einem Masterknoten bis zu sieben aktive Slaveknoten als Sterntopologie verbunden. Weitere
Knoten können sich im Park-Modus befinden und bei Bedarf aufgeweckt werden. Die Kommunikation wird vom Masterknoten gesteuert, indem dieser Sendeslots an die Slaves vergibt und so
Kollisionen verhindert. Die Frequenz-Sprungsequenz eines Piconetzes ergibt sich aus der Adresse des Masterknotens. Ein Knoten kann in mehreren Piconetzen angemeldet sein und bildet
3.1. Überblick über existierende Standards
17
damit ein Scatternetz. Er kann somit Routing-Funktionalität zwischen den Piconetzen übernehmen, auch wenn dies nicht durch die Bluetooth-Core-Spezifikation verlangt oder beschrieben
wird.
Das Sicherheits-Modell von Bluetooth unterstützt mittlerweile vielfältige Sicherheitsfunktionen
unter Einsatz unterschiedlicher kryptographischer Verfahren. Schon die erste Bluetooth-Version
unterstütze Verschlüsselung basierend auf dem E0 Algorithmus, der auf Massey und Rueppel
zurückgeht. Version 2.1 führt weitere kryptografische Verfahren ein, die auch die Integrität der
Nachrichten garantieren können (u.a. SHA-256). In Bluetooth 4.0 Low Energy kommt der Advanced Encryption Standard (AES) im CCM-Modus zur Verschlüsselung zum Einsatz und die
neuste Bluetooth-Version 4.1 [Blu13b] führt weitere Verfahren für sicheres Pairing (basierend auf
P-256-Elliptic curve), Geräte-Authentifizierung (HMAC-SHA-256 und AES-CTR) sowie für die
Sicherstellung der Nachrichten-Integrität (AES-CCM) ein.
Für den Einsatz im industriellen Produktionsumfeld galten die ersten Bluetooth-Versionen aus
folgenden Gründen als nur sehr eingeschränkt geeignet (siehe [MTA05]):
1. Der Energieverbrauch durch Bluetooth ist recht hoch verglichen mit anderen Standards
wie etwa IEEE 802.15.4 / ZigBee.
2. Piconetze bestehen aus einem Master und maximal sieben Slaves. Um größere Topologien
umzusetzen müssen mehrere Piconetze zu Scatternetzen verknüpft werden.
3. Zwischen den Masterknoten zweier Piconetze darf nicht mehr als ein Hop liegen.
4. Schlafende Knoten benötigen mit typischerweise 3 Sekunden verhältnismäßig lange, um
wieder aufzuwachen, wodurch Energieeinsparung zusätzlich erschwert wird.
Mit Version 4.0 wurde Bluetooth Low Energy, auch Bluetooth Smart genannt, eingeführt. Ziel der
neuen Version soll vor allem sein, einen möglichst geringen Energieverbrauch von BluetoothGeräten zu erzielen und so mit Knopfzellenbatterien eine Lebensdauer von Jahren zu erreichen
[Blu13c]. Dafür beträgt die maximale Übertragungsrate mit 1 Mbit/s weniger als bei Bluetooth
2.0 + EDR und Bluetooth 3.0 + HS. Als Anwendungsgebiete nennt die Bluetooth SIG die Bereiche Automobil, Wellness, Smart Energy, Unterhaltung, Heimautomatisierung, Sicherheit und
Überwachung sowie Sport und Fitness. Aber auch für den Bereich der industriellen Produktion
gewinnt Bluetooth mit Version 4.0 an Attraktivität: Mit einem deutlich geringeren Energieverbrauch und kürzeren Wakeup-Zeiten von unter 100 ms [PW10] gleicht Bluetooth Low Energy
wichtige Nachteile aus. Allerdings bietet Bluetooth Low Energy keine Unterstützung für MultiHop-Topologien [GOP12] und ist damit für größere drahtlose Netzwerke ungeeignet. Darüber
hinaus wurde Bluetooth 4.0 erst 2010 veröffentlicht und zwischenzeitlich hatte der Bedarf nach
geeigneten drahtlosen Kommunikationssystemen im industriellen Bereich bereits zur Entwicklung spezialisierter Standards geführt, die 2007 (WirelessHART) bzw. 2009 (ISA100.11a) veröffentlicht wurden.
3.1.2 IEEE 802.11 WLAN
Der als WLAN bekannte internationale Standard IEEE 802.11 [IEE12a] wird hauptsächlich genutzt, um tragbare Geräte wie Laptops, Smartphones oder Tablets an breitbandige Internetverbindungen anzubinden. Der Standard ermöglicht schnelle drahtlose Übertragungen auf 2,4 GHz,
5 GHz oder neuerdings auch 60 GHz mit Datenraten von ursprünglich 2 Mbit/s bis hin zu mehreren Gbit/s (s. Tab. 3.2).
Mit handelsüblichen Geräten wird eine Reichweite von 30 bis 100 m erreicht, mit speziellen Antennen bei Sichtkontakt im Freien sind bis zu 300 m möglich. Damit hat WLAN typischerweise
18
Kapitel 3. State of the Practice
Tabelle 3.2.: IEEE 802.11 Standards, Frequenzen und Datenraten
IEEE Standard
802.11
802.11a [IEE03a]
802.11b [IEE99]
802.11g [IEE03b]
802.11n [IEE09a]
802.11ac [IEE13b]
802.11ad [IEE12b]
Frequenz (GHz)
Brutto-Datenrate (Mbit/s)
Veröffentlicht
2,4
5
2,4
2,4
2,4 und 5
5
60
2
54
11
54
600
1.300
7.000
1999
1999
1999
2003
2009 (Entwurf 2006)
vor. 2014
2012
eine größere Reichweite als Bluetooth.
Der Standard sieht sowohl Infrastruktur-basierte Topologien vor, bei denen sich jeder Client
mit einem Acces Point verbindet, als auch Ad-Hoc Topologien, bei denen sich zwei oder mehr
Clients direkt miteinander verbinden. Darüber hinaus wurde mit IEEE 802.11s [IEE11b] Unterstützung für Mesh-Topologien standardisiert.
Der IEEE 802.11 Standard selbst spezifiziert nicht alle Ebenen eines Kommunikationsprotokolls,
sondern lediglich Physical Layer und MAC Layer. Typischerweise kommt das Internet-Protokoll
IP auf der Netzwerk-Ebene und TCP bzw. UDP auf Transport-Ebene zum Einsatz, um WLANNetzwerke an das Internet anzubinden.
Mit WPA (Wi-Fi Protected Access) und WPA2 können WLAN-Netze auf AES basierend sicher
verschlüsselt werden. Darüber hinaus verwenden einige Anwendungen zusätzlich eine Endezu-Ende-Verschlüsselung mit SSL/TLS auf Transport-Ebene.
Die ursprüngliche WLAN-Spezifikation IEEE 802.11 sieht zwei unterschiedliche Möglichkeiten
des Medien-Zugriffs vor:
Die erste Möglichkeit ist die Distributed Coordination Function (DCF), die auf Carrier Sense Multiple Access with Collission Avoidance (CSMA/CA) basiert. Bei dieser Form des Medienzugriffs wird
vor dem Senden das Medium abgehört und der Sendevorgang nur gestartet, falls das Medium
als frei erkannt wurde. Auf diese Weise kann die Kollisionswahrscheinlichkeit verringert, Kollisionen aber nicht verhindert werden. Insbesondere problematisch ist, dass die Wahrscheinlichkeit von Kollisionen mit der Anzahl der Knoten im Netz steigt. Darüber hinaus erlaubt CSMA/CA keine ausreichende Dienstgüte-Unterstützung, da es unbegrenzt oft zu Kollisionen kommen
kann und somit keinerlei Garantien für maximale Verzögerungen gegeben werden können. Aus
diesen Gründen ist diese Art des Medien-Zugriffs für den Einsatz im Produktionsumfeld ungeeignet.
Die zweite Möglichkeit des Medien-Zugriffs bei IEEE 802.11 ist die Point Coordination Function
(PCF). Bei dieser Möglichkeit wird der Medienzugriff durch den Access Point geregelt, daher ist
sie im Ad-Hoc Modus ohne Access Point nicht verfügbar. Bei PCF teilt der Access Point die Zeit
durch das regelmäßige Senden von Beacon Rahmen ein. Zwischen zwei Beacon Rahmen gibt
es zwei Phasen, die Contention Free Period (CFP) und die Contention Period (CP). Während
der CP wird der Medienzugriff wie bei DCF durch CSMA/CA geregelt. In der CFP sendet der
Access Point Contention-Free-Poll (CF-Poll) Pakete an die einzelnen Stationen und erteilt ihnen
so die Möglichkeit zum Senden. Da der Access Point immer nur einer Station ein CF-Poll Paket
schickt, kommt es in der CFP nicht zu Kollisionen. Daher wäre diese Art des Medienzugriffs
für den Einsatz im Produktionsumfeld prinzipiell geeignet. Der Access Point würde dann idealerweise nicht allen Knoten der Reihe nach CF-Poll Pakete schicken, sondern beim Polling nach
3.1. Überblick über existierende Standards
19
einem festgelegtem Schedule verfahren.
Mit IEEE 802.11e [IEE05a] wurde eine verbesserte Dienstgüte-Unterstützung auf MedienzugriffsEbene geschaffen. Im Enhanced Distributed Channel Access (EDCA) Modus wird grundsätzlich
wie im DCF über CSMA/CA der Medienzugriff geregelt, allerdings können wichtige Pakete
gegenüber unwichtigen priorisiert werden. Auch hier sind keinerlei Garantien für maximale
Verzögerungen möglich. Im HCF Controlled Chanel Access (HCCA) wird ähnlich wie im PCF der
Medienzugriff durch den Access Point geregelt, allerdings kann der Access Point bei Bedarf jederzeit eine CFP beginnen. Darüber hinaus werden Traffic Classes und Traffic Streams definiert,
die es dem Access Point erlauben, die Polls nicht nur gleichmäßig auf die Stationen zu verteilen, sondern Prioritäten und vorhandene Datenströme zu berücksichtigen, etwa um Voice over
IP (VoIP) über WLAN besser zu unterstützen. Auch HCCA wäre prinzipiell für ein drahtloses
Kommunikationssystem im Produktionsbereich geeignet, da es kollisionsfreien Verkehr ermöglicht.
Neben der hohen Datenrate zählt auch die enorme Verbreitung von WLAN zu einer der wichtigsten Stärken. Sie dürfte dafür verantwortlich sein, dass Endgeräte für WLAN wie etwa sogenannte WLAN Sticks mit USB-Schnittstelle mittlerweile für unter 5 Euro angeboten werden. Darüber hinaus führt das starke Interesse an WLAN dazu, dass der IEEE 802.11 Standard
stets aktualisiert und durch Erweiterungen ausgebaut wird. Die bekanntesten Aktualisierungen IEEE 802.11b, IEEE 802.11g und IEEE 802.11n haben höhere Datenraten ermöglicht. Dieser
Trend wird von den jüngsten Aktualisierungen IEEE 802.11ac und IEEE 802.11ad fortgesetzt.
Hinzu kommen andere Erweiterungen, wie etwa die Einführung von WPA2 Verschlüsselung
(IEEE 802.11i [IEE04a]), Mesh-Netzwerke (IEEE 802.11s) oder bessere Dienstgüte-Unterstützung
(IEEE 802.11e).
Trotz der vielen Vorteile von WLAN ist es für den Einsatz als drahtloses Kommunikationssystem in der Produktion aus mehreren Gründen nur stark eingeschränkt geeignet (vgl. [MTA05]):
Das größte Problem ist, dass der Energieverbrauch von WLAN-Hardware zu hoch ist, um einen
sinnvollen Batteriebetrieb zu ermöglichen. Damit nicht täglich Batterien gewechselt werden
müssen, würde dies bedeuten, dass jeder Knoten an eine externe Stromversorgung angeschlossen werden müsste. Dadurch, dass zu allen Knoten eine Stromversorgung per Kabel verlegt
werden muss, entfallen aber viele Vorteile der drahtlosen Kommunikation.
Darüber hinaus ist WLAN recht empfindlich gegen Interferenzen, da es keine Frequency Hopping Techniken nutzt. Solange Interferenzen auf dem durch WLAN genutzten Kanal auftreten,
ist keine Übertragung möglich, was zu unbeschränkt langen Verzögerungen führen kann.
3.1.3 IEEE 802.15.4
Der internationale Standard IEEE 802.15.4 [IEE11a] spezifiziert Physical Layer und MAC Layer
für Wireless Personal Area Networks (WPAN), also drahtlose Netzwerke mit einer geringeren
Reichweite als bei WLAN-Netzen. Er bildet die Grundlage für eine Reihe weiterer Protokolle,
darunter Zigbee (s. Kapitel 3.1.4), WirelessHART (s. Kapitel 3.1.6), ISA 100.11a (s. Kapitel 3.1.7)
und WIA-PA (s. Kapitel 3.1.8), welche den Physical Layer und teilweise auch den MAC Layer
von IEEE 802.15.4 übernehmen und die darüber liegenden Layer selbst spezifizieren.
Im Gegensatz zu IEEE 802.11 legt IEEE 802.15.4 den Fokus nicht auf hohe Datenraten und große
Reichweiten, sondern auf geringen Energieverbrauch und geringe Komplexität, um auch kleine
und günstige drahtlose Knoten ohne externe Energieversorgung und mit einfachen Prozessoren
zu unterstützen. Dabei werden geringere Reichweiten und Datenraten explizit in Kauf genom-
20
Kapitel 3. State of the Practice
men. Mit dieser Zielsetzung wird IEEE 802.15.4 den Anforderungen an drahtlose Kommunikationssysteme im Produktionsbereich (s. Kapitel 2) am besten gerecht, was erklärt, dass die speziell
für solche Einsatzzwecke entworfenen Protokolle WirelessHART, ISA 100.11a und WIA-PA alle
diesen Standard als Basis verwenden.
Der Physical Layer von IEEE 802.15.4 sieht unterschiedliche Übertragungsfrequenzen mit teilweise unterschiedlichen Modulationen vor, wodurch unterschiedliche Datenraten erreicht werden (s. Tab. 3.3). Nach Erscheinen des ursprünglichen Standards 2003 wurde der Physical Layer
mehrfach um weitere mögliche Frequenzen erweitert. Durch die Vielzahl der möglichen Frequenzen ist es möglich, dass ein System die Frequenz nutzt, die den Anforderungen an Energieverbrauch, Datenrate und Reichweite am ehesten gerecht wird.
Tabelle 3.3.: IEEE 802.15.4 Standards, deren Frequenzen und Datenraten
IEEE Standard
802.15.4-2003 [IEE03c]
802.15.4-2003
802.15.4-2003
802.15.4-2006 [IEE06]
802.15.4-2006
802.15.4-2006
802.15.4-2006
802.15.4a-2007 [IEE07]
802.15.4a-2007
802.15.4a-2007
802.15.4a-2007
802.15.4a-2007
802.15.4c-2009 [IEE09b]
802.15.4c-2009
802.15.4d-2009 [IEE09c]
802.15.4d-2009
802.15.4f-2012 [IEE12d]
802.15.4f-2012
802.15.4f-2012
802.15.4f-2012
802.15.4f-2012
802.15.4f-2012
802.15.4f-2012
Frequenz (MHz)
Modulation
Datenrate (kbit/s)
Kanäle
868
915
DSSS 2.450
868
868
915
915
CSS 2.450
CSS 2.450
UWB 250 - 750
UWB 3.244 - 4.742
UWB 5.944 - 10.234
780
780
950
950
433
433
433
2.450
LRP UWB
LRP UWB
LRP UWB
BPSK
BPSK
O-QPSK
ASK
O-QPSK
O-QPSK
ASK
20
40
250
250
100
250
250
250
1.000
850 - 27.000
850 - 27.000
850 - 27.000
250
250
100
20
31,25
100
250
250
31,25
250
1000
1
10
16
1
1
10
10
14
14
1
4
11
8
8
12
10
15
15
15
42
3
3
3
O-QPSK
MPSK
GFSK
BPSK
MSK
MSK
MSK
MSK
M. PPM
OOK
OOK
Viele der vorgesehenen Frequenzen sind nur in einigen Ländern freigegeben. Die wohl am häufigsten verwendete Frequenz ist 2,4 GHz (DSSS) mit einer Datenrate von 250 kbit/s. Dieses auch
von Bluetooth und WLAN verwendete ISM-Band hat den Vorteil, dass es weltweit freigegeben
ist, allerdings auch den Nachteil, dass es deshalb von vielen anderen Systemen verwendet wird
und die Wahrscheinlichkeit, dass Interferenzen auftreten, somit hoch ist. Auf der 2,4 GHz Frequenz werden im Innenbereich Reichweiten bis 30 m erreicht, im Außenbereich sind bis zu 70 m
möglich [PRML06].
Eine Besonderheit von IEEE 802.15.4 ist, dass mit IEEE 802.15.4a-2007 der Physical Layer um
optionale Untersützung für Ultra-Wideband (UWB) erweitert wurde. Mit dieser Übertragungs-
3.1. Überblick über existierende Standards
21
technik können bei geringer Sendeleistung auf einem sehr breiten Frequenzband Daten mit einer
hohen Robustheit oder hohen Datenrate übertragen werden (Details s. Kapitel 3.1.5).
Die ursprüngliche IEEE 802.15.4 Spezifikation sieht kein Frequency Hopping wie bei Bluetooth
vor. Ein IEEE 802.15.4 Transceiver bleibt also genau wie bei IEEE 802.11 stets auf der gleichen
Frequenz und kann daher erheblich gestört werden, wenn auf dieser Frequenz häufig Interferenzen auftreten. Mit IEEE 802.15.4e [IEE12c] wurde 2012 der Standard um optionales Channel
Hopping erweitert. Damit ist es möglich, dass IEEE 802.15.4 Geräte ähnlich wie Bluetooth-Geräte
zwischen mehreren Kanälen wechseln und somit unempfindlicher gegen Störungen werden.
Verglichen mit Bluetooth stehen aber deutlich weniger mögliche Kanäle zur Verfügung (je nach
genutzter Frequenz und Modulation, s. Tab. 3.3) und das Wechseln zwischen den Frequenzen
erfolgt nicht so schnell wie bei Bluetooth (je nach Konfiguration z.B. 100 mal pro Sekunde).
Der MAC Layer von IEEE 802.15.4 unterstützt durch CSMA/CA geregelten Wettbewerb und
Guaranteed Time Slots (GTS), also exklusiv reservierte Zeitslots. Sogenannte durch Beacon-Frames
abgetrennte Superframes beginnen mit einer Wettbewerbsphase, an die sich eine wettbewerbsfreie Phase mit GTS anschließen kann. Am Ende eines Superframes ist eine inaktive Phase möglich, in der kein Verkehr stattfindet und die Knoten in einen energiesparenden Schlafzustand
wechseln können. Beacon-Frames werden vom Koordinator-Knoten gesendet, alternativ kann
auf Beacon-Frames verzichtet werden und ausschließlich CSMA/CA basierter Wettbewerb genutzt werden.
Obwohl IEEE 802.15.4 nur Physical Layer und MAC Layer spezifiziert, also weder Multi-HopÜbertragung noch Routing betrachtet, wird zwischen zwei Knotentypen unterschieden: Ein Full
Function Device (FFD) kann als normaler Knoten oder Koordinator im Netz agieren und mit allen Knoten in Reichweite direkt kommunizieren. Reduced Function Devices (RFD) können dagegen nur mit einem FFD kommunizieren und nicht als Koordinator agieren. Somit können RFDs
sehr einfache und günstiger Knoten (z.B. Sensorknoten) sein, die weniger Energie verbrauchen
als FFDs. Neben Sterntopologien (RFDs und FFDs um einen FFD) sind auch Mesh-Netzwerke
aus FFDs oder Stern-Mesh-Topologien aus vermaschten FFDs und damit verbundenen RFDs
möglich. Wenn obere Layer eine Multi-Hop-Übertragungen ermöglichen, müssen RFDs keinerlei Routing-Funktionalität oder Relay-Aufgaben übernehmen, da sie ausschließlich mit einem
FFD kommunizieren. Dies ermöglicht es RFDs, längere Zeit in einem energiesparenden Schlafmodus zu verbringen. Eines der FFDs im Netzwerk übernimmt die Rolle des PAN Coordinators
und ist damit für Netwerk-Management-Aufgaben verantwortlich.
Der MAC Layer von IEEE 802.15.4 spezifiziert die Möglichkeit, die Kommunikation zwischen
zwei Knoten mittels AES-128 symmetrisch zu verschlüsseln. Die Generierung der dafür benötigten Schlüssel wird vom Standard aber nicht genauer spezifiziert und wird somit den oberen
Layern überlassen.
Wie bereits eingangs erwähnt, passt die Ausrichtung von IEEE 802.15.4 gut zu den Anforderungen an drahtlose Kommunikationssysteme im Produktionsbereich. Besonders der geringe Energiebedarf von IEEE 802.15.4 Knoten und die verhältnismäßig geringe Komplexität des Protokolls
macht es für diesen Einsatzzweck geeignet. Dazu kommt auf MAC Ebene die Möglichkeit, Zeitslots exklusiv zu reservieren und somit Kollisionen zu vermeiden. Dazu ist die Unterscheidung
von einfachen, günstigen und energiesparenden RFDs und komplexen FFDs hilfreich.
Obwohl IEEE 802.15.4 gut für den Einsatz im Produktionsumfeld geeignet ist, reicht es für sich
genommen für diesen Einsatzzweck nicht aus. Da nur Physical Layer und MAC Layer spezifiziert werden, ist keine Multi-Hop-Übertragung möglich. Angesichts der geringen Reichweite
von IEEE 802.15.4 kann in einer Produktionsanlage aber nicht mit einem Single-Hop-Netzwerk
22
Kapitel 3. State of the Practice
gerechnet werden, daher ist ein zusätzliches Protokoll für die höheren Ebenen erforderlich.
Die ursprüngliche Spezifikation von IEEE 802.15.4 hat darüber hinaus die Schwäche, dass keine
Frequency Hopping Techniken vorgesehen sind und durch Interferenzen unbegrenzt lange Störungen auftreten können. Diese Schwäche wurde allerdings mit der Einführung von Channel
Hopping in IEEE 802.15.4e im Jahr 2012 beseitigt.
3.1.4 ZigBee
ZigBee [Zig08] ist ein internationaler Standard basierend auf IEEE 802.15.4. Er ist ausgerichtet
auf günstige Knoten mit geringem Energiebedarf. Als mögliche Einsatzgebiete nennt der Standard Unterhaltungselektronik, Heim- und Gebäude-Automatisierung, industrielle Steuerung,
PC-Peripherie, medizinische Sensor-Anwendungen, Spielzeug und elektronische Spiele.
Die ZigBee Spezifikation übernimmt sowohl den Physical Layer als auch den MAC Layer aus
IEEE 802.15.4-2003. Dies bedeutet, dass ZigBee-Netzwerke entweder auf 868 MHz, 915 MHz
oder 2,4 GHz arbeiten können und dort 20 kbit/s, 40 kbit/s respektive 250 kbit/s Datenrate
erreichen können (s. Tab. 3.3). Da in dieser Version von IEEE 802.15.4 noch kein Channel Hopping vorgesehen ist und ZigBee kein eigenes Chanell Hopping umsetzt, sind ZigBee Netze recht
empfindlich gegen Interferenzen.
Über die durch IEEE 802.15.4 spezifizierten Layer fügt Zigbee einen Network Layer an, der
Stern-, Baum- und Mesh-Topologien unterstützt. Er bietet Routing-Funktionalität durch Einsatz
des Ad-hoc on Demand Distance Vector (AODV) Algorithmus. Dadurch werden Routen von den
Knoten selbst bestimmt und müssen nicht statisch konfiguriert sein. Bei AODV handelt es sich
um ein reaktives Routingverfahren, d.h. in dem Moment, in dem ein Paket zu einem Zielknoten
geschickt werden soll, zu dem keine Route bekannt ist, wird begonnen, die Route zu bestimmen.
ZigBee unterscheidet zwischen drei Knotentypen: Der ZigBee Coordinator entspricht dem PAN
Coordinator des IEEE 802.15.4-Netzwerks. Ein ZigBee Router ist ein IEEE 802.15.4 FFD, der nicht
der ZigBee Coordinator ist und Nachrichten zwischen Geräten routen kann. Ein ZigBee end device
ist ein IEEE 802.15.4 RFD oder FFD, das weder der ZigBee Koordinator noch ein ZigBee Router
ist.
Prinzipiell können ZigBee-Netzwerke genau wie IEEE 802.15.4-Netzwerke optional eine Synchronisation mit Beacons einsetzen. Allerdings sind Beacons nur in Stern- und Baum-Topologien
erlaubt, nicht aber in Mesh-Topologien. Darüber hinaus müssen in Baum-Topologien die aktiven Perioden der Knoten, die Beacons senden, überlappungsfrei mit denen aller Nachbarn und
deren Elternknoten sein.
Die ZigBee Architektur sieht diverse Sicherheits-Dienste für Schlüssel-Erzeugung, SchlüsselTransport, Verschlüsselung und Geräte-Verwaltung vor. Die im IEEE 802.15.4 MAC Layer enthaltenen Sicherheitsfunktionen, wie etwa Verschlüsselung auf MAC-Ebene, werden vom ZigBee Standard nicht explizit erwähnt, daher könnte deren Nutzung Kompatibilitätsprobleme mit
anderen Geräten hervorrufen [LSH08]. Allerdings spezifiziert ZigBee selbst Sicherheitsdienste,
u.a. Verschlüsselung auf dem Network- und Appllication Layer, und nutzt dabei die vorhandenen Sicherheits-Mechanismen von IEEE 802.15.4. So wird z.B. der AES-CCM-Modus aus IEEE
802.15.4 erweitert, sodass er Unterstützung für Authentifizierung, Verschlüsselung oder beides
bietet. Unicast-Nachrichten werden mithilfe eines Link-Keys verschlüsselt, einem Schlüssel den,
nur Sender und Empfänger teilen. Broadcast-Nachrichten dagegen werden mit einem NetworkKey geschützt, der allen Geräten im Netzwerk bekannt ist.
Da ZigBee auch in Hinblick auf den industriellen Einsatz konzipiert wurde, eignet es sich für
den Einsatz in Produktionsanlagen für mehr Einsatzzwecke als Bluetooth oder WLAN (vgl.
3.1. Überblick über existierende Standards
23
[MTA05], [Bak05]). Insbesondere auf Grund des geringeren Energiebedarfs eignet es sich besser für batteriebetriebene Sensorknoten. Darüber hinaus ist die Unterstützung von Multi-HopTopologien inkl. Routing besser. Die umfangreichen Sicherheits-Dienste von ZigBee sind ebenfalls gut geeignet für den Einsatz im industriellen Umfeld.
Trotzdem weist ZigBee einige Schwächen auf, die es für den Einsatz als Kommunikationssystem
im Produktionsumfeld nur bedingt geeignet erscheinen lassen. Lenvall et al. [LSH08] kritisieren
vor allem, dass die Robustheit von ZigBee dem Einsatz im industriellen Umfeld nicht gewachsen sei. Dies wird zum einen darauf zurückgeführt, dass ZigBee kein Frequency oder Channel
Hopping unterstützt und daher sehr anfällig für Störungen ist, insbesondere auch dann, wenn
andere Systeme wie WLAN oder Bluetooth im gleichen Frequenzbereich eingesetzt werden. Allerdings wurde 2012 der ZigBee zugrunde liegende IEEE 802.15.4 Standard um Channel Hopping erweitert, sodass davon auszugehen ist, dass zukünftige ZigBee-Spezifikationen von dieser
Möglichkeit Gebrauch machen werden und ZigBee damit robuster werden wird. Darüber hinaus
kritisieren Lenvall et al., dass das Finden neuer Routen mit AODV, z.B. im Falle eines gebrochenem Links, einen sehr hohen Overhead erzeugt und zu erheblichen Verzögerungen führt. Dieses
Problem könnte minimiert werden, indem beispielsweise im Falle eines gebrochenen Links eine bereits bekannte alternative Route genutzt wird. Diese Möglichkeit sieht der aktuelle ZigBee
Standard allerdings nicht vor. Auf Grund der geringen Robustheit ist ZigBee für den Einsatz
in Steuerung und Regelung laut Lenvall et al. nur eingeschränkt geeignet. Darüber hinaus sei
der Batteriebetrieb von ZigBee Routern unrealistisch, da der Einsatz von CSMA/CA dazu führt,
dass der Empfänger über einen großen Teil der Zeit empfangsbereit sein muss.
3.1.5 UWB
Mit Ultra Wide Band (UWB) bezeichnet man eine Funk-Technologie, bei der im Gegensatz zu
konventionellen Funksystemen auf einem sehr breiten Frequenzband gesendet wird, allerdings
mit einer sehr geringen Sendestärke. Das Leistungsdichtespektrum bleibt dabei unter der von
elektronischen Gebrauchsgeräten erzeugten Rauschleistungsdichte [Eis06], sodass konventionelle schmalbandige Funksysteme nicht gestört werden, selbst wenn sie innerhalb des von UWB
genutzten Frequenzbandes liegen. Aus diesem Grund können UWB-Systeme Frequenzen mitnutzen, die für andere Einsatzzwecke exklusiv lizensiert sind, ohne dass sie diese stören. Darüber ergibt sich durch das extrem breite Frequenzband, auf dem gesendet wird, die Möglichkeit,
entweder eine sehr hohe Datenrate oder eine erhöhte Robustheit bei der Übertragung zu erreichen.
Zusammenfassend verspricht die UWB Technologie folgende Vorteile:
• Hohe Datenraten oder robuste Übertragung
• Geringer Energieverbrauch durch geringe Sendeleistung
• Keine Lizenzgebühren für Frequenzen
• Effektive Nutzung des verfügbaren Frequenzraumes
Nachteilig ist, dass auf Grund der geringen Sendeleistung im Vergleich zu schmalbandigen
Verfahren nur geringe Reichweiten möglich sind und UWB sich daher nur für den Einsatz in
WPANs eignet. Da sich mit UWB eine robuste Übertragung bei geringem Energieverbrauch realisieren lässt, ohne Lizenzgebühren für Frequenzen zahlen zu müssen, wird diese Technologie
als besonders geeignet für den industriellen Einsatz angesehen [HA06, MTA05]. Damit die UWB
Technologie diesen Markt erschließen kann, wird allerdings ein einheitlicher Standard benötigt.
24
Kapitel 3. State of the Practice
Im Gegensatz zu dem bisher betrachteten Standards handelt es sich bei UWB nicht um einen
einzelnen Standard zur drahtlosen Kommunikation, sondern um eine Technologie, die in unterschiedlichen Standards Verwendung finden kann. Da bei UWB sich in erster Linie die physikalische Datenübertragung von herkömmlichen schmalbandigen Systemen unterscheidet, stellt
UWB zunächst eine alternative Art und Weise dar, den Physical Layer eines drahtlosen Kommunikationssystems zu realisieren. Es ist also naheliegend, den Physical Layer eines bisherigen Standards durch einen auf UWB Technologie basierenden zu ersetzen bzw. zu erweitern.
Mit IEEE 802.15.4a wurde 2007 genau dies getan, nämlich der IEEE 802.15.4 Standard (s. Kapitel 3.1.3) um alternative physikalische Layer erweitert, die auf UWB basieren (s. Tab. 3.3).
Ähnliche Bestrebungen, UWB in Bluetooth 3.0 zu verwenden, wurden 2009 zu Gunsten der Verwendung eines auf IEEE 802.11 basierenden High-Speed-Kanals auf Grund von Streitigkeiten
um Lizenzgebühren aufgegeben [Hei09]. Zuvor hatten zwei Industrie-Organisationen, das UWB
Forum und die WiMedia Alliance, angestrebt, einen auf UWB basierenden WPAN Standard für
hohe Datenraten als IEEE 802.15.3a [IEE04b] zu standardisieren. Dabei favorisierte das UWB
Forum mit Direct sequence-UWB (DS-UWB) eine andere Technologie als die WiMedia Alliance,
welche Multiband Orthogonal Frequency Division Multiplexing (MB-OFDM) UWB favorisierte.
Da beide Lager zu keiner Einigung kamen, wurde die Standardisierung von IEEE 802.15.3a im
Januar 2006 eingestellt [UWB06]. Allerdings wurde die Spezifikation der WiMedia Alliance als
ISO/IEC 26907 (Physical Layer) [Int07a] und ISO/IEC 26908 (MAC Layer) [Int07b] im Jahr 2007
international standardisiert.
Für den Einsatz als drahtloses Kommunikationssystem im Produktionsumfeld ist insbesondere
die Erweiterung des IEEE 802.15.4 Standards um UWB interessant, da diese im Gegensatz zu
den meisten anderen Bestrebungen, UWB zu standardisieren, nicht in erster Linie eine besonders hohe Datenrate, sondern eine robuste Übertragung bei geringem Energieverbrauch zum
Ziel hat. Somit könnte UWB in drahtlosen Kommunikationssystemen im Produktionsbereich
als Alternative oder in Kombination mit Channel Hopping eingesetzt werden, um die Robustheit dieser Systeme zu verbessern. Der erste IEEE 802.15.4a kompatible Transmitter wurde noch
im Jahr 2007 von IMEC hergestellt [IME07], einen besonders energiesparenden Sensorchip auf
Basis von IEEE 802.15.4a veröffentlichte Decawave 2011 [Ene11]. Insgesamt scheint die Marktdurchdringung von IEEE 802.15.4a allerdings noch äußert gering.
3.1.6 WirelessHART
Als WirelessHART wird die Erweiterung des HART Communication Protocol [HAR14a] (Highway Addressable Remote Transducer - HART) um drahtlose Kommunikation bezeichnet. HART
ist ein Mitte der 80er Jahre von Rosemount Inc. entwickeltes Protokoll für die drahtgebundene
Vernetzung von Geräten zur Steuerung, Regelung und Überwachung. Das zunächst proprietäre
Protokoll wurde früh offen gelegt, ist mittlerweile als IEC 61158 [IEC14] zum internationalen
Standard geworden und wird heute von der HART Communication Foundation (HCF) vermarktet und weiterentwickelt. Die Veröffentlichung von WirelessHART im Rahmen der HART 7
Spezifikation im Jahr 2007 geschah gegen den Widerstand von Honeywell, Mitglied des HFCRates [Ive07]. Das Unternehmen hatte kurz zuvor in einem offenen Brief an die Presse argumentiert, es bestünde kein Bedarf nach einem nur das HART-Protokoll unterstützenden drahtlosen Protokoll mehr, sobald das sich zu dieser Zeit noch in Entwicklung befindliche ISA 100.11a
verfügbar wäre, auf dessen Basis unterschiedliche Protokolle, wie HART, Profibus, CIP (Common Industrial Protocol) und Foundation Fieldbus (über Tunnelling) verwendet werden können
[Ive07]. Im April 2010 wurde WirelessHART als IEC 62591[IEC10] zum ersten internationalen
3.1. Überblick über existierende Standards
25
Standard für drahtlose Kommunikation in der Prozessautomatisierung [HAR10]. Aktuell listet
die HFC auf Ihrer Website ca. 50 kompatible WirelessHART-Geräte sowie ca. 1.300 drahtgebundene HART-Geräte [HAR14b].
Der Protokoll-Stack von WirelessHART ist zwar abwärtskompatibel zu HART, unterstützt also HART-Befehle auf Anwendungsebene, die anderen Protokollebenen unterscheiden sich aber
von HART. Auf dem Physical Layer kommt der IEEE 802.15.4-2006 Standard (s. Kapitel 3.1.3)
zum Einsatz, wobei ausschließlich die Frequenz 2.450 MHz mit DSSS und O-QPSK Modulation
und nur die weltweit zugelassenen Kanäle 11-25 verwendet werden. Damit erreichen WirelessHART-Netzwerke eine Brutto-Datenrate von bis zu 250 kbit/s.
Der MAC Layer von IEEE 802.15.4 wird von WirelessHART nicht übernommen, sondern durch
einen eigenen ersetzt. Dabei wird ebenfalls TDMA verwendet, allerdings gibt es keine Beacons
und keine CP. Stattdessen wird die Zeit basierend auf einer netzweiten Zeitsynchronisation vollständig in 10 ms Slots unterteilt. Durch die Definition von Superframes werden eine bestimmte Anzahl Zeitslots zusammengefasst, um wiederkehrende Slot-Zuordnungen zu ermöglichen.
Durch einen zentralen Network Manager können die Slots eines Superframes Knoten zum Senden und Empfangen zugeordnet werden. Dabei können Slots exklusiv zugeordnet werden oder
mehrere Knoten konkurrieren um einen Slot. Dadurch, dass exklusive Reservierungen möglich
sind, kann ein zuverlässiger Medienzugriff ohne Kollisionen sichergestellt werden, was für den
Betrieb in Produktionsanlagen entscheiden ist.
Ebenfalls um eine zuverlässigere Übertragung zu erzielen definiert WirelessHART ein Channel
Hopping auf MAC-Ebene (ähnlich dem Channel Hopping in IEEE 802.15.4e). Ein Zeitslot eines
Superframes wird dadurch immer wieder einem anderen Kanal zugeordnet, sodass Störungen
auf einem Kanal nicht wiederholt die selbe Übertragung stören. Indem im gleichen Zeitslot auf
unterschiedlichen Kanälen gleichzeitig kommuniziert wird, kann außerdem die Gesamtdatenrate des Netzwerks erhöht werden. Kanäle, die durch andere Systeme wie WLAN gestört werden,
können durch eine Channel Blacklist manuell durch den Netzwerk-Administrator vom Channel
Hopping ausgeschlossen werden.
Im Gegensatz zu ZigBee und dem IEEE 802.15.4 MAC Layer kennt WirelessHART keine Knotentypen mit reduziertem Funktionsumfang, wie RFDs bei IEEE 802.15.4 bzw. ZigBee end devices.
Bei WirelessHART müssen alle Knoten volle Routing-Funktionalität bereitstellen. Damit sind
WirelessHART-Netze stets Mesh-Netze, eine Beschränkung auf eine Stern- oder Stern-MeshTopologie ist nicht möglich. Durch die stark vermaschte Netzstruktur sollen WirelessHARTNetze besonders zuverlässig sein, denn wenn beispielsweise ein Knoten ausfällt, können alternative Routen gewählt werden. Um dies effizient zu ermöglichen, wird das sogenannte GraphRouting eingesetzt, wobei eine berechnete Route nicht nur einen Pfad enthält, sondern eine Liste
alternativer Pfade.
Die Anwendungsebene von WirelessHART übernimmt das HART-Protokoll wie es auch in drahtgebundenen HART-Systemen zum Einsatz kommt. Es basiert auf Kommandos, welche teilweise von allen HART kompatiblen Geräten unterstützt werden müssen, teilweise auf bestimmte
Geräte-Klassen zugeschnitten oder auch gerätespezifisch sein können.
Eine detailliertere Betrachtung von WirelessHART im Vergleich mit ISA 100.11a erfolgt in Kapitel 3.2.
26
Kapitel 3. State of the Practice
3.1.7 ISA 100.11a
Die International Society of Automation (ISA) [ISA] ist eine ursprünglich amerikanische, nun
internationale, Organisation mit aktuell über 30.000 Mitgliedern weltweit1 , die Standards, Zertifizierungen, Ausbildungen und Publikationen rund um das Thema Automatisierungstechnik
anbietet [ISA14a]. Im Jahr 2005 gründete ISA das ISA 100 Komitee mit dem Ziel, Standards im
Bereich drahtloser Systeme für die Automatisierungs- und Regelungstechnik zu schaffen. Das
Komitee besteht aus über 400 Experten im Bereich Automatisierung aus über 250 Firmen, wobei Endanwender explizit eingeschlossen wurden und deren Interessen im Vordergrund stehen
sollen [ISA08]. Der erste und bisher wichtigste vom ISA 100 Komitee im Jahr 2009 verabschiedete Standard ist ISA 100.11a. Er definiert ein flexibles, drahtloses Kommunikationsprotokoll für
industrielle Automatisierungssysteme und wurde 2012 als IEC 62734 [IEC12] genau wie WirelessHART zu einem offenen internationalen IEC-Standard. Eine weitere Bemühung des ISA 100
Komitees betraf die Koexistenz von WirelessHART und ISA 100.11a Systemen bzw. die Annäherung beider Standards (ISA 100.12 Sub-Komitee), welche allerdings nicht zu einer Einigung
führte [IEE13a].
Aktuell führt die Website des ISA 100 Wireless Compliance Institute [ISA14c], einer Organisation des von ISA gegründeten Automation Standards Compliance Institutes (ASCI) [ISA14b],
knapp 30 ISA 100.11a kompatible Geräte [ISA14d].
Genau wie WirelessHART und ZigBee übernimmt ISA 100.11a den Physical Layer von IEEE
802.15.4 und nutzt dabei genau wie WirelessHART lediglich die 2.450 MHz Frequenz (DSSS). Die
maximal mögliche Datenrate beträgt damit ebenfalls 250 kbit/s, die Reichweite im Innenbereich
ca. 30 m und im Außenbereich 70 m.
Der MAC Layer von ISA 100.11a übernimmt Teile des IEEE 802.15.4 MAC Layers für das Senden und Empfangen von Rahmen. Allerdings werden viele Funktionen des IEEE 802.15.4 MAC
Layers nicht verwendet. Beispielsweise verbinden sich ISA 100.11a Geräte nie mit einem Koordinator im Sinne von IEEE 802.15.4 und sämtliche Funktionen, die FFDs betreffen, werden
nicht genutzt. Stattdessen wird der IEEE 802.15.4 MAC Layer mit einer MAC-Erweiterung um
diverse Funktionen ergänzt. Beispielsweise werden Acknowledgements um Zeitinformation ergänzt, um eine Uhrenkorrektur durchzuführen. Allerdings wird dazu nicht der IEEE 802.15.4
MAC Layer verändert, sondern es werden Acknowledgements in der MAC-Erweiterung umgesetzt und als IEEE 802.15.4 Datenrahmen gesendet. Die Acknowledgement-Funktion von IEEE
802.15.4 bleibt also unbenutzt. Ebenso wird die Backoff-Funktionalität zur Neuübertragung aus
IEEE 802.15.4 nicht verwendet, sondern eine erweiterte Methode zur Neuübertragung eingesetzt. Diese ermöglicht es nicht nur, den Rahmen mit einer zeitlichen Verzögerung zu senden,
sondern ggf. auch zu einem anderen Knoten oder auf einem anderen Kanal.
Genau wie WirelessHART implementiert auch ISA 100.11a ein Channel Hopping auf MACEbene und kombiniert so TDMA mit FDMA. Dabei erlaubt es anders als WirelessHART allerdings die Nutzung aller 16 Kanäle, die IEEE 802.15.4 auf 2,4 GHz spezifiziert. Neben manuell
konfigurierten Channel Blacklists, wie sie WirelessHART kennt, setzt ISA 100.11a optional Adaptive Channel Blacklisting ein, bei dem jedes Gerät autonom problematische Kanäle blacklisten
kann.
Der TDMA-Mechanismus von ISA 100.11a teilt die Zeit genau wie WirelessHART in Superframes auf, welche aus exklusiv reservierten Zeitslots bestehen, in denen jeweils eine Übertragung
stattfinden kann. Anders als WirelessHART spezifiziert ISA 100.11a jedoch keine feste Länge ei1 Im
Rahmen dieser Masterarbeit wurde ich selbst studentisches Mitglied von ISA.
3.1. Überblick über existierende Standards
27
nes Zeitslots, sondern erlaubt es, die Zeitslotdauer (für alle Zeitslots) zu konfigurieren. Eine Erhöhung der Zeitslotdauer ist vor allem dann nötig, wenn sogenannte Dualcast-Übertragungen
genutzt werden sollen: Bei einer solchen Übertragung wird ein Rahmen an zwei Empfängerknoten gleichzeitig übertragen, und beide Knoten bestätigen nacheinander den Empfang mit einem
Acknowledgement. Da hierfür ein 10 ms Zeitslot nicht ausreicht, muss eine längere Zeitslotdauer gewählt werden, wenn diese Funktion genutzt werden soll.
Zusätzlich zu exklusiv reservierten Zeitslots, die eine wettbewerbsfreie Übertragung ermöglichen, bietet ISA 100.11a mit Slow Hopping Perioden auch die Möglichkeit, wettbewerbsbasierten
Zugriff zu erlauben. In einer Slow Hopping Periode werden die Kanäle nicht so schnell gewechselt wie sonst, damit mittels CSMA/CA wettbewerbsbasierter Zugriff möglich wird. Welche
Knoten am Wettbewerb in einer Slow Hopping Periode teilnehmen, kann konfiguriert werden.
Seltene ereignisbasierte Nachrichten sollen vom Slow Hopping Mechanismus profitieren, ohne
dass zu viele exklusive Zeitslots für sie konfiguriert werden müssen. Da allerdings wettbewerbsbasierter Zugriff keine zuverlässigen Übertragungen garantiert, ist er nur für Datenströme mit
einer Best-Effort Dienstgüte geeignet oder kann zusätzlich zu exklusiven Reservierungen eingesetzt werden, um die Dienstgüte über die garantierte Basisdienstgüte hinaus zu steigern.
Obwohl ISA 100.11a die FFD-Funktionen aus dem IEEE 802.15.4 MAC Layer nicht nutzt, unterscheidet es ähnlich wie ZigBee und IEEE 802.15.4 zwischen Knoten mit eingeschränktem Funktionsumfang und Knoten mit weiteren Funktionen: Sogenannte I/O Devices sind i.d.R. Aktuatoroder Sensorknoten mit eingeschränktem Funktionsumfang, die insbesondere keine RoutingFunktionalität übernehmen. Diese wird von Routern übernommen. Daneben gibt es Gateways,
System Manager, Security Manager und Backbone Router. Dabei werden Knoten nicht in Typen
eingeteilt, sondern Knoten übernehmen eine oder mehrere dieser Rollen: So kann ein Knoten
Router und I/O Device sein oder nur eines davon.
Das Routing von ISA 100.11a kennt wie WirelessHART mit Graph-Routing ein Routing-Verfahren,
bei dem alternative Pfade vordefiniert sind, auf die im Fehlerfall ausgewichen werden kann. So
soll die Redundanz erhöht und die Zuverlässigkeit des Systems verbessert werden.
Auf Anwendungsebene spezifiziert ISA 100.11a ein flexibles objektorientiertes Protokoll, erlaubt
aber auch die Tunnelung von anderen Protokollen wie beispielsweise dem HART-Protokoll.
Das ISA 100.11a Protokoll wird im Zuge des Vergleichs mit WirelessHART in Kapitel 3.2 detaillierter betrachtet werden.
3.1.8 WIA-PA
WIA-PA (Wireless Network for Industrial Automation - Process Automation) ist ähnlich wie WirelessHART und ISA 100.11a ein Standard für drahtlose Kommunikationssysteme zur ProzessAutomatisierung im Produktionsbereich. Der Standard wurde seit 2007 von der Chinese Industrial Wireless Alliance unter der Federführung des Shenyang Institute of Automation der
Chinesischen Akademie der Wissenschaften entwickelt [LLYL13]. Der Standard wurde 2009 als
internationaler Standard IEC 62601 [IEC11] angenommen. Da trotzdem recht wenige internationale Publikationen zu WIA-PA gefunden werden konnten, wird die aktuelle Bedeutung des
Standards für den internationalen Markt als gering eingeschätzt. Aus diesem Grund wird im
Rahmen dieser Arbeit nur ein grober Überblick gegeben und kein detaillierter Vergleich mit
WirelessHART und ISA 100.11a durchgeführt.
Als Physical Layer verwendet WIA-PA genau wie WirelessHART und ISA 100.11a die 2,4 GHz
DSSS-Kanäle des IEEE 802.15.4 Standards. Der MAC Layer basiert wie der von ISA 100.11a
28
Kapitel 3. State of the Practice
ebenfalls auf IEEE 802.15.4. Um eine hohe Zuverlässigkeit zu erreichen, obwohl andere Systeme
das gleiche Band nutzen, setzt WIA-PA unterschiedliche Frequency Hopping Mechanismen auf
MAC-Ebene ein [LLYL13]: Beim Adaptive Frequency Hopping wir der Kanal nur dann gewechselt,
wenn schlechte Bedingungen auf dem aktuell genutzten Kanal erkannt werden. Beim Timeslot
Hopping wird dagegen wie bei WirelessHART und ISA 100.11a der Kanal bei jedem neuen Zeitslot gewechselt, unabhängig davon, ob der bisherige Kanal gestört wurde oder nicht.
Der TDMA-Mechanismus von WIA-PA basiert stark auf IEEE 802.15.4: Er trennt Superframes
mit Beacons ab und erlaubt sowohl wettbewerbsbasierten Zugriff in der Contention Access Period
als auch exklusiven Zugriff in der Contention Free Period [ZLY09].
Ähnlich wie ISA 100.11a kennt WIA-PA unterschiedliche Knotentypen und unterscheidet zwischen Routing-Knoten und Field-Devices, die nicht routen können. Damit bildet ein WIA-PANetzwerk i.d.R. eine Stern-Mesh-Topologie. Das Routing verspricht mit redundanten Pfaden ähnlich wie das Graph-Routing in WirelessHART und ISA 100.11a eine zuverlässigere Übertragung.
3.1.9 Fazit
Die nicht speziell für den Einsatz zur Automatisierung im Produktionsbereich konzipierten
drahtlosen Kommunikationssysteme weisen bedeutende Schwächen auf und sind daher nur
sehr eingeschränkt für diese Anwendung geeignet. Beim klassischen Bluetooth und bei WLAN
ist der Energiebedarf zu hoch, um batteriebetriebene Knoten mit einer praktikablen Akkulebensdauer zu ermöglichen. Bluetooth Low Energy ermöglicht zwar sinnvollen Batteriebetrieb,
allerdings keine Multi-Hop-Topologien, womit auf Grund der geringen Reichweiten nur kleine
Netzwerke möglich sind. IEEE 802.15.4 ist eine geeignete Basistechnologie für den Einsatzbereich, spezifiziert aber Netzwerk- und Anwendungsebene nicht und ist daher ohne ein darauf aufbauendes Protokoll unzureichend. Außerdem fehlte lange Zeit eine Unterstützung für
Channel Hopping auf MAC-Ebene. Diese Schwäche überträgt sich auf ZigBee, welches die IEEE
802.15.4-2003 MAC-Ebene, welche noch kein Channel Hopping enthält, übernimmt, ohne ein
eigenes Channel Hopping hinzuzufügen. Außerdem ist das reaktive Routingverfahren von ZigBee für den Einsatz in Netzwerken im Produktionsbereich nicht optimal. UWB verspricht als
Basistechnologie für den Einsatz im Produktionsbereich wichtige Vorteile. Allerdings ist die
Marktdurchdringung noch zu gering und es fehlen Protokolle auf höherer Ebene, welche aus
den Vorteilen von UWB einen Nutzen ziehen.
WirelessHART stellt als erstes Protokoll speziell für drahtlose Kommunikationssysteme im Produktionsbereich einen bedeutenden Fortschritt gegenüber den unspezifischeren Protokollen dar.
Es ermöglicht eine zuverlässige Übertragung in Multi-Hop-Netzwerken und batteriebetriebene
Knoten. Kompatible Hardware ist verfügbar und zeigt, dass WirelessHART praxistauglich ist.
ISA 100.11a bietet ebenfalls zuverlässige Übertragung in Multi-Hop-Netzwerken mit Unterstützung für batteriebetriebene Knoten. Durch die Unterscheidung von unterschiedlichen KnotenRollen erlaubt es ISA 100.11a im Gegensatz zu WirelessHART, einfachere Sensor- und Aktuatorknoten ohne Routing-Funktionalität einzusetzen und so zusätzlich Energie einzusparen. Insgesamt ist ISA 100.11a flexibler als WirelessHART, wie sich im detaillierten Vergleich in Kapitel 3.2
noch genauer herausstellen wird. Der chinesische Standard WIA-PA bietet ähnliche Funktionalitäten wie WirelessHART und ISA 100.11a, kann allerdings auf Grund unzureichender Informationen hier nicht näher betrachtet werden.
3.2. Vergleich von WirelessHART und ISA 100.11a
29
3.2 Vergleich von WirelessHART und ISA 100.11a
Nachdem bereits ein Überblick über WirelessHART und ISA 100.11a gegeben wurde, sollen die
beiden Standards nun im Detail verglichen werden. Dabei werden die einzelnen Ebenen der
Protokolle vom Physical Layer bis zum Application Layer untersucht und jeweils die Gemeinsamkeiten und Unterschiede herausgestellt.
3.2.1 Physical Layer
Auf dem Physical Layer übernehmen beide Standards den Physical Layer von IEEE 802.15.4
mit kleinen Änderungen. Dabei beschränken sie sich auf das 2,45 GHz Band mit DSSS und
Q-PSK-Modulation, die eine Brutto-Datenrate von 250 kbit/s und 16 überlappungsfreie Kanäle (11-26) bietet (s. Tab. 3.3). Die von IEEE 802.15.4-2006 spezifizierten 868 MHz bzw. 915 MHz
Frequenzbänder sowie der später hinzugefügte UWB-basierte Physical Layer können in beiden
Standards bisher nicht genutzt werden. Da nur die Kanäle 11-25 weltweit frei genutzt werden
dürfen, verbietet WirelessHART generell die Nutzung von Kanal 26, ISA 100.11a dagegen erlaubt die Nutzung optional. Darüber hinaus ergänzen die Standards einige Anforderungen an
den Physical Layer und schränken teilweise Funktionen ein. Beispielsweise fordert ISA 100.11a
vom Transceiver, dass er in weniger als 200 µs den Kanal wechseln kann. Da der ursprüngliche
IEEE 802.15.4 Standard im Gegensatz zu ISA 100.11a und WirelessHART keinen Kanalwechsel
vorgesehen hatte, wird diese Anforderung zusätzlich formuliert. Außerdem wird beispielsweise
verlangt, dass der CSMA Mechanismus optional ist und von den oberen Ebenen deaktiviert werden kann. Dies wird genutzt, um die Übertragung in exklusiv reservierten Slots direkt beginnen
zu können, ohne zunächst das Medium abhören zu müssen.
Für künftige Versionen des ISA 100.11a Standards wird explizit die Möglichkeit erwähnt, dass
weitere Physical Layer hinzugefügt werden.
3.2.2 MAC Layer
Wie bereits erwähnt, übernimmt ISA 100.11a Teile des IEEE 802.15.4 MAC Layers, wohingegen
WirelessHART einen komplett eigenen MAC Layer spezifiziert. Allerdings nutzt ISA 100.11a
nur die grundlegenden MAC-Funktionalitäten zum Senden eines Rahmens. Nicht einmal einfache Funktionen, wie das Bestätigen eines erfolgreichen Empfangs per Acknowledgement, wird
aus dem IEEE 802.15.4 Standard übernommen. Stattdessen wird ein eigener AcknowledgementMechanismus unter Verwendung von normalen IEEE 802.15.4 Datenrahmen umgesetzt. Mit den
MAC-Erweiterungen, die ISA 100.11a einführt, um den IEEE 802.15.4 MAC Layer zu ergänzen,
ähneln sich die Funktionsweisen der MAC Layer von WirelessHART und ISA 100.11a stark.
Der Medienzugriff wird bei beiden Standards durch TDMA kombiniert mit FDMA geregelt,
wie es in Abb. 3.1 grafisch veranschaulicht wird. Die Zeit wird dabei in Superframes aufgeteilt,
die periodisch wiederkehren. Superframes sind ihrerseits in Zeitslots aufgeteilt, wobei die 15
(WirelessHART) bzw. optional 16 (ISA 100.11a) Kanäle parallel in Zeitslots aufgeteilt werden.
Außerdem können Knoten, die weit genug voneinander entfernt sind, im selben Zeitslot den
selben Kanal nutzen (SDMA).
In jedem Zeitslot kann auf jedem Kanal maximal eine Übertragung inkl. Acknowledgement
stattfinden. Die zeitliche Aufteilung eines Zeitslots in Übertragung des eigentlichen Rahmens
und des Acknowledgements wird in Abb. 3.2 veranschaulicht.
30
Kapitel 3. State of the Practice
Durchlauf n-1
Durchlauf n
Durchlauf n+1
Kanal 11
Kanal 12
Zeitslot
Kanal 25
Superframe
Abbildung 3.1.: TDMA kombiniert mit FDMA bei WirelessHART und ISA 100.11a
Sender
wartet auf
ACK-Beginn
Sender beginnt
Übertragung
Sender TX
Empf. ACK
Zeitslot
Empfänger
wartet auf
Übertragungsbeginn
Empfänger beginnt
ACK-Übertragung
Abbildung 3.2.: Zeitlicher Verlauf eines Zeitslots bei WirelessHART und ISA 100.11a (nach [Eur10])
Der Network Manager (WirelessHART) bzw. System Manager (ISA 100.11a), ein zentraler Verwaltungsknoten, bestimmt, welche Knoten in einem bestimmten Zeitslot auf einem bestimmten Kanal senden und welche empfangen. Diese Zuordnung gilt für jede Wiederholung des
Superframes, zu dem sie gehört. Daher bestimmt die Anzahl Zeitslots in einem Superframe
das Intervall, indem eine Reservierung wiederkehrt. Auf einem Gerät können zudem mehrere
Superframes konfiguriert sein, die sich periodisch wiederholen. Die Anzahl Zeitslots in einem
Superframe sowie die Zuordnung der Zeitslots zu Knoten können sich je nach Superframe unterscheiden. ISA 100.11a erlaubt es zudem, dass ein Gerät zeitgleich an mehreren Superframes
teilnimmt, wodurch ermöglicht werden soll, dass unterschiedliche Kommunikations-Schedules
gleichzeitig bedient werden können. Da es dadurch dazu kommen kann, dass Zuordnungen
mehrerer Superframes überlappen, werden derartige Konflikte über Prioritäten aufgelöst.
Ein Zeitslot wird im Normalfall genau einem Sender und einem Empfänger zugeordnet. Durch
eine solche exklusive Reservierung werden Kollisionen verhindert und eine deterministische Übertragung sichergestellt2 .
Neben exklusiv reservierten Unicast-Übertragungen erlauben beide Standards auch MulticastÜbertragungen, bei denen einem Zeitslot ein Sender-Knoten und mehrere Empfänger-Knoten
zugeordnet werden. In diesem Fall werden keine Acknowledgements gesendet, sodass der Sender nicht feststellen kann, ob die Nachricht fehlerfrei übertragen wurde.
ISA 100.11a erlaubt darüber hinaus sog. Duocast-Übertragungen mit einem Sender und zwei Empfängern, die nacheinander den fehlerfreien Empfang per Acknowledgement bestätigen. Der
zeitliche Verlauf eines Duocast-Zeitslots ist in Abb. 3.3 dargestellt. Der erste Empfänger einer
Duocast-Übertragung ist in der Zieladresse des Rahmens angegeben und weiß daher, dass er
zuerst sein Acknowledgement senden muss.
2 Vorausgesetzt,
dass keine externen Störquellen das Medium belegen.
3.2. Vergleich von WirelessHART und ISA 100.11a
31
Sender
wartetBauf
ACK-Beginn
Sender
wartetBauf
ACK-Beginn
SenderBbeginnt
Übertragung
SenderBTX
Empf.1BACK
Empf.2BACK
Zeitslot
Empfänger
wartenBauf
Übertragungsbeginn
EmpfängerB1Bbeginnt
ACK-Übertragung
EmpfängerB2Bbeginnt
ACK-Übertragung
Abbildung 3.3.: Ein Zeitslot bei ISA 100.11a unter Verwendung von Duocast
Duocast-Übertragungen sind für den Fall gedacht, dass ein Knoten in Reichweite von zwei sog.
Backbone-Routern ist, die das drahtlose Netz mit einem drahtgebundenen Netz verbinden. Damit dieser Knoten eine Nachricht an das Backbone weitergibt, ist es unerheblich, an welchen
der beiden Backbone-Router er die Nachricht erfolgreich übermittelt. Mit Hilfe eines Duocasts
kann er die Nachricht zeitgleich an beide Backbone-Router senden. Erhält er von mindestens
einem Backbone-Router ein Acknowledgement, war die Übertragung erfolgreich. Somit wird
die Wahrscheinlichkeit erhöht, dass die erste Übertragung zum Backbone erfolgreich verläuft,
sodass weniger Neuübertragungen nötig werden. Falls der sendende Knoten das erste Acknowledgement erfolgreich erhalten hat, muss er das zweite nicht abwarten und kann so Energie
sparen. Die Abstimmung der Backbone-Router untereinander zur Vermeidung einer doppelten
Übertragung im Backbone wird nicht vom ISA 100.11a Standard geregelt.
Das Senden eines zweiten Acknowledgements benötigt zusätzliche Zeit, daher muss bei der Verwendung von Duocasts die Länge eines Zeitslots um typischerweise 1 bis 2 ms erhöht werden.
Im Gegensatz zu WirelessHART, welches eine fixe Zeitslot-Länge von 10 ms festlegt, erlaubt
ISA 100.11a es daher, die Zeitslot-Länge innerhalb eines Superframes zu konfigurieren. Obwohl
explizit erlaubt wird, dass Superframes mit unterschiedlicher Zeitslot-Länge gleichzeitig in einem Netzwerk genutzt werden, gibt der Standard an, derartige Konfigurationen nicht näher
betrachtet zu haben, und verlangt von Geräten die Unterstützung dafür nicht. Prinzipiell kann
die Länge eines Zeitslot zwischen 0 und 62,5 ms in Schritten von 2−20 s (ca. 0,95 µs) konfiguriert
werden. Welche Längen tatsächlich möglich sind, dürfte allerdings auch vom Gerät abhängig
sein.
Neben exklusiv reservierten Slots erlauben beide Standards sog. Shared Slots, die mehreren Sendern zugeordnet werden. Hierbei sind Kollisionen nicht ausgeschlossen und daher keine deterministische Übertragung mehr sichergestellt. Ob eine Kollision aufgetreten ist, wird am Ausbleiben des Acknowledgements erkannt. Bei WirelessHART wird ein Backoff-Mechanismus eingesetzt, um die Wahrscheinlichkeit zu verringern, dass es bei Neuübertragungen erneut zu Kollisionen kommt. ISA 100.11a erlaubt es dagegen, unterschiedlichen Knoten unterschiedliche Prioritäten in einem Shared Slot zu geben, indem der Zeitpunkt, zu dem die Übertragung frühestens
beginnen darf, konfiguriert werden kann. Da das Abhören des Mediums vor dem Senden zusätzliche Zeit benötigt, kann man bei ISA 100.11a die Slotdauer hierfür erhöhen.
Eine weitere Variante des wettbewerbsbasierten Zugriffs bietet ISA 100.11a mit dem Slow Hopping Mechanismus. Eine Slow Hopping Periode ist dabei eine Zeitspanne, die sich über mehrere
Zeitslots erstreckt. Innerhalb der Slow Hopping Periode müssen Sender die Zeitslot-Grenzen
nicht beachten und können prinzipiell jederzeit beginnen zu senden. Sie müssen lediglich die
Belegung des Mediums zunächst per CCA prüfen. Die einer Slow Hopping Periode zugewiesenen Empfänger müssen während der gesamten Periode das Medium abhören, was zu einem
erhöhten Energiebedarf führt. Als Motivation für diesen Mechanismus nennt der ISA 100.11a
32
Kapitel 3. State of the Practice
Standard insbesondere, dass es so möglich wird, Knoten mit einer durch lange Schlafzeiten bedingten schlechteren Zeitsynchronisation das Senden zu ermöglichen. Da die Knoten sich innerhalb einer Slow Hopping Periode nicht genau an Zeitslot-Grenzen halten müssen, reicht eine
ungenauere Uhrensynchronisation zum Senden aus, ohne dass die Gefahr besteht, in für andere Knoten exklusiv reservierten Zeitslots zu senden. Der Wechsel zwischen Slow Hopping und
Slotted Hopping ist möglich und wird als Hybrid Hopping bezeichnet.
Da beide Standards slotted TDMA zum Medienzugriff einsetzen, ist eine genaue Tick- oder Zeitsynchronisation erforderlich. Dazu senden beide Standards mit sämtlichen regulären Rahmen
(sowohl Daten- als auch Acknowledgement-Rahmen) einen Zeitstempel, anhand dessen eine
Uhrenkorrektur vorgenommen wird. Es werden also nicht wie beispielsweise im von ZigBee
übernommenen IEEE 802.15.4 MAC Layer besondere Beacon-Rahmen zur Zeitsynchronisation
gesendet.
Wie bereits erwähnt, setzen sowohl WirelessHART als auch ISA 100.11a ein Channel Hopping ein,
um die Zuverlässigkeit der Übertragung zu erhöhen. Dabei verschiebt sich mit jeder Wiederholung eines Superframes die Kanalzuordnung nach einem vom Network bzw. System Manager
vorgegebenen Muster, wie es in Abb. 3.4 beispielhaft dargestellt wird. Falls ein Kanal häufiger
gestört wird als andere, wird dadurch nicht immer wieder die gleiche Übertragung gestört. Es
erhöht sich also die Wahrscheinlichkeit, dass eine Übertragung im nächsten Superframe erfolgreich ist. Falls bestimmte Kanäle generell unzuverlässig sind, beispielsweise weil ein WLANNetzwerk diese Frequenzen nutzt, so können diese durch Blacklisting aus dem Channel Hopping
ausgeschlossen werden. Bei WirelessHART muss dazu der Netzwerkadministrator problematische Kanäle manuell konfigurieren. ISA 100.11a erlaubt es darüber hinaus, dass Knoten selbstständig problematische Kanäle erkennen und diese nicht für weitere Übertragungen nutzen.
Das bedeutet aber lediglich, dass sie den Zeitslot auf diesem Kanal nicht nutzen, es wird nicht
automatisch ein Zeitslot auf einem anderen Kanal bereitgestellt. So wird zwar verhindert, dass
ISA 100.11a Geräte anderer Netzwerke wie beispielsweise WLAN dauerhaft stören, allerdings
führt dies auch dazu, dass reservierte Slots nicht genutzt werden und Übertragungen nicht oder
verzögert (auf einem anderen Kanal) stattfinden.
Durchlauf n-1
Durchlauf n
Durchlauf n+1 Durchlauf n+2
Kanal 11
Kanal 12
Kanal 13
Kanal 14
Kanal 15
Kanal 16
Superframe
Abbildung 3.4.: Channel Hopping in WirelessHART und ISA 100.11a (nach [Eur10])
3.2.3 Network Layer
Als Aufgabe des Network Layers, auch Vermittlungsschicht genannt, wird die Vermittlung von
Datenpaketen von einem Start- zu einem Zielknoten gesehen (vgl. OSI-Modell [Int94]). Dies
3.2. Vergleich von WirelessHART und ISA 100.11a
33
schließt insbesondere Routing, also das Finden eines geeigneten Pfades vom Start- zum Zielknoten, sowie ggf. Fragmentierung mit ein.
Die Aufgabe des Routings wird vom ISA 100.11a Standard aufgeteilt: Routing innerhalb eines
ISA 100.11a-Funknetzwerks wird nicht wie vom OSI-Modell beschrieben vom Network Layer
übernommen, sondern bereits von der darunter liegenden Schicht, dem sog. Data Link Layer,
der auch die MAC-Schicht enthält. Der eigentliche Network Layer ist nur für das Routing über
ein Backbone, beispielsweise in ein drahtgebundenes Netzwerk hinein, zuständig. Das Backbone und daran angebundene Netze werden allerdings im Rahmen des ISA 100.11a Standards
nicht genauer definiert. Somit übernimmt der Network Layer in erster Linie die Übersetzung
von kurzen 16 Bit Adressen in lange 128 Bit Adressen, die von der Anwendung und über das
Backbone hinaus genutzt werden können, sowie die Fragmentierung von Datenpaketen, die
nicht in einen Rahmen der darunter liegenden Schicht passen.
Obwohl ISA 100.11a das Routing innerhalb des Funknetzwerks nicht als Aufgabe des Network
Layers spezifiziert, wird das im Data Link Layer spezifizierte Routing im Folgenden im Vergleich zum Routing von WirelessHART betrachtet, welches wie üblich im Network Layer spezifiziert ist. Bei WirelessHART ist der Network Layer allerdings nicht nur für das Routing innerhalb des Funknetzwerks zuständig, sondern muss auch das Routing über Gateways hinweg in
ein drahtgebundenes HART-Netzwerk unterstützen.
Beide Standards beschreiben zwei unterschiedliche Routing-Verfahren: Das Source- und das
Graph-Routing. Für beide Verfahren werden die Routen vom System- bzw. Network-Manager
vorberechnet und an die Knoten verteilt, welche diese speichern und bei Bedarf einsetzen. Der
Network- bzw. System-Manager bekommt bei beiden Standards von den Knoten regelmäßig
Reports geschickt, in denen die Qualität der Links bewertet wird. Basierend auf diesen Informationen kann er bei Bedarf Routen neu berechnen und verteilen.
Beim Source-Routing wählt der Startknoten eine der gespeicherten Routen zum Zielknoten und
vermerkt sie anhand ihrer ID im zu übertragenden Paket. Alle Knoten entlang der Route können
anhand dieser ID die Route nachschlagen und so bestimmen, an welchen Knoten sie das Paket
weiterleiten müssen. Ist die Übertragung auf einem der in der Route verwendeten Links nicht
möglich, geht das Paket verloren.
Eine zuverlässigere Übertragung, die auch bei einzelnen gestörten Links funktioniert, bietet das
Graph-Routing. Eine Graph-Route ist eine Teilmenge der vorhandenen Links des Netzwerks und
wird ebenfalls anhand einer ID identifiziert. Genau wie Source-Routes werden Graph-Routes
vom Network- bzw. System-Manager berechnet und an die Knoten im Netzwerk verteilt. Für
ein Paket, dass per Graph-Routing verschickt wird, hat jeder Knoten, der das Paket weiterleitet,
eine Menge möglicher Folgeknoten. Wird die Übertragung zu einem Folgeknoten gestört, kann
er einen anderen Folgeknoten aus der Menge auswählen. Eine Graph-Route definiert also nicht
nur einen Pfad vom Start- zum Zielknoten, sondern eine Reihe unterschiedlicher Pfade, die je
nach Netzsituation dynamisch genutzt werden.
Fragmentierung wird von WirelessHART auf dem Network Layer nicht unterstützt. Allerdings
bietet der Application Layer mit sogenannten Block Transfers Funktionalität zur Fragmentierung
und Wiederzusammenfügung von großen Datenpaketen.
3.2.4 Transport Layer
Auf dem Transport Layer unterstützt WirelessHART anders als ISA 100.11a optional Acknowledgements zu Transaktionen, also die Bestätigung des Empfangs einer Übertragung über meh-
34
Kapitel 3. State of the Practice
rere Hops hinweg. ISA 100.11a stellt dagegen nur einen verbindungslosen Dienst bereit, der auf
dem User Datagram Protocol (UDP) [Pos80] über IPv6 [DH98] basiert. Darüber hinaus nutzt
der Transport Layer von ISA 100.11a Funktionen zur Ende-zu-Ende-Verschlüsselung, zur Integritätsprüfung und zur Kompression aus dem 6LoWPAN Standard [HT11]. In WirelessHART
wird die Aufgabe der Ende-zu-Ende-Verschlüsselung zwar vom Network Layer übernommen,
um einen besseren Vergleich mit ISA 100.11a zu ermöglichen, aber hier besprochen.
Beide Standards verwenden zur Verschlüsselung AES-CCM-128. Dabei kommen unterschiedliche symmetrische Schlüssel zum Einsatz, die vom Network- bzw. System-Manager an die Knoten verteilt werden. Der sichere Beitritt eines neuen Knotens zum Netz wird gewährleistet, indem neue Knoten über einen speziellen Join Key verfügen müssen. ISA 100.11a bietet allerdings
optional die Möglichkeit, dass sich neue Knoten über einen Global Key anmelden können, einem allgemein bekannten Schlüssel, der keine Sicherheit bietet. So am Netz angemeldete Knoten können keine Ende-zu-Ende-Verschlüsselung nutzen. Diese Option ermöglicht es Herstellern, einfachere Knoten mit geringerem Sicherheitsstandard zu entwickeln. Die Ende-zu-EndeVerschlüsselung der Kommunikation zwischen zwei Knoten wird mit Session Keys, die für jede
paarweise Kommunikation unterschiedlich sind, durchgeführt. Neben symmetrischen Schlüsseln unterstützt ISA 100.11a (anders als WirelessHART) optional auch asymmetrische Verschlüsselung.
3.2.5 Application Layer
Der Application Layer von WirelessHART übernimmt prinzipiell den des drahtgebundenen
HART-Protokolls und ist damit zu HART kompatibel. Dies vereinfacht die Verknüpfung von
drahtgebundenen HART-Geräten mit drahtlosen WirelessHART-Geräten. Sämtliche Kommunikation erfolgt über eine Reihe von definierten Kommandos, die sich in folgende Klassen aufteilen lassen [CNM10]:
• Universal Commands sind Basis-Kommandos, die von allen HART-kompatiblen Geräten
unterstützt werden müssen.
• Common Practice Commands sind Kommandos, die von einer breiten Palette von HARTGeräten sinnvoll einsetzbar sind und daher von HART-Geräten soweit möglich unterstützt
werden sollten.
• Non-public Commands sollten nur während der Entwicklung eines HART-Geräts und nicht
im produktiven Einsatz verwendet werden.
• Wireless Commands sind Kommandos für Drahtlosknoten, die von allen WirelessHARTGeräten unterstützt werden müssen.
• Device Family Commands sind Sammlungen von Kommandos, welche die Installation und
Konfiguration von Feldgeräten unterstützen, ohne dass die Unterstützung gerätespezifischer Kommandos nötig ist.
• Device-Specific Commands sind für ein Gerät spezifische Kommandos, die vom Hersteller
definiert werden.
ISA 100.11a setzt dagegen nicht auf ein kommandobasiertes Protokoll, sondern auf ein objektorientiertes. Der Ansatz, Objekte der realen Welt als Software-Objekte zu modellieren, ist aus
der objektorientierten Programmierung bekannt und hat sich dort etabliert. Die Wahl des objektorientierten Modells für die Anwendungsschicht in ISA 100.11a begründet der Standard damit,
3.2. Vergleich von WirelessHART und ISA 100.11a
35
dass das Modell „allgemein anerkannte architektonische Prinzipien der logischen Informationstrennung unterstützt“3 . Da alle Operationen auf Objekten ausgeführt werden, muss in jeder
Nachricht zusätzlich die Kennung des zugehörigen Objekts enthalten sein. Der dadurch u.U.
entstehende Overhead von mindestens einem Byte für die Objekt-Kennung4 wird vom Standard als gerechtfertigt angesehen, um die architektonische Informationstrennung zu ermöglichen. Weiter wird argumentiert, dass eine kommandobasierte Anwendung auf das objektorientierte Modell abgebildet werden kann, indem die Kommandos als Objektmethoden beschrieben
werden.
Wie in der objektorientierten Programmierung können mehrere Objekte Instanzen der selben
Klasse sein. Auf jedem Knoten des Netzwerks können mehrere Applikationsprozesse laufen,
welche mehrere Objekte enthalten können. Ein Objekt ist dabei stets genau einem Knoten zugeordnet. Um eine Methode auf einem entfernten Objekt auszuführen, wird eine Nachricht an
den Knoten gesendet, der das Objekt enthält. Neben Methoden besitzen Objekte auch Attribute,
welche von anderen Knoten gelesen und evtl. auch geschrieben werden können. Jedes Attribut
kann einer der folgenden fünf Klassen zugeordnet werden:
• Constant: Diese Attribute dürfen ihren Wert während des Betriebs nicht verändern. Als
Beispiel wird die Seriennummer eines Drahtlosknotens genannt. Der Wert von konstanten
Attributen soll erhalten bleiben, wenn ein Gerät neu gestartet, vom Strom getrennt oder
zurückgesetzt wird.
• Static: Ein statisches Attribut ändert seinen Wert selten. Eine Änderung wird normalerweise durch einen externen Auslöser hervorgerufen, beispielsweise durch ein Konfigurationswerkzeug. Als Beispiele werden u.a. Betriebsbereiche und Einheiten genannt. Die Werte
statischer Attribute sollen erhalten bleiben, wenn ein Gerät neu gestartet oder vom Strom
getrennt wird.
• Static-volatile: Dies sind statische Attribute, deren Wert nicht erhalten bleiben muss, wenn
ein Gerät neu gestartet oder vom Strom getrennt wird.
• Dynamic: Ein dynamisches Attribut kann durch das Gerät, welches das Objekt enthält,
spontan geändert werden. Als Beispiele werden Prozessvariablen, Ergebnisse von Berechnungen sowie Timer genannt. Werte dynamischer Objekte müssen nicht erhalten bleiben,
wenn ein Knoten neu gestartet oder vom Strom getrennt wird.
• Non-bufferable: Diese Attribute dürfen nicht zwischengespeichert werden, d.h. wenn der
Wert eines solchen Attributs abgefragt wird, muss er von dem Knoten abgefragt werden,
der das Objekt enthält. Es ist also nicht erlaubt, dass ein Zwischenknoten die Anfrage aus
dem Cache beantwortet. Diese Art von Attributen ist für kritische Sicherheitsinformation
oder Werte gedacht, die sich so häufig ändern, dass Cachen nicht sinnvoll ist.
Neben nativen ISA 100.11a Applikationen bietet der Standard Unterstützung für das Tunneling anderer Protokolle. Dazu existiert ein spezieller Prozess, der einen oder mehrere TunnelingObjekte enthalten kann und Unterstützung zur Protokoll-Übersetzung bereitstellt. Darüber hinaus schlägt der Standard vor, dass andere Protokoll-Konsortien wie die HART Communication
Foundation ein Mapping von ihrem Protokoll auf das native ISA 100.11a Anwendungsprotokoll
definieren, sodass eine Anwendung beispielsweise zunächst im HART-Protokoll entworfen und
dann auf das ISA 100.11a-Protokoll abgebildet wird.
3 Eigene
Übersetzung aus [ISA11]. Originalwortlaut: „The object model supports well accepted architectural principles of logical information separation.“
4 Objekt-Kennungen können mit mindestens 4 und maximal 16 Bit kodiert werden, da stets das Quell- und das
Zielobjekt angegeben wird, ergibt sich so ein Mindest-Overhead von einem Byte.
36
Kapitel 3. State of the Practice
3.2.6 Fazit
Die beiden Standards haben sehr viele Gemeinsamkeiten, unterscheiden sich allerdings im Detail teilweise deutlich. Die Gemeinsamkeiten beginnen bei dem Physical Layer, den beide auf
IEEE 802.15.4 aufbauen. Daraus ergibt sich, dass beide Standards dasselbe 2,4 GHz Band nutzen, die selbe Bruttodatenrate von 250 kbit/s sowie die selbe Reichweite von ca. 30 m im Innenraum und 70 m im Außenbereich aufweisen. Auf MAC-Ebene kombinieren beide Standards TDMA mit FDMA und nutzen Channel Hopping sowie Channel Blacklisting zur ZuverlässigkeitsSteigerung. Beide Standards setzen auf Mesh-Topologien und nutzen das Source- bzw. GraphRouting-Verfahren.
Bei den Unterschieden zeigt sich generell, dass WirelessHART mehr eindeutige Vorgaben macht,
wohingegen ISA 100.11a mehr Flexibilität zulässt. Auf MAC-Ebene erlaubt ISA 100.11a beispielsweise eine konfigurierbare Slotlänge, wohingegen WirelessHART diese mit 10 ms fest vorgibt. Außerdem bietet ISA 100.11a mit Duocast-Übertragungen und Slow-Hopping Funktionen,
die WirelessHART nicht bietet. Während WirelessHART keine Unterscheidung zwischen eingeschränkten Knoten und Knoten mit vollem Funktionsumfang erlaubt, können ISA 100.11a
Geräte beispielsweise auf volle Routing-Funktionalität verzichten oder keine Unterstützung für
Ende-zu-Ende-Verschlüsselung bieten. Damit bietet ISA 100.11a die Möglichkeit, einfachere und
damit billigere bzw. batteriebetriebene Knoten zu entwickeln. Auf dem Transport Layer versucht
ISA 100.11a mit UDP, IPv6 und 6LoWPAN andere offene Standards zu integrieren, um eine Interoperabilität mit anderen Systemen zu erleichtern. WirelessHART dagegen zielt auf eine möglichst gute Kompatibilität zu drahtgebundenen HART-Geräten ab. Dies zeigt sich vor allem auf
dem Application Layer, der bei WirelessHART auf dem drahtgebundenen HART-Protokoll basiert, wohingegen ISA 100.11a ein möglichst flexibles objektorientiertes Protokoll definiert und
dabei auch die Möglichkeit vorsieht, andere Protokolle wie das HART-Protokoll zu tunneln.
Prinzipiell ist die größere Flexibilität von ISA 100.11a aus Anwendersicht sicher wünschenswert. Allerdings führt die höhere Flexibilität bei der Installation des Drahtlosnetzwerks auch
zu einem höheren Konfigurationsaufwand, wohingegen WirelessHART-Systeme eher nach dem
Plug & Play Prinzip schnell und einfach einsetzbar sind. Darüber hinaus könnte die hohe Flexibilität dazu führen, dass Geräte-Hersteller zunächst nur einen eingeschränkten Umfang implementieren. Dies könnte zum einen bedeuten, dass die Vorteile von ISA 100.11a nicht nutzbar
werden, zum anderen, dass unterschiedliche Hersteller einen unterschiedlichen Umfang des
Standards umsetzen und daher Hardware nicht voll kompatibel ist.
Da nicht absehbar ist, dass einer der beiden Standards sich durchsetzt und den anderen verdrängt, müssen Anwender abwägen, ob sie die höhere Flexibilität von ISA 100.11a bevorzugen
bzw. benötigen oder die einfachere Inbetriebnahme von WirelessHART. In der Praxis wird die
Entscheidung oft dadurch beeinflusst sein, welche Hardware im gegebenen Anwendungsbereich verfügbar ist. Da das Angebot von WirelessHART-kompatiblen Geräten immer noch größer zu sein scheint als das von ISA 100.11a-Geräten, wird dies in vielen Fällen für den Einsatz
von WirelessHART sprechen.
4. KAPITEL
Konzeption eines drahtlosen
Kommunikationssystems für den
Produktionsbereich
In Kapitel 3 wurden mit WirelessHART und ISA 100.11a zwei Standards vorgestellt, die für
den Einsatz als drahtloses Kommunikationssystem im Produktionsbereich entwickelt wurden.
In diesem Kapitel wird in Hinblick auf die in Kapitel 2 formulierten Anforderungen ein Konzept
für ein neues drahtloses Kommunikationssystem entworfen.
Das Konzept wird nicht nur in der Theorie entworfen, sondern auch, teilweise im Rahmen dieser
Arbeit (s. Kapitel 5), teilweise im Rahmen anderer Arbeiten, für reale Hardware implementiert.
Daher wird zunächst kurz die eingesetzte Hardware beschrieben. Anschließend werden die unterschiedlichen Lösungsmöglichkeiten auf den einzelnen Schichten des Systems betrachtet, ihre
Vor- und Nachteile untersucht und jene Alternativen ausgewählt, die am besten zur Erfüllung
der gegebenen Anforderungen beitragen. Abschließend werden die getroffenen Entscheidungen
zusammengefasst.
4.1 Eingesetzte Hardware
Zum Einsatz kommt die von Intel entwickelte Imote 2-Plattform [Cro09]. Abbildung 4.1 zeigt
ein Foto von Ober- und Unterseite dieses Sensorknotens. Auf der Oberseite ist der von Intel
entwickelte PXA271-Prozessor mit ARM-kompatibler XScale-Architektur zu sehen. Auf der Unterseite ist der von Chipcon entwickelte CC2420-Transceiver [Chi07] verbaut, über den der Knoten drahtlos mit anderen kommunizieren kann. Dieser Transceiver ist für die Übertragung von
Rahmen nach dem IEEE 802.15.4-Standard auf dem 2,4 GHz Band ausgelegt. Der Physical Layer
sowie Teile des MAC Layers sind direkt in Hardware integriert. Auf den Knoten können Sensorboards aufgesteckt werden, welche Sensoren, beispielsweise für Temperatur oder Licht, besitzen. Außerdem ist es möglich, über GPIO (General Purpose Input Output), SPI (Serial Peripheral Protocol) oder I²C (Inter-Integrated Circuit) weitere Sensoren mit dem Board zu verbinden. Die Stromversorgung des Knotens kann über USB oder über aufgesteckte Batterie- bzw.
Akku-Boards erfolgen. Die Abmessungen der Platine betragen ohne aufgesteckte Sensor- oder
Batterie-Boards 48 mm x 36 mm x 9 mm, das Gewicht 12 g. Damit erfüllt die Hardware die in
Kapitel 2.8 formulierten Anforderungen an Größe und Gewicht.
38
Kapitel 4. Konzeption
(a) Oberseite mit PXA271-Prozessor (rechts)
(b) Unterseite mit CC2420-Transceiver (Mitte) und
Antenne (links)
Abbildung 4.1.: Imote 2-Sensorknoten
4.2 Protokoll-Architektur
Wie bei Kommunikationsprotokollen üblich, wird das hier entwickelte Protokoll in einer Schichtenarchitektur aufgebaut. Die einzelnen Schichten sind in Abb. 4.2 veranschaulicht. Die unteren
drei Schichten (Physical Layer, MAC Layer und Network Layer) entsprechen ähnlich wie bei WirelessHART und ISA 100.11a in etwa den unteren drei Schichten des OSI Referenz-Modells für
Netzwerkprotokolle [Int94]. Die darüber liegende Schicht wird als Middleware Layer bezeichnet.
Sie stellt die Schnittstelle zur Anwendung dar und bietet der Anwendung einen dienstorientieren Kommunikationsansatz, wie er in den Anforderungen gefordert wurde (s. Kapitel 2.6). Sie
erfüllt damit unter anderem Funktionalitäten, die im OSI-Modell der Transport- und Sitzungsschicht zugeschrieben werden. Die Anwendung selbst ist nicht Teil des Protokolls und wird
daher hier nicht genauer betrachtet.
Application Layer
Middleware Layer
Network Layer
MAC Layer
Physical Layer
Abbildung 4.2.: Schichtenarchitektur des konzipierten Protokolls
Im Folgenden werden für die unterschiedlichen Schichten die möglichen Alternativen beschrieben und bewertet. Ausgewählt wird schließlich die Lösungsmöglichkeit, die am ehesten dazu
beiträgt, die in Kapitel 2 formulierten Anforderungen zu erfüllen. Dort, wo eine andere Lösung
gewählt wird als bei WirelessHART bzw. ISA 100.11a, werden die Unterschiede betrachtet.
4.2.1 Physical Layer
Obwohl der CC2420-Transceiver den Einsatz des IEEE 802.15.4 Physical Layers bereits vorgibt,
betrachten wir kurz auch mögliche Alternativen und deren Vor- und Nachteile.
4.2. Protokoll-Architektur
39
Der Physical Layer von IEEE 802.15.4 wurde bereits in Kapitel 3.1.3 näher beschrieben. Er ist vor
allem deshalb für drahtlose Kommunikationssysteme im Produktionsbereich geeignet, weil er
einen sinnvollen Batteriebetrieb ermöglicht. Nur so können alle Vorteile eines drahtlosen Kommunikationssystems gegenüber einem drahtgebundenen ausgenutzt werden. Andere Standards
wie IEEE 802.11 (WLAN) oder IEEE 802.15.1 (Bluetooth) bieten zwar deutlich höhere Datenraten, scheiden aber dadurch aus, dass ihr Energieverbrauch höher ist und dadurch kein Batteriebetrieb über einen längeren Zeitraum möglich ist. Mit 250 kbit/s im 2,4 GHz-Band bietet
IEEE 802.15.4 eine für diese Anwendung ausreichende Brutto-Übertragungsrate (s. Kapitel 2.2).
Die erzielte Reichweite von üblicherweise 30 m ist ebenfalls ausreichend.
Da im Produktionsumfeld eine zuverlässige Übertragung wichtig ist, bietet die Nutzung des
2,4 GHz Bandes allerdings auch Nachteile. In den letzten Jahren stieg der Absatz von WLANGeräten wie Smartphones [Staa] und Tablets [Stab] sowie die Verbreitung von öffentlichen Hotspots [Stac]. Mit der zunehmenden Verbreitung von WLAN wird das 2,4 GHz Band immer stärker genutzt und Interferenzen damit immer wahrscheinlicher. Der Einsatz von UWB verspricht
dagegen im Vergleich eine zuverlässigere Übertragung und ist mit IEEE 802.15.4a bereits seit
2007 Teil des IEEE 802.15.4-Standards (s. Kapitel 3.1.5). Allerdings ist derzeit noch keine mit
dem Imote 2 vergleichbare Hardwareplattform mit UWB-Unterstützung verfügbar, sodass der
Einsatz von UWB hier nicht möglich ist.
4.2.2 MAC Layer
4.2.2.1 Multiple Access Verfahren
Die wichtigste Aufgabe des MAC Layers ist die Regelung des Zugriffs mehrerer Knoten auf das
Funkmedium (Multiple Access). Damit es, wenn mehrere Knoten senden möchten, nicht zu Kollisionen kommt, muss der Zugriff auf das Medium kontrolliert ablaufen, wozu es unterschiedliche Verfahren gibt [SS12]:
• Time Division Multiple Access (TDMA): Der Zugriff auf das Medium erfolgt zeitlich versetzt.
Es belegt also zu einer Zeit immer nur ein Knoten das Medium. In der Regel wird die
Zeit in Zeitslots aufgeteilt und ein Zeitslot genau einem Knoten zugewiesen, der damit in
diesem Zeitslot die Möglichkeit zum Senden erhält.
• Space Division Multiple Access (SDMA): Der Zugriff auf das Medium erfolgt räumlich getrennt. Es können also zwei Knoten das Medium gleichzeitig belegen, wenn sie so weit
voneinander entfernt sind, dass keine Interferenzen auftreten können. Der Raum kann beispielsweise in Zellen aufgeteilt werden und es darf immer nur ein Knoten in einer Zelle
senden.
• Frequency Division Multiple Access (FDMA): Der Zugriff auf das Medium erfolgt auf unterschiedlichen Frequenzen. Dazu wird das Medium in Kanäle aufgeteilt und unterschiedlichen Knoten unterschiedliche Kanäle zugeordnet.
• Code Division Multiple Access (CDMA): Der Zugriff auf das Medium erfolgt mithilfe unterschiedlicher Codes. Dabei nutzen mehrere Knoten gleichzeitig dasselbe Frequenzband
und verwenden unterschiedliche Spreizcodes, anhand derer ihre Signale vom Empfänger
wieder unterschieden werden können.
Oft werden die Verfahren kombiniert. So verwenden WirelessHART und ISA 100.11a beispielsweise eine Kombination aus TDMA, FDMA und SDMA: Prinzipiell erfolgt der Zugriff auf das
40
Kapitel 4. Konzeption
Medium über reservierte Zeitslots, allerdings werden zur selben Zeit Zeitslots auf unterschiedlichen Kanälen unterschiedlichen Knoten zugeordnet (s. Abb. 3.1). Außerdem können Knoten,
die weit genug voneinander entfernt sind, im selben Zeitslot auf dem selben Kanal senden. Eine derartige Kombination erlaubt es, das Medium effizienter auszunutzen und so die Übertragungsrate des Gesamtnetzes zu verbessern.
Damit Kollisionen ausgeschlossen sind, muss die Zuweisung von Zeitslots und Kanälen exklusiv erfolgen. Dazu kann entweder eine zentrale Instanz oder ein dezentrales Zuteilungsprotokoll
wie das Bit-Map-Protokoll [Kow02] verwendet werden. Die Einhaltung der geforderten Dienstgüte kann allerdings leichter garantiert werden, wenn die Vergabe von Reservierungen zentral
kontrolliert wird.
Zur Kollisionsverhinderung kann neben exklusiven Reservierungen auch Carrier Sense Multiple
Access/Collision Avoidance (CSMA/CA) verwendet werden. Dabei hört ein Knoten das Medium
ab, bevor er zu senden beginnt und belegt es nur, wenn er es als frei erkennt. Dies hat den Vorteil,
dass keine exklusiven Reservierungen nötig sind, und kann darüber hinaus zu einer effizienteren Mediennutzung führen. Dies ist insbesondere dann der Fall, wenn statt periodischem Verkehr viel sporadischer Verkehr auf dem Medium stattfindet. Allerdings kann dieses Verfahren
Kollisionen nicht verhindern und ist daher nicht deterministisch. Hat ein Knoten das Medium
als frei erkannt, muss er vom Empfangs- in den Sendemodus wechseln und kann währenddessen das Medium nicht abhören. Beginnt in dieser Zeit ein anderer Knoten mit dem Senden oder
beginnen zwei Knoten exakt gleichzeitig, kommt es zur Kollision. Die statistische Wahrscheinlichkeit von Kollisionen kann zwar durch Verfahren wie CSMA/CA verringert, Kollisionen aber
nicht komplett ausgeschlossen werden.
Für den Einsatz als Kommunikationssystem im Produktionsbereich ist (reines) CSMA/CA daher nicht geeignet. Wie in den Anforderungen in Kapitel 2.4 beschrieben wurde, muss das Kommunikationssystem eine zuverlässige Übertragung garantieren können, was durch CSMA/CA
nicht gewährleistet werden kann. Darüber hinaus führt der Einsatz von CSMA/CA meist zu
einem höheren Energieverbrauch. Da der Empfänger nicht weiß, wann mit dem Empfang eines
Rahmens zu rechnen ist, muss er das Medium permanent abhören. Da Transceiver aber auch im
Empfangsmodus einen bedeutenden Energieverbrauch haben, wird viel Energie verschwendet,
um ein unbelegtes Medium abzuhören (Idle Listening [YHE02]) oder Rahmen zu empfangen,
die für andere Knoten bestimmt sind (Overhearing [YHE02]). Beim Einsatz von TDMA kann
dagegen wie beispielsweise bei WirelessHART oder ISA 100.11a einem Zeitslot außer einem
Sender auch der Empfänger zugeordnet werden. Dadurch, dass der Knoten nur noch während
Zeitslots im Empfangsmodus sein muss, in denen er als Empfänger zugeordnet wurde, kann
er in der restlichen Zeit im energiesparenden idle-Modus sein. Im Vergleich zu CSMA/CA ist
also ein besseres Duty Cycling möglich. Auch der Sender spart Energie, da er das Medium vor
dem Senden nicht abhören muss und Kollisionen ausgeschlossen und Neuübertragungen damit
seltener sind.
Für den Einsatz von TDMA spricht außerdem, dass beim Einsatz im Produktionsbereich der
Datenverkehr hauptsächlich aus der Übermittlung von Sensorwerten und Regelungsbefehlen
besteht (s. Kapitel 2.1). Da es sich hierbei meist um Daten handelt, die periodisch in einem festen
Intervall gesendet werden, eignen sich exklusiv reservierte Zeitslots bestens für diese Datenströme.
Die Verwendung von CDMA ist im betrachteten Einsatzbereich ebenfalls denkbar, allerdings
mit IEEE 802.15.4 nicht umsetzbar. Aus diesem und den oben genannten Gründen wird für den
4.2. Protokoll-Architektur
41
MAC Layer das TDMA-Verfahren in Kombination mit FDMA und SDMA zur Steigerung der
Gesamt-Übertragungsrate des Netzwerks gewählt.
4.2.2.2 Slotting
Beim Einsatz von TDMA muss die Zeitaufteilung klar geregelt sein, damit alle Knoten wissen,
welcher Zeitslot gerade aktiv ist und ob sie gerade senden dürfen oder nicht. Dazu erfolgt eine
Ticksynchronisation, sodass alle Knoten einen gemeinsamen Takt haben. Anders als bei WirelessHART und ISA 100.11a, welche die Synchronisation an normalen Nutzrahmen vornehmen, wird
hierzu Black-Burst-Synchronization (BBS) [GK08] eingesetzt. Dieses Verfahren sendet in regelmäßigen Abständen Tick-Rahmen, welche durch eine spezielle Black-Burst-Kodierung kollisionsgeschützt übertragen werden. Dadurch erzielt das Verfahren einen geringen und deterministisch
begrenzten Tick-Offset. Diese deterministische Begrenzung ist notwendig, um garantieren zu
können, dass bei exklusiven Reservierungen Kollisionen ausgeschlossen sind. Im Gegensatz zur
Synchronisation an Nutzrahmen wie bei WirelessHART und ISA 100.11a ist BBS unabhängig
von den höheren Schichten: Da die Synchronisation anhand spezieller Tick-Rahmen erfolgt, ist
sie nicht darauf angewiesen, dass die Anwendung oft genug Nutzrahmen versendet, an denen eine Synchronisation durchgeführt werden kann. Der Einsatz des Verfahrens bietet sich
darüber hinaus an, da eine optimierte Implementierung für die Imote 2-Plattform vorhanden
ist [Eng13, ECG14].
Durch BBS wird ein regelmäßiger Tick vorgegeben. Zwischen zwei Ticks steigt auf Grund der
unterschiedlichen Uhrenrate (Clock Skew) der Knoten die Uhrenabweichung (Clock Offset) an.
Um den Overhead durch die Synchronisation gering zu halten, muss die Zeit zwischen zwei
Ticks – d.h. das Resynchronisationsintervall – so groß gewählt werden, dass der entstehende
maximale Offset im akzeptablen Bereich bleibt. In der Regel wählt man ein Resynchronisationsintervall von einigen wenigen Sekunden. Der Tick wird als Makro-Tick verwendet und die Zeit
dazwischen in kleinere Zeitslots, sogenannte Mikro-Slots, aufgeteilt.
Damit sowohl längere als auch kürzere Reservierungen effizient möglich werden, wird die Länge eines Mikro-Slots sehr klein gewählt (z.B. 1 ms) und man erlaubt, dass eine Übertragung
sich über mehrere Mikro-Slots erstrecken kann. Je nach Länge des zu übertragenden Rahmens
werden mehr oder weniger Mikro-Slots reserviert (s. Abb. 4.3). In einem reservierten Bereich
ist es möglich, dass derselbe Sender mehrere Rahmen sendet. Dieser Ansatz unterscheidet sich
stark vom Slotting von WirelessHART und ISA 100.11a, bei dem stets maximal eine Übertragung
(inkl. ACK) in einem Zeitslot stattfindet. Obwohl ISA 100.11a die Konfiguration der Slot-Länge
erlaubt, ist dies sehr unflexibel, da die konfigurierte Slotlänge stets für den ganzen Superframe
gilt. Mit dem hier gewählten Ansatz werden dagegen sehr flexibel sowohl lange als auch kurze
Reservierungen in beliebiger Abfolge möglich.
Würde als Mikro-Slot-Dauer beispielsweise 1 ms gewählt, so hätte in dem in Abb. 4.3 dargestellten Bereich Knoten 1 eine Reservierung von 10 ms, Knoten 2 eine Reservierung von 5 ms,
Knoten 3 eine Reservierung von 15 ms und Knoten 4 eine Reservierung von 6 ms Dauer.
Indem das Medium nur solange reserviert wird, wie zur Übertragung eines Rahmens benötigt,
verringert sich der Verschnitt, der normalerweise entsteht, wenn die Übertragung des Rahmens
vor dem Ende des Slots abgeschlossen ist. Dieser Ansatz erlaubt somit eine effizientere Nutzung
des Mediums.
Die Länge eines Makro-Slots, also der Zeit zwischen zwei Makro-Ticks, kann beim Einsatz von
BBS nicht beliebig erhöht werden, da die Synchronisationsungenauigkeit mit der Zeit zwischen
1022
36
33
35
33
31
32
30
28
29
27
25
26
23
24
21
22
20
18
19
17
15
16
13
14
11
12
9
10
8
7
5
6
3
4
2
1
0
Reserviert für:
Knoten 1
Knoten 4
Knoten 2
Knoten 5
Knoten 3
Knoten 6
36
1023
Makro-Tick
Kapitel 4. Konzeption
Makro-Tick
42
Mikro-Slots
Makro-Slot
Abbildung 4.3.: Flexible Reservierungen mehrerer Mikro-Slots innerhalb eines Makro-Slots
3070
3071
3069
2057
2056
2055
2054
2053
2051
2052
2050
2049
2048
Super-Tick
Makro-Tick
2046
2047
1033
2045
1032
1031
1030
1029
1028
1026
1027
1025
1024
1022
1023
1021
n+8
n+6
n+7
n+4
n+5
n+3
n+2
n+1
CONFIG
Super-Tick
Makro-Tick
zwei BBS-Ticks anwächst. Beträgt die Dauer eines Makro-Slots beispielsweise 2 s, so müsste man
für eine Übertragung, die nur alle 6 s stattfindet, trotzdem in jedem Makro-Slot alle 2 s ausreichend Mikro-Slots reservieren. Zwei Drittel der reservierten Slots würden aber nicht genutzt.
Um eine derart ineffiziente Nutzung des Mediums zu vermeiden, wird das Slotting um eine
dritte Ebene erweitert: Mehrere Makro-Slots bilden einen Super-Slot. Ein Super-Slot wird von
zwei Super-Ticks begrenzt, wobei es sich um Makro-Ticks handelt, die um ein Super-Tick-Flag
erweitert wurden. Die Mikro-Slot-Zählung läuft über Makro-Slot-Grenzen hinaus innerhalb eines Super-Slots weiter (s. Abb. 4.4). Reservierungen kehren damit nicht mit jedem Makro-Slot,
sondern mit jedem Super-Slot wieder. Wählt man wie in Abb. 4.4 eine Super-Slot-Länge von
3 Makro-Slots und eine Makro-Slot-Länge von 2 s, würde jede Reservierung alle 6 s wiederkehren. Indem die Länge des Super-Slots passend zu den Intervallen der auftretenden Datenströme
gewählt wird, kann das Medium am effizientesten genutzt werden.
Mikro-Slots
Makro-Slot
Makro-Slot
Makro-Slot
Super-Slot
Abbildung 4.4.: Dreistufiges Slotting: Mikro-, Makro- und Super-Slots
Am Anfang eines Super-Slots ist außerdem vorgesehen, in einem CONFIG-Rahmen spezielle
Konfigurationsdaten netzweit zu verbreiten (s. Abb. 4.4). Beispielsweise wird den Knoten auf
diese Weise mitgeteilt, ob sich das System in der Startphase befindet, in der es sich selbst einmisst, oder bereits im Normalbetrieb die eigentliche Anwendung ausführt. Details dazu werden
in Kapitel 4.2.3.2 erläutert.
4.2. Protokoll-Architektur
43
4.2.2.3 Exklusive Reservierungen
Die exklusiven Reservierungen der Zeitslots sind nicht statisch konfiguriert, sondern können
dynamisch angefordert werden. Dies ist nötig, damit die in den Anforderungen verlangte dynamische Anforderung von Diensten (s. Kapitel 2.6) auf höheren Ebenen unterstützt werden kann,
ohne dass stark überreserviert werden muss. Im Folgenden wird kurz skizziert, wie dynamische
Reservierungen umgesetzt werden können, allerdings wird dieser Aspekt hier nicht im Detail
betrachtet.
Die Verwaltung der Reservierungen übernimmt ein zentraler Knoten, der Network-Manager genannt wird. Nachdem beim Start des Netzwerks dessen Topologie bestimmt wurde (s. Kapitel 4.2.3.2), sind zunächst alle Zeitslots exklusiv für den Network-Manager reserviert, alle anderen Knoten sind im Empfangsmodus. Der Network Manager weist nun jedem Knoten eine
exklusive Reservierung zur Broadcast-Übertragung an alle unmittelbaren Nachbarn zu5 . Über
diese Reservierungen ist sichergestellt, dass alle Knoten ausreichend kommunizieren können,
um weitere Reservierungen anzufordern. Im Folgenden können Knoten dynamisch weitere Reservierungen anfordern, indem sie eine entsprechende Anfrage (evtl. über andere Knoten) an
den Network-Manager schicken. Dieser bestätigt die empfangenen Anfragen oder lehnt sie ab.
Außerdem teilt er in regelmäßigen Abständen jedem Knoten mit, in welchen für ihn reservierten Zeitslots er senden darf und in welchen er empfangen muss. Die zu Beginn ausgegebenen
Broadcast-Reservierungen werden von den Knoten wieder abbestellt, sobald sie genügend Reservierungen angefordert haben, um den weiteren Betrieb zu gewährleisten.
Entsprechend der Anforderungen müssen auch mobile Knoten unterstützt werden (s. Kapitel 2.6). Wenn für mobile Knoten Slots reserviert werden, ist zu beachten, dass durch die Bewegung der Knoten die Möglichkeiten für SDMA einschränkt sind. Im einfachsten Fall werden Zeitslots (auf einem Kanal) für mobile Knoten netzweit reserviert (kein SDMA). Hier besteht Raum für Optimierung, welche im Rahmen einer anderen Arbeit untersucht werden kann.
Beispielsweise ist der Bewegungsbereich eines Roboters in einer Produktionsanlage i.d.R. stark
eingeschränkt. Konfiguriert man diesen Bewegungsbereich, kann der Network-Manager bei der
Anforderung einer exklusiven Reservierung für den mobilen Knoten diese Information nutzen,
um SDMA mit Einschränkungen zuzulassen.
4.2.2.4 Mode-Based Scheduling with Fast Mode-Signaling
Der Einsatz exklusiver periodischer Reservierungen eignet sich besonders gut für Datenströme,
die in einem gleichbleibenden Intervall Rahmen senden, wie beispielsweise einen TemperaturSensor (vgl. Anwendungsszenario in Kapitel 2.1). Ereignisgesteuerte Datenströme dagegen, wie
beispielsweise der Steuerungsbefehl zur Ventilöffnung aus dem Anwendungsszenario, treten
sporadisch und i.d.R. äußerst selten auf. Damit die für sie geforderte maximale Verzögerung garantiert werden kann, müssen beim Einsatz exklusiver Reservierungen allerdings trotzdem sehr
häufig reservierte Slots eingeplant werden, auch wenn diese nur sehr selten genutzt werden.
Im Beispiel des Steuerungsbefehls zur Ventilöffnung wird ein minimales Ereignis-Eintrittsintervall Intmin von 30 s gefordert, die maximale Übertragungsverzögerung beträgt allerdings 1 s. Es
müssten also jede Sekunde ausreichend Slots reserviert werden, obwohl maximal alle 30 s eine
Übertragung stattfindet.
5 Dem
Network-Manager selbst werden zunächst mehr Reservierungen zugeteilt als anderen Knoten, da er zu Beginn besonders viele Rahmen senden muss.
44
Kapitel 4. Konzeption
Um eine effizientere Unterstützung für ereignisgesteuerte Datenströme bieten zu können, wird
neben exklusiven Reservierungen auch Mode-Based Scheduling with Fast Mode-Signaling [BGK13]
unterstützt. Das Verfahren ermöglicht einen kontrollierten Wettbewerb um Zeitslots, der anhand von Prioritäten deterministisch aufgelöst wird. Anstatt, dass ein Bereich von Mikro-Slots
exklusiv für einen Knoten reserviert wird, kann er mit Mode-Based Scheduling für mehrere Knoten reserviert werden. Am Wettbewerb dürfen dabei nur die vorgesehenen Knoten teilnehmen,
deren Prioritäten zum Zeitpunkt der Reservierung festgelegt werden. Die Auflösung des Wettbewerbs (Fast Mode-Signaling) erfolgt im Single-Hop-Bereich über unterschiedliche BackoffZeiten und kann über mehrere Hops mit Hilfe des Arbitrating and Cooperative Transfer Protocol
(ACTP) [CGR12] erfolgen.
Mit Mode-Based Scheduling können Slot-Bereiche, die für ereignisbasierten Verkehr reserviert
werden müssen, von anderen Knoten genutzt werden, wenn das Ereignis nicht eingetreten ist.
So könnte beispielsweise der Steuerungsbefehl zur Ventilöffnung mit hoher Priorität und ein
zusätzlicher Temperatur-Sensor-Wert zum Erreichen der bevorzugten Dienstgüte mit niedriger
Priorität kombiniert werden. Solange das Ereignis nicht auftritt, kann die bevorzugte Dienstgüte erreicht werden, tritt das Ereignis auf, wird die Basis-Dienstgüte durch andere exklusive
Reservierungen sichergestellt.
4.2.2.5 Wettbewerbsbasierter Verkehr
Neben exklusiven Reservierungen und Mode-Based Scheduling ist es außerdem möglich, dass
Mikro-Slot-Bereiche für beliebigen Wettbewerb freigegeben werden. Wettbewerbsbasierte MikroSlot-Bereiche müssen entweder im gesamten Netzwerk zeitgleich auf demselben Kanal gelten,
oder es muss über SDMA/FDMA sichergestellt sein, dass es nicht zu Interferenzen mit exklusiven Reservierungen oder Mode-Based Scheduling kommt. In wettbewerbsbasierten Bereichen
dürfen alle Knoten senden, nachdem sie das Medium per Carrier Sense als frei erkannt haben
(CSMA). Kollisionen sind daher nicht ausgeschlossen. Der Einsatz von CSMA/CA dient zur
Verringerung der Wahrscheinlichkeit andauernder Kollisionen. Damit batteriebetriebene Knoten nicht unnötig stark belastet werden, wird von ihnen nicht verlangt, dass sie in wettbewerbsbasierten Bereichen im Empfangsmodus sind.
Wettbewerbsbasierte Bereiche sind nötig, um neuen Knoten die Möglichkeit zu bieten, sich während des Betriebs am Netzwerk anzumelden. Außerdem kann ein Knoten in wettbewerbsbasierten Bereichen neue Reservierungen anfordern, wenn beispielsweise der Nachbar-Knoten ausgefallen ist, über den er bisher seine Pakete gesendet hat. Auch um mobile Knoten im Netzwerk
effizient zu integrieren, bieten wettbewerbsbasierte Bereiche eine Möglichkeit.
4.2.2.6 Acknowledgement und Neuübertragung
Auf MAC-Ebene werden bestätigte Rahmen mit Acknowledgement (ACK) und unbestätigte
Rahmen (z.B. Broadcast-Rahmen) unterstützt. Außerdem kann für jeden Rahmen angegeben
werden, ob er vom MAC Layer bei ausbleibendem ACK neu übertragen oder verworfen werden soll. Neuübertragungen erfolgen i.d.R. nicht sofort, sondern erst dann, wenn der Knoten die
nächste Erlaubnis zum Senden erhält.
4.2.2.7 Lokaler Multicast
Da längere Reservierungen flexibel möglich sind, kann der Duocast-Ansatz von ISA 100.11a auf
mehrere Acknowledgements zu einem (lokalen) Multicast verallgemeinert werden, bei dem eine
4.2. Protokoll-Architektur
45
beliebige Anzahl Empfänger den Empfang eines Rahmens per Acknowledgement bestätigt. Damit die Anzahl der benötigten Mikro-Slots bestimmt und die Reihenfolge, in der die Acknowledgements gesendet werden, festgelegt werden kann, muss zum Zeitpunkt der Reservierung
allerdings bekannt sein, welche und wie viele Empfänger zu einem Multicast gehören. Durch
die Unterstützung lokaler Multicasts mit Acknowledgement müssen Knoten, die einen Rahmen
an mehrere Nachbarn senden, diesen nicht mehrfach übertragen. So können Übertragungen eingespart werden, was eine effizientere Nutzung des Mediums und Energieeinsparung zur Folge
hat.
4.2.2.8 Prüfsumme
Um verfälschte Rahmen zu erkennen, wird die IEEE 802.15.4-Prüfsumme ausgewertet. Ist die
Prüfsumme nicht korrekt, wird der Rahmen verworfen und kein Acknowledgement gesendet.
Daraufhin wird eine Verfälschung genau wie Verlust behandelt, was je nach Anforderungen des
Datenstroms zu einer Neuübertragung des Rahmens führen kann.
4.2.2.9 Duplikateliminierung
Rahmen werden vom Sender mit einer Sequenz-Nummer versehen, um Duplikate zu erkennen.
Wird ein Rahmen doppelt empfangen, wird der zweite Empfang mit einem Acknowledgement
bestätigt, aber nicht an die höheren Layer weitergereicht.
4.2.2.10 Channel Hopping
Um eine möglichst gute Zuverlässigkeit auch bei Störungen des Mediums zu erreichen und
die Wahrscheinlichkeit von Verlusten zu verringern, wird ähnlich wie bei WirelessHART und
ISA 100.11a Channel Hopping eingesetzt. Nachdem ein Knoten eine Reservierung beim Network-Manager angefragt hat, sendet dieser dem Knoten die Reservierungsbestätigung und das
für diese Reservierung gültige Sprungmuster.
Ist auf einem Kanal wiederholt keine zuverlässige Übertragung möglich, meldet der Knoten dies
dem Network-Manager. Falls möglich, weist dieser dem Knoten daraufhin eine neue Reservierung mit einem Sprungmuster zu, welches die problematische Frequenz nicht enthält. Im Gegensatz zu WirelessHART, welches nur ein statisch konfigurierbares Channel Blacklisting gestattet,
erlaubt dieser Ansatz ein automatisches dynamisches Channel Blacklisting. Dies verbessert insbesondere das Zusammenspiel des Kommunikationssystems mit anderen Systemen wie WLAN.
Bei ISA 100.11a ist ebenfalls ein automatisches Channel Blacklisting möglich, allerdings bleiben
dort die reservierten Slots auf den problematischen Kanälen ungenutzt6 . Indem der NetworkManager dynamisch neue Reservierungen ohne den problematischen Kanal vergibt, führt dies
im hier verfolgten Ansatz nicht dazu, dass reservierte Slots dauerhaft unbenutzt bleiben. So
kann die Zuverlässigkeit verbessert und das Medium effizienter genutzt werden.
4.2.2.11 Sicherheit
Genau wie bei WirelessHART und ISA 100.11a wird bereits auf MAC-Ebene sämtlicher Verkehr
mit einem Network-Key verschlüsselt. Zum Beitritt eines Knotens zum Netzwerk wird ein Join6 Der
System Manager wird bei ISA 100.11a in regelmäßigen Reports über die Link-Qualität informiert und kann
bei Bedarf problematische Kanäle blockieren und Routen anpassen. Die genaue Funktionsweise des System Managers wird allerdings nicht spezifiziert.
46
Kapitel 4. Konzeption
Key benötigt, daraufhin bekommt der Knoten den aktuell gültigen Network-Key mitgeteilt, mit
dem er alle folgenden Übertragungen absichert. Der Network-Key wird vom Network-Manager
in regelmäßigen Abständen ausgetauscht und den anderen Knoten mitgeteilt. Die Verschlüsselung auf MAC-Ebene erfolgt wie bei WirelessHART und ISA 100.11a symmetrisch mittels AES.
4.2.2.12 Zeitsynchronisation
Basierend auf der BBS-basierten Ticksynchronisation erfolgt eine netzweite Zeitsynchronisation.
Der Network-Manager, der ebenfalls als Masterknoten für die Ticksynchronisation dient, sendet
dazu in jedem Super-Slot einmal seine lokale Zeit zum Zeitpunkt des Super-Ticks. Diese Information wird unverändert netzweit weitergeleitet. Da allen Knoten die Dauer eines Makro-Ticks
durch statische Konfiguration bekannt ist, entspricht der maximale Clock-Offset dem maximalen Tick-Offset des BBS-Ticks und ist damit deterministisch begrenzt. Die Zeit-Information kann
von den höheren Ebenen abgefragt und beispielsweise genutzt werden, um Sensorwerte mit
Zeitstempeln zu versehen.
4.2.2.13 Deterministische Arbitrierung und Werteübertragung
Der MAC Layer bietet darüber hinaus Unterstützung für eine deterministische netzweite bzw. nhop Arbitrierung und Werteübertragung per ACTP [CGR12]. Obere Ebenen können dies nutzen,
um kurze Daten netzweit zu übertragen oder eine netzweite Arbitrierung durchzuführen. Diese
Funktionalität wird u.a. bei der Ermittlung des Netzzustandes (s. Kapitel 4.2.3.2) genutzt. Wenn
die Übertragung netzweit erfolgen soll, müssen für die Nutzung von ACTP netzweit zeitgleich
Slots dafür reserviert sein.
4.2.3 Network Layer
Die Reichweite von IEEE 802.15.4 reicht mit üblicherweise ca. 30 m nicht aus, um Produktionsanlagen wie im Anwendungsszenario mit einer Single-Hop-Topologie abzudecken (s. Kapitel 2.1).
Daher müssen Pakete u.U. vom Start- über mehrere Zwischenknoten hinweg zum Zielknoten
weitergeleitet werden. Diese Weiterleitung ist Aufgabe des Network Layers. Hierbei muss entschieden werden, ob alle Knoten oder nur bestimmte Knoten Pakete weiterleiten können, ob also
eine Mesh-Topologie wie bei WirelessHART oder eine Stern-Mesh-Topologie wie bei ISA 100.11a
verwendet wird. Weiterhin muss der Network Layer entscheiden, an welchen Knoten ein bestimmtes Paket weitergeleitet werden muss. Um diese Entscheidung treffen zu können, ist ein
Routing-Verfahren nötig, welches geeignete Pfade durch das Netzwerk bestimmt. Es ist nicht
Ziel dieses Konzepts, zu beschreiben, wie dieses Routing im Detail umgesetzt wird. Stattdessen
werden die Anforderungen an das Routing-Verfahren definiert und einige prinzipielle Alternativen verglichen und ausgewählt. Neben dem Routing übernimmt der Network Layer auch
Sicherheits-Funktionalität wie z.B. Ende-zu-Ende-Verschlüsselung. Hierauf wird auch nur oberflächlich eingegangen.
4.2.3.1 Topologien
In Kapitel 2.5 wurden unterschiedliche Arten von Topologien vorgestellt, die ein Multi-HopNetzwerk bilden kann. Hier werden die Vor- und Nachteile der unterschiedlichen Topologien
untersucht und jene gewählt, die am besten zu den Anforderungen passt.
4.2. Protokoll-Architektur
47
Bei der Mesh-Topologie (s. Abb. 2.3) sind alle Knoten gleichwertig: Jeder Knoten ist mit jedem
Knoten in seiner Kommunikationsreichweite verbunden und muss für andere Knoten Pakete
weiterleiten. Dadurch kann jede mögliche Verbindung zwischen zwei Knoten genutzt werden,
was bedeutet, dass die kürzest möglichen Routen verwendet werden können. Dieser Vorteil
kann zu kürzeren Verzögerungen und damit einer besseren Performanz führen.
Da sämtliche vorhandenen Verbindungen genutzt werden können, gibt es außerdem in einem
Mesh-Netzwerk meist alternative Routen, wenn ein Knoten ausfällt und Pakete über andere
Knoten übertragen werden sollen. Dieser Vorteil der Mesh-Topologie trägt zu einer höheren
Zuverlässigkeit des Kommunikationssystems bei.
Bei der Stern-Mesh-Topologie (s. Abb. 2.4) werden die Knoten in zwei Gruppen aufgeteilt: Die
sogenannten Router müssen von anderen Knoten Pakete annehmen und diese weiterleiten. Endgeräte müssen dagegen keine Pakete für andere Knoten weiterleiten. Da das Weiterleiten von
Paketen Energie kostet, ist es sinnvoll, batteriebetriebene Knoten von dieser Aufgabe zu entlasten. Da eine der Anforderungen ist, dass der Batteriebetrieb einzelner Knoten möglich sein
soll (s. Kapitel 2.8), ist dies ein entscheidender Vorteil. Nachteilig ist, dass nicht alle möglichen
Verbindungen nutzbar sind. Dies kann dazu führen, dass Routen länger sind und im Falle eines
Knotenausfalls weniger alternative Routen vorhanden sind. Allerdings wird hier davon ausgegangen, dass ausschließlich Knoten als Endgerät konfiguriert werden, die auf Grund ihrer Energieversorgung als Router ungeeignet sind. Um auch bei einer Stern-Mesh-Topologie möglichst
kurze Routen und eine gute Zuverlässigkeit zu erreichen, müssen lediglich genügend Router in
der Nähe von Endgeräten platziert werden. Bei einem drahtlosen Netzwerk in einer Produktionsanlage ist es problemlos möglich, gezielt Router zu platzieren, sodass sich keine Nachteile
im Vergleich mit einer Mesh-Topologie ergeben. Daher wird hier wie bei ISA 100.11a eine SternMesh-Topologie verwendet.
4.2.3.2 Ermittlung des Netzzustands
Zur Routen-Berechnung muss der Network Layer Informationen über die Topologie des Netzwerks haben. Wäre diese Information statisch konfiguriert, könnten nicht – wie in den Anforderungen gefordert – während des Betriebs Knoten zum Netzwerk dazukommen (s. Kapitel 2.6).
Daher soll das System den Netzzustand beim Start selbstständig ermitteln und während des
Betriebs aktualisieren, wenn Topologie-Änderungen erkannt wurden.
Für die initiale Topologie-Bestimmung wird ein spezielles Protokoll zur Ermittlung des Netzzustands verwendet [Kra13]. Das Protokoll testet sämtliche Links auf ihre Empfangsstärke und
teilt sie in mehrere Gruppen ein:
• Ein Kommunikations-Link von einem Knoten A zu einem Knoten B besteht dann, wenn B
Pakete von A (direkt) korrekt empfangen kann, sofern kein anderer Knoten in Interferenzreichweite zeitgleich sendet.
• Ein Interferenz-Link von einem Knoten A zu einem Knoten B besteht dann, wenn das korrekte Empfangen von Paketen durch B gestört wird, wenn A zeitgleich sendet. Ein Kommunikations-Link ist immer auch ein Interferenz-Link.
• Ein Sensing-Link von einem Knoten A zu einem Knoten B besteht dann, wenn B Übertragungsenergie von A erkennen kann. Ein Interferenz-Link ist immer auch ein Sensing-Link.
Das Wissen über Interferenz-Links ermöglicht es, effizient SDMA einzusetzen, sodass räumlich
getrennte Knoten zeitgleich auf dem gleichen Kanal senden können.
48
Kapitel 4. Konzeption
Da das Protokoll selbst bereits die netzweite Verteilung der ermittelten Topologie-Information
übernimmt, kann davon ausgegangen werden, dass jeder Knoten über dieses Wissen verfügt.
Dies ermöglicht es beispielsweise, dass jeder Knoten Routen oder Entfernungen zu anderen
Knoten berechnen kann7 .
Werden Änderungen an der Topologie bemerkt, wie beispielsweise ausgefallene Knoten oder
gebrochene Links, so wird diese Information zum Network-Manager gesendet, der diese Information im Netzwerk verteilt.
4.2.3.3 Routing
Die in Kapitel 2 formulierten Anforderungen stellen einige Herausforderungen an das Routing: Um Dienstgüte garantieren zu können (s. Kapitel 2.4), muss auch das Routing DienstgüteUnterstützung bieten. Das bedeutet, dass bei der Suche einer Route nicht immer die kürzeste
Route gesucht ist, sondern eine Route, welche eine gegebene Dienstgüte-Anforderung erfüllt.
Nur so können beispielsweise die Anforderungen an die maximale Übertragungsverzögerung
(s. Kapitel 2.2) sichergestellt werden.
Eine weitere wichtige Anforderung an das Routing ist, dass neben stationären Knoten auch Unterstützung für mobile Knoten, wie beispielsweise Roboter, vorhanden ist (s. Kapitel 2.6). Da
allerdings nur ein kleiner Teil der Knoten mobil ist, sollte das Routing eine Unterscheidung
zwischen stationären und mobilen Knoten vorsehen. So ist es beispielsweise denkbar, Routen
zwischen stationären Knoten proaktiv vorzuberechnen, während Routen zu mobilen Knoten bei
Bedarf reaktiv bestimmt werden. In Kapitel 4.2.3.4 wird eine Möglichkeit skizziert, wie eine Unterstützung für mobile Knoten aussehen könnte.
Eine wichtige Voraussetzung für das Routing ist, dass sämtlichen Knoten die vollständige Topologie der stationären Knoten bekannt ist (s. Kapitel 4.2.3.2). Anhand dieser Information ist es
beispielsweise möglich, dass die Knoten lokal Routen berechnen. Allerdings kann nicht davon
ausgegangen werden, dass allen Knoten sämtliche Kommunikations-Ressourcen im Netzwerk
bekannt sind. Die Berechnung einer Route, welche eine bestimmte Dienstgüte erfüllt, ist daher
nicht ausschließlich lokal möglich.
Ähnlich wie das Graph-Routing von WirelessHART und ISA 100.11a (s. Kapitel 3.2.3) sollte das
Routing die Übertragung auf einer alternativen Route ermöglichen, wenn beispielsweise ein
Knoten ausfällt. So kann die Zuverlässigkeit des Netzwerks verbessert werden.
Das Anwendungsszenario beschreibt auch, dass ein Dienst eines Knotens (z.B. der Wert eines
Temperatur-Sensors) von mehreren Knoten (z.B. Reglern) abonniert werden kann (s. Kapitel 2.6).
Um dies effizient zu unterstützen, wäre es wünschenswert, wenn über die lokale MulticastUnterstützung auf MAC-Ebene hinaus auch eine netzweite Multicast-Unterstützung auf Ebene
des Network Layers möglich ist. Dies bedeutet für das Routing, dass nicht nur Routen von einem
Knoten zu einem anderen, sondern auch Routen von einem Knoten zu einer Menge von anderen
Knoten berechnet werden können.
Wie genau ein effizientes Routing-Verfahren unter den gegebenen Anforderungen aussehen
kann, ist eine komplexe Fragestellung, die im Rahmen einer anderen Arbeit untersucht werden wird. Standard-Verfahren wie DSDV oder AODV sind bei den gegebenen Anforderungen
nicht geeignet: Sie zielen in erster Linie darauf ab, die für das Routing benötigte TopologieInformation des Netzwerks zu ermitteln bzw. auszutauschen. Da hier davon ausgegangen werden kann, dass die Topologie allen Knoten bekannt ist, ist dies nicht Aufgabe des Routing7 Details
zum Routing werden in Kapitel 4.2.3.3 erläutert.
4.2. Protokoll-Architektur
49
Verfahrens. Dagegen müssen andere Probleme wie die Dienstgüte-Unterstützung oder die Unterstützung mobiler Knoten gelöst werden.
4.2.3.4 Mobile Knoten
Die Anforderungen verlangen, dass neben stationären Knoten auch mobile Knoten unterstützt
werden sollen (s. Kapitel 2.6). Wie dies im Detail realisiert wird, ist nicht Gegenstand dieser
Arbeit. Im Folgenden wird allerdings kurz skizziert, wie eine mögliche Umsetzung aussehen
könnte.
Bei der initialen Topologie-Bestimmung sind mobile Knoten nicht beteiligt und die Position
mobiler Knoten kann nicht als allen Knoten bekannt angenommen werden. Wenn ein mobiler Knoten dem Netz beitritt, wählt er einen stationären, nicht batteriebetriebenen Knoten in
seiner Reichweite als Home Agent aus. Dazu senden diese Knoten in regelmäßigen Abständen
Beacons, anhand derer sie von mobilen Knoten erkannt werden können. Bewegt sich der mobile
Knoten, ändert sich sein Home Agent nicht; selbst dann, wenn er sich aus dessen Reichweite
hinaus bewegt. In regelmäßigen Abständen teilt der mobile Knoten seinem Home Agent mit,
welche stationären Knoten gerade in seiner Reichweite sind. Dazu sendet er das Paket an einen
der stationären Knoten in Reichweite, der die weitere Route zum Home Agent berechnet. Indem
der Home Agent stets die stationären Knoten in Reichweite des mobilen Knotens kennt, kann er
immer eine Route zu diesem berechnen. Home Agents machen dem Network-Manager bekannt,
für welche mobilen Knoten sie Home Agent sind, und der Network Manager verteilt daraufhin
diese Information im Netz. Möchte ein Knoten ein Paket an einen mobilen Knoten senden, so
kann er dies tun, indem er es an den Home Agent des mobilen Knotens sendet, der es an den
mobilen Knoten weiterleitet. Sendet ein Knoten häufig Pakete an einen mobilen Knoten, so kann
er außerdem bei dessen Home Agent einen Dienst abonnieren, der ihn stets über Positionsänderungen des mobilen Knotens informiert. Mit der durch diesen Dienst erhaltenen Position kann
der Knoten eine Route berechnen, über die er Pakete direkt an den mobilen Knoten sendet, ohne
sie über den Home Agent verschicken zu müssen.
4.2.3.5 Segmentierung
Der Network Layer nimmt Pakete entgegen, die größer sein können als die maximale Rahmengröße auf MAC-Ebene. Er segmentiert dazu automatisch große Pakete auf Senderseite und setzt
sie auf Empfängerseite wieder zusammen.
Die Anforderungen verlangen, dass QoS-Garantien eingehalten werden (s. Kapitel 2.4). Diese
können aber nicht für beliebig große Pakete garantiert werden. Mit zunehmender Segmentierung steigt beispielsweise die Übertragungszeit an. Aus diesem Grund muss beim Anfordern
einer Reservierung die maximale Paketgröße des Datenstroms angegeben werden. Daraus berechnet der Network Layer die maximal nötige Segmentierung und damit die maximal benötigte
Anzahl Rahmen auf MAC-Ebene. Daraus ergibt sich, wie viele Slots reserviert werden müssen,
um die geforderten QoS-Anforderungen garantieren zu können.
4.2.3.6 Sicherheit
Wie in Kapitel 2.7 erläutert wurde, muss die Sicherheit des drahtlosen Kommunikationssystems gewährleistet sein. Um die Vertraulichkeit der übertragenen Nachrichten sicherzustellen,
wird neben der Hop-zu-Hop-Verschlüsselung auf MAC-Ebene vom Network Layer optional
50
Kapitel 4. Konzeption
eine Ende-zu-Ende-Verschlüsselung unterstützt. Der Network Manager generiert dazu für jedes
Knoten-Paar einen eigenen Schlüssel, der Path Key genannt wird, und übermittelt diesen an die
beiden Knoten, deren Kommunikation mit dem Schlüssel abgesichert wird. Die erstmalige Übermittlung des Schlüssels wird über die Verschlüsselung auf MAC-Ebene gesichert. Alle weiteren
Übertragungen werden mit den Path Keys verschlüsselt.
Möchte ein Knoten eine verschlüsselte Multicast-Verbindung nutzen, muss er dazu einen Path
Key beim Network Manager anfordern. Dabei teilt er dem Network Manager die Empfänger der
Multicast-Übertragung mit. Der Network Manager generiert einen neuen Path Key und überträgt ihn an die Empfänger und den Absender, der ihn ab dann für Multicast-Übertragungen
nutzen kann.
Neben der symmetrischen Verschlüsselung der Übertragung unterstützt der Network Layer
auch die digitale Signatur von Nachrichten. Dies dient der geforderten Sicherstellung von Authentizität und Integrität der Nachrichten (s. Kapitel 2.4). Dazu generiert der Knoten selbst ein
Schlüsselpaar aus privatem und öffentlichem Schlüssel und sendet den öffentlichen Schlüssel
an den Network Manager. Andere Knoten können den öffentlichen Schlüssel beim Network
Manager abfragen, um beispielsweise eine Signatur zu überprüfen.
Genau wie die Hop-zu-Hop-Verschlüsselung auf MAC-Ebene verwenden die Verschlüsselung
und die digitale Signatur des Network Layers das AES-Verfahren.
4.2.4 Middleware Layer
Der Middleware Layer stellt der Applikation eine dienstorientierte Schnittstelle zum Kommunikationssystem zur Verfügung, welche insbesondere die in Kapitel 2.6 geforderten Anforderungen an die Flexibilität des Systems erfüllt. Der vor allem aus dem Umfeld von Informationssystemen als Service-Oriented-Architecture (SOA) [Erl05] bekannte Ansatz, Funktionalität in Form von
Diensten bereitzustellen, kommt hier in einem drahtlosen Kommunikationssystem zum Einsatz.
Ein Dienst ist eine in sich abgeschlossene Teilfunktionalität der Applikation. Ein typisches Beispiel im Kontext von Produktions-Netzwerken ist das Auslesen eines Sensorwertes oder das
Steuern eines Aktuators. Der eigentliche Dienst wird von der Applikation implementiert, während der Middleware Layer Funktionalität zum Auffinden und Aufrufen von Diensten bereitstellt. Ein Knoten kann einen oder mehrere Dienste anbieten, die dann über das drahtlose Netzwerk von anderen Knoten verwendet werden können. Zur Kommunikation mit einem Dienst
werden drei unterschiedliche Message-Exchange-Patterns (MEPs) unterstützt (vgl. [Erl05]):
• Request/Response: Ein Dienst wird aufgerufen (Request) und gibt ein Ergebnis als Antwort
an den Aufrufer zurück (Response). Beispielsweise fragt ein Knoten einen Sensorwert an
und erhält als Antwort den aktuellen Wert des Sensors. Dieses Muster entspricht dem entfernten Aufruf einer Funktion mit Rückgabewert (Remote Procedure Call).
• Fire and Forget: Ein Dienst wird aufgerufen, allerdings wird keine Antwort zurückgegeben.
Beispielsweise sendet ein Regler einen Regelungsbefehl an einen Aktuator, ohne dass eine Antwort zurück gegeben wird. Dieses Muster entspricht dem entfernten Aufruf einer
Funktion ohne Rückgabewert (Remote Procedure Call).
• Publish/Subscribe: Ein Dienst wird vom Dienstanbieter im Netzwerk bekannt gemacht (Publish) und kann daraufhin von anderen Knoten im Netzwerk abonniert werden (Subscribe). Beispielsweise kann der Wert eines Sensors abonniert werden, sodass der Sensorknoten in regelmäßigen Abständen den aktuellen Sensorwert an alle Abonnenten sendet, ohne
dass diese ihn jedes Mal abfragen müssen.
4.2. Protokoll-Architektur
51
Es gibt weiterhin zwei unterschiedliche Arten von Publish/Subscribe-Diensten:
• Dienste, welche periodisch in einem festen Intervall eine Nachricht senden. Beispielsweise
sendet ein Sensorknoten i.d. R. periodisch den aktuellen Sensorwert.
• Dienste, welche ereignisgetriggert immer dann eine Nachricht senden, wenn ein bestimmtes Ereignis eintritt. Beispielsweise sendet eine Lichtschranke immer dann eine Nachricht,
wenn sie unterbrochen wird.
Ein Knoten, der einen Dienst anbietet (Service Provider), macht diesen bei der Service Registry bekannt (Publish, s. Abb. 4.5). Die Service Registry ist konzeptionell eine Datenbank, in der die im
Netzwerk verfügbaren Dienste gespeichert sind. Ein Knoten, der einen Dienst nutzen möchte
(Service Requestor), kann eine Anfrage an die Service Registry senden, um nach einem Dienst zu
suchen (s. Abb. 4.5). Die Service Registry antwortet mit einer Liste verfügbarer Dienste. Anhand
dieser Liste weiß der Service Requestor, welche Knoten die gewünschten Dienste anbieten und
welches MEP jeweils verwendet wird. Entsprechend dieses MEPs interagiert er nun mit dem
Service Provider: Handelt es sich um einen Dienst, der nach dem Request/Response-MEP aufgerufen wird, sendet er einen Aufruf und bekommt eine Antwort zurück. Kommt Fire and Forget zum Einsatz, bleibt der Aufruf des Dienstes dagegen unbeantwortet. Verwendet der Dienst
das Publish/Subscribe-Verfahren, sendet der Service Requestor eine Subscribe-Nachricht an den
Service Provider, um den Dienst zu abonnieren. Dieser wiederum sendet daraufhin in regelmäßigen Abständen oder immer, wenn ein bestimmtes Ereignis auftritt, eine Nachricht an den
Service Requestor, bis dieser den Dienst abbestellt.
Dienst
suchen
Service
Requestor
Service
Registry
2.
3.
Ergebnis
1.
Publish
4.
Aufruf5/5Subscribe
Service
Provider
Diensterbringung
5.
Abbildung 4.5.: Interaktion zwischen Service Registry, Service Requestor und Service Provider (nach
[Erl05])
Der hier verfolgte dienstorientierte Ansatz bietet vor allem Vorteile gegenüber dem Kommandobasierten Ansatz von WirelessHART und dem objektorientierten von ISA 100.11a, weil er Service Requestor und Service Provider voneinander entkoppelt. Der Service Requestor muss nicht
wissen, welcher Knoten beispielsweise den Sensorwert eines bestimmten Sensors bereitstellt. Er
benötigt lediglich die Dienstkennung, um in der Service Registry nachzuschlagen, welcher Knoten den Sensorwert liefern kann. Auf diese Weise ist es beispielsweise problemlos möglich, einen
Knoten während des Betriebs auszutauschen, wie es in Kapitel 2.6 gefordert wurde.
Um, wie in Kapitel 2.4 verlangt wurde, Dienstgüte-Garantien anbieten zu können, muss auch
der Middleware Layer Dienstgüte-Unterstützung bieten. Beim Publizieren eines Dienstes können Kenndaten der unterstützten Dienstgüte angegeben werden, wie etwa das kleinst mögliche
Intervall, in dem ein Sensorwert verfügbar gemacht werden kann. Beim Suchen eines Dienstes
können ebenfalls Dienstgüteanforderungen angegeben werden, sodass nicht den Anforderun-
52
Kapitel 4. Konzeption
gen entsprechende Dienste vorgefiltert werden. Wird ein Dienst abonniert, kann die benötigte
Dienstgüte (z.B. eine maximale Übertragungsverzögerung) gefordert werden. Der Middleware
Layer nutzt die Dienstgüte-Unterstützung der darunter liegenden Schichten, um zu überprüfen, ob die geforderte Dienstgüte eingehalten werden kann. Ist dies der Fall, stellt er sicher, dass
das Abonnement mit der geforderten Dienstgüte erbracht wird. Kann die geforderte Dienstgüte
nicht garantiert werden, wird das Abonnement abgelehnt und muss ggf. mit einer geringeren
Dienstgüte oder von einem anderen Knoten, der den gleichen Dienst anbietet, neu abonniert
werden.
In Kapitel 5 wird genauer auf den Middleware Layer und dessen Umsetzung eingegangen. Dabei wird insbesondere detailliert beschrieben, wie die Service Registry umgesetzt ist.
4.2.5 Zusammenfassung
Das hier entwickelte Konzept zeigt auf den unteren Layern Gemeinsamkeiten mit WirelessHART und ISA 100.11a: So wird mit IEEE 802.15.4 der gleiche Physical Layer eingesetzt und
der MAC Layer basiert ebenfalls auf einer Kombination aus TDMA mit SDMA und FDMA.
Allerdings zeigt schon der MAC Layer entscheidende Unterschiede. So wird die Zeitsynchronisation nicht anhand von Nutzrahmen durchgeführt, sondern BBS zur Synchronisation eingesetzt. Dies macht die Zeitsynchronisation unabhängig von den oberen Layern und gewährleistet einen deterministisch beschränkten Offset. Die exklusiven Reservierungen sind durch
ihre variable Länge flexibler als bei WirelessHART und ISA 100.11a, was eine bessere Ausnutzung des Mediums ermöglicht. Mit Mode Based Scheduling bietet der MAC Layer darüber hinaus Unterstützung für deterministischen Wettbewerb. Zusätzlich sind ähnlich wie beim Slow
Hopping von ISA 100.11a wettbewerbsbasierte Bereiche vorgesehen. Reservierungen müssen
nicht statisch konfiguriert werden, sondern können während des Betriebs dynamisch angefordert werden. Dies erlaubt es auf Anwendungsebene, Dienste flexibel bei Bedarf zu abonnieren
und abzubestellen. Die automatische Ermittlung der Topologie macht das System flexibler und
ermöglicht effizientes SDMA. Das Routing bietet wie gefordert Unterstützung für mobile Knoten sowie Dienstgüte. Ähnlich wie bei WirelessHART und ISA 100.11a wird die Zuverlässigkeit
verbessert, indem z.B. bei Knotenausfall Neuübertragungen auf alternativen Routen stattfinden. Indem zwischen Routern und Endgeräten unterschieden wird, werden batteriebetriebene
Knoten besser als bei WirelessHART unterstützt. Neben der Hop-zu-Hop-Verschlüsselung auf
MAC-Ebene bietet der Network Layer Ende-zu-Ende-Verschlüsselung sowie Unterstützung für
digitale Signaturen. Der Middleware Layer stellt mit seinem dienstorientierten Ansatz eine besonders flexible Schnittstelle zur Anwendung dar.
Die Entscheidungen, die in diesem Konzept getroffen wurden, sind durch die in Kapitel 2 formulierten Anforderungen motiviert. In Tab. 4.1 ist zusammenfassend dargestellt, welche Anforderungen an Performanz, Zuverlässigkeit, Skalierbarkeit, Flexibilität, Sicherheit und RessourcenEffizienz sowie funktionale Anforderungen durch die Entscheidungen auf den unterschiedlichen Layern des Protokolls erfüllt werden bzw. die Erfüllung unterstützen. So wird beispielsweise auf dem MAC Layer TDMA eingesetzt (s. Kapitel 4.2.2), um, wie in den Anforderungen in
Kapitel 2.2 verlangt, Übertragungsverzögerungen garantieren zu können. Zusätzlich dazu nutzt
der MAC Layer SDMA und FDMA, um die Übertragungsrate des Netzwerks zu verbessern. Die
in Kapitel 2.2 aufgestellte Forderung einer Brutto-Übertragungsrate von mindestens 200 kbit/s
wird schon durch den Physical Layer von IEEE 802.15.4 erfüllt, der 250 kbit/s ermöglicht. SDMA und FDMA sind daher nicht notwendig, um die Anforderung zu erfüllen, verbessern aber
die Erfüllung der Anforderung.
Rechen- und Speicher Eff.
Größe und Gewicht
Funktionale Anforderungen
Zeitsynchronisation
Determ. netzw. Arbitrierung
und Werteübertragung
Ressourcen-Effizienz
Energie-Effizienz
Sicherheit
Vertraulichkeit
Integrität, Authentizität
Verfügbarkeit
Mobile Knoten
Umordnung, Duplikateliminierung
Skalierbarkeit
Knotenanzahl
Topologien
Flexibilität
Dynamische Dienste
Knotenaustausch
Verfälschungen
Zuverlässigkeit
Verluste
Performanz
Übertragungsrate
Übertragungsverzögerung
Imote 2
IEEE 802.15.4
IEEE 802.15.4
Physical Layer
Tick- und Zeitsynchronisation
ACTP
Geeignete Algorithmen
Duty Cycling, Multicast
Channel Hopping (+Blacklisting),
Neuübertragung (je nach Anf.)
Verschlüsselung (Network Key)
Dyn. Superslotkonfiguration
Adressraumgröße mind. 1 Byte
SDMA, Multi-Hop-Arbitrierung
Exklusive Reservierungen,
Channel Hopping (+Blacklisting),
ACK + Neuübertragung (je nach
Anforderung)
IEEE 802.15.4 Prüfsumme,
Neuübertragung (je nach Anf.)
Sequenz-Nummern
FDMA, SDMA (zusätzlich)
TDMA (exkl. Reservierungen,
Mode Based),
(Ticksynchronisation)
MAC Layer
Stern-Mesh-Topologie, Multicast,
Proaktive Routen-Berechnung
Geeignete Algorithmen
Verschlüsselung (Path Keys)
Digitale Signatur
Periodische Routen Aktualisierung, Topologie-Bestimmung
Routing unterstützt mobile Knoten
(proaktiv/reaktiv -> hybrid)
Routing
Neuübertragung auf alternativer
Route bei Knotenausfall
Topologie-Bestimmung
QoS-Routing
Network Layer
Geeignete Algorithmen
Dienste-Registry
Dienste-Kennungen
Zeitstempel
Dienste unterst. QoS-Anf. für
periodische und ereignisgesteuerte Datenströme
Middleware Layer
Tabelle 4.1.: Anforderungen und ausgewählte Lösungen nach Layern. Legende: erfüllt Anforderung / unterstützt Erfüllung der Anforderung
4.2. Protokoll-Architektur
53
54
Kapitel 4. Konzeption
5. KAPITEL
Middleware für drahtlose Kommunikation im
Produktionsbereich
In Kapitel 4.2.4 wurde der Middleware Layer des entworfenen Protokolls bereits kurz beschrieben. In diesem Kapitel wird der im Rahmen dieser Arbeit implementierte Middleware Layer
genauer betrachtet und konzeptionelle Entscheidungen analysiert.
Als Middleware wird hier eine dienstorientierte Schnittstelle der Applikation zum drahtlosen
Kommunikationssystem verstanden (s. Abb. 4.2). Ähnlich wie bei RPC (Remote Procedure Call)
bzw. RMI (Remote Method Invocation) handelt sich um eine kommunikationsorientierte Middleware, welche von der Kommunikation über das Netzwerk abstrahiert. Die Middleware selbst
dient dabei der Applikation als Kommunikations-Framework. Darüber hinaus ist eine Service
Registry, welche die im System vorhandenen Dienste verwaltet und für Dienstnutzer auffindbar
macht (s. Abb. 4.5), Teil der Middleware. Der Fokus dieser Arbeit liegt auf der konzeptionellen
Ausarbeitung und Implementierung dieser Service Registry.
Nachdem kurz die Vorteile einer dienstorientierten Middleware-Schicht erläutert werden, beschreibt dieses Kapitel die Architektur des Middleware Layers.
5.1 Vorteile einer dienstorientierten Middleware-Schicht
Verglichen mit dem Kommando-basierten Ansatz von WirelessHART und dem objektorientierten Ansatz von ISA 100.11a bietet der hier verfolgte dienstorientierte Ansatz einige Vorteile:
• Dadurch, dass Dienste in der Service Registry anhand von Dienstkennungen aufgesucht
werden können, wird der Dienstnutzer (Service Requestor) vom Dienstanbieter (Service
Provider) entkoppelt. Ein Dienst kann daher leicht während des Betriebs auf einen anderen Knoten verschoben oder ein Knoten ausgetauscht werden. Dienstnutzer müssen den
Dienst lediglich in der Service Registry erneut nachschlagen und neu abonnieren.
• Durch die Dienstgüte-Unterstützung des Middleware Layers (und der darunter liegenden
Layer) kann die Anwendung einen Dienst mit einer gewissen Dienstgüte anfordern und
muss sich nicht darum kümmern, wie diese garantiert werden kann.
Neben diesen Vorteilen, welche zur Flexibilität des Systems beitragen, führt der dienststorientierte Ansatz außerdem zu einer klaren Strukturierung der Anwendung und verbessert damit
die Wartbarkeit des Systems.
56
Kapitel 5. Middleware
5.2 Architektur des Middleware Layers
Im Folgenden wird detaillierter auf die architektonischen Fragen eingegangen, die sich bei der
Entwicklung des Middleware Layers stellen, und dargestellt, welche Lösungen schließlich implementiert wurden. Da die Service Registry hier im Fokus steht, werden die unterschiedlichen
konzeptionellen Optionen, eine Service Registry umzusetzen, erörtert. Dabei wird auf Replikation und Verteilung eingegangen und ein Algorithmus vorgestellt, der basierend auf der Topologie des Netzwerks Knoten auswählt, auf welche die Service Registry verteilt wird. Anschließend
wird beschrieben, wie ein Dienst der Service Registry bekannt gemacht wird und wie Dienstinformationen verteilt werden. Schlussendlich wird erklärt, wie ein Dienst, der von einem anderen
Knoten angeboten wird, in der Service Registry aufgefunden werden kann.
5.2.1 Replikation und Verteilung von Service Registries
Damit die Dienste im Netz aufgefunden werden können, werden sie bei einer Service Registry
registriert. Für die Umsetzung dieser Service Registry gibt es mehrere konzeptionelle Optionen
bezüglich Replikation und Verteilung. Resultierende Vor- und Nachteile werden hier betrachtet.
5.2.1.1 Replikation
Eine konzeptionell wichtige Entscheidung ist es, ob Informationen über Dienste repliziert werden sollen oder nicht. Wenn die Information über einen Dienst nicht repliziert wird, bedeutet
dies, dass sie auf nur einem Knoten gespeichert ist. Dies hat den Vorteil, dass es keine Inkonsistenzen zwischen unterschiedlichen Kopien geben kann. Außerdem muss nur ein Knoten informiert werden, wenn sich die Information ändert. Nachteilig ist dagegen, dass nur dieser eine
Knoten die Information anbieten kann, daher der Pfad zu diesem Knoten evtl. sehr lang ist und
die Antwort erst mit einer hohen Verzögerung eintrifft. Außerdem ist die Information überhaupt
nicht mehr verfügbar, falls der Knoten, auf dem die Information gespeichert ist, ausfällt oder auf
Grund von Störungen auf dem Drahtlosmedium nicht erreichbar ist.
Wenn Dienstinformation repliziert wird, bedeutet dies, dass die Information über einen Dienst
auf mehrere Knoten kopiert wird. Auf diese Weise bleibt die Information verfügbar, wenn einer
der Knoten ausfällt oder nicht mehr erreichbar ist. Werden viele Kopien im Netzwerk verteilt,
so führt dies außerdem dazu, dass die Pfade zu Knoten, die über eine Kopie verfügen, kürzer
werden. Auf diese Weise wird der Zugriff auf Dienstinformationen schneller. Nachteilig ist, dass
es zwischenzeitlich zu Inkonsistenzen zwischen den Kopien kommen kann. Außerdem müssen
zusätzliche Nachrichten ausgetauscht werden, um die Replikationen zu aktualisieren.
Als Kompromiss kann der Grad der Replikation bei der implementierten Middleware über einen
Parameter konfiguriert werden. Dienstinformation wird im Umkreis von n Hops um den Service
Registry-Knoten repliziert, bei dem der Dienst zuerst registriert wurde. Soll keine Replikation
stattfinden, kann n = 0 gesetzt werden. Indem n mindestens auf den Netzdurchmesser gesetzt
wird, kann eine netzweite Replikation erreicht werden. Wird n auf einen Wert zwischen 1 und
dem Netzdurchmesser gesetzt, so erfolgt eine lokal begrenzte Replikation. Diese hält den Aufwand der Replikation in Grenzen, da kein Broadcast über das ganze Netz erfolgt, sondern die
weitere Übertragung nach n Hops eingestellt werden kann. Trotzdem ist die Information noch
verfügbar, falls ein Knoten ausfällt. Geht man davon aus, dass in einem drahtlosen Kommunikationssystem im Produktionsbereich die Sensorknoten und die zugehörigen Regler- und Aktuatorknoten oft räumlich nahe beieinander liegen, so wird der Zugriff auf die Dienstinformation
5.2. Architektur des Middleware Layers
57
und damit das Finden und Abonnieren von Diensten in den meisten Fällen durch die lokale
Replikation beschleunigt. Auf Grund der genannten Vorteile wurde diese Lösung mit einem
konfigurierbarem n gewählt.
5.2.1.2 Verteilung
Eine weitere wichtige konzeptionelle Entscheidung ist, ob die Service Registry zentralisiert oder
verteilt umgesetzt werden soll.
Wird die Service Registry zentral auf einem Knoten eingerichtet, so bedeutet dies, dass alle Dienste bei einem Knoten registriert werden und alle Knoten bei diesem
einen Knoten anfragen, wenn sie Dienste suchen. Diese Lösung hat in erster Linie den Vorteil,
dass sie einfach umsetzbar ist. Da sämtliche Dienstanfragen und Bekanntmachungen zu diesem
einen Knoten gesendet werden müssen, stellt der Knoten bei einem großen Netz mit vielen Anfragen allerdings unter Umständen einen Flaschenhals dar. Zudem können bei einem großen
Netz die Pfade zu diesem Knoten lang werden, was zu einer hohen Verzögerung beim Suchen
und Registrieren von Diensten führen kann. Da alle Dienstinformationen vollständig am zentralen Knoten gespeichert sein müssen, kann dies außerdem bei einem großen Netzwerk mit vielen
Diensten zu Speicherproblemen am zentralen Knoten führen. Insgesamt ist eine zentralisierte
Registry vor allem für kleine Netzwerke geeignet, nicht aber für große, da sie nicht skaliert.
Zentralisierte Registry
Im extremen Gegensatz zur zentralisierten Registry kann die
Aufgabe der Service Registry auch auf alle Knoten im Netz verteilt werden. Nachteilig daran ist, dass auch schwache Knoten, die keine feste Energieversorgung und eventuell weniger
Speicher besitzen, Dienstinformation speichern und Nachrichten über Dienständerungen empfangen und ggf. weiterleiten müssen. Wie in den Anforderungen in Kapitel 2.8 gefordert, muss
allerdings der Batteriebetrieb einzelner Knoten möglich sein. Da eine vollständig verteilte Registry die Lebensdauer batteriebetriebener Knoten deutlich verkürzt, passt diese nicht gut zu den
gegebenen Anforderungen.
Vollständig verteilte Registry
Wenn weder alle Knoten noch ein einziger Knoten als Service Registry agieren, so bedeutet dies, dass eine echte Teilmenge der Knoten die Aufgabe der Service Registry übernimmt. So kann das Problem der vollständig verteilten Registry umgangen werden,
bei der Knoten ohne feste Energieversorgung oder mit wenig Speicher auch als Service Registry fungieren müssen. Damit das Nachrichtenaufkommen beim Aufsuchen von Diensten gering
ist, sollten möglichst viele Knoten möglichst gleichmäßig in der Topologie verteilt als Service
Registry agieren, sodass die Pfade zum nächsten Service Registry-Knoten möglichst kurz sind.
Damit der Aufwand beim Bekanntmachen von neuen Diensten oder Dienständerungen gering
ist, sollten dagegen möglichst wenige Knoten, die möglichst nah beieinander liegen, als Service
Registry dienen. Die Auswahl der Knoten ist daher bei diesem Ansatz eine Herausforderung.
Gelingt es, eine geschickte Auswahl der Knoten für die Service Registry zu treffen, so stellt dieser Ansatz aber eine skalierbare Lösung dar, welche sowohl das Nachrichtenaufkommen gering
hält als auch berücksichtigt, dass manche Knoten möglichst wenig belastet werden sollen.
Partiell verteilte Registry
Da die partiell verteilte Registry am ehesten zu den gegebenen Anforderungen passt, wurde
dieser Ansatz für die Implementierung der Service Registry gewählt. Die Realisierung einer
58
Kapitel 5. Middleware
partiell verteilten Service Registry eröffnet einige weitere Fragestellungen, auf die im Folgenden
eingegangen wird.
5.2.2 Auswahl von Knoten für die Service Registry
Da die Registry auf eine Untermenge der Knoten verteilt werden soll, stellt sich die Frage, wie
man diese Untermenge auswählt. Ziel ist es, dass ein Algorithmus die Auswahl selbstständig
durchführt und dabei gewisse Entwurfsziele beachtet.
5.2.2.1 Problemstellung und Entwurfsziele
Der Algorithmus soll aus der Menge aller stationären Knoten V eine Teilmenge an Knoten VSR
auswählen, welche Service Registry-Knoten werden. Ein Knoten, der nicht Service RegistryKnoten wird, bekommt darüber hinaus vom Algorithmus einen Service Registry-Knoten in seiner Nähe zugewiesen, über den er auf die Service Registry zugreifen kann.
Mobile Knoten werden vom Algorithmus nicht berücksichtigt. Auf Grund ihrer Mobilität sind
sie prinzipiell als Service Registry weniger geeignet als stationäre Knoten und sollen daher nicht
dafür ausgewählt werden. Zum Zugriff auf die Service Registry nutzen sie ihren Home Agent
(s. Kapitel 4.2.3.4), der Teil der Service Registry sein muss8 .
Bei der Auswahl der Knoten sollen folgende Ziele verfolgt werden:
Jeder Knoten im Netzwerk soll entweder selbst Service
Registry-Knoten sein oder einen Service Registry-Knoten als direkten Nachbarn haben, über den
er auf die Service Registry zugreifen kann. Damit ist sichergestellt, dass Anfragen an die Service
Registry nur über maximal einen Hop übertragen werden müssen und daher schnell bearbeitet
werden können9 .
Entfernung zu Service Registry-Knoten
Die Service Registry-Knoten müssen häufiger aktuelle Informationen über Dienste untereinander austauschen. Aus diesem Grund soll
ein zusammenhängendes Netzwerk aus Knoten gebildet werden, welches alle Service RegistryKnoten miteinander verbindet. Zum Austausch von Informationen innerhalb der Service Registry wird ausschließlich dieses Netzwerk verwendet. Der Algorithmus soll daher neben den
Knoten VSR , welche als Service Registry agieren, falls nötig auch zusätzliche Knoten Vrouter auswählen, welche die Service Registry-Knoten miteinander verbinden.
Konnektivität zwischen Service Registry-Knoten
Es sollen unter Beachtung der bisher genannten Ziele möglichst
wenig Knoten für die Service Registry ausgewählt werden. Umso weniger Knoten Teil der Service Registry sind, umso weniger Nachrichten sind nötig, um Informationen in der Service
Registry zu verteilen oder aufzusuchen. Über das erste Entwurfsziel (Entfernung zu Service
Registry-Knoten), welches höher gewichtet wird, ist bereits sichergestellt, dass die Entfernung
zur Service Registry für alle Knoten gering ist.
Anzahl ausgewählter Knoten
8 Dies
wird sichergestellt, indem mobile Knoten ausschließlich Service Registry-Knoten als Home Agent wählen.
9 Um Dienste zu finden, die nicht soweit repliziert wurden, dass der benachbarte Service Registry-Knoten sie gespei-
chert hat, müssen Anfragen im Service Registry-Netz weitergeleitet werden, was die Antwortzeit entsprechend
verlängert (s. Kapitel 5.2.4).
5.2. Architektur des Middleware Layers
59
Wie in den Anforderungen in Kapitel 2.8 beschrieben, kann es in einem drahtlosen Kommunikationssystem im Produktionsbereich Knoten geben, die nicht über
eine feste Energieversorgung verfügen. Da ein Knoten, der als Service Registry fungiert, zusätzliche Nachrichten austauschen muss, um die Service Registry aktuell zu halten und Service
Registry-Anfragen zu beantworten, benötigen diese Knoten mehr Energie. Der Algorithmus soll
es daher erlauben, dass eine Menge von Knoten Vexcl von der Wahl zum Service Registry-Knoten
ausgeschlossen wird. Neben batteriebetriebenen Knoten könnten auch Knoten ausgeschlossen
werden, die über zu wenig Speicher verfügen, um die Service Registry zu speichern. Dieser Ausschluss soll per statischer Konfiguration bei der Installation des Netzwerks definiert werden.
Durch den Ausschluss von Knoten kann unter Umständen nicht mehr sichergestellt werden,
dass jeder Knoten entweder selbst Service Registry ist oder einen Service Registry-Knoten als
direkten Nachbarn hat. Würden beispielsweise alle Knoten ausgeschlossen, wäre diese Forderung offensichtlich unerfüllbar. Da im Produktionsbereich die Topologie des Netzwerks aber
nicht rein zufällig ist, sondern zu einem Großteil kontrolliert werden kann, sollte es problemlos
möglich sein, ausreichend Knoten zu platzieren, die über die nötigen Voraussetzungen verfügen. Der Algorithmus muss aber erkennen, falls die Forderung nicht erfüllbar ist, damit eine
entsprechende Fehlermeldung ausgegeben werden kann.
Ausschluss von Knoten
Es kann auch nötig sein, dass bestimmte Knoten auf jeden Fall
Teil der Service Registry sein sollen, beispielsweise weil sie als Gateway zu einem drahtgebundenen Netzwerk dienen. Damit der Algorithmus solche Anforderungen erfüllen kann, ist es
nötig, dass Pflicht-Knoten manuell bei der Installation des Netzes konfiguriert werden können.
Die Menge dieser Knoten wird als Vobl bezeichnet. Die Menge der verbleibenden Knoten, welche
weder ausgeschlossen wurden noch Pflicht-Knoten darstellen, werden mit Vopt bezeichnet.
Definieren von Pflicht-Knoten
5.2.2.2 Voraussetzungen und Annahmen
Es kann vorausgesetzt werden, dass allen Knoten im Netzwerk die Topologie der stationären
Knoten aus der automatischen Topologie-Bestimmung (s. Kapitel 4.2.3.2) bekannt ist. Daher ist
es nicht nötig, einen verteilten Algorithmus anzuwenden. Vielmehr kann jeder Knoten lokal
basierend auf dem globalen Topologiewissen den Algorithmus ausführen und so bestimmen,
welche Knoten zur Service Registry gehören und welche Knoten Router sind. Damit alle Knoten
zum selben Ergebnis kommen, ist es allerdings wichtig, dass der Algorithmus deterministisch
arbeitet. Alternativ kann ein Knoten den Algorithmus ausführen und das Ergebnis verteilen.
Formal wird die Eingabe in den Algorithmus wie folgt definiert:
• V: Menge der Knoten-IDs aller stationärer Knoten
• E: Menge aller symmetrischen (d.h. ungerichteten) Kommunikationslinks, d.h.:
E ⊆ V × V und ∀(v1 , v2 ) ∈ E : (v2 , v1 ) ∈ E
• G = (V, E): ungerichteter Kommunikationsgraph aller stationärer Knoten
• Vobl : Menge der Knoten-IDs der Knoten, welche Service Registry-Knoten werden müssen
• Vopt : Menge der Knoten-IDs der Knoten, welche Service Registry-Knoten werden können
• Vexcl : Menge der Knoten-IDs der Knoten, welche nicht Service Registry-Knoten werden
können
60
Kapitel 5. Middleware
Als Bedingung muss gelten, dass die einzelnen Knoten-Mengen paarweise disjunkt sind und
die Vereinigung der drei Mengen die Menge aller Knoten bildet:
Vobl ∩ Vopt = ∅
Vobl ∩ Vexcl = ∅
Vopt ∩ Vexcl = ∅
Vobl ∪ Vopt ∪ Vexcl = V
In Abb. 5.1 ist eine beispielhafte Netzwerk-Topologie dargestellt, die eine Eingabe in den Algorithmus darstellen könnte.
28
●
27
●
24
●
21
●
●
30
●
25
●
17
●
26
● 22
●
18
●
23
19
●
14
● ●
16
11
●
12
●
●
15
7
●
20
●
●
4
13
●
●
1
9
●
●
8
5
●● ●
2
6
10
●
●
3
●
29
Abbildung 5.1.: Eingabegraph mit Knoten, die Service Registry werden müssen (rot), können (grau)
bzw. nicht können (weiß).
5.2.2.3 Das Problem als Clustering-Problem
Der Algorithmus soll unter Beachtung von Vobl , Vopt und Vexcl Knoten für die Service Registry
auswählen. Alle nicht gewählten Knoten bekommen einen gewählten Nachbarn zugeordnet,
über den sie auf die Service Registry zugreifen. Man kann daher sagen, dass um jeden Service
Registry-Knoten ein Cluster gebildet wird, welcher alle Knoten enthält, die über diesen Knoten auf die Service Registry zugreifen. In dieser Weise kann das Problem der Knoten-Auswahl
als Clustering-Problem betrachtet werden. Unter Clustering wird der Prozess verstanden, ein
Netzwerk in untereinander verbundene Substrukturen aufzuteilen, welche Cluster genannt werden [BBH13]. Die Service Registry-Knoten in VSR koordinieren ihr Cluster und entsprechen daher den Cluster Heads (CHs). Alle anderen Knoten in ihrem Cluster, die über sie auf die Service
Registry zugreifen, sind ihre Follower. Die Knoten in Vrouter , welche die Service Registry-Knoten
miteinander verbinden, werden im Clustering-Problem als Gateway-Knoten bezeichnet. Obwohl
Gateway-Knoten mehrere Cluster miteinander verbinden, gehören auch sie stets zu genau einem Cluster und sind daher auch gleichzeitig Follower. In Abb. 5.2 ist ein Clustering-Beispiel
mit zwei Clustern graphisch illustriert.
5.2. Architektur des Middleware Layers
61
8
3
4
1
5
6
7
2
Abbildung 5.2.: Clustering-Beispiel. CHs sind rot, Follower grau und Gateways grün dargestellt. Die
blauen Linien umschließen die Mitglieder eines Clusters.
Indem das Problem als Clustering-Problem verstanden wird, kann der gesuchte Algorithmus
ebenfalls als Clustering-Algorithmus betrachtet werden. Da das Clustering-Problem gut erforscht
ist, gibt es auch eine Reihe von Clustering-Algorithmen (s. [AY07]). Um zu entscheiden, ob es bereits einen geeigneten Algorithmus gibt, werden die in Kapitel 5.2.2.1 gesteckten Ziele zunächst
in die Terminologie des Clustering-Problems übersetzt.
Das Ziel, dass jeder Knoten entweder selbst Service Registry-Knoten ist oder
einen solchen als direkten Nachbarn hat, entspricht beim Clustering-Problem der Suche nach
einem Dominating Set [APVH00]. Ein Dominating Set ist eine Teilmenge der Knoten eines Graphen, sodass jeder Knoten des Graphen entweder selbst in der Menge ist oder ein direkter Nachbar eines Knotens in der Menge ist (d.h. es gibt eine Kante zu einem Knoten in der Menge). Bildet
ein Clustering-Algorithmus ein Dominating Set, so ist sichergestellt, dass jeder Follower einen
direkten Nachbarn hat, der CH ist. Für die verteilte Service Registry sollen also die Knoten, die
als Service Registry fungieren, ein Dominating Set bilden, damit jeder Knoten entweder auf seine eigene Service Registry zugreifen kann oder über einen Hop seinen CH erreichen kann, der
die Service Registry für ihn bereitstellt.
Im Clustering-Beispiel in Abb. 5.2 bilden die CHs kein Dominating Set des Graphen, da Knoten
1 weder CH noch direkter Nachbar eines CH ist.
Dominating Set
Es wurde gefordert, dass die Router alle Service Registry-Knoten
miteinander verbinden. Dies bedeutet, dass der Graph bestehend aus CHs und Gateways zusammenhängend [Vol96] sein muss, d.h. von jedem Knoten in diesem Graphen muss es einen Pfad zu
jedem anderen Knoten des Graphens geben. Im Beispiel in Abb. 5.2 ist der Teilgraph bestehend
aus den CHs und Gateway-Knoten (Knoten 4, 5 und 6) zusammenhängend.
Zusammenhängender Graph
In einem Netzwerk, in dem die CHs ein Dominating Set
bilden und über Gateways miteinander verbunden sind, werden nie mehr als zwei GatewayKnoten benötigt, um einen CH mit dem am nächsten gelegenen CH zu verbinden. Dies illustriert
Abb. 5.3: Angenommen zwischen den CH 1 und CH 5 wären die drei Gateway-Knoten 2, 3 und
4 nötig, um sie zu verbinden. Da Knoten 3 nicht selbst CH ist, muss einer seiner Nachbarn CH
sein, da es sich sonst nicht um ein Dominating Set handeln würde. Wenn es einen solchen CH 6
gibt, dann ist allerdings CH 5 nicht mehr der nächste CH von CH 1 sondern CH 6. Allerdings
liegen zwischen CH 1 und CH 6 nur 2 Gateway-Knoten, genauso wie zwischen CH 6 und CH 5.
Three-Hop-Connected Dominating Set
62
Kapitel 5. Middleware
Zwischen einem CH und dem am nächsten gelegenen CH liegen demnach also maximal zwei
Gateways bzw. drei Hops. Somit wird nach einem Three-Hop-Connected Dominating Set [DW05]
gesucht.
1
2
3
4
5
Abbildung 5.3.: Ein über Gateways verbundenes Dominating Set ist stets Three-Hop-Connected
Die meisten Clustering-Algorithmen verfolgen in erster Linie das Ziel,
möglichst wenige Cluster zu bilden (und damit auch wenige CHs auszuwählen). Auch hier
sollen möglichst wenig Service Registry-Knoten ausgewählt werden und damit wenige Cluster
gebildet werden.
Geringe Cluster-Anzahl
Es gibt eine ganze Reihe von Clustering-Algorithmen und einige davon verfolgen ähnliche wie
die hier genannten Ziele. So gibt es Algorithmen, die ein minimales Dominating Set berechnen,
um ein virtuelles Backbone eines Drahtlosnetzwerks zu bilden [DB97, WL99]. Allerdings konnte
kein Algorithmus gefunden werden, der es erlaubt, Knoten von der Wahl als CH auszuschließen. Diese Forderung ist aber wichtig, um batteriebetriebene Knoten zu ermöglichen. Es ist auch
nicht möglich, diese Knoten einfach aus dem Ausgangsgraphen zu entfernen. Denn fügt man sie
zum Ergebnisgraphen wieder hinzu, so ist nicht mehr garantiert, dass die gewählten CHs dann
noch ein Dominating Set bilden.
5.2.2.4 Algorithmus
Da kein existierender Algorithmus gefunden werden konnte, der die gesteckten Ziele erfüllt,
wurde ein neuer Algorithmus entwickelt. Im Folgenden wird dieser vorgestellt und seine Arbeitsweise an einem Beispiel illustriert.
Der Algorithmus baut zunächst ein annähernd minimales Dominating Set auf. Dann
fügt er zusätzliche Gateway-Knoten hinzu, um die Cluster zu verbinden und einen zusammenhängenden Graphen aus CHs und Gateways zu erhalten. Schlussendlich fügt er weitere Gateways hinzu, die dazu dienen, lange Pfade zwischen zwei CHs zu verkürzen. Im Folgenden
werden die einzelnen Schritte des Algorithmus näher erläutert.
Grundidee
Die Eingabedaten bestehen wie in Kapitel 5.2.2.2 beschrieben aus der NetzwerkTopologie, die allen Knoten aus der automatischen Topologie-Bestimmung bekannt ist, sowie
der Konfiguration, welche Knoten CH bzw. Service Registry werden müssen (Vobl ), können (Vopt )
bzw. nicht können (Vexcl ). Abb. 5.1 illustriert graphisch die Eingabedaten des Beispiels.
Eingabe-Daten
Die Ausgabe des Algorithmus umfasst in erster Linie die gewählten CHs (VCH =
VSR ). Außerdem werden Gateways gewählt, welche zusammen mit den CHs als Router bezeichnet werden (Vrouter ). Damit klar ist, zu welchem CH ein Follower gehört, wird weiterhin eine
Ausgabe-Daten
5.2. Architektur des Middleware Layers
63
Menge von Links E f ollow gebildet, welche alle Follower eindeutig mit dem CH verbindet, zu
dessen Cluster sie gehören.
Zusammengefasst beinhaltet die Ausgabe folgende Mengen und Graphen:
• VCH : Knoten, welche als CH ausgewählt wurden. VCH ist ein Dominating Set.
Es gilt Vobl ⊆ VCH und VCH ⊆ Vobl ∪ Vopt .
• Vrouter : Knoten, welche als Router ausgewählt wurden.
Es gilt VCH ⊆ Vrouter und Vrouter ⊆ Vobl ∪ Vopt .
• Erouter : ungerichtete Kommunikationslinks, welche Knoten in Vrouter verbinden.
Es gilt ∀(v1 , v2 ) ∈ E mit v1 ∈ Vrouter ∧ v2 ∈ Vrouter : (v1 , v2 ) ∈ Erouter .
• Grouter = (Vrouter , Erouter ): ungerichteter Kommunikationsgraph des Router-Netzes (vollständiger Teilgraph10 von G, der zusammenhängend ist).
• E f ollow : Menge von ungerichteten Kommunikationslinks, welche alle Follower und alle Gateways mit ihren CHs verbinden. Es gilt E f ollow ⊆ E.
• Eout : Menge von ungerichteten Kommunikationslinks, welche die Router miteinander verbinden und die Follower mit ihren CHs verbinden. Es gilt Eout = Erouter ∪ E f ollow .
• Gout = (V, Eout ): ungerichteter Kommunikationsgraph des Router-Netzes sowie aller Follower.
Im ersten Schritt werden die Pflicht-Knoten in Vobl zu CHs
gemacht (s. Listing 5.1). Die verwendete Prozedur makeRouter (s. Listing 5.8) fügt dabei nicht
nur die Knoten aus Vobl den Mengen VCH und Vrouter hinzu, sondern ergänzt den Ausgabegraphen Gout auch um die von ihnen abgedeckten Knoten inkl. Verbindungslink und verknüpft
die Knoten im Router-Graphen Grouter mit umliegenden Routern. Darüber hinaus aktualisiert
makeRouter die Partitionskennungen im Array P. Unter einer Partition wird ein zusammenhängender Teilgraph von Grouter verstanden. Jedem Router wird im Array P die Kennung der
Partition zugeordnet, zu der der Knoten aktuell gehört. Die Partitionskennung ergibt sich aus
der kleinsten Knoten-ID der zur Partition gehörenden Knoten (s. Listing 5.8 und Listing 5.9).
Schritt 1: Pflicht-Knoten auswählen
Das Ergebnis des ersten Schrittes im Beispiel ist in Abb. 5.4 visualisiert. Die Pflicht-Knoten 12
und 24 bilden zunächst jeweils ihre eigene Partition. Die Follower-Knoten spielen bei der Partitionierung keine Rolle.
Damit der Algorithmus auf allen Knoten zum selben Ergebnis kommt, muss die ForEach-Schleife
über die Elemente der Menge Vobl in einer deterministischen Reihenfolge iterieren. Es wird davon ausgegangen, dass die Elemente anhand der Knoten-ID geordnet durchgegangen werden.
Das gleiche gilt für alle weiteren ForEach-Schleifen.
1 /* Annahme : Knoten in V sind von 0 bis |V | − 1 nummeriert . Alternativ kann das
gr ö ÿ te Element aus V zur Bemessung von P genutzt werden . */
2 Vout = ∅; Eout = ∅; VCH = ∅; Vrouter = ∅; Erouter = ∅; E f ollow = ∅; P = intArray[|V |];
3
4 /* Alle Pflicht - Knoten werden als CH ausgew ä hlt und von ihnen abgedeckte Knoten
zu Gout hinzugef ü gt */
5 ForEach v in Vobl Do
6
makeRouter ( v , true ) ;
7
10 Damit
ist hier gemeint, dass zu allen im Teilgraph enthaltenen Knoten auch die Links des Gesamtgraphs enthalten
sind, welche diese verbinden. Formal: ∀(v1 , v2 ) ∈ E mit v1 ∈ Vrouter ∧ v2 ∈ Vrouter : (v1 , v2 ) ∈ Erouter . Es ist also keine
Clique gemeint.
64
Kapitel 5. Middleware
8 /* Grouter enth ä lt jetzt alle Knoten in Vobl . */
9 /* Gout enth ä lt jetzt alle Knoten in Vobl sowie die von ihnen abgedeckten Knoten
inkl . Verbindungslink . */
Listing 5.1: Schritt 1: Pflicht-Knoten auswählen
29
●
30
●
25
●
26
●
27
●
28
●
24
●
21
●
●
17
●
18
●
14
● ●
16
11
●
12
●
●
15
7
●
20
●
●
4
13
●
●
1
9
●
●
8
5
●
● ●
2
6
10
●
●
3
●
●
22
23
19
Abbildung 5.4.: Ergebnis von Schritt 1: Die Pflicht-Knoten bilden die ersten Cluster (blau umrahmt).
Als nächstes bildet der Algorithmus ein Dominating
Set. Dazu macht er solange Kann-Knoten zu CHs, bis der ganze Graph abgedeckt ist (s. Listing 5.2). Zunächst werden dabei jene Knoten als CH gewählt, welche die meisten Follower
erhalten. Diese Heuristik hält die Cluster-Anzahl möglichst gering. In Abb. 5.5 ist das Dominating Set im Beispiel illustriert. Wie man sieht, ist der Graph aus CHs noch nicht zwingend
zusammenhängend, noch existieren vier Partitionen mit den Kennungen 2, 12, 24 und 25.
Schritt 2: Bilden eines Dominating Sets
1 /* Mache optionale Knoten zu CHs bis der ganze Graph abgedeckt ist ( d . h . bis VCH
ein Dominating Set ist ) . */
2 While Vout 6= V Do
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Begin
vmostNewNodes = unde f ined;
nmostNewNodes = 0;
/* Durchlaufe alle Knoten , die noch CH werden k ö nnen , es aber noch nicht
sind */
ForEach v in Vopt \ VCH Do
Begin
/* Bestimme wie viele neue Knoten mit v abgedeckt werden k ö nnten */
nnewNodes = 0;
ForEach (v1 , v2 ) in E mit v1 = v und v2 ∈
/ Vout Do
nnewNodes + + ;
/* Muss der Knoten selbst noch abgedeckt werden ? */
If v ∈
/ Vout Then
nnewNodes + + ;
If nnewNodes > nmostNewNodes ∨ (nnewNodes = nmostNewNodes ∧ v ∈ Vout ∧ vmostNewNodes ∈
/ Vout ) Then
Begin
/* Bisher deckt v die meisten neuen Knoten ab . Bei Gleichstand
werden Knoten bevorzugt , die bereits abgedeckt sind , um zu
erreichen , dass Gout weniger stark partitioniert wird . */
5.2. Architektur des Middleware Layers
19
20
21
22
23
24
25
26
27
28
29
30
31
32
65
nmostNewNodes = nnewNodes ;
vmostNewNodes = v;
End
End
If vmostNewNodes == unde f ined Then
/* Es wurde kein Knoten gefunden , der neue Knoten abdeckt , aber Vout
enth ä lt noch nicht alle Knoten . D . h. es gibt kein Dominating Set aus
Knoten in Vobl ∪ Vopt . */
Throw NoDominatingSetExists ;
Else
/* Mache den Knoten , der die meisten neuen Knoten abdeckt zum CH */
makeRouter ( vmostNewNodes , true ) ;
End
/* VCH ist jetzt ein Dominating Set , aber Grouter ist nicht zwangsl ä ufig
zusammenh ä ngend */
/* E f ollow enth ä lt noch Links zwischen CHs . Entferne diese . */
E f ollow = E f ollow \ Erouter ;
Listing 5.2: Schritt 2: Bilden eines Dominating Sets
29
●
30
●
25
●
26
●
27
●
28
●
24
●
21
●
●
17
●
18
●
14
● ●
16
11
●
12
●
●
15
7
● 13
20
●
4
●9 ● ●
1
●
● ●
8
5
● ●
2
6
10
●
●
3
●
●
22
23
19
Abbildung 5.5.: Ergebnis von Schritt 2: Ein Dominating Set mit allen CHs (rot) ist gebildet.
Als nächstes sollen mehr Partitionen miteinander verbunden werden, indem weitere Follower zu Gateways gemacht werden. Dazu werden zunächst
jene Knoten gewählt, welche an mindestens zwei noch nicht verbundene CHs grenzen und diese so verbinden können (s. Listing 5.3). Knoten, die die meisten Partitionen verbinden können,
werden zuerst hinzugefügt. Durch diese Heuristik werden die Partitionen mit möglichst wenigen Gateways verknüpft. Das Ergebnis dieses Schritts ist für das betrachtete Beispiel in Abb. 5.6
illustriert. Wie man am Beispiel sieht, sind noch nicht zwingend alle Cluster miteinander verbunden, es gibt noch zwei Partitionen mit den Kennungen 2 und 25.
Schritt 3: Verknüpfen von Partitionen (1)
1 /* Suche kann - Knoten , welche noch kein Router sind , aber direkte Nachbarn
mindestens zweier noch nicht verbundener CHs sind . Von diesen werden zuerst
jene zu Routern , die die meisten Partitionen verbinden . */
2 moreCandidates = (Vopt \ Vrouter 6= ∅) ;
3 While moreCandidates ∧ notStronglyConnected() Do
66
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Kapitel 5. Middleware
Begin
/* Es m ü ssen mindestens 2 Partitionen verkn ü pft werden */
nmostConnectedPartitions = 1;
vmostConnectedPartitions = unde f ined;
ForEach v in Vopt \ Vrouter Do
Begin
/* Bestimme die ( unverbundenen ) Nachbar - Partitionen */
Pneighbours = ∅ ;
ForEach (v1 , v2 ) in E mit v1 = v ∧ v2 ∈ VCH Do
Pneighbours = Pneighbours ∪ { P[v2 ]} ;
If | Pneighbours | > nmostConnectedPartitions Then
Begin
/* Der Knoten v verbindet bisher die meisten Partitionen */
nmostConnectedPartitions = | Pneighbours |;
vmostConnectedPartitions = v;
End
End
/* Mache den Knoten zum Router , der die meisten Partitionen verbindet */
If vmostConnectedPartitions 6= unde f ined Then
makeRouter ( vmostConnectedPartitions , false ) ;
Else
moreCandidates = false ;
End
/* Es wurden jetzt alle Partitionen verbunden , welche durch Hinzuf ü gen nur eines
Routers verbunden werden k ö nnen . */
Listing 5.3: Schritt 3: Verknüpfen von Partitionen (1)
27
28
24
29
30
21
25
17
26
22
18
23
19
16
20
14
11
12
15
7
13
4
1
9
8
5
2
10
6
3
Abbildung 5.6.: Ergebnis von Schritt 3: Knoten, welche mindestens zwei Partitionen verbinden, werden
zu Gateways (grün).
Schritt 4: Verknüpfen von Partitionen (2) Um alle CHs über Gateways zu verbinden, werden als
nächstes Paare von Followern als Gateways ausgewählt (s. Listing 5.4). Wie in Abb. 5.3 illustriert
wurde, können auf diese Weise alle CHs über Gateways verbunden werden. Das Ergebnis dieses
Schritts im Beispiel ist in Abb. 5.7 zu sehen. Das gesamte Router-Netz bildet nun nur noch eine
Partition mit der Kennung 2.
5.2. Architektur des Middleware Layers
67
1 /* Suche Paare von noch nicht gew ä hlten kann - Knoten , die ( mindestens ) zwei CHs
unterschiedlicher Partitionen verbinden . */
2 /* Durchlaufe alle noch nicht gew ä hlten kann - Knoten */
3 ForEach v in Vopt \ Vrouter Do
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Begin
/* Suche benachbarte noch nicht gew ä hlte kann - Knoten */
ForEach (v1 , v2 ) in E mit v1 = v ∧ v2 ∈ (Vopt \ Vrouter ) Do
Begin
/* v1 und v2 sind kann - Knoten , die noch nicht gew ä hlt sind . Pr ü fe , ob sie
an zwei unterschiedliche Partitionen grenzen . */
ForEach (v3 , v4 ) in E mit v3 = v1 ∧ v4 ∈ VCH Do
Begin
/* v1 grenzt an den CH v4 . */
ForEach (v5 , v6 ) in E mit v5 = v2 ∧ v6 ∈ VCH Do
Begin
/* v2 grenzt an den CH v6 . */
If P[v4 ] 6= P[v6 ] Then
Begin
/* v4 und v6 geh ö ren zu unterschiedlichen Partitionen , also
mache v1 und v2 zu Routern , um sie zu verbinden . */
makeRouter ( v1 , false ) ;
makeRouter ( v2 , false ) ;
End
End
End
End
End
/* Pr ü fe ob Grouter tats ä chlich zusammenh ä ngend ist . Wenn nicht existiert kein
zusammenh ä ngender Graph Grouter mit Knoten aus Vobl ∪ Vopt . */
If notStronglyConnected () Then
Throw NotStronglyConnected ;
/* Nun ist Grouter ein zusammenh ä ngender Graph und VCH ein Dominating Set . */
Listing 5.4: Schritt 4: Verknüpfen von Partitionen (2)
29
●
30
●
25
●
26
●
28
●
●
27
●
24
●
21
●
17
●
18
●
14
●
16
11
● ●
12
●
15
7
●
20
●
●
4
13
●
●
1
9
●
● ●
8
5
● ●
2
6
10
●
●
3
●
●
23
22
19
●
Abbildung 5.7.: Ergebnis von Schritt 4: Paare von Knoten, welche mindestens zwei bisher unverbundene
Partitionen verbinden, werden zu Gateways (Knoten 19 und 22).
68
Kapitel 5. Middleware
Alle CHs sind bereits über Gateways verknüpft.
Zwischen einigen CHs sind die Pfade über Router allerdings noch unnötig lang. Daher sollen
zusätzliche Gateways hinzugefügt werden, falls diese einen Pfad zwischen zwei CHs verkürzen.
In diesem Schritt werden solche Knoten als Gateways ausgewählt, die direkt zwei CHs miteinander verbinden können, die bisher über längere Pfade verbunden sind (s. Listing 5.5). Abb. 5.8
zeigt das Ergebnis dieses Schrittes im Beispiel.
Schritt 5: Verkürze Pfade zwischen CHs (1)
1 /* Es werden noch zus ä tzliche Router hinzugef ü gt , um Pfade im Router - Netzwerk zu
verk ü rzen */
2 /* Zun ä chst werden Knoten hinzugef ü gt , die zwei noch nicht direkt oder ü ber
einen Gateway - Knoten miteinander verbundene CHs verbinden */
3
4 /* Durchlaufe alle noch nicht gew ä hlten kann - Knoten */
5 ForEach v in Vopt \ Vrouter Do
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Begin
/* Suche benachbarte CHs */
ForEach (v1 , v2 ) in E mit v1 = v ∧ v2 ∈ VCH Do
Begin
/* v grenzt an den CH v2 */
ForEach (v3 , v4 ) in E mit v3 = v ∧ v4 6= v2 ∧ v4 ∈ VCH Do
Begin
/* v grenzt an die CHs v2 und v4 */
/* Pr ü fe , ob v2 und v4 bereits direkt oder ü ber einen weiteren Knoten
v6 verbunden sind , und mache andernfalls v zum Router */
If @(v5 , v6 ) ∈ Erouter : (v5 = v2 ∧ ((v6 = v4 ) ∨ (v6 , v4 ) ∈ Erouter ) Then
makeRouter ( v , false ) ;
End
End
End
Listing 5.5: Schritt 5: Verkürze Pfade zwischen CHs (1)
28
●
27
●
24
●
21
●
●
30
●
25
●
17
●
26
●
22
●
18
●
23
19
●
14
●
●
16
11
●
12
●
●
15
7
●
20
●
●
4
13
●
●
1
9
●
●
8
5
●
●
2
●
6
10
●
●
3
●
29
Abbildung 5.8.: Ergebnis von Schritt 5: Weitere Follower, die direkt zwei Cluster verbinden, werden zu
Gateways, um Pfade zwischen CHs zu verkürzen (Knoten 9).
5.2. Architektur des Middleware Layers
69
Schritt 6: Verkürze Pfade zwischen CHs (2) Im letzten Schritt werden Paare von Knoten hinzugefügt, welche zwei CHs verbinden können, die bisher nur über längere Pfade verbunden sind
(s. Listing 5.6). Das Ergebnis zeigt Abb. 5.9 anhand des Beispiels.
1 /* F ü ge Paare von Knoten hinzu , welche zwei CHs verbinden , die noch nicht direkt
oder ü ber einen Router verbunden sind */
2 /* Durchlaufe alle noch nicht gew ä hlten kann - Knoten */
3 ForEach v in Vopt \ Vrouter Do
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Begin
/* Suche benachbarten nicht gew ä hlen Kann - Knoten */
ForEach (v2 , v3 ) in E mit v2 = v ∧ v3 ∈ Vopt \ Vrouter Do
Begin
/* v grenzt an den Kann - Knoten v3 , der noch kein Router
ForEach (v4 , v5 ) in E mit v4 = v ∧ v5 ∈ VCH Do
Begin
/* v grenzt an den CH v5 */
ForEach (v6 , v7 ) in E mit v6 = v3 ∧ v7 ∈ VCH ∧ v7 6= v5 do
Begin
/* v3 grenzt an einen anderen CH v7 */
/* Pr ü fe , ob v5 und v7 bereits direkt oder ü ber
Router verbunden sind */
If @(v8 , v9 ) ∈ Erouter : v8 = v5 ∧ (
(v9 = v7 )∨
/*
(v9 , v7 ) ∈ Erouter ∨
/*
(∃(v10 , v11 ) ∈ Erouter : (v9 , v10 ) ∈ Erouter ∧ v11 = v7 ) /*
) Then
Begin
makeRouter ( v , false ) ;
makeRouter ( v3 , false ) ;
End
End
End
End
End
ist */
einen oder zwei
v5 ↔ v7 */
v5 ↔ v9 ↔ v7 */
v5 ↔ v9 ↔ v10 ↔ v7 */
Listing 5.6: Schritt 6: Verkürze Pfade zwischen CHs (2)
Diese in Listing 5.7 aufgeführte Funktion prüft, ob der
Graph Grouter zusammenhängend ist. Dazu werden alle Router durchlaufen und es wird überprüft, ob sie derselben Partition angehören. Wird ein Router gefunden, der einer anderen Partition angehört als die bisher betrachteten, so ist der Graph nicht zusammenhängend.
Hilfsfunktionen: notStronglyConnected
1 Boolean Function notStronglyConnected ()
2
3
4
5
6
7
8
9
10
11
12
13
Begin
p = unde f ined;
ForEach v in Vrouter Do
Begin
If p == unde f ined Then
p = P [ v ];
ElseIf p 6= P[v] Then
/* Mindestens 2 Knoten geh ö ren nicht zur selben Partition , also ist
Grouter nicht strongly connected . */
Return true ;
End
Return false ;
End
Listing 5.7: Hilfsfunktion notStronglyConnected
70
Kapitel 5. Middleware
28
●
27
●
24
●
21
●
●
30
●
25
●
17
●
26
● 22
●
18
●
23
19
●
14
● ●
16
11
●
12
●
●
15
7
●
20
●
●
4
13
●
●
1
9
●
●
8
5
●●
2
●
6
10
●
●
3
●
29
Abbildung 5.9.: Ergebnis von Schritt 6: Paare von Followern, welche zwei Cluster verbinden, werden zu
Gateways, um Pfade zwischen CHs zu verkürzen (Knoten 28, 29).
Diese in Listing 5.8 gezeigte Hilfsprozedur macht den Knoten v zu
einem Router und optional auch zu einem CH. Falls der Knoten CH wird, werden die von ihm
abgedeckten Nachbarknoten, die seine Follower werden, inkl. Verbindungslink zu Gout hinzugefügt. Außerdem wird der neue Router mit den Nachbar-Routern verknüpft (Erouter ) sowie die
Partitions-Kennung aktualisiert.
Hilfsprozedur: makeRouter
1 Procedure makeRouter ( int v , bool CH )
2
3
4
5
6
7
8
Begin
Vrouter = Vrouter ∪ {v} ;
Vout = Vout ∪ {v} ;
If CH Then
VCH = VCH ∪ {v} ;
/* Wenn v an keinen anderen Router angrenzt , bildet er seine eigene
Partition */
P[v] = v;
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* Durchlaufe alle Kanten , die von v ausgehen */
ForEach (v1 , v2 ) in E mit v1 = v Do
Begin
/* F ü ge noch nicht abgedeckte Knoten zu Gout hinzu falls v CH werden soll
*/
If CH ∧ v2 ∈
/ Vout Then
Begin
Vout = Vout ∪ {v2 } ;
Eout = Eout ∪ {(v1 , v2 ), (v2 , v1 )} ;
E f ollow = E f ollow ∪ {(v1 , v2 ), (v2 , v1 )} ;
End
/* Verkn ü pfe den Router mit direkten Nachbar - Routern in Grouter . */
If v2 ∈ Vrouter Then
Begin
Erouter = Erouter ∪ {(v1 , v2 ), (v2 , v1 )} ;
Eout = Eout ∪ {(v1 , v2 ), (v2 , v1 )} ;
If P[v2 ] < P[v] Then
5.2. Architektur des Middleware Layers
/* Der Knoten grenzt an einen Router mit einer kleineren
Partitions - Kennung -> ü bernehme diese */
P [ v ] = P [ v2 ];
26
27
28
29
30
31
71
End
End
updatePartition ( v , P[v] ) ;
End
Listing 5.8: Hifsprozedur makeRouter
Ordnet dem Knoten v und allen Routern, welche mit v verbunden sind (d.h. zur selben Partition gehören), die Partitionskennung p zu (s. Listing 5.9). Die
kleinste Partitionskennung setzt sich immer durch, d.h. es werden immer nur die Knoten aktualisiert, die noch eine größere Kennung haben.
Hilfsfunktionen: updatePartition
1 Procedure updatePartition ( v, p )
2
3
4
5
6
Begin
P[v] = p;
ForEach (v1 , v2 ) in Erouter mit v1 = v und P[v2 ] > p Do
updatePartition ( v2 , p ) ;
End
Listing 5.9: Hilfsprozedur updatePartition
5.2.2.5 Evaluation
Das Ergebnis des Algorithmus im gezeigten Beispiel (s. Abb. 5.9) zeigt anschaulich, dass der
Algorithmus die gesteckten Ziele erreicht: Es wird ein Three-Hop-Connected Dominating Set
gebildet, d.h. jeder Knoten ist CH oder hat einen CH als Nachbarn und alle CHs sind miteinander über maximal zwei Gateways miteinander verbunden. Es werden keine ausgeschlossenen
Knoten aus Vexcl zu CHs oder Gateways gewählt und alle Pflicht-Knoten aus Vobl werden als
CHs ausgewählt. Abb. 5.10 zeigt den Eingabe- und Ausgabegraphen eines weiteren Beispiels,
bei dem die genannten Ziele ebenfalls erreicht werden.
In beiden Beispielen wurden acht CHs gewählt, von denen zwei bereits als Pflicht-CH konfiguriert waren. Von den 30 bzw. 31 Knoten in den Beispielen wurden also wie gefordert recht wenige
Knoten als CH ausgewählt. Es ist nicht Ziel dieses Algorithmus, immer die minimal mögliche
Anzahl CHs auszuwählen. Anhand eines Beispiels lässt sich zeigen, dass der Algorithmus dies
auch nicht in jedem Fall erreicht. Den Eingabegraphen dieses Beispiels zeigt Abb. 5.11. Ein minimales Dominating Set besteht in diesem Fall aus zwei CHs, nämlich den Knoten 2 und 5, wie
es Abb. 5.12 illustriert. Der Algorithmus bestimmt in Schritt 2 beim Bilden eines Dominating
Sets für jeden Knoten, wie viele bisher unabgedeckte Knoten durch diesen abgedeckt würden.
Zunächst betrachtet er Knoten 1, der 2 Nachbarknoten und sich selbst, also 3 Knoten abdecken
würde. Gleiches gilt für die Knoten 2, 4 und 5. Die Knoten 3 und 6 würden nur einen Nachbarn und sich selbst, also 2 Knoten abdecken. Da Gleichstand zwischen den Knoten 1, 2, 4 und
5 besteht und bisher noch keine anderen Knoten gewählt wurden, wählt der Algorithmus den
zuerst betrachteten Knoten 1 aus. Diese Wahl führt allerdings dazu, dass anstatt eines weiteren CH zwei weitere CHs gewählt werden müssen, um ein Dominating Set zu bilden, wie es in
Abb. 5.13 zu sehen ist. Ob ein minimales Ergebnis entsteht, hängt in diesem Beispiel von der Reihenfolge ab, in welcher der Algorithmus die Knoten prüft, und damit von der Nummerierung
der Knoten.
72
Kapitel 5. Middleware
13
●
10
14
● ● ●
26
●
6
●
27
●
5
2
●
28
●
●
22
● ●
25
1
●
29
●
24
● 23 30
● ● 18 ●
12
● 7 ●
11
31 ●
●
16
●
15
●
8
●
4
17
●
●
19
3
●
●
20
●
21
●
13
●
10
14
● ● ●
26
●
6
●
27
●
5
2
●
28
●
●
22
● ●
25
1
●
29
●
24
● 23 30
● ● 18 ●
12
● 7 ●
11
31 ●
●
16
●
15
●
8
●
4
17
●
●
19
3
●
●
20
●
21
●
(a) Eingabegraph
(b) Ausgabegraph
9
9
Abbildung 5.10.: Ein- und Ausgabegraphen eines weiteren Beispiels
3
2
1
4
5
6
Abbildung 5.11.: Eingabegraph eines Beispiels, bei dem kein minimales Dominating Set gebildet wird
3
2
1
4
5
6
Abbildung 5.12.: Minimales Dominating Set zum Eingabegraphen in Abb. 5.11
3
2
1
4
5
6
Abbildung 5.13.: Nicht minimales Ergebnis des Algorithmus zum Eingabegraphen in Abb. 5.11
5.2. Architektur des Middleware Layers
73
Der Algorithmus verwendet zwar Heuristiken, um möglichst wenige Knoten als CH auszuwählen, allerdings stellen diese, wie das Beispiel zeigt, nicht in jedem Fall sicher, dass ein minimales
Dominating Set gebildet wird. Für die Anwendung in einem drahtlosen Kommunikationssystem im Produktionsbereich ist es auch nicht notwendig, dass in jedem Fall die minimale Anzahl
CHs gewählt wird. Zwar führt eine größere Anzahl CHs bzw. Service Registry-Knoten dazu,
dass mehr Nachrichten ausgetauscht werden müssen, um die Service Registry aktuell zu halten.
Solange es sich aber nur um wenige zusätzliche Knoten handelt, fällt dies wenig ins Gewicht.
Wichtiger ist dagegen, dass Knoten, die nicht über eine feste Energieversorgung verfügen, nicht
mehr als nötig belastet werden. Durch zusätzliche Service Registry-Knoten werden diese Knoten, die stets Follower werden und daher nicht am Nachrichtenaustausch innerhalb der Registry
beteiligt sind, aber nicht stärker belastet.
In den Schritten 5 und 6 versucht der Algorithmus, Pfade zwischen den CHs zu verkürzen, indem weitere Gateways hinzugefügt werden. Das führt zu einer schnelleren Ausbreitung von
Information und zu einem stärker zusammenhängenden Netzwerk. Dies ist insbesondere dann
relevant, wenn Dienstinformationen wie in Kapitel 5.2.1.1 genannt nur über n Hops auf dem Service Registry-Netzwerk repliziert werden sollen. Im ersten Beispiel sieht man, dass in Abb. 5.9
zwischen den CHs 25 und 24 der Pfad mit drei Hops deutlich kürzer ist als zuvor in Abb. 5.8
mit fünf Hops. Im zweiten Beispiel in Abb. 5.10 wurden u.a. die zusätzlichen Gateways 18 und
30 hinzugefügt, wodurch der Pfad von CH 1 zu CH 7 von sechs auf drei Hops verkürzt werden
konnte. Würden Dienste nur über n = 3 Hops verbreitet, würde beispielsweise im ersten Beispiel
ein Dienst von CH 25 nicht zu CH 24 verbreitet werden, sondern müsste über eine aufwendigere
Suche über alle Service Registry-Knoten gesucht werden (s. Kapitel 5.2.4).
Anstatt Gateways zu nutzen, wäre es auch denkbar, alle vom Algorithmus als Router gewählten
Knoten als CHs zu wählen, also auch die Gateway-Knoten. Dies würde dazu führen, dass anstatt
eines Three-Hop-Connected Dominating Sets ein One-Hop-Connected Dominating Set gebildet würde. Es ist allerdings nicht nötig, dass zusätzliche Knoten Service Registry-Informationen
speichern, da durch das Dominating Set bereits sichergestellt ist, dass jeder Knoten einen direkten Nachbarn hat, der Teil des Service Registry-Netzwerks ist. Als Gateways sind diese Knoten
allerdings nötig, um Informationen zwischen den Service Registry-Knoten austauschen zu können.
5.2.2.6 Terminierung
Der Algorithmus terminiert unabhängig von den Eingabedaten, auch in Fällen, in denen kein
Three-Hop-Connected Dominating Set gebildet werden kann. Es können drei Fälle unterschieden werden, wie der Algorithmus terminieren kann:
1. Es wurde erfolgreich ein Three-Hop-Connected Dominating Set gebildet.
2. Es kann kein Dominating Set gebildet werden.
3. Es kann kein Three-Hop-Connected Dominating Set gebildet werden.
Im ersten Fall durchläuft der Algorithmus erfolgreich alle 6 Schritte und kommt zum gewünschten Ergebnis. Dieser Fall wurde in Kapitel 5.2.2.4 im Detail beschrieben.
Im zweiten Fall erkennt der Algorithmus in Schritt 2 (s. Listing 5.2, Zeilen 23-25), dass es keinen
Knoten in Vopt \ VCH gibt, der einen weiteren Knoten abdeckt, aber trotzdem Vout 6= V ist, d.h. es
gibt Knoten, die weder selbst CH werden können noch Nachbarknoten haben, die CH werden
können. Dieser Fall kann eintreten, wenn ein oder mehrere Knoten aus Vexcl als direkte Nachbarn
nur andere Knoten aus Vexcl haben und daher für sie kein CH gefunden werden kann. Abb. 5.14
74
Kapitel 5. Middleware
illustriert ein solches Beispiel: Für Knoten 1 kann hier kein CH gefunden werden, da der einzige
benachbarte Knoten 2 ebenfalls von der Wahl als CH ausgeschlossen wurde. Der Algorithmus
bricht in diesem Fall in Schritt 2 mit dem Fehler NoDominatingSetExists ab. Als Folge würde
das System nicht starten, sondern eine Fehlermeldung anzeigen. Zur Behebung des Problems
könnten beispielsweise zusätzliche Knoten platziert werden, die als CH dienen können.
1
2
4
3
Abbildung 5.14.: Beispiel, in dem kein Dominating Set gebildet werden kann
Im dritten Fall scheitert der Algorithmus in Schritt 4 (s. Listing 5.4) daran, alle CHs direkt oder
über Gateways miteinander zu verbinden. Im vorherigen Schritt wurden alle einzelnen noch
nicht gewählten Kann-Knoten hinzugefügt, welche mindestens zwei Partitionen verknüpfen
können. In diesem Schritt werden alle Paare von noch nicht gewählten Kann-Knoten hinzugefügt, die mindestens zwei Partitionen verbinden können. Wenn der Router-Graph Grouter auch
nach diesem Schritt noch nicht zusammenhängend ist, d.h. es noch mehr als eine Partition gibt,
so lässt sich aus diesen Eingangsdaten kein Three-Hop-Connected Dominating Set bilden. Dies
ist dann der Fall, wenn entweder der Eingangsgraph schon nicht zusammenhängend ist oder
aber zwei Partitionen nur über einen Knoten verbunden werden könnten, der in Vexcl enthalten
und damit von der Wahl als Gateway ausgeschlossen ist. In Abb. 5.15 sind beide Fälle illustriert: Zwischen CH 5 und den anderen CHs kann keine Verbindung geschaffen werden, da der
Eingabegraph nicht zusammenhängend ist. Darüber hinaus kann CH 1 nicht über ein Gateway
mit CH 3 verbunden werden, da Knoten 2 von der Wahl zum Gateway ausgeschlossen wurde.
Wenn das Bilden eines Three-Hop-Connected Dominating Sets nicht möglich ist, bricht der Algorithmus in Schritt 4 mit der Fehlermeldung NotStronglyConnected ab (s. Listing 5.4, Zeile 27).
Auch in diesem Fall wird beim Start des Systems eine Fehlermeldung angezeigt und es müssen
beispielsweise weitere Kann-Knoten hinzugefügt werden.
1
2
3
4
5
6
Abbildung 5.15.: Beispiel, in dem die CH eines Dominating Sets nicht über Gateways verbunden werden
können
5.2.3 Dienst-Bekanntmachung und Replikation
Da die Service Registry lokal repliziert werden soll (s. Kapitel 5.2.1.1), muss ein Service RegistryKnoten einen neuen Dienst, der ihm bekannt gemacht wird (Publish), mit den umliegenden Service Registry-Knoten austauschen. Ist ein Knoten selbst ein Service Registry-Knoten, so speichert
er die Informationen über den neuen Dienst zunächst nur in seiner eigenen Service Registry
und vermerkt ihn als neuen Dienst, der noch nicht repliziert wurde. Ist der Knoten kein Service
Registry-Knoten, so sendet er eine Publish-Nachricht an seinen CH. Da die Menge der CHs ein
Dominating Set ist, beträgt die Entfernung eines Knotens zu seinem CH nie mehr als einen Hop.
Die Nachricht muss also nicht über andere Knoten weitergeleitet werden. Empfängt ein CH eine
5.2. Architektur des Middleware Layers
75
Publish-Nachricht von einem seiner Follower, so speichert er die in der Nachricht enthaltenen
Dienstinformationen in seiner eigenen Service Registry und vermerkt sie als neu.
Die lokale Replikation findet nun über eine regelmäßige Synchronisation der Registry statt. In regelmäßigen, konfigurierbaren Abständen, z.B. alle 2 Sekunden, sendet ein Service Registry-Knoten
eine Publish-Nachricht per lokalen Broadcasts an alle Nachbar-Router, d.h. CHs und GatewayKnoten. In dieser Nachricht sind zunächst jene Dienste enthalten, die als neu vermerkt wurden und noch nicht repliziert wurden. Ist in der Nachricht noch Platz für weitere Dienste, füllt
der Knoten die Nachricht mit bereits zuvor replizierten Diensten aus seiner Registry auf. Er
iteriert dabei durch die Dienste in seiner Registry und fährt beim nächsten Synchronisationsvorgang an der Stelle fort, an der er beim letzten Mal aufgehört hat, sodass sichergestellt wird,
dass alle Dienste der Reihe nach regelmäßig synchronisiert werden. Dienste, welche n Hops von
ihm entfernt liegen und daher nicht weiter repliziert werden sollen, überspringt er dabei. Empfängt ein Gateway-Knoten eine solche Publish-Nachricht, inkrementiert er den Hop-Counter
der darin enthaltenen Dienste und leitet die Nachricht per lokalem Broadcast weiter. Erreicht
oder übersteigt der Hop-Counter aller enthaltenen Dienste den Parameter n, über den Dienste
repliziert werden, so verwirft der Gateway-Knoten die Nachricht11 . Trifft eine solche PublishNachricht schließlich bei einem CH ein, so aktualisiert dieser seine Registry anhand der enthaltenen Dienstinformationen. Dabei inkrementiert er zunächst den Hop-Counter für jeden Dienst
und prüft, ob der Dienst in n-Hop-Reichweite ist. Ist dies der Fall, wird anhand einer vom Service Provider vergebenen Sequenznummer überprüft, ob bereits aktuellere Informationen über
diesen Dienst gespeichert sind. Ist dies nicht der Fall, übernimmt der Knoten die Dienstinformation aus der empfangenen Nachricht in seine Registry und markiert sie als neu, sodass sie beim
nächsten Synchronisationsvorgang bevorzugt weitergeleitet wird.
Damit zwei Gateways Nachrichten nicht in einer Schleife austauschen, ist jede Nachricht mit einer vom Sendeknoten12 vergebenen Sequenznummer versehen. Ein Router merkt sich zu jedem
Sendeknoten die bereits weitergeleiteten Sequenznummern in einem Ringspeicher und leitet nur
jene Nachrichten weiter, die nicht bereits in diesem Speicher vermerkt sind.
5.2.4 Aufsuchen eines Dienstes
Möchte ein Knoten einen Dienst in der Service Registry nachschlagen und ist selbst kein Service
Registry-Knoten, so sendet er eine Search-Nachricht an seinen CH. Ist ein Knoten selbst Service
Registry-Knoten und möchte einen Dienst suchen oder empfängt eine Search-Nachricht von einem anderen Knoten, so schlägt er den gesuchten Dienst zunächst in seiner eigenen Service
Registry nach. Da Dienste nur über n Hops repliziert werden, kann ein Service Registry-Knoten
nicht wissen, ob ein Dienst, den er selbst nicht gespeichert hat, von einem weiter entfernten Knoten angeboten wird. Aus diesem Grund muss er eine Search-Nachricht an die anderen Service
Registry-Knoten senden. Dazu sendet er sie per lokalem Broadcast an die benachbarten Gateways und CHs. Wird sie von einem Gateway-Knoten empfangen, so leitet dieser die Nachricht
per lokalem Broadcast weiter. Wird sie von einem CH empfangen, schlägt dieser den Dienst zunächst in seiner eigenen Service Registry nach und leitet sie ggf. weiter, falls er den gesuchten
Dienst nicht gespeichert hat.
11 Da
Gateway-Knoten Publish-Nachrichten nur ganz weiterleiten oder verwerfen, kann es sein, dass der HopCounter einzelner Dienste in einer Nachricht den Parameter n übersteigt, während andere enthaltene Dienste
ihn noch nicht erreicht haben.
12 Der Sendeknoten ist der CH, der die Publish-Nachricht ursprünglich versendet hat, nicht ein dazwischen liegendes
Gateway.
76
Kapitel 5. Middleware
Da es im Router-Graphen Kreise geben kann (vgl. Abb. 5.9), können Search-Nachrichten einen
Knoten auf mehreren Pfaden erreichen. Damit sie nicht mehrfach bearbeitet werden, speichert
jeder Router in einem Ringpuffer eine Liste mit Identifiern der bereits bearbeiteten Search-Nachrichten. Trifft eine in dieser Liste gespeicherte Search-Nachricht erneut ein, wird sie verworfen.
Damit Search-Nachrichten nicht unnötig lange weitergeleitet werden müssen, berechnet der CH,
der eine Suche beginnt, die maximale Hop-Anzahl, über die eine Search-Nachricht übertragen
werden muss, nach Gl. (5.1).
hopsMax = max (min(maxCHDist, maxCHDist − n + 2), 0)
(5.1)
Wie sich diese Gleichung ergibt, wird am in Abb. 5.16 illustrierten Beispiel gezeigt. Gehen wir
zunächst davon aus, dass CH 1 eine Suche gestartet hat und nach einem Dienst von Knoten 8
sucht. Knoten 8 hat seinen Dienst bei CH 6 publiziert. Es wird angenommen, dass Dienstinformationen über n = 2 Hops um den ursprünglichen CH repliziert werden (s. Kapitel 5.2.1.1), d.h.
die Information über den Dienst von Knoten 8 wurde von CH 6 zu CH 5 und CH 4 repliziert.
CH 1 berechnet die Entfernung in Hops zum am weitesten entfernten CH 6 (maxCHDist = 5)
mit Hilfe der jedem Knoten bekannten Topologie-Information. Eine von CH 1 gestartete Suche muss folglich nur bis zu CH 4 weitergeleitet werden, da sämtliche Dienstinformationen
von CH 5 und CH 6 zu ihm repliziert werden. So ergibt sich, dass eine Suche von CH 1 über
maxCHDist − n = 5 − 2 = 3 Hops weitergeleitet werden muss. Der folgende Fall zeigt allerdings, dass dies nicht immer ausreicht.
1
2
3
4
5
6
7
8
Abbildung 5.16.: Beispiel-Topologie zur Illustration von Gl. (5.1)
Gehen wir nun davon aus, dass CH 6 eine Suche startet und einen Dienst sucht, der von Gateway
2 angeboten wird. Gateway 2 hat seinen Dienst bei CH 1 publiziert. Von dort wird der Dienst
über n = 2 Hops repliziert, allerdings befinden sich keine CHs im Umkreis von 2 Hops um
CH 1. Daher wird die Dienstinformation nicht repliziert. Damit eine Suche von CH 6 Dienste
finden kann, die bei CH 1 registriert wurden, ist es also nötig, dass seine Suchanfrage über
maxCHDist − n + 2 = 5 − 2 + 2 = 5 Hops weitergeleitet wird. Die Konstante 2 ergibt sich daraus,
dass in einem Three-Hop-Connected Dominating Set maximal zwei Gateways zwischen zwei
CHs möglich sind (s. Kapitel 5.2.2.3). Damit in jedem Fall alle Dienste gefunden werden, erfolgt
die Weiterleitung immer über maxCHDist − n + 2 Hops, auch wenn dies – wie im obigen Fall –
in manchen Fällen weiter als nötig ist.
Ist der Parameter der lokalen Replikation n < 2, beispielsweise n = 1, so würde sich allerdings
mit maxCHDist − n + 2 = maxCHDist − 1 + 2 = maxCHDist + 1 ergeben. Es macht aber in
keinem Fall Sinn, eine Suchanfrage über mehr als maxCHDist Hops weiterzuleiten. Daher wird
das Minimum aus beiden Werten gebildet, um hopsMax zu bestimmen (s. Gl. (5.1)).
5.3. Implementierung
77
Falls n so groß konfiguriert wird, dass es maxCHDist + 2 übersteigt, so ist die Registry vollständig repliziert und keine Weiterleitung einer Search-Nachricht nötig. Das Maximum mit 0 sorgt
in diesem Fall dafür, dass hopsMax nicht negativ wird.
Bevor ein Router eine Search-Nachricht weiterleitet, prüft er, ob seine Entfernung zu dem CH,
der die Suche initiiert hat, bereits hopsMax beträgt. Ist dies der Fall, wird die Nachricht nicht
weitergeleitet. Die Entfernung kann er anhand der lokal vorhandenen Topologie bestimmen.
Findet ein Knoten einen gesuchten Dienst in seiner Service Registry, sendet er eine SearchResultNachricht an den ursprünglich suchenden Knoten. Dies kann ein CH, aber auch ein Follower
sein. Die Route, über die diese Nachricht gesendet wird, bestimmt der Network Layer. Empfängt
ein Router eine SearchResult-Nachricht, so bearbeitet er ggf. später eintreffende Search- oder
SearchResult-Nachrichten zur selben Suchanfrage nicht mehr, da bereits ein Ergebnis für diese
Suche gefunden wurde.
Trifft die SearchResult-Nachricht am ursprünglich suchenden Knoten ein, so wird dort das Event
ausgelöst, welches mit der Suchanfrage verknüpft war, sodass die Anwendung das Suchergebnis verarbeiten und den gefundenen Dienst ggf. abonnieren oder aufrufen kann. Trifft kein
Suchergebnis ein, wird ein Timeout ausgelöst, der ebenfalls das mit der Suchanfrage verknüpfte
Event auslöst, um die Anwendung über die fehlgeschlagene Suche zu informieren.
5.3 Implementierung
Der in Kapitel 5.2.2 beschriebene Clustering-Algorithmus sowie die partiell verteilte Service Registry wurden im Rahmen dieser Arbeit in C++ implementiert. Zum Testen des ClusteringAlgorithmus wurde dieser um eine Debug-Ausgabe erweitert, welche sich über das igraphPaket für R [igr] als Graph plotten lässt. Die Abbildungen in Kapitel 5.2.2 wurden auf diese
Weise erstellt.
Die verteilte Service Registry baut auf einem im Rahmen einer Masterarbeit [Eng13] entwickelten BiPS-Framework für die in Kapitel 4.1 vorgestellte Imote 2-Plattform auf. Da zum Testen der
verteilten Service Registry eine Topologie mit mindestens 20 Knoten sinnvoll ist, und nicht so
viele Imote 2-Knoten zur Verfügung standen, wird eine BiPS-Integration für den Netzwerksimulator ns-3 [ns-] genutzt. Diese bildet die BiPS-Schnittstellen nach, sodass die Middleware im
Simulator die gleichen Schnittstellen wie auf dem Imote 2 nutzen kann. Somit ist sie ohne große
Anpassungen sowohl im Simulator als auch auf echter Hardware lauffähig.
Abb. 5.17 zeigt die Architektur der Implementierung als UML-Klassendiagramm13 . Die Anwendung besteht hier aus der Klasse NodeApplication, welche von der Promid-Klasse (ProduktionsMiddleware) erbt. Diese bietet der Anwendung Zugriff auf die Funktionalität der Middleware.
Sie erbt selbst von den drei Klassen der BiPS-ns-3-Integration BipsPtpMux, BipsTimer und BipsEvent. Die Klasse BipsPtpMux erbt schließlich von der ns-3-Klasse Application. Somit handelt es
sich bei der Anwendungsklasse NodeApplication ebenfalls um eine ns-3-Applikation. Allerdings
nutzt sie die ns-3-Funktionen, beispielsweise zum Senden und Empfangen von Rahmen, nicht
direkt, sondern greift ausschließlich auf die Promid-Middleware zu, welche wiederum auf die
BiPS-ns-3-Integration zugreift. Diese nutzt schließlich die ns-3-Funktionalität. Auf dem Imote 2
würde anstatt der BiPS-ns-3-Integration das BiPS-Framework genutzt, welches auf die Hardware des Imote 2 zugreift.
13 Das
Diagramm zeigt nur eine Auswahl der vorhandenen privaten Methoden.
78
Kapitel 5. Middleware
NodeApplication
CstartApplicationgN:1void
CpublishMyServicesgN:1void
CsearchSomeServicegN:1void
CsearchResultgresult:PromidSerachResultN:1void
Anwendung
PromidCHselect
PromidNetworkDist
8calcDistancesgsrc:uint8_t+V:std::set<uint8_t>+
E:std::set<std::pair<uint8_t+
uint8_t>1>N:1uintwk_tI
PromidCircularQueue
Promid
Promid
1 ,initgN:1void
,publishServicegservice:PromidServiceN:1void
2
,searchServicegidentifier:char[E>]+eventHandle:uintwk_tN:1void
,getNodeIdgN:1uint8_t
1
8insertgelement:TN:1void
8containsgelement:TN:1bool
BiPS-ns-3-Integration
ns-3
1
BipsPtpMux
Application
BipsTimer
<<use>>
1
8PromidCHselectgN
8getNodeTypegnodeId:uint8_tN:1PromidNodeType
8getCHofgnodeId:uint8_tN:1uint8_t
8getHighestRouterIdgN:1uint8_t
1 8getRouterNodesgN:1std::set<uint8_t>
8getCHNodesgN:1std::set<uint8_t>
8getRouterEdgesgN:1std::set<std::pair<uint8_t+
uint8_t>1>
CnotStronglyConnectedgN:1bool
CupdatePartitiongv:uint8_t+p:uint8_tN
CmakeRouterguint8_t:int+CH:boolN
CnetworkTopologygN:1void
BipsEvent
Simulator
Abbildung 5.17.: UML-Klassendiagramm der Implementierung
Im ns-3-Simulator wird ein Peer-to-Peer-Medium und kein echtes Funkmedium simuliert. Dies bedeutet, dass die Topologie des Netzwerks statisch konfiguriert wird und sich die Topologie nicht
durch die Simulation ergibt. Dadurch, dass die zu simulierende Topologie vorgegeben werden
kann, können die resultierenden Ergebnisse besser mit den erwarteten Ergebnissen verglichen
werden, was das Testen vereinfacht.
Auf jedem Knoten wird ein NodeApplication-Objekt erzeugt. Alle Knoten haben die selbe Architektur, das Verhalten der Middleware unterscheidet sich allerdings abhängig davon, ob der Knoten vom Clustering-Algorithmus zum CH, Gateway oder Follower gemacht wird. Die Methode
startApplication() der Anwendungsklasse wird durch den ns-3-Simulator beim Starten eines Knotens aufgerufen. Sie initialisiert die Middleware, indem sie die init()-Methode der Promid-Klasse
aufruft. Außerdem setzt sie zwei Timer. Der erste Timer ruft die publishMyServices()-Methode
auf und publiziert damit die Dienste des Testknotens bei der Registry über die Promid-Methode
publishService(). Diese Methode implementiert die in Kapitel 5.2.3 beschriebene Publikation eines Dienstes. Der zweite Timer ruft die searchSomeService()-Methode auf, welche die PromidMethode searchService() nutzt, um nach einem Dienst zu suchen (s. Kapitel 5.2.4). Aktuell unterstützt die Middleware ausschließlich die Suche eines Dienstes anhand der Dienstkennung (identifier). Das Interface zur Suche ist asynchron, d.h. nachdem eine Suche gestartet wurde, läuft
die Applikation weiter und wird informiert, sobald das Suchergebnis feststeht. Dabei triggert
die Middleware die Ausführung des BiPS-Events mit dem Handle eventHandle, welches in der
Beispielanwendung die searchResult()-Methode aufruft und ihr das Suchergebnis result übergibt.
Weiterhin kann die Anwendung über die Promid-Methode getNodeId() die eigene Knoten-ID
abfragen, beispielsweise um sie als ID des Service Providers für selbst bereitgestellte Dienste
einzutragen.
Die Middleware besteht neben der Promid-Klasse aktuell aus drei weiteren Klassen. Die PromidCHselect-Klasse enthält den in Kapitel 5.2.2 vorgestellten Clustering-Algorithmus. Neben
den Hilfsmethoden notStronglyConnected() (s. Listing 5.7), makeRouter() (s. Listing 5.8) und updatePartition() (s. Listing 5.9) enthält diese Klasse eine Methode networkTopology(), welche die
Netzwerk-Topologie und die Konfiguration (Vopt , Vobl und Vexcl ) einliest. In der Simulation wird
die in ns-3 konfigurierte Topologie angefragt. Auf dem Imote 2 würde hier das Ergebnis der
automatischen Topologie-Bestimmung abgefragt. Der eigentliche Clustering-Algorithmus wird
5.3. Implementierung
79
durch den Konstruktor PromidCHselect() ausgeführt. Die Ergebnisse des Algorithmus können
anschließend über die folgenden sechs Methoden abgerufen werden:
• getNodeType(nodeId) liefert zu einer gegebenen Knoten-ID den Knoten-Typen zurück (CH,
Gateway oder Follower). Mit Hilfe dieser Methode bestimmt die Promid-Klasse u.a. den
eigenen Knoten-Typ und verhält sich dementsprechend unterschiedlich.
• getCHof(nodeId) liefert die Knoten-ID des CH-Knotens, zu dem der Knoten mit der ID
nodeId gehört. Mit dieser Methode fragt die Promid-Klasse u.a. ab, welcher Knoten der
eigene CH ist, zu dem sie z.B. Publish- und Search-Nachrichten sendet.
• getHighestRouterId() liefert die höchste Router-ID. Diesen Wert nutzt Promid bei der Allokation von Speicher zur Bemessung von Arrays.
• getRouterNodes() gibt die gewählten Router-Knoten zurück (Vrouter ).
• getCHNodes() gibt die gewählten CH-Knoten zurück (VCH ).
• getRouterEdges() gibt die Links des Router-Netzwerks zurück (Erouter ).
Die Klasse PromidNetworkDist dient dazu, die kürzesten Distanzen von einem Knoten src zu
allen anderen Knoten in der übergebenen Topologie zu bestimmen. Da bisher noch kein Network Layer vorhanden ist, der diese Funktionalität bietet, wurde für die Middleware hier eine Implementierung des Dijkstra-Algorithmus integriert. Die Promid-Klasse nutzt diese Information bei der Verbreitung von Search-Nachrichten, um die Distanz zum ursprünglichen CH
zu berechnen (s. Kapitel 5.2.4). Ohne Network Layer steht außerdem kein Routing zur Verfügung, um SearchResult-Nachrichten wie in Kapitel 5.2.4 beschrieben per Unicast zum ursprünglich suchenden Knoten zu übertragen. Daher erfolgt die Übertragung per Broadcast über
das Router-Netzwerk. Dabei wird durch PromidNetworkDist die kürzeste Entfernung auf dem
Router-Netzwerk zum ursprünglich suchenden Knoten bestimmt und der Broadcast auf diesen
Radius beschränkt.
Die Klasse PromidCircularQueue implementiert einen Ringpuffer. Die Promid-Klasse nutzt diesen, um die Identifier der bereits weitergeleiteten Nachrichten sowie der bereits beantworteten
Suchen zu speichern.
Die Klassen der BiPS-ns-3-Integration stellen der Middleware Funktionalität zum Senden und
Empfangen von Rahmen sowie zum Nutzen von Timern und Events bereit und verwenden
dabei in der Simulation u.a. die ns-3-Klassen Application und Simulator.
80
Kapitel 5. Middleware
6. KAPITEL
Zusammenfassung und Ausblick
In der vorliegenden Masterarbeit wurden zunächst die Anforderungen an drahtlose Kommunikationssysteme im Produktionsbereich zusammengefasst und anhand eines Anwendungsszenarios konkretisiert. Dabei hat sich gezeigt, dass die Anforderungen in diesem Bereich sich von
anderen Bereichen, in denen drahtlose Kommunikationssysteme eingesetzt werden, wie beispielsweise der Unterhaltungselektronik, deutlich unterscheiden: Hier stehen nicht in erster Linie Performanz-Aspekte wie hohe Übertragungsraten im Vordergrund, sondern Aspekte wie
Zuverlässigkeit, Sicherheit, Energieeffizienz und die garantierte Einhaltung von Dienstgüte.
Daher ist es nicht verwunderlich, dass sich bei der Analyse von existierenden Standards gezeigt hat, dass aus anderen Bereichen stammende Standards nicht oder nur unzureichend den
gesteckten Anforderungen gerecht werden können. Die näher betrachteten Standards WirelessHART und ISA 100.11a, welche speziell für den hier betrachteten Einsatzbereich entwickelt wurden, eignen sich dagegen erwartungsgemäß besser. Der direkte Vergleich dieser beiden Standards hat neben vielen grundlegenden Gemeinsamkeiten vor allem Unterschiede im Detail aufgezeigt. Insgesamt zeigt sich ISA 100.11a flexibler, wohingegen WirelessHART strengere Vorgaben macht und damit den Einsatz und die Kompatibilität der Geräte vereinfacht.
Obwohl das anschließend entworfene drahtlose Kommunikationssystem ebenfalls Gemeinsamkeiten mit WirelessHART und ISA 100.11a teilt, sieht es in vielen Punkten Lösungen vor, welche
den Anforderungen des Anwendungsfalls besser gerecht werden. Auf MAC-Ebene werden exklusive Reservierungen flexibler Länge unterstützt, was eine bessere Ausnutzung des Mediums
zur Folge hat. Außerdem ist die Superslot-Konfiguration während des Betriebs dynamisch anpassbar. Dies ermöglicht höheren Ebenen, Dienste dynamisch während des Betriebs zu abonnieren und abzubestellen. Die höhere Flexibilität geht dabei nicht zu Lasten der Zuverlässigkeit: Mit
exklusiven Reservierungen und QoS-Unterstützung des Routings und auf Middleware-Ebene
können Dienstgüte-Garantien zuverlässig eingehalten werden. Dank automatischer TopologieBestimmung müssen vorhandene Kommunikationslinks nicht manuell konfiguriert werden und
anhand der erkannten Interferenzlinks wird die effiziente Nutzung von SDMA vereinfacht. Die
Unterscheidung zwischen mobilen und stationären Knoten erlaubt es beispielsweise, mobile Roboter im selben Kommunikationssystem anzubinden wie stationäre Knoten, ohne dass sich für
die Kommunikation zwischen stationären Knoten Nachteile ergeben. Weiterhin wird zwischen
batteriebetriebenen Knoten und solchen mit einer festen Energieversorgung unterschieden, sodass erstere bestmöglich entlastet und ihre Batterielebensdauer erhöht werden kann.
Nicht alle Aspekte dieses Konzeptes konnten im Rahmen dieser Arbeit im Detail ausgearbeitet
werden. Insbesondere die Unterstützung dynamischer Reservierungen sowie mobiler Knoten
82
Kapitel 6. Zusammenfassung und Ausblick
wurde nur skizziert und bietet interessante Fragestellungen für weitere Arbeiten. Ein geeignetes
Routing-Verfahren, welches mobile und batteriebetriebene Knoten berücksichtigt und trotzdem
QoS-Unterstützung bietet, stellt einen weiteren Themenkomplex für anschließende Forschung
dar.
Der Middleware Layer des konzipierten Kommunikationssystems wurde im Rahmen dieser Arbeit nicht nur konzeptionell entworfen, sondern in Teilen auch implementiert und im Simulator
getestet. Dabei wurde anders als bei WirelessHART oder ISA 100.11a ein dienstorientierter Ansatz verfolgt. Dadurch können Dienste bei einer Service Registry dynamisch registriert und aufgesucht werden, sodass Dienstnutzer und Dienstanbieter entkoppelt werden. Das Austauschen
von Knoten oder Verschieben von Diensten auf andere Knoten wird damit erleichtert und so die
Flexibilität des Systems verbessert. Mit der partiell verteilten Service Registry wurde außerdem
eine skalierbare Architektur implementiert. Indem der entwickelte Algorithmus zur Auswahl
der Service Registry-Knoten ein Dominating Set bildet, wird sichergestellt, dass jeder Knoten
einen schnellen Zugriff auf die Service Registry hat. Knoten ohne feste Stromversorgung können von der Wahl als Service Registry-Knoten ausgeschlossen werden, sodass sie durch den
Nachrichtenaustausch, der zwischen Service Registry-Knoten stattfindet, nicht zusätzlich belastet werden. Durch die über einen Parameter konfigurierbare Replikation kann je nach Bedarf
von einer vollständigen Replikation über eine lokal beschränkte Replikation bis hin zu keiner
Replikation das System an das Nutzungsprofil der Anwendung angepasst werden.
Außer der Service Registry muss die Middleware auch Unterstützung für das Aufrufen, Abonnieren und Abbestellen von Diensten bieten. Diese Funktionalität, bei der insbesondere die
QoS-Unterstützung wichtig ist, wurde nicht im Rahmen dieser Arbeit implementiert und wird
im Anschluss daran fertiggestellt werden. Außerdem wurde im Rahmen dieser Arbeit die implementierte Service Registry ausschließlich im ns-3-Simulator getestet. Die Migration auf die
Imote 2-Plattform steht noch aus. Sie sollte aber keinen großen Aufwand darstellen, da die Implementierung die gleichen Schnittstellen nutzt, die das BiPS-Framework auch auf dem Imote 2
zur Verfügung stellt.
A. ANHANG
Abschätzung der minimalen Datenrate
Im Folgenden soll die minimal benötigte Datenrate beispielhaft abgeschätzt werden, die ein
drahtloses Kommunikationssystem bieten muss, um für den Einsatz zur Überwachung, Steuerung und Regelung von Produktionsanlagen geeignet zu sein. Dazu wird die minimale Datenrate berechnet, die benötigt wird, um alle Nachrichten aus dem Anwendungsszenario aus Kapitel 2 zu versenden und dabei die maximal erlaubte Verzögerung einzuhalten. Es wird für diese
Abschätzung von einem TDMA-basierten Medienzugriff mit exklusiven Reservierungen ausgegangen. Für periodische Nachrichten ergibt sich das Intervall, in dem Slots reserviert werden,
aus dem Minimum des Sendeintervalls und der maximalen Verzögerung. Bei ereignisbasierten
Nachrichten ergibt sich das reservierte Intervall aus dem Minimum von maximaler Verzögerung und dem minimalen Ereignis-Eintritts-Intervall Intmin . Es wird bei der Berechnung der
Netto-Datenrate vereinfachend davon ausgegangen, dass kein Overhead durch Synchronisation, Inter-Frame-Spaces oder Umschaltzeiten anfällt14 .
Die Topologie betreffend wird der ungünstigste Fall angenommen, bei dem jeder Knoten beim
Senden alle anderen Knoten stört und daher keine gleichzeitigen Übertragungen stattfinden
können. Multipliziert man für jeden Nachrichtentyp die Nachrichtengröße15 mit der Anzahl
einzuplanender Nachrichten je Sekunde, so erhält man in der Summe eine minimale NettoÜbertragungsrate von ca. 12,3 kbit/s (s. Tab. A.1) für einen Knoten. Geht man weiter davon aus,
dass im Schnitt alle Nachrichten über 5 Hops weitergeleitet werden und daher 5 mal übertragen
werden müssen, so ergibt sich eine minimale Netto-Datenrate von 61,5 kbit/s für das gesamte
Netzwerk. Die benötigte Brutto-Datenrate unterscheidet sich z.B. auf Grund unterschiedlicher
Header-Längen je nach Kommunikationssystem. Beim Einsatz von IEEE 802.15.4 ergibt sich beispielsweise auf dem Physical Layer ein Overhead von 6 Byte für Präambel, Start of frame Delimiter (SFD) und Längenfeld, dazu kommen mindestens 5 Byte durch Header des MAC Layers und
weitere auf dem Network Layer. Da im Anwendungsszenario sehr kleine Nachrichten geschickt
werden (max. 10 Byte), ergibt sich ein recht hoher Header-Anteil. Wenn man davon ausgeht,
dass der Aufwand für Header und Netzwerk-Management zwei Drittel des gesamten Verkehrs
ausmacht, so reicht eine Brutto-Datenrate von mindestens 185 kbit/s im Anwendungsszenario
aus.
14 Dieser
15 Inkl.
Overhead wird bei der Abschätzung der Brutto-Datenrate berücksichtigt.
eindeutiger Kennung (16 Bit) sowie bei Sensorwerten Zeitstempel (32 Bit)
84
Anhang A. Abschätzung der minimalen Datenrate
Tabelle A.1.: Abschätzung der Datenrate im betrachteten Anwendungsszenario
Bit / Nachricht
Intervall
Anzahl
Reservierungen/s
Bit/s
80
80
56
56
64
49 → 56
56
52
80
1,0
1,0
0,5
1,0
0,1
1,0
5,0
1,0
1,0
10
6
2
10
10
10
1
20
1
10,0
6,0
4,0
10,0
100,0
10,0
0,2
20,0
1,0
800,0
480,0
224,0
560,0
6.400,0
560,0
11,2
1040,0
80,0
24
17 → 24
48
32
1,0
1,0
1,0
1,0
4
10
1
5
4,0
10,0
1,0
5,0
96,0
240,0
48,0
160,0
32
24
17 → 24
32
0,5
0,5
0,1
1,0
5
4
4
2
10,0
8,0
40,0
2,0
320,0
192,0
960,0
64,0
Sensorwerte
Temperatur
Druck
Gaserkennung
Vibration
Drehzahl
Lichtschranke
Produktfertigstellung
Maschinenzustand
Roboterposition
Steuerungsbefehle
Ventilöffnung / Schließung
Maschinenabschaltung
Zielposition Roboter
Heizungs-Solltemperatur
Regelungsbefehle
Motorgeschwindigkeit
Ventilöffnung / Schließung
Maschinenabschaltung
Heizungs-Solltemperatur
Gesamt
12.235,2
Literaturverzeichnis
[ABB]
ABB: ABB Group - Automation and Power Technologies. http://www.abb.com.
[AGB11]
A KERBERG , J OHAN, M IKAEL G IDLUND und M ATS B JORKMAN: Future research challenges in wireless sensor and actuator networks targeting industrial automation. In: 9th
IEEE International Conference on Industrial Informatics (INDIN), Seiten 410–415. IEEE,
2011.
[APVH00] A MIS , A.D., R. P RAKASH, T.H.P. V UONG und D.T. H UYNH: Max-min d-cluster formation in wireless ad hoc networks. In: INFOCOM 2000. Nineteenth Annual Joint Conference of the IEEE Computer and Communications Societies. Proceedings. IEEE, Band 1,
Seiten 32–41 vol.1, 2000.
[AY07]
A BBASI , A MEER A HMED und M OHAMED Y OUNIS: A survey on clustering algorithms
for wireless sensor networks. Computer communications, 30(14):2826–2841, 2007.
[Bak05]
B AKER , N ICK: ZigBee and Bluetooth strengths and weaknesses for industrial applications.
Computing & Control Engineering Journal, 16(2):20–25, 2005.
[BBH13]
B ENTALEB , A BDELHAK, A BDELHAK B OUBETRA und S AAD H AROUS: Survey of Clustering Schemes in Mobile Ad hoc Networks. Communications and Network, 5:8, 2013.
[BGK13]
B RAUN , T OBIAS, R EINHARD G OTZHEIN und T HOMAS K UHN: Mode-Based Scheduling
with Fast Mode-Signaling - A Method for Efficient Usage of Network Time Slots. In: 6th
International Conference on Computer Science and Information Technology (ICCSIT), 2013.
[Blu04]
B LUETOOTH SIG: Bluetooth Specification 2.0 +EDR, November 2004.
[Blu09]
B LUETOOTH SIG: Bluetooth Specification 3.0 +HS, April 2009.
[Blu10]
B LUETOOTH SIG: Bluetooth Specification 4.0, Juni 2010.
[Blu13a]
B LUETOOTH SIG: Bluetooth Basics. http://www.bluetooth.com/Pages/Basics.aspx,
Dezember 2013.
[Blu13b]
B LUETOOTH SIG: Bluetooth Specification 4.1, Dezember 2013.
B LUETOOTH SIG: Low Energy. http://www.bluetooth.com/Pages/Low-Energy.
aspx, Dezember 2013.
[Blu14]
B LUETOOTH SIG: About the Bluetooth SIG. https://www.bluetooth.org/en-us/
members/about-sig, Juni 2014.
[CAH96] C AMPBELL , A NDREW, C RISTINA A URRECOECHEA und L INDA H AUW: A review of
QoS architectures. In: Proc. of 4th IFIP International Workshop on Quality of Service
(IWQS’96), Paris, France, 1996.
[CGR12] C HRISTMANN , D., R. G OTZHEIN und S. R OHR: The Arbitrating Value Transfer Protocol
(AVTP) - Deterministic Binary Countdown in Wireless Multi-Hop Networks. In: Computer
Communications and Networks (ICCCN), 2012 21st International Conference on, Seiten 1
–9, August 2012.
[Blu13c]
86
Literaturverzeichnis
C HIPCON / T EXAS I NSTRUMENTS: CC2420 datasheet. http://focus.ti.com/lit/ds/
symlink/cc2420.pdf, 2007. Revision SWRS041b.
[CNM10] C HEN , D EJI, M ARK N IXON und A LOYSIUS M OK: Application Layer. In: WirelessHART™, Seiten 39–44. Springer, 2010.
[Cro09]
C ROSSBOW: Imote 2 Datasheet.
http://www.xbow.com/Products/Product_pdf_
files/Wireless_pdf/Imote2_Datasheet.pdf, 2009.
[DB97]
D AS , B. und V. B HARGHAVAN: Routing in ad-hoc networks using minimum connected
dominating sets. In: IEEE International Conference on Communications, 1997. ICC ’97
Montreal, Towards the Knowledge Millennium, Band 1, Seiten 376–380 vol.1, Juni 1997.
[DH98]
D EERING , S TEPHEN und R. H INDEN: RFC 2460 - Internet protocol, version 6 (IPv6)
specification. http://tools.ietf.org/html/rfc2460, Dezember 1998.
[DW05]
D AI , F EI und J IE W U: On Constructing k-Connected k-Dominating Set in Wireless Networks. In: Parallel and Distributed Processing Symposium, 2005. Proceedings. 19th IEEE
International, Seiten 81a–81a, April 2005.
[ECG14] E NGEL , M ARKUS, D ENNIS C HRISTMANN und R EINHARD G OTZHEIN: Implementation
and Experimental Validation of Timing Constraints of BBS. In: Wireless Sensor Networks,
Seiten 84–99. Springer, 2014.
[Eis06]
E ISENACHER , M ICHAEL: Optimierung von Ultra-Wideband-Signalen (UWB). Doktorarbeit, Universität Karlsruhe, 2006.
[Ene02]
E NERGETICS I NC . ( IN COLLABORATION WITH US D EPT. OF E NERGY, O FFICE OF
E NERGY E FFICIENCY AND R ENEWABLE E NERGY ): Industrial wireless technology for the
21st century. Proc. Industrial Wireless Workshop, Dezember 2002.
[Ene11]
E NERGY H ARVESTING J OURNAL: Devawave tapes out scensor DW1000 chip.
http://www.decawave.com/assets/files/press/Energy%20Harvesting%
20Journal%20July%2028%202011.pdf, Juli 2011.
[Eng13]
E NGEL , M ARKUS: Optimierung und Evaluation Black Burst-basierter Protokolle unter Verwendung der Imote 2-Plattform. Masterarbeit, TU Kaiserslautern, 2013.
[Erl05]
E RL , T HOMAS: Service-Oriented Architecture: Concepts, Technology, and Design. Prentice
Hall, 2005.
[Eur10]
E UROPEAN C OMMITTEE FOR E LECTROTECHNICAL S TANDARDIZATION (CENELEC): Industrial communication networks - Wireless communication network and communication profiles - WirelessHART™ (IEC 62591:2010), Juni 2010.
[GH09]
G UNGOR , V EHBI C und G ERHARD P H ANCKE: Industrial wireless sensor networks:
Challenges, design principles, and technical approaches. Industrial Electronics, IEEE Transactions on, 56(10):4258–4265, 2009.
[GK08]
G OTZHEIN , R EINHARD und T HOMAS K UHN: Decentralized Tick Synchronization for
Multi-Hop Medium Slotting in Wireless Ad Hoc Networks Using Black Bursts. In: Proceedings of the Fifth Annual IEEE Communications Society Conference on Sensor, Mesh and
Ad Hoc Communications and Networks, SECON 2008, June 16-20, 2008, Crowne Plaza,
San Francisco International Airport, California, USA, Seiten 422–431. IEEE, 2008.
[GOP12] G OMEZ , C ARLES, J OAQUIM O LLER und J OSEP PARADELLS: Overview and Evaluation of Bluetooth Low Energy: An Emerging Low-Power Wireless Technology. Sensors,
12(9):11734–11753, 2012.
[HA06]
H ANCKE , G ERHARD P und B EN A LLEN: Ultrawideband as an industrial wireless solution. Pervasive Computing, IEEE, 5(4):78–85, 2006.
[Chi07]
Literaturverzeichnis
87
[Haa98]
H AARTSEN , J AAP: Bluetooth-The universal radio interface for ad hoc, wireless connectivity.
Ericsson review, 3(1):110–117, 1998.
[HAR10]
HART C OMMUNICATION F OUNDATION: WirelessHART Approved by IEC as
First International Standard for Wireless Communication in Process Automation.
http://hartcomm.org/hcf/news/pr2010/WirelessHART_approved_by_IEC.
html, April 2010.
[HAR14a] HART C OMMUNICATION F OUNDATION: About the HART Protocol. http://www.
hartcomm.org/protocol/about/aboutprotocol.html, Januar 2014.
[HAR14b] HART C OMMUNICATION F OUNDATION: HART Communication Foundation Product Catalog. http://www.hartcommproduct.com/inventory2/index.php?action=
listcat, Mai 2014.
[Hei09]
H EISE N ETZE: Bluetooth SIG wendet sich von UWB ab. http://www.heise.de/netze/
meldung/Bluetooth-SIG-wendet-sich-von-UWB-ab-847114.html, Oktober 2009.
[HT11]
H UI , J ONATHAN und PASCAL T HUBERT: RFC 6282 - Compression format for IPv6 datagrams over IEEE 802.15. 4-based networks. http://tools.ietf.org/html/rfc6282,
September 2011.
[IEC10]
IEC: IEC 62591 ed1.0, April 2010.
[IEC11]
IEC: IEC 62601 ed1.0, November 2011.
[IEC12]
IEC: IEC/PAS 62734 ed1.0, März 2012.
[IEC14]
IEC: IEC 61158-1 ed1.0, Mai 2014.
[IEE99]
IEEE: IEEE 802.11b™-1999, September 1999.
[IEE03a]
IEEE: IEEE 802.11a™-1999, Juni 2003.
[IEE03b]
IEEE: IEEE 802.11g™-2003, Juni 2003.
[IEE03c]
IEEE: IEEE 802.15.4™-2003, Oktober 2003.
[IEE04a]
IEEE: IEEE 802.11i™-2004, Juli 2004.
[IEE04b]
IEEE: IEEE 802.15 WPAN High Rate Alternative PHY Task Group 3a (TG3a). http:
//www.ieee802.org/15/pub/TG3a.html, August 2004.
[IEE05a]
IEEE: IEEE 802.11e™-2005, November 2005.
[IEE05b]
IEEE: IEEE 802.15.1™-2005, Juni 2005.
[IEE06]
IEEE: IEEE 802.15.4™-2006, Septeber 2006.
[IEE07]
IEEE: IEEE 802.15.4a™-2007, August 2007.
[IEE09a]
IEEE: IEEE 802.11n™-2009, Oktober 2009.
[IEE09b]
IEEE: IEEE 802.15.4c™-2009, April 2009.
[IEE09c]
IEEE: IEEE 802.15.4d™-2009, April 2009.
[IEE11a]
IEEE: IEEE 802.15.4™-2011, September 2011.
[IEE11b]
IEEE: IEEE P802.11 TGs. http://grouper.ieee.org/groups/802/11/Reports/tgs_
update.htm, Juli 2011.
[IEE12a]
IEEE: IEEE 802.11™-2012, März 2012.
[IEE12b]
IEEE: IEEE 802.11ad™-2012, Oktober 2012.
[IEE12c]
IEEE: IEEE 802.15.4e™-2012, April 2012.
[IEE12d]
IEEE: IEEE 802.15.4f™-2012, April 2012.
[IEE13a]
IEE: Wireless: Keine Einigung möglich. IEE Elektrische Automatisierung + Antriebstechnik, 58:8, April 2013.
88
Literaturverzeichnis
[IEE13b]
IEEE: IEEE P802.11 - TASK GROUP AC. http://grouper.ieee.org/groups/802/
11/Reports/tgac_update.htm, September 2013.
[igr]
IGRAPH CORE TEAM :
[IME07]
IMEC: Ultra-low-power radio.
html/1384152.html, 2007.
[Int94]
I NTERNATIONAL T ELECOMMUNICATION U NION (ITU): Information technology –
Open Systems Interconnection – Basic Reference Model: The basic model, Juli 1994.
[Int07a]
I NTERNATIONAL O RGANIZATION FOR S TANDARDIZATION: ISO/IEC 26907:2007, Information technology – Telecommunications and information exchange between systems –
High Rate Ultra Wideband PHY and MAC Standard, 2007.
[Int07b]
I NTERNATIONAL O RGANIZATION FOR S TANDARDIZATION: ISO/IEC 26908:2007, Information technology – Telecommunications and information exchange between systems –
MAC-PHY Interface for ISO/IEC 26907, 2007.
[ISA]
ISA: ISA | The International Society of Automation. http://www.isa.org/.
[ISA08]
ISA: The ISA100 Standards - Overview and Status. http://www.isa.org/Content/
Microsites1134/SP100,_Wireless_Systems_for_Automation/Home1034/ISA100_
Overview_Oct_2008.pdf, Oktober 2008.
[ISA11]
ISA: ANSI/ISA-100.11a-2011 Wireless systems for industrial automation: Process control
and related applications, Mai 2011.
[ISA14a]
ISA: About ISA.
http://www.isa.org/Content/NavigationMenu/General_
Information/About_ISA1/About_ISA.htm, Januar 2014.
[ISA14b]
ISA: Automation Standards Compliance Institute (ASCI).
//www.isa.org/standards-and-publications/isa-standards/
automation-standards-compliance-institute/, Mai 2014.
[ISA14c]
ISA-100 W IRELESS C OMPLIANCE I NSTITUTE: ISA-100 Wireless Compliance Institute.
http://www.isa100wci.org/, Mai 2014.
[ISA14d]
ISA-100 W IRELESS C OMPLIANCE I NSTITUTE: ISA100 Wireless Product Listing, Mai
2014.
[Ive07]
I VERSEN , W ES: WirelessHart Ready for Prime Time. http://www.automationworld.
com/information-management/wirelesshart-ready-prime-time, Oktober 2007.
[Kow02]
K OWALK , W.: Rechnernetze - Dezentrale Zuteilungsprotokolle. http://einstein.
informatik.uni-oldenburg.de/rechnernetze/seite211.htm, März 2002.
[Kra13]
K RAMER , C HRISTOPHER: Ermittlung des Netzzustands von Funk-Netzwerken. http:
//vs.informatik.uni-kl.de/publications/2013/Kr13/Kr13.pdf, 2013.
igraph R package. http://igraph.org/r/.
http://www.imec.be/ScientificReport/SR2007/
https:
[LLYL13] L IANG , W EI, S HUAI L IU, Y UTUO YANG und S HIMING L I: Research of Adaptive Frequency Hopping Technology in WIA-PA Industrial Wireless Network. In: Advances in Wireless Sensor Networks, Seiten 248–262. Springer, 2013.
[LSH08]
L ENNVALL , T OMAS, S TEFAN S VENSSON und F REDRIK H EKLAND: A comparison of
WirelessHART and ZigBee for industrial applications. In: IEEE International Workshop on
Factory Communication Systems, 2008. WFCS 2008., Seiten 85–88. IEEE, 2008.
[LWE05]
L OW, K AY-S OON, W.N.N. W IN und M ENG -J OO E R: Wireless Sensor Networks for Industrial Environments. In: International Conference on Computational Intelligence for Modelling, Control and Automation, 2005 and International Conference on Intelligent Agents,
Web Technologies and Internet Commerce, Band 2, Seiten 271–276, Nov 2005.
Literaturverzeichnis
89
[MTA05]
M ATHIESEN , M OGENS, G ILLES T HONET und N IELS A AKWAAG: Wireless ad-hoc networks for industrial automation: current trends and future prospects. In: Proceedings of the
IFAC World Congress, Prague, Czech Republic, Seiten 89–100, 2005.
[ns-]
NS -3
[Pos80]
P OSTEL , J ON: RFC 768 - User datagram protocol.
rfc768, August 1980.
P ROJEKT: ns-3. http://www.nsnam.org/.
http://tools.ietf.org/html/
[PRML06] P ETROVA , M., J. R IIHIJARVI, P. M AHONEN und S. L ABELLA: Performance study of
IEEE 802.15.4 using measurements and simulations. In: Wireless Communications and
Networking Conference, 2006. WCNC 2006. IEEE, Band 1, Seiten 487–492, April 2006.
[PW10]
PATEL , M AULIN und J IANFENG WANG: Applications, challenges, and prospective in
emerging body area networking technologies. Wireless Communications, IEEE, 17(1):80–
88, 2010.
[SS12]
S CHILL , A LEXANDER und T HOMAS S PRINGER: Verteilte Systeme. Springer-Verlag Berlin Heidelberg, 2012.
[Staa]
S TATISTA / IDC: Absatz von Smartphones weltweit vom 1. Quartal 2009 bis zum 1. Quartal 2014.
http://de.statista.com/statistik/daten/studie/246300/umfrage/
weltweiter-absatz-von-smartphone-nach-quartalen/.
[Stab]
S TATISTA / IDC: Absatz von Tablets weltweit in den Jahren 2010 bis
2013.
http://de.statista.com/statistik/daten/studie/253303/umfrage/
weltweiter-absatz-von-media-tablets/.
[Stac]
S TATISTA
/
J I W IRE:
Anzahl
der
öffentlichen
Wi-Fi
Locations
und
Hot Spots weltweit vom 2. Quartal 2009 bis zum 2. Quartal 2013.
http://de.statista.com/statistik/daten/studie/158346/umfrage/
anzahl-der-wi-fi-locations-weltweit-seit-dem-2-quartal-2009/.
[US 06]
US D EPT. OF E NERGY, O FFICE OF E NERGY E FFICIENCY AND R ENEWABLE E NERGY:
Wireless Sensor Network - Advanced Energy Management Solution for Industrial Motors.
August 2006.
[UWB06] UWB F ORUM: UWB Forum and WiMedia Alliance Committed to Commercializing
UWB. http://web.archive.org/web/20061006143558/http://www.uwbforum.org/
index.php?option=com_content&task=view&id=121&Itemid=2, Januar 2006.
[Vol96]
V OLKMANN , L UTZ: Fundamente der Graphentheorie. Springer Verlag Wien, 1996.
[WG07]
W EBEL , C HRISTIAN und R EINHARD G OTZHEIN: Formalization of Network Qualityof-Service Requirements. In: D ERRICK , J OHN und J ÜRI VAIN (Herausgeber): FORTE,
Band 4574 der Reihe Lecture Notes in Computer Science, Seiten 309–324. Springer, 2007.
[WL99]
W U , J IE und H AILAN L I: On Calculating Connected Dominating Set for Efficient Routing
in Ad Hoc Wireless Networks. In: Proceedings of the 3rd International Workshop on Discrete
Algorithms and Methods for Mobile Computing and Communications, DIALM ’99, Seiten
7–14, New York, NY, USA, 1999. ACM.
[YHE02]
Y E , W EI, J OHN H EIDEMANN und D EBORAH E STRIN: An Energy-Efficient MAC Protocol for Wireless Sensor Networks. In: INFOCOM 2002. Twenty-First Annual Joint Conference of the IEEE Computer and Communications Societies. Proceedings. IEEE, Band 3,
Seiten 1567–1576. IEEE, 2002.
[Zig08]
Z IG B EE S TANDARDS O RGANIZATION: ZigBee Specification.
Specifications/ZigBee/download.aspx, Januar 2008.
http://zigbee.org/
90
[ZLY09]
Literaturverzeichnis
Z HANG , X IAOLING, W EI L IANG und H AIBIN Y U: Adaptive Timeslot Scheduling of Long
Cycle Data in WIA-PA network. In: Asia-Pacific Conference on Computational Intelligence
and Industrial Applications, 2009. PACIIA 2009, Band 1, Seiten 267–271, Nov 2009.
Herunterladen