Industrie 4.0

Legosteine mit Webtechniken sortieren

19. November 2015, 9:56 Uhr | Ralf Higgelke
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Gerät und Bedienung voneinander trennen

Die Logiken des Sortierers und die Bedienung voneinander zu trennen, bringt einige Vorteile mit sich: Beide Teile lassen sich unabhängig voneinander implementieren und die grafische Benutzeroberfläche auslagern, damit die knappen Ressourcen, die der Stein-Erkennung zur Verfügung stehen, nicht zusätzlich von der Logik der Nutzersteuerung belastet werden. Vor allem für die Steuerung über Webtechniken ist diese Auslagerung optimal. Dabei benötigt der Sortierer nur eine Verbindung zum Rechner zur Kommunikation mit der API, muss also weder in einem öffentlichen Netzwerk oder gar im Internet hängen.

Im Gegensatz zu einer Steuerung über die Konsole oder ein lokales grafisches Programm braucht man für eine Webanwendung einen Webserver, der die Anfragen eines Browsers entgegennimmt und die angeforderte HTML-Seite zurücksendet. Hier gibt es zwei Möglichkeiten: Die Anzeigeseite kann statisch oder dynamisch sein, also Inhalte wie aktuelle Statistiken und Einstellungen dynamisch anzeigen, Parameter automatisch einlesen (z.B. aus einem Steuerskript) oder gesendete Werte abspeichern. Dann ist zusätzlich eine Programmlogik des Servers notwendig.

Es ist vorteilhaft, dafür zu sorgen, dass die Serverlogik alle aktuellen Werte und Einstellungen speichert. Dadurch vermeidet man unnötige Störungen im Betrieb des Sortierers, da er nicht bei jedem Aufruf der Webseite erneut angefragt werden muss. So ist es für den Legostein-Sortierer bedeutungslos, ob die Webseite für die Steuerung einmal geöffnet ist oder mehrfach. Für die Serverlogik von Webseiten bieten sich Skriptsprachen wie PHP oder Ruby an, die durch ihre große Verbreitung seit vielen Jahren etablierte Werkzeuge für diese Aufgabe mitbringen.

Bild 3: Beispiel für eine Webseite, über die der Nutzer die Sortierkriterien einstellen kann. Dazu bietet die Webschnittstelle gängige Elemente wie Drag&Drop-Menüs, verschiebbare Register etc.
Bild 3: Beispiel für eine Webseite, über die der Nutzer die Sortierkriterien einstellen kann. Dazu bietet die Webschnittstelle gängige Elemente wie Drag&Drop-Menüs, verschiebbare Register etc.
© Mixed Mode

Die Auslagerung der Maschinensteuerung auf eine grafische Weboberfläche bringt noch weitere Vorteile mit sich: Durch die Beliebtheit und Verbreitung von Webtechniken gibt es bereits viele Frameworks, mit denen man mit relativ wenig Aufwand eine zeitgemäße Steuerungsmöglichkeit für ein System erstellen kann. Gängige Webelemente vereinfachen die Bedienung – daher die oben erwähnte kurze Einarbeitungszeit.

Bei dem Legostein-Sortierer werden zur Eingabe der Sortierkriterien beispielsweise alle möglichen Steinformate angeboten, die sich per Drag&Drop intuitiv in einen der visualisierten Container ziehen lassen. Nach der Auswahl eines Steintyps für einen Sortierbehälter kann optional in einem Dropdown-Menü noch die Farbe dafür festgelegt werden (Bild 3). Bei Bedienungsfehlern versucht das System, den Nutzer möglichst gut zu unterstützen. Ist es ein bekannter Fehler, wird dem Nutzer nicht nur angezeigt, dass dieser vorliegt, sondern es werden sofort Lösungsvorschläge angeboten.

Durch das zustandslose Protokoll HTTP, mit dem der Browser die anzuzeigende Seite anfordert, ist bei einer webbasierten Oberfläche ein größeres Augenmerk auf die Kommunikation zu richten. Im Gegensatz zu direkt integrierten Desktopanwendungen kann der Server nur auf Anfrage des Clients Informationen weitergeben. Das wirkt sich vor allem bei der Anzeige von sich dynamisch ändernden Daten aus.

Sollen die von der API angebotenen aktuellen Betriebswerte der Aktoren sowie der aktuelle Zustand eines über Webtechnik gesteuerten Systems angezeigt werden, gibt es prinzipiell zwei Wege. Damit eine Änderung der Werte nicht erst nach einem Neuladen der Seite erscheint, sondern unmittelbar nach Aktualisierung des sortiererinternen Datenbestands, kann die geladene Webseite zum einen in kurzen Abständen den Server über AJAX (eine asynchrone HTTP-Anfrage) nach aktuellen Werten fragen. Diese zyklischen Anfragen können allerdings zu unnötigen Belastungen führen, da nicht bei jeder Anfrage neue Werte vorhanden sein müssen.

Alternativ kann nach dem Laden der Seite eine Kommunikation über einen Websocket stattfinden. Der Client initiiert mit einem HTTP-Handshake eine Websocket-Verbindung über TCP. Da alle gängigen Browser mittlerweile Websockets unterstützen und die meisten Programmiersprachen Frameworks dafür anbieten, kann die Kommunikation wie bei herkömmlichen Sockets umgesetzt werden. Damit ist es dem Server erlaubt, dem Client jede Änderung direkt mitzuteilen. Zusätzlich hat der Websocket gegenüber AJAX den Vorteil, nicht für jede Anfrage eine neue HTTP-Verbindung aufbauen zu müssen.

Da die Webseite des Sortierers innerhalb des Netzes uneingeschränkt aufrufbar sein soll, ist eine Nutzerverwaltung nötig. Nutzerverwaltung und Sicherheit sind bekannte Aufgaben im Webbereich, weshalb sich der Zugriff für unautorisierte Besucher der Seite durch vorhandene Mechanismen mit wenig Aufwand einschränken lässt, sodass diese in unserem Beispiel nur die Statistiken des aktuellen Sortiervorgangs sehen können. Um den Sortiervorgang zu steuern und Sortierkriterien einzustellen, ist ein Passwort nötig. Dadurch ist gewährleistet, dass Unbefugte nichts verstellen können.

Eine solche API bietet den zusätzlichen Vorteil, dass alternative Nutzerschnittstellen gleichzeitig unterstützt werden können, ohne die eigentliche Programmlogik erweitern zu müssen. Beim Legostein-Sortierer ermöglicht ein physikalischer Schalter beispielsweise das An- und Abschalten des Systems zusätzlich parallel zur Weboberfläche. Mit der angebotenen API können also mehrere Eingabemöglichkeiten bedient werden, wenn vom Nutzer gewünscht.


  1. Legosteine mit Webtechniken sortieren
  2. Gerät und Bedienung voneinander trennen

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Mixed Mode GmbH

Weitere Artikel zu IoT / IIoT / Industrie 4.0