Georgi / Hohl Einführung in LabVIEW
1. erweiterte Auflage 2015
ISBN: 978-3-446-44407-2
Verlag: Carl Hanser
Format: PDF
Kopierschutz: 1 - PDF Watermark
E-Book, Deutsch, 596 Seiten
ISBN: 978-3-446-44407-2
Verlag: Carl Hanser
Format: PDF
Kopierschutz: 1 - PDF Watermark
LabVIEW ist ein grafisches Programmiersystem und findet in der Messtechnik, der Regelungstechnik und der Automatisierungstechnik seine Hauptanwendungsgebiete. Dieses Lehrbuch führt in das Programmieren mit LabVIEW ein. Es richtet sich an Studierende, bietet aber ebenso Ingenieuren einen guten Einstieg für die Weiterbildung. Auch interessierte Schüler können von dieser Einführung profitieren.
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.
Autoren/Hrsg.
Fachgebiete
Weitere Infos & Material
1;Vorwort zur sechsten Auflage;6
2;Inhalt;8
3;Teil I: Grundlagen des Programmierens in LabVIEW;18
3.1;1 Was ist LabVIEW?;20
3.1.1;1.1 Entwicklungsstufen;20
3.1.2;1.2 Was will dieses Lehrbuch?;22
3.1.3;1.3 Installation;22
3.1.4;1.4 Einführendes Beispiel;22
3.1.4.1;1.4.1 Programmierung von c = a + b;26
3.1.4.2;1.4.2 Speicherung als Programm Add.vi;29
3.1.4.3;1.4.3 Starten und Stoppen von Add.vi;29
3.1.4.4;1.4.4 Fehlersuche in Add.vi (Debugging);30
3.1.5;1.5 Beispiel für eine Grafik in LabVIEW;31
3.1.6;1.6 Grundlegende Konzepte von LabVIEW;32
3.1.6.1;1.6.1 Frontpanel;32
3.1.6.2;1.6.2 Blockdiagramm;32
3.1.7;1.7 Rezepte;33
3.1.8;1.8 Shortcuts;34
3.2;2 Einstellungen, Paletten;36
3.2.1;2.1 Einstellungen;36
3.2.1.1;2.1.1 Einstellungen von LabVIEW;36
3.2.1.2;2.1.2 Frontpanel;37
3.2.1.3;2.1.3 Blockdiagramm;38
3.2.1.4;2.1.4 Ausrichtungsgitter;40
3.2.1.5;2.1.5 Wiederherstellungen;40
3.2.2;2.2 Paletten;40
3.2.2.1;2.2.1 Werkzeugpalette (Tools Palette);41
3.2.2.2;2.2.2 Eingabe-/Ausgabe-Elemente;42
3.2.2.3;2.2.3 Funktionenpalette;45
3.2.2.4;2.2.4 Palette konfigurieren;48
3.3;3 Programmstrukturen;49
3.3.1;3.1 Strukturiertes Programmieren;49
3.3.2;3.2 Sequenz;51
3.3.3;3.3 Case-Struktur;54
3.3.4;3.4 Schleifen;58
3.3.5;3.5 Guter Programmierstil;62
3.4;4 Datentypen;64
3.4.1;4.1 Numerische Datentypen;64
3.4.1.1;4.1.1 Kontextmenü: 'Darstellung';64
3.4.1.2;4.1.2 Kontextmenü: 'Anzeigeformat…';65
3.4.2;4.2 Boolesche Datentypen;67
3.4.3;4.3 String und Pfad;69
3.4.4;4.4 Arrays;72
3.4.4.1;4.4.1 Definition und Initialisierung eines 1-dimensionalen Arrays;72
3.4.4.2;4.4.2 Definition und Initialisierung eines 2-dimensionalen Arrays;74
3.4.4.3;4.4.3 Array erstellen;75
3.4.4.4;4.4.4 Rechnen mit Arrays: Addition;76
3.4.4.5;4.4.5 Rechnen mit Arrays: Multiplikation;77
3.4.4.6;4.4.6 Steuerung von For-Schleifen mit Arrays;78
3.4.4.7;4.4.7 Behandlung einzelner Arrayelemente;80
3.4.5;4.5 Cluster;82
3.4.5.1;4.5.1 Erzeugung eines Clusters;83
3.4.5.2;4.5.2 Clusterwerte ändern;84
3.4.5.3;4.5.3 Aufschlüsseln eines Clusters;86
3.4.5.4;4.5.4 Umordnen der Elemente eines Clusters;87
3.4.5.5;4.5.5 Cluster-Arrays;88
3.4.6;4.6 Ring & Enum;89
3.4.7;4.7 Datentyp FXP;91
3.4.8;4.8 Datentyp Variant;93
3.4.9;4.9 Guter Programmierstil;95
3.5;5 Unterprogramme und Typdefinitionen;97
3.5.1;5.1 Wozu Unterprogramme (SubVIs)?;97
3.5.2;5.2 Erstellen von Unterprogrammen;98
3.5.2.1;5.2.1 Einführendes Beispiel;98
3.5.2.2;5.2.2 Weitere Hinweise für die Erstellung eines Unterprogramms;101
3.5.2.3;5.2.3 Einstellungen für Programme und Unterprogramme;103
3.5.2.4;5.2.4 Erstellen von Unterprogrammen mit internem Zustand;105
3.5.2.5;5.2.5 Erstellen von polymorphen Unterprogrammen;106
3.5.3;5.3 Aufruf von Unterprogrammen;109
3.5.3.1;5.3.1 Statische Bindung;109
3.5.3.2;5.3.2 Dynamische Bindung;110
3.5.3.2.1;5.3.2.1 VI-Referenz öffnen und schließen;110
3.5.3.2.2;5.3.2.2 Aufruf eines VI über seine Referenz;111
3.5.3.2.3;5.3.2.3 Beispiel für den SubVI-Austausch während der Laufzeit;113
3.5.3.2.4;5.3.2.4 Rekursiver Aufruf von Unterprogrammen;113
3.5.3.2.5;5.3.2.5 Testen (Debugging) von ablaufinvarianten SubVIs;114
3.5.4;5.4 Typdefinitionen;116
3.5.4.1;5.4.1 Beispiel einer Typdefinition für Enum-Variablen;116
3.5.4.2;5.4.2 Beispiel einer Typdefinition für Registerkarten;118
3.5.5;5.5 Guter Programmierstil;119
3.5.5.1;5.5.1 Vereinfachung durch Unterprogramme und Typdefinitionen;119
3.5.5.2;5.5.2 Aussagekräftige Symbole (Icons);121
3.5.5.3;5.5.3 Anordnung häufig verwendeter Elemente;121
3.5.5.4;5.5.4 Kommentierung der Elemente und Funktionen eines VI;121
3.5.5.5;5.5.5 Detaillierte Hilfe;123
3.6;6 Prozessvisualisierung;124
3.6.1;6.1 OOP-Konzepte;124
3.6.2;6.2 Eigenschafts- und Methodenknoten;124
3.6.3;6.3 Grafische Ausgabe;128
3.6.3.1;6.3.1 Chart (Signalverlaufsdiagramm);128
3.6.3.1.1;6.3.1.1 Darstellung einer Sinuskurve;128
3.6.3.1.2;6.3.1.2 Darstellung von zwei oder mehr Kurven in einem Chart;130
3.6.3.1.3;6.3.1.3 Legende zu einem Chart oder Graphen;131
3.6.3.1.4;6.3.1.4 Skalierung der Ordinate in einem Chart;132
3.6.3.2;6.3.2 Graph (Signalverlaufsgraph);134
3.6.3.2.1;6.3.2.1 Darstellung einer Sinuskurve;134
3.6.3.2.2;6.3.2.2 Darstellung von zwei oder mehr Kurven in einem Graphen;135
3.6.3.2.3;6.3.2.3 Skalierung der Abszisse in einem Graphen;137
3.6.3.3;6.3.3 XY-Graph;139
3.6.3.3.1;6.3.3.1 Darstellung einer Relation im XY-Graphen;140
3.6.3.3.2;6.3.3.2 Darstellung mehrerer Relationen in einem XY-Graphen;141
3.6.3.4;6.3.4 Signalverlauf;142
3.6.4;6.4 Express-VIs, Programmierstil;147
3.6.4.1;6.4.1 Express-VI zur Erzeugung von Kurven;147
3.6.4.2;6.4.2 Express-VI zur Erstellung von Berichten;148
3.7;7 Referenzen, Fehlerfunktionen;150
3.7.1;7.1 Einführendes Beispiel;150
3.7.1.1;7.1.1 Vertauschung von zwei Variablenwerten;150
3.7.1.2;7.1.2 Referenzen auf Bedien- und Anzeigeelemente;151
3.7.1.3;7.1.3 Lösung des Vertauschungsproblems;152
3.7.2;7.2 Vererbung;153
3.7.2.1;7.2.1 Eigenschaften der Basisklasse;155
3.7.2.2;7.2.2 Eigenschaften von abgeleiteten Klassen;155
3.7.3;7.3 Fehlerfunktionen;157
3.7.3.1;7.3.1 Fehlermeldungen mit oder ohne Dialog;157
3.7.3.2;7.3.2 Wo findet man wichtige Fehlerelemente und Fehlerfunktionen?;158
3.7.3.3;7.3.3 Verschiedene Fehlerarten;159
3.7.3.3.1;7.3.3.1 Standardfehlerleitung;159
3.7.3.3.2;7.3.3.2 Funktionen ohne oder mit vereinfachter Fehlerleitung;159
3.7.3.4;7.3.4 Ausgang aus While-Schleifen;161
3.7.3.5;7.3.5 Erzwingung von sequenziellem Ablauf;162
3.8;8 Datentransfer von und zur Festplatte;163
3.8.1;8.1 Dateifunktionen;163
3.8.1.1;8.1.1 Allgemeines zur Speicherung von Dateien;163
3.8.1.2;8.1.2 Palette Dateifunktionen;165
3.8.1.3;8.1.3 Einführendes Beispiel;166
3.8.1.4;8.1.4 Modifiziertes Beispiel;167
3.8.1.5;8.1.5 Beispiel: Anlegen einer Protokolldatei;168
3.8.1.6;8.1.6 Überschreiben ohne Warnung;168
3.8.2;8.2 Pfade;169
3.8.2.1;8.2.1 Pfadkonstanten;169
3.8.2.2;8.2.2 Pfadkonstante 'Standardverzeichnis';170
3.8.2.3;8.2.3 'Standardverzeichnis' ändern;171
3.8.2.4;8.2.4 'Standarddatenverzeichnis' ändern;172
3.8.2.5;8.2.5 Lesen und Schreiben anderer Datentypen;172
3.8.2.6;8.2.6 Verketten von Schreib- und Lesefunktionen;173
3.8.2.7;8.2.7 Tabellenkalkulation;174
3.8.3;8.3 Pfade in einer EXE-Datei;174
3.8.4;8.4 Fortgeschrittene Dateitypen;176
3.8.4.1;8.4.1 LVM- , TDMS- und TDM-Dateien;177
3.8.4.2;8.4.2 Diadem;180
3.8.4.3;8.4.3 ZIP-Dateien;180
3.8.4.4;8.4.4 Konfigurationsdateien;182
3.9;9 LabVIEW-Kurzüberblick;186
3.9.1;9.1 Aufbau des LabVIEW-Systems;186
3.9.1.1;9.1.1 Programmierung in G;186
3.9.1.1.1;9.1.1.1 Interpretieren oder kompilieren?;186
3.9.1.1.2;9.1.1.2 Datenflussprogrammierung;188
3.9.1.2;9.1.2 Hardware-Unterstützung;188
3.9.1.3;9.1.3 Bibliotheken mathematischer und technischer Funktionen;189
3.9.1.4;9.1.4 Benutzerschnittstelle;190
3.9.1.5;9.1.5 Technologische Abstraktion;191
3.9.1.6;9.1.6 Rechenmodelle;191
3.9.2;9.2 Projekte;191
3.9.3;9.3 Erstellung von EXE-Dateien;193
3.9.3.1;9.3.1 Erstellung einer EXE-Datei;193
3.9.3.2;9.3.2 EXE-Datei auf einem Rechner ohne LabVIEW-System;195
3.9.4;9.4 Strukturen zur Programmentwicklung;198
3.9.4.1;9.4.1 Deaktivierungsstrukturen;198
3.9.4.2;9.4.2 Debug-Einstellung in der Projektverwaltung;200
3.9.5;9.5 LabVIEW-Bibliotheken;201
3.9.6;9.6 Umwandeln von LLB-Bibliotheken;203
3.9.7;9.7 Einbindung von C-Funktionen unter Windows;205
3.9.7.1;9.7.1 Reihe in C#;206
3.9.7.2;9.7.2 Reihe in C++;210
3.9.7.3;9.7.3 Reihe mit MathScript;214
3.9.8;9.8 Hilfen zu LabVIEW;214
3.9.9;9.9 Schnelleinfügeleiste (Quickdrop);216
3.9.10;9.10 Der VI Package Manager;218
3.9.10.1;9.10.1 Verwalten der LabVIEW-Entwicklungsumgebung;219
3.9.10.2;9.10.2 Eigenes Paket erstellen;221
4;Teil II: Technische Anwendungen;222
4.1;10 Fouriertransformation;223
4.1.1;10.1 Zeit- und Frequenzbereich;223
4.1.1.1;10.1.1 Die reelle Fouriertransformation;224
4.1.1.2;10.1.2 Darstellung der Fourierkoeffizienten c_k in LabVIEW;227
4.1.2;10.2 Diskrete Fouriertransformation;230
4.1.2.1;10.2.1 Satz von Shannon;230
4.1.2.2;10.2.2 Aliasing;232
4.1.2.3;10.2.3 Frequenzauflösung;233
4.2;11 Filterung;235
4.2.1;11.1 Filtertypen;235
4.2.1.1;11.1.1 Ideale und reale Filter;235
4.2.1.2;11.1.2 Beispiel eines digitalen Filters;236
4.2.2;11.2 LabVIEW-Filterfunktionen;239
4.2.3;11.3 Filterung im Frequenzbereich;241
4.2.3.1;11.3.1 Idee der Filterung im Frequenzbereich;241
4.2.3.2;11.3.2 Die inverse Fouriertransformation in LabVIEW;241
4.2.3.3;11.3.3 Beispiel eines Tiefpasses;242
4.3;12 Differenzialgleichungen;244
4.3.1;12.1 Lösen mit LabVIEW-ODE-Funktionen;244
4.3.2;12.2 Lösen nach dem Analogrechnerprinzip;246
4.3.2.1;12.2.1 Blockdiagramm-Darstellung;246
4.3.2.2;12.2.2 Vereinfachungen;249
4.3.3;12.3 Genauigkeit numerischer Verfahren;251
4.4;13 Systeme von Differenzialgleichungen;254
4.4.1;13.1 Systeme gewöhnlicher Differenzialgleichungen;254
4.4.2;13.2 Gekoppeltes Feder-Masse-System;254
4.4.2.1;13.2.1 Lösung mit eingebauter ODE-Funktion;255
4.4.2.2;13.2.2 Lösung mit Blockdiagramm wie in MATLAB®;256
4.4.3;13.3 Umwelt und Tourismus;258
4.5;14 Parallelverarbeitung, Laufzeiten, Ereignisse;261
4.5.1;14.1 Einführendes Beispiel;261
4.5.2;14.2 Grundbegriffe der Parallelverarbeitung;263
4.5.2.1;14.2.1 Multiprocessing, Multitasking, Multithreading;263
4.5.2.2;14.2.2 Synchronisierung von Prozessen;264
4.5.3;14.3 Parallelverarbeitung unter LabVIEW;265
4.5.3.1;14.3.1 Erzeugen von Ressourcen für die Prozesskommunikation;266
4.5.3.2;14.3.2 Freigabe von Ressourcen der Prozesskommunikation;268
4.5.3.3;14.3.3 Zeitbegrenzung Ressource schont Prozessor;269
4.5.4;14.4 Prozess-Synchronisierung ohne Datenaustausch;269
4.5.4.1;14.4.1 Occurrences;269
4.5.4.2;14.4.2 Semaphor;270
4.5.4.3;14.4.3 Rendezvous;272
4.5.5;14.5 Prozess-Synchronisierung mit Datenaustausch;273
4.5.5.1;14.5.1 Melder-Operationen;273
4.5.5.2;14.5.2 Queue-Operationen;274
4.5.6;14.6 Globale Variablen;275
4.5.7;14.7 Laufzeitprobleme und ihre Behandlung;276
4.5.7.1;14.7.1 Laufzeitprobleme bei lokalen Variablen;276
4.5.7.2;14.7.2 Laufzeitprobleme bei globalen Variablen;279
4.5.8;14.8 Ereignisgesteuerte Programmierung;280
4.5.8.1;14.8.1 Frontpanel-Ereignisse;280
4.5.8.2;14.8.2 Wertänderungs-Ereignisse;285
4.5.8.3;14.8.3 Gefilterte Ereignisse;286
4.5.9;14.9 Zeitschleifen;288
5;Teil III: Kommunikation;290
5.1;15 Serielle Eingabe/Ausgabe;291
5.1.1;15.1 RS-232;291
5.1.2;15.2 Programmierung der RS-232 in LabVIEW;293
5.1.3;15.3 Die USB-Schnittstelle;296
5.1.4;15.4 Feld-Bus, CAN-Bus;300
5.1.4.1;15.4.1 CAN-Protokoll;300
5.1.4.2;15.4.2 CAN-Interface;302
5.1.4.3;15.4.3 CANopen-Protokoll, ZILA-Sensor;303
5.1.4.4;15.4.4 CAN-Bus mit Laptop und zwei Sensoren;305
5.1.4.5;15.4.5 XNET-System von National Instruments;305
5.1.5;15.5 Der byte-serielle GPIB-Bus;316
5.2;16 Datenerfassungsgeräte;318
5.2.1;16.1 Datenerfassungskarten/Datenerfassungsgeräte;318
5.2.2;16.2 Allgemeines;319
5.2.2.1;16.2.1 Treiber, MAX (Measurement and Automation Explorer);319
5.2.2.2;16.2.2 Physikalische und virtuelle Kanäle, Task;325
5.2.2.3;16.2.3 Programmierung von Datenerfassungs-VIs, simulierte Geräte;326
5.2.2.4;16.2.4 Programmierung von VIs zur Analogausgabe;331
5.2.2.5;16.2.5 Programmierung von VIs zum Digital-I/O;332
5.2.2.6;16.2.6 Programmierung mit Hilfe des DAQ-Assistenten;332
5.2.2.7;16.2.7 Programmatische Task-Erstellung;334
5.2.3;16.3 USB-Gerät NI USB-6251;335
5.2.3.1;16.3.1 Begriffe 'differenziell', 'RSE' und 'NRSE';335
5.2.3.2;16.3.2 Zwei Analogsignale mit der NI USB-6521 lesen;337
5.2.3.3;16.3.3 Triggern mit NI USB-6521;338
5.2.3.4;16.3.4 Streaming mit NI USB-6521;339
5.2.4;16.4 Ältere Datenerfassungskarten/-geräte;346
5.2.5;16.5 TEDS;346
5.2.6;16.6 IVI-Gerät NI USB-513;350
6;Teil IV: Fortgeschrittene Techniken;356
6.1;17 Professionelle Programmentwicklung;357
6.1.1;17.1 Sequenzstruktur;357
6.1.2;17.2 Zustandsautomaten;358
6.1.2.1;17.2.1 Notation für Zustandsautomaten;359
6.1.2.2;17.2.2 Umsetzung Zustandsdiagramm - LabVIEW-Programm;360
6.1.2.2.1;17.2.2.1 Strings für die Zustandsauswahl;361
6.1.2.2.2;17.2.2.2 Enum für die Zustandsauswahl;363
6.1.3;17.3 Münzautomat;364
6.1.4;17.4 Münzautomat mit Queues und Ereignisstrukturen;373
6.1.5;17.5 Programmierhilfen;377
6.1.5.1;17.5.1 Arbeiten mit vorgefertigten Strukturen (Templates);377
6.1.5.2;17.5.2 Beurteilung Programmeffizienz und geeignete Werkzeuge dazu;377
6.2;18 Objektorientierte Programmierung;381
6.2.1;18.1 Warum objektorientiert?;381
6.2.2;18.2 Erstes Beispiel zur objektorientierten Programmierung;384
6.2.2.1;18.2.1 Bildung einer Klasse;384
6.2.2.2;18.2.2 Private Eigenschaften der Klasse;385
6.2.2.3;18.2.3 Methoden der Klasse;386
6.2.3;18.3 Weitere Beispiele zur OOP;390
6.2.3.1;18.3.1 Vererbung;390
6.2.3.2;18.3.2 Polymorphie;394
6.2.3.3;18.3.3 Modulaustausch;398
6.2.4;18.4 Schutz einer Klassenbibliothek;406
6.3;19 LabVIEW: Tabellenkalkulation, Datenbanken;409
6.3.1;19.1 Schreib-/Lesebefehle zur Tabellenkalkulation;409
6.3.2;19.2 Allgemeines über ActiveX;411
6.3.2.1;19.2.1 ActiveX-Container in LabVIEW;412
6.3.2.2;19.2.2 ActiveX in LabVIEW zur Steuerung von Anwendungen;414
6.3.3;19.3 Beispiele zur Anwendung auf Excel;415
6.3.3.1;19.3.1 Öffnen und Schließen von Excel;416
6.3.3.2;19.3.2 Sichtbarmachen einer Excel-Tabelle;417
6.3.3.3;19.3.3 Eintragen von Daten in eine Excel-Tabelle;419
6.3.3.4;19.3.4 Geschwindigkeit der Datenspeicherung;421
6.3.3.5;19.3.5 Erstellen von Makros zum Umwandeln einer Tabelle in eine Grafik;422
6.3.3.6;19.3.6 Aufruf von Makros in LabVIEW mit Hilfe von ActiveX;425
6.3.3.7;19.3.7 Erhöhung der Geschwindigkeit;426
6.3.3.8;19.3.8 Schreiben mehrerer Dateien;429
6.3.4;19.4 Microsoft-Datenbank Access;433
6.3.4.1;19.4.1 Einführung;433
6.3.4.2;19.4.2 Verbindung mit der Datenbank;434
6.3.4.3;19.4.3 SQL;436
6.3.4.4;19.4.4 Verwendung von SubVIs;437
6.4;20 Internet, Server und Client;438
6.4.1;20.1 Allgemeine Bemerkungen zum Internet;438
6.4.1.1;20.1.1 Ethernet;438
6.4.1.2;20.1.2 Ethernet-Karten, MAC- und IP-Adresse;439
6.4.1.3;20.1.3 TCP/IP-Protokoll;439
6.4.2;20.2 Einfaches LabVIEW-Beispiel: Ping;440
6.4.3;20.3 Programmieren mit DataSocket;442
6.4.4;20.4 Programmieren mit TCP/IP;444
6.4.4.1;20.4.1 Server und Client;444
6.4.4.2;20.4.2 Beispiel für die Übertragung von Sinusdaten über TCP/IP;445
6.4.5;20.5 Webdienste;448
6.4.5.1;20.5.1 Grundbegriffe;448
6.4.5.2;20.5.2 Struktur der Webdienstkommunikation;449
6.4.5.3;20.5.3 Erstes einfaches Beispiel;449
6.4.5.4;20.5.4 Zweites einfaches Beispiel;454
6.4.5.5;20.5.5 Drittes Beispiel;457
6.4.5.6;20.5.6 Dreiecksberechnung;458
6.4.5.7;20.5.7 Webserver im Internet;463
6.4.5.7.1;20.5.7.1 Firmeninternes Netz;463
6.4.5.7.2;20.5.7.2 Aufruf im Internet;464
6.5;21 Compact RIO-System und FPGA;465
6.5.1;21.1 Definition;465
6.5.2;21.2 Installation;467
6.5.2.1;Schritt 1: Software-Installation auf dem PC;467
6.5.2.2;Schritt 2: Zusammenstellen der cRIO-Hardware;468
6.5.2.3;Schritt 3: Zuweisung einer IP-Adresse zum cRIO-System;468
6.5.2.4;Schritt 4: Installation weiterer Software auf dem cRIO-System;471
6.5.2.5;Schritt 5: Verbindung eines PC mit einem cRIO-System im Netz;471
6.5.3;21.3 Programmierbeispiele für FPGA;472
6.5.3.1;21.3.1 Beispiel zur Digitalausgabe;473
6.5.3.2;21.3.2 Beispiel eines Zählers;478
6.5.3.3;21.3.3 FPGA-Anwendung: Ermittlung eines Frequenzganges;480
6.5.3.4;21.3.4 Umgebungsvariablen;490
6.5.3.4.1;21.3.4.1 Projekt 'Shared_Einzeln';491
6.5.3.4.2;21.3.4.2 Projekt 'Shared_Netzwerk';493
6.5.3.4.3;21.3.4.3 Projekt 'Shared_cRIO';496
6.5.3.5;21.3.5 FPGA-Anwendungen auf dem cRIO-9014 ohne PC-Unterstützung;498
6.5.3.5.1;21.3.5.1 Projekt 'RIO_MOD1_Switch';498
6.5.3.5.2;21.3.5.2 Projekt 'RIO_User1_Switch';500
6.5.3.5.3;21.3.5.3 Umstellung des cRIO-Systems von einem Standalone-Projekt zum nächsten;503
6.6;22 XControls;505
6.6.1;22.1 Unterschied zu einfachen Ctls;505
6.6.2;22.2 Anzeige der Flugbahn eines Steines;505
6.6.3;22.3 Erstellen eines XControls;507
6.6.3.1;22.3.1 Allgemeines Rezept;507
6.6.3.2;22.3.2 Beispiel XControl_Pfeil.xctl;509
6.6.3.3;22.3.3 Eigenschaften in einem XControl;515
6.6.3.4;22.3.4 Bedeutung der Rahmen [1] bis [4] im Fassaden-VI;518
6.6.3.5;22.3.5 Weitere Verbesserungen;524
6.6.4;22.4 XControl zur Erstellung von Symbolleisten;526
6.6.4.1;22.4.1 Zustand der Symbolleiste;527
6.6.4.2;22.4.2 Funktionen der Symbolleiste;528
6.6.4.2.1;22.4.2.1 Symbole hinzufügen;528
6.6.4.2.2;22.4.2.2 Alle Symbole löschen;529
6.6.4.2.3;22.4.2.3 Rückmeldung des Symbols, das unter dem Mauszeiger liegt;529
6.6.4.2.4;22.4.2.4 Anpassung des Erscheinungsbilds an eigene Bedürfnisse;533
6.6.4.3;22.4.3 Leistungsmerkmal 'Status für Speichern umwandeln';533
6.7;23 LabVIEW VI-Skripte;535
6.7.1;23.1 Was sind VI-Skripte;535
6.7.2;23.2 Die VI-Skripte-Funktionen in der Palette anzeigen;535
6.7.3;23.3 Die VI-Skripte-Funktionen;537
6.7.3.1;23.3.1 Neues VI;537
6.7.3.2;23.3.2 Neues VI-Objekt;538
6.7.3.3;23.3.3 VI-Objektreferenz öffnen;540
6.7.3.4;23.3.4 Abstand des neuen VI-Objekts vom Referenzobjekt;540
6.7.3.5;23.3.5 GObjects suchen;542
6.7.3.6;23.3.6 GObject-Beschriftung abfragen;543
6.7.3.7;23.3.7 Klassenhierarchie mittels Klassennamen ermitteln;543
6.7.3.8;23.3.8 Weiterführende Informationen;545
6.7.4;23.4 Wo werden VI-Skripte eingesetzt?;546
6.7.5;23.5 Modifizierung der Projektvorlage 'Leeres VI';547
6.7.6;23.6 Erstellen eines Quickdrop Plugins mit VI-Skripting;551
6.8;24 XNodes;554
6.8.1;24.1 Einführung;554
6.8.2;24.2 Regelungstechnische Anwendung;555
6.8.3;24.3 Aufbau eines XNodes;557
6.8.4;24.4 Wie bildet man einen XNode?;557
6.8.4.1;24.4.1 Vorbereitende Überlegungen;557
6.8.4.2;24.4.2 Programmierung von NeueKuh.xnode;562
6.8.4.2.1;24.4.2.1 Template-VI;562
6.8.4.2.2;24.4.2.2 Ability-VIs;563
6.8.5;24.5 Wie ändert man einen XNode?;572
6.8.6;24.6 XNodes in der Funktionspalette speichern;572
7;Literatur;576
8;Index;578