Entwicklung eines Supervisory, Control and Data
Transcrição
Entwicklung eines Supervisory, Control and Data
Bachelorarbeit Kamran Yusufi Entwicklung eines Supervisory, Control And Data Aquisition Systems (SCADA) für Fahrerlose Autonome Transportsysteme unter Verwendung von Standard-Software, Funktechnologien und TCP/IPNetzwerken Fakultät Technik und Informatik Studiendepartment Informatik Faculty of Engineering and Computer Science Department of Computer Science Kamran Yusufi Entwicklung eines Supervisory, Control And Data Acquisition Systems (SCADA) für fahrerlose autonome Transportsysteme unter Verwendung von StandardSoftware, Funktechnologien und TCP/IP Netzwerken Bachelorarbeit eingereicht im Rahmen der Bachelorprüfung im Studiengang Technische Informatik am Studiendepartment Informatik der Fakultät Technik und Informatik der Hochschule für Angewandte Wissenschaften Hamburg Betreuender Prüfer: Prof. Dr. rer. nat. Reinhard Baran Zweitgutachter: Prof. Dr. rer. nat. Stefan Pareigis Abgegeben am 11. Dezember 2006 Kamran Yusufi Thema der Bachelorarbeit Entwicklung eines Supervisory, Control And Data Acquisition Systems (SCADA) für Fahrerlose Autonome Transportsysteme unter Verwendung von Standard-Software, Funktechnologien und TCP/IP Netzwerken Stichworte SCADA, Fahrerlose Autonome Transportsysteme, CAN, WLAN, Bluetooth, LabVIEW, WinCC, Aksenboard, TCP/IP, Telemetrie Kurzzusammenfassung In der vorliegenden Bachelorarbeit wurde ein Steuerungssystem für die drahtlose Steuerung, Überwachung und Prozessdatenerfassung eines fahrerlosen autonomen Systems entwickelt. Das entwickelte Steuerungssystem ist in der Lage die Steuerinformationen vom Fahrzeug-Leitstand über CAN/WLAN-Modul an das Fahrzeug zu senden und die aktuelle Fahrzeugdaten wie Geschwindigkeit oder Richtungswinkel zu empfangen und diese zurück an den Leitstand zu übertragen. Die gesendeten bzw. empfangenen Steuerinformationen und die Sensormesswerte werden in einer Datenbank abgespeichert. Der Leitstand für das Steuerungssystem wurde unter der Verwendung der grafischen Programmiersprache LabVIEW implementiert. Für eine Implementation der WLAN-Kommunikation zwischen dem CAN/WLAN-Modul und dem Leitstand wurde Programmiersprache Java eingesetzt. Die Fahrzeugsteuerung und das CAN-Bus-Interface sind mit AKSENBOARD der FH-Brandenburg realisiert und unter Verwendung der Programmiersprache C implementiert. Kamran Yusufi Title of the paper Development of a Supervisory, Control And Data Acquisition Systems (SCADA) for a driverless autonomous transport System under the usage of a standard software, radio technologies and TCP/IP Networks functionality Keywords SCADA, Driverless autonomous transport systems, CAN, WLAN, Bluethooth, LabVIEW, WinCC, Aksenboard, TCP/IP, Telemetrie Abstract This paper presents the development of a Supervisory, Control And Data Acquisition Systems of a driverless autonomous transport vehicle via WLAN and CAN-Bus, which is able to send the controlled information to the vehicle and receive the actual speed, the directions angel of the vehicle and the sensor values of the installed sensors. All these information will save in a Database. The graphical programming language LabVIEW is applied for the control area of this System. Sending and receiving of the controlled information, control of vehicle and CAN-Bus-Interface is implemented in Java and C programming languages, as calculation system for the vehicle, the microcontroller Aksenboard is applied, which is developed at the FH-Brandenburg. Danksagung Ohne die Unterstützung einiger Personen hätte ich diese Bachelorarbeit in dieser Art nicht bewerkstelligen können. Somit nutze ich die Möglichkeit denjenigen, die mich fachlich und vor allem moralisch tatkräftig unterstützt haben, einen Dank auszusprechen: Vielen Dank für die kontinuierliche Unterstützung durch die Professoren und Mitarbeiter der HAW Hamburg, insbesondere ist gemeint: Professor Reinhard Baran, für die Anregung, Kritik und Ermunterung. Professor Stefan Pareigis für die Übernahme des Zweitgutachtens. Die Mitarbeiter aus dem CPT-Labor für die fachliche und materielle Unterstützung. Der herzlichste Gruß und Dank sei an meine unglaublich tolle Familie gerichtet, besonders an meine Eltern, die sich immer um mein leibliches Wohlsein gekümmert haben und meinen großen Bruder Patan, der sich für alle meine Probleme eingesetzt hat. Ein riesengroßer Dank geht an Wolfgang und Lilo Schnelle, ohne euch wäre das Ganze überhaupt nicht möglich gewesen. Danke für die moralische und finanzielle Unterstützung. Besonderer Dank sei an Hella Neddermeyer gerichtet für die unzähligen Deutschunterrichtsstunden. Ohne Beherrschung der deutschen Sprache währe so ein Studium nicht denkbar. Ich danke einige meiner Kommilitonen und Freunden, deren Namen hier nicht auftauchen, die aber mich während meiner Abschlussarbeit unterstützt haben. Danke Jungs, das war für mich ein sehr spaßiges Studium. Weiterhin gilt mein Dank Herrn Eric Robert und Maxim Van de Moortele für deren Zusammenarbeit zur Realisierung der Datenbankanbindung Zum Schluss danke ich dem deutschen Volk und dem Steuerzahler für das Ermöglichen dieser Ausbildung. Das ist ja nicht überall selbstverständlich. IV Inhaltsverzeichnis Danksagung....................................................................................................................... IV Inhaltsverzeichnis............................................................................................ V Tabellenverzeichnis...................................................................................... VII Bilderverzeichnis .........................................................................................VIII 1 Einleitung.................................................................................................... 9 1.1 2 Motivation ................................................................................................................ 9 1.1.1 Autonome Fahrzeuge.......................................................................................... 9 1.1.2 Telemetrie ........................................................................................................ 10 1.1.3 Fernwartung ( Fahrzeuge, die selbstständig die Werkstatt rufen )...................... 11 1.1.4 WLAN ............................................................................................................. 12 1.2 Anforderung an das System..................................................................................... 13 1.3 Zielsetzung ............................................................................................................. 14 Theoretische Grundlagen......................................................................... 15 2.1 Fahrerlose Autonome Transportsysteme.................................................................. 15 2.2 CAN-Bus ................................................................................................................ 15 2.2.1 Übertragungsverfahren ..................................................................................... 16 2.2.2 Übertragungsrate und Leitungslänge................................................................. 17 2.2.3 CAN-Bus Topologie......................................................................................... 18 2.2.4 Objektidentifier ................................................................................................ 19 2.2.5 Arbitrierung (Aushandeln des Medienzugriffs), Priorität................................... 20 2.2.6 Frame-Aufbau .................................................................................................. 21 2.2.7 Sampling, Synchronisierung, Sicherung............................................................ 22 2.2.8 Gründe für den Einsatz des CAN-Busses .......................................................... 23 2.3 Kabellose Datenübertragung ................................................................................... 24 2.3.1 TCP/IP Netze.................................................................................................... 24 2.3.2 WLAN IEEE802.11x....................................................................................... 29 2.3.3 Bluetooth.......................................................................................................... 36 V 3 Realisierung .............................................................................................. 39 3.1 Gesamtkonzept........................................................................................................ 39 3.2 Auswahl der optimalen Funktechnologie................................................................. 40 3.2.1 Grobe Selektion................................................................................................ 42 3.2.2 WLAN und Bluetooth im Vergleich ................................................................. 42 3.3 3.3.1 Standard PC...................................................................................................... 46 3.3.2 WLAN-Interface............................................................................................... 46 3.3.3 PC-Lenkrad ...................................................................................................... 48 3.3.4 CAN/WLAN-Modul (IGW400/CAN)............................................................... 48 3.3.5 Aksenboard ...................................................................................................... 53 3.3.6 Fahrzeug........................................................................................................... 55 3.3.7 Infrarot-Distanzsensoren................................................................................... 56 3.4 Benötigte Standard-Software und Werkzeuge ......................................................... 57 3.4.1 LabVIEW ......................................................................................................... 57 3.4.2 WinCC ............................................................................................................. 63 3.4.3 LabVIEW vs. WinCC ....................................................................................... 68 3.5 4 Benötigte Hardware für die Realisierung des Systems ............................................. 46 Realisierung und Implementation des Systems ........................................................ 68 3.5.1 Leitstand und seine Aufgaben ........................................................................... 69 3.5.2 Die Funktionen des Leitstandes sind wie folgt aufgeteilt:.................................. 70 3.5.3 Prinzipieller Aufbau der Leitstand-Software ..................................................... 70 3.5.4 Schnittstellenspezifikation für das SCADA System .......................................... 73 3.5.5 Funktionsweise des CAN/WLAN-Moduls ........................................................ 75 3.5.6 CAN-Schnittstelle und Steuerung des Fahrzeuges............................................. 75 3.5.7 Implementation und Werkzeuge ....................................................................... 77 3.5.8 Access-Datenbank ............................................................................................ 81 Zusammenfassung.................................................................................... 82 4.1 Resümee ................................................................................................................. 82 4.2 Aussichten und Weiterführung ................................................................................ 83 Literaturverzeichnis....................................................................................... 84 Anhang............................................................................................................ 88 VI Tabellenverzeichnis Tabelle 2.1: Portstruktur [AnTan] ........................................................................................ 26 Tabelle 2.2: TCP/IP Kommunikation zwischen Client und Server........................................ 29 Tabelle 2.3: OSI-Schichten-Modell. [AnTan]....................................................................... 33 Tabelle 2.4: Übersicht WLAN nach IEEE 802.11 ................................................................ 35 Tabelle 3.1 Energieverbrauch bei WLAN und Bluetooth...................................................... 43 Tabelle 3.2 Latenzzeiten bei Bluetooth und WLAN ............................................................. 44 Tabelle 3.3 IEEE 802.11 vs. Bluetooth................................................................................. 45 Tabelle 3.4 Übersicht der ISM-Frequenzbereiche [Wal-Emb] .............................................. 51 Tabelle 3.5 Aufbau des WLAN-Datenpaketes...................................................................... 73 VII Bilderverzeichnis Bild 2.1: CAN-Bus Topologie.............................................................................................. 19 Bild 2.2 Datenübertragung mit OSI Schichten-Modell ......................................................... 25 Bild 2.3: IEEE 802.11-WLAN im Infrastruktur Mode [SSV1] ............................................. 32 Bild 3.1 Schematisches Konzept der Kommunikationsteilnehmer ........................................ 39 Bild 3.2 Funktechnik-Aktuelle Standards im Vergleich........................................................ 40 Bild 3.3 WLAN USB-Dongle .............................................................................................. 46 Bild 3.4 IP-Adressen-Konfiguration für ein PC-WLAN-Interface ........................................ 47 Bild 3.5 PC-Lenkrad, Gas-/Bremspedale.............................................................................. 48 Bild 3.6 CAN/WLAN-Modu [SSV1] ................................................................................... 48 Bild 3.7 Blockdiagramm des CAN-WLAN-Moduls [SSV1]................................................. 49 Bild 3.8 Übertragungsprotokoll für WLAN Funkverbindung [SSV1] ................................... 52 Bild 3.9 DasAksenboard ...................................................................................................... 53 Bild 3.10 Das Fahrzeug........................................................................................................ 55 Bild 3.11 Infrarot-Distanzsensor GP2D12 45 ...................................................................... 56 Bild 3.12: Blockdiagramm des LabVIEW Entwicklungssystems.......................................... 58 Bild 3.13: Frontpanel des LabVIEW Entwicklungssystems.................................................. 59 Bild 3.14 WinCC Grafikprogramm ...................................................................................... 64 Bild 3.15 Schematische Darstellung der Kommunikationsteilnehmer ................................... 68 Bild 3.16 Leitstand des SCADA Steuerungssystem.............................................................. 69 Bild 3.17 Flussdiagramm der Leitstandschleifen zu Steuerung des Fahrzeuges..................... 71 Bild 3.18 Screenshot von der LabVIEW-Entwicklungsumgebung........................................ 78 Bild 3.19 Screenshot von der Eclipse-Entwicklungsumgebung............................................. 79 Bild 3.20 Screenshot vom ConText-Editor ........................................................................... 80 Bild 3.21 Auszug aus der Datenbank.................................................................................... 81 VIII 1 Einleitung 1.1 Motivation 1.1.1 Autonome Fahrzeuge Autonome Fahrzeuge, fahrerlose Transportsysteme, auch mobile Roboter genannt, stellen in zunehmendem Umfang wichtige innerbetriebliche Kapazitäten für die Anlieferung und Weiterreichung von Rohmaterialien, Zwischen- oder auch Endprodukten zur Verfügung. Die Fahrzeuge müssen in der Lage sein, bestimmte Betriebsstätten oder Positionen selbständig anzusteuern, ohne an stationäre Hindernisse (Wände, Maschinen) oder bewegliche Objekte (Menschen, andere Fahrzeuge) anzustoßen. Dazu bedarf es eines steuerbaren Fahrzeugs, das die vorgegebenen Wege zurücklegen kann, einer angemessenen Sensorik, die in der Lage ist, Hindernisse zu erkennen und ausreichend "Intelligenz", um den Hindernissen auszuweichen. Autonome Fahrzeuge sind intelligente Fahrzeuge, die die ihnen übertragen Aufgaben ohne menschliche Unterstützung durchführen können. Die Anwendung solcher autonomer Systeme ist weit reichend. Nicht nur wegen der Kostenreduzierung und der Erhöhung der Effektivität, ist der Einsatz autonomer Fahrzeuge in der Industrie wichtig, sondern ein weiterer wichtiger Aspekt für die Entwicklung und die Anwendung autonomer Fahrzeug ist das Operieren solcher Fahrzeuge in Umgebungen die für Menschen gefährlich sind. Im militärischen aber auch im zivilen Bereich arbeitet die Forschung daran solche autonomen Systeme zu entwickeln, die als Erkundungs- oder Bergungsgeräte in schwer zugänglichen Bereichen eingesetzt werden können. Beispiel dafür sind: Minenräumung oder Arbeiten in giftiger oder verstrahlter Umgebungen. In der Luft- und Raumfahrttechnik werden autonome Systeme für den Einsatz auf fremden Planeten oder als Hilfsmittel für Satelliten und Raumstationen entwickelt. Autonome Systeme stehen auch für eine Erhöhung der Effektivität und somit für Kostenreduzierung. Deswegen wird auch im industriellen Bereich die Entwicklung der autonomen Systeme immer mehr vorangetrieben. Zur Wahrnehmung der Umwelt werden bei den autonomen Fahrzeugen Sensoren eingesetzt. Dadurch wird sicheres Navigieren ermöglicht, und gleichzeitig ist durch Aktoren auch eine Manipulation von Objekten möglich. 9 1.1.2 Telemetrie Die Telemetrie wird seit 1920 für die Nachrichtenübermittlung aus Wetterballonen verwendet. Sie erlebte einen großen Aufschwung mit der Entwicklung der Großraketen in den 40er Jahren. Unter den Begriff Telemetrie (= Fernmessung) versteht man die Übertragung von Messwerten eines am Messort befindlichen Messfühlers (Sensor) zu einer räumlich getrennten Stelle. An dieser Empfangsstelle können die Messwerte entweder gesammelt und aufgezeichnet, oder auch sofort ausgewertet werden. Telemetrie wird häufig durch einen Wirkungspfad zum erfassenden Sensor ergänzt, um so auf gelieferte Messwerte mit geeigneten Maßnahmen reagieren zu können. Dieser Rück-Pfad wird als Fernsteuerung (Telekommandierung, eng. Tele-Command) bezeichnet. Eine Telemetrie, bei der Messdaten über größere Entfernungen übertragen werden, wird als Fernfeldtelemetrie bezeichnet. Dies ist beispielsweise beim Sammeln von Wetterdaten, technischen Daten aus einem bewegten Fahrzeug (Flugzeug, Raumfahrzeug, Rennwagen), bei der Übermittlung von dezentraler Verkehrsinformation oder auch bei der Übermittlung medizinischer Daten eingesetzter Sonden an die Außenwelt gegeben. Als Nahfeldtelemetrie bezeichnet man Anwendungen, bei denen Daten über kurze Distanzen von bewegten Maschinenteilen auf ruhende Empfänger übermittelt werden. So werden beispielsweise Zustandsdaten von Gasturbinenrotoren oder Reifendrücke von drehenden KfzRädern übermittelt. Häufig werden die Daten an räumlich weit getrennten Messorten aufgenommen und per Telemetrie an eine zentrale Stelle gesendet, um dort aufgezeichnet und/oder ausgewertet zu werden. In der Regel müssen die anfallenden Messwerte zunächst in eine geeignete Form gebracht werden, damit sie telemetriert werden können. Besondere Aufmerksamkeit erfordert die Übertragung von Gleichspannungssignalen, wie sie z. B. bei resistiven oder kapazitiven Sensoren anfallen (z.B. Spannungsänderung an einem mit konstantem Strom durchflossenen, temperaturabhängigen Widerstand). Durch geeignete Maßnahmen ist eine solche Messpannung in eine Wechselspannung oder in eine Pulsfolge umzusetzen, damit Versorgungsspannungsänderungen und Temperaturdriften der Übertragungsbausteine keine Messwertänderung vortäuschen. Dafür geeignet ist beispielsweise eine Pulsfolge, deren Pulsfrequenz oder Pulsdauer vom Widerstands- oder Kapazitätswert des Fühlers abhängt. 10 Die Übertragungsfrequenz des Telemetriesenders kann mit einer solchen Pulsfolge oder auch mit einem vom Sensor unmittelbar gelieferten Wechselstromsignal moduliert werden. Im Empfänger wird dieses Signal durch eine geeignete Demodulation zurückgewonnen und daraus der zugehörige Messwert abgeleitet. Ein bei analogen Messsignalen angewendetes Verfahren ist beispielsweise ein Pulsformer mit nachgeschaltetem Tiefpassfilter. Heute sind praktisch nur noch digitale Telemetriesysteme gebräuchlich. Der erfasste Messwert wird vor Ort mit Hilfe eines Analog-Digital-Wandlers (ADC = A/D-Converter) in eine binäre Zeichenfolge umgesetzt, die anschließend mit geeignet moduliertem Träger telemetriert und empfangsseitig ohne Informationsverluste rekonstruiert werden kann. Hier findet ein Datenverkehr zwischen zwei Stationen statt, bei der die steuernde Messwerte empfangen (downlink) und die sensortragende die aus den Messwerten abgeleiteten Kommandos befolgen kann (uplink). Der Sensorträger vor Ort ist dabei mit Aktoren ausgestattet, die von einem Bediener aus der Ferne aufgrund der gelieferten Sensorinformationen gesteuert werden können. Beispiele hierfür sind Spezialroboter oder mit Kamera und Telemetrie versehene Flugobjekte. 1.1.3 Fernwartung ( Fahrzeuge, die selbstständig die Werkstatt rufen ) Aktuelle Forschungen zeigen, dass in Zukunft nicht nur Industrieanlagen, sondern auch Pkw, Lkw und Schienenfahrzeuge aus der Ferne gewartet werden können. [Siemens] Noch gibt es das nicht serienmäßig, aber in nicht allzu ferner Zukunft gehört die Ferndiagnose und -Wartung bei Straßen- und Schienenfahrzeugen zum Alltag, davon sind die Forscher bei Siemens überzeugt. Folgendes Szenario soll eine Telemetrieanwendung darstellen: Peter Schulz ist gerade unterwegs im Raum Hamburg, als sein Autotelefon klingelt. Der Produktmanager einer Medizintechnik-Firma nimmt über seine Freisprechanlage das Gespräch an. Am anderen Ende der Leitung ist ein Mitarbeiter seiner Kfz-Werkstatt. "Ihr Auto hat uns gemeldet, dass in Kürze die Bremsbeläge an Ihrem Fahrzeug getauscht werden müssen. Außerdem ist das Motoröl an der Verschleißgrenze, das müsste auch gewechselt werden. Um Folgeschäden zu vermeiden, sollten Sie beides spätestens nach tausend Kilometern beheben lassen.", "Ich komme aber erst in fünf Tagen nach Hamburg zurück", entgegnet Schulz. "Kein Problem", sagt der Kfz-Meister. Er schlägt vor, einen Fachbetrieb in Hannover zu suchen und den Wagen dort anzumelden. Kurze Zeit später teilt ihm der Automechaniker die Adresse 11 einer Werkstatt in Hannover und einen passenden Termin mit. Peter Schulz fährt beruhigt weiter. Die Gründe, eine Fernwartung zu realisieren, sind: Die fortschreitende Globalisierung im Verkehrsmarkt und der dadurch verstärkte Wettbewerb zwingen Transportgewerbe und Hersteller, die Kostensenkung anzustreben. Außerdem müssen sich die Fahrzeug-Hersteller von ihren Mitbewerbern differenzieren. Mit der Ferndiagnose können sie einen verbesserten Service anbieten und gleichzeitig die Kundenbindung intensivieren. Denn dadurch fallen für den Fahrer die lästigen Serviceintervalle weg. Der Kunde muss nur dann zur Werkstatt, wenn wirklich eine Wartung nötig ist. Somit spart auch er Zeit und Geld. 1.1.4 WLAN Einsatzszenarien für Funknetze gibt es seit über zehn Jahren, bislang vorwiegend für vertikale Märkte wie Flughäfen, Bahnhöfe, Einkaufszentren, Krankenhäuser, aber auch für Autovermietungen oder Restaurants (so genannte Hot Spots). In vielen anderen industriellen und technischen Bereichen gibt es die Möglichkeiten, solche Funknetze anzubieten, in denen man wie zum Beispiel von einem beweglichen Objekt, kabellos und dynamisch die Sensor-Messwerte an einen Arbeitsplatz senden, sie dort be- und weiter verarbeiten können. Diese Möglichkeiten sind noch nicht annähernd ausgeschöpft. Überall da, wo mehrere Daten von verschiedenen Komponenten mobil erfasst werden müssen oder ein sofortiger Zugriff auf hochaktuelle Daten erforderlich ist, erleichtern WLANs (WLAN eng. Wireless Local Area Network) das Leben und senken Kosten. Die Anwender merken meist überhaupt nicht, dass sie in einem Funknetz arbeiten. Die sonst so fehlerträchtige Konfiguration des Netzwerks entfällt, wenn es einmal eingerichtet ist. Die Mobilität durch WLANs sorgt in Firmen und allen anderen Bereichen jederzeit für schnellen Zugriff auf aktuelle Informationen, egal wo sich der fahrende Mess-Wagen oder ein Mitarbeiter gerade befindet - irgendwo auf dem Betriebsgelände, in einem Komplex oder im eigenen Büro. Das steigert die Produktivität und führt zu kürzeren Reaktionszeiten. 12 Im Rahmen dieser Bachelorarbeit soll diese Technik insbesondere angewendet werden, um die Mess-Sensoren mobiler zu machen bzw. die Steuerdaten und die Telemetriewerte von einem mobilen Fahrzeug zu bekommen, und dabei gleichzeitig den Netzkontakt zu halten. Zudem gewinnt Internet Remote Control immer mehr an Bedeutung - auch hier kann diese Technik flexiblere Lösungen ermöglichen. In sofern ist eine WLAN-Technologie für Telemetrie Anwendungen sehr relevant Eine WLAN Netzanbindung kann hier eine ideale Abhilfe schaffen. Zur Unterstützung solcher Projekte kann die Anwendung eines WLAN-Netzes wertvolle Hilfe leisten, um größere Datenmengen problemlos transformieren zu können. Außerdem kann damit der Nutzen eines solchen Netzes für großflächigere Anwendungen untersucht werden. 1.2 Anforderung an das System Die grundsätzliche Anforderung an das System ist, dass ein Autonomes Fahrerloses Fahrzeug kabellos von einem stationären Rechner (Leitstand), manuell bzw. autonom gesteuert wird. Des Weiteren soll es ein Steuerungssystem entwickelt werden, das einerseits eine Art Telemetrie und Fernwartung darstellt sowie andererseits Überwachung, Steuerung, und Prozessdatenerfassung realisiert. Detailliertes Szenario einer Steuerung: Die vom PC-Lenkrad und Pedalen gelesenen Steuerdaten sollen auf dem Leitstand visualisiert, und vom Leitstand aus durch eine Funktechnologie an das Fahrzeug zur Steuerung des Fahrzeuges gesendet werden. Das Fahrzeug soll dann mit den empfangenen Daten gesteuert werden und seine aktuellen Steuerdaten bzw. Sensorwerte zurück an den Leitsand senden. Dies soll ebenfalls über Funktechnologien realisiert werden. Weiterhin sollten die Prozessdaten beim Leitstand empfangen, analysiert, visualisiert und zum Schluss in eine Datenbank abgespeichert werden. Für dieses Steuerungssystem soll zunächst ein Konzept, basierend auf die vorhandenen Technologien, entwickelt werden. Das Konzept soll anschließend implementiert und experimentell getestet werden. 13 1.3 Zielsetzung In Anbetracht der Anforderung an das System und mit Rückblick auf die Motivation ergeben sich für diese Bachelorarbeit folgende Ziele: 1. Entwicklung eines SCADA (eng.: Supervisory Control And Data Acquisition) Steurungssystems zur drahtlosen Steuerung des fahrerlosen Transportsystem 2. Integration des vorhandenen CAN-WLAN-Moduls (eng. Controller Area Network)in das entwickelten SCADA Steuerungssystem. 3. Die Kommunikation innerhalb und außerhalb des Systems soll hauptsächlich kabellos über TCP/IP Netze funktionieren, was wiederum den Einsatz einer leistungseffizienten Technologie voraussetzt. 4. Die zu Steuerung des Fahrzeuges gesendete und vom Fahrzeug empfangenen Daten sollen durch eine Standard-Software visualisiert und für Weiterbarbeitung in eine Datenbank abgespeichert werden. Die Prozesse sollen dann automatisiert werden 5. Zusätzliches Ziel dieser Arbeit ist noch die Telemetrie-Anwendung eines fahrerlosen autonomen Systems zu entwickeln. 14 2 Theoretische Grundlagen 2.1 Fahrerlose Autonome Transportsysteme Autonome Fahrzeuge stellen hochkomplexe, dynamische Systeme dar, für deren Verwirklichung die Forschungsergebnisse vieler Wissenschaftszweige zusammengeführt werden müssen. So sind für die Fahrzeugführung - insbesondere bei hohen Geschwindigkeiten - die Methoden der Regelungstechnik und Systemdynamik unverzichtbar. Zur Messung des Fahrzeugzustands und für die Wahrnehmung von Objekten in der Umgebung müssen die Signale unterschiedlichster Sensoren verarbeitet und fusioniert werden. GPS-Sensoren (Global Positioning System), Radar und Echtzeitbildverarbeitung sind nur einige mögliche Informationsquellen für ein autonomes Fahrzeug. Mit zunehmender Anzahl von Fähigkeiten des autonomen Fahrzeugs erhöht sich auch die Notwendigkeit einer flexiblen, effizienten Situationsanalyse und Verhaltensentscheidung. Hier benötigt man geeignete Methoden zur Wissensrepräsentation, Verhaltensmodellierung und künstlichen Intelligenz. 2.2 CAN-Bus1 Der CAN-Bus, auch CAN Controller Area Network genannt, wurde 1991 von der Firma Bosch für den Einsatz in Kraftfahrzeugen entwickelt. Das Protokoll ist in der ISO 11898 international standardisiert. Viele Halbleiterhersteller unterstützen den Bus in InterfaceBausteinen, Automatisierungstechnik und Mikrocontrollern. Der CAN-Bus stellt eine kostengünstige Alternative zum Kabelbaum zur Verfügung und somit ist der CAN eine preiswerte Schnittstelle. Das primäre Ziel des CAN-Busses ist die Kommunikation zwischen den Teilnehmern, die an diesen Bus angeschlossen sind. Es gibt mehrere Bussysteme, die auf dem CAN-Bus basieren, die Protokolle aber erweitert oder vereinfacht haben: CANopen / CANopen-Safety, DeviceNet / DeviceNet Safety, ESALAN, SafetyBUS. 1 Quellen: [CoArNe], [CANCoAr], [Bosch], [CAN-CIA] 15 Der CAN-Bus ist ein serieller Datenbus mit einer Übertragungsrate von bis zu 1.000.000 Bit/s, das entspricht ca. 30 DIN-A4-Seiten. Es handelt sich um eine konsequente Vernetzung der Fahrzeugelektronik in so genannten CAN-Bus-Systemen. Hier werden die Impulse nicht mehr über einzelne Kabelstränge, sondern über eine gemeinsame "Datenautobahn" übertragen. Bei der Kommunikation auf dem Bus werden alle Nachrichten gleichzeitig mit entgegengesetztem Signal zur Masse über zwei Leitungen gesendet (CAN-Low und CAN-High Leitung). Dadurch können Störspannungen, die eines der beiden Signale abschwächen oder verstärken dabei gleichzeitig das andere beeinflussen. So sind Fehlerinformationen nahe ausgeschlossen. Typische CAN-Bus Teilnehmer sind: • Automatisierungsgeräte wie z.B. SPS (Speicherbare Programmier Steuerung) • Personal Computer • Ein/Ausgabemodule • Antriebssteuerung • Analysegeräte wie z. B. CAN-Monitor • Bedien und Eingabegeräte als Mensch-Maschinen Interface(HMI, Human Machine Interface) • Sensoren und Aktoren 2.2.1 Übertragungsverfahren Der CAN-Bus arbeitet nach dem CSMA/CA (Carrier Sense Multiple Access / Collision Avoidance) Verfahren (nicht zu verwechseln mit CSMA/CD wie beim Ethernet). Dabei werden Kollisionen beim Buszugriff durch die Arbitrierung oder Bit-Arbitrierung vermieden (siehe 2.2.5 Arbitrierung). Des Weiteren kommt zur Datensicherung ein CRC-Verfahren zum Einsatz. Zur fortlaufenden Synchronisierung der Busteilnehmer wird Bitstopfen (bit stuffing) verwendet (siehe 2.2.6 Fram Aufbau). Der Bus ist entweder mit Kupferleitungen oder über Glasfaser ausgeführt. Zur schnellen Datenübertragung zwischen den Steuergeräten wird in der 16 Kfz-Technik das CAN-Bussystem verwendet. Der CAN-Bus arbeitet nach dem "Multi-Master Prinzip": Mehrere gleichberechtigte Steuergeräte (=Busteilnehmer) sind durch eine topologische Anordnung (siehe 2.2.3 CAN-Bus topologie) miteinander verbunden. Im Falle von Kupferleitungen arbeitet der CAN-Bus mit Differenzsignalen. Er wird normalerweise mit 3 Leitungen ausgeführt: CAN_HIGH, CAN_LOW und CAN_GND (Masse). CAN_LOW enthält den komplementären Pegel von CAN_HIGH gegen Masse. Dadurch können Gleichtaktstörungen unterdrückt werden, da ja die Differenz gleich bleibt. Die Übertragung der Daten erfolgt so, dass ein Bit, je nach dem Zustand, entweder dominant oder rezessiv auf den Busleitungen wirkt. Ein dominantes überschreibt dabei ein rezessives Bit. 2.2.2 Übertragungsrate und Leitungslänge Es wird zwischen einem Highspeed- und einem Lowspeed-Bus unterschieden. Bei einem Highspeed-Bus beträgt die maximale Datenübertragungsrate 1Mbit/s, bei Lowspeed 125kBit/s. Die maximale (theoretische) Leitungslänge beträgt z.B. bei 1Mbit/s 40m, bei 500kBit/s sind 100m möglich und bei 125kBit/s 500m. Diese Maximalwerte beruhen darauf, dass die Zeit, die ein Signal am Bus anliegt (Bitzeit, Bit/Sekunde), umso kürzer ist, je höher die Übertragungsrate ist. Mit zunehmender Leitungslänge steigt jedoch die Zeit, die ein Signal braucht, bis es am anderen Ende des Busses angekommen ist (Ausbreitungsgeschwindigkeit). Daher darf die Zeit, die ein Signal am Bus liegt, nicht kürzer sein als die Zeit, die ein Signal braucht, um sich auszubreiten. Zu beachten ist, dass sich das Signal nicht nur ausbreitet, sondern auch innerhalb der Signalzeit der Empfänger auf den Sender reagieren muss .Der Sender muss wiederum die eventuelle Buspegeländerung des/der Empfänger mitbekommen (siehe auch Arbitrierung). Deshalb ist die max. Leitungslänge etwas komplexer zu berechnen. Es müssen Verzögerungszeiten auf der Leitung, des Tranceiver (Sender und Empfänger), des Controllers (Sender und Empfänger) und der gesetzte Abtastzeitpunkt (Sender und Empfänger) berücksichtigt werden. Als Busmedium werden nach ISO11898-2 (High-Speed Medium Access Unit) Twisted-PairKabel mit einem Wellenwiderstand von 108...132 Ohm empfohlen. 17 Die maximale Teilnehmeranzahl auf physikalischer Ebene hängt von den verwendeten Bustreiberbausteinen (Transceiver, physikalische Anschaltung an den Bus) ab. Mit gängigen Bausteinen sind 32, 64 oder bis zu 110 (mit Einschränkungen bis zu 128) Teilnehmer pro Leitung möglich (Erweiterungsmöglichkeit über Repeater oder Bridge). 2.2.3 CAN-Bus Topologie Das CAN-Netzwerk wird als Linienstruktur aufgebaut. Stichleitungen sind in eingeschränktem Umfang zulässig. Des Weiteren sind auch ein ringförmiger Bus (Infotainment Bereich) sowie ein sternförmiger Bus (Zentralverrieglung) möglich. Beide Varianten haben im Vergleich zum linienförmigen Bus jeweils einen Nachteil: Im ringförmigen Bus sind alle Steuergeräte in Reihe geschaltet, so dass bei einem Ausfall eines Steuergeräts der gesamte Bus ausfällt. Der sternförmige Bus wird meist von einem Zentralrechner gesteuert, da diesen alle Informationen passieren müssen, mit der Folge, dass bei einem Ausfall des Zentralrechners keine Informationen weitergeleitet werden können. Bei einem Ausfall eines einzelnen Steuergeräts funktioniert der Bus weiter. Der lineare Bus hat den Vorteil, dass alle Steuergeräte parallel zu einer zentralen Leitung gehen. Nur wenn diese ausfällt, funktioniert der Bus nicht mehr. Bei einem Highspeed-Bus müssen zusätzlich 2 Abschlusswiderstände von je 120 Ohm (zwischen CAN_HIGH und CAN_LOW) an dem jeweiligen Ende verwendet werden (Siehe Bild 2.1 CAN-Bus Topologie) 18 CAN-Knoten 1 CAN-Knoten 2 CAN_H 125 Ohm 125 Ohm CAN_L CAN-Knoten 3 CAN-Knoten 4 Bild 2.1: CAN-Bus Topologie Als Anschlüsse haben sich 9pol.-D-SUB-Steckverbinder durchgesetzt. In Feldgeräten werden meist 5 Polige M12-Steckverbinder verwendet. Eine Übertragung von Daten und Energie ist optional vorgesehen. 2.2.4 Objektidentifier Der Objektidentifier kennzeichnet den Inhalt einer Nachricht, nicht das Gerät. Zum Beispiel kann in einem Messsystem den Parametern Temperatur, Spannung, Druck jeweils ein eigener Identifier zugewiesen sein. Die Empfänger entscheiden anhand des Identifiers, ob die Nachricht für sie relevant ist oder nicht. Zudem dient ein Objektidentifier auch einer Priorisierung der Nachrichten. Die Spezifikation definiert zwei verschiedene Identifier-Formate: • 11-bit Identifier, auch "Base frame format" genannt. Es können also 2032 Nachrichtentypen durch den CAN-Bus gesendet werden. • 29-bit Identifier, auch "Extended frame format" genannt. Damit sind es über 500 Millionen verschiedene Nachrichtentypen definierbar. 19 Ein Teilnehmer kann Empfänger und Sender von Nachrichten mit beliebig vielen Identifiern sein, aber umgekehrt darf es zu einem Identifier immer nur maximal einen Sender geben (damit die Arbitrierung funktioniert). 2.2.5 Arbitrierung (Aushandeln des Medienzugriffs), Priorität Der Buszugriff wird verlustfrei mittels der bitweisen Arbitrierung auf Basis der Identifier der zu sendenden Nachrichten aufgelöst. Dazu sensiert jeder Sender den Bus, während er gerade den Identifier sendet. Senden zwei Teilnehmer gleichzeitig, so überschreibt das erste dominante Bit eines der beiden, das entsprechend rezessive des anderen, welcher dieses erkennt und seinen Übertragungsversuch beendet, damit der andere seine Daten übertragen kann. Verwenden beide Teilnehmer den gleichen Identifier wird ein Error-Frame erzeugt (siehe 2.2.6 Frame-Aufbau). Daher empfiehlt der Standard, dass ein Identifier auch nur von maximal einem Teilnehmer verwendet werden soll. Durch dieses Verfahren ist auch eine Hierarchie der Nachrichten untereinander gegeben. Die Nachricht mit dem niedrigsten Identifier darf "immer" übertragen werden. Für die Übertragung von zeitkritischen Nachrichten kann also ein Identifier hoher Priorität (= niedrige ID, z.B. 0) vergeben werden, um ihnen so Vorrang bei der Übertragung zu gewähren. Dennoch kann selbst bei hoch priorisierten Botschaften der Sendezeitpunkt zeitlich nicht genau vorher bestimmt werden (nichtdeterministisches Verhalten). 20 2.2.6 Frame-Aufbau Es gibt vier verschiedene Arten von Frames: • Daten-Frame dient dem Transport von bis zu 8 Oktetten Daten • Remote-Frame dient der Anforderung eines Daten-Frames von einem anderen Teilnehmer • Error-Frame signalisiert allen Teilnehmern eine erkannte Fehlerbedingung in der Übertragung • Overload-Frame dient als Zwangspause zwischen Daten- und Remote-Frames Ein Daten-Frame ist logisch wie folgt aufgebaut: • Start of Frame (SOF) = ein dominantes bit • Arbitrierungsfeld bestehend aus einem Identifier-Segment (11 bit oder 29+2 bit) plus einem RTR bit (Remote Transmission Request, siehe unten ) • Kontrollfeld (CTRL) = 6 bit (2 bit reserviert + 4 bit Länge der Daten) • Datenfeld (DATA) = 0-64 bit (in Einheiten von 8 bit) • Prüfsummenfeld (CRC) = 16 bit (15 bit CRC plus einem rezessiven CRC-Delimiter bit) Bestätigungsfeld (ACK) 2 bit, bestehend aus einem ACK-Slot (siehe untenstehende Erläuterung) plus einem rezessiven ACK-Delimiter • End of Frame (EOF) 7 bit (rezessiv) • Intermission (IFS - Intermission Frame Space) = 3 bit (=min. Anzahl der Bits die aufeinanderfolgende Botschaften trennt) Bitstopfen (bit stuffing) kann die physikalische Länge eines Frames vergrößern. Beim Bitstopfen wird nach fünf gleichpoligen Bits ein komplementäres Bit (sog. Stopfbit) in den logischen Bitstrom eingefügt. Bitstopfen wirkt auf Start of frame (SOF) bis einschließlich Prüfsummenfeld (CRC) von Daten- sowie Remote-Frames und dient der Nachsynchronisation der Teilnehmer innerhalb eines Frames. 21 RTR (Remote Transmission Request) Ein gesetztes RTR-Bit kennzeichnet einen Remote-Frame (rezessiv). Mit Hilfe eines Remoteframe kann ein Teilnehmer einen anderen auffordern, seine Daten zu senden. Im Falle eines "Extended Identifiers" (siehe 2.2.4 Objektidentifier), wird das RTR-Bit durch das SSR-Bit (Substitute Remote Request) ersetzt und ebenfalls rezessiv gesendet. In diesem Fall wird das nachfolgende IDE-Bit ebenfalls rezessiv gesendet, wodurch ein "Extended Identifier" signalisiert wird. Im Anschluss werden die restlichen 18 Bit des Identifiers und anschließend das eigentliche RTR-Bit gesendet. Das IDE-Bit zählt hierbei logisch zum "Arbitrierungsfeld", wobei das Kontrollfeld aber weiterhin aus 6 Bit besteht. Die Datenlänge muss entsprechend der zu erwartenden Datenlänge gesetzt werden (Fehlerquelle: Viele Entwickler setzen die Datenlänge = 0 - dies ist falsch; ebenso sind CANController am Markt, welche RTR-Frames nur mit der Datenlänge 0 senden können). Der Objectidentifier ist derselbe, wie der der angeforderten Nachricht. Der Acknowledge-Slot wird verwendet, um den Empfang eines korrekten CAN-Frames zu quittieren. Jeder Empfänger, der keinen Fehler feststellen konnte, setzt einen dominanten Pegel an der Stelle des ACK-Slots und überschreibt somit den rezessiven Pegel des Senders. 2.2.7 Sampling, Synchronisierung, Sicherung Sampling: CAN-Controller können den Bus einmal oder dreimal pro Bit abtasten. Beim 3fach-sampling entscheidet die Mehrheit über den aktuellen Zustand (dominant = 0 oder rezessiv = 1). Synchronisierung und Zeitquanten: Ein Bit wird in sog. Zeitquanten unterteilt. Sie entsprechen einem Vielfachen des Controllertaktes. In jedem Zeitquantum wird nur einmal abgetastet. Eine Flanke wird erkannt, wenn der Abtastwert vor dem Zeitquantum einen anderen Wert hat als der Wert danach. Die Nachsynchronisierung synchronisiert somit nur auf ein Zeitquantum und nicht auf die Flanke. Sicherung der Daten: Erkennt ein Empfänger eine Fehlerbedingung, sendet er einen ErrorFrame und veranlasst so alle Teilnehmer, den Frame zu verwerfen. Sollten andere Teilnehmer 22 diese Fehlerbedingung nicht erkannt haben, senden sie ihrerseits direkt im Anschluss ein weiteres Error-Frame. Hiermit wird eine weitere Sicherheitsfunktion des CAN Protokolls möglich. Um zu vermeiden, dass einzelne Teilnehmer durch irrtümlich erkannte Fehlerbedingungen dauerhaft den Nachrichtentransport blockieren, enthält jeder Teilnehmer Fehlerzähler. Diese Zähler erlauben nach den Regeln der Spezifikation, einen fehlerhaft arbeitenden Teilnehmer in zwei Stufen des Betriebszustands vom Bus zu trennen, wenn er wiederholt Fehler erkennt, welche andere Teilnehmer nicht erkennen oder wiederholt fehlerhafte Frames versendet. Die Zustände nennen sich error active (normal), error passive (Teilnehmer darf nur noch passive - das heißt rezessive - Error-Frames senden) und Bus off (Teilnehmer darf nicht mehr senden). Der Sender wiederholt nach dem Error-Frame seine Datenübertragung. Auch der Sender kann durch die zuvor erwähnten Fehlerzähler vom Bus getrennt werden, wenn die Datenübertragung dauerhaft fehlschlägt. Verschiedene Fehlerfälle führen zu einer unterschiedlich großen Erhöhung des Fehlerzählers. 2.2.8 Gründe für den Einsatz des CAN-Busses Im Bezug auf das SCADA-Steuerungssystem hat der CAN-Bus folgende Gründe für seinen Einsatz: • Bei der Übermittlung der Pakete wird jedem übermittelten Datenpaket eine Prioritätsstufe zugeordnet. So können wichtige Daten (z. B. Bremsinformationen) wenige wichtige Daten (wie Richtungsanzeige also Blinklicht) kurzzeitig verdrängen. • Das Gesamtsystem ist zuverlässig. Es enthält z.B. weniger störanfällige Steckverbindungen. • Verdrahtung weniger komplex und dadurch kosteneffektiver. • Die Installation wird einfacher und Veränderung leichter möglich. • Zusätzliche Elemente (z.B. Steuereinheiten bzw. Aksenboard oder Atmel-Prozessoren) können hinzugefügt oder deren Einbauort in einem CAN-Bus problemlos verändert werden. So was währe mit einer RS232-Schnittstelle nicht möglich. 23 • Die Diagnosefähigkeit des Systems wird entweder erst möglich oder verbessert. • Es kann beinahe an jeder beliebigen Stelle in das System eingegriffen werden, um Daten abzulesen und/oder Parameter und evtl. sogar ganze Kennfelder zu ändern. 2.3 Kabellose Datenübertragung 2.3.1 TCP/IP Netze2 TCP (Transmission Control Protocol) In der TCP/IP-Protokollfamilie übernimmt TCP als verbindungsorientiertes Protokoll die Aufgabe der Datensicherheit und der Datenflusssteuerung. Es ergreift Maßnahmen bei einem Datenverlust. Die Funktionsweise von TCP besteht darin, den Datenstrom der Anwendungen aufzuteilen, mit einem Header zu versehen und an das IP zu übergeben. Beim Empfänger werden die Datenpakete sortiert und wieder zusammengesetzt. Jedem Datenpaket, das TCP verschickt, wird ein Header vorangestellt, der die folgenden Daten enthält: • Sender-Port • Empfänger-Port • Paket-Reihenfolge (Nummer) • Prüfsumme • Quittierungsnummer 2 Quelle: [AnTan] 24 Datenpakete, die über IP ihr Ziel erreichen, werden von TCP zusammengesetzt und über die Port-Nummer an eine Anwendung übergeben. Dieser Port wird ständig von einem Prozess, Dienst oder einer Anwendung abgehört. Die Port-Nummer 1 bis 1024 ist jeweils fest einer Anwendung oder einem Dienst zugeordnet. Alle anderen Port-Nummern können belegt werden, sofern sie frei sind. Bild 2.2 Datenübertragung mit OSI Schichten-Modell 25 Durch die Port-Struktur ist es möglich, dass mehrere Anwendungen gleichzeitig über das Netzwerk Verbindungen zu Kommunikationspartnern aufbauen können. Well Known Ports 1 - 1023 Diese Ports sind fest einer Anwendung oder einem Protokoll zugeordnet. Die feste Zuordnung ermöglicht eine einfachere Konfiguration durch den Benutzer. Er kommt so mit dem Protokoll TCP in Kontakt. Die Verwaltung dieser Ports übernimmt die Internet Assigned Numbers Authority (IANA). Registered Ports 1024 - 49151 Diese Ports sind für Dienste vorgesehen. Dynamically Allocated Ports 49152 - 65535 Diese Ports werden dynamisch zugewiesen. Jeder Client kann diese Ports nutzen. Wenn ein Prozess einen Port benötigt, fordert er diesen bei seinem Host an. Tabelle 2.1: Portstruktur [AnTan] 26 IP (Internet Protocol) Das Internet Protocol, kurz IP, wird im Zusammenhang mit der Protokollfamilie TCP/IP genannt und verwendet. Es hat maßgeblich die Aufgabe, Datenpakete zu adressieren und in einem verbindungslosen paketorientierten Netzwerk zu vermitteln (Routing). Dazu haben alle Stationen und Endgeräte eine eigene Adresse im Netzwerk. Sie dient nicht nur zur Identifikation, sondern auch zum Erkennen eines Teilnetzes, in dem sich eine Station befindet. Der Header eines IP-Datenpaketes enthält folgende Einträge: • IP-Version • Paketlänge • Lebenszeit • Prüfsumme • Senderadresse • Empfängeradresse Die IP-Adresse nach IP Version 4 ist 32 Bit groß/lang. Sie ist in 4 Byte zerlegt und wird durch Punkte voneinander getrennt (xxx.xxx.xxx.xxx). Jedes Byte kann einen Wert von 0 bis 255 annehmen. Die IP-Adressen werden in 5 Klassen eingeteilt. In jeder Klasse haben die Netz-ID und die Host-ID unterschiedliche Gewichtungen. IPv6-Adressen bestehen aus 128 Bit und werden als Kette von 16-Bit-Zahlen in Hexadezimalform getrennt durch einen Doppelpunkt (":") dargestellt. Folgen von Nullen können einmalig durch einen doppelten Doppelpunkt ("::") abgekürzt werden. Da in URLs der Doppelpunkt mit der optionalen Portangabe kollidiert, werden IPv6-Adressen in eckige Klammern gesetzt. 27 Sockets Die Socket-Schnittstelle dient als standardisierte Programmierschnittstelle zwischen dem Anwendungsprogramm und TCP/IP. Neben der rechnerübergreifenden Kommunikation von Prozessen über TCP/IP, wird sie auch zur lokalen Interprozesskommunikation genutzt. Die Socket-Schnittstelle kommt aus der UNIX-Welt. Mit dem 4.2BSD wurden die Sockets in UNIX eingeführt. Eine allgemein verfügbare Spezifikation, die auf den UNIX-Sockets basiert, wurde von der Firma Mircosoft unter der Bezeichnung WinSock in das WOSA aufgenommen und wurde damit ein etablierter Standard. Ein großer Vorteil der Verwendung von Sockets ist ihre Homogenität, d. h. eine Kommunikation über Sockets ist unabhängig von dem Standort der Prozesse, dem Betriebssystem, der Rechnerarchitektur und dem Übertragungsmedium. Der Aufbau einer TCP/IP Verbindung aus einem Anwenderprogramm wird durch die Verwendung von Sockets sehr einfach. Der Anwendungssoftware stehen die in Tabelle gezeigten TCP-Systemaufrufe zur Verfügung. Zum Aufbau einer Verbindung werden vom Client und Server mit Hilfe des Funktionsaufrufes socket() eine Instanz der Socket-Schnittstelle erstellt und das Transportprotokoll festgelegt. Durch den Systemaufruf bind() legt der Server den lokalen Host und den lokalen Port fest. Damit ist die Adresse festgelegt, auf welcher der Server dem Client antwortet. Nach dem Aufruf der Funktionen listen() und accept() wartet der Server auf ein connect() des Clients. Der Client bekommt mit dem connect()-Aufruf implizit eine lokale Adresse zugewiesen und übergibt sie dem Server. Die Verbindung ist nun aufgebaut und Client und Server können mit read()- und write()-Funktionen bidirektionalen, byteorientierten Datenaustausch betreiben. Durch den Systemaufruf close() wird die Verbindung abgebaut. 28 Tabelle 2.2 vergleicht eine Socket-Verbindung zwecks Anschaulichkeit mit einem Telefongespräch. Prozess 1 Prozess 2 Funktion Analogie Server Client socket() socket() Socket erstellen Telefonhörer abheben write() write() Daten über die Schnittstelle senden Reden read() read() Daten empfangen Zuhören close() close() Socket schließen Auflegen Tabelle 2.2: TCP/IP Kommunikation zwischen Client und Server 2.3.2 WLAN IEEE802.11x3 Motivation Mögliche Einsatzgebiete der WLAN Technologien sind: • Drahtloses Surfen, kein Kabelsalat • Günstige alternative (Ergänzung) zu UMTS und GPRS • Zufriedenstellende Datenraten für den mobilen Internetnutzer (Multimedia Dienste) • Schneller Aufbau der Zugangsnetze z.B.(CEBIT Messe) • Informationszeitalter, Information, Kommunikation, Mobilität besonders wichtig • Hochschulnetze und öffentliche Hotspots so wie Automatisierungstechnik • Mitarbeiter oft in Besprechungen und Vorträgen, im Netzwerk- und Rechnerraum • Abgeschnitten von Informationen, aber aktuelle Informationen notwendig 3 Quelle: [IEEE 802.11.x], [JosGut], [AnHac], [WLABuc], [ShoRan], [ WLANBlu] 29 Geschichte Obwohl WLAN eigentlich erst in den letzten Jahren vermehrt genutzt wird und auch bei Privathaushalten im Kommen ist, hat die Technik von WLAN eine relativ lange Geschichte, vorausgesetzt jedenfalls, man fasst die Anfänge des WLAN relativ weit. So betrachtet beginnt die Geschichte von WLAN bereits in den 1940er Jahren. Damals wurde nämlich bereits ein Patent für das so benannte "Frequency Hopping" angemeldet. Dahinter verbarg sich die Idee, einen Torpedo per Funk in ein Ziel zu steuern und dabei so oft die Frequenz zu wechseln, dass es dem Feind unmöglich wäre den Torpedo vorzeitig abzuschießen. Diese Idee war ihrer Zeit eindeutig voraus. Noch interessanter und beeindruckender wird das ganze, wenn man weiß, dass die Idee nicht von einem Techniker oder Militaristen stammt, sondern von einer österreichischen Schauspielerin und einem Musiker. Die Namen der beiden WLAN-Pioniere wenn man so will - waren Hedy Lamarr und George Antheil. Konkreter kann man aber erst in den 1960er Jahren von den Anfängen des WLAN sprechen. 1969 machte nämlich die Universität von Hawaii einen sehr interessanten Ansatz in Richtung WLAN. Es wurde ein Funknetzwerk entwickelt, das die verschiedenen Standorte der Universität verbinden sollte. Dazu muss man wissen, dass die Universität von Hawaii sozusagen auf verschiedenen Inseln verteilt ist. Das Funknetzwerk sollte also die verschiedenen Bereiche mit einem Zentralrechner auf der Insel Oahu verbinden, was auch gelang. Das Funknetzwerk trug den schönen Namen Aloha-Net. Die Arbeitsgruppe 802 des Institute of Electrical and Electronic Engineers (IEEE) begann Ende 80er Jahren, sich drahtlosen Netzwerktechnologien zu widmen. Daraus entstand der heutige Standard IEEE802.11 und somit die Spezifikation für Media Access Control (MAC) und Physical Leyer(PHY). Das sind Grundsteine aller wirless LAN’s, die am 26. Juni 1997 vom IEEE bestätigt wurden. Funktion des WLAN’s Um verstehen zu können wie WLAN funktioniert, muss man sich bei dieser Technik einige Dinge vor Augen führen. Für die Technik und das Funktionieren von WLAN ist zunächst einmal der grundsätzliche Aufbau von Funknetzen wichtig. Es gibt hierbei verschiedene Möglichkeiten, wie man Funk30 netze aufbauen und strukturieren kann: Je nachdem kommt man zu unterschiedlichen Vorund Nachteilen. Eine Möglichkeit ist zum Beispiel der Peer-to-Peer-Modus. Hier gibt es nämlich keinen Access-Point, sondern das Funknetz besteht nur aus Mitgliedern, die sich selbst organisieren und untereinander kommunizieren. Dagegen gibt es im so genannten Infrastructure-Modus immer mindestens einen Access-Point, über den die Kommunikation und Organisation läuft. Neben diesen beiden Hauptgruppen gibt es noch weitere Möglichkeiten und technische Raffinessen, allerdings sind diese hauptsächlich etwas für Experten und spielen bei der grundsätzlichen Einführung in die WLAN-Technologie keine entscheidende Rolle. WLAN ist auf jeden Fall zunächst einmal als ein solches Funknetz wie oben erwähnt zu betrachten und bietet damit eine sehr praktische Funktechnik zur Übertragung von Computerdaten und Ähnlichem an. Der für WLAN verwendete Standard ist der Standard IEEE 802.11 und dessen Nachfolger, denn seit der Entstehung von WLAN wurden die Standards immer wieder verändert und verbessert. WLAN ist also ein Computernetzwerk, das praktisch gesehen das Ethernetkabel durch eine Funkverbindung ersetzt. Für das Arbeiten mit dem Computer bedeutet dies aber keinen Unterschied zu einer Verbindung mit einem Ethernetkabel, denn für ein Betriebssystem wie zum Beispiel Windows und die Programme erscheint es bei einer WLAN-Verbindung so, als ob der Computer über ein Ethernetkabel angeschlossen wäre. Da es mittlerweile viele verschiedene Technologien im Bereich WLAN gibt und weil die Nutzung verschiedener Standards ebenfalls Auswirkungen hat, ist es schwer, allgemeingültig Aussagen über WLAN zu treffen. Man kann lediglich ein paar Gemeinsamkeiten hervorheben und natürlich den Unterschied zu kabelgebundenen Netzwerken betonen. Dieser ist folgender: es existiert bei WLAN keine Verbindung der Netzwerkkarte mit einem Kupferkabel oder Ähnlichem, sondern die Übertragung erfolgt durch die Luft. Dadurch ergeben sich bei den meisten WLANs die Probleme mit der Bandbreite, denn alle verfügbaren Sender streiten sich um die verfügbare Bandbreite. Das andere Problem, das durch die Übertragung durch die Luft entsteht, ist das Problem mit der Sicherheit, denn die Zugriffe können nur schwer konfiguriert werden. Zu guter Letzt ist noch zu erwähnen, dass es natürlich eine Rolle spielt, ob die Funkwellen wirklich nur durch die Luft gehen, oder ob sie Hindernisse durchdringen müssen. 31 WLANs sind primär als LAN-Kabelersatz für die PC-Vernetzung gedacht. Ein typisches WLAN ist folgend dargestellt. (Siehe Bild 2.3 IEEE 802.11-WLAN im Infrastruktur Mode) Bild 2.3: IEEE 802.11-WLAN im Infrastruktur Mode [SSV1] Wireless LAN arbeitet auf der Bitübertragungsschicht des OSI-Schichten-Modells. (Siehe Tabelle 2.3 OSI-Schichten-Modell) Drahtlose Netzwerkkarten lassen sich deshalb ohne Probleme in jedes System einbinden. Auf bestimmte Protokolle ist man nicht angewiesen. Wireless LAN ist vollkommen protokolltransparent, wie jedes andere IEEE-802-Netzwerk auch. Obwohl Wireless LAN protokollunabhängig arbeitet, können sich Probleme in der Praxis mit einigen Protokollen und Anwendungen ergeben. Ausschlaggebende Faktoren sind die höhere Bitfehlerrate (Bit Error Rate, BER) und die größere Verzögerung bei der Übertragung von Daten. Es liegt in der Natur des Wireless LAN, dass die zur Übertragung benötigte Zeit länger ist als im drahtgebundenen LAN. Ein einfacher Ping hat im drahtgebundenen LAN eine Round Trip Time von weniger als einer Millisekunde. Im Wireless LAN liegt die Zeit für ein Ping bei bis zu vier Millisekunden. Anwendungen, die ein kurzes Delay benötigen, haben in einem Wireless LAN nichts verloren. Der Access Point (AP) ist innerhalb des Wireless LAN das einzige aktive Schicht-2-Element. Vergleichbar mit einer Bridge verbindet er zwei Netzwerke mit unterschiedlicher physikalischer Schicht, bsw. das Wireless LAN mit dem drahtgebundenen Ethernet oder Token Ring. 32 4 Transport-Schicht (TCP/IP) TCP 3 Netzwerk-Schicht (IP) IP 2 Logical Linck Control 802.2 2 Medium Access Control (MAC) CSMA,VCD 1 Physical Layer (PL) DSSS,FHSS,Infrarot Tabelle 2.3: OSI-Schichten-Modell. [AnTan] Der Funknetz-Standard definiert einen gemeinsamen MAC-Layer (Medium Access Control) für drei spezifische Physical Layer (PL). Zwei davon sind den Funk-LANs, einer dem Infrarotnetz zugeordnet. Im Funknetz wird als Frequenzbereich das ISM-Band (2,4 GHz) von 2,400 bis 2,4835 GHz genutzt. In diesem Frequenzband stehen 79 Kanäle mit jeweils 1 MHz Bandbreite zu Verfügung. Mindestbandbreite liegt bei einem MBit/s. Optional lässt es sich auch auf 2 MBit/s erweitern. Die Infrarot-Variante nutzt die Frequenzen von 850 bis 950 Nanometer (Licht). Die verwendete diffuse IR-Übertragung erfordert keine exakte Ausrichtung von Sender und Empfänger. Die maximal 10 Meter weite Sichtlinie sollte trotzdem hindernisfrei sein, um unnötige Beeinträchtigungen bei der Datenübertragung auszuschließen. Das ISM-Frequenzband (Industrial, Scientific, Medicine) kann für Anwendungen in Industrie, Wissenschaft und Medizin frei und ohne Lizenz benutzt werden (Siehe Tabelle 2.2 Übersicht WLAN nach IEEE 802.11). Das bedeutet, dass auf privatem Grund und Boden keine Gebühren bezahlt werden müssen. Das ISM-Frequenzband ist weltweit als lizenzfrei anerkannt. In diesem Frequenzspektrum um 2,4 GHz konkurrieren viele Standards und propritäre Funktechniken der unterschiedlichsten Hersteller und Anwendungen, unglücklicherweise auch Geräte des täglichen Gebrauchs, z. B. Mikrowellenherde und schnurlose Telefone. Die Realisierbarkeit eines Funknetzwerkes nach 802.11 hängt also maßgeblich von der Nutzung ande- 33 rer Produkte in diesem Frequenzspektrum ab. Z. B. nutzen auch Bluetooth-Endgeräte für den Kurzstreckenfunk dieses Frequenzspektrum. Störungen sind da nicht ausgeschlossen. Um die Anforderungen an die Datensicherheit zu erfüllen sind im Wireless LAN Standard bereits Mechanismen dafür integriert. Damit die Funkverbindung weder gestört noch abgehört werden kann, wird mit dem Bandspreizverfahren das Signal über ein möglichst breites Frequenzspektrum aufgeteilt. Um den Datenverkehr innerhalb der Funkzelle zu sichern, werden die Daten zwischen den Stationen mit WEP (Wired Equivalency Privacy) verschlüsselt. Die Nutzdaten werden mittels des RC4-Algorithmus mit den Key-Längen 40 oder 104 Bit verschlüsselt. WEP wurde bereits als nicht besonders sicher eingestuft. Unter Umständen sind weitere Sicherungsmaßnahmen, wie z. B. VPN mit IPsec oder Protokolle mit SSL notwendig. Hauptproblem bei Funknetzwerken ist die Abhängigkeit des Datendurchsatzes von der Reichweite. Die angegebenen Brutto-Übertragungsraten von 1 und 2 MBit in der Sekunde reduzieren sich in der Praxis auf wenige kBit. Je weiter man sich vom Access Point entfernt, desto geringer wird auch der Datendurchsatz. Ab einem bestimmten Punkt wird die Verbindung quälend langsam oder bricht ganz ab. 34 Standard 802.11 Frequenzbereich 2,4 GHz 802.11b B802.11b+ 802.11a 802.11g 2,4 GHz 2,4 GHz 5 GHz 2,4 GHz Datendurchsatz 2 MBit/s 11 MBit/s 22 MBit/s 54 MBit/s 54 MBit/s Kompatibel zu 802.11b 802.11b+/g 802.11b/g - 802.11b/b+ Übertragungsrate 2,4 GHz 5.2 GHz 1/ 2 IEEE 802.11 - 5,5 / 11 MBit/s IEEE 802.11b - 22/33/44 MBit/s IEEE 802.11b+/PBCC - 6 bis 54 MBit/s IEEE 802.11g IEEE 802.11a/h Tabelle 2.4: Übersicht WLAN nach IEEE 802.11 Reichweiten von WLAN Ein Nachteil von WLAN ist immer noch die Reichweite dieser Technologie, die Technologien wie UMTS und GPRS noch nicht das Wasser reichen kann. Man kann sich mit seinem Laptop nur eine bestimmte Entfernung zum Access-Point erlauben, denn sonst sind bestimmte Übertragungsraten nicht mehr möglich beziehungsweise die Verbindung reißt ganz ab. Die Reichweite von WLAN hängt grundsätzlich von verschiedenen Faktoren ab. Der wichtigste ist wohl der des Raumes und der der direkten Umgebung. Grundsätzlich kann man sagen, dass die Reichweite von WLAN ständig verbessert wird. Die Reichweite von 802.11a war zum Beispiel im Vergleich zu 802.11b und 802.11g sehr viel niedriger, was damit zusammenhängt, dass bei höheren Frequenzen die Dämpfung höher ist und die alten Standards bei 5 GHz liefen, während die neueren bei 2,4GHz laufen. 35 Normale Antennen kommen im Freien auf etwa 300 Meter, in Gebäuden mit dünnen Wänden auf etwa 40 Meter und in allen anderen Räumlichkeiten hängt die Reichweite ganz von den verwendeten Materialien ab. Mit speziell gerichteten Antennen können die Werte fürs Freie weit übertroffen werden, vorausgesetzt es besteht Sichtkontakt. Dann können Werte um 20 Kilometer erreicht werden. Antennen bringen also in jedem Fall einen Sende- wie Empfangsgewinn. 2.3.3 Bluetooth4 Bluetooth Bluetooth ist eine Lösung zur einfachen Anbindung von Peripheriegeräten (z.B. mobile Endgeräte wie Handys, PDA's und Notebooks) über eine drahtlose Schnittstelle. Der Standard wurde von der Firma Ericsson eingeleitet, die Bluetooth seinen Namen gab. Bluetooth (Blauzahn) wurde der vor rund 1000 Jahren herrschende dänische König Harald II genannt, der in Dänemark nach wie vor hohes Ansehen genießt. Der Standard wird durch die BSIG (Bluetooth Special Interest Group) gefördert und wurde erstmals 1998 vorgestellt. Zusammen mit Ericsson bilden neun Unternehmen die so genannte Promoter Group, wobei jedoch mittlerweile wesentlich mehr Unternehmen der Interessengruppe angehören. Bluetooth - Grundlagen Bluetooth arbeitet im 2,4 GHz ISM-Band (Industrial, Scientific and Medical-Band), das lizenzfrei genutzt werden kann. Dies ist das gleiche Frequenzband, wie es die Wireless LAN Standards IEEE802.11b und IEEE802.11g nutzen. Dabei gibt es drei unterschiedliche Sendeklassen. Die Sendeklasse 3 mit einer Empfindlichkeit von –70 dBm, einer Leistung von 1mW, einer theoretischen Reichweite von 10 m und einer Netzgröße im Piconet-Bereich. Dies ist die Klasse, in welcher die meisten heutigen Bluetooth Geräte arbeiten. Auch wenn dies laut Definition der Bereich eines PANs ist, so ist Bluetooth doch nicht auf diese Leistung beschränkt. Durch nachgeschaltete Leistungsverstärker kann die Ausgangsleistung wesentlich gesteigert werden. Dabei arbeitet die Signalklasse 2 mit einer Empfindlichkeit von 4 dBm, einer Leis- 36 tung von 2,5 mW, einer theoretischen Reichweite von 30 m und einer Netzgröße im NanonetBereich. Die maximale Leistung wird jedoch in der Signalklasse 1 erreicht, mit einer Empfindlichkeit von 20 dBm, einer Leistung von 100 mW, einer theoretischen Reichweite von 100 m und einer Netzgröße im Mikronet Bereich. Netze der Sendeklassen 3 und 2 sind dabei dem PAN-Bereich zuzuordnen, wobei Netze der Sendeklasse 1 den Grenzfall zum LAN darstellen. Es muss jedoch berücksichtigt werden, dass in den heutigen Bluetooth-Lösungen maximal Datenraten von 1 MB/s zu realisieren sind. An zukünftigen Erweiterungen wird jedoch bereits gearbeitet; so wird eine Verdoppelung der Datenrate auf 2 MB/s angestrebt. Wie bereits erwähnt, arbeitet Bluetooth in dem 2,4 GHz ISM-Band, wobei der genaue Arbeits-Frequenzbereich von 2,402 GHz bis 2,480 GHz liegt. Als Zugriffsverfahren wird ein schnelles Frequenzsprungverfahren, das Frequency Hopping Spread Spectrum (FHSS), verwendet. Dabei werden 1600-mal je Sekunde Frequenzwechsel vollzogen, die in 79 Schritten zu je 1 MHz zueinander liegen. Bluetooth stellt hierbei einen Breitbandkanal für Sprach- und Datenübertragung zur Verfügung, wobei sich bis zu drei Sprachkanäle mit jeweils 64 KB/s betreiben lassen. Prinzipiell kann zwischen einer synchronen und einer asynchronen Übertragung gewählt werden. Die synchrone Übertragung stellt eine Datenübertragungsrate von 433,9 KB/s zur Verfügung. Bei der asynchronen Übertragung kann eine Datenübertragungsrate von 723,2 KB/s in Downloadrichtung und 57,6 KB/s in Uploadrichtung realisiert werden. Bluetooth kennt drei verschiedene Sicherheitsstufen, wobei nur in der dritten Stufe verschiedene Verschlüsselungsmethoden zum Tragen kommen. So kann beim Verbindungsaufbau die Authentifizierung mit 128 bit und bei der Datenübertragung eine Verschlüsselung von 8 bit bis 128 bit erfolgen. Bluetooth - Netz In der Sendeklasse 3 bezeichnet man die Netzgröße als Piconet. In einem Piconet dürfen maximal acht Bluetooth-Geräte miteinander kommunizieren. Die Bluetooth-Geräte identifizieren sich über eine 48 bit lange Identifikationsnummer, wobei das erste aktive Gerät in dem Netz als Master fungiert und für die Steuerung des Frequenz-Hopping zuständig ist. Das bedeutet, dass in einem Piconet ein Master und maximal sieben Slaves arbeiten können. Weiterhin können jedoch bis zu 255 Bluetooth-Geräte als passive Slaves geparkt werden. Diese Geräte kön4 Quellen: [WLABlu], [BlToo], ], [ WLANBlu] 37 nen dann über den Master aktiviert werden, sofern dies nötig wird. Darüber hinaus besteht die Möglichkeit des Zusammenschlusses mehrerer Piconets zu einem so genannten Scatternet. Hierbei übernimmt ein gemeinsamer Slave die Vermittlungsfunktion zwischen beiden Piconets. Bluetooth - Vorteile/Nachteile Die Bluetooth-Technologie ist eine Bereicherung im PAN-Segment und ermöglicht eine einfache Anbindung von Peripheriegeräten. Der Vorteil eines solchen offenen Standards ist die rasche Akzeptanz am Markt. Dies kann jedoch nicht uneingeschränkt gesehen werden, da diese in Teilbereichen sehr stark unterschiedlich ist. Sofern die Entwicklungsziele einer sehr preiswerten Einchip-Lösung der Bluetooth-Komponenten eingehalten werden, steht dem breiten Einsatz nichts im Wege. Durch den Markennamen Bluetooth wird zudem gewährleistet, dass eine Interoperabilität mit Bluetooth-Geräten verschiedener Hersteller erfüllt werden kann. Durch die Nutzung des 2,4-GHz-Frequenzbandes kann es jedoch zu Störungen mit WLAN-Komponenten kommen, die nach den Standards IEEE802.11b oder IEEE802.11g ebenfalls im ISM-Band arbeiten. Auch die Anwendung von Bluetooth zur vernetzten Datenübertragung ist kritisch zu betrachten, da dies den Grenzfall vom WPAN zum WLAN darstellt. Hierzu haben die Industriestandards nach IEEE802.11 eine wesentlich breitere Durchdringung am Markt und eine ausgereiftere Technologie. 38 3 Realisierung 3.1 Gesamtkonzept In Anbetracht der Anforderungen an das System und die Datenübertragung wie zum Beispiel bei den meisten Einsätzen werden die Steuerdaten bzw. Sensorwerte von Prozessen zyklisch ausgelesen und bearbeitet. Die errechneten Werte werden an andere Prozesse bzw. Aktoren weiter gegeben, was natürlich ein regelmäßiger Nachrichtenverkehr voraussetzt. Für das Steuerungssystem wird folgender schematisches Konzept (siehe Bild 3.1) entworfen. Bild 3.1 Schematisches Konzept der Kommunikationsteilnehmer 39 3.2 Auswahl der optimalen Funktechnologie5 Bild 3.2 Funktechnik-Aktuelle Standards im Vergleich In Anbetracht der Zielsetzung und der derzeit vorliegenden Standards (Siehe Bild 3.2: Funktechnik-Aktuelle Standards im Vergleich) kann die Verwendung der Funktechnologie und der Standard-Software festgelegt werden. Da sich das Netzwerk auf kurze bis mittellange Distanz ausbreitet(10-200 Meter), befindet sich das System im Bereich des kabellosen persönlichen Netzwerkes (WPAN) bis hin zu dem kabellosen lokalen Netzwerkes (WLAN). Die zu diesen Netzwerkarten zugeordneten standardisierten Technologien sind: - WLAN - Infrarot - Bluetooth - ZigBee 5 Quellen: [ATan], [AHac], [BT] 40 Die Anforderung an die Übertragungsgeschwindigkeit ist gering. Sendedaten und Steuerkommandos an das Aksenboard und somit an Servomotoren sind Pakete mit einer Datenlänge von maximal 8 Byte, die eine durchschnittlich geringe Bandbreite erfordern. Rechenbeispiel: In einem Netzwerk befinden sich 400 Knoten. Jeder Teilnehmer sendet pro Sekunde ein 30 Byte großes Datenpaket an das zentrale Modul(10 Byte Informationsgehalt und pauschal 20 Byte Header-Daten). Ein empfangenes Paket wird durch ein 20 Byte großes Antwortpaket bestätigt. Am zentralen Modul kann eine maximale Bitrate von 160 kBit/s (20x8=160) entstehen. Jede der hier betrachteten Technologien gewährleistet diesen Datensatz. Um sich für die geeignete Technologie zu entscheiden, werden die oben genannten Standards an Hand folgender Kriterien miteinander verglichen: - Geschwindigkeit / Bandbereite Es werden hauptsächlich kleine Datenmengen transportiert. Steuerkommandos für das Fahrzeug und somit an Servomotoren sowie Sensorenwerte werden in Stringform übertragen und benötigen nur geringe Datenübertragungsgeschwindigkeiten. - Energieverbrauch Der CAN/WLAN-Umsetzer-Modul (9 Volt Spannungsversorgung), der Aksenboard und die Sharp-Sensoren (5-8 Volt) und die Servomotoren(12 Volt) werden mit Batterien versorgt. Der Leitstand ist eine Applikation und läuft auf dem Standardrechner mit dem Betriebsystem Windows XP, versorgt über normale Netzspannung. - Reichweite: Wie oben erwähnt, erstrebt das System die Reichweite eines WLAN. - Latenzzeit: Die Latenzzeit beschreibt die Zeit eines Datenpaketes vom Sender zum Empfänger. Sie setzt sich 1. aus der Zeit der eigentlichen Übertragung und der 2. aus den Verarbeitungszeiten bei Sender und Empfänger zusammen. In dieser Betrachtung steht der zweite Punkt im Vordergrund. 41 3.2.1 Grobe Selektion Die Infrarot-Technik ist hier ungeeignet, da stets Sichtkontakt zwischen den miteinander kommunizierenden Kommunikationsteilnehmern bestehen muss. Der eigentliche Vergleich beschränkt sich somit auf die Techniken Bluetooth und WLAN. 3.2.2 WLAN und Bluetooth im Vergleich • Geschwindigkeit/Bandbreite Bluetooth und WLAN arbeiten in den 2,4 GHz-Bereichen des ISM-Band. Bluetooth verwendet das Frequenzsprung-Verfahren FHSS und erreicht eine Verbindungsrate von 723 kBit pro Sekunde, wobei praktisch eine Datenübertragungsrate von rund 125 kBit pro Sekunde erlangt wird. Ebenfall in Anbetracht der Anforderungen an das verteilte System sind beide Technologien bezüglich der Übertragungsrate geeignet. • Reichweite Die Reichweite von Bluetooth liegt, abhängig von der Klasse, bei 10 bis 100 Metern. Große Entfernungen erfordern erheblich mehr Sendeleistung (Klasse I: 100 m bei 100 mW, Klasse III: 10 m bei 1 mW). WLAN hat eine Reichweite bis zu 300 Metern, wobei im Mittel 50 Meter erwartet werden können. Um erwartete Netzwerke mit einer Reichweite von bis zu 300 Metern aufzubauen, reichen direkte Verbindungen von Gerät zu Gerät nicht aus. Große Entfernungen fordern das Routing und die Weiterleitung von Paketen innerhalb der Netzwerke, was zwar von beiden Standards unterstützt wird, aber bei Bluetooth mit relativ hohem Aufwand verbunden ist. Die mit Abstand größte Reichweite mit ca. 200 - 300 Metern direkt zwischen zwei Geräten erreicht WLAN. 42 • Anzahl der Netzwerkteilnehmer Die Architektur des Bluetooth-Netzwerkes unterteilt sich in zwei Komponenten, dem Picound dem Scatternetz. Ein Piconetz enthält bis zu 255 Teilnehmer, bestehend aus einem Master und Slaves. Da der Master sieben Sendeslots an die Slaves vergeben kann, können insgesamt lediglich acht Geräte gleichzeitig aktiv sein. Einzelne Knoten können sich in mehreren Piconetzen befinden, wodurch ein Scatternetz entsteht. Bluetooth schränkt die Netzspontaneität durch die geringe Anzahl gleichzeitig verteilbarer Sendeslotts ein, zudem wird die Größe des Netzwerkes durch die Anzahl adressierbarer Knoten beschränkt. Drahtlose Netzwerke werden in Funkzellen eingeteilt. Eine Funkzelle besteht im Minimum aus einem Sender/EmpfängerPaar und wird als der Raum definiert, in dem alle Sender und Empfänger dieselbe Frequenz und/oder denselben Code benutzen. WLAN ist also ein Computernetzwerk, das praktisch gesehen das Ethernetkabel durch eine Funkverbindung ersetzt. Für das Arbeiten mit dem Computer bedeutet dies aber keinen Unterschied zu einer Verbindung mit einem Ethernetkabel. Also, wie in einem normalen Netz können mehrere Teilnehmer 232, also 4.294.967.296 Teilnehmer angeschlossen werden. • Energieverbrauch Bei Betrachtung des Leistungsverbrauchs der beiden Technologien beim Senden und Empfangen von Daten, sowie im Standby-Modus gibt es kaum Differenzen. Ein unterschiedlicher Energieverbrauch kommt durch die Art und Weise des Sendens und Empfangens zustande. Die PHY-Schicht von Bluetooth fordert ständig die Synchronisation der Module untereinander. Somit verweilen die Module kaum im Standby- Modus und verbrauchen verhältnismäßig viel Energie. WLAN hat einen Ressourcenverbrauch von mindestens einem Megabyte RAM und sein Energieverbrauch übersteigt die Kapazitäten kleiner Module(siehe Tabelle 3.1 Energieverbrauch bei den WLAN und Bluetooth). Technologie Sendeleistung[mW] Leistungsaufnahme[mW] Energieverbrauch pro Bit[nJ] Bluetooth(10m) WLAN 1 280 90 ca. 2000 90 ca. 180 Tabelle 3.1 Energieverbrauch bei WLAN und Bluetooth 43 Anzahl der Netzwerkteilnehmer Die Anzahl der Knoten ist abhängig von der Art der Anwendung. Die maximale Netzteilnehmer sollte maximal 10 Teilnehmer sein. • Latenzzeiten Große Unterschiede bestehen bei den Beitritts- und Anforderungszeiten zwischen den Technologien. Je kürzer die Latenzzeit, desto schneller die Übertragung eines Datenpaketes von einem Netzwerkteilnehmer zum anderen. Besonders der Zeitaufwand, bis ein BluetoothModul vom schlafenden in den aktiven Zustand gewechselt ist, wird nicht den Anforderungen eines Sensornetzwerkes gerecht. Bluetooth WLAN Beitritt in ein Netzwerk > 3s ~ 3ms Zugriff eines aktiven Knotens ~ 2ms ~15 ms Tabelle 3.2 Latenzzeiten bei Bluetooth und WLAN 44 IEEE 802.11 vs. Bluetooth Während der Entwicklung des WLAN-Standards 802.11 und Bluetooth haben sich schnell Gemeinsamkeiten eingestellt. Beide Funknetzstandards arbeiten im Frequenzband 2,4 GHz und sollen die unterschiedlichsten Geräte über Funk miteinander verbinden. Beide Standards zeichnen sich durch unterschiedliche Stärken aus und kommen dadurch in verschiedenen Geräten auf den Markt. Wireless LAN übertrifft Bluetooth in seiner Reichweite und Übertragungsgeschwindigkeit und kommt deshalb in lokalen Netzwerken zum Einsatz. Bluetooth ist mit geringen Hardwarekosten, niedrigem Stromverbrauch und Echtzeitfähigkeit in den Bereichen Sprachübertragung, Audio-Video-Lösungen und Adhoc-Verbindungen zwischen Kleinstgeräten besser geeignet. Bluetooth löst hier Irda (Infrarot) erfolgreich ab. Bluetooth IEEE 802.11 723 kBit/s 11-54 MBit/s Bis zu 10 m Bis zu 100m – 300m (mit FEC auch bis zu 100m) (einige km mit externen Antennen als Richtfunk ) 8 (aktive Geräte pro Piconet) 256 und mehr Geräte pro Netzwerk Verschiedene Verwendungszwecke LAN Extrem Stromsparend Höherer Stromverbrauch Tabelle 3.3 IEEE 802.11 vs. Bluetooth Ergebnis In Anbetracht der Vorteile von WLAN gegenüber Bluetooth und mit der Berücksichtigung des CAN/WLAN-Moduls wird als Funktechnik für das für das SCADA Steuerungssystem die WLAN Technologie verwendet. 45 3.3 Benötigte Hardware für die Realisierung des Systems 3.3.1 Standard PC Ein Standard Windows-PC, der als Plattform für den Leitstand dienen soll, der mit einem WLAN-Interface (siehe Bild 3.3 WLAN USB-Dongle) in Form eines USB-Dongles ausgestattet ist. Zusätzlich noch ein PC-Lenkrad Logitech® MOMO® Racing (siehe Bild 3.5), das folgend noch beschrieben wird. Es wird mit Gas- und Bremspedal ebenfalls auch über USB an dem Windows-PC angeschlossen. 3.3.2 WLAN-Interface Um eine Telemetrie per WLAN innerhalb kürzester Zeit zu erproben, braucht man lediglich einen Windows-PC mit einer WLAN-Schnittstelle, zum Beispiel einem preiswerten WLAN USB-Dongle. (Siehe Bild 3.3) Bild 3.3 WLAN USB-Dongle Zunächst sollte die WLAN-Schnittstelle des PCs in den Ad-hoc-Modus gesetzt werden. Hierfür findet man in der WLAN-Treibersoftware, welche als Zubehör zu jedem PC-WLANInterface installiert wurde, die entsprechenden Einstellmöglichkeiten. Die IP-Adresse für das WLAN-Interface des PCs sollte mit dem statischen Wert 192.128.3.1 versehen werden. Windows XP bietet in der Systemsteuerung die entsprechenden Dialoge zur Konfiguration. Bild 3.4 zeigt die IP-Adressen-Konfiguration eines WindowsBetriebssystems. 46 Bild 3.4 IP-Adressen-Konfiguration für ein PC-WLAN-Interface Die drahtlose Steuerdatenübertragung per WLAN ist beim Einsatz der richtigen Werkzeuge sehr schnell und einfach möglich. Ein großer Vorteil ist der hohe Standardisierungsgrad durch IEEE802.11- Vorgaben im Hinblick auf Hardware und Software. Dadurch ergibt sich ein deutlicher Investitionsschutz im Vergleich zu propritären Funklösungen in den 433 und 868 MHz Funkbändern. Also, die Kommunikation zum Fahrzeug findet über das USB-WLANInterface statt. Dieses ist, so wie oben gezeigt, konfiguriert, so dass es sich automatisch mit dem IGW400/CAN verbindet. 47 3.3.3 PC-Lenkrad Das Einlesen der Steuerdaten aus dem PC-Lenkrad und Gas/Bremspedalen kann man mit wenig Programmieraufwand mit der Programmiersprache G LabVIEW erreichen. Da ich am Anfang mit der grafischen Programmiersprache LabVIEW absolut keine Erfahrung hatte, hat es mir einwenig Zeit gekostet, bis ich die Initialisierung der Hardware programmieren konnte. Bild 3.5 PC-Lenkrad, Gas-/Bremspedale 3.3.4 CAN/WLAN-Modul (IGW400/CAN) Die Datenübertragung von dem Leitstand zum Fahrzeug erfolgt über den CAN/WLANModul (IGW400/CAN) von der Firma SSV-Embedded Systems. Das CAN/WLAN-Modul wandelt die WLAN-Pakete in CAN um. Bild 3.6 CAN/WLAN-Modu [SSV1] 48 IGW400/CAN erlaubt, die Daten zwischen den Kommunikationsteilnehmern mit einer WLAN - Schnittstelle über den TCP/IP Port zu tauschen. Diese Daten können nicht nur von CAN/WLAN –Modul, sondern auch vom anderen PC sogar PDA’s erfasst werden, die dieses Profil suporten und die notwendige Schnittstelle haben. Die ausführliche Beschreibung von technischen Charakteristiken des Gerätes soll die Entwicklung der Steuerungssoftware unterstützen. Der CAN/WLAN –Modul IGW7400-CAN integriert typische Messungen und Steuerungen in ein 802.11b/g-kompatiblen WLAN. Dieses sehr kompakte System ist als kleine, einfache Schnittstelle zu benutzen, die alle möglichen Datenbestandteile der industriellen Automatisierung sammelt und sie über WLAN überträgt. Bild 3.7 zeigt das Blockdiagramm des IGW/400-CAN. UART1-Schnittstlle (Universal Asynchronous Receiver Transmitter) hat eine Beziehung zur WLAN-Einheit über den LevelShifter der Sub-D RS232-Schnittstelle. UART2-Schnitstelle hat eine interne Kommunikation zum Mikrocontroller. Dieses Steuerungssystem basiert auf einem ARM7TDMI Mikrocontroller, der 256 KBytes Flash und 16 KBytes SRAM (Static Random Access Memory) Arbeitsspeicher besitzt. Bild 3.7 Blockdiagramm des CAN-WLAN-Moduls [SSV1] 49 Eigenschaften und technische Daten des CAN-WLAN-Moduls 50 Telemetrieanwendungen nutzen häufig Funkstrecken auf Basis der ISM-Frequenzen (ISM = Industrial, Scientific, Medical = frei nutzbare HF-Frequenzbereiche). Die folgende Tabelle 3.4 liefert einen Überblick zu den wichtigsten ISM-Frequenzbereichen für den deutschsprachigen Raum. Diese Frequenzen können ohne weitere Anmeldungen und ohne Kosten zur Datenübertragung und Datenübermittlung verwendet werden. Die maximal zulässigen Sendeleistungen und andere Parameter sind allerdings vorgegeben und müssen eingehalten werden. Weiterhin ist zu beachten, dass es inzwischen in der Praxis sehr viele ISM-Anwendungen gibt. Da elektromagnetische Wellen nicht an Grundstücks- oder Gebäudegrenzen halten, sind Beeinträchtigungen durch andere Applikationen an der Tagesordnung. Jeder Anwender muss selbst für die notwendige Betriebssicherheit sorgen. Frequenzbereich Typische Anwendung 6,76 MHz – 6,79 MHz Verschiedene Anwendung 13,55 MHz – 13,56 MHz RFID 26,95 MHz – 27,28 MHz Funkfernsteuerung 40,66 MHz – 40,7 MHz Funkfernsteuerung 433,05 MHz – 434,79 MHz Sensoren und Aktoren, Funkfersteuerung 868,00 MHz – 870 MHz Sensoren und Aktoren, Funkfersteuerung 2,40 GHz – 2,50 GHz Bluetooth, WLAN, ZigBee, Video 5,72 GHz – 5,87GHz WLAN Tabelle 3.4 Übersicht der ISM-Frequenzbereiche [Wal-Emb] 51 Funkübertragung von Daten per 433 MHz, 868 MHz und 2,4 GHz. Die Realisierung der Funkprotokolle blieb aber bisher weitestgehend dem Anwender überlassen. Als folge davon findet man unzählige Anwendungen mit anwenderspezifischen Protokollen. Lediglich Bluetooth und WLAN (Wireless LANs) gemäß IEEE 802.11- zwei Funkverfahren für ISMFrequenzen im Bereich von 2,4 bis 2,5 GHz- bieten vollständig definierte Übertragungsprotokolle. Folgende Abbildung zeigt als Beispiel die Protokollbestandteile einer WLAN- Funkverbindung gemäß IEEE 802.11. Oberhalb des 802.11- MAC kommen typischerweise TCP/IP- Protokolle zur Anwendung. Bild 3.8 Übertragungsprotokoll für WLAN Funkverbindung [SSV1] 52 3.3.5 Aksenboard Das Aksenboard ist für die Robotik und Embedded-Systeme von der Fachhochschule Brandenburg entwickelt worden, die sich sowohl • im privaten Bereich • als Forschungs- und Ausbildungsplattform an Hochschulen oder • auch als Basis für industrielle Anwendungen (Rapid Prototyping von Robotern) eignet Herzstück des Systems ist der Mikroprozessor SAB 80C515A. Die Anbindung üblicher Peripherie von Kleinrobotern erfolgt über das Aksenboard. Bild 3.9 DasAksenboard Das Aksenboard besteht aus folgenden Komponenten: • Mikroprozessor SAB 80C515A. • 64 KB Flash, 8 KB Flash. • 4 Motortreiber (in Drehzahl und Richtung variierbar). • 3 Servo-Ausgänge, Sie können durch Software auf maximal 8 Servo-Ausgänge erweitert werden. 53 • 15 analoge Eingänge. Unterschiedliche Arten von Sensoren, z. B. Sensoren für Abstand, Infrarot, Licht können angeschlossen werden. Die analogen Eingänge sind mit einem Pull-upWiderstand verbunden. • 16 digitale Ports. Sie können als Ein- bzw. Ausgang konfiguriert werden. • 4 schaltbare Leistungstreiber, z.B. Infrarotsender, Lämpchen und LED. • 1 Infrarotausgang mit Leistungstreiber • 3 Encoder-Eingänge zum Erfassen von Drehzahlen. • DIP-Schalter (vierfach). Der DIP-Schalter eignet sich gut zur Auswahl von verschiedenen Programmteilen oder Betriebsarten. • Zweizeiliges LCD , je 16 Zeichen. • CAN-Interface 1 Mbit (optional). • Bluetooth-Verbindung zum PC (optional). Das Aksenboard ist mit einer seriellen Schnittstelle ausgestattet. Diese Schnittstelle ermöglicht den Datenaustausch zwischen dem Aksenboard und ein Computer bzw. ein Peripheriegerät. Für die Kommunikation zwischen Aksenboard und anderer Hardware besitzt das Aksenboard ein CAN-Bus. Die Kommunikation ist paketorientiert. Es kann mit Geschwindigkeiten von bis zu einem Megabit gesendet werden. Programme für das Aksenboard werden in der Sprache C geschrieben. Um das Aksenboard zu programmieren, werden zwei Programme benötigt. Das ist zum einen der Compiler, der den Quelltext in für das Board verständlichen Maschinencode übersetzt und zum anderen der Aksen-Flasher, der diesen Maschinencode auf das Board überträgt. Die Fachhochschule Brandenburg stellt alle Software und Informationen zur Verfügung, die zu Programmierung des Aksenboardes benötigt werden [Aks-Bor]. 54 3.3.6 Fahrzeug Für die Durchführung der Arbeit steht ein Modell-Lastfahrzeug der Firma Wedico. zur Verfügung. Der ist im Maßstab 1:16 gebaut. Das Modell-Lastfahrzeug besteht aus einer 3-achsigen Sattelzugmaschine und einem 2-achsigen Auflieger. Bild 3.10 Das Fahrzeug Aus der Bauanleitung [WEDI] kann die Verdrahtung der elektrischen Fahrzeugkomponenten entnommen werden. Der elektrische Antriebsmotor wirkt über ein 3-Gang-Schaltgetriebe auf die beiden Hinterachsen der Zugmaschine. Die Zugmaschine ist außer mit der zum Fahren erforderlichen Elektrik auch mit Beleuchtung und einem Geräuschgenerator ausgestattet. Diese Funktionen werden von der Fernsteuerung bedient. Der Blinker für die linke und rechte Seite wird in Abhängigkeit vom Lenkeinschlag der Vorderräder automatisch geschaltet. Auch die Bremslichter und der Rückfahrscheinwerfer werden automatisch gesteuert. Der Auflieger ist mit Glühlampen für Blinker, Rücklicht und Bremslicht ausgestattet. Diese werden durch ein mehradriges Kabel von der Zugmaschine mit Strom versorgt. Der Fahrmotor, das Schaltgetriebe und die Lenkung können direkt mit dem Servoport eines Mikrocontrollers verbunden werden. Der Fahrmotor ist mit einem Fahrregler verbunden. Der Fahrregler versorgt den Fahrmotor mit elektrischer Energie. Dabei wird die angelegte Spannung an Fahrmotor nicht kontinuierlich sondern stufenweise durch den Fahrregler verändert. Diese Abstufungen werden als Fahrstufen bezeichnet. Jeder Fahrstufe wird eine Nummer n ∈ [− 40,45] zugeordnet. Positive Nummern gehören zu Fahrstufen, bei denen 55 das Fahrzeug vorwärts fährt. Zum Rückwärtsfahren werden Fahrstufen mit negativer Nummer verwendet. Mit der Fahrstufe n = 0 wird der Motor ausgeschaltet. Mit steigendem Betrag n vergrößert sich auch die Spannung an den Fahrregler. 3.3.7 Infrarot-Distanzsensoren Die Infrarot-Distanzsensoren erfassen einen einzigen Punkt, der sich senkrecht zum Mittelpunkt zwischen Sender und Empfänger des Sensors befindet. Mit dieser Technik ist die Erfassung der gesamten Umgebung eines Fahrzeugs unmöglich. Trotz dieses Nachteils werden die Infrarot-Distanzsensoren in vielen Forschungseinrichtungen im Bereich der autonomen Roboter und Fahrzeuge für experimentelle Zwecke eingesetzt. Der Grund dafür ist, dass diese Sensoren im Vergleich zur Radarsensoren und Sehsystemen sehr günstig sind. Außerdem sind sie einfach zu bedienen. Sie brauchen wenig Strom, sind nicht rechenintensiv und können an einem einfachen Controller angeschlossen werden. Abhängig von der Entfernung des erfassten Objekts gibt die Auswertelektronik dieser Sensoren die Spannung Uout als Analogsignal aus [CONRAD]. Eine Auswertsoftware soll dann aus dem Wert des Ausgangssignals die Entfernung berechnen. Sehr beliebt sind die Infrarot- Distanzsensoren der Firma Sharp. Sie haben unterschiedliche Reichweiten. Diese Sensoren arbeiten im Nahbereich ziemlich genau aber im Grenzbereich lässt die Zuverlässigkeit stark nach. Bild 3.11 Infrarot-Distanzsensor GP2D12 45 56 3.4 Benötigte Standard-Software und Werkzeuge 3.4.1 LabVIEW6 LabVIEW (Laboratory Virtual Instrument Engineering Workbench), eine grafische Entwicklungsumgebung wurde Anfang der achtziger Jahre von der Firma National Instruments entwickelt, um eine Art Mensch-Maschinen-Kommunikation zu führen. Diese grafische Entwicklungsumgebung verknüpft zwei bewährte Programmiermethoden mit einander, den Datenfluss und die strukturierte Programmierung, und integriert sie in eine einzige grafische Programmierumgebung, die alle Elemente einer modernen Benutzeroberfläche bereitstellt. Also, LabVIEW ist eine grafische Programmiersprache, die hauptsächlich für messtechnische Aufgaben eingesetzt wird - von der einfachen Datenerfassung bis zur komplexen Prüfstandssteuerung. LabVIEW ist auch zur Prozessautomatisierung, Auswertung, Analyse und Dokumentation von (Mess-) Daten sehr gut geeignet. In LabVIEW werden Symbole an Stelle von Textzeilen verwendet, um den Programmablauf zu erstellen. Im Gegensatz zu textbasierten Programmiersprachen, bei denen die Programmausführung von Anweisungen gesteuert wird, verwendet LabVIEW die sog. Datenflussprogrammierung, bei welcher der Fluss der Daten den Programmablauf steuert. 6 Quelle: [LabVIEW] 57 LabVIEW-Programme werden als virtuelle Instrumente, kurz “VIs” bezeichnet, da sie hinsichtlich ihres Erscheinungsbilds und ihrer Funktionalität realen Instrumenten wie etwa Oszilloskopen oder Multimetern nachempfunden sind. Sie bestehen aus zwei Komponenten: das Frontpanel enthält die Benutzerschnittstelle, das Blockdiagramm den graphischen Programmcode siehe Bild 3.12. Dieser wird von einem Compiler abgearbeitet, dadurch ist die Performance vergleichbar mit den anderen Hochsprachen. LabVIEW enthält eine umfangreiche Sammlung von Werkzeugen zur Erfassung, Analyse, Darstellung und Speicherung von Daten sowie zum Debuggen von Programmcode. Bild 3.12: Blockdiagramm des LabVIEW Entwicklungssystems 58 Die virtuellen Instrumente, so genannte VIs, dienen beispielsweise zur Darstellung von erfassten Messwerten (z.B.: von Sensoren) oder zur Steuerung einer realen, komplexen Industrieanlage. Mit entsprechenden LabVIEW-Treibern bzw. offenen VIs werden Mess.- und Steuersignale der I/O-Hardware entlockt. Sie lassen sich zudem über eine schier unendliche Vielfalt an Funktionen mit den virtuellen Steuer- und Anzeigeelementen beliebig, verdrahtungsorientiert verknüpfen. Dabei können recht komplexe Hierarchien entstehen. Zur Erstellung einer Benutzeroberfläche in LabVIEW, des so genannten Frontpanels siehe Bild 3.13, dienen Bedien- und Anzeigeelemente. Bedienelemente umfassen Drehknöpfe, Drucktasten, Drehregler und sonstige Eingabeelemente. Zu den Anzeigeelementen zählen z.B. Graphen oder LEDs. Nach Fertigstellung der Benutzeroberfläche wird mit Hilfe von VIs und Strukturen der Programmcode zur Steuerung der Objekte auf dem Frontpanel erstellt. Dieser Code befindet sich im Blockdiagramm. Bild 3.13: Frontpanel des LabVIEW Entwicklungssystems 59 LabVIEW enthält selbst in der Base-Edition schon eine große Bibliothek an Subroutinen für die Gerätekommunikation und die Auswertung und Darstellung von Messdaten. Ein Grundsatz gilt immer: Was es nicht gibt, kann man programmieren, da LabVIEW eine vollwertige Programmiersprache ist. Und darüber hinaus läßt sich LabVIEW durch DLLs um jede nur denkbare Funktion erweitern. • LabVIEW - Base Package - enthält die Entwicklungsumgebung mit den Basis-Routinen und Werkzeugen • LabVIEW - Full Development System - Zusätzliche Funktionen zur Analyse und Report Generation etc. • LabVIEW - Professional Development System - Zusätzliche Werkzeuge zum ProjektManagement Die Anschlüsse wie GPIB-, PXI-, VXI- und seriellen Geräten (USB, RS-232 und RS-485), Probibus, CAN-Bus aber auch TCP/IP werden von LabVIEW unterstüzt. Darüber hinaus kann man mit anderen Applikationen über das Internet, über ActiveX und DDE kommunizieren und auf SQL-Datenbanken zugreifen. Zusätzlich ist es möglich, ActiveX-Objekte in LabVIEW einzubinden und LabVIEW-Code von anderen Umgebungen aufzurufen. Bereits existierender Code kann in Form einer DLL unter Windows aufgerufen werden oder in einer gemeinsam benutzten Bibliothek (Shared Library) unter anderen Plattformen. Virtuelle Instrumentierung erhöht die Flexibilität, das heisst: Durch die Kombination von LabVIEW mit Standard-Datenerfassungsgeräten und Hardware zur Steuerung der Messgeräte kann man virtuelle Instrumente erzeugen und vielfältig nutzen. Während traditionelle Messgeräte durch die Konzeption des Herstellers begrenzt sind, kann ein virtuelles Instrument als eine Vielzahl von Instrumenten arbeiten, z. B. als Temperaturmonitor, Voltmeter, Streifenschreiber, Digitalisierer oder als Signalanalysator. Außerdem Virtuelle Instrumentierung spart Zeit und Kosten, indem sie die Möglichkeit bietet, benutzerdefinierte Systeme in einem Bruchteil der Zeit zu erstellen, die man mit traditionellen Methoden brauchen würde. In der Entwicklung erhält man seine Antworten schneller und hat man die Zeit für die sorgfältigeren Tests. Die Qualität steigt bei kürzeren Produktvorlaufzeiten. 60 Vorteile -LabVIEW stellt zahlreiche Bibliotheken zur Kommunikation mit der Hardware (Serielle Schnittstelle, PCI-Karten etc.) zur Verfügung, - die LabVIEW-Werkzeuge sind speziell für Anwendungen rund um die Datenaufnahme, darstellung und -analyse gedacht. -LabVIEW erleichtert die Fehlersuche durch die Möglichkeit der Kontrolle einzelner Programmschritte. Außer den eben genannten Gründen sind noch andere Vorteile anzubringen, die LabView gegenüber anderen Programmiersprachen bietet: -LabVIEW stellt standardmäßig eine große Anzahl numerischer Algorithmen (statistische Algorithmen, Kurvenanpassung) zur Verfügung, -LabVIEW übernimmt das Speicher-Management bei mehrdimensionalen Matrizen oder bei der Erzeugung bzw. Vernichtung der Objekte, d.h.: Das Löschen der erzeugte aber nicht mehr verwendbare Objekte werden nicht wie z.B. in andere Hochsprachen vom Programmierer übernommen, sondern vom Speichermanagement ( Also kein malloc", calloc" usw.), -LabVIEW ermöglicht die einfache Darstellung von ein- und zweidimensionalen Graphen, - viele Hardwareanbieter bieten mittlerweile LabVIEW-Bibliotheken und Demo-VIs an, - Multitasking und die Kommunikation zwischen den einzelnen VIs ist sehr einfach zu implementieren, ebenso laufen LabVIEW-Programme sehr gut auf Multiprozessor-Maschinen (die neue Intel Hyper Thread-CPU eingeschlossen), -LabVIEW ist plattformunabhängig, d.h. in Windows programmierte VIs lassen sich problemlos auf Linux oder Solaris übertragen und umgekehrt. -LabVIEW beinhaltet umfangreiche TCP/IP Funktionen, d.h. es ist ein leichtes, zu verarbeitende Aufgaben auf mehrere Rechner in einem Netzwerk zu verteilen 61 Nachteile - Kleine Änderungen können aufwendige Neustrukturierungen nach sich ziehen, wenn das Schaffen von Raum auf dem Blockdiagramm durch Verschieben geschieht. Denn dann müssen die Drähte und Symbole oftmals neu geordnet werden, um die Übersichtlichkeit wiederherzustellen. Alternativ kann aber auch ein Teil des Codes in ein neues Unterprogramm ausgelagert werden. - Um keinen Drahtwirrwarr zu erzeugen, werden von weniger versierten Nutzern oft vermehrt Variablen eingeführt, die die Geschwindigkeit herabsetzen und dem Datenflussmodell widersprechen. Erfahrene 'Verdrahter' definieren zusammengesetzte Datentypen, um weniger Drähte verlegen zu müssen. - Der einfache Einstieg in die LabVIEW-Programmierung verleitet leider dazu, "einfach drauflos zu programmieren", allerdings kann auch die grafische Programmierung nicht die ordentliche Planung des Projektes ersetzen. - Die Signalorientierung führte in früheren Versionen zu einem Polling der Signalquellen und GUI-Elemente in Schleifen, anstatt zu einem von Ereignissen ausgelösten Signalfluss. Seit LabVIEW 7 existieren auch sehr weitgehend konfigurierbare Eventstrukturen, die auf Ereignisse aus dem Benutzerinterface und auf Systemereignisse reagieren können. Das vermeidet beim Pollen verschwendete Rechenzeit und erlaubt sehr effektive Konstrukte, insbesondere beim Benutzerinterface. - Ausführbare LabVIEW-Programme können vom Entwicklungssystem zwar erstellt werden, erfordern jedoch die Installation einer Laufzeitumgebung auf dem Zielsystem (und möglicherweise kostenpflichtige Lizenzen für bestimmte Module). Und man benötigt für jede Zielplattform einen plattformabhängigen und kostenpflichtigen 'Application Builder'. 62 3.4.2 WinCC7 WinCC steht für Windows Control Center, entwickelt und vermarktet von der Firma Siemens. Es ist ein Prozessvisualisierungssystem für komplette Bedien- und Beobachtungsfunktionalität auf Standard-PCs Microsoft Windows 2000 / XP und NT. Mit WinCC lassen sich für jeden Einsatzzweck individuell projektierte Bedienoberflächen erstellen - zur sicheren Prozessführung und zur Optimierung der gesamten Produktion in den Fabriken. Eingesetzt wird WinCC als Prozesssteuerungs-Interface für vielerlei Industrienanwendungen, seien es, Bedien- oder Beobachtungsanwendungen oder komplexe Leitaufgaben. Besonders in den Bereichen Kennzeichnungstechnik, Logistik, Automatisierung, Messtechnik, Regelungstechnik, Steuerungstechnik und Identifikation wird WinCC oft als Warenwirtschaftssystem, Materialflusssystem auf einem Materialflussrechner und zur Steuerung verschiedenster anderer Abläufe verwendet. Dazu werden in einem Grafikprogramm (s. Bild 3.14) Objekte mit Variablen und/oder Scripten verknüpft und je nach Zustand oder Wert dargestellt. Es können zum Beispiel Messwerte visualisiert oder Zustandsmeldungen von Ventilen angezeigt werden. Gleichzeitig ist es möglich durch Benutzereingaben per Maus oder Tastatur diese Objekte zu steuern. Weiterhin können Störmeldungen dargestellt werden, wodurch der Bediener in der Lage ist, schnell auf Störungen zu reagieren. Fehlerfälle wie ein Förderbandstillstand können so recht schnell erkannt werden. Das System ist sehr flexibel, so dass fast jede Darstellung und auch fast jede Steuerung möglich ist. 7 Quellen : [WinCC1], [WinCC2] 63 Bild 3.14 WinCC Grafikprogramm Bei weit über 80.000 Installationen weltweit hat sich WinCC mittlerweile als Industriestandard und Marktführer in Europa etabliert und bildet zudem auch die Basis für andere Leitsysteme von Siemens. In der Wasserwirtschaft wird WinCC zur Bedienung, Steuerung und Überwachung von Trink, Brauch-, Betriebs- und Abwasseranlagen eingesetzt. WinCC erfüllt alle Anforderungen, die an ein modernes Leitsystem auf PC-Basis gestellt werden. Beispiele: • Es ist Skalierbar für Einplatz- und Mehrplatzlösungen, bei Bedarf auch redundant • Es ist Einfach integrierbar in bestehende Anlagen und Anbindung an überlagerte Systeme durch vielfältige Ankopplungsmöglichkeiten an die unterlagerten Steuerungen • Es ermöglicht Fernbedienung und –Überwachung durch Einsatz von Web-Technologien • Es ist jederzeit erweiterbar über Optionen und Add-ons und Standard-Schnittstellen 64 Durch den Einsatz vom Web-Technologie in Verbindung mit Thin-Client-Lösungen hat man mit WinCC die Möglichkeit, seine Anlage orts- und plattform-unabhängig zu bedienen: • In der Warte: WinCC als Standard-Leitsystem • Am Schaltschrank: Bedienung über Clients oder Thin-Clients (Multi Panels oder PC) • Mobil auf der Anlage: Visualisierung oder Diagnose über PDA • Von Außenstationen oder von Zuhause: Bedienung und Service über Internet/Intranet WinCC-Funktionsübersicht: Zugangsberechtigung Jedem Benutzer kann im System eine eigene Identität, mit Benutzername, Passwort und Bedienberechtigung zugeordnet werden. Mit dieser Identität muss er sich "einloggen", um Zugriff zum System zu bekommen. Der Identität können unterschiedliche Funktionen für die Bedienung der Anlage, für verschiedene Bereiche der Anlage oder für die Parametrierung des Systems zugeordnet werden. Alle Eingriffe in das System können registriert und mit der Identität des Benutzers gespeichert werden. Über die Option Logon ist eine zentrale, anlagenweite Benutzerverwaltung möglich, die in das Windows User Management integriert ist. Historische Daten WinCC bietet die Möglichkeit der Prozessdatenerfassung und Archivierung mit anschließender Analyse und Präsentation von Messwerten und Ereignissen. Die Archivierung erfolgt einer hoch performanten Standard-Datenbank (Microsoft SQL Server 2003). Archivierte Daten können für Berechnungen und Dokumentationen in WinCC oder anderen Programmen benutzt werden. Dazu bietet WinCC eine Fülle von Standard-Zugriffs- und Auswertemöglichkeiten. 65 Berichte / Protokolle Berichte/ Protokolle mit übersichtlicher Darstellung der Daten mittels Text und grafischen Symbolen, Balkendiagrammen oder Kurven können einfach kreiert werden. Berichte/ Protokolle können automatisch nach Zeit oder auch bei bestimmten Ereignissen ausgegeben werden. Eine Protokollierung kann über das WinCC Add-on erfolgen. Dabei können Mess- und Zählwerte, Labordaten, Rechenwerte und Betriebsmeldungen erfasst und archiviert und über Berichte protokolliert werden: z.B. 24-Stunden-Bericht, Tages-, -Monats-, -Jahresberichte, Betriebstagebuch und Protokolle. Alarm und Ereignisse Eine Anlage kann in mehrere Alarmbereiche aufgeteilt werden. Einzelnen Alarmen können unterschiedliche Prioritäten und Meldeklassen zugeordnet werden. Sie können zu verschiedenen Zielen, wie Drucker, Prozessbild, Alarmliste, Personenrufanlage etc. geschickt werden. Quittierungen von Alarmen können direkt im Prozessbild oder über eine Alarmliste erfolgen. Es besteht darüber hinaus die Möglichkeit, Alarme an überlagerte Systeme weiterzuleiten und Quittierungen von dort in Empfang zu nehmen. Es stehen umfangreiche Filter-, Sortier- und Statistikfunktionen zur Auswertung von Alarmen und Ereignissen zur Verfügung. Betriebsstundenzähler Mit Hilfe eines Betriebsstundenzählers können die Laufzeiten von Aggregaten in der Anlage überwacht werden. Nach einer vorgewählten Zeit erfolgt eine Meldung auf dem Drucker; diese wird auch in eine Datenbank geschrieben. 66 Bedienen und Beobachten über das Web Der WinCC/Web Navigator bietet die Möglichkeit, die Anlage auch über das Internet oder firmeninterne Intranet zu bedienen und zu beobachten, ohne dass dazu Änderungen am WinCC-Projekt notwendig sind. Am Web-Client genügt dazu ein Browser (z.B. Microsoft Internet Explorer). Web-Clients können in die anlagenweite Benutzerverwaltung integriert werden. WinCC beseteht aus folgenden Basissystemen: • Das Bediensystem verwaltet die Benutzeraccounts und Variablen • Das Grafiksystem stellt durch vorgefertigte Zeichnungen das Visualisierungssystem zusammen. • Das Meldesystem listet Alarme und Warnungen auf, die auf Wunsch quittierungspflichtig sind. • Durch die Archivierung bzw. Protokollierung werden Messwerte abgespeichert und dargestellt. Vorteile Durch die dreifache Durchgängigkeit in Projektierung/Programmierung, Datenhaltung, Kommunikation und die integrierte Diagnose werden die Engineeringskosten einer Automatisierungslösung erheblich gesenkt. Nachteile • Beim Anpassen an eine komplexe AT-Architektur sind zusätzliche Werkzeuge nötig • Viele interessante Funktionen nur mit S7-400 möglich • Leider nur für große Projekte einsetzbar 67 3.4.3 LabVIEW vs. WinCC Mit der Berücksichtigung der Vorteile und Nachteile der beiden Standard-Software (s. Kapitel 3.4) bezogen auf das SCADA Steuerungssystem ist WinCC mehr oder minder für Massenproduktion an den Fabriken bzw. große Projekte konzipiert und nicht so wie LabView für kleinere Projekte wie dieses sehr gut geeignet. Daher fällt die Entscheidung als StandardSoftware für das SCADA Steuerungssystem LabView einzusetzen. 3.5 Realisierung und Implementation des Systems Die Realisierung des Systems gliedert sich in mehreren logischen Einheiten, die sich wie nachfolgend weiter unterteilen. Das Konzept wird nach Untersuchen der vorhandenen Technologien realisiert und implementiert. (s. Bild 3.15 ) Bild 3.15 Schematische Darstellung der Kommunikationsteilnehmer 68 3.5.1 Leitstand und seine Aufgaben Es ist die Anforderung an den Leitstand, dass der sich nicht auf dem Fahrzeug, sondern abgesetzt davon befinden soll. Daraus resultiert dann auch die Forderung nach einer drahtlosen Anbindung und Kommunikation mit dem Fahrzeug. Der Leitstand realisiert das MenschMaschine-Interface, über das eine Kommunikation stattfindet. Die interne Kommunikation zwischen Leitstand und dem Fahrzeug basiert auf eine TCP/IP und CAN-Protokoll. Für die eigentliche Übertragung wird eine Funkverbindung gemäß IEEE 802.11g eingesetzt, da das auch ein Teil der Anforderung an das System ist. Bild 3.16 Leitstand des SCADA Steuerungssystem 69 3.5.2 Die Funktionen des Leitstandes sind wie folgt aufgeteilt: ● Einlesen von Steuerinformationen mittels PC-Lenkrad ● Visualisierung der Prozessvariablen ● Auswahl des Fahrmodus (Autonom / Manuell) ● Drahtlose Kommunikation mit dem Fahrzeug ● Verwaltung der Steuerdaten in der Datenbank Der Leitstand hat die Aufgabe, die Daten (Richtung- und Geschwindigkeit-Soll-Werte) aus einem PC-Lenkrad zu lesen, sie zu visualisieren und sie mit der Fahr-Modusinformation für CAN-Frame zum Senden an das Fahrzeug darzustellen. Des Weiteren übernimmt der Leitstand die Aufgabe, die aktuell vom Fahrzeug gesendeten Steuerdaten so wie die Sensorwerte vom Fahrzeug zu visualisieren und sie in eine Datenbank ab zu speichern. Da die entwickelte Software auf dem Fahrzeug die Möglichkeit bietet, das Fahrzeug manuell bzw. autonom zu steuern, kann man bei der Bedieneinheit durch einen Fahrmodus-Schalter die Steuerungsart wählen. Im Falle, dass das Fahrzeug autonom fahren soll, fährt das Fahrzeug Wand entlang. Im manuellen Fahrmodus kann man das Fahrzeug vom Leitstand aus durch das Lenkrad und die Pedalen in allen Richtungen steuern. 3.5.3 Prinzipieller Aufbau der Leitstand-Software Für die Gestaltung der Leitstandsoftware sollte man eigentlich Modelle des Software Engineering anwenden, aber bei der Verwendung der Standard-Software LabVIEW ist man gezwungen mit Schleifen zu arbeiten. Deswegen gestaltet sich die Leitstandsoftware grundsätzlich als zwei Endlosschleifen, welche folgend als Flussdiagramm beschrieben wird, siehe Bild 3.17. 70 Bild 3.17 Flussdiagramm der Leitstandschleifen zu Steuerung des Fahrzeuges 71 Nach dem die Leitstandsoftware gestartet worden ist, wird erstmal die Initialisierung der PCLenkrad und Gas/Bremspedalen sowie das Öffnen einer TCP/IP Socket-Schnittstelle stattfinden. Durch die Initialisierung der Hardware wird der Software die Hardware bekannt gemacht und es wird vorbereitet, die Steuerdaten aus der Hardware zu lesen. Beim Öffnen einer TCP/IP Socket-Schnittstelle wird ein Socket zum Aufbau einer Verbindung vom Client und Server mit Hilfe des OPEN-TCP VI’s erstellt und damit eine Instanz der Socket-Schnittstelle geschaffen und das Transportprotokoll festgelegt. Wie man aus der Sende-Schleife entnehmen kann, worden nach der Initialisierung der angeschlossenen Hardware die Daten aus dem PC-Lenkrad und Pedalen eingelesen und in lokale Variablen abgespeichert bzw. auf dem Leitstand visualisiert. Darauf folgend wird der Fahrmodus berücksichtigt. Die gelesenen Steuerdaten werden für die Servomotoren in der Sende-Schleife umgerechnet, um eine Rechenlast für das Aksenboard zu vermeiden, da es mit nur 8 Bit rechnet. Der Zahlenbereich von Lenkrad und Pedalen ist von -32767 bis 32767, d.h.: von 0 bis -32767 in Links-Richtung und von 0 bis 32767 in Rechts-Richtung. Für die Geschwindigkeit des Fahrzeuges entspricht 0 dem Stillstand bis 32767 der höchste Geschwindigkeit vorwärts, so wie bis -32676 rückwärts. Nach der Umrechnung der Steuerdaten wird eine Zahl/Hex-StringUmwandlung so wie Stringkonkatinierung stattfinden. Um Daten über TCP zu senden, wird in dieser Schleife TCP-Schreiben -VI verwendet. Der konkatinierte String wird dann per TCP-Schreiben-VI and den Kommunikationsrechner gesendet. Damit der Puffer des CAN/WLAN-Moduls nicht mit gesendeten Steuerdaten überlastet wird, wiederholt die Sende-Schleife die Prozedur alle 50ms einmal. Die Empfangs-Schleife funktioniert aus Synchronisationsgründen ebenfalls alle 50 ms wie die Sende-Schleife. In der Empfangs-Schleife werden die aktuell gesendeten Daten aus dem Fahrzeug gelesen. Um Daten über TCP zu empfangen werden TCP-Lesen-VI verwendet. Die durch TCP-Lesen-VI gelesenen Daten werden analysiert, visualisiert und schließlich in eine Datenbank abgespeichert. 72 3.5.4 Schnittstellenspezifikation für das SCADA System Die Kommunikation der Daten zwischen den Rechnern soll zum einen über WLAN zwischen dem Leitstand und dem Kommunikationsserver und zum anderen über den CAN-Bus zum Aksenboard realisiert werden. Für sämtliche Nachrichten beider Busse wird die MSB-Byteorder (Most significant byte first) festgelegt. Alle Nachrichten werden zyklisch versand. Falls keine Informationen über die zu versendeten Daten bzw. Änderung der Daten vorliegen, so werden auch keine Daten gesendet, das heißt: es wird im Kommunikationsserver geprüft ob Datenänderungen vorliegen oder nicht? Diese Überprüfung dient dazu, das CAN-WLAN-Modul nicht mit gleichen Daten zu überlasten. Der CAN-Bus wird mit einer Baudrate von 125 kBits/ s betrieben, allerdings die Baudratenänderung kann man jeder Zeit vornehmen. Für die Regelungstechnik ist es unerlässlich, dass wichtige Daten ihren Empfänger innerhalb garantierter Zeiten erreichen. Zu diesem Zweck wird die Paket-ID des CAN-Standards eingesetzt, um die Zugriffspriorität zu bestimmen. Das aber kommt bei dieser Kommunikation nicht zustande, da es in diesem Netz nur einen Knoten gibt. Der Datenteil kann von null bis acht Byte variieren. Die 29 Bit der Paket-ID werden hier für Priorität und Knoten des Netzes nicht separiert. Wie schon oben erwähnt, ist bei einem einknotigen Netz die Paket-ID nicht notwendig. Die anwendungsspezifischen Datenpakete beginnen stets mit dem ASCII Zeichen “T“, gefolgt von den 29 Bit CAN-ID, dann die Angabe der Datenlänge(0-8)in Byte und anschließend die Steuerdaten der zugehörigen Prozessvariablen je nach Datenlänge in Hex-Value. Die Pakete haben somit eine Länge von 12 Byte. T Paket-ID (29 Bit) Datenlänge (0-8) Nutzdaten (8Byte) Tabelle 3.5 Aufbau des WLAN-Datenpaketes 73 Aufgaben des JAVA Kommunikationsservers Da eine direkte TCP/IP Kommunikation zwischen Leitsatnd (LabVIEW) und CAN-WALNModul trotz langer Untersuchungen aus Einstellungsgründen des CAN/WLAN-Moduls nicht möglich war, wurde ein Kommunikationsrechner unter Verwendung der Programmiersprache Java implementiert. Er fungiert als eine Brücke zwischen Leitstand und CAN/WLAN-Modul. Der Kommunikationsserver hat die Aufgabe einerseits eine Verbindung über TCP/IP zu CAN/WLAN-Modul aufzubauen, sie mit Kanal/Baudrateneinstellungen zu initialisieren und andererseits die Verbindung ebenfalls über TCP/IP zu LabVIEW zu etablieren. Eine Nebenläufigkeit der Prozesse wird durch Sende und Empfangs Threads realisiert. Der Kommunikatiossrechner besteht aus 2 Threads, Sende- und Empfangs-Thread, die ein reibungsloses Senden und Empfangen der Daten bereitstellen. Zusätzlich noch aus vier While-Schleifen. Die erste While-Schleife ist für die Kommunikation zwischen LabVEW-Client und Java-Server zuständig. Die zweite Schleife übernimmt die Aufgabe, die vom LabVIEW-Client empfangenen Daten zu analysieren und aus denen nach CAN-Spezifikation ein Paket zusammen zu bauen. Dieses Paket wird in dieser Schleife zusammen gebaut und besteht aus folgenden Komponenten: - „T“, Der Buchstabe T stehet für Transmission. Das CAN/WALN-Modul erwartet den Buchstaben T am Anfang des Paketes, um Daten von WLAN zu CAN bzw. von CAN zu WLAN zu übersetzen. - ID des Pakets mit 29 Bit („Extended CAN-Frame 2.0B“), also zur Identifizierung des Netzknotens bzw. zu Identifizierung des Nachrichtentyps. - Datenlänge 0 bis 8 Byte, Angabe der Datenlänge, damit das CAN/WLAN-Modul weiß, wie viele Daten zum Übersetzen ankommen. - Daten, eigentliche Nutzdaten, die zur Steuerung des Fahrzeuges bestimmt sind. Nach dem das CAN-Frame Paket erstellt und zusammen gebaut worden ist, wird es an das CAN/WLAN-Modul gesendet. Die dritte Schleife beschäftigt sich ebenfalls mit der Kommunikation zwischen CAN/WLANModul und Java-Server. 74 Die vierte Schleife hat die Aufgabe, die empfangenen Daten zu analysieren und aus dem CAN-Frame die Nutzdaten heraus zu fischen und sie danach an den Leitstand(LabVIEWClient) zu senden. 3.5.5 Funktionsweise des CAN/WLAN-Moduls Im Rahmen dieser Bachelorarbeit übernimmt der IGW400/CAN (CAN/WLAN-Modul) die Datenumsetzung. Mit anderen Worten: Der Datenaustausch zwischen dem Leitstand und dem Fahrzeug wird über eine WLAN-Verbindung und den CAN-Bus abgewickelt. Die vom Kommunikationsserver zusammengebauten und vom Sende-Thread gesendeten Pakete kommen bei CAN-WLAN-Modul an. Der CAN-WLAN-Modul wandelt die empfangenen WLAN-Pakete in CAN-Pakete um und sendet sie über den CAN-Bus zum Aksenboard. Das heißt: das Modul arbeitet wie die oben definierte Schnittstellenspezifikation (siehe Tabelle 3.5). Darüber hinaus wird aus dem empfangenen String durch den Microkontroller ein CAN-Frame nach vordefiniertem „Extended“-CAN-Frame zum Übertragen gebildet, und dieser Frame wird dann auf den CAN-Bus geschickt. In diesem Projekt wird nur der eine Kanal des CANBusses zum Senden und Empfangen benutzt. Allerdings besteht die Möglichkeit, beide Kanäle zu verwenden. 3.5.6 CAN-Schnittstelle und Steuerung des Fahrzeuges Auf dem Aksenboard ist eine CAN-Schnittstelle programmiert, die die CAN-Pakete liest. Da die CAN-Schnittstelle optional ist, sind die Funktionen zur Ansteuerung des Fahrzeuges in einer eigenen Datei untergebracht. Um die Funktionen nutzen zu können, müssen die Dateien can.c und can.h sich im Projektverzeichnis befinden. Die Datei can.c muss kompiliert und zum Lenkvorgang hinzugefügt werden, während der Header can.h per include-Anweisung in den Quellcode eingebunden wird. Die Initialisierung der CAN-Schnittstelle übernimmt die Funktion void CanInit (void). Die Konfigurationseinstellungen in dieser Funktion sind in der gut dokumentierten can.c eingestellt. Sie können manuell jeder Zeit nach anderen Spezifikationen geändert werden. Die 75 Kommunikation erfolgt über die Funktionen int CanEmpfang (struct CAN_MSG xdata *CanBotschaft) und int CanSenden (struct CAN_MSG xdata *CanBotschaft), wobei beiden ein Zeiger auf die Datenstruktur CAN_MSG übergeben werden muss. Beide Funktionen geben im Erfolgsfall eine 1 (also TRUE), ansonsten eine 0 (FALLS) aus. int CanEmpfang (struct CAN_MSG xdata *CanBotschaft); holt eine empfangene CANBotschaft von der CAN-Schnittstelle ab und füllt damit die übergebene CAN_MSG-Struktur. int CanSenden (struct CAN_MSG xdata *CanBotschaft); sendet die übergebene CanBotschaft. [CoArNe] CAN-ID und die Nutzdaten werden aus der übergebenen CAN_MSG-Struktur ausgelesen und in verschiedenen Puffern gespeichert. Die Nutzdaten werden dann über Aksenboard durch die Funktionen void lenk(unsigned int impulebereite) und void fahr(unsigned int geschwin- digkeit) an die Servomotoren zum Lenken und Steuern des Fahrzeuges weiter geleitet. Innerhalb der beiden Funktionen void lenk() und void fahr() werden dann die Funktionen ser- vo(LENK_SERVO, lenkServoWert) und servo(FAHR_SERVO, fahrServoWert) aufgerufen und denen dann die aktuelle Richtung und Geschwindigkeitswerte übergeben. Das Fahrzeug reagiert dann der empfangenen Steuerwerte entsprechend. Aber auch umgekehrt, Daten vom Fahrzeug und die aktuelle Geschwindigkeit, Lenkradstellung oder auch Sensorwerte aus analogen bzw. digitalen Ports werden gelesen und zum Leitstand über den CAN-Bus durch die intCanSenden (struct CAN_MSG xdata *CanBotschaft) Funktion gesendet. Das Aksenboard verwendet wiederum die gleiche Verbindung und den gleichen Paketaufbau, um Steuerinformationen sowie die aktuellen Sensorwerte an den Leitstand zu senden. 76 Für die autonome Steuerung des Fahrzeugs wird der Teilcode von Herrn Zubaidullah Arsalans Bachelorarbeit verwendet bzw. der Teilcode wird in den Sourcecode zur autonomen Steuerung des Fahrzeuges integriert [Arsalan]. So bald man am Leitstand den Fahrmodusschalter von manuell auf autonom umschaltet, ändert sich die Steuerung des Fahrzeugs von Manuell auf Automatik und das Fahrzeug fährt dann nach dem vorprogrammierten Programm dann autonom einer Wand entlang weiter. 3.5.7 Implementation und Werkzeuge Die Realisierung des SCADA-Systems (Leitstand, Kommunikationsrechner, CAN- Schnittstelle und Fahrzeugsteuerung) erfolgt unter dem Betriebsystem Windows XP und der Verwendung der grafischen Programmierung LabVIEW, Java und C. Die Visualisierung der Prozessvariablen beim Leitstand (Fahrzeugrichtung und Fahrzeuggeschwindigkeit), Zusammensetzung der CAN-Frame, so wie TCP/IP Client zum Steuerdaten Senden/Empfangen wird mit LabVIEW programmiert. Ausschlaggebend für die Verwendung von LabVIEW, statt einer herkömmlichen Programmierung (z.B. Java oder C) war das Vorhandensein der umfangreichen Bibliotheken, die den Programmieraufwand deutlich gering halten. Die entstehende Anzeige und die Bedienelemente erlauben die Gestaltung einer ansprechenden Bedienoberfläche. Hinzu kommt die Unterstützung einer breiten Palette von I/O-Geräten wie zum Beispiel dem verwendeten PC-Lenkrad. LabVIEW gewinnt seine Stärke jedoch erst durch die eigene Programmiersprache G, die es einem Programmierer ermöglicht, die erforderlichen Funktionen selbst zu implementieren und ein den eigenen Wünschen entsprechendes Programm zu programmieren bzw. zu verwirklichen. 77 Mit der LabVIEW Entwicklungsumgebung lassen sich ausführbare Programme bzw. Dateien, also das so genannte VI (Visual Instrument) erstellen. Für deren Ausführung ist die Installation der LabVIEW Runtime Engine zwingend erforderlich, die auch Bestandteil der Entwicklungsumgebung ist. Es ist zu beachten, dass für die Installation der Runtime Engine die Administratorrechte benötigt werden. Im Bild 3.18 abgebildete LabVIEW-Umgebung entpricht der LabVIEW Version 7.1. Bild 3.18 Screenshot von der LabVIEW-Entwicklungsumgebung 78 Außerdem beansprucht das SCADA-System eine reibungslose Kommunikation zwischen den Kommunikationsteilnehmern. Um die Anwendung und damit den Anwender nicht fest an ein Betriebssystem zu binden, wird als Programmiersprache JAVA (Version1.5.0) für die Implementation des Kommunikationsservers verwendet. Darüber hinaus ist die Socketschnittstellen Programmierung unter Java einfacher und im Vergleich zu C nicht so zeitaufwendig. Die Entwicklung findet unter Windows XP statt, als Entwicklungsumgebung bietet sich das freie Eclipse [ECli] siehe Bild 3.19 in der Version 3.1 an. Bild 3.19 Screenshot von der Eclipse-Entwicklungsumgebung 79 Das Aksenboard ist mit einem CAN-Bus Interface bestückt. Für die Steuerung des Systems muss diese CAN-Schnittstelle nach CAN-Spezifikation gelesen werden. Das CANSchnittstellen Programm zum Lesen des CAN-Busses, Steuerung der Servomotoren so wie Lesen der Sensorports und das Senden der Daten an Leitstand wurde unter Verwendung der Programmiersprache C geschrieben und mithilfe des freien C-Compilers avr-gcc übersetzt. Da die Entwicklung unter dem Betriebssystem Windows XP stattfindet, kommt die Softwaresammlung WinAVR in der Version 4.1 zum Einsatz. Sie beinhaltet neben dem Compiler und anderen Tools die Laufzeitbibliotheken [avr-libs] und die zugehörige Dokumentation. Um den Quellcode zu schreiben, wird der Texteditor ConTEXT [ConTex] in der Version 2.0.5.48 verwendet siehe Bild 3.20. Bild 3.20 Screenshot vom ConText-Editor 80 3.5.8 Access-Datenbank Laut der Anforderung an das System, benötigt der Leitstand einen Datenbankzugriff, um die vom PC-Lenkrad/Gas-Bremspedalen gelesenen Steuerinformationen (Soll-Werte) bzw. aus dem Fahrzeug gelesenen Steuerinformationen (Ist-Werte) und die Sensorenwerte in die Datenbank abzuspeichern. Dieser Teil der Realisierung am System, also die Programmierung der Lab- VIEW/Datenbankschnittstelle wurde aufbauend auf den Voruntersuchungen von Eric Robert und Maxim Van de Moortele realisiert. [EricMaxim] Die Datenbank-VI ist an die Leitstandsoftware angepasst. Die empfangenen Telemetrie und Sensordaten können je nach Datum und Uhrzeit problemlos in die Datenbank abgespeichert werden. Die zugehörige VI wird im Anhang angehängt. Bild 3.21 stellt einen Auszug aus der Datenbank dar. Bild 3.21 Auszug aus der Datenbank 81 4 Zusammenfassung 4.1 Resümee Ziel dieser Bachelorarbeit war die Bereitstellung einer Kommunikationsschnittstelle zwischen einem Leitstand und einem autonomen fahrerlosen Transportsystem. Des Weiteren war das Ziel eine Art Telemetrie bzw. Automatisierung, Überwachung der Prozesse so wie die Verwaltung und Abspeicherung der entstandenen Ergebnisse zu realisieren. Es wurde zuerst auf die theoretischen Grundlagen der zu verwendeten Technologien eingegangen und deren Funktionsweise untersucht. Die Analyse der vorhandenen Technologien führte zur Auswahl von WLAN und LabVIEW. Anschließend wurde ein Lösungskonzept erstellt. Die für dieses Konzept benötigte Hardware wurde aufgelistet und deren Funktionsweise dargestellt. Des Weiteren wurden zwei Standard-Software untersucht und die für das Konzept passende Software ausgewählt. Eine reibungslose Kommunikation und der Datenaustausch zwischen den Kommunikationsteilnehmern sind nach der Anforderung an System im Kapitel 1.2 gegeben. Mit dem im Rahmen dieser Bachelorarbeit entwickelten Steuerungssystem ist es jetzt möglich aus einem Leitstand drahtlos ein autonomes fahrerloses Transportsystem zu steuern. 82 4.2 Aussichten und Weiterführung Es gibt auch weiterführende Möglichkeiten diese Arbeit weiter zu entwickeln. Der nächste Schritt währe die Realisierung des Systems für mehre autonome Fahrzeuge aus einem Leitstand. Also, eine Kommunikation zwischen mehreren Fahrzeugen und somit einen Datenaustausch der Kommunikationsteilnehmer und deren Verwaltung. Es sind auch mehrere Optimierungsmöglichkeiten im Design des Konzepts denkbar: z.B. - Eine Datenverschlüsselung auf Grund der Funktechnologie. Dann kann man die gesendeten Datenpakete je nach Wichtigkeit verschlüsseln. - Ferner eine Videobildanzeige mittels einer separaten Anwendung durch Web-Browser. Da LabView ActiveX-Container für die Oberflächengestaltung anbietet, ist es möglich, einen solchen in die Bedieneinheit zu integrieren und ihn mit dem obligatorischen Internet-Explorer zu verknüpfen. 83 Literaturverzeichnis Bücher und Dokumentationen: [JoGut] IEEE 108.11.x Low-Rate Wireless Personal Area Networks: Enabling Wireless Sensor Networks Jose A. Gutierrez, Edgar H. Callaway, Raymond Barrett ISBN 0-7381-3557-7 [AnHac] Wireless Sensor Network Designs Anna Hac ISBN 0-470-86736-1 [WLANBlu] Das große Buch Wireless LAN & Bluetooth Andreas Lerg & Annette Stolz ISBN 3-8158-2500-8 [WLABlu] Wireless LANs and Bluetooth Yang Xiao, Yi Pan ISBN 1-59454-432-8 (hardcover) [AnTan] Computernetzwerke Andrew S. Tanenbaum 4. Auflage, 2003, Pearson Studium ISBN 3-8273-7046-9 [CANCoAr] CAN Controller Area Networks Wolfhard Lawrenz(Hrsg) (2000) ISBN 3-7785-2780-0 [CoArNe] Controller Area Network Konrad Etschberger ISBN 3-446-21776-2 84 [LabVIEW] LabVIEW für Studenten Rahman Jamal, Andere Hagenstedt (2004) Addison-Wesley München ISBN 3-8273-7154-6 [GuiKru] Handbuch der Java-Programmierung Guido Krüger ISBN 3-8273-2201-4 [WEDI] Wedico 2001 WEDICO: Wedico Bauanleitung Elektrische Anlage, Art.-Nr. 782. 17.04.2001 [EricMaxim] Praktikumsreport zur Datenbankanbindung PDF Eric Robert und Maxim Van de Moortele Juni 2006 [Arsalan] Bachelorarbeit Zubaidullah Arsalan Februar 2006 WWW-Referenzen: [CAN-CIA] CAN, CAN in Automation (CAN-CIA), CAN Specification 2.0, Part B http://www.can-cia.ru/CAN20B.pdf (Letzter Zugriff: 10.06.2006) [Bosch] Firma BOSCH, BOSCH CAN Specification Version 2.0, 1991 http://www.semiconductors.bosch.de/pdf/can2spec.pdf (Letzter Zugriff: 12.06.2006) [ShoRan] Short Range Wireless Lecture http://www.isas.tuwien.ac.at/upload/downl/shortrangewirelessleture _2005_1.pdf (Letzter Zugriff: 16.09.2006) 85 [WLABuc] WLAN Buch http://www.feld-it.de/wlanbuch.pdf (Letzter Zugriff: 17.09.2006) [IEEE802.11.x] Specification Wireless LAN Networks http://standards.ieee.org/getieee802/download/802.15.4-2003.pdf (Letzter Zugriff: 18.09.2006) [BlToo] Informationen Bluetooth http://de.wikipedia.org/wiki/Bluetooth Letzter Zugriff: 12.08.2006) [WinCC1] WinCC Version 6 Systembeschreibung http://www.softguide.de/prog_h/ph_0281.htm (Letzter Zugriff: 28.09.2006) [WinCC2] Systembeschreibung http://www.automation.siemens.com/hmi/html_00/ products/software/wincc/index.htm (Letzter Zugriff: 29.09.2006) [ECli] Eclipse und SWT-Bibliothek http://www.eclipse.org/ (Letzter Zugriff: 12.05.2006) [ConTex] Labor für Künstliche Intelligenz an der FHB http://ots.fhbrandenburg.de/index.php (Letzter Zugriff: 10.06.2006) [AksBor] Labor für Künstliche Intelligenz an der FHB http://ots.fhbrandenburg.de/index.php (Letzter Zugriff: 10.06.2006) [Conr-05] Infrarot Distanzsensoren http://www.conrad.de (Letzter Zugriff: 13.010.2006) 86 [Wal-Emb] Walter, Embedded Internet in der Industrieautomation. Hüthig Verlag 2004.]) http://www.ssv-embedded.de/ de/igw400-APN1.pdf]) (Letzter Zugriff: 08.06.2006) [Aks_Bor]. Labor für Künstliche Intelligenz an der FHB http://ots.fhbrandenburg.de/index.php. (Letzter Zugriff: 10.06.2006) [Siemens] Forschung und Innovation http://w4.siemens.de/FuI/de/archiv/zeitschrift/heft1_00 /artikel10/index.html (Letzter Zugriff: 19.09.2006) [SSV1] SSV Embedded Systems Documents http://www.ssv-comm.de/de/bilderarchiv.htm (Letzter Zugriff: 10.06.2006) 87 Anhang Im Anhang befindet sich eine CD-ROM mit folgendem Inhalt: Aksenboard_CD Bachelor_PDF Datenabnk Dokumentation_PDF SCADA_Video Sourcecode • Das Verzeichnis Aksenboard_CD enthält die Bibliotheken des AksenBoards, das Handbuch und alle benötigte Programme zum Programmierung des Aksen-Boards. • Das Verzeichnis Bachelor_PDF enthält diese Bachelorarbeit im PDF-Format. • Im Verzeichnis Datenbank befindet sich die Accessdatenbank • Das Verzeichnis Dokumentation_PDF beinhaltet die elektronische Literatur, die im Rahmen dieser Arbeit benutzt wurde. • Im Verzeichnis SCADA_Video befinden sich die Videoaufnahmen, die während des Tests des autonomen Modell-Fahrzeuges aufgenommen wurde. • Das Verzeichnis Sourcecode enthält die VI’s des Leitstandes, den Quellcode des JavaKommunikationsservers, das Datenbankanbindung VI, den Quellcode des CAN-Interfaces und den Quellcode der Fahrzeugsteuerung 88 Versicherung über Selbstständigkeit Hiermit versichere ich, dass ich die vorliegende Arbeit im Sinne der Prüfungsordnung nach §22(4) ohne fremde Hilfe selbstständig verfasst und nur die angegebenen Hilfsmittel benutzt habe. _____________________________________ ____________________________ Ort, Datum Unterschrift