Einführung in LabVIEW (eBook)
596 Seiten
Hanser, Carl (Verlag)
978-3-446-44407-2 (ISBN)
Außer den Grundlagen zum Programmieren mit LabVIEW erläutert das Lehrbuch mathematische Voraussetzungen wie die Fouriertransformation, die Filterung und die Behandlung von Differentialgleichungen. Es folgen Informationen zur Kommunikation mit LabVIEW sowie Kapitel zur professionellen Programmentwicklung und zur FPGA-Programmierung.
Die 6. Auflage wurde komplett durchgesehen und aktualisiert. Zudem sind weitere Themenbereiche wie Skripting und XNodes hinzugekommen.
Die Test- bzw. Studentenversion kann auf der Homepage von National Instruments heruntergeladen werden.
Auf der Website www.geho-LabVIEW.de
finden Sie alle Beispiele des Lehrbuchs sowie Lösungen zu allen Übungsaufgaben und eine Linkliste.
Prof. Dipl.-Math. Wolfgang Georgi lehrt an der Hochschule Ravensburg-Weingarten.Er ist Certified LabVIEW Associate Developer (CLAD). M.Eng. Philipp Hohl ist Lehrbeauftragter an der Hochschule Ravensburg-Weingarten.
Vorwort zur sechsten Auflage 6
Inhalt 8
Teil I: Grundlagen des Programmierens in LabVIEW 18
1 Was ist LabVIEW? 20
1.1 Entwicklungsstufen 20
1.2 Was will dieses Lehrbuch? 22
1.3 Installation 22
1.4 Einführendes Beispiel 22
1.4.1 Programmierung von c = a + b 26
1.4.2 Speicherung als Programm Add.vi 29
1.4.3 Starten und Stoppen von Add.vi 29
1.4.4 Fehlersuche in Add.vi (Debugging) 30
1.5 Beispiel für eine Grafik in LabVIEW 31
1.6 Grundlegende Konzepte von LabVIEW 32
1.6.1 Frontpanel 32
1.6.2 Blockdiagramm 32
1.7 Rezepte 33
1.8 Shortcuts 34
2 Einstellungen, Paletten 36
2.1 Einstellungen 36
2.1.1 Einstellungen von LabVIEW 36
2.1.2 Frontpanel 37
2.1.3 Blockdiagramm 38
2.1.4 Ausrichtungsgitter 40
2.1.5 Wiederherstellungen 40
2.2 Paletten 40
2.2.1 Werkzeugpalette (Tools Palette) 41
2.2.2 Eingabe-/Ausgabe-Elemente 42
2.2.3 Funktionenpalette 45
2.2.4 Palette konfigurieren 48
3 Programmstrukturen 49
3.1 Strukturiertes Programmieren 49
3.2 Sequenz 51
3.3 Case-Struktur 54
3.4 Schleifen 58
3.5 Guter Programmierstil 62
4 Datentypen 64
4.1 Numerische Datentypen 64
4.1.1 Kontextmenü: 'Darstellung' 64
4.1.2 Kontextmenü: 'Anzeigeformat…' 65
4.2 Boolesche Datentypen 67
4.3 String und Pfad 69
4.4 Arrays 72
4.4.1 Definition und Initialisierung eines 1-dimensionalen Arrays 72
4.4.2 Definition und Initialisierung eines 2-dimensionalen Arrays 74
4.4.3 Array erstellen 75
4.4.4 Rechnen mit Arrays: Addition 76
4.4.5 Rechnen mit Arrays: Multiplikation 77
4.4.6 Steuerung von For-Schleifen mit Arrays 78
4.4.7 Behandlung einzelner Arrayelemente 80
4.5 Cluster 82
4.5.1 Erzeugung eines Clusters 83
4.5.2 Clusterwerte ändern 84
4.5.3 Aufschlüsseln eines Clusters 86
4.5.4 Umordnen der Elemente eines Clusters 87
4.5.5 Cluster-Arrays 88
4.6 Ring & Enum
4.7 Datentyp FXP 91
4.8 Datentyp Variant 93
4.9 Guter Programmierstil 95
5 Unterprogramme und Typdefinitionen 97
5.1 Wozu Unterprogramme (SubVIs)? 97
5.2 Erstellen von Unterprogrammen 98
5.2.1 Einführendes Beispiel 98
5.2.2 Weitere Hinweise für die Erstellung eines Unterprogramms 101
5.2.3 Einstellungen für Programme und Unterprogramme 103
5.2.4 Erstellen von Unterprogrammen mit internem Zustand 105
5.2.5 Erstellen von polymorphen Unterprogrammen 106
5.3 Aufruf von Unterprogrammen 109
5.3.1 Statische Bindung 109
5.3.2 Dynamische Bindung 110
5.3.2.1 VI-Referenz öffnen und schließen 110
5.3.2.2 Aufruf eines VI über seine Referenz 111
5.3.2.3 Beispiel für den SubVI-Austausch während der Laufzeit 113
5.3.2.4 Rekursiver Aufruf von Unterprogrammen 113
5.3.2.5 Testen (Debugging) von ablaufinvarianten SubVIs 114
5.4 Typdefinitionen 116
5.4.1 Beispiel einer Typdefinition für Enum-Variablen 116
5.4.2 Beispiel einer Typdefinition für Registerkarten 118
5.5 Guter Programmierstil 119
5.5.1 Vereinfachung durch Unterprogramme und Typdefinitionen 119
5.5.2 Aussagekräftige Symbole (Icons) 121
5.5.3 Anordnung häufig verwendeter Elemente 121
5.5.4 Kommentierung der Elemente und Funktionen eines VI 121
5.5.5 Detaillierte Hilfe 123
6 Prozessvisualisierung 124
6.1 OOP-Konzepte 124
6.2 Eigenschafts- und Methodenknoten 124
6.3 Grafische Ausgabe 128
6.3.1 Chart (Signalverlaufsdiagramm) 128
6.3.1.1 Darstellung einer Sinuskurve 128
6.3.1.2 Darstellung von zwei oder mehr Kurven in einem Chart 130
6.3.1.3 Legende zu einem Chart oder Graphen 131
6.3.1.4 Skalierung der Ordinate in einem Chart 132
6.3.2 Graph (Signalverlaufsgraph) 134
6.3.2.1 Darstellung einer Sinuskurve 134
6.3.2.2 Darstellung von zwei oder mehr Kurven in einem Graphen 135
6.3.2.3 Skalierung der Abszisse in einem Graphen 137
6.3.3 XY-Graph 139
6.3.3.1 Darstellung einer Relation im XY-Graphen 140
6.3.3.2 Darstellung mehrerer Relationen in einem XY-Graphen 141
6.3.4 Signalverlauf 142
6.4 Express-VIs, Programmierstil 147
6.4.1 Express-VI zur Erzeugung von Kurven 147
6.4.2 Express-VI zur Erstellung von Berichten 148
7 Referenzen, Fehlerfunktionen 150
7.1 Einführendes Beispiel 150
7.1.1 Vertauschung von zwei Variablenwerten 150
7.1.2 Referenzen auf Bedien- und Anzeigeelemente 151
7.1.3 Lösung des Vertauschungsproblems 152
7.2 Vererbung 153
7.2.1 Eigenschaften der Basisklasse 155
7.2.2 Eigenschaften von abgeleiteten Klassen 155
7.3 Fehlerfunktionen 157
7.3.1 Fehlermeldungen mit oder ohne Dialog 157
7.3.2 Wo findet man wichtige Fehlerelemente und Fehlerfunktionen? 158
7.3.3 Verschiedene Fehlerarten 159
7.3.3.1 Standardfehlerleitung 159
7.3.3.2 Funktionen ohne oder mit vereinfachter Fehlerleitung 159
7.3.4 Ausgang aus While-Schleifen 161
7.3.5 Erzwingung von sequenziellem Ablauf 162
8 Datentransfer von und zur Festplatte 163
8.1 Dateifunktionen 163
8.1.1 Allgemeines zur Speicherung von Dateien 163
8.1.2 Palette Dateifunktionen 165
8.1.3 Einführendes Beispiel 166
8.1.4 Modifiziertes Beispiel 167
8.1.5 Beispiel: Anlegen einer Protokolldatei 168
8.1.6 Überschreiben ohne Warnung 168
8.2 Pfade 169
8.2.1 Pfadkonstanten 169
8.2.2 Pfadkonstante 'Standardverzeichnis' 170
8.2.3 'Standardverzeichnis' ändern 171
8.2.4 'Standarddatenverzeichnis' ändern 172
8.2.5 Lesen und Schreiben anderer Datentypen 172
8.2.6 Verketten von Schreib- und Lesefunktionen 173
8.2.7 Tabellenkalkulation 174
8.3 Pfade in einer EXE-Datei 174
8.4 Fortgeschrittene Dateitypen 176
8.4.1 LVM- , TDMS- und TDM-Dateien 177
8.4.2 Diadem 180
8.4.3 ZIP-Dateien 180
8.4.4 Konfigurationsdateien 182
9 LabVIEW-Kurzüberblick 186
9.1 Aufbau des LabVIEW-Systems 186
9.1.1 Programmierung in G 186
9.1.1.1 Interpretieren oder kompilieren? 186
9.1.1.2 Datenflussprogrammierung 188
9.1.2 Hardware-Unterstützung 188
9.1.3 Bibliotheken mathematischer und technischer Funktionen 189
9.1.4 Benutzerschnittstelle 190
9.1.5 Technologische Abstraktion 191
9.1.6 Rechenmodelle 191
9.2 Projekte 191
9.3 Erstellung von EXE-Dateien 193
9.3.1 Erstellung einer EXE-Datei 193
9.3.2 EXE-Datei auf einem Rechner ohne LabVIEW-System 195
9.4 Strukturen zur Programmentwicklung 198
9.4.1 Deaktivierungsstrukturen 198
9.4.2 Debug-Einstellung in der Projektverwaltung 200
9.5 LabVIEW-Bibliotheken 201
9.6 Umwandeln von LLB-Bibliotheken 203
9.7 Einbindung von C-Funktionen unter Windows 205
9.7.1 Reihe in C# 206
9.7.2 Reihe in C++ 210
9.7.3 Reihe mit MathScript 214
9.8 Hilfen zu LabVIEW 214
9.9 Schnelleinfügeleiste (Quickdrop) 216
9.10 Der VI Package Manager 218
9.10.1 Verwalten der LabVIEW-Entwicklungsumgebung 219
9.10.2 Eigenes Paket erstellen 221
Teil II: Technische Anwendungen 222
10 Fouriertransformation 223
10.1 Zeit- und Frequenzbereich 223
10.1.1 Die reelle Fouriertransformation 224
10.1.2 Darstellung der Fourierkoeffizienten c_k in LabVIEW 227
10.2 Diskrete Fouriertransformation 230
10.2.1 Satz von Shannon 230
10.2.2 Aliasing 232
10.2.3 Frequenzauflösung 233
11 Filterung 235
11.1 Filtertypen 235
11.1.1 Ideale und reale Filter 235
11.1.2 Beispiel eines digitalen Filters 236
11.2 LabVIEW-Filterfunktionen 239
11.3 Filterung im Frequenzbereich 241
11.3.1 Idee der Filterung im Frequenzbereich 241
11.3.2 Die inverse Fouriertransformation in LabVIEW 241
11.3.3 Beispiel eines Tiefpasses 242
12 Differenzialgleichungen 244
12.1 Lösen mit LabVIEW-ODE-Funktionen 244
12.2 Lösen nach dem Analogrechnerprinzip 246
12.2.1 Blockdiagramm-Darstellung 246
12.2.2 Vereinfachungen 249
12.3 Genauigkeit numerischer Verfahren 251
13 Systeme von Differenzialgleichungen 254
13.1 Systeme gewöhnlicher Differenzialgleichungen 254
13.2 Gekoppeltes Feder-Masse-System 254
13.2.1 Lösung mit eingebauter ODE-Funktion 255
13.2.2 Lösung mit Blockdiagramm wie in MATLAB® 256
13.3 Umwelt und Tourismus 258
14 Parallelverarbeitung, Laufzeiten, Ereignisse 261
14.1 Einführendes Beispiel 261
14.2 Grundbegriffe der Parallelverarbeitung 263
14.2.1 Multiprocessing, Multitasking, Multithreading 263
14.2.2 Synchronisierung von Prozessen 264
14.3 Parallelverarbeitung unter LabVIEW 265
14.3.1 Erzeugen von Ressourcen für die Prozesskommunikation 266
14.3.2 Freigabe von Ressourcen der Prozesskommunikation 268
14.3.3 Zeitbegrenzung Ressource schont Prozessor 269
14.4 Prozess-Synchronisierung ohne Datenaustausch 269
14.4.1 Occurrences 269
14.4.2 Semaphor 270
14.4.3 Rendezvous 272
14.5 Prozess-Synchronisierung mit Datenaustausch 273
14.5.1 Melder-Operationen 273
14.5.2 Queue-Operationen 274
14.6 Globale Variablen 275
14.7 Laufzeitprobleme und ihre Behandlung 276
14.7.1 Laufzeitprobleme bei lokalen Variablen 276
14.7.2 Laufzeitprobleme bei globalen Variablen 279
14.8 Ereignisgesteuerte Programmierung 280
14.8.1 Frontpanel-Ereignisse 280
14.8.2 Wertänderungs-Ereignisse 285
14.8.3 Gefilterte Ereignisse 286
14.9 Zeitschleifen 288
Teil III: Kommunikation 290
15 Serielle Eingabe/Ausgabe 291
15.1 RS-232 291
15.2 Programmierung der RS-232 in LabVIEW 293
15.3 Die USB-Schnittstelle 296
15.4 Feld-Bus, CAN-Bus 300
15.4.1 CAN-Protokoll 300
15.4.2 CAN-Interface 302
15.4.3 CANopen-Protokoll, ZILA-Sensor 303
15.4.4 CAN-Bus mit Laptop und zwei Sensoren 305
15.4.5 XNET-System von National Instruments 305
15.5 Der byte-serielle GPIB-Bus 316
16 Datenerfassungsgeräte 318
16.1 Datenerfassungskarten/Datenerfassungsgeräte 318
16.2 Allgemeines 319
16.2.1 Treiber, MAX (Measurement and Automation Explorer) 319
16.2.2 Physikalische und virtuelle Kanäle, Task 325
16.2.3 Programmierung von Datenerfassungs-VIs, simulierte Geräte 326
16.2.4 Programmierung von VIs zur Analogausgabe 331
16.2.5 Programmierung von VIs zum Digital-I/O 332
16.2.6 Programmierung mit Hilfe des DAQ-Assistenten 332
16.2.7 Programmatische Task-Erstellung 334
16.3 USB-Gerät NI USB-6251 335
16.3.1 Begriffe 'differenziell', 'RSE' und 'NRSE' 335
16.3.2 Zwei Analogsignale mit der NI USB-6521 lesen 337
16.3.3 Triggern mit NI USB-6521 338
16.3.4 Streaming mit NI USB-6521 339
16.4 Ältere Datenerfassungskarten/-geräte 346
16.5 TEDS 346
16.6 IVI-Gerät NI USB-513 350
Teil IV: Fortgeschrittene Techniken 356
17 Professionelle Programmentwicklung 357
17.1 Sequenzstruktur 357
17.2 Zustandsautomaten 358
17.2.1 Notation für Zustandsautomaten 359
17.2.2 Umsetzung Zustandsdiagramm - LabVIEW-Programm 360
17.2.2.1 Strings für die Zustandsauswahl 361
17.2.2.2 Enum für die Zustandsauswahl 363
17.3 Münzautomat 364
17.4 Münzautomat mit Queues und Ereignisstrukturen 373
17.5 Programmierhilfen 377
17.5.1 Arbeiten mit vorgefertigten Strukturen (Templates) 377
17.5.2 Beurteilung Programmeffizienz und geeignete Werkzeuge dazu 377
18 Objektorientierte Programmierung 381
18.1 Warum objektorientiert? 381
18.2 Erstes Beispiel zur objektorientierten Programmierung 384
18.2.1 Bildung einer Klasse 384
18.2.2 Private Eigenschaften der Klasse 385
18.2.3 Methoden der Klasse 386
18.3 Weitere Beispiele zur OOP 390
18.3.1 Vererbung 390
18.3.2 Polymorphie 394
18.3.3 Modulaustausch 398
18.4 Schutz einer Klassenbibliothek 406
19 LabVIEW: Tabellenkalkulation, Datenbanken 409
19.1 Schreib-/Lesebefehle zur Tabellenkalkulation 409
19.2 Allgemeines über ActiveX 411
19.2.1 ActiveX-Container in LabVIEW 412
19.2.2 ActiveX in LabVIEW zur Steuerung von Anwendungen 414
19.3 Beispiele zur Anwendung auf Excel 415
19.3.1 Öffnen und Schließen von Excel 416
19.3.2 Sichtbarmachen einer Excel-Tabelle 417
19.3.3 Eintragen von Daten in eine Excel-Tabelle 419
19.3.4 Geschwindigkeit der Datenspeicherung 421
19.3.5 Erstellen von Makros zum Umwandeln einer Tabelle in eine Grafik 422
19.3.6 Aufruf von Makros in LabVIEW mit Hilfe von ActiveX 425
19.3.7 Erhöhung der Geschwindigkeit 426
19.3.8 Schreiben mehrerer Dateien 429
19.4 Microsoft-Datenbank Access 433
19.4.1 Einführung 433
19.4.2 Verbindung mit der Datenbank 434
19.4.3 SQL 436
19.4.4 Verwendung von SubVIs 437
20 Internet, Server und Client 438
20.1 Allgemeine Bemerkungen zum Internet 438
20.1.1 Ethernet 438
20.1.2 Ethernet-Karten, MAC- und IP-Adresse 439
20.1.3 TCP/IP-Protokoll 439
20.2 Einfaches LabVIEW-Beispiel: Ping 440
20.3 Programmieren mit DataSocket 442
20.4 Programmieren mit TCP/IP 444
20.4.1 Server und Client 444
20.4.2 Beispiel für die Übertragung von Sinusdaten über TCP/IP 445
20.5 Webdienste 448
20.5.1 Grundbegriffe 448
20.5.2 Struktur der Webdienstkommunikation 449
20.5.3 Erstes einfaches Beispiel 449
20.5.4 Zweites einfaches Beispiel 454
20.5.5 Drittes Beispiel 457
20.5.6 Dreiecksberechnung 458
20.5.7 Webserver im Internet 463
20.5.7.1 Firmeninternes Netz 463
20.5.7.2 Aufruf im Internet 464
21 Compact RIO-System und FPGA 465
21.1 Definition 465
21.2 Installation 467
Schritt 1: Software-Installation auf dem PC 467
Schritt 2: Zusammenstellen der cRIO-Hardware 468
Schritt 3: Zuweisung einer IP-Adresse zum cRIO-System 468
Schritt 4: Installation weiterer Software auf dem cRIO-System 471
Schritt 5: Verbindung eines PC mit einem cRIO-System im Netz 471
21.3 Programmierbeispiele für FPGA 472
21.3.1 Beispiel zur Digitalausgabe 473
21.3.2 Beispiel eines Zählers 478
21.3.3 FPGA-Anwendung: Ermittlung eines Frequenzganges 480
21.3.4 Umgebungsvariablen 490
21.3.4.1 Projekt 'Shared_Einzeln' 491
21.3.4.2 Projekt 'Shared_Netzwerk' 493
21.3.4.3 Projekt 'Shared_cRIO' 496
21.3.5 FPGA-Anwendungen auf dem cRIO-9014 ohne PC-Unterstützung 498
21.3.5.1 Projekt 'RIO_MOD1_Switch' 498
21.3.5.2 Projekt 'RIO_User1_Switch' 500
21.3.5.3 Umstellung des cRIO-Systems von einem Standalone-Projekt zum nächsten 503
22 XControls 505
22.1 Unterschied zu einfachen Ctls 505
22.2 Anzeige der Flugbahn eines Steines 505
22.3 Erstellen eines XControls 507
22.3.1 Allgemeines Rezept 507
22.3.2 Beispiel XControl_Pfeil.xctl 509
22.3.3 Eigenschaften in einem XControl 515
22.3.4 Bedeutung der Rahmen [1] bis [4] im Fassaden-VI 518
22.3.5 Weitere Verbesserungen 524
22.4 XControl zur Erstellung von Symbolleisten 526
22.4.1 Zustand der Symbolleiste 527
22.4.2 Funktionen der Symbolleiste 528
22.4.2.1 Symbole hinzufügen 528
22.4.2.2 Alle Symbole löschen 529
22.4.2.3 Rückmeldung des Symbols, das unter dem Mauszeiger liegt 529
22.4.2.4 Anpassung des Erscheinungsbilds an eigene Bedürfnisse 533
22.4.3 Leistungsmerkmal 'Status für Speichern umwandeln' 533
23 LabVIEW VI-Skripte 535
23.1 Was sind VI-Skripte 535
23.2 Die VI-Skripte-Funktionen in der Palette anzeigen 535
23.3 Die VI-Skripte-Funktionen 537
23.3.1 Neues VI 537
23.3.2 Neues VI-Objekt 538
23.3.3 VI-Objektreferenz öffnen 540
23.3.4 Abstand des neuen VI-Objekts vom Referenzobjekt 540
23.3.5 GObjects suchen 542
23.3.6 GObject-Beschriftung abfragen 543
23.3.7 Klassenhierarchie mittels Klassennamen ermitteln 543
23.3.8 Weiterführende Informationen 545
23.4 Wo werden VI-Skripte eingesetzt? 546
23.5 Modifizierung der Projektvorlage 'Leeres VI' 547
23.6 Erstellen eines Quickdrop Plugins mit VI-Skripting 551
24 XNodes 554
24.1 Einführung 554
24.2 Regelungstechnische Anwendung 555
24.3 Aufbau eines XNodes 557
24.4 Wie bildet man einen XNode? 557
24.4.1 Vorbereitende Überlegungen 557
24.4.2 Programmierung von NeueKuh.xnode 562
24.4.2.1 Template-VI 562
24.4.2.2 Ability-VIs 563
24.5 Wie ändert man einen XNode? 572
24.6 XNodes in der Funktionspalette speichern 572
Literatur 576
Index 578
Erscheint lt. Verlag | 7.7.2015 |
---|---|
Zusatzinfo | Komplett in Farbe |
Verlagsort | München |
Sprache | deutsch |
Themenwelt | Technik ► Elektrotechnik / Energietechnik |
Schlagworte | LabView • Messdatenverarbeitung • Messtechnik • National Instruments • Programmierung • Prozessvisualisierung • Regelungstechnik • Steuerungstechnik • Visuelle Programmiersprache |
ISBN-10 | 3-446-44407-6 / 3446444076 |
ISBN-13 | 978-3-446-44407-2 / 9783446444072 |
Haben Sie eine Frage zum Produkt? |
Größe: 41,7 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich