Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der...

91
Funktionsgenerator in LabVIEW Daniel Ciaglia, Jan Nabbefeld 9. Juli 2002

Transcript of Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der...

Page 1: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

Funktionsgenerator in LabVIEW

Daniel Ciaglia, Jan Nabbefeld

9. Juli 2002

Page 2: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

© Copyright 2002 Jan Nabbefeld, Daniel Ciaglia

Die Verteilung dieses Dokuments in elektronischer oder gedruckter Form ist gestattet, solange seinInhalt einschließlich Autoren- und Copyright-Angabe unverändert bleibt und die Verteilung kostenloserfolgt, abgesehen von einer Gebühr für den Datenträger, den Kopiervorgang usw.

Die in dieser Publikation erwähnten Software- und Hardware-Bezeichnungen sind in den meisten Fäl-len auch eingetragene Warenzeichen und unterliegen als solche den gesetzlichen Bestimmungen.

Dieses Dokument wurde mit LATEX gesetzt. Es ist als Quelltext und im PDF-Format online erhältlich:

ftp://www.ti2000.de/pub/ti2000/4.Semester/PC-Mess/Belege/FGinLabVIEW/

Page 3: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

Zusammenfassung

Das Programm IMES, welches im Meßtechniklabor zum Einsatz kommt, soll in seiner Funktionalität derAnsteuerung eines Funktionsgenerators durch eine Applikation auf der Basis der ProgrammierspracheG ersetzt werden. Besonderer Wert wird auf die Vollständigkeit der Funktionen im Vergleich zu IMESgelegt.

Page 4: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

Inhaltsverzeichnis

1 Einleitung 3

1.1 IMES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 LabVIEW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Lösungskonzept 5

2.1 allgemeines Konzept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2 Funktionalität von IMES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.3 technische Voraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3.1 Der Funktionsgenerator PM5139 . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3.2 Das Oszilloskop PM3384 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.4 Funktionalität in FGinLabVIEW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.4.1 Allgemeine Vorstellungen und Grundlagen . . . . . . . . . . . . . . . . . . . . . 9

2.4.2 mathematische Grundausstattung . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.4.3 Speichern der Funktionsdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.4.4 Visualisierung der Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.4.5 Daten von externen Gräten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.4.6 zusätzliche Möglichkeiten der Datenerfassung . . . . . . . . . . . . . . . . . . . 13

3 Realisierung 14

3.1 allgemeiner Ansatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.2 Beschreibung wichtiger Programmodule . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.2.1 Zusammenspiel der Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.2.2 Globale Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.2.3 Die Speicherstellenverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.2.4 Das Main.vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.2.5 Modul - Daten Input / Output in FGinLabVIEW . . . . . . . . . . . . . . . . . . 20

3.2.6 Modul - Auslesen der Daten vom Oszilloskop . . . . . . . . . . . . . . . . . . . 22

3.2.7 Modul - Interpolation und Normalisierung der Signaldaten . . . . . . . . . . . . . 23

3.2.8 Modul - Speichern einzelner Signaleigenschaften . . . . . . . . . . . . . . . . . 24

3.2.9 Modul - Funktionswerte in Datei schreiben . . . . . . . . . . . . . . . . . . . . . 25

1

Page 5: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

INHALTSVERZEICHNIS 2

3.2.10 Modul - Funktionswerte aus Datei lesen . . . . . . . . . . . . . . . . . . . . . . 26

3.2.11 Modul - Report generieren und ausdrucken . . . . . . . . . . . . . . . . . . . . 27

3.2.12 Modul - ARB–Befehl erzeugen und speichern . . . . . . . . . . . . . . . . . . . 28

3.2.13 Modul - Signal an Funktionsgenerator übertragen . . . . . . . . . . . . . . . . . 29

3.3 Beschreibung der Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.3.1 Createur ’de Signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.3.2 A [+−∗/] B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.3.3 Basic Function Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.3.4 Functions on Ice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.3.5 Editors Digest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4 Auswertung 36

4.1 Auswertung der technischen Realisierung . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.2 Realisierung des Funktionsumfanges . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

5 Fazit 38

5.1 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

A Begriffsdefinitionen 39

B Module - Grafiken 40

C IMES Dokumentation 45

Page 6: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

Kapitel 1

Einleitung

In den Laboren der elektrischen und PC-Meßtechnik werden Bauteile und Schaltungen auf ihre Eigen-schaften untersucht. Hierfür werden Geräte wie Oszilloskope und Funktionsgeneratoren verwendet,um definierte (oder besser, charakteristische) Zustände zu erzeugen, manipulieren und darzustellen.Zur einfacheren Bearbeitung und Auswertung von Signalverläufen ist es sinnvoll Software einzusetzen,mit der man z.B. die Spektren und Ortskurven darstellen kann oder ein selbstdefiniertes Signal erzeugtund das Verhalten der Schaltungen untersucht.

Zur Zeit (Wintersemester 01/02) setzt der Fachbereich I der FHTW Berlin eine selbstentwickelteSoftware ein: IMES .

1.1 IMES

IMES ist eine für das Betriebssystem Microsoft Windows geschriebene Software. Sie wurde in der Pro-grammiersprache C realisiert und bietet dem Benutzer ein große Anzahl Möglichkeiten der Darstellungund Manipulation von Signalverläufen.

Mit IMES ist es möglich Signalverläufe aus einem Oszilloskop (hier: PM3384) auszulesen unddarzustellen. Diese Daten können dann manipuliert und wieder in die Schaltung gebracht werden(siehe hierzu [Pau], im Anhang ab Seite 45).

IMES hat leider einige Nachteile:

• Die verwendeten Geräte sind nach den Gegebenheiten in den Laboren des Fachbereiches festeinprogrammiert.

• Eine Erweiterung ist nur sehr schwer möglich, da man dazu den kompletten Quelltext lesen undverstehen müßte1.

• Die Bedienung der Software ist nicht intuitiv gelöst.• Es existiert keine Bediendokumentation2.

Auf der anderen Seite ist IMES sehr leistungsfähig, was die Möglichkeiten der Signalverarbeitungbetrifft.

Die Aufgabe der neu zu schreibenden Software ist es nun, die positiven Eigenschaften von IMES

1C ist zwar eine weit verbreitete, nichtsdestotrotz aber auch schwierige Sprache. Zitat aus dem Usenet: C ist ein men-schenlesbarer Aufsatz zu Assembler...

2Die im Anhang beigefügte Dokumentation wurde aus der Windows-Hilfe extrahiert und in das LATEX-Format gebracht

3

Page 7: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 1. EINLEITUNG 4

mit denen der Programmiersprache G zu verbinden und zu dokumentieren.

1.2 LabVIEW

G ist eine Programmiersprache der neuesten Generation3. Als IDE kommt LabVIEW zum Einsatz.Der Vorteil von G und LabVIEW ist der Datenfluß-orientierte Ansatz. Man programmiert grafisch undfolgt dabei dem Datenfluß um diesen zu manipulieren. Desweiteren ist die Erstellung einer grafischenBenutzeroberfläche eng mit der eigentlichen Programmierung der Softwarefunktionalität verbunden.LabVIEW ist auf die Bedürfnisse der Steuer- und Regelungstechnik ausgelegt und bringt viele Mo-dule mit, die den Programmierer in seiner Arbeit unterstützen. Hier sind besonders erwähnenswertdie Module zur Ansteuerung von Messgeräte über VISA-, GPIB- und RS–232 Schnittstellen sowie dieElemente zur Verarbeitung von erfaßten Daten, hier: mathematische Operationen wie Fouriertransfor-mationen und Darstellung in verschiedenen Koordinatensystemen und technischen Diagrammtypenwie z.B. Bodediagramm oder Ortskurven.Als programmiertechnischer Vorteil ist die Aufteilung in Module zu erwähnen. Diese können in denDatenfluß als eigene Icons eingefügt werden und wie Standardelemente ihre Aufgaben erfüllen. Damitist eine einfachere Erweiterbarkeit und Anpassbarkeit bei Vorhandensein des “Quelltextes” gegeben.

3Siehe auch: http://www.ni.com/labview

Page 8: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

Kapitel 2

Lösungskonzept

2.1 allgemeines Konzept

Um die Möglichkeiten des Funktionsgenerators sinnvoll ausnutzen zu können, sollte das Hauptaugen-merk auf die Kreation von speziellen Kurvenverläufen gelegt werden. D.h. zum einen, daß der Benutzerdie Möglichkeit hat, die Standardfunktionen1 des Funktionsgenerators möglichst leicht und komforta-bel zu erzeugen, als auch eine sinnvolle Signalerzeugung via ARB zu realisieren. Hierfür eignet sichLabVIEW besonders, da es ohne weiteres möglich ist Signalverläufe zu erzeugen, zu verändern undzu visualisieren.Unser Ziel ist es dabei dem Benutzer eine Vorabansicht seiner Signalkreation zu geben. Sollte diesesnicht seinen Vorstellungen entsprechen, muß es möglich sein das erzeugte Signal wieder zu verän-dern. Weiterhin soll die Möglichkeit der Speicherung der erzeugter Signalverläufe und ihrer Eigen-schaften geschaffen werden.

Die Funktionalität von IMES gilt es mit der neu geschriebenen Software weitestgehend abzudeckenbzw. ein späteres Einbinden fehlender Funktionalität zu ermöglichen. Dabei ist jede einzelne Funktionauf ihren Sinnhaftigkeit zu prüfen.

Um dieses Vorhaben zu verwirklichen haben wir zunächst einen Blick auf IMES geworfen unddessen Funktionalität zusammengefaßt.

2.2 Funktionalität von IMES

Im folgenden sind die Funktionalitäten von IMES aufgeführt, wie sie sich dem Benutzer in Bezugauf den Funktionsgenerator bieten und sie in den Laboren der Elektrischen Meßtechnik und der PC-Meßtechnik benötigt werden.

Standardfunktionen

Es können folgende Standardfunktionen erzeugt werden ([Pau], im Anhang Seite 46):

Delta Erzeugt einen Deltaimpuls.

1siehe dazu Standardfunktionen in 2.2

5

Page 9: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 2. LÖSUNGSKONZEPT 6

Sinus Erzeugt eine Sinusfunktion.Konstante Erzeugt eine konstante Funktion.ε-Funktion Erzeugt eine e-Funktion.Sägezahn Erzeugt eine Sägezahnfunktion.Dreieck Erzeugt eine Dreiecksfunktion.Rechteck Erzeugt eine Rechteckfunktion.Rauschen Erzeugt eine Rauschfunktion.

Tabelle 2.1: Standardfunktionen in IMES

Feldoperationen

IMES ist in der Lage arithmetische Grundfunktionen mit den gespeicherten Daten in den Feldern Aund B (Speicherstellen des Programms) auszuführen ([Pau], im Anhang Seite 48).

Addition Addiert Feld A und Feld B.Subtraktion Subtrahiert Feld B von Feld A.Multiplikation Multipliziert Feld A und Feld B.Division Dividiert Feld A durch Feld B.

Tabelle 2.2: arithmetische Grundfunktionen in IMES

Arithmetische Funktionen

IMES kann verschiedene arithmetische und höhere Operationen auf den gemessenen Daten ausfüh-ren. Dazu wird das Feld A benutzt ([Pau], im Anhang Seite 48ff).

konj. komplex Schreibt die konjugiert komplexe Funktion von FeldA nach Feld A.

∗ j Multipliziert die Daten in Feld A mit j.1/x Bildet den Kehrwert der Daten in Feld A.Negation Negiert die Werte in Feld A.

+k Addiert die Konstante k zu den Daten in Feld A.−k Subtrahiert die Konstante k von den Daten in Feld A.∗k Multipliziert die Daten in Feld A mit der Konstante k./k Dividiert die Daten in Feld A durch die Konstante k.logx Bildet den dekadischen Logarithmus der Daten in

Feld A.lnx Bildet den natürlichen Logarithmus der Daten in Feld

A.ld x Bildet den Logarithmus dualis der Daten in Feld A.20∗ logx Bildet den 20fachen dekadischen Logarithmus der

Daten in Feld A.

Page 10: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 2. LÖSUNGSKONZEPT 7

10x Potenziert die Daten in Feld A.εx Exponenziert die Daten in Feld A.2x Bildet 2 hoch x der Daten in Feld A.xk Bildet x hoch k der Daten in Feld A.kx Bildet k hoch x der Daten in Feld A.√

x Zieht die Wurzel aus den Daten in Feld A.x2 Quadriert die Daten in Feld A.

sinx Bildet den Sinus der Daten in Feld A.arcsinx Bildet den ArcusSinus der Daten in Feld A.cosx Bildet den Cosinus der Daten in Feld A.arccosx Bildet den ArcusCosinus der Daten in Feld A.tanx Bildet den Tangens der Daten in Feld A.arctanx Bildet den ArcusTangens der Daten in Feld A.

Tabelle 2.3: arithmetische Operationen in IMES

Operationen auf den Daten

IMES ist in der Lage komplexere Funktionen auf den Daten durchzuführen und darzustellen. Die fol-genden Operationen sind möglich ([Pau], im Anhang Seite 49).

Integration Integriert die Daten in Feld A.Differentiation Differenziert die Daten in Feld A.

FFT Führt die Fast Fourier Transformation mit den Datenin Feld A durch.

IFFT Führt die Inverse Fast Fourier Transformation mit denDaten in Feld A durch.

Faltung Führt die Faltung durch.Kreuzkorrelation Führt die Kreuzkorrelation durch.Autokorrelation Führt die Autokorrelation durch.

Bodediagramm Führt die Fast Fourier Transformation mit den Datenin Feld A durch und stellt sie logarithmisch dar.

Schmitt-Trigger Auf das Signal in Feld A wird ein Schmitt-Trigger an-gewendet.

Verteilungsfunktion Von der Funktion in Feld A wird die Verteilungsfunk-tion berechnet.

Tabelle 2.4: Operationen komplexere Funktionen in IMES

Darstellung der Daten

Die Signale können in verschiedener Art und Weise dargestellt werden ([Pau], im Anhang Seite 49).

Page 11: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 2. LÖSUNGSKONZEPT 8

Realteil Stellt den Realteil dar.Imaginärteil Stellt den Imaginärteil dar.Betrag Stellt den Betrag dar.Phase Stellt die Phase dar.

FeldA über FeldB Stellt Feld A über Feld B dar.Ortskurve Stellt die Ortskurve von Feld A dar.

Tabelle 2.5: Darstellung von Funktionen in IMES

2.3 technische Voraussetzungen

Um das Konzept für unsere Lösung zu erstellen werfen wir zunächst einen Blick auf die technischenEigenschaften der zu verwendenden Geräte.

2.3.1 Der Funktionsgenerator PM5139

Der für die Ansteuerung verwendete Funktionsgenerator verfügt über folgende fest vorkonfigurierteStandardsignalformen.

Signalform FrequenzbereichSinus 0,1 mHz – 20 MHzDreieck 0,1 mHz – 0,5 MHzRechteck 0,1 mHz – 20 MHzpositiver Puls 0,1 mHz – 20 MHznegativer Puls 0,1 mHz – 20 MHzpositiver Sägezahn 0,1 mHz – 50 kHznegativer Sägezahn 0,1 mHz – 50 kHzHaversine 0,1 mHz – 50 kHzSinuspuls 0,1 mHz – 50 kHzDreickpuls 0,1 mHz – 50 kHz

Tabelle 2.6: Standardsignalformen des PM5139

Außerdem stehen dem PM5139 noch 24 programmierbare ARB Speicherplätze zur Verfügung. Indiese Speicherplätze können zu den 1024 X-Werten die der Funktionsgenerator zur Verfügung stellt,die entsprechenden Y-Werte eingelesen werden. Die Y-Werte können sich im Bereich von−511. . .0. . .+511befinden. Der Frequenzbereich solcher programmierbaren Signalformen liegt bei 0,1 mHz bis 20kHz bei einer maximalen Abtastrate von 20,48 MS/s.Die maximale Ausgangsamplitude Spitze-Spitze errechnet sich somit wie folgt:

Ymax−Ymin

1022·20V

Page 12: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 2. LÖSUNGSKONZEPT 9

Die Übertragung der Daten erfolgt mit einem PC über die IEEE-488 oder RS-232 Schnittstelle. Hierfürstehen ein Vielzahl von Befehlen zur Verfügung2.

2.3.2 Das Oszilloskop PM3384

Da wir dem Benutzer auch die Möglichkeit geben wollen, existierende Signale vom Oszilloskop zubearbeiten, wird der oben genannte Typ als Quelle dienen.Dieses Gerät läßt sich wie auch der Funktionsgenerator über die IEEE-488 Schnittstelle ansprechen.Vorrangig interessieren uns hier die Werte der Y-Achse der Funktion und Kurveneigenschaften die fürdie weitere Bearbeitung des Signals wichtig sind. Dazu gehören vor allem Frequenz und Amplitude.

2.4 Funktionalität in FGinLabVIEW

Wie oben bereits erwähnt, soll unser Programm IMES ersetzen. Das bedeutet, daß möglichst alleOptionen, die der Funktionsgenerator bietet über diese Software steuerbar seien sollen.

2.4.1 Allgemeine Vorstellungen und Grundlagen

Grundsätzlich kann man zwei Betriebsmodie des Funktionsgenerator unterscheiden. Zum Ersten kannder Funktionsgenerator ganz normale Standardfunktion erzeugen. Diese sollten sich ohne viel Mühein unserem Programm verwirklichen lassen, da für die Erzeugung letztlich nur wenige Eigenschaftenanzugeben sind, aus dennen sich das resultierende Signal zusammensetzt.

Der weitaus interessantere Modus ist die ARB Programmierung. Hier sollte die Möglichkeit der ge-zielten Beeinflussung des Signalverlaufs und seiner Eigenschaften gegeben werden.Wie ist das genau zu verstehen?

Nehmen wir an wir möchten ein Signal erzeugen, daß den Ausgangszustand einer digitalen Schal-tung kennzeichnet. Dabei wollen wir auch Glitches und Rauschen berücksichtigen. Es sollte also eineMöglichkeit geben den Signalverlauf fast Punktgenau zu steuern und sich wiederholende Passagenvia Copy-Paste-Verfahren erneut einzufügen.

Was braucht man nun genau um ein solches Vorhaben zu realisieren?

2.4.2 mathematische Grundausstattung

Zunächst benötigt man eine Grundausstattung an mathematischen Funktionen:

• Sinus- / Cosinusfunktion

• Dreieckfunktionen

• aufsteigende / fallende Flanken

• Rechteckfunktionen

2siehe dazu auch im Abschnitt 2.4.3.1 oder in [PM591, Abschnitt 3, Seite 44ff]

Page 13: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 2. LÖSUNGSKONZEPT 10

• Rauschen

• e-Funktion

Diese sollten als Ausgangspunkt zum Zusammenbauen einer eigenen Funktionskurve zur Verfü-gung stehen. Teile dieser Kurvenarten sollten sich aneinander setzen lassen. Auch die Eigenschaftenmüssen flexibel sein. D.h. Frequenz, Amplitude und Phase der jeweiligen Funktion dürfen nicht statischsein. Es muß sich ein Gleichspannung Offset hinzufügen lassen. Die Anzahl der Perioden sollte manverändern können.

Grundlegend ist weiterhin, daß sich die verschiedenen Signale addieren, subtrieren, multiplizierenund dividieren lassen.Zusätzlich dazu wäre es natürlich schön wenn sich arithmetische Operationen an den Kurven vorneh-men lassen würden. Denkbar wären hier:

• Bildung des Reziprokes

• Negation der Werte der Funktion

• logarithmische Operationen wie lnx, logx, ld x und 20· logx

• trigonometrische Operationen sinx, cosx, arcsinx, arccosx, tanx, arctanx

• Zusätzlich noch x2 und√

x wobei letzteres nur bedingt sinnvoll ist

Exponentiale Arithmetik erscheint überflüssig, da die Werte vor dem Senden an den Funktionsge-nerator normiert werden und damit der eigentliche Wert der Zahlen verloren geht.

2.4.3 Speichern der Funktionsdaten

Ganz klar will man seine Kurvenkreation auch etwas dauerhafter gestalten. Naheliegend ist das Ab-speichern der Daten in eine Datei.Um die richtige Art der Datensicherung zu finden werfen wir vorher einen Blick auf den PM 5139.Der Funktionsgenerator kann einige Grundfunktionen selbst erzeugen (Sinus, Dreieck, Rechteck etc.).Hierfür werden eigene Befehle verwendet. Das folgende Beispiel erzeugt eine Sinusfunktion mit einerFrequenz von 150kHz und einer Amplitude von 4,5V:

FREQ 150E3;SINE;AMPLT 4.5

Das bedeutet hier wäre das Speichern der Eigenschaften der Funktion mit wenigen Zahlen getan.Signalform, Amplitude, Frequenz und zusätzlich vielleicht noch Phase und DC Offset. Das ist alles.

2.4.3.1 Grundlagen für die Programmierung der ARB-Speicherplätze

