Einführung in LabVIEW

Einführung in LabVIEW

 

 

 

von: Wolfgang Georgi, Philipp Hohl

Carl Hanser Fachbuchverlag, 2015

ISBN: 9783446444072

Sprache: Deutsch

596 Seiten, Download: 41687 KB

 
Format:  PDF, auch als Online-Lesen

geeignet für: Apple iPad, Android Tablet PC's Online-Lesen PC, MAC, Laptop
Typ: A (einfacher Zugriff)

 

eBook anfordern

Mehr zum Inhalt

Einführung in LabVIEW



  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 89  
        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  

Kategorien

Service

Info/Kontakt

  Info
Hier gelangen Sie wieder zum Online-Auftritt Ihrer Bibliothek