Einführung LabVIEW, 3. Auflage
von: Wolfgang Georgi, Ergun Metin
Carl Hanser Fachbuchverlag, 2007
ISBN: 9783446415812
Sprache: Deutsch
481 Seiten, Download: 11440 KB
Format: PDF, auch als Online-Lesen
Vorwort | 6 | ||
Inhalt | 10 | ||
Teil I: Grundlagen des Programmierens inLabVIEW | 18 | ||
1 Was ist LabVIEW? | 20 | ||
1.1 Entwicklungsstufen | 20 | ||
1.2 Was will dieses Lehrbuch? | 21 | ||
1.3 Installation | 22 | ||
1.4 Einführendes Beispiel | 22 | ||
1.4.1 Programmierung von c = a + b | 27 | ||
1.4.2 Speicherung als Programm Add.vi | 30 | ||
1.4.3 Starten und Stoppen von Add.vi | 31 | ||
1.4.4 Fehlersuche in Add.vi (Debugging) | 31 | ||
1.5 Beispiel für eine Grafik in LabVIEW | 33 | ||
1.6 Grundlegende Konzepte von LabVIEW | 34 | ||
1.6.1 Frontpanel | 34 | ||
1.6.2 Blockdiagramm | 34 | ||
1.7 Rezepte | 35 | ||
1.8 Shortcuts | 36 | ||
2 Einstellungen, Sprachenwahl, Paletten | 38 | ||
2.1 Einstellungen | 38 | ||
2.1.1 'Neu und geändert in 8.x' | 38 | ||
2.1.2 Frontpanel | 39 | ||
2.1.3 Blockdiagramm | 40 | ||
2.1.4 Ausrichtungsgitter | 42 | ||
2.1.5 Wiederherstellungen | 43 | ||
2.2 Sprachenwahl | 44 | ||
2.2.1 Menüpunkte | 44 | ||
2.2.2 Werkzeuge – Optionen | 44 | ||
2.2.3 Datei – VI-Einstellungen | 45 | ||
2.3 Paletten | 45 | ||
2.3.1 Werkzeugpalette (Tools Palette) | 45 | ||
2.3.2 Eingabe-/Ausgabe-Elemente | 47 | ||
2.3.3 Funktionenpalette | 49 | ||
2.4 Benutzerdefinierte Palettenansichten | 52 | ||
3 Programmstrukturen | 56 | ||
3.1 Strukturiertes Programmieren | 56 | ||
3.2 Sequenz | 58 | ||
3.3 Alternative, Case-Struktur | 63 | ||
3.4 Schleifen | 67 | ||
4 Datentypen | 73 | ||
4.1 Numerische Datentypen | 73 | ||
4.1.1 Kontextmenü: Darstellung | 73 | ||
4.1.2 Kontextmenü: Format und Genauigkeit | 74 | ||
4.2 Boolesche Datentypen | 76 | ||
4.3 String und Pfad | 78 | ||
4.4 Arrays | 81 | ||
4.4.1 Definition und Initialisierung eines 1-dimensionalen Arrays | 81 | ||
4.4.2 Definition und Initialisierung eines 2-dimensionalen Arrays | 83 | ||
4.4.3 Rechnen mit Arrays: Addition | 84 | ||
4.4.4 Rechnen mit Arrays: Multiplikation | 86 | ||
4.4.5 Steuerung von FOR-Schleifen mit Arrays | 87 | ||
4.4.6 Behandlung einzelner Arrayelemente | 89 | ||
4.5 Cluster | 91 | ||
4.5.1 Erzeugung eines Clusters | 92 | ||
4.5.2 Clusterwerte ändern | 94 | ||
4.5.3 Aufschlüsseln eines Clusters | 95 | ||
4.5.4 Umordnen der Elemente eines Clusters | 97 | ||
4.6 Ring & Enum | 97 | ||
4.7 Gestaltung von Panel und Diagramm | 100 | ||
5 Unterprogramme | 101 | ||
5.1 Wozu Unterprogramme (SubVIs)? | 101 | ||
5.2 Erstellen von Unterprogrammen | 102 | ||
5.2.1 Einführendes Beispiel | 102 | ||
5.2.2 Weitere Hinweise für die Erstellung eines Unterprogramms | 106 | ||
5.2.3 Einstellungen für Programme und Unterprogramme | 107 | ||
5.2.4 Erstellen von Unterprogrammen mit internem Zustand | 110 | ||
5.2.5 Erstellen von polymorphen Unterprogrammen | 111 | ||
5.3 Aufruf von Unterprogrammen | 113 | ||
5.3.1 Statische Bindung | 114 | ||
5.3.2 Dynamische Bindung | 115 | ||
5.3.2.1 VI-Referenz öffnen und schließen | 115 | ||
5.3.2.2 Aufruf eines VI über seine Referenz | 117 | ||
5.3.2.3 Beispiel für den SubVI-Austausch während der Laufzeit | 118 | ||
5.3.2.4 Rekursiver Aufruf von Unterprogrammen | 119 | ||
5.3.2.5 Testen (Debugging) von ablaufinvarianten SubVIs | 119 | ||
6 Prozessvisualisierung | 122 | ||
6.1 OOP-Konzepte | 122 | ||
6.2 Eigenschafts- und Methodenknoten | 122 | ||
6.3 Grafische Ausgabe | 126 | ||
6.3.1 Chart (Signalverlaufs-Diagramm) | 127 | ||
6.3.1.1 Darstellung einer Sinuskurve | 127 | ||
6.3.1.2 Darstellung von zwei oder mehr Kurven in einem Chart | 129 | ||
6.3.1.3 Legende zu einem Chart oder Graphen | 130 | ||
6.3.1.4 Skalierung der Ordinate in einem Chart | 131 | ||
6.3.2 Graph | 133 | ||
6.3.2.1 Darstellung einer Sinuskurve | 133 | ||
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 | 138 | ||
6.3.3.1 Darstellung einer Relation im XY-Graphen | 139 | ||
6.3.3.2 Darstellung mehrerer Relationen in einem XY-Graphen | 140 | ||
6.3.4 Signalverlauf | 141 | ||
6.4 Express-VIs | 146 | ||
6.4.1 Ein Express-VI zur Erzeugung von Kurven | 146 | ||
6.4.2 Express-VI zur Erstellung von Berichten | 148 | ||
7 Referenzen | 149 | ||
7.1 Einführendes Beispiel | 149 | ||
7.1.1 Vertauschung von zwei Variablenwerten | 149 | ||
7.1.2 Referenzen auf Bedien- und Anzeigeelemente | 150 | ||
7.1.3 Lösung des Vertauschungsproblems | 151 | ||
7.2 Vererbung | 152 | ||
7.2.1 Eigenschaften der Basisklasse | 154 | ||
7.2.2 Eigenschaften von abgeleiteten Klassen | 155 | ||
8 Datentransfer von und zur Festplatte | 157 | ||
8.1 Dateifunktionen | 157 | ||
8.1.1 Allgemeines zur Speicherung von Dateien | 157 | ||
8.1.2 Menüs | 159 | ||
8.1.3 Einführendes Beispiel | 160 | ||
8.1.4 Modifiziertes Beispiel | 162 | ||
8.1.5 Beispiel: Anlegen einer Protokolldatei | 163 | ||
8.1.6 Überschreiben ohne Warnung | 163 | ||
8.2 Dateifunktionen bei LabVIEW 7.0 und 7.1 | 164 | ||
8.3 Pfade | 166 | ||
8.3.1 Pfadkonstanten | 166 | ||
8.3.2 Pfadkonstante 'Standardverzeichnis' | 167 | ||
8.3.3 'Standardverzeichnis' ändern | 168 | ||
8.3.4 'Standard-Datenverzeichnis' ändern | 169 | ||
8.3.5 Lesen und Schreiben anderer Datentypen | 169 | ||
8.3.6 Verketten von Schreib- und Lesefunktionen | 170 | ||
8.3.7 Tabellenkalkulation | 171 | ||
8.4 Pfade in einer EXE-Datei | 171 | ||
8.5 Fortgeschrittene Dateitypen | 174 | ||
8.5.1 LVM-, TDMS- und TDM-Dateien | 174 | ||
8.5.2 ZIP-Dateien | 177 | ||
8.5.3 Konfigurationsdateien | 179 | ||
9 LabVIEW-Kurzüberblick | 184 | ||
9.1 Aufbau des LabVIEW-Systems | 184 | ||
9.1.1 Interpretieren oder Kompilieren? | 184 | ||
9.1.2 Datenflussprogrammierung | 185 | ||
9.2 Projektverwaltung | 187 | ||
9.3 Erstellung von EXE-Dateien | 188 | ||
9.3.1 Warum EXE-Dateien? | 188 | ||
9.3.2 Erstellung einer EXE-Datei | 189 | ||
9.4 Entwicklungsumgebung von LabVIEW 8.x | 194 | ||
9.4.1 Deaktivierungsstrukturen | 194 | ||
9.4.2 Debug-Einstellung in der Projektverwaltung | 196 | ||
9.5 LabVIEW-Bibliotheken | 197 | ||
9.6 Umwandeln von LLB-Bibliotheken | 201 | ||
9.7 Hilfen zu LabVIEW | 203 | ||
Teil II: Technische Anwendungen | 206 | ||
10 Fouriertransformation | 208 | ||
10.1 Zeit- und Frequenzbereich | 208 | ||
10.1.1 Die reelle Fouriertransformation | 209 | ||
10.1.2 Darstellung der Fourierkoeffizienten c k in LabVIEW | 213 | ||
10.2 Diskrete Fouriertransformation | 216 | ||
10.2.1 Satz von Shannon | 216 | ||
10.2.2 Aliasing | 217 | ||
10.2.3 Frequenzauflösung | 218 | ||
11 Filterung | 221 | ||
11.1 Filtertypen | 221 | ||
11.1.1 Ideale und reale Filter | 221 | ||
11.1.2 Beispiel eines digitalen Filters | 222 | ||
11.2 LabVIEW-Filterfunktionen | 225 | ||
11.3 Filterung im Frequenzbereich | 228 | ||
11.3.1 Idee der Filterung im Frequenzbereich | 228 | ||
11.3.2 Die inverse Fouriertransformation in LabVIEW | 228 | ||
11.3.3 Beispiel eines Tiefpasses | 228 | ||
12 Differenzialgleichungen | 231 | ||
12.1 Lösen mit LabVIEW-ODE-Funktionen | 231 | ||
12.2 Lösen nach dem Analogrechnerprinzip | 234 | ||
12.2.1 Blockdiagramm-Darstellung | 234 | ||
12.2.2 Vereinfachungen | 237 | ||
12.3 Globale Variablen | 238 | ||
12.4 Genauigkeit numerischer Verfahren | 240 | ||
13 Systeme von Differenzialgleichungen | 244 | ||
13.1 Systeme gewöhnlicher Differenzialgleichungen | 244 | ||
13.2 Gekoppeltes Feder-Masse-System | 244 | ||
13.2.1 Lösung mit eingebauter ODE-Funktion | 245 | ||
13.2.2 Lösung mit Blockdiagramm wie in MATLAB® | 247 | ||
13.3 Umwelt und Tourismus | 248 | ||
14 Parallelverarbeitung, Ereignis-, Zeitsteuerung | 252 | ||
14.1 Einführendes Beispiel | 252 | ||
14.2 Grundbegriffe der Parallelverarbeitung | 254 | ||
14.2.1 Multiprocessing, Multitasking, Multithreading | 254 | ||
14.2.2 Synchronisation von Prozessen | 255 | ||
14.3 Parallelverarbeitung unter LabVIEW | 256 | ||
14.3.1 Erzeugen von Ressourcen für die Prozesskommunikation | 258 | ||
14.3.2 Freigabe von Ressourcen der Prozesskommunikation | 260 | ||
14.3.3 Zeitbegrenzung schont Ressourcen | 261 | ||
14.4 Prozess-Synchronisation ohne Datenaustausch | 262 | ||
14.4.1 Occurrences | 262 | ||
14.4.2 Semaphor | 262 | ||
14.4.3 Rendezvous | 264 | ||
14.5 Prozess-Synchronisation mit Datenaustausch | 265 | ||
14.5.1 Melder-Operationen | 266 | ||
14.5.2 Queue-Operationen | 268 | ||
14.6 Ereignisgesteuerte Programmierung | 268 | ||
14.6.1 Frontpanel-Ereignisse | 268 | ||
14.6.2 Wertänderungs-Ereignisse | 273 | ||
14.7 Zeitschleifen | 275 | ||
Teil III: Kommunikation | 278 | ||
15 Serielle Eingabe/Ausgabe | 280 | ||
15.1 RS 232 | 280 | ||
15.2 Programmierung in LabVIEW | 282 | ||
15.2.1 Beispiel für VISA-Programmierung | 282 | ||
15.2.2 Wo findet man die VISA-Funktionen? | 285 | ||
15.3 Arbeiten mit CLF-Knoten (Code Library Function) | 286 | ||
15.3.1 Programmieren einer eigenen DLL in C oder C++ | 286 | ||
15.3.2 Anschließen einer DLL an einen CLF-Knoten | 288 | ||
15.4 Die USB-Schnittstelle | 290 | ||
16 Datenerfassungskarten, MAX | 296 | ||
16.1 Datenerfassungskarten | 296 | ||
16.1.1 Wann benutzt man Datenerfassungskarten? | 296 | ||
16.1.2 Beispiel einer Konfiguration | 297 | ||
16.1.3 Measurement and Automation Explorer (MAX) | 298 | ||
16.1.3.1 Behandlung von Ports mit dem MAX | 299 | ||
16.1.3.2 Behandlung der Datenerfassungskarte nebst Zubehör mit dem MAX | 301 | ||
17 Internet | 311 | ||
17.1 Allgemeine Bemerkungen zum Internet | 311 | ||
17.1.1 Ethernet | 311 | ||
17.1.2 Ethernet-Karten, MAC- und IP-Adresse | 312 | ||
17.1.3 TCP/IP-Protokoll | 312 | ||
17.2 Einfaches LabVIEW-Beispiel: Ping | 313 | ||
17.3 Programmieren mit DataSocket | 315 | ||
17.4 Programmieren mit TCP/IP | 318 | ||
17.4.1 Server und Client | 318 | ||
17.4.2 Beispiel für die Übertragung von Sinusdaten über TCP/IP | 319 | ||
Teil IV: Fortgeschrittene Techniken | 322 | ||
18 Objektorientierte Programmierung | 324 | ||
18.1 Warum objektorientiert? | 324 | ||
18.2 Erstes Beispiel zur objektorientierten Programmierung | 327 | ||
18.2.1 Bildung einer Klasse | 327 | ||
18.2.2 Private Eigenschaften der Klasse | 328 | ||
18.2.3 Methoden der Klasse | 329 | ||
18.3 Weitere Beispiele zur OOP | 333 | ||
18.3.1 Vererbung | 333 | ||
18.3.2 Polymorphie | 336 | ||
18.3.3 Modulaustausch | 340 | ||
18.4 Schutz einer Klassenbibliothek | 348 | ||
19 LabVIEW und Tabellenkalkulation | 352 | ||
19.1 Schreib-/Lesebefehle zur Tabellenkalkulation | 352 | ||
19.2 Allgemeines über ActiveX | 355 | ||
19.2.1 ActiveX-Container in LabVIEW | 355 | ||
19.2.2 ActiveX in LabVIEW zur Steuerung von Anwendungen | 358 | ||
19.3 Beispiele zur Anwendung auf Excel | 358 | ||
19.3.1 Öffnen und Schließen von Excel | 359 | ||
19.3.2 Sichtbarmachen einer Excel-Tabelle | 360 | ||
19.3.3 Eintragen von Daten in eine Excel-Tabelle | 362 | ||
19.3.4 Verwendung von SubVIs | 362 | ||
19.3.5 Geschwindigkeit der Datenspeicherung | 365 | ||
19.3.6 Erstellen von Makros zum Umwandeln einer Tabelle in eine Grafik | 366 | ||
19.3.7 Aufruf von Makros in LabVIEW mit Hilfe von ActiveX | 369 | ||
19.3.8 Erhöhung der Geschwindigkeit | 371 | ||
19.3.9 Schreiben mehrerer Dateien | 374 | ||
19.4 Arbeiten unter Linux | 378 | ||
19.4.1 OpenOffice.org Calc und LabVIEW | 379 | ||
19.4.2 Vorbereitungen | 380 | ||
19.4.3 Öffnen und Schließen von OpenOffice.org Calc | 380 | ||
19.4.4 Erstellen von Makros zum Umwandeln einer Tabelle in eine Grafik | 383 | ||
20 Zustandsautomaten | 384 | ||
20.1 Definition | 384 | ||
20.1.1 Notation für Zustandsautomaten | 384 | ||
20.1.2 Umsetzung Zustandsdiagramm ? LabVIEW-Programm | 386 | ||
20.1.2.1 Strings für die Zustandsauswahl | 386 | ||
20.1.2.2 Enum für die Zustandsauswahl | 388 | ||
20.1.2.3 Verwendung von Ctl-Elementen bei der Enum-Programmierung | 390 | ||
20.2 Münzautomat | 392 | ||
20.3 Münzautomat mit Queues und Ereignisstrukturen | 400 | ||
21 TCP/IP-Server und mehrere Clients | 406 | ||
21.1 Vorüberlegungen | 406 | ||
21.2 TCP/IP-SubVIs | 406 | ||
21.2.1 Schreiben über TCP/IP | 407 | ||
21.2.2 Lesen von TCP/IP | 408 | ||
21.2.3 Anwendungsbezogene Fehlerbehandlung | 408 | ||
21.3 Server und Client als Zustandsautomaten | 409 | ||
21.4 Client/Server-Anwendung | 412 | ||
21.4.1 Die Client-Anwendung | 412 | ||
21.4.2 Server mit einem Client | 417 | ||
21.4.3 Server mit mehreren Clients | 418 | ||
22 Compact RIO-System und FPGA | 424 | ||
22.1 Definition | 424 | ||
22.2 Installation | 426 | ||
22.3 Programmierbeispiele | 430 | ||
22.3.1 Zusammenarbeit cRIO-9012 mit einem Laptop | 430 | ||
22.3.2 FPGA-Anwendung auf dem cRIO-9012 mit Laptopunterstützung | 435 | ||
22.3.3 FPGA-Anwendung auf dem cRIO-9012 ohne Laptopunterstützung | 443 | ||
22.4 Eine regelungstechnische Anwendung | 448 | ||
Literatur | 456 | ||
Index | 458 | ||
Mehr eBooks bei www.ciando.com | 0 |