10
Versuchsanleitung zur Lehrveranstaltung Labor Messtechnik/Messdatenerfassung S. 1 MDE2_LabVIEW8-0505.doc FMo 05.05.06 Prof. Dr.-Ing. F. Mohr, Dipl.-Ing. (FH) Markus Holzer ٭Versuch 2: Grundlegende Einführung in die graphische Programmieroberfläche LabVIEW, Teil 2 1 Einleitung Am 2. Labortag sollen Sie, aufbauend auf den am ersten Labortag gewonnenen Kenntnissen, ein Programm erstellen lernen, das zur manuellen Eingabe von Messdaten geeignet ist. Das Pro- gramm stellt damit eine erste messtechnische Anwendung von LabVIEW dar. 2 Ablauf des Labortages Sie sollen schrittweise durch Erstellen einfacher Programmelemente mit stetig steigender Kom- plexität mit immer neuen Elementen der Programmiersprache LabVIEW vertraut gemacht werden. Dazu sollen Sie die im folgenden dargestellten Programme weitgehend selbständig nachbilden. Die Anleitung durch den Betreuer soll damit auf ein Minimum reduziert werden, und Sie sollen zunehmend zum eigenen Handeln geführt werden. Speichern Sie jeweils, wie am ersten Labortag gelernt, die Programme wieder als VI’s loop*.vi in einer Library Loops.llb ab. Und benützen Sie die Hilfefunktion, aufzurufen über Strg-h! ٭Überarbeitung für die Version 8, 2006 3 Die Programme im Einzelnen. 3.1 Loop 1 Hier sollen Sie neben der bereits kennen gelernten While-Schleife die Struktur „Sequence“ ken- nenlernen, sie ist unter „Structures-> Staced Sequence Structure“ zu finden. Mit „Sequence“ werden Programmelemente definiert, die (hier) in 2 aufeinanderfolgenden Schritten abgearbeitet werden. In Sequenz 0 wird lediglich die Eingebetastatur abgefragt und eine LED zum Aufleuchten gebracht; das Programm geht erst nach dem Verlassen der Schleife in Sequenz 2 und aktiviert dort den Beep. (Diese Funktion finden sie unter Functions / Graphics&Sound.) Beim Erstellen der Sequenz beachten: Sie erhalten zunächst nur den einfachen Rahmen ohne die Nummerierung „0“ bzw. „1“ am oberen Rand. Diese erhalten Sie, indem Sie am oberen Rand mit der rechten Maustaste anklicken und „Add frame after“ auswählen. Sie können dann mit dem Button am oberen Rand zwischen beiden Schritten hin- und herklicken. Der mechanische Taster ist noch auf die richtige mechanische Funktion einzustellen (eben als Taster!) Ein Taster geht, wurde er gedrückt und ist er somit „high“, nach der ersten Abfrage

Versuch 2: Grundlegende Einführung in die graphische ...eitidaten.fh-pforzheim.de/daten/labore/pcmt/PCMT Versuch2.pdf · Grundlegende Einführung in die graphische Programmieroberfläche

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Versuch 2: Grundlegende Einführung in die graphische ...eitidaten.fh-pforzheim.de/daten/labore/pcmt/PCMT Versuch2.pdf · Grundlegende Einführung in die graphische Programmieroberfläche

Versuchsanleitung zur Lehrveranstaltung Labor Messtechnik/Messdatenerfassung S. 1

MDE2_LabVIEW8-0505.doc FMo 05.05.06

Prof. Dr.-Ing. F. Mohr, Dipl.-Ing. (FH) Markus Holzer ٭

Versuch 2:

Grundlegende Einführung in die graphische Programmieroberfläche LabVIEW, Teil 2

1 Einleitung

Am 2. Labortag sollen Sie, aufbauend auf den am ersten Labortag gewonnenen Kenntnissen, ein Programm erstellen lernen, das zur manuellen Eingabe von Messdaten geeignet ist. Das Pro-gramm stellt damit eine erste messtechnische Anwendung von LabVIEW dar.

2 Ablauf des Labortages

Sie sollen schrittweise durch Erstellen einfacher Programmelemente mit stetig steigender Kom-plexität mit immer neuen Elementen der Programmiersprache LabVIEW vertraut gemacht werden. Dazu sollen Sie die im folgenden dargestellten Programme weitgehend selbständig nachbilden. Die Anleitung durch den Betreuer soll damit auf ein Minimum reduziert werden, und Sie sollen zunehmend zum eigenen Handeln geführt werden.