Der Funktionsgenerator kann eine ARB-Funktion mit einer Genauigkeit von 1024 Punkten auf der x-Achse und (+/-) 511 Punkten auf der y-Achse speichern.Dabei besteht er nicht auf einer vollständig beschriebenen Funktion (alle 1024 Datenpunkte), sonderner interpretiert alle Punkte als Endpunkte einer geraden Linie. Nicht gesetzte Funktionswerte werden

Page 14: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 2. LÖSUNGSKONZEPT 11

als 0 gewertet. Gibt man ihm mit dem Befehl CNT eine Schrittweite vor, so läßt sich eine Sägezahn-funktion mit dem folgenden Code programmieren 3:

CNT 25DATA 8,-511,-400,-511,-400,-511,-400,-511,-400

Es gibt hier mehre mögliche Herangehensweisen um die Daten selbsterzeugter ARB-Funktionenzu speichern.

2.4.3.2 Datenformate für die Speicherung von ARB-Funktionen

Verwendung von Befehlsketten

Vorteil:

• Die Befehle, wie sie auch an den Funktionsgenerator gesendet werden, bräuchten nicht mehrkonvertiert (zum Versenden aufbereitet) werden.

• Geringer Speicherbedarf. Die Funktionen sind hier sehr weit abstrahiert.

Nachteil:

• Es lassen sich nur eine begrenzte Anzahl von Funktionen auf dieses Format zurückführen. DieFunktionen dürfen keinerlei Freiformbestandteile haben.

• Zum Darstellen der Funktion auf dem Bildschirm muß ein Importfilter, ähnlich dem Funktionsge-nerator selbst, vorgeschaltet werden um die einzelnen Bildpunkte zu berechnen.

Speichern aller Funktionsdaten

Vorteil:

• Die Daten können ohne Umwandlung direkt auf dem Bildschirm dargestellt werden.• Die Daten können mit geringer Vorarbeit auf den Funktionsgenerator geschrieben werden (es

müssen die Kommata hinzugefügt werden).• Alle beliebigen Funktionen sind darstellbar.

Nachteil:

• Hoher Speicherbedarf, da alle 1024 Punkte geschrieben werden müssen.• Ineffizient, für geradlinige Formen werden die gleiche Menge an Punkten gespeichert wie für

Freie Formen.

Mischform

Als Speicherformat wird eine Mischung aus den Befehlsketten und der Speicherung aller Funkti-onsdaten benutzt. Dies bedeutet, daß wir einen intelligenten Parser zwischen die Speicherung und dieBildschirmdarstellung setzen, der erkennt wenn mehrere Daten auf der selben y-Koordinate liegen.

Vorteil:

• Mischung aus effizientem und ineffizientem Verfahren.• Etwas weniger Speicherbedarf als eine reine Punktspeicherung.

Nachteil:

• Erhöhter Programmieraufwand.

3Für ein genaueres Beispiel bitte in [PM591, Abschnitt 3, Seite 50] nachsehen

Page 15: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 2. LÖSUNGSKONZEPT 12

• Es läßt sich nicht abschätzen inwieweit wirklich Speicherplatz gespart wird, da der Anteil anwaagerechten Funktionsbestandteilen eher gering ist.

Schlußfolgerung

Da es sich nicht abschätzen läßt wie groß der wirkliche Speicherplatzgewinn der Methode 3 ist,greifen wir auf eine Speicherung aller Funktionswerte zurück. Diese läßt sich am einfachsten Pro-grammtechnisch realisieren und kann ohne Probleme auf dem Bildschirm dargestellt werden.Desweiteren werden die Funktionswerte normiert. D.h. Die Werte liegen im Y-Bereich zwischen -511und +511.

Die Daten einer ARB-Funktion werden in einer Plaintext-Datei gespeichert und enthalten folgendeFelder:

creator Name des Funktionserstellersdate Das Datum der Erstellungtime Erstellungszeitcomment Kurze Erläuterungfreq Die Frequenz der Funktionamplitude Die Amplitude der Funktionfct1...fct1024 Die eigentliche Funktion.

Beispiel:

[Section 1]creator=Daniel Ciagliadate=06.06.2002time=13:49:43comment="Beispieldatei. Es soll ein kurzer Ausschnitt gezeigt werden."[Section 2]freq=120amplitude=12fct=213;214;215;216...

2.4.4 Visualisierung der Daten

Für die Auswertung eines Versuchen im Messtechniklabor ist es nötig die erzeugte Funktion zu visua-lisieren. Deshalb werden wir um ein ausdrucken der Funktion nicht herumkommen.Entscheidende Punkte dafür sind die Eigenschaften der Funktion. Es sollte also folgendes zu Papiergebracht werden können:

• Der Graph der Funktion• maximale Amplitude, Frequenz, Phase und Offset• Autor, Erstellungsdatum und Zeit sowie ein Kommentar des Autors

Ein weiterer entscheidender Punkt ist die Frage wie man an die Daten der Funktionen gelangt, dieman nicht von Grund auf neu erstellen will. Also z.B. von Messkurven die sich aus Versuchsaufbautenergeben.

Page 16: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 2. LÖSUNGSKONZEPT 13

2.4.5 Daten von externen Gräten

Die naheliegendste Lösung ist hier dem Vorbild von IMES zu folgen und die Daten der Messkurven vomOszilloskop einzulesen. Auch hier wird es nötig sein nicht nur die Punkte der Messkurve aufzunehmen,sondern auch Kurveneigenschaften zu ermitteln. Dazu wird zu klären sein welche Möglichkeiten dasOszilloskop zur Datenabfrage liefert.

2.4.6 zusätzliche Möglichkeiten der Datenerfassung

Die simpelste Methode um Kurvenverläufe zu erzeugen ist das eingeben der Y-Werte einer Funktionvon Hand. Dafür gibt es eigentlich keine Grenze was die Anzahl der einzugebenden Daten betrifft.Sicherlich ist es aber nicht sinnvoll mehr als 1024 Werte einzugeben, da deren Anzahl vor der Über-tragung auf den oben genannten Wert normiert werden müßte.Wir werden eine solche Möglichkeit zu Verfügung stellen.

Page 17: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

Kapitel 3

Realisierung

3.1 allgemeiner Ansatz

Wie im Konzept angekündigt und wie auch der Name verrät, wurde unsere Funktionsgeneratoran-steuerung in LabVIEW realisiert. Hierfür kam LabVIEW 6i Version 6.0.2 zum Einsatz. Teilweise wurdedafür die Vollversion, wie sie im Messtechniklabor der FHTW-Berlin1 installiert ist, für Microsoft Win-dows 95 zum Einsatz. Teilweise wurde auf die Evaluation Version 6.0.2 für Linux benutzt.Prinzipiell ist das Ergebnis unserer Bemühungen unter beiden Betriebssystemen lauffähig. Nach demheutigen Stand der Dinge2 können die Reportfunktionen die Version 6.0.2 bietet, also vorallem dasDrucken von erstellten Signalformen, nur unter Microsoft Windows eingesetzt werden. Dies führt leiderdazu, daß das Programm unter Linux seinen Dienst versagt. Wie diese Inkompatibilität zu beseitigenist, wird im Abschnitt 3.2.11 näher erklärt.

FGinLabVIEW ist modular aufgebaut. D.h. es existieren neben dem Haupt-Vi noch zahlreiche Sub-Vi’s, die kleinere Aufgaben übernehmen. Diese Sub-Vi’s können ihrerseits wieder Sub-Vi’s enthalten.

Alle Funktionen werden zentral aus einem Haupt–VI aufgerufen. Außer diesem besitzt nur nochdas Funktionenmodul (Abschnitt 3.3 auf Seite 30 ) eine Oberfläche.

1http://www.fhtw-berlin.de bzw. http://www.f1.fhtw-berlin.de2Juli 2002

14

Page 18: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 3. REALISIERUNG 15

3.2 Beschreibung wichtiger Programmodule

Hierbei handelt es sich um eine nähere Erläuterung einzelner Programmteile, die für die Funktionswei-se des Programms von Bedeutung sind.

3.2.1 Zusammenspiel der Module

In der Grafik 3.1 auf Seite 16 ist die Hierarchie der Module aufgezeigt.

Page 19: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 3. REALISIERUNG 16

Abbildung 3.1: VI–Hierarchie1 arb_befehl_bauen_SUB.vi2 init_speicherstellen.vi3 speicherstellen_verwaltung_SUB.vi4 building_function_ansatz.vi5 daten_io_SUB.vi6 Gene_report.vi7 arb_glb.vi8 visa_befehl_senden_SUB.vi9 oszi_auslesen_SUB.vi10 write_file_SUB.vi11 read_file_SUB.vi12 Interpolation_und_normalisierung_SUB.vi13 fehlerspeicher_SUB.vi14 read_oder_write_einzelner_teile_aktuelle_speicherstelle_SUB.vi15 speicherstellen_glb.vi

Page 20: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 3. REALISIERUNG 17

3.2.2 Globale Variablen

Jede der 10 Speicherstellen und die aktuelle Speicherstelle sind globale Variablen. Diese Lösung gibtuns die Möglichkeit, von jedem Teil unseres Programms auf die Speicherstellen zuzugreifen. Bei deneinzelnen Speicherstellen handelt es sich um Cluster. Jeder Cluster besteht aus einem 1 D-Array, ausDouble-Zahlen und aus Strings.

Die Speicherstelle 1–10 inklusive der aktuelle Speicherstelle werden beim Programmstart mit NULLinitialisiert. Diese Aufgabe übernimmt init_speicherstellen.vi.

Eine weitere globale Variable ist die zum speichern der Fehlermeldungen. Um uns eine aufwen-dige Fehlerbehandlung zu sparen, wird der “Error out”, soweit vorhanden, auf diese globale Variableumgelenkt. Die Variable wird ebenfalls beim Programmstart mit NULL initialisiert.Da es sich bei den Fehleraus-/eingängen in LabVIEW immer um Cluster handelt, besteht diese Varia-ble aus drei Teilen. Boolean, Integer und String.Der Inhalt dieses Clusters kann mittels eines True/False Resetbuttons wieder auf NULL zurückgesetztwerden.

Beide Variablentypen sind in Abbildung B.1 auf Seite 41 abgebildet.

Als letztes ist noch die globale Variable für die Speicherung des zusammengesetzten ARB-BefehlsARB_Kommando zu nennen. Diese besteht nur aus einem String und wird im Sub-Vi arb_befehl-_bauen_SUB.vi gesetzt. Im main.vi wird der gespeicherte String dann an visa_befehl_senden-_SUB.vi übergeben, welches ihn auf den Funktionsgenerator überträgt.

3.2.2.1 Implementation

Die Variablen Speicherstelle 1–10, aktuelle Speicherstelle und Dieser Fehler wurde Ihnen präsentiertvon NI sind in der Datei speicherstellen_glb.vi implementiert.Die Variablen ARB_Kommando ist in arb_glb.vi implementiert.

Page 21: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 3. REALISIERUNG 18

3.2.3 Die Speicherstellenverwaltung

3.2.3.1 Schnittstellen

Eingang Datentyp Ausgang DatentypQueue Queue outgoing Cluster ClusterNumber Integer Queue error out Clusterincoming Cluster ClusterQueue error in Cluster

3.2.3.2 Funktionsweise

Dieses Modul ist für die Verwaltung der 10 zur Verfügung stehenden Speicherplätze zuständig. SeineHauptaufgabe besteht darin, den Wechsel zwischen den einzelnen Speicherstellen zu ermöglichen.

Eine Kopie der gewählten Speicherstelle befindet sich immer in der globalen Variable aktuelle Spei-cherstelle. Wechselt der Benutzer zwischen den Speicherstellen hin und her, muß eine Aktualisierungder aktuelle Speicherstelle stattfinden.Um dies zu erreichen wird die jeweils vorher aktive Speicherstellennummer in eine Queue zwischen-gespeichert. Was genau passiert nun in diesem SubVI:

1. Der Inhalt der Variablen aktuelle Speicherstelle wird in die Speicherstellennummer, die sich imQueue befindet, geschrieben. Nummer für den Case ist die Zahl im Queue.

2. Der Inhalt der Speicherstelle die nun aktiv ist wird in die aktuelle Speicherstelle kopiert. Nummerfür den Case ist die Nummer des aktuell gewählten Speicherplatzes.

Diese beiden Vorgänge spielen sich nacheinander ab, d.h. sie liegen in einer Sequenz.Am Eingang (zum Lesen) und am Ausgang (zum Schreiben) des SubVi’s hängt jeweils die Variableaktuelle Speicherstelle. Wird in einem anderen Sub-Vi der Inhalt der Speicherstellen verändert, oh-ne das die Aktualisierung im main.vi stattgefunden hat, muß der Inhalt der im main.vi gewähltenSpeicherstelle (der jetzt möglicherweise verändert ist) wieder in die aktuelle Speicherstelle übertragenwerden3.Wird aus dem Sub-Vi building_funktion_ansatz.vi nach main.vi zurück gewechselt, wird derInhalt von aktuelle Speicherstelle mit der zugehörigen Speicherstellenvariable aktualisiert. Dies ist not-wendig, da sich die Signaldaten mit großer Wahrscheinlichkeit geändert haben. Der Inhalt von aktuelleSpeicherstelle darf hier nicht in die jeweilige Speicherstellen Variable geschrieben werden.

3.2.3.3 Implementation

Diese Funktion ist in der Datei speicherstellen_verwaltung_SUB.vi implementiert und wird immain.vi gesteuert.

3Implementation im main.vi ist in Abbildung B.3 auf Seite 43 zu sehen

Page 22: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 3. REALISIERUNG 19

3.2.4 Das Main.vi

Das main.vi ist sozusagen die Steuerzentrale von FGinLabVIEW . Hier laufen nicht nur alle Infor-mationen aus den diversen Sub-Vi’s zusammen, hier wird auch die Oberfläche des Hauptprogrammserzeugt, sowie alle Signalformen angezeigt.

3.2.4.1 Allgemeiner Aufbau

Generell ist das main.vi folgendermaßen aufgebaut:

• Eine Sequenz mit 3 Frames. Das erste Frame enthält die gesamte Initialisierung. Die Variablenwerden zurückgesetzt und die Queue wird angelegt und mit dem Wert 1 für die Speicherstelle1 vorbelegt. Das zweite Frame enthält eine While-Schleife die sich alle 150 ms wiederholt. Diesgeschieht solange bis der “Verlassen” Button gedrückt wird. In dieser Schleife liegt die Haupt-funktionalität des Programms. In ihr enthalten sind:

– Vier Cases mit denen der Bildschirmaufbau gesteuert wird und die einzelnen Programmo-dule untergebracht sind. Mit diesen werden die jeweiligen Programmfunktionen bereitge-stellt.

– Eine Sequenz mit 3 Frames. In diesen Frames werden:

1. Speicherstellen verwaltet und aktualisiert4.

2. Die Änderungen die der Benutzer in den Clustern “Daten von Hand Anzeige” und “Da-ten von Oszi holen Anzeige” verändert hat, werden in dem Modul daten_io_SUB.viumgesetzt.

3. Die Daten in der jeweils aktiven Speicherstelle werde zur Anzeige gebracht.

– Hier befinden sich die Cluster für die Anzeigen.

– Die Zeitmessung für die Wiederholung der While-Schleife.

– Die Steuerung der Waveform-Anzeige. Hier wird via Property Node, die Eigenschaften “X-/Y-Scale, Scale Fit” gesetzt.

• Im letzte Frame geschieht nichts weiter als das die Queue zerstört wird.

3.2.4.2 Steuerung des Bildschirmaufbaus

Ein Großteil der Bedienelemente, die auf dem Bildschirm zu sehen sind, sind Cluster bestehend ausControls. Diesen Clustern sind Property Nodes zugewiesen über die der jeweilige Cluster sichtbarbzw. unsichtbar gemacht wird5. Jedem Button im Benutzerinterface ist ein Intergerwert zu gewiesen,der mittels eines Case die entsprechenden Bildschirmteile einschaltet und andere gleichzeitig wiederdeaktiviert.

4wie es funktioniert ist in Abbschnitt 3.2.3 auf Seite 18 erklärt5Beispiel ist in Abbildung B.2 auf Seite 42 zu sehen

Page 23: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 3. REALISIERUNG 20

3.2.5 Modul - Daten Input / Output in FGinLabVIEW

Wie kommen denn nun die Daten in FGinLabVIEW hinein und wieder heraus?Grundsätzlich gibt es vier verschiedene Möglichkeiten des Datenaustausches:

1. Daten in Datei schreiben6

2. Daten aus Datei auslesen7

3. Daten von Hand eingeben4. Daten vom Oszilloskop auslesen

Die Auswahl des jeweiligen Cases in daten_io_SUB.vi ist hier genauso gelöst wie im main.vi8

Für die oben genannten Möglichkeiten des Datenausstausches wurde jeweils ein Fall zur Verfügunggestellt.

3.2.5.1 Schnittstellen

Eingang Datentyp Ausgang DatentypFehlereingang Cluster Fehlerausgang ClusterDaten von Hand Anzeige ClusterDaten vom Oszi holen An-zeige

Cluster

3.2.5.2 Daten von Hand eingeben

Die von Hand eingegebenen Daten werden aus dem Cluster Daten von Hand Anzeige übernommen.In LabVIEW gibt es die Funktion Get Date/Time String, welche die Systemzeit zurückgibt. Damit wer-den Datum und Uhrzeit den Signaleigenschaften hinzugefügt.Da die von Hand eingegebenen Daten in Form eines Strings vorliegen, müssen sie vor dem Speichernin Double Zahlen umgewandelt werden. Anschließend wird aus allen Einzelteilen ein Cluster zusam-mengebaut und dieser in die Variable aktuelle Speicherstelle geschrieben. Damit werden sie beimnächsten Durchlauf der While-Schleife im main.vi in die jeweilige Speicherstelle geschrieben.

3.2.5.3 Daten vom Oszilloskop auslesen

Da IMES die Möglichkeit bietet, Daten vom Oszilloskop zu übernehmen, kamen wir um dieses Featurenicht herum.Leider lassen sich die Daten vom PM 3384 nicht so einfach abfragen, wie sie sich auf den Funktions-generator PM5139 übertragen lassen. Auch hier führt der Weg über die IEEE 488 Schnittstelle. DieHerangehensweise war dieselbe wie schon beim Funktionsgenerator . Es wird eine VISA-Verbindungzum Oszilloskop mit der Funktion “VISA open” hergestellt. Dafür muß ein VISA resource name gewähltwerden.Mit dem *CLS Befehl wird der Status zurückgesetzt. Tritt dabei kein Fehler auf wird das Sub-Vi oszi-_auslesen_SUB.vi aufgerufen, welches die Abfrage der Signaleigenschaften übernimmt. Wie diesesVi genau arbeitet wird im Abschnitt 3.2.6 auf Seite 22 beschrieben. Sind die Daten aus dem Oszillo-skop in die aktuelle Speicherstelle übertragen, wird die Verbindung mittels der Funktion “VISA close”

6Beschreibung in Abschnitt 3.2.9 auf Seite 257Beschreibung in Abschnitt 3.2.10 auf Seite 268siehe dazu Abbschnitt 3.2.4 auf Seite 19

Page 24: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 3. REALISIERUNG 21

zurückgesetzt.Der Fehlerausgang der VISA-Verbindung wird aus dem Vi zurückgegeben. Sollte ein Fehler aufgetre-ten sein, wird dieser durch fehlerspeicher_SUB.vi gespeichert und im main.vi angezeigt.

3.2.5.4 Implementation

Alle oben aufgeführten Input / Output Möglichkeiten sind in daten_io_SUB.vi zusammengefaßt.

Page 25: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 3. REALISIERUNG 22

3.2.6 Modul - Auslesen der Daten vom Oszilloskop

3.2.6.1 Schnittstellen

Eingang Datentyp Ausgang DatentypFehlereingang Cluster Fehlerausgang ClusterVISA resource name I/O VISA resource name I/OKanal Integer

3.2.6.2 Funktionsweise

Dieses Vi läßt sich in mehre grobe Abschnitte unterteilen. Eine Abbildung befindet sich im AbschnittB.4 auf Seite 44 .

Abschnitt 1 Hier wird der Grundbefehl, abhängig vom gewählten Kanal, für das Oszilloskop zusam-mengebaut. Der Integerwert für Kanal wählt den jeweiligen Case aus.

Abschnitt 2 Hier wird eine Reihe von Befehlen an das Oszilloskop gesendet und die Antwort abge-wartet. Abgefragt werden:

1. Die Funktionsdaten (Y-Werte) des Signals2. Die Amplitude des Signals3. Die Frequenz des Signals

Alle abgefragten Daten liegen nach der Übertragung in Form eines Strings vor. Amplitude undFrequenz werden mittels der LabVIEW Funktion “Fract/Exp String To Number” in Double Zahlenumgewandelt. Die Umwandlung der Funktionswerte erfolgt im Abschnitt 3.

Abschnitt 3 Die Funktionswerte des Signals werden vom Oszilloskop als binärer String zurück ge-geben. D.h. sie müssen noch in ein brauchbares Format umgewandelt werden. Hierfür wurdenTeile des Gerätetreibers FLPM3394 Read Waveform benutzt. Amplitude und Frequenz werdendiesem Teil, durch Auslesen vom Oszilloskop, zur Verfügung gestellt.Interessant waren für uns nur die Funktionsdaten in Form eines Arrays. Die “Bundle Funktion”haben wir beibehalten. Hier könnte man später noch anknüpfen.

