Interpreter für skriptgesteuerte Prüfabläufe auf CompactRIO/LabVIEW im Labor bei Miele im Werk Lehrte

  Print Print

"Eine effiziente und elegante Realisierung des Interpreters war durch die Verwendung der objektorientierten Programmierung in LabVIEW möglich. "

- Florian Koch, Miele & Cie. KG

The Challenge:
Aufgrund der Einführung eines datenbankgestützte Prüfsystems (DPS): Entwicklung PC-unabhängiger und autonomer Prüfplätze mit dezentralem Betrieb von Prüfplätzen sowie der Verzicht auf SPSen bei der Ausführung einfacher Kontroll- und Schaltaufgaben

The Solution:
Integration der cRIO-Plattform in das DPS-System

Author(s):
Reinhard Kaufmann - Miele & Cie. KG
Florian Koch - Miele & Cie. KG
Peter Schwarz - A.M.S. Software GmbH

Eingesetzte Produkte: NI LabVIEW, NI CompactRIO, NI PXI


Kurzfassung

Die Firma Miele & Cie. KG setzt im Werk Lehrte das von der Firma A.M.S. Software GmbH entwickelte datenbankgestützte Prüfsystem (DPS) ein. Dieses System wird seit Jahren erfolgreich in der Qualitätssicherung der Produktion verwendet und findet aktuell darüber hinaus weitere Verbreitung. Eine sich daraus ergebende wesentliche Anforderung ist ein PC-unabhängiger, autonomer und dezentraler Betrieb von Prüfplätzen. Des Weiteren wird gewünscht, für die Ausführung einfacher Kontroll- und Schaltaufgaben auf die bisher hierfür üblicherweise verwendeten SPSen zu verzichten. Da der Kern von DPS in LabVIEW realisiert ist, werden diese Anforderung in Hinblick auf das Kosten/Nutzen-Verhältnis durch die Integration der cRIO-Plattform in das DPS-System optimal erfüllt.
Ein zentraler Bestandteil von DPS zur Steuerung der Prüfabläufe ist der Skriptinterpreter AMSL, ein Produkt der A.M.S. Software GmbH. Die Sprache AMSL ist typsicher und dynamisch um zusätzliche Befehle erweiterbar. Dabei ermöglicht die vergleichsweise mächtige, aber dennoch einfache Syntax den leichten Einstieg. Um auf der cRIO-Plattform eine kompatible Ausführungsumgebung wie auf den bis dahin für DPS verwendeten Windows-PCs zu haben, wurde die neue Version des AMSL-Interpreters nativ in LabVIEW implementiert.
Dynamisch ladbare LabVIEW-VIs erlauben die flexible Erweiterung von AMSL um zusätzliche Befehle. Da diese Komponenten normale LabVIEW-VIs sind, kann so der gesamte Funktionsumfang von LabVIEW und Toolkits in AMSL zur Verfügung gestellt werden.
Eine effiziente und elegante Realisierung des Interpreters war durch die Verwendung der objektorientierten Programmierung in LabVIEW möglich. AMSL ist daher jetzt auf allen Plattformen verfügbar, die (objektorientiertes) LabVIEW unterstützen.

 

Motivation