Speichern Sie jeweils, wie am ersten Labortag gelernt, die Programme wieder als VI’s loop*.vi

in einer Library Loops.llb ab.

Und benützen Sie die Hilfefunktion, aufzurufen über Strg-h!

Überarbeitung für die Version 8, 2006 ٭

3 Die Programme im Einzelnen.

3.1 Loop 1

Hier sollen Sie neben der bereits kennen gelernten While-Schleife die Struktur „Sequence“ ken-nenlernen, sie ist unter „Structures-> Staced Sequence Structure“ zu finden. Mit „Sequence“ werden Programmelemente definiert, die (hier) in 2 aufeinanderfolgenden Schritten abgearbeitet werden. In Sequenz 0 wird lediglich die Eingebetastatur abgefragt und eine LED zum Aufleuchten gebracht; das Programm geht erst nach dem Verlassen der Schleife in Sequenz 2 und aktiviert dort den Beep. (Diese Funktion finden sie unter Functions / Graphics&Sound.)

Beim Erstellen der Sequenz beachten: Sie erhalten zunächst nur den einfachen Rahmen ohne die Nummerierung „0“ bzw. „1“ am oberen Rand. Diese erhalten Sie, indem Sie am oberen Rand mit der rechten Maustaste anklicken und „Add frame after“ auswählen. Sie können dann mit dem Button am oberen Rand zwischen beiden Schritten hin- und herklicken.

Der mechanische Taster ist noch auf die richtige mechanische Funktion einzustellen (eben als Taster!) Ein Taster geht, wurde er gedrückt und ist er somit „high“, nach der ersten Abfrage

Page 2: Versuch 2: Grundlegende Einführung in die graphische ...eitidaten.fh-pforzheim.de/daten/labore/pcmt/PCMT Versuch2.pdf · Grundlegende Einführung in die graphische Programmieroberfläche

Versuchsanleitung zur Lehrveranstaltung Labor Messtechnik/Messdatenerfassung S. 2

MDE2_LabVIEW8-0505.doc FMo 05.05.06

durch das Programm wieder in „low“-Position zurück. Diese Einstellung erfolgt, indem Sie ihn im Panel mit der rechten Maustaste anklicken und danach in „Mechanical Action“ die Einstellung „Latch When Pressed“ auswählen. Siehe untenstehende Abbildung.

Außerdem wichtig, um Missverständnissen vorzubeugen:

Nur zur Verdeutlichung sind bei den nachfolgenden Darstellungen die Sequen-

zen 0 und 1 jeweils untereinander dargestellt; im Programm selbst erscheint

immer nur eine der beiden. Also nicht versuchen, beide untereinander dargestell-

ten Abbildungen zu realisieren!!

Page 3: Versuch 2: Grundlegende Einführung in die graphische ...eitidaten.fh-pforzheim.de/daten/labore/pcmt/PCMT Versuch2.pdf · Grundlegende Einführung in die graphische Programmieroberfläche

Versuchsanleitung zur Lehrveranstaltung Labor Messtechnik/Messdatenerfassung S. 3

MDE2_LabVIEW8-0505.doc FMo 05.05.06

3.2 Loop 2

Hier lernen Sie zusätzlich die „For“-Schleife kennen, mit der hier ein 5-facher „Beep“ im zeitli-chen Abstand von jeweils 500ms ausgelöst wird. Während die While-Schleife nach einem inner-halb der Schleife ermittelten Abbruchkriterium selbst den Abbruch steuert, ist die Anzahl der Durchläufe bei der For-Schleife durch eine außerhalb der Schleife vorgegebene Zahl (N, hier 5) vorgegeben. Die Anzahl der Durchläufe kann somit, ist das Programm erst einmal in die Schleife eingetreten, nicht mehr verändert werden. Beachten: N gibt die Anzahl der Durchläufe an; der Schleifenindex i läuft aber von 0 bis N-1.

3.3 Loop 3

Hier sollen Sie die Verwendung des Schieberegisters bei den Schleifen kennenlernen. Das Schie-beregister (2 Dreieck-Symbole rechts und links in der While-Schleife) gibt die innerhalb der Schleife gewonnenen Daten „nach rechts“ in das Schieberegister hinein und holt sie beim näch-sten Schleifendurchlauf „von links“ wieder heraus, um sie dann weiter bearbeiten zu können. Die Datenverarbeitung hat dabei die Aufgabe, je nachdem ob „LED ein“ gedrückt war oder nicht, das Schieberegister zu inkrementieren oder nicht. D.h. das Schieberegister zählt die Anzahl der Tas-tendrücke mit. Die Entscheidung, ob inkrementieren oder nicht, wird über das Element „Select“ (s.u.) weitergegeben. Sie finden „Select“ in der Functions-Palette unter „Comparison“ (3.Zeie, 1. Spalte).

