17
1 1. Gliederung 2. Die Programmiersprache LabVIEW 2.1 Einführung 2.2 Funktionsweise LabVIEW’s 2.3 Bedienelemente 2.4 LabVIEW-Elemente 2.5 Möglichkeiten der Datenverarbeitung 2.6 Stärken und Schwächen 3. Verwendete Hard- und Software 4. Technische Spezifikation der verwendeten DAQ-Karte 5. Ursprünglicher Arbeitsplan 6. Entwicklung eines Beispielprogramms zum Test der I/O-Funktionen 7. Die DAQ-Karte und LabVIEW in der konkreten Anwendung - VI-Radio 7.1 Genutzte Anschlüsse am Modul 1886DFC 7.2 Blockschaltbild 7.3 Umsetzung in LabVIEW 7.4 Programmmodule 7.4.1 Die Einstellung der Frequenz 7.4.2 Senderspeicher 7.4.3 Messung der Frequenz und der Feldstärke 8. Ausblick und Schlussbemerkung 9. Literaturangabe Fachhochschule Merseburg Fachbereich Informatik und Angewandte Naturwissenschaften Matrikel: PHT 98 1.Andreas Heberer 2.Christian Schmelzer Praktikum Messplatzautomatisierung Studiengang: Physikalische Technik und Informationsverarbeitung Datum : 04.01.2002 Ansteuerung einer Multi I/O-Karte mittels LabVIEW

Fachbereich Informatik und Angewandte Naturwissenschaftenviuser/Links/Heberer_Schmelzer.pdf · 7.1 Genutzte Anschlüsse am Modul 1886DFC 7.2 Blockschaltbild 7.3 Umsetzung in LabVIEW

  • Upload
    dokhue

  • View
    225

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Fachbereich Informatik und Angewandte Naturwissenschaftenviuser/Links/Heberer_Schmelzer.pdf · 7.1 Genutzte Anschlüsse am Modul 1886DFC 7.2 Blockschaltbild 7.3 Umsetzung in LabVIEW

1

1. Gliederung

2. Die Programmiersprache LabVIEW

2.1 Einführung

2.2 Funktionsweise LabVIEW’s

2.3 Bedienelemente

2.4 LabVIEW-Elemente

2.5 Möglichkeiten der Datenverarbeitung

2.6 Stärken und Schwächen

3. Verwendete Hard- und Software

4. Technische Spezifikation der verwendeten DAQ-Karte

5. Ursprünglicher Arbeitsplan

6. Entwicklung eines Beispielprogramms zum Test der I/O-Funktionen

7. Die DAQ-Karte und LabVIEW in der konkreten Anwendung - VI-Radio

7.1 Genutzte Anschlüsse am Modul 1886DFC

7.2 Blockschaltbild

7.3 Umsetzung in LabVIEW

7.4 Programmmodule

7.4.1 Die Einstellung der Frequenz

7.4.2 Senderspeicher

7.4.3 Messung der Frequenz und der Feldstärke

8. Ausblick und Schlussbemerkung

9. Literaturangabe

Fachhochschule MerseburgFachbereich Informatik und Angewandte Naturwissenschaften

Matrikel: PHT 98

1.Andreas Heberer 2.Christian Schmelzer Praktikum Messplatzautomatisierung

Studiengang: Physikalische Technik und Informationsverarbeitung

Datum : 04.01.2002Ansteuerung einer Multi I/O-Karte mittels LabVIEW™

Page 2: Fachbereich Informatik und Angewandte Naturwissenschaftenviuser/Links/Heberer_Schmelzer.pdf · 7.1 Genutzte Anschlüsse am Modul 1886DFC 7.2 Blockschaltbild 7.3 Umsetzung in LabVIEW

2

