Mit LabVIEW lassen sich Messdaten effizient numerisch verarbeiten. Dem Anwender stehen schnell implementierbare Programmstrukturen und passende Bibliotheken bereit.
Numerische Messdaten lassen sich mit einer grafischen Programmierumgebung auswerten. Hier unterstützt beispielsweise LabVIEW.
(Bild: (c) Kzenon - stock.adobe.com)
Projekte mit LabVIEW werden typischerweise in einem Projekt-Explorer verwaltet. Dieser speichert seine Daten in einer entsprechenden Projektdatei mit der Dateikennung *.lvproj. Die eigentlichen LabVIEW-Programme befinden sich in eigenen Dateien mit der Kennung *.vi. „vi“ steht hierbei für „virtual instrument“ und lässt den ursprünglichen Hintergrund von LabVIEW erkennen, bei dem es primär um die Programmierung PC-basierter, also „virtueller“ Messgeräte ging. Ein LabVIEW-Projekt kann aus minimal einer VI-Datei bestehen - in der Praxis sind es jedoch meist mehrere, unter denen eines als Hauptprogramm fungiert, das die anderen als SUB-VIs integriert.
Bild 1: LabVIEW-Projekt- Explorer mit Blockdiagramm und Frontpanel.
(Bild: Prof. Böttcher)
Bild 1 zeigt den mit einer Projektdatei geöffneten Projekt-Explorer zusammen mit zwei weiteren Fenstern, die zu einer VI-Datei gehören. Es handelt sich hierbei einerseits um das Frontpanel, welches beim Programmablauf die Bedienoberfläche darstellt, also den Teil des Programms, den der Benutzer sieht und bedient. Andererseits ist das Blockdiagramm zu sehen, welches das „Innenleben“ des Programms ausmacht, worunter der exakte Programmablauf und sämtliche Verarbeitungs- und Rechenoperationen zu verstehen sind.
Bild 2: Die Funktionspalette in LabVIEW.
(Bild: Prof. Böttcher)
Frontpanel und Blockdiagramm gehören stets zusammen und werden immer gleichzeitig in derselben VI-Datei abgespeichert. Zum Programmieren von Funktionen im Blockdiagramm stellt LabVIEW die sog. Funktionenpalette zur Verfügung, welche exemplarisch in Bild 2 dargestellt ist.
Im Projekt-Explorer können aus einzelnen oder aus einem Verbund mehrerer VI-Dateien auch außerhalb der LabVIEW-Entwicklungsumgebung allein ablauffähige Applikationen generiert werden. Je nach VI-Einstellung hierbei können sämtliche in der normalen Entwicklungsumgebung vorhandenen Bedienleisten dabei entfallen, so dass nur noch die vom Programmierer erstellte Bedienoberfläche sichtbar ist; auch das Blockdiagramm bleibt dem Anwender dann verborgen. Der Ablauf derartiger Stand-alone-Applikationen erfordert nur noch die vorherige Installation einer kostenfrei verfügbaren Runtime Machine auf dem Zielrechner.
Ein Beispiel: Ein sehr einfache Blockdiagramm
Zur Erläuterung des in Bild 1 gezeigten einfachem Blockdiagramms: Das mit einem grauen Rahmen versehene Rechteck stellt eine While-Scheife dar. Sie wird so oft durchlaufen, bis eine am roten Punkt eingehende Endemeldung in Form eines boolschen False-Werts einläuft. „Durchlaufen“ meint in einem LabVIEW-Blockdiagramm, dass alle grafischen Elemente in einer Reihenfolge abgearbeitet werden, die grob von links nach rechts strukturiert ist oder durch die Daten führenden Verbindungsdrähte vorgegeben wird. Ein Verbindungsdraht verbindet immer einen (meist rechts angeordneten) Elementausgang mit einem oder mehreren (meist links angeordneten) Elementeingängen.
Zum virtuellen Verdrahten dient ein Drahtrollensymbol in der Werkzeugpalette. Je nach Datentyp sind die Verbindungsdrähte in unterschiedlichen Farben dargestellt. Boolesche Werte wie bei der Endebedingung der Schleife werden beispielsweise grün dargestellt, Orange wird für einen numerischen Wert im Fließkommaformat verwendet. Zum Verständnis des in Bild 1 aufgeführten kleinen Programms ist noch wichtig zu wissen, dass für jedes im Frontpanel enthaltene Anzeige- und Bedienelement ein Platzhaltersymbol im Blockdiagramm automatisch angelegt wird, welches über entsprechende Aus- und Eingänge ebenfalls verdrahtet werden kann.
Bild 3: Ein einfaches LabVIEW-Beispielprogramm.
(Bild: Prof. Böttcher)
Bild 3 zeigt eine leicht erweiterte Programmversion, um auch den Verlauf der am Bedienknopf eingegeben Werte über der Zeit darzustellen. Hierzu wurden je ein Signalverlaufsdiagramm innerhalb der Schleife und ein Signalverlaufsgraph außerhalb eingefügt. Der Unterschied im Programmablauf besteht darin, dass das Signalverlaufsdiagramm bei jedem Schleifendurchlauf mit einem neuen Wert bestückt wird. Im Diagramm läuft die Kurve kontinuierlich weiter. Sie wird durch das Diagrammfenster geschoben, so dass man je nach Konfiguration immer die jüngste Historie „live“ sehen kann. Im Gegensatz dazu wird der Signalverlaufsgraph erst nach Verlassen der Schleife - also nach Drücken des „BEENDEN“-Knopfs - mit Daten bestückt und stellt diese in einem Vorgang dar.
Das ist allerdings nur sinnvoll, wenn auch alle darzustellenden Daten auf einmal übergeben werden. Dies erfolgt durch ein Array als Datentyp. Man könnte als Programmierer mit entsprechende Array-Funktionen das Array von Schleifendurchlauf zu Schleifendurchlauf selbst zusammenbauen. Viel eleganter und einfacher überlässt man dies jedoch der Autoindizierung von LabVIEW-Schleifen. Diese bewirkt, dass LabVIEW automatisch ein Array erstellt, das bei jedem Schleifendurchlauf den über den Verbindungsdraht ausgegebenen Wert in eine neue Arrayposition (unter neuen Index) speichert.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel Communications Group GmbH & Co. KG, Max-Planckstr. 7-9, 97082 Würzburg einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von redaktionellen Newslettern nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung, Abschnitt Redaktionelle Newsletter.
Das Drahtstück für das Array rechts von der Schleife ist dicker als der Draht für einen einfachen Wert innerhalb der Schleife. Signalverlaufsdiagramme arbeiten standardmäßig mit einfachen numerischen Datentypen am Eingang, während Signalverlaufsgraphen Arrays benötigen (von alternativen Möglichkeiten mit Clustern oder speziellen Signalverlaufsdatentypen abgesehen).
Im Tunnelmodus ein Array übergeben
Eine Autoindizierung ist auch für an die Schleife – meist links dann platziert – zu übergebende Daten möglich. So kann man bei entsprechend anders konfiguriertem Tunnelmodus ein Array übergeben, aus dem dann automatisch und beginnend mit der ersten Arrayposition (was bei LabVIEW immer dem Index 0 entspricht) in jedem Schleifendurchlauf ein neuer Wert für die schleifeninterne Verarbeitung übernommen wird. Wird der Tunnelmodus „Indizieren“ nicht aktiviert, so wird im Falle der Datenübergabe an die Schleife immer das komplette Array in das Schleifeninnere übergeben oder im Falle der Datenausgabe aus der Schleife heraus der im letzten Schleifendurchlauf berechnete Wert (vom dritten Tunnelmodus „Verknüpfen“ abgesehen).
Eine zusätzliche Funktion wurde mit dem im Schleifenkörper inkl. Eingangskonstante links oben platzierten Symbol ebenfalls noch eingeführt. Es handelt sich um eine Wartefunktion, welche die am Eingang übergebene Anzahl von Millisekunden wartet, sobald LabVIEW in der Programmausführung darauf stößt. In unserem Fall erfolgt dies in jedem Schleifendurchlauf einmal, woraufhin 1.000 Millisekunden, also eine Sekunde gewartet wird. Das Signalverlaufsdiagramm wird also im Abstand von jeweils einer Sekunde mit einem neuen Wert bestückt.
Bild 4: Verrauschtes Sinussignal vor und nach einer einfachen FIR-Filterung.
(Bild: Prof. Böttcher)
Digitale Filter berechnen aus einer am Eingang anliegenden Abtastfolge von xi eine Ausgangsfolge von yi. xi entsteht direkt aus der Abtastung einer Messgröße oder wurde in vorangegangenen Rechenoperationen aus einer oder mehreren solchen gewonnen. Wichtig ist, dass es sich hierbei immer um Signalverläufe über der Zeit handelt. Digitale Filter arbeiten in der Form einer Schleife, bei der in jedem Schleifendurchlauf i ein neues yi ermittelt und ausgegeben wird. Die erste nichtrekursive Variante (Finite Impulse Response Filter, FIR) eines digitalen Filters greift bei der Berechnung des yi auf mehrere zuletzt eingelesene Eingangswerte zurück und zwar in Form einer Summation mit entsprechenden Gewichtungs-Koeffizienten ak (Formel 1):
N ist die Ordnung des Filters und gibt an, wie weit man in die Vergangenheit bei der Berechnung des yi im i-ten Schleifendurchlauf geht. Ein Filter vierter Ordnung beispielsweise wird die Eingangswerte xi-4 bis xi in die Berechnung des aktuellen yi einbeziehen. Aus der Vergangenheit benötigte Eingangswerte, die in den ersten Schleifendurchläufen noch nicht vorliegen, werden zu 0 angenommen. Ein sehr einfaches Beispiel ist eine gleitende Mittelwertbildung, um damit verrauschte Signale zu glätten. Dies könnte in einem konkreten Fall so aussehen (Formel 2):
Das nichtrekursive Filter bildet einen Mittelwert des jeweils aktuellen Werts mit den drei vorangegangenen. Bild 4 zeigt links ein verrauschtes Sinussignal mit einer Amplitude von 1 V und rechts das Ergebnis nach einer derartigen Filterung. Die Abtastrate betrug 100 Hz. Leistungsfähiger bei gleicher Filterordnung sind sog. rekursive Filter, die durch ihre Rückkopplungsstruktur eine Art Gedächtnis aufweisen. Sie werden im Englischen auch Infinite Impulse Response Filter (IIR) genannt. Ihre Rechenvorschrift lautet (Formel 3):
Häufig benötigte Funktionen mit optimierten Filterkoeffizienten
Bild 5: LabVIEW-Funktionen für Butterworth-Filter und allgemeine IIR-Filter.
(Bild: Prof. Böttcher)
Die erste Summe ist identisch zum nichtrekursiven Filter. Hinzu kommt eine zweite Summe, in der die in M vorangegangenen Schleifendurchläufen bereits berechneten Ausgangswerte mit entsprechenden Gewichten bk einbezogen werden. Der größere Wert von N und M ergibt die Ordnung des Filters. Dass die zweite Summe erst ab k = 1 beginnen kann, ist offensichtlich: Für k = 0 stünde ansonsten auf der rechten Seite ein yi-0 = yi, was jedoch in diesem Schritt erst auf der linken Seite zu berechnen ist.
Bild 5 zeigt rechts eine LabVIEW-Funktion zur Verrechnung eines Eingangsarrays X mit einem IIR-Filter, wobei die Koeffizienten gemäß Formel 3 über entsprechende Eingänge (ebenfalls jeweils ein Array) bestimmt werden. Für häufig benötigte Funktionen, wie Tief-/Hoch-/Bandpassfilterungen, finden sich in der Literatur optimierte Filterkoeffizienten. So für den Butterworth-Filter, den es neben anderen als eigenständigen LabVIEW-Funktionsblock gibt (Bild 5 links).
Bild 6: LabVIEW-Funktionen zur Spektralanalyse und Beispielspektrum eines Impulses.
(Bild: Prof. Böttcher)
Spektralanalyse Jedes periodische Signal x(t) der Frequenz f0 ist zusammengesetzt als unendliche Summe einzelner Sinus- und Cosinusschwingungen, die als ganzzahlige Vielfache von f0 vorliegen. In der Mathematik ist das die Fourier-Reihe. Die meisten Signale in der Messdatenerfassung sind jedoch nicht periodisch. Tritt ein Signal überhaupt nur zu bestimmten Zeitpunkten auf und verschwindet wieder, spricht man von einem transienten Signal. Für nicht-periodische Signale lassen sich Spektren angeben. In der Praxis kann immer nur einen zeitlicher Ausschnitt betrachtet werden, ein Fenster, und zu diesem ein Spektrum ermittelt. Man tut stets so, als hätte man ein transientes Signal, das außerhalb des betrachteten Fensters 0 ist. Im Unterschied zu periodischen Signalen weisen transiente Signale ein sog. kontinuierliches Spektrum über den gesamten Frequenzbereich auf. Das mathematische Werkzeug zur Ermittlung dieser Spektralanteile ist die Fouriertransformation, in ihrer numerischen Form als Diskrete Fouriertransformation (DFT) oder in einer optimierten Implementierung als Fast Fourier Transformatioon (FFT) bekannt (Formel 4):
Bild 6 zeigt unten eine LabVIEW-Funktion zur Berechnung des Spektrums eines am Eingang „Signal (V)“ anliegenden Arrays, wobei neben dem Amplitudenspektrum (Formel 4, jedoch noch umgerechnet auf Effektivwerte) auch das Phasenspektrum ermittelt wird. Oben im Bild ist exemplarisch das berechnete Amplitudenspektrum eines einmaligen Impulses mit 100 Abtastwerten gezeigt.
Jörg Böttcher: Kompendium Messdatenerfassung und -auswertung. ISBN 978-3-7386-2255-3 (Paperback) oder ISBN 978-3-7392-7714-1 (E-Book), Verlag: Books on Demand (www.bod.de).
Jörg Böttcher: Kompendium Messtechnik und Sensorik (2. Auflage). ISBN 9783751932967 (Paperback) oder ISBN 9783752632491 (E-Book), Verlag: Books on Demand (www.bod.de).
* Prof. Dr.-Ing Jörg Böttcher hat eine Professur für Regelungstechnik und Elektrische Messtechnik an der Universität der Bundeswehr München inne.