LabVIEW als Entwicklungswerkzeug zur Analyse von

Transcription

LabVIEW als Entwicklungswerkzeug zur Analyse von
LabVIEW als Entwicklungswerkzeug zur Analyse von Verbrennungsmotoren
"Die neue Indiziersoftware COMBI zeigt, dass die
Entwicklungswerkzeuge LabVIEW und Vision sich
hervorragend eignen, um eine äußerst flexible
Anwendersoftware zu erzeugen. "
- Frank Geiser, SMETEC GmbH
Die Aufgabe:
Moderne Verbrennungsmotoren erfordern immer hochleistungsfähigere und flexiblere Analysesysteme zur Einhaltung der vom Gesetzgeber
vorgegebenen Grenzwerte.
Vollständige
Kundenlösung
lesen
Die Lösung:
Entwicklung einer leistungsstarken, Windows-basierende Software mit NI LabVIEW und NI Vision für die Analyse und Visualisierung der
Testergebnisse.
Autor(en):
Frank Geiser - SMETEC GmbH
Diese Anwenderlösung ist ein Beitrag zum jährlichen VIP-Kongress (http://www.ni.com/germany/vip) von National Instruments. Der vollständige Beitrag ist
auch im kongressbegleitenden Tagungsband VIP 2006 (
http://digital.ni.com/worldwide/germany.nsf/web/all/E6892AC1569470598625714900531FCA?OpenDocument&node=163360_d), S. 46-51, veröffentlicht.
Kurzfassung
Moderne Verbrennungsmotoren erfordern immer hochleistungsfähigere und flexiblere Analysesysteme zur Einhaltung der vom Gesetzgeber
vorgegebenen Grenzwerte. Zur Erreichung der gesetzten Ziele werden unter anderem Druckindiziersysteme eingesetzt. Neben der Hardware nimmt
dabei die Software einen immer bedeutenderen Anteil am Gesamtsystem ein.
Die heutigen Anforderungen der Kunden haben eine komplette Neugestaltung der Software zur Gerätebedienung und zur nachträglichen
Messdatenanalyse erfordert. Bei einem Vergleich verschiedener Entwicklungswerkzeuge fiel die Wahl auf LabVIEW (http://www.ni.com/labview/d).
Gründe hierfür lagen zum einen in der über zehnjährigen Erfahrung im Bereich der LabVIEW-Programmierung unter WINDOWS im Hause SMETEC
sowie der großen Weiterentwicklung von LabVIEW (http://www.ni.com/labview/whatis) ab Version 6. Somit war gewährleistet, dass eine flexible,
anwenderfreundliche und damit Microsoft Windows konforme Anwendung erstellt werden konnte. Zum anderen konnten bestehende Treiberbibliotheken
der aktuellen Software COMBI (Combustion Indication), die mit früheren LabVIEW-Versionen erstellt wurden, übernommen werden.
Die Vorgaben lagen in der Zusammenführung der Erfassung und Bearbeitung von physikalischen Größen, wie zum Beispiel dem Zylinderdruck, und von
Bilddaten. Besonderes Augenmerk wurde auf die Implementierung einer umfangreichen Datenanalyse in Verbindung mit einer freien
Oberflächengestaltung gelegt. Weitere wichtige Anforderungen waren die Möglichkeit zur Erstellung von benutzerindividuellen Setups und zum
benutzerdefinierten Login sowie die Einbindung einer kompletten Bilddatenanalyse mit NI Vision (http://www.ni.com/vision/d).
Anhand einiger Beispiele wird die Umsetzung der Vorgaben und die Programmstruktur erläutert. Die mittels der umfangreichen Funktionsbibliotheken von
NI Vision programmierte Bilddatenverarbeitung wird anhand einer Beispielaufnahme vorgestellt.
Einleitung
Die in der Verbrennungsmotorenentwicklung eingesetzten Systeme zur Zylinderdruckindizierung können hinsichtlich der Messkette in drei Hauptgruppen
gegliedert werden: Sensorik, Hardware zur Datenerfassung und Software zur Steuerung und Analyse. Die von der Sensorik aufgenommenen
physikalischen Größen werden mit Hilfe von Messverstärkern in Spannungssignale umgewandelt und vom Datenerfassungssystem erfasst. Die
digitalisierten Werte werden an den PC übertragen und von der Software ausgewertet und gespeichert. Weitere wichtige Informationen zur
Verbrennungsanalyse liefern Bilder, die die Verteilung des Kraftstoff-Luft-Gemischs und die Flammenausbreitung zeigen.
Aufgrund der ständig steigenden Herausforderung in der Entwicklung von Verbrennungsmotoren und der Zunahme in der Komplexität der Messtechnik
und Datenverwaltung nimmt die Software einen immer wichtigeren Anteil zur Analyse und Visualisierung von Ergebnissen ein. Daher müssen aktuelle und
zukünftige Anforderungen in die Bedien- und Analysesoftware implementiert werden.
Im folgenden soll gezeigt werden, wie mit LabVIEW 6.1 und Vision 6.1 eine leistungsstarke, Windows-basierende Software erstellt worden ist. Aufbauend
auf eine vorhandene Software werden zunächst die Anforderungen zusammengefasst. Anhand einiger Quellcodebeispiele soll die Umsetzung aufgezeigt
werden. Abschließend wird das Ergebnis der neu erstellten Software anhand einiger Beispiele dargestellt.
Anforderungen
Ausschlaggebend für die Verwendung von LabVIEW 6.1 als Entwicklungswerkzeug war, dass die schon bestehende Software COMBI mit den
LabVIEW-Versionen 4 bzw. 5 erstellt wurde. Ein weiterer wichtiger Grund war die verbesserte Leistungsfähigkeit und Flexibilität ab der Version 6.
Desweiteren konnten Basisauswerteroutinen sowie Funktionen zur Kommunikation mit der Hardware übernommen werden.
Einer der wichtigsten Anforderungen war die Möglichkeit, verschiedene Fenster in einer Anwendung gleichzeitig öffnen und bedienen zu können.
Zusätzlich sollte ein möglichst schneller Datenaustausch zwischen den geöffneten Menüfenstern möglich sein. Die einzelnen Menüfenster sollten auf der
Oberfläche des Hauptprogramms frei beweglich und bezüglich ihrer Größe veränderbar sein. Unter WINDOWS sollten die einzelnen Fenster nicht in der
Taskleiste zu sehen sein, d.h. nur das Hauptprogramm erscheint als Task. Desweiteren sollten sogenannte Einstellfenster erstellt werden, die an
Diagrammfenstern angekoppelt sind und bei Bedarf geschlossen werden können. Die Einstellfenster werden bei Positionsänderungen der
Diagrammfenster synchron verschoben werden.
Die weiteren, wichtigsten Anforderungen waren:
• Erstellung einer Multi-User-Anwendung durch benutzerspezifisches Login.
• Implementierung von zusätzlichen Auswertemöglichkeiten zur Analyse, u.a. Einbau vielfältiger Filterfunktionen.
• Möglichkeit zu unterschiedlichen Darstellmöglichkeiten der erfassten physikalischen Größen und der daraus berechneten Kennwerte: x,y-Diagramme mit
mindestens zwei y-Achsen, Histogramme, 3D-Diagramme/ Wasserfalldiagramm, Tabellen, Bilddarstellungen von Kameraaufnahmen.
• Erstellung einer Werkzeugpalette zur einfachen Erzeugung von Diagrammen.
• Erstellung eines übersichtlichen Setup-Menüs.
• WINDOWS-konforme Menüleiste und Erstellung eines Verzeichnisbaums zur einfachen Bedienung.
• Umfangreiche Bildanalysesoftware: Falschfarbendarstellung, Verknüpfung/ Überlagerung verschiedener Bilder, Verknüpfung von Dokumentationstext
und Bild, Export von Bildern in verschiedenen Formaten, Erstellung von Filmen.
1/5
www.ni.com
Alle genannten Anforderungen gelten für die Verwendung einer Applikation beim Endkunden ohne Verwendung der Entwicklungsumgebung LabVIEW 6
bzw. Vision 6.
Programmierung
Die Umsetzung der Anforderungen wurde mit Hilfe von LabVIEW 6 und Vision 6 durchgeführt. Zur Kommunikation mit der Hardware wurden Dynamic Link
Libraries verwendet, die mit der Programmiersprache Delphi erstellt wurden.
Bild 1 zeigt den strukturellen Aufbau der Software. Über ein User Login Fenster (1) startet die Software mit den entsprechenden Benutzereinstellungen.
Nach der Hardwareerkennung und -initialisierung (2) wird das Hauptprogramm (3) aufgerufen. Das Hauptprogramm besteht im wesentlichen aus einer
While-Schleife, in der über Event Structure Funktionen die verschiedenen Funktionen und Fenster aufgerufen werden können.
Zur Umsetzung der Multi Window Anforderung wurde eine MDI (Multiple Document Interface) Anwendung umgesetzt. Bei dieser Funktion wird ein
sogenanntes MDI parent Fenster (3) definiert. In einer MDI Anwendung können eine oder mehrere MDI child Fenster (4) in einem MDI parent Fenster
geöffnet werden. MDI child Fenster können nur innerhalb der Grenzen des MDI parent Fensters erscheinen. In der WINDOWS Taskleiste erscheint dann
nur der Task des MDI parent Fensters. Zur Definition der Fenster wird die SetParent Funktion der user32.dll von WINDOWS verwendet. Nach Aufruf
eines Fensters wird mit der Funktion FindWindowA der user32.dll die Referenz des gerade aufgerufenen Fensters ausgelesen und in Abhängigkeit der
Funktion als parent (Hauptprogramm) oder child an die SetParent Funktion übergeben.
Der schnelle Datenaustausch zwischen den einzelnen Fenstern (parent-child oder child-child) wurde mit Hilfe von Notifier Operation Functions von
LabVIEW (http://www.ni.com/labview/whatis) umgesetzt. Diese besitzen gegenüber globalen Variablen den Vorteil, dass der verwendete Speicher nur
dann überprüft und ausgelesen wird, wenn neue Daten hineingeschrieben werden. Dadurch wird die Prozessorbelastung deutlich reduziert, und die
einzelnen Programmteile werden schneller abgearbeitet. Bild 2 zeigt ein Beispiel für die Umsetzung einen Datenaustausch mit Hilfe von Notifier Operation
Functions.
Die Funktion Obtain Notifier erzeugt eine Referenz mit dem Namen COMMAND. Der definierte Datentyp besteht aus einem Cluster mit zwei
Stringvariablen. Sollte der Notifier noch nicht existieren, so wird dieser zunächst erzeugt. Die Funktion Wait on Notification wartet auf einen Hinweis, dass
neue Daten zur Verfügung stehen. Die übertragene Datenstruktur von einem Fenster zum anderen besteht immer aus einer Kommandozeile und einem
Datenwert. Der Datenwert kann eine Variable oder ein Array vom Typ String, Zahl oder Boolean sein. Abhängig vom verwendeten Kommando springt das
Programm in den zugehörigen Fall der Case-Schleife und arbeitet die darin enthaltenen Aufgaben ab. Mit Hilfe dieser Struktur ist es möglich, vom
Anwender durchgeführte Änderungen in allen offenen Fenstern zu aktualisieren.
Ergebnisse
Das Ergebnis der Programmierung ist die Softwareanwendung COMBI (Combustion Indication) Version 6, in der verschiedene Fenster zur Darstellung
und Steuerung parallel auf der Oberfläche geöffnet werden können (Bild 3). Alle Fenster sind über Notifier miteinander verknüpft und werden als MDI child
Fenster geöffnet. Zur Einstellung und Steuerung wurde ein Bedienfenster eingerichtet (1), in dem verschiedene Funktionen über die Menüzeile oder über
einen Verzeichnisbaum aktiviert werden können. Der Verzeichnisbaum liefert eine übersichtliche Darstellung der Funktionen und erleichtert die
Arbeitsweise im Programm. Das Bedienfenster beinhaltet neben den üblichen Funktionen, wie Datenspeicherung, Laden von Messdaten, Export in
unterschiedliche Formate, Speichern und Laden von Grafik-/ Messeinstellungen, spezielle auf das Messsystem COMBI abgestimmte Menüs. Die
geforderte Werkzeugpalette (2) erleichtert das Einrichten von Darstellungsfenstern. Durch Aktivierung der verschiedenen Bedienschalter können u.a.
verschiedenartige x,y-Diagramme, 3D-Diagramme, Tabellen und Analog-/ Digitalanzeigen direkt auf der Hauptoberfläche erzeugt werden. Die
aufgerufenen Fenster können in ihrer Größe verändert werden, wobei die Anzeigeelemente automatisch angepasst werden. Es besteht weiterhin die
Möglichkeit, die Darstellungsfenster zu minimieren.
Einzelne aus den Messdaten berechnete Kennwerte können in digitalen und analogen Anzeigen dargestellt werden (3). Zur Darstellung von zeitlich hoch
aufgelösten Daten stehen x,y-Diagramme (4) zur Verfügung, in denen die Daten über der Zeit und dem Kurbelwinkel dargestellt werden können. An jedes
x,y-Diagramm ist ein Plot Control (5) Fenster verknüpft, in dem Einstellungen zu den dargestellten Messdaten, wie z.B. Kanal, Linieneinstellung und
Achseneinstellung gemacht werden. Plot Control Fenster und Diagrammfenster sind bezüglich ihrer Position im MDI parent Fenster miteinander verknüpft,
d.h. wird das Diagrammfenster bewegt, so wird das damit verknüpfte Fenster parallel mit verschoben. Auch hier erfolgt die Übergabe der Positionsdaten
mittels Notifier. Aus Signalverläufen berechnete Kennwerte werden in x,y-Diagrammen (6) dargestellt, um die Änderung des Kennwertes im Motorbetrieb
zu beobachten. Eine weitere Möglichkeit der Darstellung von zyklischen Kennwerten bietet die Tabellenform (7). Der Anwender kann in entsprechenden
Einstellfenstern die Kennwerte und deren Randbedingungen definieren. Die 3D-Darstellung (8) liefert dem Anwender eine übersichtliche Präsentation der
Signalverläufe über eine definiert Anzahl von Arbeitsspielen/ Zyklen des Verbrennungsmotors.
Neben der Erfassung von verschiedenen physikalischen Größen aus dem Brennraum können mit der Indiziersoftware COMBI parallel auch Bilder aus
dem Brennraum erfasst werden. Die mit Vision 6.1 erstellte Software bietet dem Anwender die Möglichkeit, Bilddaten nachzuarbeiten. Bild 4 zeigt
beispielhaft die Möglichkeit einer Falschfarbendarstellung, wobei die Farbverläufe vom Anwender frei definiert werden können. Weiterhin ist es möglich,
Bilder aufzuhellen, logarithmische Algorithmen anzuwenden und verschiedene Bilder miteinander mathematisch zu verknüpfen.
Zusammenfassung und Ausblick
Die neue Indiziersoftware COMBI zeigt, dass die Entwicklungswerkzeuge LabVIEW (http://www.ni.com/trylabview) und Vision (http://www.ni.com/vision/d)
sich hervorragend eignen, um eine äußerst flexible Anwendersoftware zu erzeugen. Es ist gelungen, Flexibilität und Vielseitigkeit im Bedienkomfort, die
Hardwaresteuerung und effiziente Auswertealgorithmen in einer Software zu vereinigen. Lediglich zur Befehlsübertragung wurden Dynamic Link Libraries
auf der Basis von Delphi eingebunden. Um dem Anwender die Möglichkeit zu geben, andere Datenerfassungshardware zu verwenden, sollen
verschiedene Datenerfassungskarten von National Instruments (http://www.ni.com/data-acquisition/d) eingebunden werden. Somit kann eine
leistungsstarke Software variabel auf verschiedene Hardwarekomponenten aufgesetzt werden.
Desweiteren sollen Berechnungsmodule entwickelt werden, in dem der Anwender seinen eigenen Auswertequellcode hinterlegen kann. Diese
Berechnungsmodule werden dynamisch eingebunden, ohne eine neue Applikation erzeugen zu müssen. Dabei soll die Anbindung von LabVIEW-, Matlaboder C-Quellcode ermöglicht werden.
Durch die Umstellung auf die Entwicklungsumgebung LabVIEW 8 soll die Leistungsfähigkeit und der Bedienkomfort der Indiziersoftware weiter verbessert
werden.
Weitere Informationen zu dieser Kundenlösung erhalten Sie über:
Dipl.-Ing. Frank Geiser
SMETEC GmbH
Leiter Vertrieb und Softwareentwicklung
An Fürthenrode 52
52511 Geilenkirchen
Tel. 024 51-490 09 03
Fax 024 51-490 09 11
E-mail: Frank.Geiser@Smetec.de
www.smetec.de
2/5
www.ni.com
Bild 1: Softwarestruktur
Bild 2: Notifier Operation Functions: Datenaustausch zwischen Fenstern
3/5
www.ni.com
Bild 3: Bedienoberfläche der Applikation
Bild 4: Bildbearbeitung
4/5
www.ni.com
Bild 4: Bildbearbeitung
Bild 5: Bildbearbeitung
Rechtliche Hinweise
Diese Kundenlösung („Kundenlösung“) wurde von einem Kunden von National Instruments („NI“) entwickelt. DIESE KUNDENLÖSUNG WIRD IM „IST-ZUSTAND“
ZUR VERFÜGUNG GESTELLT UND NI ÜBERNIMMT KEINERLEI GARANTIEN. AUSFÜHRLICHERE ERLÄUTERUNGEN ZU ANDEREN EINSCHRÄNKUNGEN
ENTNEHMEN SIE BITTE DEN NUTZUNGSBEDINGUNGEN FÜR NI.COM.
5/5
www.ni.com