2. Die Programmiersprache LabVIEW 2.1 Einführung „Laboratory Virtual Instrument Engineering Workbench“ der Firma National Instruments LabVIEW ist eine auf der Programmiersprache „G“ basierende grafische Entwicklungs-umgebung, die sich für die Erstellung von Datenerfassungs-, Instrumentierungs-, Steuer- und Regelungssystemen eignet. Mit Hilfe von Blockdiagrammen lassen sich sehr schnell interaktive Benutzeroberflächen zur Steuerung externer Systeme erstellen. LabVIEW bietet einen eingebauten Zugang zu gebräuchlichen Schnittstellen für die Messtechnik, wie z.B. DAQ-Karten, IEEE488 (GPIB), VXI oder RS232. Umfangreiche Bibliotheken mit Routinen u.a. für die grafische Darstellung, Auswertung und Numerik ermöglichen Lösungen für Problemstellungen unterschiedlichster Art. Darüber hinaus besteht die Möglichkeit des Datenaustausches mit anderen Windows-Programmen über Messdatendateien, die in unterschiedlichen Formaten angelegt werden können. LabVIEW wird in vielen Branchen eingesetzt, wie beispielsweise in der Telekommuni-kations-, Halbleiter-, Luft- und Raumfahrt-, Elektronik- und der biomedizinischen Industrie. Derzeit unterstützte Plattformen sind Windows XP/2000/NT/9X, Mac OS, Linux, HP-UX und Sun Solaris. 2.2 Funktionsweise LabVIEW’s Die mit LabVIEW erstellten Programme werden Virtual Instruments, kurz VI’s, genannt, da sie in Aussehen und Funktion Hardwaregeräten ähnlich sind. VI’s können dabei als Hauptprogramme, Subroutinen oder Funktionen ähnlich wie in anderen Programmiersprachen wie C oder Pascal fungieren. VI’s besitzen ein interaktives Benutzeroberflächen- und Quellcodeäquivalent, über das sie Daten beliebig austauschen können. Ein VI setzt sich aus drei Hauptteilen zusammen:

1. Das Front Panel: Wie der Name schon vermuten lässt, simuliert das Front Panel die interaktive Frontplatte eines Gerätes mit Knöpfen, Schaltern, Grafiken und vielen anderen controls (Benutzereingaben) und indicators (Anzeigeelementen). Ein Beispiel für ein Front Panel ist in Bild 5 dargestellt. 2. Das Blockdiagramm: In Bild 6 ist ein Beispiel für ein solches Blockdiagramm dargestellt, es ist der lauffähige, mit LabVIEW konstruierte Quellcode des VI’s. Dieses Blockdiagramm, obgleich es sehr bildhaft erscheint, ist bereits das eigentliche Programm. Die Symbole (icons) des Blockdiagramms stellen untergeordnete VI’s dar, dies sind selbst geschriebene oder von LabVIEW zur Verfügung gestellte Funktionsmodule und Programmstrukturen. Die einzelnen Blöcke werden untereinander mit Drähten verbunden, diese repräsentieren Variablen, die den Datenfluss im Blockdiagramm und damit den Programmablauf bestimmen.

Page 3: Fachbereich Informatik und Angewandte Naturwissenschaftenviuser/Links/Heberer_Schmelzer.pdf · 7.1 Genutzte Anschlüsse am Modul 1886DFC 7.2 Blockschaltbild 7.3 Umsetzung in LabVIEW

3

3. Das Symbol (icon): Das Symbol (icon) und der Verbinder (connector) eines VI’s erlauben den Transfer der Daten zu einem anderen VI. Das Symbol repräsentiert ein VI im Blockdiagramm eines übergeordneten VI’s. Der Verbinder definiert die Ein- und Ausgänge eines VI’s. Ein VI in einem höheren VI wird subVI genannt.

2.3 Bedienelemente

Bild 1: Grundlegende Bedienelemente in LabVIEW

(1) Controls Palette: controls, indicators

(2) Functions Palette: z.B. mathematische, logische, ... Operationen, Programmstrukturen

(3) Tool Palette: z.B. Verdrahtung, Kommentare, Positionierung

(4) Front Panel: Kontrolle über 3 Variablen

(5) Blockdiagramm (Sourcecode)

(6) Online-Hilfe

Page 4: Fachbereich Informatik und Angewandte Naturwissenschaftenviuser/Links/Heberer_Schmelzer.pdf · 7.1 Genutzte Anschlüsse am Modul 1886DFC 7.2 Blockschaltbild 7.3 Umsetzung in LabVIEW

4