Die Firma Miele & Cie. KG setzt im Werk Lehrte das von der Firma A.M.S. Software GmbH entwickelte datenbankgestützte Prüfsystem (DPS) ein. Dieses System wird seit Jahren erfolgreich in der Qualitätssicherung der Produktion verwendet. Der grundsätzliche Aufbau der PC-seitigen Software zur Ausführung der Prüfabläufe, die DPS-Engine genannt wird, ist in Bild 1 dargestellt. Dort ist zu sehen, wie die Engine mit dem skriptgesteuerten Ablauf (AMSL) auf Treiber-Funktionen zugreift, die dynamisch eingebunden werden. So ist es sogar möglich, den gleichen Prüfablauf auf im Detail unterschiedlich ausgerüsteten Prüfplätzen laufen zu lassen.
Die Skriptsprache AMSL dient dabei der Dynamisierung von Prüfabläufen. Im Gegensatz zu  LabVIEW ist sie eine interpretierte Sprache, die interaktiv auf jedem DPS-Rechner genutzt werden kann, ohne die eigentliche Kernanwendung (DPS-Engine) anpassen zu müssen. Diese Kernanwendung wird auf allen Prüfplätzen eingesetzt. Die Prüfplätze unterscheiden sich lediglich darin, welche Peripherie-Geräte angeschlossen sind. Über die entsprechenden unterschiedlichen Skripte, Parameter- und Sollwertlisten und konfigurierten Prüfabläufe (Folge von Skripten) können allein durch Konfiguration alle bei Miele produzierte Geräte mit dem selben Grundsystem geprüft werden; seien es Waschmaschinen, Trockner oder Bügelmaschinen. Die einheitliche Struktur garantiert in sich, dass Abläufe nur dort ausgeführt werden, wo sie möglich sind und dass relevante Ergebnis-Daten automatisch in der zentralen Datenbank gespeichert werden. Tools zur Auswertung dieser Daten existieren.

In der Windows-Software DPS-Engine ist der AMSL-Interpreter technisch als C++-DLL realisiert und eingebunden. Dadurch entstehen Reibungsverluste an den Schnittstellen zwischen DLL und LabVIEW. Ausserdem lässt sich diese Windows-DLL naturgemäß nicht auf dem Realtime-Kern von cRIO betreiben. Dies ist aber Voraussetzung, um AMSL auch zur Steuerung von Abläufen im Miele Labor einzusetzen, wo cRIO-Systeme weitgehend unabhängig vom PC ihre zum Teil über etliche Wochen laufenden Versuche abarbeiten sollen. Die sonst übliche Einarbeitung für die Entwickler der Prüfabläufe wird minimiert und das Know-How zu DPS, welches im Werk Lehrte vorhanden ist, kann dadurch auch für den Labor-Betrieb genutzt werden.

Um entsprechende weitere Synergie-Effekte nutzen zu können, setzt das Labor zukünftig ebenfalls DPS ein, wobei einige spezielle Adaptionen der Benutzeroberflächen notwendig waren, die aber an der Kernfunktionalität und Datenbankstruktur keine grundlegenden Änderungen bedingten.

Es ist zu erwarten, dass sich durch das gemeinsame Entwickeln von Treibern und Funktionen bei entsprechender abgestimmter Verwendung gleichartiger Hardware deutliche Einsparungen in der Entwicklung und Ersatzteilhaltung gegenüber vollkommen unabhängigen Lösungen erzielen lassen.

Neue Anforderungen des Labors

Eine neue Anforderung des Labors ist der Betrieb von cRIO-Systemen als autonome Testrechner. Während bisher in der Produktion ausschließlich PCs im Einsatz sind, werden im Labor Prüfungen auf cRIO-Systemen gestartet und dann tage- und wochenlang autonom betrieben. Für das Starten und Stoppen sowie die Statusüberwachung und Visualisierung werden DPS-PCs eingesetzt. Hier ergibt sich so der Vorteil, dass alle Ebenen und Systeme mittels der Kombination aus LabVIEW und AMSL programmierbar sind.

AMSL – Im Gesamtkontext

Im DPS-System kommt AMSL sowohl auf der PC-Seite als auch auf der cRIO-Seite als Mittel der flexiblen Prüfablaufsteuerung im Einsatz.
Das cRIO-System wird dabei als spezielles Peripheriegerät verstanden, welches ein sehr gutes Verständnis vom DPS-Umfeld hat und in AMSL programmierbar ist und dort mit dem PC vergleichbare Treiber zur Verfügung stellt.

