Montag, 25. März 2013

Windows 8 Store Apps - Education, Industrie und Enterprise

Nach meiner langen Schreibpause soll es endlich wieder Leben im Blog geben und zwar zu einem Thema mit dem ich mich privat und beruflich in letzter Zeit nicht gerade wenig beschäftigt habe - Windows 8 Apps.

Beginnen möchte ich mit der bereits im Windows Store verfügbaren App mit dem großen Namen - Industrial Measurement And Control Engine (zugegeben nicht vor mir aber macht was her). 


Kurz zur Entstehungsgeschichte der App bevor ich auf ein paar technische Details eingehe. Angefangen hat alles mit meiner Diplomarbeit am Institut für Automatisierungstechnik der TU-Dresden, um den trockenem Thema (Untersuchungen zur aspektorientierten Umsetzung von Modell-zu-Text-Transformationen für Benutzungsschnittstellen) mit einem praktischen Zusatz etwas Pepp zu verleihen wurde als Fallstudie eine kleine Windows 8 App generiert. Nach erfolgreich abgeschlossener Arbeit konnte ich meine neuen Brötchengeber Lars und Peggy (HeiReS GmbH) davon überzeugen die App weiter zu entwickeln. Mit der Hilfe und Einwilligung der TU-Dresden wurde aus der einfachen Fallstudie eine vorzeigbare Anwendung die einen Blick darauf zulässt wie zukünftige Systeme zum Bedienen und Beobachten von Industrieanlagen aussehen könnten. Weiterhin dient sie der Technischen Universität Dresden als Lehrobjekt, wodurch die Einstufung im Storebereich Education begründet ist.

Screenshot der generierten App aus der Fallstudie meiner Diplomarbeit

Aus technischer Sicht möchte ich Euch einen groben Überblick darüber geben wie die App Daten mit der Anlage austauscht, auf andere Details wie den Einsatz von Portable Class Libraries und damit verbunden der portablen Version von MVVM Light gehe ich bei Interesse gern in einem späteren Blogpost ein.

Welche Möglichkeiten bietet WinRT uns um mit einer Industriellen Anlage zu kommunizieren?
Nun die Möglichkeiten sind vielfältig, lassen sich aber eingrenzen. So ist eine direkte Anbindung über eine Serielle Kommunikation oder eine Hardware-Erweiterungskarte recht aufwendig, da aus Store Apps heraus nur mit einem extra für die App entwickeltem Treiber auf die Hardware zugegriffen werden kann.
Leichter wird die Sache wenn man über Schnittstellen einer "höheren Ebene" auf die Prozessdaten zugreifen kann. Mit HTTP und TCP Sockets gibt einem WinRT in diesem Bereich viele Möglichkeiten an die Hand. Aber wie kann man diese im Industrieumfeld nutzen? Dazu möchte ich einige recht verbreitete Kommunikationsstandards nennen und kurz darauf eingehen wie man diese auch mit WinRT umsetzt.


  • Modbus TCP - der Zugriff ist mit den TCP Sockets grundsätzlich möglich, eine Anbindung aber trotzdem mit etwas Aufwand verbunden, da die Kommunikation selbst implementiert werden muss.



  • OPC (DA, A&E, HDA) - Ähnlich wie Modbus TCP ist auch eine Kommunikation mit OPC theoretisch möglich. Hier ist die notwendige Eigenimplementierung aber wesentlich umfangreicher, so dass es günstiger ist einen Gateway zwischen zu schalten (z.B. OPC DA -> OPC XML DA) oder einen eigenen Proxy ( z.B. OPC -> WCF) zu entwickeln.



  • OPC XML DA - OPC XML DA ist mit einer Kommunikation über HTTP und der XML-Struktur der Daten sehr gut geeignet um eine Prozesskommunikation für WinRT zu implementieren. Mit OPC XML DA wurden die Prozessdaten in meinen Fallstudien Apps (es waren zwei Apps die mit unterschiedlichen Aspekten generiert wurden) übertragen.



  • OPC UA - Bei OPC UA gilt es die einzelnen Versionen zu unterscheiden. Die reine Binary-Ausführung dürfte einiges an Implementierungsaufwand mit sich bringen, dank TCP Sockets aber grundsätzlich möglich sein. Am leichtesten zu implementieren sollte die SOAP Variante sein, so diese denn zur Verfügung steht (was ein festes Vorhandensein im Standard voraussetzt ;) ). Ebenfalls mit überschaubarem Aufwand kann der Hybridmodus implementiert werden, da hier die Daten und Befehle im Binärformat über HTTP übertragen werden. Dies hat auch einen Vorteil bezüglich des bei SOAP (XML) nicht zu unterschätzendem Overhead

  • Eigene Proxydienste (Stichwort WS*) - Wie bereits unter dem Punkt OPC erwähnt ist es in manchen Situationen sowohl technisch als auch wirtschaftlich von Vorteil eigene Proxydienste zu implementieren. Die Komplexität fällt meist recht gering aus und sie ermöglichen es ,ursprünglich fehlende Funktionalität nachzurüsten. So kommt auch bei der im Store veröffentlichten App ein Proxy-Webservice der Technischen Universität zum Einsatz der sowohl einen Datencache bereitstellt als auch eine Authentifizierung der Nutzer ermöglicht, was bei OPC XML DA leider nicht direkt vorgesehen ist. 