2.4 LabVIEW-Elemente

Bild 2: Sprachelemente

Bild 3: Elemente für ADC, DAC, Digital I/O, Timer/Counter

Page 5: Fachbereich Informatik und Angewandte Naturwissenschaftenviuser/Links/Heberer_Schmelzer.pdf · 7.1 Genutzte Anschlüsse am Modul 1886DFC 7.2 Blockschaltbild 7.3 Umsetzung in LabVIEW

5

Bild 4: Einige Drähte und ihre Datentypen 2.5 Möglichkeiten der Datenverarbeitung

• Differentiation

• Korrelation

• Fast Fourier Transformation

• Leistungsspektrum

• Hanningfenster

• Butterworth-Filter

2.6 Stärken und Schwächen

+ universell

+ übersichtliche, grafische Programmierung

+ gute Online-Dokumentation

+ leicht erlernbar, „learning by doing“

+ Debugging-Hilfe

+ Unterstützung von Mehrprozessorsystemen

+ großer Anwenderkreis

- gewöhnungsbedürftige Datenflusssteuerung

- keine ereignisgesteuerte Interaktion von Objekten realisierbar

- kein optimierender Compiler

- Einfachheit der Programmierung verführt zu schlechtem Programmierstil

Page 6: Fachbereich Informatik und Angewandte Naturwissenschaftenviuser/Links/Heberer_Schmelzer.pdf · 7.1 Genutzte Anschlüsse am Modul 1886DFC 7.2 Blockschaltbild 7.3 Umsetzung in LabVIEW

6

3. Verwendete Hard- und Software

• PC mit LabVIEW 6i

• DAQ-Karte PCI-6024E und Anschlussboard SC-2075(National Instruments)

• Radiomodul 1886DFC (Temic)

• Multimeter 34401A (Hewlett Packard)

• Gleichspannungsnetzgerät DIGI 40 (Voltcraft)

• 60 MHz-Oszilloskop (Philips)

4. Technische Spezifikation der verwendeten DAQ-Karte

• Bezeichnung: PCI-6024E

• Analoge Eingänge: 16 x single ended oder 8 x differentiell

(12 Bit, max. 200 kS/s, +/- 10 V)

• Analoge Ausgänge: 2 x 12Bit (max. 10 kS/s)

• Digitale Ein-/Ausgänge: 8 x DIO 0...7

(CMOS/TTL-kompatibel)

• 2 Hardware Timer/Counter on Board (24 Bit)

5. Ursprünglicher Arbeitsplan

• Einarbeitung in die Programmierung mit LabVIEW anhand von Beispielprogrammen

• Internet-Recherche zur Multi I/O-Karte

(Hardware, Ansteuerung, Beispielprogramme, Anschlussbelegung, Kalibrierung etc.)

• Beschaffung des Moduls NI-DAQ (Kalibrierkonstanten)

• Erstellen eines einfachen Beispielprogramms, um die einzelnen Funktionen: Digitale

Ein-/Ausgabe, Analoge Ein-/Ausgabe zu überprüfen.

• Erstellen eines weiteren Programms, um umfangreichere Funktionen mit der I/O-Karte

und LabVIEW zu testen (Fourieranalyse, Anschluss eines externen LC-Displays).

Eventuelle Realisierung eines virtuellen Frequenzzählers mit externem LC-Display.

Die Datenerfassung läuft auf der Karte, Aufbereitung im PC, Ausgabe wiederum über

die Karte auf das LC-Display.

• Je nach Zeitaufwand Einbeziehung des Timer I/O-Moduls

Page 7: Fachbereich Informatik und Angewandte Naturwissenschaftenviuser/Links/Heberer_Schmelzer.pdf · 7.1 Genutzte Anschlüsse am Modul 1886DFC 7.2 Blockschaltbild 7.3 Umsetzung in LabVIEW

7

6. Entwicklung eines Beispielprogramms zum Test der I/O-Funktionen

Zunächst wurde ein Programm entwickelt, das sowohl die digitale, als auch die analoge Ein-/Ausgabe über die DAQ-Karte realisierte. Damit konnten die Funktionen der Karte getestet und Erfahrungen zur Herangehensweise an die Programmierung in LabVIEW gesammelt werden. In Bild 5 ist ein Bildschirmausdruck des fertigen Programms zu sehen.

