Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung Beide Seiten der Revision
forschung:projekte:rtandroid [2015/02/12 11:34]
thoennessen
forschung:projekte:rtandroid [2015/11/29 10:15]
kalkov
Zeile 2: Zeile 2:
 ====== Real-Time Android ====== ====== Real-Time Android ======
  
-===== Überblick =====+{{ :​forschung:​projekte:​rtandroid.png?​200|}} 
 Android ist eine moderne Plattform für eingebettete Systeme. Unterstützung für Multitasking und Bedienerfreundlichkeit machen dieses Betriebssystem sowohl für Benutzer als auch für Entwickler attraktiv. Heutzutage wird der Einsatz von Android auch im industriellen Umfeld zur Zwecken von Automatisierung,​ Überwachung und Steuerung von Prozessen evaluiert.\\ Android ist eine moderne Plattform für eingebettete Systeme. Unterstützung für Multitasking und Bedienerfreundlichkeit machen dieses Betriebssystem sowohl für Benutzer als auch für Entwickler attraktiv. Heutzutage wird der Einsatz von Android auch im industriellen Umfeld zur Zwecken von Automatisierung,​ Überwachung und Steuerung von Prozessen evaluiert.\\
 \\ \\
Zeile 9: Zeile 10:
 Die RTAndroid Plattform, welche Applikationen mit Echtzeit-Anforderungen unterstützt,​ erweitert das Anwendungsfeld von mobilen Geräten auf zeitkritische Domänen. Dadurch wird es ermöglicht,​ industrielle Anlagen vor Ort zu überwachen und zu automatisieren. Dieses Projekt evaluiert die Anwendbarkeit von RTAndroid in typischen Szenarios für Speicherprogrammierbare Steuerungen (SPSen). Kontinuierliche Weiterentwicklungen hinsichtlich Portabilität,​ Bedienerfreundlichkeit und Rechenleistung von modernen Tablet PCs ermöglichen Implementierung einer neuen, integrierten Entwicklungsumgebung für SPS-Programmiersprachen. Basierend auf der grundlegenden Echtzeitunterstützung kann RTAndroid als eine All-in-one Plattform für die Entwicklung,​ Simulation und Ausführung von SPS Programmen einschließlich der Kommunikation mit externer Hardware verwendet werden.\\ Die RTAndroid Plattform, welche Applikationen mit Echtzeit-Anforderungen unterstützt,​ erweitert das Anwendungsfeld von mobilen Geräten auf zeitkritische Domänen. Dadurch wird es ermöglicht,​ industrielle Anlagen vor Ort zu überwachen und zu automatisieren. Dieses Projekt evaluiert die Anwendbarkeit von RTAndroid in typischen Szenarios für Speicherprogrammierbare Steuerungen (SPSen). Kontinuierliche Weiterentwicklungen hinsichtlich Portabilität,​ Bedienerfreundlichkeit und Rechenleistung von modernen Tablet PCs ermöglichen Implementierung einer neuen, integrierten Entwicklungsumgebung für SPS-Programmiersprachen. Basierend auf der grundlegenden Echtzeitunterstützung kann RTAndroid als eine All-in-one Plattform für die Entwicklung,​ Simulation und Ausführung von SPS Programmen einschließlich der Kommunikation mit externer Hardware verwendet werden.\\
 \\ \\