Die Anzeige des Zählerstands erfolgt erst nach Drücken von „Stop“, da erst dann der Schiebere-gister-Inhalt von Sequenz 0 nach Sequenz 1 weitergereicht und an den Indicator gegeben wird. Zur Weitergabe von Daten von einem Sequenzschritt zum zweiten brauchen Sie „Sequence lo-cal“. Sie bekommen es durch Anfahren der Berandung der Sequenz und Anklicken der rechten Maustaste.

Als Anzeige für die Tastendrücke wurde „Simple Numeric“ benutzt (beachten: muss auf „Indi-cator“ eingestellt sein!)

Page 4: Versuch 2: Grundlegende Einführung in die graphische ...eitidaten.fh-pforzheim.de/daten/labore/pcmt/PCMT Versuch2.pdf · Grundlegende Einführung in die graphische Programmieroberfläche

Versuchsanleitung zur Lehrveranstaltung Labor Messtechnik/Messdatenerfassung S. 4

MDE2_LabVIEW8-0505.doc FMo 05.05.06

Das neue Element „Select“ schaltet- in Abhängigkeit vom Status der booleschen Steuergröße ‚s’ - den Wert des ‚t’ (true) oder ‚f’ (false) Eingangs zum Ausgang durch.

3.4 Loop 4

In Loop 4 (Abbildung nächste Seite) wird eine alternative Lösung für Fallentscheidungen einge-führt, die vor allem dann sinnvoll ist, wenn in Abhängigkeit von einer Booleschen Variablen komplexere Operationen durchzuführen sind.

In diesem Fall verwenden Sie besser die „Case“-Struktur (unter „Structures“ zu finden). Die die Entscheidung bestimmende Variable wird an das Fragezeichen (hier links am Rand der Case-Struktur) angeschlossen. Die Case-Struktur kann, wenn erforderlich, auch auf mehr als 2 Alterna-tiven eingestellt werden; dann wird nicht eine Boolsche Zahl, sondern eine Integer-Variable an-geschlossen.

Hier ebenfalls neu: Die beiden Schieberegister werden zu Beginn des Programms initialisiert; d.h. hier mit „Null“ beschrieben. Dazu dient die links außen angeschlossene „0“. Probieren Sie aus, was passiert, wenn Sie nicht initialisieren (oder mit einer anderen Zahl als Null initialisieren).

Page 5: Versuch 2: Grundlegende Einführung in die graphische ...eitidaten.fh-pforzheim.de/daten/labore/pcmt/PCMT Versuch2.pdf · Grundlegende Einführung in die graphische Programmieroberfläche

Versuchsanleitung zur Lehrveranstaltung Labor Messtechnik/Messdatenerfassung S. 5

MDE2_LabVIEW8-0505.doc FMo 05.05.06

3.5 Loop 5

In diesem Beispiel sollen Sie Arrays kennenlernen. Es gibt ein- und mehrdimensionale Arrays, in diesem Fall benutzen wir ein eindimensionales Array, vergleichbar einer Nx1-Matrix bzw. einem Vektor. Die Aufgabe des hier vorgestellten Programms ist es zunächst wieder nur, bei jedem Ta-stendruck die nächstgrößere Zahl zu erzeigen (inkrementieren wie oben) und die so erzeugten Zahlen dann in ein Array zu schreiben. Auf der Diagrammebene benötigen wir dazu die Funktion „Build Array“ (in der „True“-Schleife und unten als Hilfe abgedruckt); wir erhalten sie über Funktions / Array / 2.Zeile, 2.Spalte. Diese Funktion hat zunächst einen Eingang und einen Aus-gang; die Anzahl der Eingänge kann durch Größerziehen mit der Maus erhöht werden. Wir benö-tigen 2. Die Funktion hängt an ein vorhandenes Array eine Zahl als neues Element an, erhöht also die Ordnung des o.a. Vektors um 1. Sie ist dazu mit der Maus so einzustellen, dass sie weiß, an welchem Eingang die neue Zahl und an welchem das bereits existierende Array ankommt. Im vorliegenden Fall wurde der Eingang links oben mit der rechten Maustaste auf „Array“ und der links unten auf „Element“ eingestellt.