Bild 5: LabVIEW Front Panel

Die Bilder 6 und 7 zeigen den zugehörigen VI-Programmcode.

Bild 6: LabVIEW-Diagramm für den Modus: Digital Out / Sinus

Page 8: Fachbereich Informatik und Angewandte Naturwissenschaftenviuser/Links/Heberer_Schmelzer.pdf · 7.1 Genutzte Anschlüsse am Modul 1886DFC 7.2 Blockschaltbild 7.3 Umsetzung in LabVIEW

8

Bild 7: LabVIEW-Diagramm für den Modus Digital In / Gleichspannung Schwierigkeiten bereitete anfangs die im Gegensatz zu anderen Compilern unterschiedliche Philosophie von LabVIEW. Dabei fiel insbesondere auf, dass es nicht ohne weiteres möglich ist, ereignisgesteuerte Programmabläufe zu programmieren. Ein Modul wird nur dann abgearbeitet, wenn an allen obligatorischen Eingängen Daten anliegen. Ist dies bei mehreren Modulen gleichzeitig der Fall, so wählt LabVIEW die Ausführungsreihenfolge offenbar zufällig. Dies erfordert natürlich eine andere Denk- und Herangehensweise bei der Programm-erstellung. Eine große Hilfe war die Einbeziehung von Sequenzen in die Programmstruktur, womit sich Prioritäten in der Struktur explizit vorgeben lassen und somit zumindest ein sequentielles, wenn auch nicht ereignisgesteuertes Abarbeiten von Programmteilen möglich ist. Weiterhin ungewohnt waren die verschiedenen Datenformate und die richtige Verdrahtung der einzelnen Variablen. 7. Die DAQ-Karte und LabVIEW in der konkreten Anwendung – VI-Radio Nachdem das Beispielprogramm, mit dem die wichtigsten Funktionen überprüft wurden, fertig gestellt war, entschlossen wir uns, abweichend vom ursprünglichen Arbeitsplan, ein VI-gesteuertes Radio zu entwickeln. Dazu stand uns das Radiomodul 1886DFC der Firma Temic zur Verfügung.

In diesem Modul ist bereits die komplette Hardware, die für ein UKW-Radio notwendig ist, integriert. Das Modul findet beispielsweise in Autoradios Anwendung. Da die Steuerung bidirektional sowohl digital als auch analog erfolgt, bietet sich der Anschluss an eine Multi I/O-Karte geradezu an.

Page 9: Fachbereich Informatik und Angewandte Naturwissenschaftenviuser/Links/Heberer_Schmelzer.pdf · 7.1 Genutzte Anschlüsse am Modul 1886DFC 7.2 Blockschaltbild 7.3 Umsetzung in LabVIEW

9

7.1 Genutzte Anschlüsse am Modul 1886DFC

• Feldstärke (analog out, 0-5 V): Ausgabe der Feldstärke als äquivalente Spannung

Dabei entsprechen 10 µV Signalstärke etwa 2,1 - 2,7 V

55 µV Signalstärke etwa 2,8 - 3,4 V

1 mV Signalstärke etwa 4 - 5 V

• Tuningspannung (analog in, 0 – 10 V): Über diese Spannung erfolgt die Steuerung des

VCO (Voltage Controlled Oscillator) und somit die Einstellung der Frequenz, bei der

das Radio arbeiten soll.

• Oszillatorausgang (Digital out, ca. 200 mV, 70-130 MHz): Ausgabe der Frequenz, bei

der der Oszillator schwingt, zuzüglich eines Offsets von 10,7 MHz, das vom ZF-

Verstärker herrührt

• NF-Ausgang (analog out, ca. 70 mV)

Bevor das Radiomodul an die Multi I/O-Karte angeschlossen werden konnte, mussten noch einige Anpassungen vorgenommen werden. So wurde beispielsweise dem Feldstärkeausgang ein 3 Hz-RC-Tiefpass nachgeschaltet, da das Signal stark verrauscht war. Gleiches bewirkte auch die softwareseitige Verwendung eines Mittelwert-VI’s anstelle des Tiefpasses. Da die Bandbreite der Multi I/O-Karte beim Timer/Counter-Eingang nur 20 MHz beträgt und das Signal TTL-kompatibel sein soll, musste das Oszillatorsignal über einen Vorteiler im Verhältnis 1:256 (SDA4212) zunächst vorgeteilt und dann über eine Transistorstufe (BF199) auf TTL-Level angehoben werden. Das NF-Signal wurde über einen Operationsverstärker an einen Lautsprecher geführt. Die Ausgänge für Feldstärke und Tuningspannung sind unverändert direkt an die I/O-Karte angeschlossen worden.

Page 10: Fachbereich Informatik und Angewandte Naturwissenschaftenviuser/Links/Heberer_Schmelzer.pdf · 7.1 Genutzte Anschlüsse am Modul 1886DFC 7.2 Blockschaltbild 7.3 Umsetzung in LabVIEW

10

7.2 Blockschaltbild Die Verschaltung der einzelnen Komponenten mit der DAQ-Karte zeigt das folgende Blockschaltbild:

Bild 8: Blockschaltbild

Page 11: Fachbereich Informatik und Angewandte Naturwissenschaftenviuser/Links/Heberer_Schmelzer.pdf · 7.1 Genutzte Anschlüsse am Modul 1886DFC 7.2 Blockschaltbild 7.3 Umsetzung in LabVIEW

11

7.3 Umsetzung in LabVIEW

Bild 9: Front Panel des Radioprogramms

Bild 10: Teil des Programmcodes

Page 12: Fachbereich Informatik und Angewandte Naturwissenschaftenviuser/Links/Heberer_Schmelzer.pdf · 7.1 Genutzte Anschlüsse am Modul 1886DFC 7.2 Blockschaltbild 7.3 Umsetzung in LabVIEW

12

7.4 Programmmodule 7.4.1 Die Einstellung der Frequenz Die Frequenz wird über den Oszillatorausgang am Radiomodul und den Timer/Counter-Eingang an der I/O-Karte permanent gemessen und gegebenenfalls durch Vergrößern oder Verkleinern der Tuningspannung korrigiert. Diese Korrektur ist notwendig, da die Frequenz aufgrund einer Erwärmung des Moduls einen Drift aufweist. Auf dem Bildschirm ist durch das Leuchten der AFC-LED zu erkennen, zu welchem Zeitpunkt dieser Regelkreis aktiv ist, also die Frequenz korrigiert wird.

Messung:Istfrequenz fist

fus=fsoll-0,05MHzfos=fsoll+0,05MHz

fist > fos ?

UTun= UTun - 0,01V

fist < fus ?

UTun= UTun + 0,01V fus < fist < fos

nein

neinja

ja

Vorgabe:Sollfrequenz fsol

Tuningspannung UTunl

Bild 11: Programmablaufplan für die Automatische Frequenzkorrektur

Page 13: Fachbereich Informatik und Angewandte Naturwissenschaftenviuser/Links/Heberer_Schmelzer.pdf · 7.1 Genutzte Anschlüsse am Modul 1886DFC 7.2 Blockschaltbild 7.3 Umsetzung in LabVIEW

13

Bild 12: LabVIEW-Diagramm der Frequenzberechnung

Bild 13: LabVIEW-Diagramm der Frequenzkorrektur

Page 14: Fachbereich Informatik und Angewandte Naturwissenschaftenviuser/Links/Heberer_Schmelzer.pdf · 7.1 Genutzte Anschlüsse am Modul 1886DFC 7.2 Blockschaltbild 7.3 Umsetzung in LabVIEW

14

Approximation der Tuningspannung Die Änderung der Frequenz um einen größeren Wert, also z.B. beim Wechseln eines Senders, würde über diesen Regelkreis inakzeptabel lange dauern. Deshalb wurde in die Software eine weitere Regelung implementiert. Wenn die Istfrequenz stark von der Sollfrequenz abweicht, wird über eine Approximations-formel der entsprechende Wert der Tuningspannung für die gewünschte Frequenz ermittelt und eingestellt. Die Feineinstellung der Frequenz übernimmt daraufhin wieder der AFC-Regelkreis. Dazu wurde zunächst die Abhängigkeit der Frequenz von der Tuningspannung ermittelt.