Abschnitt 4 bringt die Daten in ein Funktionsgenerator gefälliges Format9 und speichert sie in der ak-tuellen Speicherstelle10. Zusätzlich werden die Eigenschaften Zeit und Datum mit der Systemzeitgesetzt.

3.2.6.3 Implementation

Diese Funktion ist in der Datei oszi_auslesen_SUB.vi implementiert.

Aus ihr werden die Funktionen interpolation_und_polarisierung_SUB.viund read_oder_write_einzelne_teile_aktuelle_speicherstelle_SUB.vi aufgerufen.oszi_auslese_SUB.vi wird von daten_io_SUB.vi aufgerufen.

9Beschreibung in Abschnitt 3.2.7 auf Seite 2310Beschreibung in Abschnitt 3.2.8 auf Seite 24

Page 26: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 3. REALISIERUNG 23

3.2.7 Modul - Interpolation und Normalisierung der Signaldaten

3.2.7.1 Schnittstellen

Eingang Datentyp Ausgang DatentypData in 1-D Array normiert + interpoliert 1-D ArraySamples Integer nicht normiert 1-D Array

3.2.7.2 Funktionsweise

Der eingehende Array wird mittels der LabVIEW Funktion “Arbitrary Wave” auf 1024 Samples genormt.Dabei wird linear interpoliert. Der resultierende Array muß nun noch auf +/- 511 normiert werden. Dafürwird zunächst das Minimum und das Maximum der Funktion ermittelt. Von beide Zahlenwerten wird derBetrag gebildet. Auf den dann jeweils größeren Wert wird das Signal nach folgender Formel normiert.

Wert∗511Maximum bzw. Minimum

= normierter Wert

Der resultierende Array liegt dann am Ausgang “normiert + interpoliert” an. Alternativ können die Datenauch nicht normiert abgefragt werden. In diesem Fall muß am Ausgang “nicht normiert” abgegriffenwerden.

3.2.7.3 Implementation

Diese Funktion ist in der Datei Interpolation_und_normalisierung_SUB.vi implementiert.

Page 27: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 3. REALISIERUNG 24

3.2.8 Modul - Speichern einzelner Signaleigenschaften

Mit diesem Sub-Vi ist es möglich, einzelne Signaleigenschaften auszulesen oder zu beschreiben. Da-mit entfällt das Zusammensetzen eines ganzen Clusters, um einzelne Eigenschaften zu setzen oderauszulesen.

3.2.8.1 Schnittstellen

Eingang Datentyp Ausgang DatentypData 1-D Array Data out 1-D ArrayCreator String Creator out StringDate String Date out StringComment String Comment out StringTime String Time out StringAmplitude Double Amplitude out DoubleFrequenz Double Frequenz out Doublelesen/schreiben Boolean

3.2.8.2 Funktionsweise

Mit dem True/false Eingang des Vi’s kann zwischen den Modi umgeschaltet werden. True bedeutetlesen aus der Speicherstelle, false bedeutet die Speicherstelle beschreiben.

3.2.8.3 Implementation

Diese Funktion ist in der Dateiread_oder_write_einzelne_Teile_aktuelle_Speicherstelle_SUB.vi implementiert.Sie wird in oszi_auslesen_SUB.vi, Gene_report.vi und in main.vi aufgerufen.

Page 28: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 3. REALISIERUNG 25

3.2.9 Modul - Funktionswerte in Datei schreiben

Dieses Modul speichert erzeugte Funktionen mitsamt ihrer Eigenschaften in einer Datei ab.Diese Datei ist eine Plaintext-Datei und kann mit jedem Editor bearbeitet werden11.

3.2.9.1 Schnittstellen

Eingang Datentyp Ausgang DatentypErsteller StringDatum StringZeit StringKommentar StringFrequenz DoubleAmplitude DoubleDatenarray Array

3.2.9.2 Implementation

Diese Funktion ist in der Datei write_file_SUB.vi implementiert.

write_file_SUB.vi wird von daten_io_SUB.vi aufgerufen.

11 Siehe dazu Abschnitt 2.4.3 auf Seite 10

Page 29: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 3. REALISIERUNG 26

3.2.10 Modul - Funktionswerte aus Datei lesen

Dieses Modul liest gespeicherte Funktionen aus einer Plaintext-Datei ein12.

3.2.10.1 Schnittstellen

Eingang Datentyp Ausgang DatentypErsteller StringDatum StringZeit StringKommentar StringFrequenz DoubleAmplitude DoubleDatenarray Array

3.2.10.2 Implementation

Diese Funktion ist in der Datei read_file_SUB.vi implementiert.

read_file_SUB.vi wird von daten_io_SUB.vi aufgerufen.

12 Zum Aufbau der Datei bitte in Abschnitt 2.4.3 auf Seite 10 nachsehen

Page 30: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 3. REALISIERUNG 27

3.2.11 Modul - Report generieren und ausdrucken

Gene_report.vi übernimmt eine Funktion und generiert daraus eine Seite, die an den im System alsStandard eingestellten Drucker gesendet wird.

Es werden alle bekannten Eigenschaften mit ausgegeben (Ersteller, Frequenz, Kommentar etc.)sowie eine grafische Darstellung des Kurvenverlaufs erzeugt. Desweiteren werden markante Punktedes Kurvenverlaufs bestimmt und mit Ausgegeben (0–Durchgänge, Maxima und Minima).

Diese Funktionalität steht nur unter Microsoft Windows zur Verfügung, da LabVIEW zur Generie-rung eine ActiveX Schnittstelle benutzt. Das Aufrufen des Sub-Vi’s muß aus dem main.vi entferntwerden.

3.2.11.1 Schnittstellen

Eingang Datentyp Ausgang DatentypErsteller StringDatum StringZeit StringKommentar StringFrequenz DoubleAmplitude DoubleDatenarray Array

3.2.11.2 Implementation

Diese Funktion ist in der Datei Gene_report.vi implementiert.

Gene_report.vi wird von main.vi aufgerufen.

Page 31: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 3. REALISIERUNG 28

3.2.12 Modul - ARB–Befehl erzeugen und speichern

Dieses Modul liest aus der aktuellen Speicherstelle alle für eine ARB–Funktion wichtigen Daten ausund generiert einen Befehl, der an den Funktionsgenerator gesendet wird.

3.2.12.1 Schnittstellen

Eingang Datentyp Ausgang Datentypspeicherstelle Integer ARB–Kommando String

3.2.12.2 Implementation

Diese Funktion ist in der Datei arb_befehl_bauen_SUB.vi implementiert.

arb_befehl_bauen.vi wird von main.vi aufgerufen.

Intern wird auf die globalen Speicherstellen (hier: die aktuelle Speicherstelle) zurückgegriffen, umdie Funktionswerte und Eigenschaften in einen Befehlsstring umzusetzen.

Page 32: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 3. REALISIERUNG 29

3.2.13 Modul - Signal an Funktionsgenerator übertragen

Um die erschaffenen Signale an den Funktionsgenerator zu übertragen, wurden von uns mehrere Pro-grammteile programmiert. Der erste ist das Zusammenbauen des ARB-Befehls aus den Signaldaten.Dieser ist bereits im Abschnitt 3.2.12 auf Seite 28 beschrieben worden. ist der Befehl komplett erstellt,muß er noch an den Funktionsgenerator gesendet werden. Dieses geschieht im Sub-Vi visa_be-fehl_senden_SUB.vi.

3.2.13.1 Schnittstellen

Eingang Datentyp Ausgang Datentypvisa resource name I/O Identifikation Stringstandardfunktionbefehl Stringerror in Cluster

3.2.13.2 Funktionsweise

Die Initialisierung der VISA Verbindung geschieht über die Funktion “VISA- open”. Das entsprechendeGerät wird über den “VISA Resource Name” ausgewählt. Ist die Verbindung hergestellt, wird als erstesüber den GPIB Befehl *CLS die Verbindung “entstört”. Ist der Befehl gesendet, wird aus Sichheitsgrün-den ein Timeout von 20000 ms gesetzt.Anschließend wird die Identifikation des Gerätes abgefragt. Diese kann später weiterverarbeitet wer-den.Jetzt wird der am Eingang anliegende Befehlsstring an den Funktionsgenerator gesendet und wiederauf die Ausführung des Befehls gewartet. Zum Schluß wird die Verbindung über “VISA-close” geschlos-sen. Eventuelle Fehlermeldungen werden durch fehlerspeicher_SUB.vi gespeichert.

3.2.13.3 Implementation

Diese Funktionen sind in den Dateien arb_befehl_bauen_SUB.vi und visa_befehl_senden_SUB.viimplementiert.

Page 33: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 3. REALISIERUNG 30

3.3 Beschreibung der Funktionen

Die Funktionen des Programms wurden in eine eigene Oberfläche ausgelagert, um sie deutlicher vonder Datenverwaltung (Speichern, Laden etc.) zu trennen und die Erweiterung zu vereinfachen.Alle Funktionen sind im SubVi building_function_ansatz.vi untergebracht.

Die Funktionen wurden in verschiedene Teilbereiche untergliedert:

• Signale mit Standardfunktionen ersetzen und/oder ergänzen• Speicherstellen addieren, subtrahieren, multiplizieren oder dividieren• Standardsignale des Funktionsgenerators erzeugen und anlegen• mathematische Operationen auf Speicherstellen ausführen (Reziproke, sin, log . . .)• editieren der Signaleigenschaften (Kommentare, Ersteller, Amplitude etc.)

Diese sind auf verschiedenen “Karteikarten” untergebracht. Wenn eine Erweiterung der Software an-steht, ist dies durch Hinzufügen weiterer Reiter sehr einfach zu realisieren.

Page 34: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 3. REALISIERUNG 31

3.3.1 Createur ’de Signal

Dies ist der eigentlich interessanteste Teil dieser Software. Man hat hier die Möglichkeit sich ein Signalkomplett nach seinen Vorstellungen zu erstellen.

3.3.1.1 Benutzersicht

Es stehen zwei logische Bereiche zur Verfügung:

Bearbeiten der Funktion Hier ist die eigentliche Funktionalität untergebracht.Eigenschaften des Signals Der Benutzer kann hier die Eigenschaften des Signals, wie es zum Funk-

tionsgenerator gesendet wird, beeinflussen.

Als Grundelemente stehen zur Verfügung:

• Sinus• Cosinus• Dreieck• Sägezahn• Rechteck• aufsteigende Gerade• absteigende Gerade

Diese Elemente können Teile eines Signals ersetzen. Die Elemente können in der Amplitude, der An-zahl der Perioden, des DC-Offsets und der Phasenverschiebung beeinflußt werden. Zu beachten isthierbei, das diese Eigenschaften sich nicht auf das endgültige Signal beziehen sondern die Eigen-schaften des zusätzlich Erzeugten beeinflussen.

Als weitere Funktion kann man Teile des Signals auch herausschneiden (entfernen).

Um die Eigenschaften des resultierenden Signals zu verändern, muß man dessen Parameter imrechten Teil der Anzeige verändern. Hier kann man die reale Frequenz, Amplitude und Phasenver-schiebung einstellen.

3.3.1.2 Technische Sicht

Zur Erzeugung der Signale wird das LabVIEW eigene SubVi Signal Generator by Duration.viverwendet. Die von diesem SubVi erzeugten Daten werden in das Datenarray des bisherigen Signalseingespeist und ersetzen dieses an diesen Stellen.Will man das Signal kürzen, werden ab dem bestimmten Arrayindex eine bestimmte Anzahl Elementeaus dem Array entfernt.

Das erzeugte Signal wird vor dem Abspeichern durch das LabVIEW Modul Arbitrary Wave.viauf die erwarteten 1024 Punkte gebracht und dann auf die 512 Punkte für den Y-Wert normalisiert.

Page 35: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 3. REALISIERUNG 32

3.3.2 A [+−∗/] B

Es werden zwei grundsätzliche Funktionsbereiche abgedeckt:

• Rauschen addieren• grundlegende arithmetische Funktionen auf zwei Speicherstellen ausführen (+−∗/)

3.3.2.1 Benutzersicht

Durch Auswahl des Programmteils (Rauschen oder Arithmetik) wird das jeweilige Bedienelement an-gezeigt bzw. ausgeblendet.

Rauschen

Es kann zwischen den Rauscharten

• weißes Rauschen• periodisches Rauschen• Gaußsches Rauschen

gewählt werden.

Hier kann der Benutzer die Speicherstelle, die Rauschamplitude und den Random Seed einstellen.Ihm wird das Originalsignal und das resultierende Signal angezeigt. Ist er mit seinen Einstellungenzufrieden, so wird das Signal zurückgeschrieben und steht dem Programm wieder zur Verfügung.

Arithmetik

Dem Benutzer wird eine Gleichung angeboten, deren Komponenten er frei wählen kann.

Operand 1 Der erste Operand, der verwendet wirdOperation Es stehen die Funktionen Addition, Subtraktion, Multiplikation und Division zur VerfügungOperand 2 Der zweite verwendete OperandResultat Das Ergebnis der Operation wird in diese Speicherstelle geschrieben

Desweiteren werden ihm die Originalsignale, das resultierende Signal und das aktuell gespeicherte (inder Ergebnisspeicherstelle) Signal angezeigt.

Nach Abschluß aller Einstellungen kann er das resultierende Signal dann wieder speichern.

3.3.2.2 Technische Sicht

Die Realisierung der umschaltbaren Bedienelemente bedient sich der gleichen Funktionalität wie dasmain.vi. Es werden Cluster definiert, deren Eigenschaften (hier: Visible) umgeschaltet werden.

Das Programm benutzt zur Rauscherzeugung Standardmodule von Labview.Die arithmetischen Funktionen wurden auch programmtechnisch in der Art einer Gleichung erstellt.Die Angaben des Benutzers zu den Speicherstellen werden durch CASE-Fälle verarbeitet und die ent-sprechenden Speicherstellen geladen bzw. nach drücken des “Speichern” Buttons geschrieben.

Page 36: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 3. REALISIERUNG 33

3.3.3 Basic Function Generator

Das Programm steuert mit diesem Teil den Funktionsgenerator direkt an. D.h. wir verwenden die fe-steingebauten Signalformen des Funktionsgenerators und geben dem Benutzer die Möglichkeit einigeEigenschaften festzulegen.

Es erfolgt keine Überprüfung, ob das gewählte Gerät wirklich der Funktionsgenerator ist. Wähltder Benutzer ein falsches Gerät, so wird der resultierende Steuerstring übertragen und eventuell eineFehlermeldung produziert.

3.3.3.1 Benutzersicht

Es stehen die Standardsignale des Funktionsgenerator zur Verfügung (siehe Abschnitt 2.3.1 auf Seite8 ). Der Benutzer kann dieses Signal charakterisieren durch:

• Frequenz• Amplitude• DC-Offset• Symmetrie

Nach der Wahl eines Gerätes aus der Liste der gefundenen VISA-tauglichen Geräte wird demBenutzer der Identifikationsstring (wie er mit dem Befehl *IDN? abgefragt wird) angezeigt und er kannentscheiden ob es sich um das korrekte Gerät (den Funktionsgenerator ) handelt.

Während der Benutzer die Einstellungen zum Signal vornimmt wird ihm der String, wie er auchzum Funktionsgenerator übertragen wird, angezeigt.Durch betätigen des Knopfes Absenden wird dieser dann an das Gerät übertragen.

3.3.3.2 Technische Sicht

Die Eingaben des Benutzers werden in einen String umgewandelt, durch die Wahl der Signalform dannein CASE-Fall ausgewählt und in diesem der resultierende String zusammengesetzt.

Durch Druck auf den Knopf “Absenden” wird dieser String dann durch das SubVI visa_befehl-_senden_SUB.vi an das ausgewählte Gerät übertragen.

Die Geräteliste wird von LabVIEW selbst erzeugt und enthält alle Geräte, die durch den VISA-Busangesteuert werden können.

Page 37: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 3. REALISIERUNG 34

3.3.4 Functions on Ice

Das Programm bietet hier eine Auswahl der Funktionalität, wie sie auch IMES besitzt (siehe AbschnittArithmetik im Anhang C auf Seite 48 ).

3.3.4.1 Benutzersicht

Auch hier wird dem Benutzer eine Art Gleichung präsentiert, deren Komponenten er bestimmen darf:

Operation eine sinnvolle Auswahl von OperationenOperand Die Speicherstelle, auf der die Operation ausgeführt wirdResultat Das Ergebnis der Operation wird in diese Speicherstelle geschrieben

Desweiteren wird das Originalsignal, das resultierende Signal und das aktuell gespeicherte (in derErgebnisspeicherstelle) Signal angezeigt.

Nach Abschluß aller Einstellungen kann er das resultierende Signal dann wieder speichern.

3.3.4.2 Technische Sicht

Das Programm setzt hier ebenfalls Standardfunktionen von LabVIEW ein.Der Ablauf ist einer Gleichung nachempfunden (Operanden wählen, Operation ausführen, wenn ge-wünscht, Speichern).

Page 38: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 3. REALISIERUNG 35

3.3.5 Editors Digest

Alle Felder, die ein Signal beschreiben, können hier verändert werden (abgesehen von den Funktions-werten).

3.3.5.1 Benutzersicht

Es wird eine Maske präsentiert, die die relevanten Datenfelder einer Signalform anzeigen, wie sie imProgramm verwendet werden.

• Hersteller• Datum• Zeit• Frequenz• Amplitude• Kommentar

Der Benutzer muß eine Speicherstelle auswählen und diese dann einlesen. Die Funktion wird ihmangezeigt und die Datenfelder können editiert werden.Ist er damit fertig, werden die Daten durch “Speichern” wieder in das Programm übernommen undstehen voll zur Verfügung

3.3.5.2 Technische Sicht

Es ist etwas schwierig LabVIEW zu überreden die Eingaben des Benutzers nicht immer wieder zuüberschreiben. Daher mußten explizite “Lesen” und “Schreiben” Befehle eingefügt werden. Diese sinddurch einen CASE realisiert. Der Standardmodus ist das Editieren der Daten.

Ablauf des Programmteils:

• Die vom Benutzer ausgewählte Speicherstelle wird aus den globalen Variablen ausgelesen

• Editier-Modus

• wird auf “Speichern” gedrückt, so werden die Daten wieder in die globale Variable zurückge-schrieben

Page 39: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

Kapitel 4

Auswertung

FGinLabVIEW ist kein Meisterstreich. Wir sind während unser Arbeit auf zahlreiche Hindernisse beider Realisierung gestoßen. Einerseits handelt es sich hierbei um Probleme mit dem Thema an sich,als auch solche technischer Art.

4.1 Auswertung der technischen Realisierung

Grundlegend läßt sich sagen, daß LabVIEW eine gute Grundlage für die Programmierung von Mess-platzautomatisierungssoftware bietet. Es läßt den Programmierer sehr leicht in die Materie einsteigen.

Da wir selber neu in die grafische Programmierung eingestiegen sind, stellt FGinLabVIEW keinProgramm aus “einem Guß” dar. Viele Möglichkeiten erschlossen sich erst nach und nach. VorherigeLösungen an die neu gefundenen anzupassen, erlaubte uns der Zeitrahmen dieses Projektes nicht.Ein Beispiel für solche Unstimmigkeiten stellt der Bildschirmaufbau an sich dar. Ursprünglich wurdedie Oberfläche mittels Anzeige-Cluster realisiert. Später wurde klar, das man sich viel Mühe hättesparen können, wenn man von Anfang an auf die Funktion “Dialog Tab Control” gesetzt hätte. Diesevereinfacht die Trennung von verschiedenen Funktionalitäten und ist später problemlos erweiterbar.

Eine der Hauptschwierigkeiten bei der Programmierung mit LabVIEW ist das Timing. Da die Rei-henfolge des Ablauf eines Programms erst vom Compiler beim Kompilierungsvorgang festgelegt wird,müßten alle Programmteile in feste zeitliche Strukturen eingebunden sein. LabVIEW bietet dazu dieFunktion “Sequence”. Nur sie stellt die temporäre Abfolge sicher.Wir denken dieses Problem in FGinLabVIEW in den Griff bekommen zu haben.

Für jemanden, der sich bisher vorwiegend mit funktionaler Programmierung beschäftigt hat, stelltdas Vi und Sub-Vi Konzept von LabVIEW eine gewisse Hürde dar. Auf Grund der in diesem Punktunzureichenden Planung unseres Projekts, kann von einer echten Modularisierung nicht die Rede sein.In Ansätzen ist es uns gelungen, bestimmte Teilaufgaben in Sub-Vi’s zusammenzufassen und diesedann auch im gesamten Programm zu verwenden. So hätte man manche Teilaufgabe im Vorhineinbesser planen und in Sub-Vi’s verpacken können.

