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