Die auch hier außerhalb der Schleife vorgenommene Initialisierung der Schieberegister hatte im oberen Fall zu berücksichtigen, dass das obere Schieberegister die Arraydaten weiterreicht; des-halb musste es gleich mit dem Datentyp „Array“ initialisiert werden. Dazu dient ein dort einge-schobenes „Build Array“ in seiner einfachsten Form, d.h. mit nur einem Eingang.

Auf der Panelseite benötigen wir zur Darstellung der Daten ebenfalls eine Array-taugliche An-zeige. Man erhält sie unter Controls / Array Matrix & Cluster / Array. Von dort kann man die unten rechts dargestellte Anzeige anklicken. Sie hat als Anzeige bereits Array-Charakter, weiß aber noch nicht, welchen Typ von Information sie darstellen soll. Deshalb muss man in das zunächst noch leere Anzeigefeld nachträglich noch ein Feld aus Controls / Numeric / Numeric Indicator einfügen. Dann kann wie üblich auf der Diagramm-Ebene verdrahtet werden.

Page 6: Versuch 2: Grundlegende Einführung in die graphische ...eitidaten.fh-pforzheim.de/daten/labore/pcmt/PCMT Versuch2.pdf · Grundlegende Einführung in die graphische Programmieroberfläche

Versuchsanleitung zur Lehrveranstaltung Labor Messtechnik/Messdatenerfassung S. 6

MDE2_LabVIEW8-0505.doc FMo 05.05.06

Als weitere Anzeige wurde zum graphischen Darstellen des Arrayinhalts der Waveform-Graph benutzt.

Hier ist die horizontale Achse einfach eine fortlaufende Durchnummerierung der eingegebenen Daten.

3.6 Loop 6

Hier sollen Sie nun das Erzeugen eines xy-Diagramms kennenlernen. Das Programm erzeugt dazu zunächst innerhalb der Case-Struktur zwei Nx1-Arrays (Spaltenvektoren), indem es in ei-nem Array die Anzahl der Tastendrücke zählt und in das zweite die am Digital Control jeweils eingestellten Zahlen (z.B. Messwerte) hineinschreibt.

Außerhalb der Case-Struktur werden diese beiden Arrays in zweierlei Weise weiterverarbeitet: Unter Verwendung von „Bundle“ (Functions / Cluster / 1.Zeile, 2.Spalte) werden beide formal so zusammengebunden („gebündelt“), dass sie vom xy-Display ( ist unter Controls /XY Graph/ 1.Zeile zu finden) gelesen und graphisch dargestellt werden können. Die Hilfe-Information zu „Bundle“ ist unten dargestellt.

Darunter werden sie unter Verwendung der bereits bekannten Funktion „Build Array“, wieder mit zwei Eingängen, nun aber beide auf „Array“ eingestellt, so kombiniert, dass ein Nx2-Array (2-spaltige Matrix), entsteht. Diese kann dann mit der ebenfalls schon bekannten Anzeige für Arrays dargestellt werden. (Auf dem Panel rechts oben.) Dazu ist die Array-Anzeige aber noch für 2 Dimensionen zu erweitern, indem das Indexkästchen an ihrem Rand links oben nach unten aufgezogen, d.h. für 2 Dimensionen erweitert wird.

Page 7: Versuch 2: Grundlegende Einführung in die graphische ...eitidaten.fh-pforzheim.de/daten/labore/pcmt/PCMT Versuch2.pdf · Grundlegende Einführung in die graphische Programmieroberfläche

Versuchsanleitung zur Lehrveranstaltung Labor Messtechnik/Messdatenerfassung S. 7

MDE2_LabVIEW8-0505.doc FMo 05.05.06

Damit die Anzeige als 2-Spalten- und nicht als 2-Zeilenmatrix erfolgt, muss die Matrix noch mit der Funktion „Transpose Array“ (Trans-poniere Array) umgeordnet werden.

3.7 Loop 7

Diese letzte Übung setzt das bisher Gelernte weiter um zu einem Programm, mit dem Daten-paare eingelesen und graphisch dargestellt werden können. (Anwendungsbeispiel: Kalibrierung eines Voltmeters. Es wird jeweils der abgelesene Spannungswert

und der exakte, mit einem Eichmultimeter ermittelte Wert paarweise eingetragen.)

