Suchen

Messdaten am PC mithilfe von LabVIEW auswerten

Komplexe Messdaten lassen sich mit selbsterstellten Programmen auswerten. Das kann ein kleines Excel-Script sein oder eine Hochsprache. Ein pragmatischer Weg ist mit LabVIEW möglich.

Firma zum Thema

Messdaten auswerten: Mit selbsterstellten Programmen lassen sich komplexe Messabläufe auswerten. Ein Werkzeug dafür ist LabVIEW.
Messdaten auswerten: Mit selbsterstellten Programmen lassen sich komplexe Messabläufe auswerten. Ein Werkzeug dafür ist LabVIEW.
(Bild: ©deagreez - stock.adobe.com)

Die generellen Bestandteile einer Messdaten-Applikation zeigt Bild 1: Um die Messdaten von den Messkomponenten bzw. Bussystem-Anschlüssen in eine Anwendung zu bekommen, sind entsprechende Treiber notwendig. Unterschieden wird grob zwischen Kommunikations- und Gerätetreibern. Kommunikationstreiber erlauben generellen Zugriff auf die Kommunikationsschnittstelle, die im Messsystem verwendet wird.

Bei einem Laborbus oder Feldbus, der über eine Einsteckkarte oder ein externes Koppelmodul an den Computer angebunden ist, ist ein vom zugehörigen Hersteller mitgelieferter Treiber notwendig. Bei USB oder Ethernet ist der Kommunikationstreiber oft im Betriebssystem vorhanden. Bei Industrial Ethernet hängt es vom genauen System ab: Bei den meisten ist eine Koppelhardware notwendig, zu der dann ein entsprechender Treiber gehört. Bei den Varianten, die mehr auf die Standard-Ethernet-Welt setzen, reicht zwar der computereigene Ethernetanschluss, jedoch ist trotzdem für die entsprechenden höheren Protokolle ein spezifischer Treiber notwendig.

Was es beim Gerätetreiber zu beachten gibt

Die Gerätetreiber unterstützen ein konkretes Gerät mit ihren spezifischen Funktionen bzw. eine bestimmte Art von Geräten. Letzteres ist dann der Fall, wenn bei Feldbussen oder Industrial-Ethernet-Systemen Geräteprofile existieren, oder bei USB in Form der Geräteklassen. Ob es zu einem Gerät einen spezifischen Treiber gibt, hängt vom Hersteller ab. Grundsätzlich kann jedes Gerät ohne Gerätetreiber angesprochen werden, sofern der Hersteller die entsprechenden Zugriffsinformationen veröffentlicht; in aller Regel ist das jedoch mit einem gewissen Programmieraufwand verbunden.

Eine Zwischenlösung stellen elektronische Datenblätter dar, wie sie einige Feldbusse und Industrial Ethernet-Systeme für Gerätehersteller vorschreiben. In ihnen sind die Geräte mit ihren Funktionalitäten und für den Buszugriff relevanten Parametern in einer standardisierten Form beschrieben. Sie werden üblicherweise von entsprechenden Engineeringtools benutzt, können jedoch auch für die Entwicklung einer Messdaten-Applikation vorteilhaft sein, um den Aufwand des Ansprechens einzelner Busknoten zu verringern. Als Beispiel seien die GSD-Dateien („Gerätestammdaten-Datei“) bei PROFIBUS und PROFINET bzw. die EDS-Dateien („Electronic Data Sheet“) bei CANopen genannt.

Eine Messapplikation mit einer grafischen Benutzeroberfläche

Sind die entsprechenden Treiber installiert, kann die eigentliche Messapplikation erstellt werden. Sie umfasst zum einen die grafische Bedienoberfläche, auch als GUI (Graphical User Interface) oder HMI (Human Machine Interface) bezeichnet. Zum anderen die dahinter ablaufenden Programmfunktionen, um Messdaten einzulesen sowie zu verarbeiten. Hierzu muss die Steuerung der Programmabläufe implementiert werden. Für den Entwurf der Applikation gibt es verschiedene Ansätze: Liegt der Schwerpunkt vor allem auf dem Entwurf einer Bedienoberfläche, wozu nur elementare Messdatenverarbeitungsfunktionen ergänzt werden müssen, bietet sich der Einsatz einer Prozess­visualisierungssoftware an. Sie verfügt über verschiedene grafische Anzeige- und Bedien­elemente, welche zu einem oder mehreren Prozessbildschirmen kombiniert werden können.

Mathematische Grundfunktionen oder fertige Makros in einer toolspezifischen Schreibweise fließen in die Messdatenverarbeitung ein. Die im englischen Sprachraum für solche Tools übliche Bezeichnung ist SCADA-Software (Supervisory Control and Data Acquisition). Mit ihnen lassen sich Anwendungen mehr als nur visualisieren.

Komplexe Funktionen programmieren

