Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste Überarbeitung Beide Seiten der Revision
forschung:projekte:rtandroid [2015/01/15 17:16]
thoennessen
forschung:projekte:rtandroid [2015/01/15 17:27]
thoennessen
Zeile 1: Zeile 1:
-====== ​RTAndroid: ​Real-Time Android ======+~~NOTOC~~ 
 +====== Real-Time Android ======
  
 Mit RTAndroid wird erstmals der Einsatz von mobilen Geräten in echtzeitkritischen Anwendungen möglich. Es 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. Mit RTAndroid wird erstmals der Einsatz von mobilen Geräten in echtzeitkritischen Anwendungen möglich. Es 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.
-\\ 
-\\ 
-{{ :​forschung:​projekte:​rtandroid.png?​200 |}} 
- 
  
 +{{:​forschung:​projekte:​rtandroid.png?​200 |}}
 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. ​ 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. ​
  
Zeile 17: Zeile 15:
  
  
 +===== 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 |}}
  
-Android is built upon a preemptible Linux kernel, which has been modified ​in RTAndroid to allow deterministic priority-based process schedulingFurthermore,​ RTAndroid introduces a number of additional features to ensure a reliable process execution:​ +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ügungNeben 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.
-\\ +
-\\ +
-  * Non-blocking, real-time capable garbage collection +
-  * Extended system services for bypassing Android’s low memory process killer +
-  * Isolation of the running real-time application on one of the available CPUs+
  
-===== Twistturn ​=====+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.
  
-Twistturn is a development and execution environment for programs written in PLC-common programming languages. It makes use of RTAndroid’s predictable process behavior and provides PLC developers the possibility to write or modify an existing PLC program and immediately execute it on the same device. Furthermore,​ Twistturn introduces additional components for rapid prototyping and a comfortable workflow: 
-\\ 
-\\ 
-  * Development and editing tools (Structured Text, IEC 61131) 
-  * Simulation of declared inputs and outputs 
-  * Execution of the PLC program in real-time mode 
-  * Communication to external hardware components 
  
 ===== Ansprechpartner ===== ===== Ansprechpartner =====