Neu ist hier lediglich, dass die Initialisierung der Schieberegister mit jeweils einem leeren Array erfolgt. Damit wird nicht beim ersten Schleifendurchlauf wie oben eine Wertekombination (0/0) in die Register geschrieben (wem ist das aufgefallen?), sondern gar nichts. D.h. das erste erfasste Wertepaar ist tatsächlich das vom User eingegebene.

Das Programm soll zum Kalibrieren eines Handmultimeters eingesetzt werden.

Page 8: Versuch 2: Grundlegende Einführung in die graphische ...eitidaten.fh-pforzheim.de/daten/labore/pcmt/PCMT Versuch2.pdf · Grundlegende Einführung in die graphische Programmieroberfläche

Versuchsanleitung zur Lehrveranstaltung Labor Messtechnik/Messdatenerfassung S. 8

MDE2_LabVIEW8-0505.doc FMo 05.05.06

3.8 Loop 8 (Zusatz-Aufgabe, Erweiterung zu Loop 7)

Page 9: Versuch 2: Grundlegende Einführung in die graphische ...eitidaten.fh-pforzheim.de/daten/labore/pcmt/PCMT Versuch2.pdf · Grundlegende Einführung in die graphische Programmieroberfläche

Versuchsanleitung zur Lehrveranstaltung Labor Messtechnik/Messdatenerfassung S. 9

MDE2_LabVIEW8-0505.doc FMo 05.05.06

4 Aufgabe bis zum nächsten Versuchstag:

Simulation und Linearisierung einer Thermistorkennlinie

Ein Thermistor (NTC-Widerstand) hat bekanntlich die nichtlineare Kennlinie:

−⋅

⋅=0T

1

T

1B

0 e)T(R)T(R

dabei gilt [T] = 1 K; außerdem ist üblicherweise T0 = 300 K (entspr. Raumtemperatur).

Sie sollen mehrere Aufgaben bearbeiten im Zusammenhang mit einer solchen Kennlinie:

1) Erstellen Sie ein LabVIEW-Programm, mit dem der Verlauf der Kennlinie als R = R(T) gra-phisch dargestellt wird. Erstellen Sie dazu Eingabefelder, mit denen Sie die Werte für fol-gende Parameter eingeben können: R(T0) = R0/Ohm (R0 ist der Widerstandswert bei Raumtemperatur; typische Werte sind 1k, 4.7k, 10k, 47k, 100k), B/Ohm (typische Werte sind 3000, 4000, 5000), Tmin/K, Tmax/K (Werte der minimalen bzw. maximalen Temperatur in K, für die die erhal-tene Graphik angezeigt werden soll). Das Programm soll in einer Schleife laufen, die jede Neueingabe eines Parameterwertes so-fort in eine neue Berechnung übernimmt. Die Schleife soll erst bei Drücken der Taste „STOP“ verlassen werden. Orientieren Sie sich bei der Gestaltung des Programms an der nachfolgend dargestellten Be-dienoberfläche. Benutzen Sie als Display ein xy-Diagramm, das mit den Arrays für die T- und die R(T)-Werte gespeist wird.

2) Erweitern Sie das obige Programm so, dass eine Linearisierung mit einem parallel- und ei-nem seriengeschalteten Widerstand berechnet wird. Zeigen Sie damit, wie sich die resultie-rende Gesamt-Widerstandskennlinie durch Verändern von Rs und Rp ändern lässt. Orientieren Sie sich an der an der nachfolgend dargestellten Bedienoberfläche.

Page 10: Versuch 2: Grundlegende Einführung in die graphische ...eitidaten.fh-pforzheim.de/daten/labore/pcmt/PCMT Versuch2.pdf · Grundlegende Einführung in die graphische Programmieroberfläche

Versuchsanleitung zur Lehrveranstaltung Labor Messtechnik/Messdatenerfassung S. 10

MDE2_LabVIEW8-0505.doc FMo 05.05.06

3) Erweitern Sie nochmals, in-dem Sie in das bis hierhin er-stellte Programm eine Routine einbauen, die eine lineare Re-gression der errechneten Kurve durchführt und damit die Best-Fit-Gerade errechnet. Stellen Sie die Best-Fit-Gerade zusammen mit der tatsächlichen Kennlinie der Parallelschaltung im gleichen Diagramm dar. Sie finden die Routine zum Linear-Fit in der „Functions“-Palette unter Ma-thematics (2.Zeile, 1-Spalte) –Fitting – Linear Fit. Siehe nachfolgende Abbildung. Die Werte von Achsenabschnitt (a), Steigung (b) und mittlerer qua-dratische Abweichung (mse) der Fit-Kurve sollen angezeigt wer-den.