Sind dagegen komplexere Funktionen für die Messdatenverarbeitung bzw. Programmabläufe zu implementieren, so müssen die Routinen mit entsprechenden Programmiertools programmiert werden. Grundsätzlich kann jede Programmiersprache und jedes entsprechende Tool eingesetzt werden, sofern der Zugriff auf die entsprechenden Treiber möglich ist. Für eine einfache Bedienoberflächen gibt es meist entsprechende Bibliotheksmodule. Einfache Applikationen lassen sich mitunter schon mit Standardsoftware wie der Tabellenkalkulation Excel erstellen. Sie erlaubt die Programmierung mit im Hintergrund ablaufendem Code über Visual Basic for Applications (VBA).

Einen pragmatischen Weg beschreiten grafische Programmiertools, die auf Belange der Messdatenerfassung und -auswertung optimiert sind. Diese gibt es von mehreren Herstellern, die in der Regel aus dem Messtechnikumfeld stammen. Mit solchen Tools lassen sich ansprechende Bedienoberflächen erstellen und mit ihnen lässt sich andererseits der Programmcode effizient grafisch erstellen. Statt auf Textbasis einen Programmcode einzugeben, der einer strengen Syntax folgen muss, werden sämtliche Abläufe und Verarbeitungsfunktionen durch grafische Funktionsblöcke am Bildschirm symbolisiert, die untereinander verdrahtet werden.

Sollte der Anwender bei einem komplexen Teilalgorithmen eine textorientierte Formulierung benötigen, so erlauben einige Tools die Integration von Funktionsblöcken, die intern mit einer Textsprache codiert werden.

Messdaten erfassen und auswerten mit LabVIEW

Bild 2: Mit der Programmierumgebung LabVIEW lassen sich Routinen erstellen und komplexe Abläufe zur Auswertung von Messdaten programmieren.
Bild 2: Mit der Programmierumgebung LabVIEW lassen sich Routinen erstellen und komplexe Abläufe zur Auswertung von Messdaten programmieren.
(Bild: Prof. Böttcher)

LabVIEW ist ein von National Instruments, inzwischen seit mehreren Jahrzehnten eingeführtes und kontinuierlich erweitertes Tool. Es ist sehr weit verbreitet in der Messdatenerfassung und -auswertung sowie in der Automatisierung von Prüfabläufen. Mit LabVIEW erstellte Programme laufen auf Computern unter den üblichen Betriebssystemen, aber auch in Embedded-Systemen. Letztere können von diesem Hersteller selbst stammen in Form echtzeitfähiger, in ihrer Bauform an einen SPS erinnernden Controllermodulen. Oder beliebige Prozessorplattformen sein, wozu LabVIEW dann in deren Entwicklungssysteme übernehmbaren Code, wie in der Programmiersprache C, generieren kann.

Die Programmieroberfläche ist immer aus zwei Fenstern aufgebaut: das Frontpanel und das Blockdiagramm. Im Frontpanel wird die Bedienoberfläche erstellt, während im Blockdiagramm auf grafische Weise die Funktions-Programmierung erfolgt. Beide Komponenten gehören immer fest zusammen und werden in ein und derselben Datei abgespeichert. Sie trägt die Dateikennung .vi, was für virtuelles Instrument steht, also ein Mess- und Automatisierungsinstrument im Computer. Zur besseren Übersicht wird eine Messdaten-Applikation oftmals in mehrere VIs unterteilt, die im Projekt-Explorer verwaltet werden (Bild 2). Der Entwurf und das Austesten der Applikation erfolgt in dieser Programmieroberfläche. Die fertige Applikation kann abschließend eigenständig installiert werden.

Im Frontpanel lassen sich aus entsprechenden Bibliotheken Anzeige- und Bedienelemente platzieren und ihr optisches Erscheinungsbild konfigurieren. Für das Blockdiagramm stehen die auch bei textorientierten Programmiersprachen üblichen Programmierstrukturen zur Verfügung, nur eben in grafischer Form. Eine Programmschleife beispielsweise wird durch ein Rechteck symbolisiert. Was in diesem Rechteck platziert wurde, wird als Schleifenkörper bei jedem Durchlauf ausgeführt. Zum besseren Verständnis soll die in Bild 2 exemplarisch dargestellte kleine LabVIEW-Applikation in der Programmierung erläutert werden.

Die Applikation im Detail:

  • berechnet ein einfaches Signal (hier Sinussignal),
  • gibt dieses an einem Analogausgang eines an den PC angeschlossenen USB-Moduls aus (von wo aus es über ein Drahtstück an einen Analogeingang des Moduls verbunden ist),
  • liest es parallel vom Analogeingang ein,
  • stellt es als Zeitsignal dar und
  • berechnet das Spektrum und stellt es dar.

Schleifen in einem Blockdiagramm

Bild 3: Das in LabVIEW erstellte Blockdiagramm einer Beispielapplikation.
Bild 3: Das in LabVIEW erstellte Blockdiagramm einer Beispielapplikation.
(Bild: Prof. Böttcher)

Das Bild 3 zeigt das Blockdiagramm als Ganzes. Der äußere graue Rahmen stellt eine Schleife dar, die solange durchlaufen wird, bis durch Druck auf die Stopptaste des Frontpanels die Applikation beendet wird. Wird die Taste „Neu berechnen“ gedrückt, erfolgt eine Neuberechnung des Signals inklusive der oben aufgeführten nachfolgenden Bearbeitungsschritte. Für die wichtigsten Schritte wurden Unterprogramme, die SubVIs, vorgesehen.