- +http://rtandroid.embedded.rwth-aachen.de
-===== RTAndroid ===== +
- +
-{{ :​forschung:​projekte:rtandroid.png?​200|}} +
- +
-Mit RTAndroid wird erstmals der Einsatz von mobilen Geräten in echtzeitkritischen Anwendungen möglichEs handelt sich dabei um ein Derivat des Android-Betriebssystems,​ welches am Lehrstuhl Informatik 11 der RWTH Aachen entwickelt wird. Es bietet Unterstützung für Applikationen mit Echtzeitanforderungen auf handelsüblichen Tablets und Smartphones. Die entstehende RTAndroid Plattform ist vollständig kompatibel zu bereits existierender Android-Software sowie zu zahlreichen Drittanbieter-Komponenten.\\ +
-\\ +
-Grundlage von RTAndroid stellt ein mit RT_PREEMPT modifizierter,​ echtzeitfähiger Linux Kernel dar. Dieser führt eine vollständige Kernel-Unterbrechbarkeit ein und ermöglicht damit eine deterministische,​ prioritätsbasierte Prozessverwaltung nach Echtzeit-Zuteilungsstrategien SCHED_FIFO und SCHED_RR. Damit wird es auch unter Android möglich, von Echtzeitprioritäten zwischen 1 und 99 innerhalb von eigenen Anwendungen zu profitieren. Da laufende Android Applikationen immer in einem oder mehreren Linux Prozessen gekapselt werden, kann die Prioritätsanpassung auf der Linux-Ebene nur für die nötigen Applikationskomponenten (z.B. einen separaten Hintergrundservice) erfolgen. \\ +
-\\ +
-Die von Google speziell für Android entwickelte Dalvik Virtual Machine (DVM) bringt für die Anwendungen nicht nur eine isolierte Laufzeitumgebung,​ sondern auch einen Garbage Collector (GC) für die automatische Speicherverwaltung mit. Der GC stellte bisher jedoch ein unkalkulierbares Risiko für Echtzeitprozesse dar, weil bei seiner Aktivierung alle laufenden Threads der aktuellen Applikation angehalten werden mussten. Die in RTAndroid eingesetzte DVM wurde mit einer nicht-blockierenden,​ echtzeitfähigen Speicherverwaltung erweitert. Dadurch müssen Prozesse mit dynamischem Speicherverbrauch keine unvorhergesehene Unterbrechung befürchten.\\ +
-\\ +
-In der Originaldistribution von Android wird der Lebenszyklus einer Applikationskomponente typischerweise von ihrer Sichtbarkeit bzw. Interaktionsmöglichkeiten mit dem Benutzer beeinflusst. Sobald eine App vollständig in den Hintergrund gerät, verliert sie aus der Sicht des Systems an Wichtigkeit für den Benutzer und kann pausiert oder gar terminiert werden. In RTAndroid hingegen, können laufende Echtzeitapplikationen unabhängig von ihrer Sichtbarkeit grundsätzlich nicht vom System negativ beeinflusst werden. Während Hintergrundprozesse in Android auch zugunsten der längeren Akkulaufzeit unterbrochen werden können, agiert RTAndroid als eine zuverlässige Ausführungsplattform für Langzeitoperationen. Ein vorhersagbares Laufzeitverhalten wird selbst bei ausgeschaltetem Bildschirm garantiert, während in einem gewöhnlichen Android dabei der Ruhemodus aktiviert wird und die einzelnen Prozessoren herunterfahren oder –getaktet werden.\\ +
-\\ +
-{{:​forschung:​projekte:​evaluationlatenz.png?​300 |}} +
-Das Zusammenspiel der hier beschriebenen Techniken ermöglicht vorhersagbare Reaktionszeiten und reduziert auftretende Latenzen – d.h. Differenzen zwischen dem geplanten und dem tatsächlichen Ausführungszeitpunkt – von mehreren Sekunden auf unter eine Millisekunde. Eine Veranschaulichung der Reaktionszeiten ist in der nebenstehenden Grafik zu finden. Über 1000 Ausführungsiterationen wurde die Ausführungsverzögerung einer Testapplikation in µs gemessen. Im Diagramm gegenübergestellt sind in hellblau die Latenzen einer Nicht-Echtzeit Anwendung und in dunkelblau jene einer Echtzeitanwendung. Die Analyse der Messergebnisse liefert einen Worst Case der Latenzen von 1255 µs bzw. 61 µs. \\ \\ +
-{{ :​forschung:​projekte:​evaluationberechnungszeit.png?​300|}} +
-Eine weitergehende Evaluation ist in dem untenstehenden Diagramm zu finden. Dort aufgezeichnet ist die Berechnungszeit eine Testapplikation über eine Testausführung von 1000 Iterationen,​ ähnlich wie im vorangehenden Test. Hier wurde jedoch nicht die Ausführungslatenz gemessen, sondern die Berechenungsdauer einer komplexen Rechenoperation. Die in hellblau aufgezeichneten Messwerte belegen eine durchschnittliche Berechnungsdauer von 12939 µs für den Testlauf auf einer handelsüblichen Android Distribution. Dem gegenüber steht eine Berechnungsdauer von durchschnittlich 1745 µs für den Testlauf auf RTAndroid. Des Weiteren ist eine deutlich geringere Standardabweichung in den Messwerten von RTAndroid zu erkennen, die Berechnungszeiten sind somit deutlich vorhersagbarer. \\ \\ +
- +
-Obwohl die Anpassungen am Android-Betriebssystem vielfältig und komplex sind, ist die Nutzung dieser Funktionen von einer Anwendung aus denkbar einfach. Das Applikationsframework sowie das mitgelieferte SDK wurden um neue Schnittstellen für die eingeführten Funktionalitäten erweitert, um die Entwicklung von Echtzeitanwendungen weitestgehend an die von gewöhnlichen Applikationen anzulehnen. Zum Beispiel können Echtzeiteigenschaften für einzelne Applikationskomponenten selektiv über die Manifest-Datei gesetzt werden. Diese Datei ist ein Hauptbestandteil von jeder für Android entwickelten Anwendung und enthält alle für das System relevanten Informationen wie Applikationsnamen,​ Versionsnummer und möglicherweise benötigte Berechtigungen.\\ +
-\\ +
-Dank RTAndroid wird ermöglicht die Anwendung von RT_PREEMPT auch für mobile Geräte. Dank der modularen Architektur können entstehende Systeme auf Basis von RTAndroid flexibel konfiguriert und an die konkreten Anforderungen angepasst werden.\\ +
-\\ +
- +
-===== Twistturn ===== +
- +
-Dass ein Tablet für mehr als nur die Darstellung von Parametern und anderen HMI-Aufgaben geeignet ist, zeigt die Anwendung Twistturn. Für RTAndroid entwickelt, wird mit ihr ein neuer Ansatz verfolgt: Steuerungsprogramme können auf dem Tablet sowohl entwickelt als auch in Echtzeit ausgeführt werden. +
-Die Nutzung mobiler Geräte ist derzeit eine gefragte Neuerung bei der Applikations-Entwicklung. Stärken zeigen sich schon jetzt bei visuellen Programmiersprachen oder kleineren Modifikationen am Code. Für codeintensive Arbeiten eignen sich diese Geräte aufgrund der fehlenden Hardware-Tastatur aktuell noch weniger. Gegenstand aktueller Forschung ist es deshalb, die Eingabe durch intelligente Benutzeroberflächen kontextsensitiv zu unterstützen. \\ +
-\\ +
-{{ :​forschung:​projekte:​twistturn.png?​500 |}} +
-\\ +
-Twistturn überträgt diesen neuen Ansatz der Entwicklung auf mobilen Geräten in die Automatisierungstechnik und stellt eine mobile Entwicklungsumgebung für SPS-Programme zur Verfügung. Neben der Codeeingabe bietet es Komfortfunktionen zur POE-Verwaltung und Hardwarekonfiguration. Das Bedienkonzept ist auf Touch-Bedienung und den begrenzten Platz auf einem Tablet ausgelegt. Selbstverständlich sind auch Features wie Syntaxhighlighting zur leichten Orientierung im Quellcode und die komfortable Projektverwaltung zum Arbeiten mit mehreren Dateien. Aktuell werden die Entwicklung von SPS-Programmen in Structured Text und Function Block Diagram nach IEC 61131-3 unterstützt.\\ +
-\\ +
-Die geschriebenen Programme können auf dem Tablet direkt ausgeführt werden. Dafür wird der Steuerungscode auf dem Gerät kompiliert und in einem Echtzeit-Prozess von RTAndroid ausgeführt. Dieser Echtzeit-Prozess erhält seine Daten über einen mit dem Tablet verbundenen Hardware-Adapter und gibt berechnete Ausgangswerte dorthin zurück. Die Nutzung der großen Tablet-Bildschirme als HMI ist alternativ oder zusätzlich möglich. Ausgangsvariablen können einfach als Graph dargestellt werden. Für Eingangsvariablen stehen Eingabemöglichkeiten bereit, um Parameter während des Betriebs über den Touchscreen zu modifizieren. So kann mithilfe von Twistturn auf zusätzliche Bedientableaus verzichtet werden. +
-Die Evaluation des Systems mit einfachen Steuerungsprogrammen ergab Zykluszeiten von wenigen hundert Mikrosekunden. Vergleiche mit konventionellen SPSen zeigen bis zu 40-mal kürzere Zykluszeiten mit denselben Programmen. Diese Ergebnisse überraschen aufgrund der schnellen CPU des Testsystems (Google Nexus 10) wenig. Gezeigt ist damit die Eignung eines mit RTAndroid ausgestatteten Tablets für Steuerungsaufgaben.\\ +
-\\ +
-Gerade für Prototypen und den Einsatz in der Lehre ist Twistturn bereits jetzt sehr attraktiv. Der Steuerungscode kann auf der Ausführungsplattform angepasst und zur weiteren Ausführung direkt übernommen werden. Dies ermöglicht einen kürzeren und einfacheren Entwicklungszyklus. Vor allem bei den visuellen Programmiersprachen sind zukünftig noch Vorteile zu erwarten. Die von der IEC spezifizierten,​ grafischen Sprachen bieten sich für die Programmierung mit Touch-Bedienung geradezu an. Besonders den unerfahrenen Entwicklern fällt die Nutzung dieser Eingabe leichter als die am stationären PC mit Maus und Tastatur. +
-Neu ist mit dieser Art der Ausführung die Mobilität. Die Steuerung ist nicht mehr notwendigerweise fest mit der Anlage verbunden und kann bei nichtgebrauch schnell von der Anlage entfernt werden. Bei einer drahtlosen Verbindung zur Anlage ist in bestimmten Grenzen auch die Mobilität während des Betriebs möglich. Neue Einsatzgebiete über die der konventionellen SPSen hinaus sind damit denkbar.\\+
 \\ \\