Mit der Kommunikation ist auch schon der mir wichtige Teil an technischem Hintergrund besprochen. Für die Darstellung des Livebilds der Kleinversuchsanlage wird der MJPEG Decoder von Gerg Duncan verwendet (ursprünglich habe ich ihn von Silverlight zu WinRT portiert, mittlerweile gibt es eine fertige WinRT-Version).

Um auch nicht Studenten einen einblick zu gewähren wie die Steuerung der Anlage von statten geht wird eine Simulationsmodus bereitgestellt, mit dem einige Funktionen ohne Zugriff auf die Anlage ausprobiert werden können.

Screenshot der aktuellen Version im Windows Store

Das war noch nicht alles!

Nicht schlecht du hast den Artikel bis hier hin gelesen, das wird belohnt mit einem Ausblick auf kommende Funktionen der Industrie App.

Zu den kommenden Funktionen.

  • Eine Funktion welche schon beispielhaft implementiert war, aus Zeitgründen aber vorerst wieder entfernt wurde ist der Semantic Zoom, welcher dazu dienen soll sowohl einen Überblick über eine größere Anlage ( R&I-Fließbildebene) zu ermöglichen als auch spezielle Anlagenteile (wie unsere Tanks) detailliert zu Betrachten und zu Bedienen. 
  • Weiterhin wird es für Studenten in den kommenden Semestern umfangreiche Erklärungen zu den einzelnen Funktionen und den dahinter stehenden technischen Grundlagen geben (z.B. zum PI-Regler für die Durchflußregulierung). 
  • In unserer UI/UX Abteilung qualmen die Köpfe denn es gibt einige neue Bedienkonzepte die ausprobiert und vorgeführt werden wollen - was eignet sich dafür besser als eine App die genau für diese Demo-Zwecke und den "Blick in die Zukunft" gebaut wurde? 
  • Der Simulationsmodus wird wenn die Zeit vorhanden ist auf den vollständigen Funktionsumfang der realen Anlage erweitert. 
  • Die Darstellung des Anlagenzustandes (Stichwort Flüssigkeiten in den Rohren) wird besser visualisiert, das bestehende Glasdesign lädt ja gerade dazu ein Flüssigkeiten beim Umpumpen "plätschern" zu lassen.

Es sind noch weitere Ideen vorhanden aber ich kann Euch ja nicht alles verraten, sonst baut ihr noch vor mir die erste große SCADA-Anwendung die auf WinRT basiert und das wäre nicht fair!


Ich freue mich wie immer über Kommentare, Kritik und Verbesserungsvorschläge!
Update - Sorry die Kommentarfunktion war aus einem mir nicht bekannten Grund deaktiviert.

Keine Kommentare:

Kommentar posten