Im Bild zentral erkennbar ist der Rahmen einer sogenannten FOR-Schleife, welche die von SubVI_Signal_erzeugen.vi berechneten Abtastwerte im Abstand von 100 ms ausgibt und parallel (nach dem Drahtstück) gleich wieder einliest. Die dicke orange Linie am Eingang der FOR-Schleife steht für ein Array, das im Beispiel alle einhundert Abtastwerte enthält. Beim Durchlauf durch den Schleifenkörper erfolgt eine Autoindizierung, das heißt LabVIEW nimmt automatisch für jeden Schleifendurchlauf immer den nächsten Wert. Insgesamt wird die Schleife, ohne dass dies hier explizit programmiert werden müsste, so oft durchlaufen, wie Werte im Array enthalten sind. Umgekehrt wird am Ausgang des Schleifenkörpers ein Array mit den vom Analogeingang eingelesenen Messwerten „zusammengebastelt“.

Der Einsatz eines SubVIs für die Programmierung

Bild 4: Das sogenannte SubVI liest den analogen Messwerten in die Software ein.
Bild 4: Das sogenannte SubVI liest den analogen Messwerten in die Software ein.
(Bild: Prof. Böttcher)

Über farblich gelb gestaltete SubVIs lässt sich der Analogwert einlesen (Bild 4). In der Palette für die Funktionen sind unter „Eigene Bibliotheken“ ein Satz von Funktionen enthalten, welche nach Installation des entsprechenden Treibers zum USB-Modul in LabVIEW zur Verfügung stehen. Im SubVI selbst wurde daraus die Funktion „AIn“ benutzt. Da diese zunächst nur die Nummer der Quantisierungsstufe nach Analog-Digital-Umsetzung liefert, wurde im SubVI eine Umrechnung auf den Spannungswert vorgenommen. Jedes SubVI besitzt übrigens stets auch ein Frontpanel, über das es getestet werden kann.

Bei der Integration in ein übergeordnetes Programm versteckt sich das Frontpanel jedoch, der Datenaustausch erfolgt nunmehr über Ein- und Ausgangsparameter – verbunden über Programmierdrähte –, welche anstelle der Bedien- und Anzeigeelemente im Frontpanel wirken. Im SubVI zur Spektrumsberechnung dient eine zentrale Funktion aus der Standardfunktionenpalette für die Fast-Fourier-Transformation (FFT). Davor geschaltet ist eine weitere Standardfunktion, welche speziell bei FFT-Berechnungen eine Fensterfunktion zum gewichteten Einlesen eines zeitlichen Ausschnitts einer Abtastfolge zur Verfügung stellt. Aus den Daten des Ausschnittes wird das Momentanspektrum kalkuliert. Die verwendete FFT-Funktion ermittelt die Spektralwerte in komplexer Darstellung.

Fast Fourier Transformation mit LabVIEW

Bild 5: Das erstellte SubVI berechnet das Spektrum.
Bild 5: Das erstellte SubVI berechnet das Spektrum.
(Bild: Prof. Böttcher)

Das SubVI zur Spektralberechnung zeigt Bild 5. Als Basis dient eine zentrale Funktion aus der Standardfunktionenpalette von LabVIEW zur FFT-Ermittlung (Fast Fourier Transformation). Davor geschaltet ist eine weitere Standardfunktion, welche speziell bei FFT-Berechnungen eine sog. Fensterfunktion zum gewichteten Einlesen eines zeitlichen Ausschnitts einer Abtastfolge zur Verfügung stellt. Aus den Daten dieses Ausschnittes wird dann das Momentanspektrum kalkuliert. Die hier verwendete FFT-Funktion ermittelt die Spektralwerte in komplexer Darstellung. Durch eine nachgeschaltete Funktion - dies ist der mit einem „Z“ versehenen Funktionsblock - werden der Betrag („r“) und die im Beispielprogramm nicht weiter benutzte Phase („e“) daraus ermittelt.

Dieser Beitrag ist im Sonderheft Messtechnik, Sensorik und Test II der ELEKTRONIKPRAXIS (Download PDF) erschienen.

Diese kleine Applikation sollte nur zeigen, wie relativ einfach mit modernen Tools wie LabVIEW Messdaten programmgestützt eingelesen und ausgewertet werden können. Auf die Vielzahl der in solchen Tools angebotenen weiteren mathematischen und signalverarbeitenden Funktionen konnte nicht eingegangen werden.

Jörg Böttcher: Kompendium Messtechnik und Sensorik in zweiter Auflage. ISBN 9783751932967 (Paperback), Verlag: Books on Demand. Der Autor ist außerdem Herausgeber des Open-Access-Online-Kompendiums mit einem Zertifikatstest

* Prof. Dr.-Ing. Jörg Böttcher hat eine Professur für Regelungstechnik und Elektrische Messtechnik an der Universität der Bundeswehr in München inne.

(ID:46824512)

Über den Autor