Die Realisierung der Gerätenansprache, ist in unseren Augen nicht mehr als eine Bastlerlösung.Vor allem die Datenerfassung vom Oszilloskop gestaltete sich schwierig. LabVIEW bietet eine Viel-zahl von Funktionen die die Kommunikation über VISA genau steuerbar macht. Zeitprobleme bei derRealisierung hinderten uns daran diese im vollem Umfang einzusetzen.

Des weiteren fehlt eine sinnvolle Fehlerauswertung. Die erzeugten Fehler werden nicht programm-

36

Page 40: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

KAPITEL 4. AUSWERTUNG 37

weit erfaßt und lassen sich auch leider selten sinnvoll auswerten. Für uns als Programmierer ist dasNachvollziehen der jeweiligen Fehlermeldung noch möglich, für den Anwender, der keinen Einblick inden Quellcode hat, gestaltet sich dies schwierig.Natürlich ist auch hier mangelnde Zeit die Hauptursache.

4.2 Realisierung des Funktionsumfanges

Schaut man FGinLabVIEW in seiner jetzigen Version 0.4.711 an, so findet sich darin nicht der gesamteFunktionsumfang von IMES wieder. So wurde auf die Visualisierung der Funktionen so wie [Pau], imAnhang Seite 49 beschrieben, verzichtet. Auch Funktionalität wie FFT, IFFT oder Faltung wurde nichtimplementiert. Dies ist einerseits auf die fehlende Zeit zurückzuführen, andererseits war es auch keinzwingender Teil der Aufgabenstellung.

Wir haben weiterhin einige Teile der Funktionalität des Funktionsgenerator außen vor gelassen.FGinLabVIEW kann alle Signalformen erzeugen. Modifikationen dieser Signal, wie z.B. einstellen derSymmetrie, sowie die Modulationsarten (Amplitudenmodulation, Frequenzmodulation, Phasenumta-stung, GATE, LIN SWEEP, BURST) wurden nicht realisiert. Letzteres erschien nicht sinnvoll, da einenicht unwesentliche Verzögerung über den VISA-Bus auftritt. Solche Signalmodulationen müssen vonHand bewerkstelligt werden.

Leider ist es uns auch nicht gelungen dem Programm eine umfassende Dokumentation beizufügen.

Page 41: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

Kapitel 5

Fazit

5.1 Ausblick

Sollte eine spätere Belegarbeit an dieses Thema anknüpfen, so bietet FGinLabVIEW eine gute Grund-lage. Da es in diesem Semester noch weitere Projekte zur Messplatzautomatisierung gegeben hat,sollte das Gesamtergebnis eine Grundausstattung für die Ablösung von IMES sein.

Zu bemängeln wäre an dieser Stelle, daß es keine Koordinierung der einzelnen Teilprojekte gege-ben hat. So sind wir uns ziemlich sicher, daß bei einer koordinierten Verteilung der Aufgaben, ein ins-gesamt besseres Ergebnis zu erzielen gewesen wäre. Wir für unseren Teil hätten gern auf Funktionender “Oszilloskop Gruppe” zurückgegriffen. Dies hätte Zeitreserven geschaffen, die eine umfangreiche-re Fehlerbehandlung oder eine erweiterte Funktionalität ermöglicht hätte.So ist zu befürchten, daß jede Gruppen eigene Lösung gefunden hat und eine Zusammenführung dereinzelnen Teile schwer oder garnicht möglich ist.

Unser Bestreben war ein leicht erweiterbares Programm zu schaffen. Wir hoffen dies ist gelungen.

Nochmehr ist zu hoffen, daß unser Programm in den Laboren der FHTW-Berlin zum Einsatzkommt. Allerdings wird man dann nicht um eine Erneuerung des Computerbestandes herum kommen.

Sollten eines Tages der Funktionsgenerator PM5139 und das Oszilloskop PM3384 durch andereModelle ersetzt werden, müssen wenigstens die Treiber angepaßt werden. Eine Überarbeitung dieserSoftware stünde dann wahrscheinlich sowieso an.

38

Page 42: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

Anhang A

Begriffsdefinitionen

Programmmodule Dies sind Teile des Programms, die der Benutzer nicht zu Gesicht bekommt. Dabeikann es sich um eigene Sub-Vis handeln, aber auch um Untermengen.Als Beispiel seien die globale Speicherverwaltung oder das Speichern einer Funktion in eineDatei zu nennen.

Programmfunktion Dieser Begriff beschreibt eine direkte Funktionalität des Programms.Beispiel hier: Addition der Speicherstelle 1 mit Speicherstelle 2.

Signalform/Funktion Hier ist eine ARB-Funktion gemeint, mit allen ihren Eigenschaften wie Amplitu-de, Frequenz und den einzelnen Funktionswerten.

ARB–Funktion [ArBitRary] Funktion. Eine selbstdefinierte Funktion, welche dem Funktionsgeneratorüber die IEEE 488.2 Schnittstelle wieder zur Verfügung gestellt werden kann.

Standardfunktion ist eine der in Abschnitt 2.3.1 auf Seite 8 aufgeführten im Funktionsgenerator harteinprogrammierten Funktionen.

39

Page 43: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

Anhang B

Module - Grafiken

40

Page 44: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG B. MODULE - GRAFIKEN 41

Abbildung B.1: Globale Variablen vom Typ Speicherstelle und Fehlermeldungsspeicher

Page 45: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG B. MODULE - GRAFIKEN 42

Abbildung B.2: Beispiel für den Einsatz von Property Node zum setzen der Sichtbarkeit in main.vi

Page 46: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG B. MODULE - GRAFIKEN 43

Und der dazugehörige True-Fall:

Abbildung B.3: Speicherverwaltung in main.vi

Page 47: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG B. MODULE - GRAFIKEN 44

Abbildung B.4: Die Datei oszi_auslesen_SUB.vi

Page 48: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

Anhang C

IMES Dokumentation

Die Dokumentation zu IMES wurde aus der Windows-Hilfedatei extrahiert und aufbereitet.

C.1 Imes Hilfe Index geschrieben von Thorsten Paul 77121

Interaktives Meßdatenerfassungs- und verarbeitungsprogramm - Imes Version 1.2

Menüpunkte:

• Datei

• Edit

• Parameter

• Messen

• Speicher

• Arithmetik

• Funktionen

• Operationen

• Darstellung

• Hilfe

C.2 Kurzbeschreibung des Programms

Dem Nutzer des Programms werden eine Vielzahl von Funktionen zur Verfügung gestellt, mit denen erMeßdaten erfassen, verarbeiten, darstellen und speichern kann.

Der Datenaustausch zur Aufnahme von Meßdaten erfolgt über den IEC-Bus (GPIB). Speziell wurdenhier die Befehle des Oszilloskops (PM 3384/94 von Phillips), des Multimeters (FL 45 von Fluke) unddes Funktionsgenerators (PM 5139 von Phillips) integriert.

45

Page 49: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 46

Das Programm arbeitet mit zwei eindimensionalen Datenfeldern (Feld A und Feld B). Die Darstellungder Daten kann für verschiedene Datenlängen und Datentypen im Zeit- und Frequenzbereich erfol-gen. Es kann zwischen der gemeinsamen und der getrennten Darstellung der beiden Signale gewähltwerden. Zusätzlich werden in einem Datenfenster bestimmte Kenngrößen des aktuellen Signals au-tomatisch angezeigt. Des weiteren kann das Signal logarithmisch mit einer variablen Dekadenanzahldargestellt werden.

Die Archivierung kann binär ein- oder mehrdimensional in einem eigenen Format mit der BezeichnungDAT und einfach im ASCII-Format erfolgen.

Die Verarbeitung der gemessenen oder synthetisierten Daten reicht von elementaren arithmetischenFunktionen zur Verknüpfung der beiden Signale miteinander oder eines Signals mit einer Konstantenbis zu sehr komplexen Funktionen wie der Fast Fourier Transformation, der Faltung und der Erzeugungsowie Darstellung logarithmischer Daten.

Mit Hilfe der Undo-Funktion kann die jeweils letzte Manipulation der Daten rückgängig gemacht wer-den.

Es stehen zwei Cursor zu Verfügung, mit deren Hilfe sich spezielle Werte und Differenzen anzeigenlassen. Zusätzlich stehen noch verschiedene andere cursorgesteuerte Manipulationen wie Fenster-,Zoom- und Rotationsfunktionen zur Verfügung.

C.3 Befehlsübersicht

Datei-Befehle

Das Datei-Menü beinhaltet folgende Kommandos:

Öffnen Öffnet eine existierende Datei.Speichern Speichert die Daten aus Feld A unter dem aktuellen

Dateinamen.Speichern unter ... Speichert die Daten aus Feld A unter einem zu spe-

zifizierenden Dateinamen.

Drucken Druckt die aktuelle Ansicht.Druckvorschau Zeigt, wie der Ausdruck unter den aktuellen Bedin-

gungen aussehen wird.Druckerinstallation Wählt bestimmte Druckereinstellungen aus.

Datei importieren Importiert ASCII-Daten aus einer Datei.Datei exportieren Schreibt die Daten unformatiert als ASCII-Daten in

eine Datei.

Beenden Beendet Imes.

Edit-Befehle

Das Edit-Menü beinhaltet folgende Kommandos:

Undo Macht die letzte Datenveränderung rückgängig.

Delta Erzeugt einen Deltaimpuls.

Page 50: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 47

Sinus Erzeugt eine Sinusfunktion.Konstante Erzeugt eine konstante Funktion.ε-Funktion Erzeugt eine e-Funktion.Sägezahn Erzeugt eine Sägezahnfunktion.Dreieck Erzeugt eine Dreiecksfunktion.Rechteck Erzeugt eine Rechteckfunktion.Rauschen Erzeugt eine Rauschfunktion.

Fenster Das aktuelle Signal kann gefenstert werden.Rotation + Rotiert das aktuelle Signal nach rechts.Rotation - Rotiert das aktuelle Signal nach links.Gerade Verbindet die Cursorpositionen durch eine Gerade.

FeldA -> FeldB Setzt Feld A und Feld B gleich.Swap A/B Vertauscht die Inhalte von Feld A und Feld B.FeldAlöschen Setzt alle Werte von Feld A gleich null.

Kontrollstruktur FeldA Läßt Änderungen in der Kontrollstruktur von Feld Azu.

Feldlänge ändern Läßt Änderungen der Anzahl der Werte im Feld A zu.Konstante ändern Läßt Änderungen der Konstante zu.

Datentransformation Läßt die Übertragung von reellen Daten zu komple-xen und umgekehrt zu.

Parameter-Befehle

Das Parameter-Menü beinhaltet folgende Kommandos:

Parameter Zeigt ein Dialogfeld zur Änderung der Systempara-meter.

Farben ändern Öffnet ein Dialogfeld zur Änderung der Farben .

Messen-Befehle

Das Messen-Menü beinhaltet folgende Kommandos:

Oszilloskop Kanal 1 Liest Daten vom Oszilloskop Kanal 1 ein.Oszilloskop Kanal 2 Liest Daten vom Oszilloskop Kanal 2 ein.Oszilloskop Kanal 3 Liest Daten vom Oszilloskop Kanal 3 ein.Oszilloskop Kanal 4 Liest Daten vom Oszilloskop Kanal 4 ein.Histogramm Öffnet ein Popup-Menü mit der Auswahl des Ka-

nals, von welchem ein Histogramm eingelesen wer-den soll.

Multimeter Läßt Einstellungen am Multimeter zu.Funktionsgenerator Läßt Einstellungen am Funtionsgenerator zu.Frequenzgangmessung Führt eine Frequenzgangmessung durch.

Page 51: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 48

Funktion übertragen Überträgt die aktuelle Zeitfunktion zum Funktionsge-nerator.

Speicher-Befehle

Das Speicher-Menü beinhaltet folgende Kommandos:

Speicher 1 schreiben Schreibt die Daten aus Feld A in den Speicher 1.Speicher 1 lesen Schreibt die Daten aus dem Speicher 1 nach Feld A.Speicher 2 schreiben Schreibt die Daten aus Feld A in den Speicher 2.Speicher 2 lesen Schreibt die Daten aus dem Speicher 2 nach Feld A.Speicher 3 schreiben Schreibt die Daten aus Feld A in den Speicher 3.Speicher 3 lesen Schreibt die Daten aus dem Speicher 3 nach Feld A.Speicher 4 schreiben Schreibt die Daten aus Feld A in den Speicher 4.Speicher 4 lesen Schreibt die Daten aus dem Speicher 4 nach Feld A.

Arithmetik-Befehle

Das Arithmetik-Menü beinhaltet folgende Kommandos:

Addition Addiert Feld A und Feld B.Subtraktion Subtrahiert Feld B von Feld A.Multiplikation Multipliziert Feld A und Feld B.Division Dividiert Feld A durch Feld B.konj. komplex Schreibt die konjugiert komplexe Funktion von Feld

A nach Feld A.∗ Multipliziert die Daten in Feld A mit j.1/x Bildet den Kehrwert der Daten in Feld A.Negation Negiert die Werte in Feld A.

+k Addiert die Konstante k zu den Daten in Feld A.−k Subtrahiert die Konstante k von den Daten in Feld A.∗k Multipliziert die Daten in Feld A mit der Konstante k./k Dividiert die Daten in Feld A durch die Konstante k.

Funktionen-Befehle

Das Funktionen-Menü beinhaltet folgende Kommandos:

logx Bildet den dekadischen Logarithmus der Daten inFeld A.

lnx Bildet den natürlichen Logarithmus der Daten in FeldA.

ld x Bildet den Logarithmus dualis der Daten in Feld A.

Page 52: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 49

20∗ logx Bildet den 20fachen dekadischen Logarithmus derDaten in Feld A.

10x Potenziert die Daten in Feld A.εx Exponenziert die Daten in Feld A.2x Bildet 2 hoch x der Daten in Feld A.xk Bildet x hoch k der Daten in Feld A.kx Bildet k hoch x der Daten in Feld A.√ Zieht die Wurzel aus den Daten in Feld A.2 Quadriert die Daten in Feld A.

sinx Bildet den Sinus der Daten in Feld A.arcsinx Bildet den ArcusSinus der Daten in Feld A.cosx Bildet den Cosinus der Daten in Feld A.arccosx Bildet den ArcusCosinus der Daten in Feld A.tanx Bildet den Tangens der Daten in Feld A.arctanx Bildet den ArcusTangens der Daten in Feld A.

Operationen-Befehle

Das Operationen-Menü beinhaltet folgende Kommandos:

Integration Integriert die Daten in Feld A.Differentiation Differenziert die Daten in Feld A.

FFT Führt die Fast Fourier Transformation mit den Datenin Feld A durch.

IFFT Führt die Inverse Fast Fourier Transformation mit denDaten in Feld A durch.

Faltung Führt die Faltung durch.Kreuzkorrelation Führt die Kreuzkorrelation durch.Autokorrelation Führt die Autokorrelation durch.

Bodediagramm Führt die Fast Fourier Transformation mit den Datenin Feld A durch und stellt sie logarihmisch dar.

Schmitt-Trigger Auf das Signal in Feld A wird ein Schmitt-Trigger an-gewendet.

Verteilungsfunktion Von der Funktion in Feld A wird die Verteilungsfunk-tion berechnet.

Darstellung-Befehle

Das Darstellung-Menü beinhaltet folgende Kommandos:

1Dia <–> 2Dia Wechselt zwischen Eindiagramm- und Zweidia-grammdarstellung.

FeldA <–> FeldA undFeldB

Stellt Feld A oder Feld A und Feld B dar.

Page 53: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 50

Realteil Stellt den Realteil dar.Imaginärteil Stellt den Imaginärteil dar.Betrag Stellt den Betrag dar.Phase Stellt die Phase dar.

FeldA über FeldB Stellt Feld A über Feld B dar.Ortskurve Stellt die Ortskurve von Feld A dar.

Skalierung Macht manuelle Skalierung möglich.Zoom Schaltet die Zoomfunktion ein oder aus.

Werkzeugleiste Schaltet die Werkzeugleiste ein oder aus.Statuszeile Schaltet die Statuszeile ein oder aus.Phasenkorrektur Schaltet die Phasenkorrektur ein oder aus.

Hilfe-Befehle

Das Hilfe-Menü beinhaltet die folgenden Kommandos:

Index Beinhaltet die Hilfe für das Programm «Imes».Using Help Beinhaltet Beschreibungen über die Benutzung der

Hilfe.About Zeigt Informationen über das Programm Imes.

C.4 Das Dateimenü

Öffnen

Mit diesem Befehl öffnen Sie bereits bestehende Dateien im dat-Format. Wenn Sie den Befehl aus-führen, öffnet sich das Datei-öffnen-Dialogfeld, in dem Sie die gewünschte Datei auswählen können.Die Daten aus dieser Datei werden nach Feld A geladen. Speichern Sie also erst die aktuellen Daten,wenn Sie sie erhalten wollen.

Kurztasten:Werkzeugleiste:Tasten: Strg+O

Datei-öffnen-DialogboxHier haben Sie die folgenden Auswahlmöglichkeiten:

Datei NameWählen Sie einen der angezeigten Dateinamen aus. Es werden hier nur die Dateien mit einer DAT-Extension angezeigt. Sollte Ihre Datei keine DAT-Extension haben, wählen Sie in der Liste Dateifor-mate Alle Dateien (*.*) aus. Es werden Ihnen alle Dateien angezeigt, die sich im aktuellen Verzeichnisbefinden. Jetzt können Sie Ihre Datei auswählen.

Dateiformate:Wählen Sie hier DAT-Format aus, wenn Ihre Datei eine DAT-Extension besitzt, andernfalls *.* . IhreDatei muß im DAT-Format vorliegen, auch wenn Sie keine DAT-Extension besitzt.Liegen Dateien im ASCII-Format vor, können Sie diese über Datei importieren in das Programm laden

Page 54: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 51

und weiterverarbeiten.

DrivesWählen Sie hier das Laufwerk aus, in dem Ihre Datei gespeichert ist .

DirectoriesWählen Sie hier das Verzeichnis aus, in dem Ihre Datei gespeichert ist.

Network...Wählen Sie hier aus, wo sich die Datei im Netzwerk befindet.

Speichern

Nutzen Sie den Befehl, wenn Sie die Daten in die aktuelle Datei speichern wollen. Die alten Daten inder Datei werden ohne Rückfrage überschrieben und lassen sich auch nicht über die UNDO-Funktionrückgänig machen. Wird die Datei zum ersten Mal abgespeichert, öffnet sich der Speichern-Dialog,und Sie können hier den Namen für die Datei eingeben. Wenn Sie Ihre Daten in eine Datei mit einemanderen Namen speichern wollen, benutzen Sie den Speichern-unter-Befehl .

KurztasteWerkzeugleiste:Tasten: Strg+S

Speichern unter

Nutzen Sie den Befehl, wenn Sie die Daten in eine Datei mit neuem Namen speichern wollen. Imeszeigt Ihnen nach Aufruf die Speichern-unter-Dialogbox, in der Sie die gewünschten Einstellungen vor-nehmen können.Wenn Sie die Daten in die aktuelle Datei speichern wollen, nutzen sie den Speichern-Befehl!

Speichern-unter-DialogboxDie folgenden Optionen erlauben Ihnen, den Dateinamen und den Speicherplatz festzulegen.

DateinameGeben Sie einen neuen Dateinamen ein. Der Dateiname kann bis zu 8 Zeichen lang sein und eineExtension von bis zu drei Zeichen besitzen, die durch einen Punkt abgetrennt sein muß.Wenn Siekeine Extension eingeben, wird automatisch die Extension, die im Dateiformat-Fenster zu sehen ist,angefügt.

LaufwerkeWählen Sie hier das Laufwerk aus, in das die Datei gespeichert werden soll.

VerzeichnisseWählen Sie hier das Verzeichnis aus, in das die Datei gespeichert werden soll.

Netzwerk...Wählen Sie hier die Position im Netzwerk aus, in die die Datei gespeichert werden soll.

1, 2, 3, 4 Befehl

Nutzen Sie die Nummern mit den Dateinamen im unteren Teil des Dateimenüs zum Öffnen der Dateien,die zuletzt genutzt wurden. Klicken Sie die gewünschte Datei einfach an.Ist diese Datei schon geöffnet, kann Sie nicht noch einmal über diese Funktion geladen werden.

Page 55: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 52

Datei importieren

Nachdem Sie diesen Menüpunkt aktiviert haben, erscheint das Datei-öffnen-Dialogfeld, in dem Sie diezu importierende Datei auswählen können.Es wird vorausgesetzt, daß in der Datei nur Zahlen-Daten im ASCII-Format stehen, wobei in jederZeile nur ein Wert steht. Die eingelesenen Zahlenwerte werden als reelle Daten betrachtet. Zu de-ren Interpretation werden diesen Daten Standardwerte zugewiesen, welche sie mit Hilfe der FunktionKontrollstruktur Feld A ändern können.

Es können maximal 8192 Daten eingelesen werden. Sollte die Datei länger sein, werden die ersten8192 Daten eingelesen. Die maximale Datenanzahl ist in der Speicherorganisation begründet, die nochder 64kByte-Formatierung unterliegt.

Datei exportieren

Nachdem Sie diesen Menüpunkt aktiviert haben, erscheint die Speichern-unter-Dialogbox , in der Sieder zu exportierenden Datei den Speicherplatz und den Namen zuweisen.Die Daten können nur in eine ASCII-Datei exportiert werden.

Die Zahlenwerte aus Feld A werden im Textformat in die ASCII-Datei geschrieben, wobei jeder Wert ineiner einzelnen Zeile steht.

Die so ausgegebenen Daten werden nicht interpretiert, das heißt, Sie müssen selbst beachten, ob Siereelle, komplexe oder logarithmische Daten exportiert haben.

Beenden

Nutzen Sie dieses Kommando, um Imes zu beenden. Sie können auch das Systemmenü zum Beendenbenutzen. Beachten Sie aber, daß die Einstellungen und der Inhalt der Speicherplätze nicht erhaltenbleiben.

Kurztasten:Maus: Doppelklick auf den Systemmenü-Button.Keys: ALT+F4

Dateiformat DAT

In der Datei befindet sich ein Dateikopf, der die Daten spezifiziert, die im Anschluß an den selbigenfolgen.

In der folgenden Reihenfolge sind die einzelnen Variablen im Dateikopf gespeichert:

Kommentar 1 char[80] 80 Byte

Kommentar 2 char[80] 80 Byte

Kommentar 3 char[80] 80 Byte

x-Achsentitel char[20] 20 Byte

y-Achsentitel char[20] 20 Byte

Page 56: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 53

z-Achsentitel char[20] 20 Byte

Einheit char[20] 20 Byte

Datenanzahl in x-Richtung short 02 Byte

Datenanzahl in y-Richtung short 02 Byte

Datenanzahl in z-Richtung short 02 Byte

Abtastrate in x-Richtung float 04 Byte

Abtastrate in y-Richtung float 04 Byte

Abtastrate in z-Richtung float 04 Byte

Datenbeschreibung short 02 Byte (0 = reell; 1 = komplex; 2 = logarithmisch)

Datentype(Zahlenformat) short 02 Byte (0 = integer; 1 = float; 2 = double)

Im Anschluß an diesen Dateikopf sind die Werte binär im float-Format abgespeichert.

C.5 Das Edit-Menü

Undo

Mit dieser Funktion können Sie die letzte Änderung der Daten rückgänig machen. Nachdem Sie einmalden Undo-Befehl ausgeführt haben, erscheint das Menü abgeblendet, das heißt, es kann keine weitereAktion rückgängig gemacht werden.

KurztastenWerkzeugleiste:Keys: Strg + Z

Delta

Mit dieser Funktion erzeugen Sie einen oder mehrere Delta-Impulse.Wenn Sie den Menüpunkt aktivieren, erscheint das Delta-Dialogfeld. Hier können Sie die gewünschtenParameter eingeben.

Der erste Wert der Funktion wird immer auf den eingestellten Amplitudenwert festgelegt. Möchten Sie,daß sich der erste Delta-Impuls nicht am Funktionsbeginn befindet, können Sie ihn mit der FunktionRotation + oder der Funktion Rotation - an die gewünschte Stelle verschieben.

Sinus

Mit dieser Funktion erzeugen Sie eine Sinusfunktion.Wenn Sie den Menüpunkt aktivieren, erscheint das Sinus-Dialogfeld. Hier können Sie die gewünschtenParameter eingeben.Denken Sie daran, daß auch hier Alaising auftreten kann. Also wählen Sie Parameter so, daß keineZweideutigkeiten auftreten können.

Page 57: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 54

Konstante

Mit dieser Funktion erzeugen Sie eine konstante Funktion.Wenn Sie den Menüpunkt aktivieren, erscheint das Konstante-Dialogfeld. Hier können Sie die ge-wünschten Parameter eingeben.

e-Funktion

Mit dieser Funktion erzeugen Sie eine e-Funktion.Wenn Sie den Menüpunkt aktivieren, erscheint das e-Funktion-Dialogfeld. Hier können Sie die ge-wünschten Parameter eingeben.

Bitte bedenken Sie bei der Wahl der Parameter, daß sehr schnell der Zahlenbereich der float-Werteüberschritten werden kann.

Die Berechnung erfolgt nach der Formel mit dx = Abtastrate und = Zeitkonstante. Der Laufindex i läuftvon 0 bis zur angegebenen Datenanzahl.

Sägezahn

Mit dieser Funktion erzeugen Sie eine Sägezahnfunktion.Wenn Sie den Menüpunkt aktivieren, erscheint das Sägezahn-Dialogfeld. Hier können Sie die ge-wünschten Parameter eingeben.

Denken Sie daran, daß auch hier Alaising auftreten kann. Also wählen Sie Parameter so, daß keineZweideutigkeiten auftreten können.

Dreieck

Mit dieser Funktion erzeugen Sie eine Dreieckfunktion.Wenn Sie den Menüpunkt aktivieren, erscheint das Dreieck-Dialogfeld. Hier können Sie die gewünsch-ten Parameter eingeben.

Denken Sie daran, daß auch hier Alaising auftreten kann. Also wählen Sie Parameter so, daß keineZweideutigkeiten auftreten können.

Rechteck

Mit dieser Funktion erzeugen Sie eine Rechteckfunktion.Wenn Sie den Menüpunkt aktivieren, erscheint das Rechteck-Dialogfeld. Hier können Sie die ge-wünschten Parameter eingeben.

Denken Sie daran, daß auch hier Alaising auftreten kann. Also wählen Sie Parameter so, daß keineZweideutigkeiten auftreten können.

Rauschen

Mit dieser Funktion erzeugen Sie eine Rauschfunktion.Wenn Sie den Menüpunkt aktivieren, erscheint das Rauschen-Dialogfeld. Hier können Sie die ge-wünschten Parameter eingeben.

Page 58: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 55

Das Rauschen wird mittels eines Zufallsgenerators erzeugt, der ein gleichverteiltes Rauschen synthe-tisiert. Durch die Mittelung einer ausreichenden Anzahl von gleichverteilten Rauschfunktionen könnenSie ein gaußverteiltes Rauschen erhalten.

Wie viele gleichverteilte Rauschfunktionen gemittelt werden sollen, können Sie im Dialogfeld Systemparameterverändern.

Fenster

Mit diesem Befehl fenstern Sie die Daten aus Feld A.Wenn Sie den Menüpunkt aktivieren, erscheint das Fenster-Dialogfeld. Hier können Sie die gewünsch-te Fensterart und die Fensterbreite eingeben.

Beachten Sie, daß Sie bei den Hanning-Fenstern beide Cursor setzen müssen. Der Bereich, den dieCursor einschließen, einschließlich der Cursorpositionen, bleibt erhalten. Inverses Hanning-Fensterbedeutet, daß der Bereich, den die Cursor einschließen, gleich null gesetzt wird und der Bereich au-ßerhalb des Fensters erhalten bleibt.

Bei allen anderen Fensterarten müssen Sie den Cursor 1 setzen. Dieser bestimmt den Mittelpunkt desFensters. Die Cursorposition des Cursors 1 bleibt erhalten.

Rotation +

Mit diesem Befehl rotieren Sie das Signal in Feld A nach rechts.Es gibt mehrere Möglichkeiten, um wie viele Datenpunkte das Signal rotiert werden soll.

->Setzen Sie nur den linken Cursor, wird das Signal um die Anzahl der Datenpunkte, die zwischenDiagrammbeginn und Cursor liegen, nach rechts rotiert.

->Setzen Sie nur den rechten Cursor, wird das Signal um die Anzahl der Datenpunkte, die zwischenDiagrammende und Cursor liegen, nach rechts rotiert.

->Setzen Sie beide Cursor, wird das Signal um die Anzahl der Datenpunkte, die zwischen Cursor 1und Cursor 2 liegen, nach rechts rotiert.

->Setzen Sie keinen Cursor, wird das Signal um einen Datenpunkt nach rechts rotiert.

Rotation -

Mit diesem Befehl rotieren Sie das Signal in Feld A nach links.Es gibt mehrere Möglichkeiten, um wie viele Datenpunkte das Signal rotiert werden soll.

->Setzen Sie nur den linken Cursor, wird das Signal um die Anzahl der Datenpunkte, die zwischenDiagrammbeginn und Cursor liegen, nach links rotiert.

->Setzen Sie nur den rechten Cursor, wird das Signal um die Anzahl der Datenpunkte, die zwischenDiagrammende und Cursor liegen, nach links rotiert.

->Setzen Sie beide Cursor, wird das Signal um die Anzahl der Datenpunkte, die zwischen Cursor 1und Cursor 2 liegen, nach links rotiert.

->Setzen Sie keinen Cursor, wird das Signal um einen Datenpunkt nach links rotiert.

Page 59: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 56

Gerade

Mit diesem Befehl verbinden Sie zwei Punkte durch eine Gerade.Welche zwei Punkte Sie durch eine Gerade verbinden, legen Sie durch die Cursorpositionen fest.

->Setzen Sie beide Cursor, werden die beiden y-Werte an den Cursorpositionen durch eine Geradeverbunden.

->Setzen Sie nur Cursor 1, wird der letzte Punkt des Signals zum Endpunkt der Geraden.

->Setzen Sie nur Cursor 2, wird der erste Punkt des Signals zum Startpunkt der Geraden.

->Setzen Sie keinen Cursor, wird der erste Punkt des Signals zum Startpunkt der Geraden und derletzte Punkt des Signals zum Endpunkt.

FeldA -> Feld B

Mit diesem Befehl überschreiben Sie die Daten in Feld B mit denen aus Feld A. Wenn sich in Feld BDaten befinden, werden diese ohne Rückfrage gelöscht.

Wollen Sie die Daten erhalten, dann sichern Sie diese erst durch die Speicherfunktion oder legen siein einem der virtuellen Speicher ab.

KurztastenKeys: F9

Swap

Mit diesem Befehl vertauschen Sie die Inhalte von Feld A und Feld B. Sie benötigen diesen Befehl,wenn Sie das Signal, welches sich momentan in Feld B befindet, durch bestimmte Berechnungenverändern oder speichern wollen.

Bringen Sie das Signal aus Feld B durch diesen Befehl nach Feld A, wodurch Sie alle Funktionen zurVeränderung des Signals benutzen können. Wenn Sie alle Berechnungen durchgeführt haben, benut-zen Sie diesen Befehl erneut, um die neu berechnete Funktion wieder in das Feld B zu übertragen.

KurztastenKeys: F8

Feld A löschen

Mit diesem Befehl setzen Sie alle Werte von Feld A auf null. Es erfolgt vorher die Sicherheitsabfrage,ob Sie die Daten wirklich löschen wollen.

Sollten Sie trotzdem die Daten ungewollt gelöscht haben, können Sie dies durch die Undo-Funktionwieder rückgängig machen.

KurztastenKeys: Strg+L

Kontrollstruktur Feld A

Wenn Sie den Menüpunkt aktivieren, erscheint das Kontrollstruktur-Dialogfeld.

Page 60: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 57

Hier können einige Beschreibungen sowie Parameter eingeben bzw. geändert werden.U.a. können die Kommentare eingegeben werden, die dann auf dem Ausdruck erscheinen.

Beachten Sie bitte, daß sich diese Informationen nur auf das Signal in Feld A beziehen. Wollen SieÄnderungen in der Kontrollstruktur von Feld B vornehmen, müssen Sie das Signal aus Feld B durchdie Swap-Funktion erst nach Feld A übertragen.

KurztastenKeys: F3

Feldlänge ändern

Mit diesem Befehl können Sie die Anzahl der Datenpunkte von Feld A verändern.

->Verkürzen Sie die Feldlänge, werden die letzten Datenpunkte abgeschnitten und damit gelöscht.

->Verlängern Sie die Feldlänge, werden die angehangenen Datenpunkte mit Null initialisiert.

Beachten Sie bitte, daß die Anzahl der Datenpunkte von reellen Funktionen immer durch und die vonkomplexen Funktionen immer durch darstellbar sein sollte.

Die Einhaltung dieser Konventionen ist für die Durchführung der FFT-Routinen günstig. Stimmt die An-zahl nicht mit diesen Konventionen überein, so werden sie durch Verlängern des Datenfeldes erreicht.

Beachten Sie ebenfalls, daß die maximale Datenlänge bei 8192 liegt. Das ist in der Organisation desArbeitsspeichers begründet.

Datentransformation

Wenn Sie den Menüpunkt aktivieren, erscheint das Datentransformation-Dialogfeld.

Hier können Sie eingeben, welche Umwandlung Sie vornehmen möchten. Sind von Ihnen gewünschteUmwandlungen abgeblendet, dann überprüfen Sie, ob die Ausgangssituationen korrekt sind.

Sie haben die Möglichkeit, aus zwei reellen Funktionen eine komplexe zu erzeugen, wobei die reellenFunktionen die Stelle des Realteils bzw. des Imaginärteils einnehmen oder des Betrages bzw. derPhase.

Weiterhin haben Sie die Möglichkeit, aus komplexen Funktionen bestimmte Teilfunktionen in reelleumzuwandeln.

Das Feld A ist immer das Ergebnisfeld.

Übertragungsmöglichkeiten:

• Feld A nach Realteil von Feld A und Feld B nach Imaginärteil von Feld A

• Feld A nach Betrag von Feld A und Feld B nach Phase von Feld A

• Betrag von Feld A nach reell Feld A

• Phase von Feld A nach reell Feld A

• Realteil von Feld A nach reell Feld A

• Imaginärteil von Feld A nach reell Feld A

Page 61: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 58

Ist die Phasenkorrektur eingeschaltet, wird der korrigierte Phasengang nach reell Feld A übertragen.

Das Delta-DialogfeldDie folgenden Optionen erlauben Ihnen, bestimmte Parameter festzulegen.

Amplitudenwert:Geben Sie hier einen Amplitudenwert (Spitzenwert der Impulse) ein.Der Wert muß zwischen -1e12 und 1e12 liegen.

Abtastrate:Geben Sie hier die Abtastrate ein. Sie bestimmt die Zeit, die zwischen zwei Werten liegt. Der Default-Wert entspricht der Abtastrate des Feldes A oder des Feldes B. Befindet sich in keinem der beidenFelder ein Signal, wird 0.002 s als Standardwert gesetzt.Der Wert muß zwischen 1e-15 und 1e12 liegen.

Periodenanzahl:Geben Sie hier die Anzahl der Perioden ein. Achten Sie darauf, daß hier kein Alaising auftreten kann.Wählen Sie also einen Wert, der maximal halb so groß wie die Feldlänge ist.Der Wert darf kein Dezimalwert sein und muß zwischen 1 und 4096 liegen.

Offset:Geben Sie hier den Offset ein. Achten Sie bei der Eingabe darauf, daß der Offset und der zu erwar-tende Funktionswert nicht den Zahlenbereich für float-Zahlen (3.3e-35 bis 3.3e35) übersteigt.Der Wert muß zwischen -1e12 und 1e12 liegen.

Feldlänge:Geben Sie hier die Feldlänge (Anzahl der Punkte im Datenfeld) ein. Es wird stets ein Default-Wertgesetzt, der der Länge des Feldes A oder des Feldes B entspricht. Befindet sich in keinem Feld eineFunktion, wird der Standardwert auf 512 festgesetzt.

Das Sinus-DialogfeldDie folgenden Optionen erlauben Ihnen, bestimmte Parameter festzulegen.

Amplitudenwert:Geben Sie hier einen Amplitudenwert () ein.Der Wert muß zwischen -1e12 und 1e12 liegen.

Abtastrate:Geben Sie hier die Abtastrate ein. Sie bestimmt die Zeit, die zwischen zwei Werten liegt. Der Default-Wert entspricht der Abtastrate des Feldes A oder des Feldes B. Befindet sich in keinem der beidenFelder ein Signal, wird 0.002 s als Standardwert gesetzt.Der Wert muß zwischen 1.0e-15 und 1e12 liegen.

Periodenanzahl:Geben Sie hier die Anzahl der Perioden ein. Achten Sie darauf, daß hier kein Alaising auftreten kann.Wählen Sie also einen Wert, der maximal halb so groß wie die Feldlänge ist.Der Wert kann eine Dezimalzahl sein und muß zwischen 1e-12 und 1e12 liegen.

Offset:Geben Sie hier den Offset ein. Achten Sie bei der Eingabe darauf, daß der Offset und der zu erwar-tende Funktionswert nicht den Zahlenbereich für float-Zahlen (3.3e-35 bis 3.3e35) übersteigt.Der Wert muß zwischen -1e12 und 1e12 liegen.

Feldlänge:Geben Sie hier die Feldlänge (Anzahl der Punkte im Datenfeld) ein. Es wird stets ein Default-Wertgesetzt, der der Länge des Feldes A oder des Feldes B entspricht. Befindet sich in keinem Feld eine

Page 62: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 59

Funktion, wird der Standarwert auf 512 festgesetzt.

Das Konstante-DialogfeldDie folgenden Optionen erlauben Ihnen, bestimmte Parameter festzulegen.

Amplitudenwert:Geben Sie hier einen Amplitudenwert einDer Wert muß zwischen -1e12 und 1e12 liegen.

Abtastrate:Geben Sie hier die Abtastrate ein. Sie bestimmt die Zeit, die zwischen zwei Werten liegt. Der Default-Wert entspricht der Abtastrate des Feldes A oder des Feldes B. Befindet sich in keinem der beidenFelder ein Signal, wird 0.002 s als Standardwert gesetzt.Der Wert muß zwischen 1.0e-15 und 1e12 liegen.

Feldlänge:Geben Sie hier die Feldlänge (Anzahl der Punkte im Datenfeld) ein. Es wird stets ein Default-Wertgesetzt, der der Länge des Feldes A oder des Feldes B entspricht. Befindet sich in keinem Feld eineFunktion, wird der Standarwert auf 512 festgesetzt.

Das Sägezahn-DialogfeldDie folgenden Optionen erlauben Ihnen, bestimmte Parameter festzulegen.

Amplitudenwert:Geben Sie hier einen Amplitudenwert (Spitzenwert der Schwingungen) ein.Der Wert muß zwischen -1e12 und 1e12 liegen.

Abtastrate:Geben Sie hier die Abtastrate ein. Sie bestimmt die Zeit, die zwischen zwei Werten liegt. Der Default-Wert entspricht der Abtastrate des Feldes A oder des Feldes B. Befindet sich in keinem der beidenFelder ein Signal, wird 0.002 s als Standardwert gesetzt.Der Wert muß zwischen 1.0e-15 und 1e12 liegen.

Periodenanzahl:Geben Sie hier die Anzahl der Perioden ein. Achten Sie darauf, daß hier kein Alaising auftreten kann.Wählen Sie also einen Wert, der maximal halb so groß wie die Feldlänge ist.Der Wert kann eine Dezimalzahl sein und muß zwischen 1e-12 und 1e12 liegen.

Offset:Geben Sie hier den Offset ein. Achten Sie bei der Eingabe darauf, daß der Offset und der zu erwar-tende Funktionswert nicht den Zahlenbereich für float-Zahlen (3.3e-35 bis 3.3e35) übersteigt.Der Wert muß zwischen -1e12 und 1e12 liegen.

Feldlänge:Geben Sie hier die Feldlänge (Anzahl der Punkte im Datenfeld) ein. Es wird stets ein Default-Wertgesetzt, der der Länge des Feldes A oder des Feldes B entspricht. Befindet sich in keinem Feld eineFunktion, wird der Standarwert auf 512 festgesetzt.

Das Dreieck-DialogfeldDie folgenden Optionen erlauben Ihnen, bestimmte Parameter festzulegen.

Amplitudenwert:Geben Sie hier einen Amplitudenwert () ein. Der Wert muß zwischen -1e12 und 1e12 liegen.

Abtastrate:Geben Sie hier die Abtastrate ein. Sie bestimmt die Zeit, die zwischen zwei Werten liegt. Der Default-Wert entspricht der Abtastrate des Feldes A oder des Feldes B. Befindet sich in keinem der beiden

Page 63: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 60

Felder ein Signal, wird 0.002 s als Standardwert gesetzt.Der Wert muß zwischen 1.0e-15 und 1e12 liegen.

Periodenanzahl:Geben Sie hier die Anzahl der Perioden ein. Achten Sie darauf, daß hier kein Alaising auftreten kann.Wählen Sie also einen Wert, der maximal halb so groß wie die Feldlänge ist.Der Wert kann eine Dezimalzahl sein und muß zwischen 1e-12 und 1e12 liegen.

Offset:Geben Sie hier den Offset ein. Achten Sie bei der Eingabe darauf, daß der Offset und der zu erwar-tende Funktionswert nicht den Zahlenbereich für float-Zahlen (3.3e-35 bis 3.3e35) übersteigt.Der Wert muß zwischen -1e12 und 1e12 liegen.

Feldlänge:Geben Sie hier die Feldlänge (Anzahl der Punkte im Datenfeld) ein. Es wird stets ein Default-Wertgesetzt, der der Länge des Feldes A oder des Feldes B entspricht. Befindet sich in keinem Feld eineFunktion, wird der Standarwert auf 512 festgesetzt.

Das e-Funktion-DialogfeldDie folgenden Optionen erlauben Ihnen, die Parameter für die folgende Funktion festzulegen.

Amplitudenwert:Geben Sie hier einen Amplitudenwert ein. Dieser entspricht dem Faktor vor der e-Funktion.Der Wert muß zwischen -1e12 und 1e12 liegen.

Abtastrate (dx):Geben Sie hier die Abtastrate ein. Sie bestimmt die Zeit, die zwischen zwei Werten liegt. Der Default-Wert entspricht der Abtastrate des Feldes A oder des Feldes B. Befindet sich in keinem der beidenFelder ein Signal, wird 0.002 s als Standardwert gesetzt.Der Wert muß zwischen 1.0e-15 und 1e12 liegen.

Zeitkonstante ():Geben Sie hier die Zeitkonstante für die e-Funktion ein. Beachten Sie bei der Wahl der Zeitkonstante,daß sehr schnell der Wertebereich für float-Werte überschritten werden kann.

Die Begrenzung des Eingabewertes ist kein Schutz vor der Überschreitung des float-Zahlenbereiches.

Offset:Geben Sie hier den Offset ein. Achten Sie bei der Eingabe darauf, daß der Offset und der zu erwar-tende Funktionswert nicht den Zahlenbereich für float-Zahlen (3.3e-35 bis 3.3e35) übersteigt.Der Wert muß zwischen -1e12 und 1e12 liegen.

Feldlänge:Geben Sie hier die Feldlänge (Anzahl der Punkte im Datenfeld) ein. Es wird stets ein Default-Wertgesetzt, der der Länge des Feldes A oder des Feldes B entspricht. Befindet sich in keinem Feld eineFunktion, wird der Standarwert auf 512 festgesetzt.

Das Rechteck-DialogfeldDie folgenden Optionen erlauben Ihnen, bestimmte Parameter festzulegen.

Amplitudenwert:Geben Sie hier einen Amplitudenwert () ein.Der Wert muß zwischen -1e12 und 1e12 liegen.

Abtastrate:Geben Sie hier die Abtastrate ein. Sie bestimmt die Zeit, die zwischen zwei Werten liegt. Der Default-Wert entspricht der Abtastrate des Feldes A oder des Feldes B. Befindet sich in keinem der beiden

Page 64: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 61

Felder ein Signal, wird 0.002 s als Standardwert gesetzt.Der Wert muß zwischen 1.0e-15 und 1e12 liegen.

Periodenanzahl:Geben Sie hier die Anzahl der Perioden ein. Achten Sie darauf, daß hier kein Alaising auftreten kann.Wählen Sie also einen Wert, der maximal halb so groß wie die Feldlänge ist.Der Wert darf kein Dezimalwert sein und muß zwischen 1 und 8192 liegen.

Offset:Geben Sie hier den Offset ein. Achten Sie bei der Eingabe darauf, daß der Offset und der zu erwar-tende Funktionswert nicht den Zahlenbereich für float-Zahlen (3.3e-35 bis 3.3e35) übersteigt.Der Wert muß zwischen -1e12 und 1e12 liegen.

Feldlänge:Geben Sie hier die Feldlänge (Anzahl der Punkte im Datenfeld) ein. Es wird stets ein Default-Wertgesetzt, der der Länge des Feldes A oder des Feldes B entspricht. Befindet sich in keinem Feld eineFunktion, wird der Standarwert auf 512 festgesetzt.

Tastverhältnis:Geben Sie hier das Tastverhältnis ein. Der erste Wert bezieht sich auf den ersten Teil der Rechteck-schwingung und der zweite auf den zweiten Teil der Schwingung.Es dürfen nur ganzzahlige Verhältnisse eingegeben werden, wobei die Werte zwischen 1 und 1000liegen müssen.

Das Rauschen-DialogfeldDie folgenden Optionen erlauben Ihnen, bestimmte Parameter festzulegen.

Amplitudenwert:Geben Sie hier den maximalen Amplitudenwert () ein. Das Rauschsignal liegt symmetrisch um Null.Der Wert muß zwischen -1e12 und 1e12 liegen, wobei intern mit einer 8-Bit-Auflösung gearbeitet wird.

Abtastrate:Geben Sie hier die Abtastrate ein. Sie bestimmt die Zeit, die zwischen zwei Werten liegt. Der Default-Wert entspricht der Abtastrate des Feldes A oder des Feldes B. Befindet sich in keinem der beidenFelder ein Signal, wird 0.002 s als Standardwert gesetzt.Der Wert muß zwischen 1.0e-15 und 1e12 liegen.

Feldlänge:Geben Sie hier die Feldlänge (Anzahl der Punkte im Datenfeld) ein. Es wird stets ein Default-Wertgesetzt, der der Länge des Feldes A oder des Feldes B entspricht. Befindet sich in keinem Feld eineFunktion, wird der Standarwert auf 512 festgesetzt.

Verteilung:Hier können Sie zwischen einer Gauß- und einer Gleichverteilung wählen. Die Gaußverteilung wirddurch Mittelung einer bestimmten Anzahl von gleichverteilten Rauschfunktionen errreicht. Wie oft einegleichverteilte Rauschfunktion gemittelt werden soll, kann im Systemparameter-Dialogfeld festgelegtwerden.

Das Fenster-DialogfeldDiese Dialogfeld ermöglicht Ihnen die Auswahl einer Fensterart für das Signal in Feld A.

Fensterbreite:Die Zahl für die Fensterbreite gibt an, aus wie vielen Punkten der abfallende bzw. ansteigende Astbestehen soll.

Die Cursorfenster:

Page 65: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 62

Die Cursor-Fenster werden nach dem Hanning-Fenster berechnet, wobei jeweils der durch beide Cur-sor eingeschlossene Bereich erhalten bzw. Null gesetzt (Fenster invers) wird.

Die Berechnung erfolgt nach der Formel: mit N=Fensterbreite und n läuft von 0 bis N - 1.

Das Dreieck-Fenster:Für das Dreieck-Fenster müssen Sie den Cursor 1 an die Position setzen, an der die Mitte des Fensterserscheinen soll. Der Wert an der Cursorposition bleibt erhalten.Die Nebenzipfeldämpfung beträgt bei dieser Fensterart ca. 27dB.

Das Hamming-Fenster:Für das Hamming-Fenster müssen Sie den Cursor 1 an die Position setzen, an der die Mitte desFensters erscheinen soll. Der Wert an der Cursorposition bleibt erhalten.

Die Berechnung erfolgt nach der Formel: mit N=Fensterbreite und n läuft von 0 bis N - 1.

Die Nebenzipfeldämpfung beträgt bei dieser Fensterart ca. 43dB.

Das Blackman-Fenster:Für das Blackman-Fenster müssen Sie den Cursor 1 an die Position setzen, an der die Mitte desFensters erscheinen soll. Der Wert an der Cursorposition bleibt erhalten.

Die Berechnung erfolgt nach der Formel: mit N=Fensterbreite und n läuft von 0 bis N - 1.

Die Nebenzipfeldämpfung beträgt bei dieser Fensterart ca. 58dB.

Das Blackman-Harris-Fenster:Für das Blackman-Harris-Fenster müssen Sie den Cursor 1 an die Position setzen, an der die Mittedes Fensters erscheinen soll. Der Wert an der Cursorposition bleibt erhalten.

Die Berechnung erfolgt nach der Formel: mit N=Fensterbreite und n läuft von 0 bis N-1.

Die Nebenzipfeldämpfung beträgt bei dieser Fensterart ca. 92dB.

Das Kontrollfeld von Feld A

Erste Kommentarzeile:Die erste Kommentarzeile erscheint beim Ausdruck als Überschrift eines Diagramms. Sie darf maxi-mal aus 80 Zeichen bestehen. Für einen übersichtlichen Ausdruck ist es am günstigsten, wenn dieÜberschrift aus ca. 2030 Zeichen besteht.

Zweite und dritte Kommentarzeile:Diese Kommentare erscheinen beim Ausdruck unter dem jeweiligem Diagramm. Sie dürfen aus maxi-mal 80 Zeichen bestehen. Für einen übersichtlichen Ausdruck ist es günstig, wenn die Zeichenanzahlnicht größer als 50 ist.

Achsenbeschriftung:Die Achsenbeschriftung kann aus 20 Zeichen bestehen, wobei in der Darstellung nur Platz für ca. 6Zeichen vorgesehen ist.

Bei den Achsenbeschriftungen muß die Einheit durch einen Schrägstrich / von der vorstehenden Va-riablen getrennt sein (z.B. |U|/mV).

Einheit:Für die Speicherung der Einheit ist Platz für 20 Zeichen vorgesehen. Das Programm verwendet dieseEintragungen nicht.

Datentyp und Datenart:Diese beiden Variablen haben nur informierenden Charakter. Sie können nicht verändert werden.

Page 66: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 63

Datenanzahl:Die Datenanzahl in x-Richtung zeigt an, wie viele float-Werte im Datenfeld gespeichert sind. Die Anzahlin die anderen beiden Richtungen ist im allgemeinen eins.

Sind diese Werte nicht eins, stammen die Daten des Feldes A aus einem mehrdimensionalen Feld.

Alle Werte für die Datenanzahl können nicht gändert werden.

Sie haben die Möglichkeit, die Feldlänge des Feldes A über den Befehl Feldlänge ändern Ihren Wün-schen anzupassen.

Abtastraten:Sie haben die Möglichkeit, die Abtastraten zu ändern, um Kurven übereinanderlegen zu können, dieüber eine unterschiedliche Abtastrate verfügen.

Das Feldlänge-ändern-DialogfeldGeben Sie die neue gewünschte Länge des Feldes A ein.

->Verkürzen Sie die Feldlänge, werden die letzten Datenpunkte abgeschnitten und damit gelöscht.

->Verlängern Sie die Feldlänge, werden die angehangenen Datenpunkte mit Null initialisiert.

Beachten Sie bitte, daß die Anzahl der Datenpunkte von reellen Funktionen immer durch und die vonkomplexen Funktionen immer durch darstellbar sein sollte.

Die Einhaltung dieser Konventionen ist für die Durchführung der FFT-Routinen günstig. Stimmt die An-zahl nicht mit diesen Konventionen überein, so werden sie durch Verlängern des Datenfeldes erreicht.

Beachten Sie ebenfalls, daß die maximale Datenlänge bei 8192 liegt. Das ist in der Organisation desArbeitsspeichers begründet.

Konstante ändern

Sie haben hier die Möglichkeit, den Wert der Konstanten k zu ändern. Der aktuelle Wert der Konstantenk wird im Datenfenster angezeigt.

Sie können der Konstante ebenfalls Werte aus dem Cursorfenster oder dem Datenfenster über einenDoppelklick mit der linken Maustaste zuweisen.

Diese Konstante können Sie in den Rechnungen unter dem Menüpunkt Arithmetik einsetzen.

C.6 Das Parameter-Menü

Systemparameter

Nach dem Aktivieren des Menüpunktes erhalten Sie das Systemparameter-Dialogfeld. Dort könnenSie einige Systemparameter ändern. Nach dem Beenden des Programms bleiben diese Änderungennicht erhalten.

Farben festlegen

Nach der Aktivierung dieses Menüpunktes erhalten Sie das Farben-auswählen-Dialogfeld, in dem Siedie Farben für die Diagrammdarstellung auswählen können. Sie sollten die Farben so auswählen, daßnoch ein gewisser Kontrast zwischen den einzelnen Farben besteht, um nicht unbeabsichtigt einigeAnsichtsobjekte unsichtbar zu machen.

Page 67: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 64

Drücken Sie auf den betreffenden Button für den Bereich, den Sie ändern wollen. Sie erhalten dannein Dialogfeld, in dem Sie die Farben Ihres Systems zur Verfügung gestellt bekommen. Wählen Siedie gewünschte Farbe aus und bestätigen Sie mit OK. Haben Sie alle gewünschten Veränderungenvorgenommen, schließen Sie diesen Dialog mit Ok ab und Ihre Änderungen werden sichtbar.

Die Farbeinstellungen werden nach Programmbeendigung in der Datei Imes.std gespeichert, so daßsie erhalten bleiben.

Das Systemparameter-Dialogfeld

Fehlerkoeffizient:Der Fehlerkoeffizient wird bei Divisionsrechnungen zum Nenner addiert, wenn dieser Null werdenkann. Dies soll vermeiden, daß eine nicht definierte Rechnung durchgeführt wird, die zum Absturzdes Programms führen würde.

Außerdem wird dieser Fehlerkoeffizient in das Datenfeld geschrieben, wenn die Funktion Log (0) durch-geführt werden soll.Der Fehlerkoeffizient kann im Bereich von 1e-18 bis 1e10 liegen.

Dekadenanzahl:Durch die Funktion Bodediagramm werden Zeitdaten in logarithmische Daten transformiert. Die er-zeugten Spektraldaten werden in einem logarithmischen Feld angeordnet, dessen FrequenzbereichSie mit dieser Variablen festlegen können.Die Anzahl kann im Bereich zwischen 1 und 6 liegen.

Mittelungsfaktor:Dieser Faktor gibt an, wie oft gleichverteilte Rauschfunktionen gemittelt werden sollen, um daraus einegaußverteilte Rauschfunktion zu erhalten.

Unter dem Menüpunkt Rauschen sind weitere Einzelheiten beschrieben.

C.7 Das Messen-Menü

Oszilloskopmessung

Mit diesem Befehl können Sie vom gewählten Kanal des Oszilloskops die aktuelle Meßkurve einlesen.

Diese Meßkurve besteht aus 512 Datenpunkten mit einer Auflösung von 8 Bit. Haben Sie ein Bildauf dem Oszilloskop, das aus weniger Meßpunkten besteht (Funktion MAGNIFY), wird trotzdem daskomplette Signal eingelesen. Wollen Sie das gleiche Bild erhalten, können Sie das eingelesene Signalmit Hilfe der Zoomfunktion so auseinanderziehen, daß Sie das gleiche Bild erhalten, wie auf demOszilloskop zu sehen ist.

Durch eine Erhöhung der Mittelwertzahl können Sie mehrere Messungen durchführen lassen, welchegemittelt werden.

Sind nicht alle Voraussetzungen geschaffen, so erfolgt eine Fehlerausgabe.

Kurztasten:Werkzeugleiste(Kanal 1):Keys: F11Werkzeugleiste(Kanal 2):Keys: F12

Page 68: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 65

Histogramm

Sie haben die Möglichkeit, vom Oszilloskop ein Histogramm einzulesen. Das enstehende Datenfeldbesteht durch die 8-Bit-Auflösung aus 256 Punkten.

Durch eine Erhöhung der Mittelwertzahl können Sie mehrere Messungen durchführen lassen, welchegemittelt werden.

Sind nicht alle Voraussetzungen geschaffen, so erfolgt eine Fehlerausgabe.

Einstellung der Mittelwertzahl

Hier können Sie die Mittelwertzahl einstellen. Sie ist standardmäßig auf eins gesetzt. Erhöhen Sie dieZahl, werden alle Messungen vom Oszilloskop so oft wie angegeben durchgeführt und dann gemittelt.

Beachten Sie, daß eine deutliche Erhöhung gegenüber eins eine wesentlich längere Meßdauer zurFolge hat.

Multimeter

Hier haben Sie die Möglichkeit, Einstellungen am Multimeter vorzunehmen. Nachdem Sie den Menü-punkt aktiviert haben, öffnet sich ein Dialogfeld, in dem Sie die aktuellen Einstellungen als Default-Werte sehen können. Sie können alle Einstellungen vornehmen, die vorgesehen sind. Beenden Siedas Dialogfeld mit OK, werden die Einstellungen an das Multimeter übertragen.

Diese Eingabe können Sie ebenfalls direkt am Multimeter vornehmen.

Sind nicht alle Voraussetzungen für die IEC-Bus-Übertragung geschaffen worden, erfolgt eine Fehlerausgabe.

Funktionsgenerator

Hier haben Sie die Möglichkeit, Einstellungen am Funktionsgenerator vorzunehmen. Nachdem Sieden Menüpunkt aktiviert haben, öffnet sich ein Dialogfeld, in dem Sie die aktuellen Einstellungen alsDefault-Werte sehen können. Sie können alle Einstellungen vornehmen, die vorgesehen sind. Been-den Sie das Dialogfeld mit OK, werden die Einstellungen an den Funktionsgenerator übertragen.

Diese Eingabe können Sie ebenfalls direkt am Funktionsgenerator vornehmen.

Sind nicht alle Voraussetzungen für die IEC-Bus-Übertragung geschaffen worden, erfolgt eine Fehlerausgabe.

Frequenzgangmessung

Die Frequenzgangmessung dauert im allgemeinen ca 5 min. Dies ist stark von der Startfrequenz ab-hängig, denn bei geringen Frequenzen ist die Einschwingzeit größer und somit dauert die Multimeter-messung in dem Frequenzbereich länger.

Nachdem Sie den Menüpunkt aktiviert haben, erscheint das Frequenzgang-Dialogfeld, in dem Sie diegewünschten Werte eingeben können.

Bei der Frequenzgangmessung wird das Eingangssignal durch den Funktionsgenerator erzeugt unddas Ausgangssignal über das Multimeter gemessen. Da das Multimeter die Ausgangsspannung nurbetragsmäßig erfassen kann, wird der Phasengang auf null gesetzt.

Page 69: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 66

Der Frequenzgenerator erzeugt eine Sinusschwingung, deren Frequenzeinstellung in logarithmischenSchritten erfolgt.

Das Multimeter mißt im AC+DC-effektiv-Modus, so daß auch der Gleichanteil des AusgangssignalsEinfluß auf die Meßkurve hat.

Möchten Sie nur das Wechselspannungssignal messen, müssen Sie selbst dafür sorgen, daß keineGleichspannung am Ausgang anliegt bzw. das Massepotenial des Multimeters so legen, daß keineGleichspannung zwischen den Klemmen auftritt.

Funktion übertragen

Hier haben Sie die Möglichkeit, das Zeitsignal aus Feld A zum Frequenzgenerator zu übertragen, derdann ein elektrisches Signal in der vorgegebenen Form erzeugt.

Der Speicherplatz im Funktionsgenerator für frei programmierbare Signalformen (ARB) bietet Platz für1024 Werte mit einer Auflösung von 8 Bit. Bevor Sie die Funktion zum Funktionsgenerator übertragenkönnen, müssen Sie dafür sorgen, daß die Anzahl der Datenpunkte 512 oder 1024 beträgt.

Bei 512 Datenpunkten erfolgt eine lineare Interpolation zwischen den Punkten, um 1024 Punkte zuerhalten.

Wenn Sie das Signal übertragen, wird es im Speicherplatz ARB(1) abgelegt. Um das Signal am Aus-gang zu erhalten, müssen Sie am Funktionsgenerator die Signalform ARB1 wählen.

Dieses Signal kann mit einer maximalen Wiederholrate von 20 kHz ausgelesen werden, was einerAbtastrate von 20.48 MS/s entspricht.

Das Frequenzgang-Dialogfeld

Startfrequenz:Beginn der Frequenzgangmessung. Je geringer die Startfrequenz ist, desto länger dauert die Mes-sung, da die Einschwingzeit bei den unteren Frequenzen größer ist.

Anzahl der Dekaden:Sie gibt an, über wie viele Dekaden gemessen werden soll. Die Endfrequenz berechnet sich aus:Die maximale Frequenz des Funktionsgenerators bei Sinusausgangsspannung und einer Symmetrievon 50 % beträgt 20 MHz.

Das enstehende Meßsignal besteht immer aus 512 Meßpunkten. Die Auflösung bei einer Messungüber die maximale Anzahl von 6 Dekaden ist gering.

Wählen Sie immer nur den Bereich aus, der Sie auch wirklich interessiert.

Amplitude:Die Amplitude ist die Spitze-Spitze-Spannung der Sinus-Ausgangsspannung des Funktionsgenerators.

Gleichspannungsoffset:Die Sinus-Ausgangsspannung des Funktionsgenerators wird um die angegebene Spannung erhöht.

Multimetereinstellungen:Die Einstellungen für das Multimeter sollten Sie nicht verändern, denn so wählt das Multimeter immerselbst den Meßbereich, in dem die größte Genauigkeit zu erzielen ist.

IEC-Bus-Fehlerausgaben

-> Syntax Error!Dies kann bedeuten, daß entweder ein Übertragungsproblem vorliegt oder daß Sie keine IEEE 488.2kompatible Schnittstellenkarte verwenden.

Page 70: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 67

-> Senden bzw. Empfang nicht gelungen!In diesem Falle überprüfen Sie alle Verbindungen auf Intaktheit. Dieser Fehler kann auch auf eine nichtkorrekte Initialisierung der Adressen der Meßgeräte zurückzuführen sein.

-> Unerwartetes Ende!Der Befehl wurde nicht korrekt beendet. Dies kann auf Übertragungsprobleme hinweisen, die verschie-dene Ursachen haben können.

-> Zeitüberlauf! Angesprochenes Gerät inaktiv oder nicht vorhanden!Das angesprochene Gerät ist nicht an den Bus angeschlossen oder nicht eingeschaltet. Ein weiterermöglicher Fehler kann darin bestehen, daß die Adresse des Gerätes nicht korrekt ist.

-> Unbekannter Befehl!Der verwendete Befehl wird von dem angesprochenem Gerät nicht verstanden. Schließen Sie dieMeßgeräte an den Bus an, die das Programm vorsieht. Kontrollieren Sie die Adressen der Geräte.

-> Gewählter Kanal inaktiviert!Der Kanal, von dem Sie das Signal einlesen möchten, muß am Oszilloskop eingeschaltet sein.

Sollte das Programm bei einer Messung nicht zum Ende kommen, kontrollieren Sie alle Einstellungenan den Meßgeräten, die womöglich dafür verantwortlich sind, daß eine Messung nicht abgeschlossenwerden kann.

Beim Oszilloskop tritt dieser Fehler unter Umständen auf, wenn das Signal, das Sie messen wollen,nicht korrekt getriggert wird.

Die Adressen der GeräteDas Programm ist in der Lage, die Schnittstellenkarte sowie drei Meßgeräte anzusteuern.

1. Schnittstellenkarte IEEE 488 (Keithley) auf Adresse 21

2. Oszilloskop (Philips PM 3384) auf Adresse 8

3. Multimeter (Fluke FL45) auf Adresse 10

4. Funktionsgenerator (Philips PM 5139) auf Adresse 1

C.8 Das Speichermenü

Speicher-Funktionen (Speicher-Menü)

Das Programm Imes verfügt über 4 virtuelle Speicherplätze. Sie haben die Möglichkeit, in jedem dervier Speicher ein Signal und deren dazugehörige Beschreibung abzulegen. Der Speicherinhalt bleibtwährend der Programmausführung erhalten. Wird das Programm beendet, gehen die Informationender Speicherplätze verloren.

Durch die Funktion Speicher schreiben, belegen Sie den gewünschten Speicherplatz mit dem Signal,das sich zum gegenwärtigen Zeitpunkt in Feld A befindet. Sollte der Speicher schon belegt sein, wer-den Sie gefragt, ob der alte Inhalt gelöscht werden soll.

Möchten Sie ein im Speicher abgelegtes Signal wieder nach Feld A bringen, wählen Sie die FunktionSpeicher lesen des gewünschten Speicherplatzes. Der Inhalt des Speicherplatzes bleibt erhalten, erwird nur nach Feld A kopiert.

Page 71: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 68

Ist der gewünschte Speicher-Lesen-Menüpunkt abgeblendet, befinden sich in diesem Speicher keineDaten.

Möchten Sie, daß die dort abgelegten Signale auch über die Programmausführung erhalten bleiben,speichern Sie diese gleich, nachdem Sie sie erzeugt haben.

Kurztasten:Werkzeugleiste(Speicher 1 schreiben):Keys: F4Werkzeugleiste(Speicher 1 lesen):Keys: F5

C.9 Das Arithmetikmenü

Addition

Dieser Befehl ist nur verfügbar, wenn sich im Feld A reelle oder komplexe Daten befinden.

Die Addition ist nur möglich, wenn die Felder A und B die gleiche Feldlänge und Abtastrate haben.Beide Datenfelder müssen vom gleichen Datentyp sein. Es wird jeder einzelne Abtastwert des FeldesA mit demjenigen des Feldes B addiert.

Sind beide Datenfelder komplex, werden die jeweiligen komplexen Datenelemente addiert.

Die Berechnung erfolgt nach der Formel:A[i] = A[i] + B[i]

Kurztasten:Werkzeugleiste:Keys: +

Subtraktion

Dieser Befehl ist nur verfügbar, wenn sich im Feld A reelle oder komplexe Daten befinden.

Die Subtraktion ist nur möglich, wenn die Felder A und B die gleiche Feldlänge und Abtastrate haben.Beide Datenfelder müssen vom gleichen Datentyp sein. Es wird von jedem einzelnen Abtastwert desFeldes A derjenige des Feldes B subtrahiert.

Sind beide Datenfelder komplex, werden die jeweiligen komplexen Datenelemente voneinander sub-trahiert.

Die Berechnung erfolgt nach der Formel:A[i] = A[i] - B[i]

Kurztasten:Werkzeugleiste:Keys: -

Multiplikation

Dieser Befehl ist nur verfügbar, wenn sich im Feld A reelle oder komplexe Daten befinden.

Page 72: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 69

Die Multiplikation ist nur möglich, wenn die Felder A und B die gleiche Feldlänge und Abtastrate haben.Beide Datenfelder müssen vom gleichen Datentyp sein. Es wird jeder einzelne Abtastwert des FeldesA mit demjenigen des Feldes B multipliziert.

Die Berechnung erfolgt nach der Formel:A[i] = A[i] * B[i]

Befinden sich in beiden Datenfeldern komplexe Daten, wird automatisch die komplexe Multiplikationdurchgeführt.

Kurztasten:Werkzeugleiste:Keys: *

Division

Dieser Befehl ist nur verfügbar, wenn sich im Feld A reelle oder komplexe Daten befinden.

Die Division ist nur möglich, wenn die Felder A und B die gleiche Feldlänge und Abtastrate haben.Beide Datenfelder müssen vom gleichen Datentyp sein. Es wird jeder einzelne Abtastwert des FeldesA durch denjenigen des Feldes B dividiert.

Die Berechnung erfolgt nach der Formel:A[i] = A[i] / B[i]

Befinden sich in beiden Datenfeldern komplexe Daten, wird automatisch die komplexe Division durch-geführt.

Kurztasten:Werkzeugleiste:Keys: /

konj. komplex

Dieser Befehl ist nur verfügbar, wenn sich im Feld A komplexe Daten befinden.

Die Funktion bildet das konjugiert komplexe Signal des Feldes A und speichert es nach Feld A.

Die Berechnung erfolgt nach der Formel:A[i] = Re[i] + Im[i] * -1

*j

Dieser Befehl ist nur verfügbar, wenn sich im Feld A komplexe Daten befinden.

Die Funktion multipliziert jeden einzelnen Wert des Feldes A mit j. Das Ergebnis erscheint in Feld A.

Die Berechnung erfolgt nach der Formel:A[i] = Re[i] * j + Im[i] * j

1/x Kehrwert

Dieser Befehl ist nur verfügbar, wenn sich im Feld A reelle Daten befinden.

Page 73: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 70

Die Funktion bildet den Kehrwert jedes einzelnen Wertes des Feldes A. Das Ergebnis erscheint in FeldA.

Die Berechnung erfolgt nach der Formel:A[i] = 1/ A[i]

Negation

Dieser Befehl ist nur verfügbar, wenn sich im Feld A reelle Daten befinden.

Die Funktion negiert jeden einzelnen Wert des Feldes A. Das Ergebnis erscheint in Feld A.

Die Berechnung erfolgt nach der Formel:A[i] = - A[i]

+ k

Dieser Befehl ist nur verfügbar, wenn sich im Feld A reelle oder komplexe Daten befinden.

Die Funktion addiert die Konstante k zu jedem einzelnen Wert des Feldes A. Das Ergebnis erscheintin Feld A.

Die Berechnung erfolgt nach der Formel:A[i] = A[i] +k

- k

Dieser Befehl ist nur verfügbar, wenn sich im Feld A reelle oder komplexe Daten befinden.

Die Funktion subtrahiert die Konstante k von jedem einzelnen Wert des Feldes A. Das Ergebnis er-scheint in Feld A.

Die Berechnung erfolgt nach der Formel:A[i] = A[i] - k

* k

Dieser Befehl ist nur verfügbar, wenn sich im Feld A reelle oder komplexe Daten befinden.

Die Funktion multipliziert die Konstante k mit jedem einzelnen Wert des Feldes A. Das Ergebnis er-scheint in Feld A.

Die Berechnung erfolgt nach der Formel:A[i] = A[i] * k

Befinden sich in Feld A komplexe Daten, wird automatisch die komplexe Multiplikation durchgeführt.

/k

Dieser Befehl ist nur verfügbar, wenn sich im Feld A reelle oder komplexe Daten befinden.

Die Funktion dividiert jeden einzelnen Wert des Feldes A durch die Konstante k. Das Ergebnis er-scheint in Feld A.

Page 74: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 71

Die Berechnung erfolgt nach der Formel:A[i] = A[i] / k

Befinden sich in Feld A komplexe Daten, wird automatisch die komplexe Division durchgeführt.

C.10 Das Funktionenmenü

log(x)

Diese Funktion bildet den Logarithmus von Feld A, wobei das Ergebnis nach Feld A geschrieben wird.

Die Funktion ist für Argumente von 0 und kleiner 0 nicht definiert. Treten Argumente gleich 0 auf,werden die Ergebnisse für dieses Argument auf den Wert des Fehlerkoeffizienten gesetzt. Treten Ar-gumente kleiner 0 auf, wird die Funktion abgebrochen und der vorherige Zustand wiederhergestellt.

Es besteht die Möglichkeit, daß der Wertebereich für die float-Werte in Feld A überschritten wird. Indiesem Fall läßt sich die Funktion nicht durchführen bzw. wird beim Auftreten der Zahlenbereichsüber-schreitung abgebrochen und der alte Zustand wird wiederhergestellt.

Die Berechnung erfolgt nach der Formel:A[i] = log( A[i] )

ln(x)

Diese Funktion bildet den natürlichen Logarithmus von Feld A, wobei das Ergebnis nach Feld A ge-schrieben wird.

Die Funktion ist für Argumente von 0 und kleiner 0 nicht definiert. Treten Argumente gleich 0 auf,werden die Ergebnisse für dieses Argument auf den Wert des Fehlerkoeffizienten gesetzt. Treten Ar-gumente kleiner 0 auf, wird die Funktion abgebrochen und der vorherige Zustand wiederhergestellt.

Es besteht die Möglichkeit, daß der Wertebereich für die float-Werte in Feld A überschritten wird. Indiesem Fall läßt sich die Funktion nicht durchführen bzw. wird beim Auftreten der Zahlenbereichsüber-schreitung abgebrochen und der alte Zustand wird wiederhergestellt.

Die Berechnung erfolgt nach der Formel:A[i] = ln( A[i] )

ld(x)

Diese Funktion bildet den Logarithmus dualis von Feld A, wobei das Ergebnis nach Feld A geschriebenwird.

Die Funktion ist für Argumente von 0 und kleiner 0 nicht definiert. Treten Argumente gleich 0 auf,werden die Ergebnisse für dieses Argument auf den Wert des Fehlerkoeffizienten gesetzt. Treten Ar-gumente kleiner 0 auf, wird die Funktion abgebrochen und der vorherige Zustand wiederhergestellt.

Es besteht die Möglichkeit, daß der Wertebereich für die float-Werte in Feld A überschritten wird. Indiesem Fall läßt sich die Funktion nicht durchführen bzw. wird beim Auftreten der Zahlenbereichsüber-schreitung abgebrochen und der alte Zustand wird wiederhergestellt.

Die Berechnung erfolgt nach der Formel:A[i] = ld( A[i] )

Page 75: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 72

20 * log(x) -> dB

Diese Funktion bildet den 20fachen Logarithmus von Feld A, wobei das Ergebnis nach Feld A ge-schrieben wird.

Die Funktion ist für Argumente von 0 und kleiner 0 nicht definiert. Treten Argumente gleich 0 auf,werden die Ergebnisse für dieses Argument auf den Wert des Fehlerkoeffizienten gesetzt. Treten Ar-gumente kleiner 0 auf, wird die Funktion abgebrochen und der vorherige Zustand wiederhergestellt.

Es besteht die Möglichkeit, daß der Wertebereich für die float-Werte in Feld A überschritten wird. Indiesem Fall läßt sich die Funktion nicht durchführen bzw. wird beim Auftreten der Zahlenbereichsüber-schreitung abgebrochen und der alte Zustand wird wiederhergestellt.

Die Berechnung erfolgt nach der Formel:A[i] = 20 * log( A[i] )

10 hoch x

Diese Funktion berechnet 10 hoch x.

Es besteht die Möglichkeit, daß der Wertebereich für die float-Werte in Feld A überschritten wird. Indiesem Fall läßt sich die Funktion nicht durchführen bzw. wird beim Auftreten der Zahlenbereichsüber-schreitung abgebrochen und der alte Zustand wird wiederhergestellt.

e hoch x

Diese Funktion berechnet e hoch x, wobei das Ergebnis nach Feld A geschrieben wird.

Es besteht die Möglichkeit, daß der Wertebereich für die float-Werte in Feld A überschritten wird. Indiesem Fall läßt sich die Funktion nicht durchführen bzw. wird beim Auftreten der Zahlenbereichsüber-schreitung abgebrochen und der alte Zustand wird wiederhergestellt.

2 hoch x

Diese Funktion berechnet 2 hoch x, wobei das Ergebnis nach Feld A geschrieben wird.

Es besteht die Möglichkeit, daß der Wertebereich für die float-Werte in Feld A überschritten wird. Indiesem Fall läßt sich die Funktion nicht durchführen bzw. wird beim Auftreten der Zahlenbereichsüber-schreitung abgebrochen und der alte Zustand wird wiederhergestellt.

x hoch k

Diese Funktion berechnet x hoch k, wobei das Ergebnis nach Feld A geschrieben wird.

Es besteht die Möglichkeit, daß der Wertebereich für die float-Werte in Feld A überschritten wird. Indiesem Fall läßt sich die Funktion nicht durchführen bzw. wird beim Auftreten der Zahlenbereichsüber-schreitung abgebrochen und der alte Zustand wird wiederhergestellt.

k hoch x

Diese Funktion berechnet k hoch x, wobei das Ergebnis nach Feld A geschrieben wird.

Page 76: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 73

Es besteht die Möglichkeit, daß der Wertebereich für die float-Werte in Feld A überschritten wird. Indiesem Fall läßt sich die Funktion nicht durchführen bzw. wird beim Auftreten der Zahlenbereichsüber-schreitung abgebrochen und der alte Zustand wird wiederhergestellt.

Wurzel

Diese Funktion zieht die Wurzel aus den Daten in Feld A und schreibt das Ergebnis nach Feld A.

Es wird immer die Wurzel aus dem Betrag der Daten gezogen, so daß keine undefinierten Zuständeauftreten können.

Die Berechnung erfolgt nach der Formel:

Quadrieren

Diese Funktion quadriert die Daten in Feld A und schreibt das Ergebnis nach Feld A.

Es besteht die Möglichkeit, daß der Wertebereich für die float-Werte in Feld A überschritten wird. Indiesem Fall läßt sich die Funktion nicht durchführen bzw. wird beim Auftreten der Zahlenbereichsüber-schreitung abgebrochen und der alte Zustand wird wiederhergestellt.

Die Berechnung erfolgt nach der Formel:

sin(x)

Diese Funktion bildet den Sinus der Daten in Feld A. Die Winkelwerte werden in der Einheit Raderwartet. Die zurückgegeben Werte liegen zwischen -1 und 1.

Für große Werte von x (oberhalb 227) wird das Ergebnis auf Grund der notwendigen Reduktion aufden Bereich von 0 bis ungenau.

Die Berechnung erfolgt nach der Formel:A[i] = sin( A[i] )

arcus sin(x)

Diese Funktion stellt die Umkehrfunktion zu sin(x) dar. Sie erwartet einen Wert im Bereich von -1 bis 1und gibt den dazugehörigen Winkelwert in rad (0 bis ) an.

Das Ergebnis für x-Werte außerhalb des Wertebereichs ist Null.

Die Berechnung erfolgt nach der Formel:A[i] = arcsin( A[i] )

cos(x)

Diese Funktion bildet den Cosinus der Daten in Feld A. Die Winkelwerte werden in der Einheit Raderwartet. Die berechneten Werte liegen zwischen -1 und 1.

Für große Werte von x (oberhalb 227) wird das Ergebnis auf Grund der notwendigen Reduktion aufden Bereich von 0 bis ungenau.

Page 77: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 74

Die Berechnung erfolgt nach der Formel:A[i] = cos( A[i] )

arcus cos(x)

Diese Funktion stellt die Umkehrfunktion zu cos(x) dar. Sie erwartet einen Wert im Bereich von -1 bis1 und gibt den dazugehörigen Winkelwert in rad (0 bis ) an.

Das Ergebnis für x-Werte außerhalb des Wertebereichs ist Null.

Die Berechnung erfolgt nach der Formel:A[i] = arccos( A[i] )

tan(x)

Diese Funktion bildet den Tangens der Daten in Feld A. Die Winkelwerte werden in der Einheit Raderwartet.

Für große Werte von x (oberhalb 227) wird das Ergebnis auf Grund der notwendigen Reduktion aufden Bereich von 0 bis ungenau. Für x-Werte gleich für ist diese Funktion nicht definiert.

Die Ergebnisse mit diesen Argumenten werden auf Null gesetzt, um Programmabstürze zu vermeiden.

Die Berechnung erfolgt nach der Formel:A[i] = tan( A[i] )

arctan(x)

Diese Funktion stellt die Umkehrfunktion zu Tan(x) dar. Der berechnete Winkelwert wird in rad ange-geben und liegt im Bereich von ( bis ).

Die Berechnung erfolgt nach der Formel:A[i] = arctan( A[i] )

C.11 Das Operationenmenü

Integration

Diese Funktion integriert das Signal aus Feld A und schreibt das Ergebnis nach Feld A.

Die Berechnung erfolgt nach der Formel , wobei i von 0 bis zur Anzahl der Daten in Feld A läuft.

Kurztasten:Werkzeugleiste:Keys: Alt+I

Differentiation

Diese Funktion differenziert das Signal aus Feld A und schreibt das Ergebnis nach Feld A.

Die Berechnung erfolgt nach der Formel , wobei i von 0 bis zur Anzahl der Daten in Feld A läuft.

Page 78: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 75

Kurztasten:Werkzeugleiste:Keys: Alt+D

FFT

Das Signal in Feld A wird Fast-Fourier-transformiert. Die Transformation benötigt ein Datenfeld mit derLänge . Ist das Datenfeld nicht genau groß, wird dies intern durch Anhängen von Nullen erreicht.

Die FFT wird nach einer Berechnungsroutine aus dem Buch Numerical Recipes in C (CambridgeUniversity Press, 1992) durchgeführt.

Kurztasten:Werkzeugleiste:Keys: Strg+F

IFFT

Das Signal in Feld A wird invers Fast-Fourier-transformiert. Die Transformation benötigt ein Datenfeldmit der Länge . Ist das Datenfeld nicht genau groß, wird dies intern durch Anhängen von Nullen erreicht.

Die IFFT wird nach einer Berechnungsroutine aus dem Buch Numerical Recipes in C (CambridgeUniversity Press, 1992) durchgeführt.

Kurztasten:Werkzeugleiste:Keys: Strg+I

Faltung

Diese Funktion faltet Feld A mit Feld B. Die Berechnug erfolgt nach der Formel:

Da die Anzahl der Datenpunkte des enstehenden Datenfeldes genauso groß ist wie die des Feldes A,ist darauf zu achten, daß die Anzahl der Datenpunkte des Feldes B wesentlich geringer als die desFeldes A ist oder signifikante Stellen des Signals in Feld B am Ende des Feldes auftreten. Damit istgewährleistet, daß das Ergebnis nur geringe Fehler aufweist.

Beachten Sie, daß die Berechnungszeit exponentiell mit der Datenanzahl steigt, das heißt, die Berech-nung kann bei der maximalen Datenanzahl von 8192 Punkten durchaus 6-8 min in Anspruch nehmen.

Kurztasten:Keys: Alt+F

Kreuzkorrelation

Diese Funktion korreliert Feld A mit Feld B. Die Berechnug erfolgt nach der Formel:

Da die Anzahl der Datenpunkte des enstehenden Datenfeldes genauso groß ist wie die des Feldes A,ist darauf zu achten, daß die Anzahl der Datenpunkte des Feldes B wesentlich geringer als die desFeldes A ist oder signifikante Stellen des Signals in Feld B am Beginn des Feldes auftreten. Damit istgewährleistet, daß das Ergebnis nur geringe Fehler aufweist.

Page 79: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 76

Beachten Sie, daß die Berechnungszeit exponentiell mit der Datenanzahl steigt, das heißt, die Berech-nung kann bei der maximalen Datenanzahl von 8192 Punkten durchaus 6-8 min in Anspruch nehmen.

Kurztasten:Keys: Alt+K

Autokorrelation

Diese Funktion autokorreliert das Signal aus Feld A . Die Berechnug erfolgt nach der Formel:

Die Anzahl der Datenpunkte des enstehenden Datenfeldes ist doppelt so groß wie die des Ausgangs-feldes. Unter der Voraussetung, daß vor und nach dem Ausgangsfeld alle Werte Null sind, ist das soentstehende Ergebnis korrekt.

Das doppelt so große Ergebnisfeld ist dann notwendig, wenn die signifikanten Stellen gleichmäßigüber das Feld des Ausgangssignals verteilt sind.

Wird dieses doppelt so große Ergebnisfeld nicht gewünscht, kann die Kreuzkorrelation mit vorhergleichgesetztem Feld A und Feld B durchgeführt werden.