Tuningspannung vs. Frequenz

y = 1,5E-13x6,7282

0

1

2

3

4

5

6

7

8

9

75 85 95 105 115Frequenz f [MHz]

Tuni

ngss

pann

ung

U [V

]

Bild 14: Approximationskurve Wie im Diagramm ersichtlich, besteht ein exponentieller Zusammenhang.

Bild 15: Die Berechnung der Tuningspannung über die Sollfrequenz

Page 15: Fachbereich Informatik und Angewandte Naturwissenschaftenviuser/Links/Heberer_Schmelzer.pdf · 7.1 Genutzte Anschlüsse am Modul 1886DFC 7.2 Blockschaltbild 7.3 Umsetzung in LabVIEW

15

7.4.2 Senderspeicher Des weiteren wurden in die Software 3 Senderspeicher implementiert. Das Speichern eines Senders erfolgt durch Anwahl des Memory- und anschließend des jeweiligen Speicher-Buttons. Das Abrufen der gespeicherten Senderfrequenzen erfolgt durch Anwahl der jeweiligen Speicher-Buttons.

Bild 16: Sender speichern

Bild 17: Sender abrufen

7.4.3 Messung der Frequenz und der Feldstärke Die Bestimmung der Frequenz erfolgt über einen Vorteiler (1:256) mit dem Timer/Counter-Eingang der Multi I/O-Karte. Anschließend wird das Offset von 10,7 MHz abgezogen. Die Feldstärke wird über den analogen Eingang eingelesen und über eine Mittelwertbildung auf der Programmoberfläche ausgegeben. Der entsprechende Programmcode ist in Bild 18 dargestellt.

Page 16: Fachbereich Informatik und Angewandte Naturwissenschaftenviuser/Links/Heberer_Schmelzer.pdf · 7.1 Genutzte Anschlüsse am Modul 1886DFC 7.2 Blockschaltbild 7.3 Umsetzung in LabVIEW

16

Bild 18: Frequenz- und Feldstärkemessung

Das SubVI FREQ STC übernimmt dabei die eigentliche Frequenzmessung. Dieses wurde aus der Softwarebibliothek von LabVIEW übernommen. 8. Ausblick und Schlussbemerkung Das Programm ließe sich natürlich noch um einige Funktionen erweitern. So wäre beispielsweise die Einbeziehung von File I/O-SubVI’s zur festen Abspeicherung von Senderspeichern ebenso wie eine von der Feldstärke abhängige zusätzliche Frequenznach-regelung wünschenswert. Darüber hinaus könnte das NF-Signal zurückgelesen und eine Decodierung des RDS-Signals realisiert werden. Durch die Möglichkeit, eine eigens gewählte Problemstellung zu bearbeiten, konnten wir die uns besonders interessierenden Bereiche des Produktes LabVIEW näher analysieren. Unsere Einschätzung bezüglich der Stärken und Schwächen des Programms ist unter Punkt 2.6 aufgeführt. In Hinsicht auf die große Verbreitung der Programmierumgebung LabVIEW™ in Forschung und Entwicklung erachten wir dieses Praktikum als wertvolle Ergänzung zum Fach Messtechnik und den zuvor im Studium kennen gelernten Entwicklungsumgebungen wie Agilent VEE™ und Testpoint™.

Page 17: Fachbereich Informatik und Angewandte Naturwissenschaftenviuser/Links/Heberer_Schmelzer.pdf · 7.1 Genutzte Anschlüsse am Modul 1886DFC 7.2 Blockschaltbild 7.3 Umsetzung in LabVIEW

17

9. Literaturangabe [1] National Instruments, LabVIEW Measurements Manual, 07/2000

[2] National Instruments, LabVIEW Grundlagenkurs, 10/1999

[3] National Instruments, DAQ 6023E/6024E/6025E User Manual, 12/2000

[4] Datenblatt zum Radio-Modul 1886DFC.

[5] Datenblatt zum Prescaler SDA4212.