Dabei können die Komponenten „Messplatz“ und „User-PC“ jeweils mehrfach vorkommen, wobei die Abläufe sowohl auf dem User-PC als auch auf dem Messplatz (cRIO) in AMSL programmiert sind. Die DPS-Engine und die Basis-Software des cRIO, die in LabVIEW geschrieben sind, garantieren, dass sich zu jedem Zeitpunkt jeweils nur ein PC mit einem bestimmten cRIO kontrollierend verbinden kann. Visualisierend werden die Daten des cRIO vom kontrollierend verbundenen PC an beliebige weitere PCs weitergeleitet.


AMSL - Implementierung

AMSL ist mit objektorientiertem LabVIEW realisiert worden. Als Ergebnis eines Scan- und Parse-Vorgangs liegt schliesslich eine Liste von Skript-Element-Objekten vor. Während der Ausführung wird – startend bei der ersten Anweisung der Main()-Funktion – jeweils einmal eine Execute-Methode des zugehörigen Skript-Elements ausgeführt. Dabei ist es möglich, in AMSL definierte Funktionen aufzurufen; falls nötig auch rekursiv.


AMSL - Benutzung

AMSL ist eine einfach zu erlernende Programmiersprache, die typsicher externe Funktionen einbinden kann. Über geeignete, offengelegte Schnittstellen kann der verfügbare Funktionsumfang mittels LabVIEW-VIs nahezu beliebig erweitert werden.

Ein einfaches AMSL-Skript zur Ausgabe eines langsamen Rechteck-Signals auf einem Digitalausgang des cRIO-System könnte wie folgt aussehen:

Function main(argc : int, argv : string() ) as int
 VAR nLoop : int
       
 For nLoop := 1 to 10 do
   // Ausgang abwechselnd auf true und false schalten
   cRIO.digitalOut(1, (nLoop mod 2) = 1)
   // 100 ms warten
         system.wait(100)
 End for
       
 Return 0
     End function

Die Funktion main() dient dabei als Einstiegspunkt. In der Folgezeile wird eine lokale Variable deklariert, welche als Laufvariable der folgenden For-Schleife eingesetzt wird.
‚cRIO‘ ist der Name eines „Treibers“, einer LabVIEW-Bibliothek, die Funktionen für den Zugriff auf die cRIO-Hardware ermöglicht.

Ebenso existieren weitere Kundenspezifische „Treiber“, die es zum Beispiel ermöglichen, mit den seriell angeschlossenen Prüfling, eine Miele Waschmaschine oder einen Trockner anzusprechen und dessen Funktionsweise zu überprüfen und zu steuern. Auf die gleiche Art werden externe (Mess-) Geräte, wie zum Beispiel Leistungsmessgeräte oder auch Terminals zur Anzeige von Werten und Statusinformationen eingebunden.


Zusammenfassung

Mit AMSL steht eine portable LabVIEW-basierte Skriptsprache zur Verfügung, die plattformübergreifend genutzt werden kann um Abläufe zu steuern. Somit steht den Anwendern des DPS-Systems eine Möglichkeit zur Verfügung sowohl Abläufe auf PCs als auch auf cRIO-Realtime-Systemen flexibel in gleicher Art und Weise zu programmieren, was Schulungs- und Einarbeitungsaufwände minimiert. AMSL wird von der Firma A.M.S. Software GmbH als Produkt vertrieben und kann dort in Form von stückzahlunabhängigen Projektlizenzen erworben werden.

Author Information:
Reinhard Kaufmann
Miele & Cie. KG
Lehrte

Bookmark and Share


Explore the NI Developer Community

Discover and collaborate on the latest example code and tutorials with a worldwide community of engineers and scientists.

‌Check‌ out‌ the‌ NI‌ Community


Who is National Instruments?

National Instruments provides a graphical system design platform for test, control, and embedded design applications that is transforming the way engineers and scientists design, prototype, and deploy systems.

‌Learn‌ more‌ about‌ NI