Beachten Sie, daß die Berechnungszeit exponentiell mit der Datenanzahl steigt, das heißt, die Berech-nung bei der maximalen Datenanzahl von 4096 Punkten kann durchaus 6-8 min in Anspruch nehmen.

Kurztasten:Keys: Alt+A

Bodediagramm

Diese Funktion wandelt die reellen Daten aus Feld A in logarihtmische Daten um. Die Darstellungerfolgt dann im Boodediagramm. Über wie viele Dekaden die Berechnung erfolgen soll, können Sieunter dem Menüpunkt Systemparameter einstellen.

Der Ablauf der Berechnung erfolgt in den folgenden Schritten:

-> Vergößerung des Ausgangsfeldes durch Zero-Padding auf 16384 Werte,

-> Durchführung der Fast-Fourier-Transformation,

-> Bestimmung von verschiedenen Kenngrößen zur logarithmischen Darstellung,

-> Auslesen der Daten aus dem Fast-Fourier-transformierten Feld in logarithmischen Schritten.

Die so erzeugten Daten lassen sich nicht weiterverarbeiten, sie dienen lediglich der Visualisierung undder Möglichkeit, diese Daten zu speichern. Mit Hilfe der Undo-Funktion gelangen Sie in den vorherigenZustand.

Kurztasten:Keys: Alt+B

Schmitt-Trigger

Diese Funktion wendet den Schmitt-Trigger auf das Signal in Feld A an. Das Ergebnis erscheint imFeld A.

Nach dem Aufruf dieser Funktion erscheint ein Dialogfeld, in dem Sie den oberen und unteren Schwell-wert eingeben müssen. Der default-Wert ist auf die halbe minmimale und die halbe maximale Amplitu-de gesetzt.

Page 80: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 77

Bei der Eingabe muß darauf geachtet werden, daß der untere Schwellwert nicht größer als der obereist.

Geben Sie für den oberen und unteren Schwellwert ein und den selben Wert ein, wird die Funktioneines Komparators durchgeführt.

Kurztasten:Keys: Alt+S

Verteilungsfunktion

Diese Funktion berechnet die Verteilungsfunktion des Signals aus Feld A. Das Ergebnis erscheint inFeld A.

Nach dem Aufruf dieser Funktion erscheint ein Dialogfeld, in dem Sie angeben, mit welcher Auflösungdie Berechnung durchgeführt werden soll.

Der Amplitudenbereich wird in die von Ihnen angegebene Stufenzahl aufgeteilt.

Die Anzahl der Datenwerte im Ergebnisfeld entspricht der angegebenen Stufenanzahl.

Kurztasten:Keys: Alt+V

C.12 Das Darstellungmenü

1 Dia <–> 2 Dia

Mit diesem Befehl können Sie zwischen der Ein-Diagramm- und der Zwei-Diagramm-Darstellung wäh-len.

Ist dieser Befehl nicht verfügbar, befinden sich in Feld A reelle Daten und Feld B ist nicht belegt.

Feld A <–> Feld A & Feld B

Mit diesem Befehl können Sie zwischen der Darstellung der Daten von Feld A und der Darstellung vonFeld A & Feld B wählen.

Sollte das Programm die gewünschte Darstellung nicht ausführen, stimmen einige Parameter von FeldA und Feld B nicht überein:

reelle Daten:-> unterschiedliche Abtastrate-> unterschiedliche Datenanzahl

Sie können die Abtastrate unter dem Menüpunkt Kontrollstruktur Feld A und die Feldlänge mit demBefehl Feldlänge ändern verändern.

komplexe Daten:-> unterschiedlicher Frequenzabstand-> unterschiedliche Datenanzahl

Der Frequenzabstand läßt sich unter dem Menüpunkt Kontrollstruktur Feld A und die Feldlänge unterdem Menüpunkt Feldlänge ändern verändern.

Page 81: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 78

Haben Sie die Zwei-Diagramm- und die Feld-A-Darstellung gewählt, wird immer der Betrag zusammenmit der Phase oder der Realteil zusammen mit dem Imaginärteil dargestellt.

logarithmische Daten:-> unterschiedliche Startfrequenz (dx)-> unterschiedliche Endfrequenz (dy)-> unterschiedliche Datenanzahl

Sie können diese Variablen unter dem Menüpunkt Kontrollstruktur Feld A bzw. Feldlänge ändern soverändern, daß eine überlagernde Darstellung möglich wird.

Logarithmische Daten können nicht als Realteil bzw. Imaginärteil dargestellt werden. Ansonsten be-stehen die gleichen Möglichkeiten der Darstellung wie bei einfach komplexen Daten.

Möchten Sie z.B. den Betrag einer komplexen Funktion mit einer reellen Funktion vergleichend über-einander darstellen, können Sie mit Hilfe der Funktion Datentransformation eine der beiden Funktionenumwandeln, so daß ein übereinstimmender Datentyp vorliegt.

Realteil

Dieser Menüpunkt schaltet die Darstellung des Realteils ein. Haben Sie die Zwei-Diagramm-Darstellunggewählt, wird im zweiten Diagramm automatisch der Imaginärteil dargestellt.

Imaginärteil

Dieser Menüpunkt schaltet die Darstellung des Imaginärteils ein. Haben Sie die Zwei-Diagramm-Darstellung gewählt, wird im anderen Diagramm automatisch der Realteil dargestellt.

Betrag

Dieser Menüpunkt schaltet die Darstellung des Betrages ein. Haben Sie die Zwei-Diagramm-Darstellunggewählt, wird im zweiten Diagramm automatisch die Phase dargestellt.

Phase

Dieser Menüpunkt schaltet die Darstellung der Phase ein. Haben Sie die Zwei-Diagramm-Darstellunggewählt, wird im anderen Diagramm automatisch der Betrag dargestellt.

Feld A über Feld B

Dieser Menüpunkt funktioniert als Ein-Aus-Schalter.

Der Befehl ist nur verfügbar, wenn sich in beiden Feldern reelle Daten befinden und die Abtastratesowie die Datenanzahl übereinstimmen.Es wird Feld A auf der y-Achse und Feld B auf der x-Achse aufgetragen.Eine manuelle Skalierung ist nicht möglich.Um wieder eine andere Darstellungsform zu wählen, können Sie den Menüpunkt noch einmal anwäh-len.

Page 82: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 79

Ortskurve

Dieser Menüpunkt funktioniert als Ein-Aus-Schalter.

Mit Hilfe dieses Befehls können Sie sich die Ortskurve von Feld A anzeigen lassen.Eine manuelle Skalierung ist nicht möglich.Um wieder eine andere Darstellungsform zu wählen, können Sie den Menüpunkt noch einmal anwäh-len.

Skalierung

Nach dem Aufruf dieser Funktion erscheint ein Dialogfeld, in dem Sie den Max- und den Min-Wertdes darzustellenden Diagramms angeben können. Bei Zwei-Diagramm-Darstellung bezieht sich diemanuelle Skalierung nur auf das obere Diagramm.

Diese Einstellung bleibt solange erhalten, bis Sie sie wieder umstellen, außer bei den Routinen, dieden Datentyp des Signals verändern.

Sollten Sie eine Darstellung erhalten, in der das Signal nach oben bzw. unten aus dem Diagrammverschwindet, kontrollieren Sie die Skalierungseinstellung.

Eine manuelle Skalierung ist nicht möglich bei der Ortskurven-Darstellung, bei der Feld A über FeldB-Darstellung und bei allen logarithmischen Darstellungen.

Zoom

Mit dieser Funktion haben Sie die Möglichkeit, mit Hilfe der Cursor das Signal beliebig oft zu zoomen,bis die dargestellte Kurve nur noch aus drei Datenpunkten besteht.

Sie haben unterschiedliche Möglichkeiten, die Cursor zu setzen:

->Setzen Sie nur den linken Cursor, wird der Bereich des Signals, das sich zwischen Cursor 1 undDiagrammende befindet, dargestellt.

->Setzen Sie nur den rechten Cursor, wird der Bereich des Signals, das sich zwischen Cursor 2 undDiagrammbeginn befindet, dargestellt.

->Setzen Sie beide Cursor, so wird der Bereich des Signals, das sich zwischen Cursor 1 und Cursor 2befindet, dargestellt.

Bei der Zwei-Diagramm-Darstellung wird die Kurve, die im unteren Diagramm dargestellt wird, entspre-chend der oberen gezoomt.

Kurztasten:Keys: Z

Werkzeugleiste

Nutzen Sie diese Funktion, um sich die Werkzeugleiste anzeigen zu lassen. Sie enthält einige der ammeisten genutzten Funktionen von Imes, z.B. Datei öffnen. Ein Häkchen im Menü Darstellung markiert,ob die Werkzeugleiste angezeigt wird.

Betätigen Sie die Werkzeugleiste, wenn Sie Hilfe für die Werkzeugleisten-Schaltflächen benötigen.

Page 83: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 80

Statuszeile

Mit diesem Befehl läßt sich die Statuszeile ein- oder ausblenden. Ein Häkchen vor dem MenüpunktStatuszeile zeigt den Zustand an.

Die Statuszeile zeigt einige Informationen an.

Phasenkorrektur

Mit diesem Befehl können Sie die Phasenkorrektur ein oder ausschalten.Die Phasenkorrektur korrigiert den Phasengang, so daß sich die Phase stets kontinuierlich ändert.Es werden auftretende Phasensprünge größer 180˚ als 360˚-Drehung aufgefaßt, wodurch der weiterePhasenverlauf korrigiert wird.

C.13 Die Cursor Das Programm verfügt über zwei Cursor.

Der linke Cursor (Cursor 1) kann in einem Bereich von ca. 10 Pixel beginnend am linken Diagrammrandin Richtung des linken Bildrandes mit der Maus angefaßt und bewegt werden. Der Cursor 1 kann immernur links des Cursors (in einem Bereich von ca. 10 Pixel) angefaßt und bewegt werden.

Der rechte Cursor (Cursor 2) kann in einem Bereich von ca. 10 Pixel beginnend am rechten Diagramm-rand in Richtung des rechten Bildrandes angefaßt und bewegt werden. Der Cursor 2 kann nur rechtsdes Cursors (in eimenm Bereich von ca. 10 Pixel) angefaßt und bewegt werden.

Die Bewegung der Cursor erfolgt bei Zwei-Diagramm-Darstellung nur im oberen Diagramm.

In einem Cursor-Datenfenster werden die aktuellen Positionen und die dazugehörigen Werte sowie dieDifferenzwerte zwischen beiden angezeigt.

Befindet sich ein Cursor in einem Phasengang, ist der im Cursor-Datenfenster angezeigte y-Wert nichtder korrigierte Phasenwert, sondern der, der mit Hilfe der Tangensfunktion berechnet wurde.

C.14 Die Werkzeugleiste Die Werkzeugleiste erscheint am oberen Rand des Programm-

fensters unterhalb der Menüleiste. Die Werkzeugleiste ist dazu gedacht, einige Befehle durch einenMausklick schnell ausführen zu können.

C.15 Die Statuszeile

Die Statuszeile ist im unteren Teil des Programmfensters von Imes zu sehen. Zum Ein- oder Ausblen-den der Statuszeile benutzen Sie den Statuszeilen-Befehl unter dem Menüpunkt Darstellung.

Der linke Teil der Statuszeile beinhaltet die Beschreibungen der einzelnen Menüpunkte bei deren Akti-vierung.

Die rechten drei Fenster der Statuszeile geben Auskunft über den Zustand der Tastatur.

Indicator Beschreibung

CAP Die Caps Lock-Taste ist eingerastet.

NUM Die Num Lock-Taste ist eingerastet.

Page 84: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 81

SCRL Die Scroll Lock-Taste ist eingerastet.

C.16 Das Hilfemenü

Index

Mit diesem Befehl öffnen Sie das Hilfefenster des Programms Imes. Von diesem Fenster können Siedann die verschiedenen Hilfethemen anklicken. Diese geben detaillierte Informationen zu den einzel-nen Funktionen.

Um spezielle Informationen zu einem Punkt zu erhalten, können Sie auch den Hilfe-Button der Werk-zeugleiste verwenden.

Using Help Befehl

Dieser Befehl zeigt Ihnen eine Hilfe, die zeigt, wie die Hilfe grundsätzlich benutzt werden kann.

Über Befehl

Zeigt eine kurze Information sowie eine Copyright-Notitz und Versionsnummer des Programms Imes.

Die Context-Hilfe

Klicken Sie den Button der Werkzeugleiste an. Sie erhalten dann einen Mauszeiger mit einem Frage-zeichen. Klicken Sie nun auf den gewünschten Menü- oder einen anderen Punkt auf dem Bildschirm,über den Sie Informationen erhalten möchten.

Sie erhalten dann sofort detaillierte Hilfe speziell zu dem Punkt, den Sie angewählt haben.

C.17 Die Titelbar

Titel-Bar

Die Titel-Bar ist die erste Zeile im Programmfenster. Sie beinhaltet unter anderem den Programmna-men mit dem Namen der aktuellen Datei.Mit der Maus läßt sich das Programmfenster anfassen und verschieben.

Die Titel-Bar beinhaltet die folgenden Elemente:-> Application Kontroll-Menü-Button-> Maximierungs-Button-> Minimierungs-Button-> Name des Programms-> Name der aktuellen Datei

C.18 Das Systemmenü

Page 85: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 82

Größe Befehl

Nutzen Sie diesen Befehl, um einen Vier-Spitzen-Pfeil zu erhalten. Mit diesem können Sie dann dasaktive Fenster verschieben.

Nachdem Sie diesen Pfeil mit den vier Spitzen erhalten haben:

1. Drücken Sie eine der Richtungs-Tasten (links, rechts, oben, unten), um ihn an den Rand desFensters zu schieben, welchen Sie verändern möchten.

2. Drücken Sie eine Richtungs-Taste und verschieben Sie den Rahmen.

3. Drücken Sie Enter, wenn Sie die gewünschten Veränderungen erreicht haben.

Note: Dieses Kommando ist nicht verfügbar, wenn das Fenster die maximale Größe besitzt.

Kurztaste:Maus: Den Fensterrahmen anfassen und mit der Maus den Rahmen ziehen.

Verschieben

Mit Hilfe dieses Kommandos können Sie das aktive Fenster verschieben. Nutzen Sie dazu die Rich-tungstasten, nachdem Sie den Pfeil mit den vier Spitzen erhalten haben.

Note: Dieses Kommando ist nicht verfügbar, wenn das Fenster die maximale Größe besitzt.

Kurztasten:Tasten: CTRL+F7

Minimierungs-Befehl

Nutzen Sie dieses Kommando, um Imes in ein Icon zu verwandeln.

Kurztasten:Maus: Klicken Sie den Minimierungs-Button in der Titel-Bar an.Tasten: ALT+F9

Maximierungs-Befehl

Nutzen Sie das Kommando, um das Fenster auf die maximale Größe zu bringen.

KurztastenMaus: Klicken Sie den Maximierungs-Button in der Titel-Bar an oder klicken Sie die Titel-Bar doppeltan.Tasten: CTRL+F10

Schließen Befehl

Nutzen Sie dieses Kommando, um das aktuelle Fenster oder eine Dialogbox zu schließen.

Doppelt auf den Kontrollmenübutton klicken führt zu dem gleichem Ergebnis.

Page 86: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 83

Kurztasten:Tasten: ALT+F4 schließt das Programm Imess oder die gerade aktive Dialogbox.

Wiederherstellen Befehl

Nutzen Sie diesen Befehl, um das Programmfenster wieder in dessen Ursprungsgröße herzustellen.

Wechseln zu Befehl

Dieser Befehl zeigt Ihnen in einer Tabelle alle aktiven Programme. Nutzen Sie die Tasklist, um zuanderen Anwendungen zu wechseln bzw. diese zu beenden

Kurztasten:Tasten: CTRL+ESC

Color dialog box

In diesem Dialogfeld können Sie die vom System vorgesehenen Farben auswählen.

Im rechten Teil des Dialogfeldes können Sie den Pfeil mit der Maus anfassen und sich eine spezielleFarbe selbst wählen, auch wenn diese nicht in den Farbfeldern vorgesehen ist.

Wählen Sie für die jeweiligen Darstellungsobjekte nur Farben, die in gewissem Kontrast zu den anderenstehen, sonst können bestimmte Objekte nicht mehr sichtbar gemacht werden.

C.19 Das Druckenmenü

Drucken

Nutzen Sie diesen Befehl, um die aktuelle Ansicht zu drucken. Nach dem Aktivieren des Menüpunkteserscheint die Drucken-Dialogbox, in der Sie eine Reihe von Einstellungen vornehmen können z.B. dieAnzahl der Kopien, den Standarddrucker und andere Druck-Optionen.

Kurztasten:Werkzeugleiste:Keys: CTRL+D

Drucken-DialogboxDie folgenden Optionen dienen zu Spezifizierung der Eigenschaften des Ausdrucks, sowie der desDruckers:

DruckerHier steht der aktuelle Drucker, bzw. die aktuelle Verbindung. Über den Einrichtung-Button haben Siedie Möglichkeit diese Einstellung zu ändern.

EinrichtenDie Betätigung dieses Buttons führt zum Aufruf der Druckerinstallation-Dialogbox, in der Sie die neuenDruckeinstellungen vornehmen können.

Page 87: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 84

DruckbereichSollte immer auf ALLES stehen

KopienGeben Sie die Anzahl der gewünschten Kopien an.

Kopien sortierenDa keine verschiedenen Seiten ausgedruckt werden können ist diese Einstellung wirkungslos.

DruckqualitätGeben Sie die Einstellung für die Druckauflösung ein. Eine geringen Auflösung führt zu einem schlech-teren Druckergebnis, aber in kürzerer Zeit.!!! Wählen Sie immer eine symetrisch Auflösung(z.B. 300x300), denn dannn erfolgt der Aus-druck korrekt !!!

Fortgang des DruckprozessesDiese Dialogbox zeigt Ihnen an, wie viele Seiten berechnet und zum Drucker gesandt wurden.

Zum Abbrechen des Druckvorgangs betätigen Sie den Abbrechen-Button.

Druckvorschau

Nutzen Sie diesen Befehl, um sich anzeigen zu lassen, wie später das Druckbild aussehen wird. In derDruckvorschau-Werkzeugleiste haben Sie die Möglichkeit die vorgesehenen Funktionen z.B. Zoom-funktion und Schließen-Befehl zu nutzen.

Druckvorschau-WerzeugleisteDie Druckvorschau-Werkzeugleiste beinhaltet folgende Funktionen:

PrintBeginnt sofort den Druck-Job.

Next PageNicht verwendet in Imes.

Prev PageNicht verwendet in Imes.

One Page / Two PageNicht verwendet in Imes.

Zoom InZeigt ein kleineren Ausschnitt des Druckbereiches.

Zoom OutZeigt ein größeren Ausschnitt des Druckbereiches.

CloseBeendet die Druckvorschau.

Druckerinstallation

Nutzen Sie diesen Befehl, um die Druckereinstellungen zu verändern. Bei Aktivierung des Befehls,erscheint die Druckerinstallation-Dialogbox, in der Sie die Druckereinstellungen ändern können.

Druckerinstallation-DialogboxDie folgenden Optionen dienen zu Spezifizierung der Eigenschaften des Ausdrucks:

Page 88: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

ANHANG C. IMES DOKUMENTATION 85

DruckerWählen Sie hier den zu benutzenden Drucker aus.

FormatGeben Sie das gewünschte Format an.

PapiergrößeGeben Sie die Papiergröße an, auf dem die Druckausgabe erfolgen soll.

PapierzufuhrGeben Sie hier die an, aus welchem Schacht das Papier entnommen werden soll.

OptionenNutzen Sie diesen Befehl, um verschiede Druckereinstellungen, die spezielll Ihren Drucker betreffen,zu verändern.

Network...Nutzen Sie diesen Punkt um die neue Netzwerkposition anzugeben.

Page 89: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

Abbildungsverzeichnis

3.1 VI–Hierarchie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

B.1 Globale Variablen vom Typ Speicherstelle und Fehlermeldungsspeicher . . . . . . . . . 41

B.2 Beispiel für den Einsatz von Property Node zum setzen der Sichtbarkeit in main.vi . . . 42

B.3 Speicherverwaltung in main.vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

B.4 Die Datei oszi_auslesen_SUB.vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

86

Page 90: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

Tabellenverzeichnis

2.1 Standardfunktionen in IMES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2 arithmetische Grundfunktionen in IMES . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.3 arithmetische Operationen in IMES . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.4 Operationen komplexere Funktionen in IMES . . . . . . . . . . . . . . . . . . . . . . . 7

2.5 Darstellung von Funktionen in IMES . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.6 Standardsignalformen des PM5139 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

87

Page 91: Funktionsgenerator in labview - TI · PDF fileKAPITEL 1. EINLEITUNG 4 mit denen der Programmiersprache G zu verbinden und zu dokumentieren. 1.2 LabVIEW G ist eine Programmiersprache

Literaturverzeichnis

[Pau] Thorsten Paul. IMES Dokumentation. Extrahiert aus Windowshilfe.

[PM591] Handbuch - Funktionsgenerator PM 5139, 1991.

88