24,99 €
Ganz unverhofft müssen Sie sich mit LabVIEW beschäftigen? Dieses Buch hilft Ihnen dabei sich in diesem grafischen Programmiersystem zurechtzufinden. Die Autorinnen erklären Ihnen die Grundlagen von grafischer Programmierung und erläutern was Virtuelle Instrumente (VIs) sind. Sie führen Sie in die Arbeit in Projekten mit LabVIEW ein, zeigen Ihnen was Sie bei der Fehlersuche beachten sollten, wie Sie Datentypen und Datenstrukturen verwenden und vieles mehr. Dabei kommt auch das klassische Programmieren nicht zu kurz und so werden Sie sich schneller als Sie denken in LabVIEW zurechtfinden.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 385
Veröffentlichungsjahr: 2022
LabVIEW für Dummies
Hier sehen Sie auf einen Blick, welche Farben die verschiedenen Datentypen in LabVIEW haben (Die Farben können auf Ihrem Bildschirm leicht abweichen, auf der Seite von Nation Instruments finden Sie die Farben, so wie sie sich auch auf Ihrem Bildschirm darstellen).
Strings sind rosa Numerics sind – abhängig vom Datentyp – blau (Ganzzahlen), orange (Gleitpunktzahlen und komplexe Zahlen) oder grau (Festkommazahlen) Boolean sind grün Arrays und Cluster sind DatencontainerArrays nehmen die Farbe des jeweiligen Datentyps an, den sie beinhalten
Cluster sind braun oder rosa
Pfade sind türkis Ring und Enum sind blau oder orange (je nach Datentyp) Ein Variant ist lila Ein Picture ist blau Error sind ockerDa man bei den Tunnelmodi in LabVIEW schnell durcheinanderkommen kann, sehen Sie hier alle Tunnelmodi mit ihrer entsprechenden Abbildung.
Name am Eingang
Name am Ausgang
Ansicht
INDEXINGENABLED
INDEXING
INDEXINGDISABLED
LASTVALUE
Leerer Tunnel
USEDEFAULT IF UNWIRED
CONCATENATE
CONDITIONAL
SHIFTREGISTER
SHIFTREGISTER
An dieser Stelle möchten wir Ihnen ein paar praktische Short Cuts, die die Programmierung erleichtern können, vorstellen:
+ teilt Frontpanel und Blockdiagramm links und rechts auf, so dass Sie vom VI beide Teile gleichzeitig sehen können + ruft das betreffende Blockdiagramm bzw. Frontpanel nach oben + entfernt alle »Broken Wires«und ist sehr hilfreich, wenn noch kleine Überreste von Drähten nach dem Löschen eines Programmstückes vorhanden sind und das Programm dadurch nicht ausführbar ist + zeigt das ERRORLIST-Dialogfenster an + führt die Funktion CLEANUPDIAGRAM aus (mit Vorsicht zu genießen) + öffnet die VI Properties + öffnet ein neues VI + setzt die letzte Aktion zurück + + macht + rückgängig + startet das VI + STEPOVER + STEPOUT + STEPINTO + über zwei Anschlüsse im Blockdiagramm fahren mit einem Klick werden die Anschlüsse getauscht + Abort VI + + letztes Ausrichten nochmals ausführen + letztes Verteilen noch einmal ausführen + QUICKDROPLabVIEW bietet neben den Short Cuts noch die Verwendung sogenannter Quick Drops an. Diese können Sie über den obengenannten Short Cut oder in der Menüleiste über VIEWQUICKDROP aufrufen. Wenn Sie die Quick Drops benutzen, müssen während der Programmierung die Paletten im Frontpanel und Blockdiagramm nicht aufgerufen werden. Das ist sehr nützlich und spart Zeit, wenn Sie genau wissen, welchen Namen das gesuchte Objekt hat.
Abbildung 1:QUICKDROP-Dialogfenster
Den Namen können Sie im Eingabefeld des QUICKDROP-Dialogfensters in Abbildung 1 eingeben. Während Sie tippen, wird die Liste immer kürzer, weil nur jene Objekte angezeigt werden, die Ihren eingetippten Text enthalten. Taucht das gewünschte Objekt in der Liste auf, können Sie dieses markieren und es wird automatisch an der Stelle des Mauszeigers eingefügt, wenn Sie einmal ins Frontpanel/Blockdiagramm klicken.
Über den Button CONFIGURE… haben Sie zusätzlich die Möglichkeit, sich eigene Quick Drops zu konfigurieren (Abbildung 2).
Abbildung 2:QUICKDROP-Konfigurationsfenster
Mehr Informationen zu den Quick Drops erhalten Sie auf den Internetseiten von National Instruments.
LabVIEW für Dummies
Bibliografische Information der Deutschen Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie;detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.
1. Auflage 2022© 2022 Wiley-VCH GmbH, Boschstraße 12, 69469 Weinheim, Germany
All rights reserved including the right of reproduction in whole or in part in any form. This book published by arrangement with John Wiley and Sons, Inc.
Alle Rechte vorbehalten inklusive des Rechtes auf Reproduktion im Ganzen oder in Teilen und in jeglicher Form. Dieses Buch wird mit Genehmigung von John Wiley and Sons, Inc. publiziert.
Wiley, the Wiley logo, Für Dummies, the Dummies Man logo, and related trademarks and trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries. Used by permission.
Wiley, die Bezeichnung »Für Dummies«, das Dummies-Mann-Logo und darauf bezogene Gestaltungen sind Marken oder eingetragene Marken von John Wiley & Sons, Inc., USA, Deutschland und in anderen Ländern.
Das vorliegende Werk wurde sorgfältig erarbeitet. Dennoch übernehmen Autoren und Verlag für die Richtigkeit von Angaben, Hinweisen und Ratschlägen sowie eventuelle Druckfehler keine Haftung.
LabVIEW™ is a registered trademark in the U.S., the E.U., and other jurisdictions, of National Instruments Corporation, Austin, Texas, U.S.A. This publication is independent of National Instruments Corporation, which is not affiliated with the publisher or the author, and does not authorize, sponsor, endorse or otherwise approve this publication.
LabVIEW™ ist eine in den USA, der EU und anderen Ländern eingetragene Marke der National Instruments Corporation, Austin, Texas, USA. Diese Publikation ist unabhängig von der National Instruments Corporation, die nicht mit dem Herausgeber oder dem Autor verbunden ist und diese Publikation nicht autorisiert, gesponsert, befürwortet oder anderweitig genehmigt.
Coverfoto: Melanie von der Crone, Corinna MeiwaldKorrektur: Shangning Postel-Heutz
Print ISBN: 978-3-527-71820-7ePub ISBN: 978-3-527-83172-2
Melanie von der Crone ist 1986 geboren und hat nach einer Ausbildung zur Zahnmedizinischen Fachangestellten im Jahr 2011 mit dem Studium der Bio- und Nanotechnologien begonnen und dieses im Jahr 2016 mit dem Abschluss Master of Science beendet. Im Rahmen des Studiums wurde die graphische Programmiersprache LabVIEW erlernt und angewendet. Seit Abschluss des Studiums hat sie die häusliche Betreuung ihrer beiden Kinder übernommen (geboren 2017 und 2020).
Corinna Meiwald ist 1992 geboren und hat ebenfalls ab dem Jahr 2011 Bio- und Nanotechnologien studiert und dieses im Jahr 2017 mit dem Abschluss Master of Science beendet. Seitdem ist sie als Software-Entwicklerin und Projektleiterin in einer Firma für Elektronik und Sensorik tätig und hat in ihrem Berufsalltag im Wesentlichen mit LabVIEW zu tun. Zwischenzeitlich sind in ihrem Haushalt ebenfalls zwei Kinder hinzugekommen (geboren 2018 und 2021).
Die Idee zum Buch entstand, weil beiden Autorinnen im Studium praktikable Literatur zur graphischen Programmiersprache LabVIEW fehlte und »LabVIEW für Dummies« vergeblich in den Regalen der Bücherei suchten. Frau Meiwald steuerte für dieses Projekt praktische Erfahrung im Umgang mit LabVIEW bei, tat sich aber schwer dessen Inhalte »einfach«zu formulieren. Frau von der Crone fiel es dagegen leichter, das Ganze aus der »Dummie«-Sichtweise zu betrachten, da sie die Inhalte des Studiums für dieses Projekt neu aufarbeiten musste. Eine perfekte Kombination also, um ein Buch über LabVIEW für die bekannte »… für Dummies«-Reihe zu schreiben!
Cover
Titelblatt
Impressum
Über die Autoren
Idee zum Buch
Einleitung
Über dieses Buch
Konventionen in diesem Buch
Was Sie nicht lesen müssen
Törichte Annahme über den Leser
Wie dieses Buch aufgebaut ist
Symbole, die in diesem Buch verwendet werden
Wie es weitergeht
Teil I: Die Entwicklungsumgebung in LabVIEW
Kapitel 1: LabVIEW – die etwas andere Art der Programmierung
Datenflussprinzip
Benutzeroberfläche
Frontpanel und dessen Elemente
Blockdiagramm
Connector Pane
Werkzeuge und Paletten
Kontextmenü
Einstellung von Programmeigenschaften
Regeln für die Programmierung in LabVIEW
Übungen zu LabVIEW
Lösungen zu LabVIEW
Kapitel 2: Black Jack 1
Struktogramme
Black Jack-Regeln
Spielablauf
Struktogramm für Black Jack
Kapitel 3: Wenn der Umfang zunimmt: Arbeiten in Projekten
Was ist ein Projekt in LabVIEW?
Hierarchien
LabVIEW Librarys (Bibliotheken)
Abhängigkeiten (Dependencies) in Projekten
Fehler beim Starten eines VIs (
LOAD WARNING SUMMARY
)
Build-Spezifikationen
Übungen
Lösungen
Teil II: Grundlagen der Programmierung
Kapitel 4: Datentypen in LabVIEW und wofür sie verwendet werden
Grundlagen zur Zahlendarstellung
Numerische Datentypen
Boolesche Daten
Strings & Pfade
Rings und Enums
Bilder und Farben
Variant
Arrays
Cluster
Custom Control (CC)
Zugriffe auf Datentypen in LabVIEW
Übungen
Lösungen
Erstellen eines Custom Controls für Black Jack
Kapitel 5: Funktionen, VIs und VIM
Einfache numerische Funktionen
Vergleichsfunktionen
Boolesche Funktionen
Compound Arithmetic
2D Picture-Funktionen
Variant-Funktionen
String- und Pfadfunktionen
Array-Funktionen
Cluster-Funktionen
Konvertierung von Datentypen
Black Jack
Kapitel 6: Das Programm bekommt eine Struktur
Schleifen
Entscheidungsstrukturen
Tunnel & Shift Register
Unterprogramm (SubVI)
Ereignisstruktur
Timing-Funktionen
State Machine (Zustandsautomat)
Übungen zu Schleifen, Shift Register und Timing
State Machine beim Black Jack
Die For-Schleife bei Black Jack
Die Ereignisstruktur bei Black Jack
Der
CROUPIER‘S GAME
-Case bei Black Jack
Kapitel 7: Black Jack 2
Programmbeschreibung
VI Analyzer-Toolkit
Kapitel 8: Wenn gar nichts funktioniert: Debugging und Errorhandling
Fehler zur Erstellungszeit
Ausführungsfehler
Fehlerbehandlung in LabVIEW
Übungen
Lösungen
Teil III: Datenverarbeitung und Ansteuerung von Hardware
Kapitel 9: Datenverarbeitung
Verarbeitung von Dateien in LabVIEW
Öffnen und Schließen von Dateien
Textdateien
Tabellenkalkulation
Diagramme und Graphen
Formula Node
Übungsaufgaben zu Datenverarbeitung
Lösungen zu Datenverarbeitung
Kapitel 10: Hardwaresteuerung
National Instruments Measurement and Automation Explorer (NI MAX)
VISA
Treiber einbinden
Teil IV: Top-Ten Part
Kapitel 11: Zehn gängige Schnitzer beim Programmieren in LabVIEW
Beschriftung
Wire verläuft unter Element
Initialisierung
Property Nodes
Dokumentation
Icon
Kommentare
Coercion Dot
Wire verläuft von rechts nach links
Buntes Frontpanel
Abbildungsverzeichnis
Stichwortverzeichnis
End User License Agreement
Kapitel 1
Tabelle 1.1: Werkzeuge der Tools Palette
Kapitel 2
Tabelle 2.1: Werte der Spielkarten im Black Jack
Kapitel 3
Tabelle 3.1: Möglichkeiten der Versionierung
Kapitel 4
Tabelle 4.1: Gegenüberstellung der Zahlensysteme
Tabelle 4.2: Wertebereiche der vorzeichenlosen Ganzzahlen
Tabelle 4.3: Wertebereiche der vorzeichenbehafteten Ganzzahlen
Tabelle 4.4: Wortbreite der verschiedenen Datentypen
Tabelle 4.5: Verschiedene Textmodi von Strings für den Satz \\LabVIEW für Dummies\\ mit \...
Tabelle 4.6: Wichtige Property Node-Eigenschaften
Tabelle 4.7: Beispiele für Methoden/Aktionen bei Invoke Nodes
Kapitel 5
Tabelle 5.1:
AND
- und
NAND
-Funktion
Tabelle 5.2:
OR
-,
NOR
-,
EXCLUSIVE OR
- und
NOT
EXCLUSIVE
OR
-Funktion
Tabelle 5.3:
NOT
-Funktion
Tabelle 5.4: Funktionen, die Formatbezeichner verwenden
Tabelle 5.5: Beispiele für Zahlen mit ihren signifikanten Stellen
Tabelle 5.6: Konvertierungscodes für Integer
Tabelle 5.7: Konvertierungscodes für Gleitpunktzahlen
Tabelle 5.8: Konvertierungscodes für Zeitangaben
Tabelle 5.9: Konvertierungscodes für Strings
Tabelle 5.10: Formatcodes für das Dezimalzeichen
Tabelle 5.11: Erster Vergleich zur Spielbewertung
Tabelle 5.12: Zweiter Vergleich zur Spielbewertung
Kapitel 6
Tabelle 6.1: Verschiedene Tunnelmodi in LabVIEW
Tabelle 6.2: Auswirkungen der Tunnelmodi
INDEXING ENABLED
und
INDEXING DISABLED
...
Tabelle 6.3: Ausführungsunterschiede von
WAIT
UNTIL
NEXT
MS
MULTIPLE
und
WAIT
(b...
Kapitel 9
Tabelle 9.1: Optionen für
OPERATION
bei der Funktion
OPEN
/
CREATE
/
REPLACE
FILE
Einleitung
Abbildung 1:
QUICK
DROP
-Dialogfenster
Abbildung 2:
QUICK
DROP
-Konfigurationsfenster
Kapitel 1
Abbildung 1.1: Knoten im Datenflussdiagramm
Abbildung 1.2: Erklärung zum Datenfluss in LabVIEW
Abbildung 1.3: Anordnung der Elemente in LabVIEW
Abbildung 1.4: Zwei voneinander unabhängige Knoten im Datenflussdiagramm
Abbildung 1.5: Startoberfläche in LabVIEW zum Navigieren
Abbildung 1.6: Startbildschirm nach dem Öffnen eines neuen VIs mit den drei Kompo...
Abbildung 1.7: Symbolleiste des Frontpanels,①
RUN
; ②
RUN CONTINUOUSLY
;③
ABORT EXE
...
Abbildung 1.8: Verschiedene Zustände des
RUN
Buttons
Abbildung 1.9: Unterpaletten zur Positionierung auf dem Frontpanel
Abbildung 1.10: Kontexthilfe von »Produkt 2«
Abbildung 1.11: Verschiedene Darstellungsweisen im Blockdiagramm
Abbildung 1.12: Symbolleiste des Blockdiagramms;①
RUN
; ②
RUN CONTINUOUSLY
;③
ABORT
...
Abbildung 1.13: Tools Palette
Abbildung 1.14: Anwendung von
GET COLOR
Abbildung 1.15: Controls Palette auf dem Frontpanel
Abbildung 1.16:
DECORATIONS
Unterpalette auf dem Frontpanel
Abbildung 1.17: Functions Palette auf dem Blockdiagramm
Abbildung 1.18: Kontextmenü des Frontpanels
Abbildung 1.19: Beispiel für den Unterschied zwischen
CAPTION
und
LABEL
Abbildung 1.20: Unterschiede zwischen den
ENABLED STATES
:
ENABLED
,
DISABLED
und
D
...
Abbildung 1.21: Kontexthilfe zu einem Frontpanel-Element mit Eintragung unter
DES
...
Abbildung 1.22: Beispiel für einen
TIP STRIP
zur Laufzeit
Abbildung 1.23: Kontextmenü des Blockdiagramms
Abbildung 1.24: Hilfe zur Multiplikationsfunktion
Abbildung 1.25: Kontextmenü der Drähte
Abbildung 1.26:
VI PROPERTIES
in LabVIEW
Abbildung 1.27:
MEMORY USAGE
in den
VI PROPERTIES
Abbildung 1.28:
DOCUMENTATION
in den
VI PROPERTIES
Abbildung 1.29:
REVISION HISTORY
in den
VI PROPERTIES
Abbildung 1.30:
REVISION HISTORY
-Dialogfenster
Abbildung 1.31:
EDITOR OPTIONS
in
VI PROPERTIES
Abbildung 1.32:
PROTECTION
in den
VI PROPERTIES
Abbildung 1.33:
ENTER PASSWORD
-Dialogfenster
Abbildung 1.34:
WINDOW APPEARANCE
in den
VI PROPERTIES
Abbildung 1.35:
WINDOW SIZE
in den
VI PROPERTIES
Abbildung 1.36:
RUN TIME POSITION
in den
VI PROPERTIES
Abbildung 1.37:
EXECUTION
in den
VI PROPERTIES
Abbildung 1.38:
PRINT OPTIONS
in den VI Properties
Kapitel 2
Abbildung 2.1: Anweisungsblock im Struktogramm
Abbildung 2.2: Schleifen im Struktogramm
Abbildung 2.3: Weggabelung als Analogie zur Fallunterscheidung
Abbildung 2.4: Fallunterscheidung im Struktogramm
Abbildung 2.5: Beispiel für ein Struktogramm
Abbildung 2.6: Struktogramm für Black Jack
Kapitel 3
Abbildung 3.1: Startoberfläche in LabVIEW zum Navigieren
Abbildung 3.2:
PROJEKT EXPLORER
vom Black Jack-Projekt
Abbildung 3.3: Oberfläche zum Erstellen von neuen Projekten
Abbildung 3.4: Hierarchie des Black Jack-Projekts
Abbildung 3.5: Ansicht nach Öffnung der Library
Abbildung 3.6: Zuordnung des VIs zur Library
Abbildung 3.7: Finden des Speicherorts von Abhängigkeiten
Abbildung 3.8: Gründe für das Vorhandensein einer Abhängigkeit in einem Projekt
Abbildung 3.9: Fehlermeldung, wenn Abhängigkeit nicht gefunden wird
Abbildung 3.10: Dialogfenster beim Laden einer fehlerhaften Abhängigkeit
Abbildung 3.11:
RESOLVE CONFLICTS
Abbildung 3.12:
LOAD WARNING SUMMARY
Abbildung 3.13:
LOAD AND SAVE WARNING LIST
Abbildung 3.14:
SUBVI NOT FOUND
Abbildung 3.15: Suche nach einem SubVI
Abbildung 3.16: Fenster, in dem der neue Pfad des SubVIs angegeben werden kann
Abbildung 3.17: Erstellung einer Build-Spezifikation im Projekt
Kapitel 4
Abbildung 4.1: Terminals für die verschiedenen vorzeichenlosen Ganzzahlen
Abbildung 4.2: Terminals für die verschiedenen vorzeichenbehafteten Ganzzahlen
Abbildung 4.3: Beispiel eines Überlaufs Datentyp U8
Abbildung 4.4: Vermeidung eines Überlaufs durch die richtige Verwendung des Datentyps U...
Abbildung 4.5: Wortbreiten der Gleitpunktzahlen im Blockdiagramm
Abbildung 4.6: Numerische Elemente von der Controls Palette
Abbildung 4.7: Änderung des Datentyps in LabVIEW
Abbildung 4.8: Einblenden des
UNIT LABELS
zur Darstellung von Einheiten
Abbildung 4.9: Boolean auf dem Blockdiagramm
Abbildung 4.10: Boolesche Bedienelemente auf der Controls Palette
Abbildung 4.11: Schaltverhalten der booleschen Bedienelemente a) Switch When Pressed;b) Swi...
Abbildung 4.12: String Control
Abbildung 4.13: String Properties
Abbildung 4.14: Pfadelemente
Abbildung 4.15: Pfadkonstanten auf der Functions Palette
Abbildung 4.16:
BROWSE OPTIONS
bei Pfadcontrols
Abbildung 4.17: Ring und Enum auf dem Frontpanel
Abbildung 4.18: Ring und Enum
Abbildung 4.19:
EDIT ITEMS
in den
PROPERTIES
Abbildung 4.20: Ring und Enum in Kombination mit einer Case-Struktur
Abbildung 4.21:
TEXT & PIC RING
Kartendeck im Frontpanel mit geöffnetem
PROPERTIES
-Fens...
Abbildung 4.22: Unterpalette
CONTROLS
mit dem Datentyp
2D PICTURE
Abbildung 4.23: Darstellung von
2D PICTURES
Abbildung 4.24:
COLOR BOX
in LabVIEW
Abbildung 4.25: Beispiele für mehrere Farben in Hexadezimaldarstellung
Abbildung 4.26:
VARIANT & CLASS
-Palette
Abbildung 4.27: Datentyp
VARIANT
Abbildung 4.28: Array auf der Controls Palette im Frontpanel
Abbildung 4.29: Leeres Array
Abbildung 4.30: Index Display eines 3-dimensionalen Arrays
Abbildung 4.31: Index Display beim Array aufziehen
Abbildung 4.32: Arrays mit verschiedenen Dimensionen
Abbildung 4.33: Blockdiagramm mit verschiedenen Wirestärken der Arrays
Abbildung 4.34: Anzahl der Felder im 1D-Array erweitern
Abbildung 4.35: 2D-Array-Spalten erweitern
Abbildung 4.36: Einzelnes Feld im Array vergrößern
Abbildung 4.37: Index Display 2D-Array
Abbildung 4.38: Index Display 3D-Array
Abbildung 4.39: Cluster auf dem Frontpanel
Abbildung 4.40: Leeres Cluster nach dem Erstellen
Abbildung 4.41: Cluster in rosa und braun
Abbildung 4.42: Cluster mit verschiedenen Informationen über Spieler
Abbildung 4.43: Kontextmenü zum Erstellen eines Custom Controls
Abbildung 4.44: Custom Control im Blockdiagramm
Abbildung 4.45: Kontextmenü nach Erstellung eines Custom Controls
Abbildung 4.46: Fenster zum Bearbeiten des Custom Controls
Abbildung 4.47: Darstellung der Modi als Schraubenschlüssel und Pinzette
Abbildung 4.48: Angewählter
CUSTOMIZE MODE
Abbildung 4.49: Ungültiges Custom Control
Abbildung 4.50: Custom Control nach Import des Bildes
Abbildung 4.51: VI-Referenz
Abbildung 4.52:
PROPERTY NODE
auf der Unterpalette
APPLICATION CONTROL
Abbildung 4.53:
EXPLICIT
Property Node
Abbildung 4.54: Property Node über das Kontextmenü erstellt
Abbildung 4.55: Invoke Node
Abbildung 4.56: Lokale Variable auf der Functions Palette
Abbildung 4.57: Modi bei Lokalen Variablen
Abbildung 4.58: Verwendung von lokalen Variablen
Abbildung 4.59: Globale Variable nach der Erstellung
Abbildung 4.60: Globale Variable auf der Functions Palette
Abbildung 4.61: Frontpanel einer neu angelegten globalen Variablen
Abbildung 4.62: Beispiel einer globalen Variablen
Kapitel 5
Abbildung 5.1: Beispiele für Funktionen
Abbildung 5.2: Beispiele für .vi-Funktionen
Abbildung 5.3: Beispiele für .vim-Funktionen
Abbildung 5.4: Beispiele für vi.-Funktionen mit
POLYMORPHIC VI SELECTOR
Abbildung 5.5: Numerische Funktionen auf der Functions Palette
Abbildung 5.6: Beispiel für eine Subtraktion
Abbildung 5.7: Beispiel für eine Subtraktion
Abbildung 5.8: Unterpalette
MATH CONSTANTS
Abbildung 5.9:
MATHEMATICS
auf der Functions Palette
Abbildung 5.10: Beispiel für einen
COERCION DOT
Abbildung 5.11: Beispiel für ein falsches Ergebnis durch einen
COERCION DOT
Abbildung 5.12:
COMPARISON
-Funktionen
Abbildung 5.13: Boolesche Funktionen auf der Functions Palette
Abbildung 5.14:
AND
-Funktion
Abbildung 5.15:
NAND
-Funktion
Abbildung 5.16:
OR
-Funktion
Abbildung 5.17:
NOR
-Funktion
Abbildung 5.18:
EXCLUSIVE OR
-Funktion
Abbildung 5.19:
NOT EXCLUSIVE OR
-Funktion
Abbildung 5.20:
NOT
-Funktion
Abbildung 5.21:
COMPOUND ARITHMETIC
-Funktion
Abbildung 5.22: Funktionen für
2D PICTURES
im Blockdiagramm
Abbildung 5.23:
2D PICTURE
-Rechteck
Abbildung 5.24: Funktionen zum Schreiben und Lesen von verschiedenen Bildformaten
Abbildung 5.25: Beispiel für
COLOR BOX
mit einem
2D PICTURE
Abbildung 5.26: Variant-Funktionen auf der Functions Palette
Abbildung 5.27:
TO VARIANT
-Icon
Abbildung 5.28: Beispiel für
TO VARIANT
Abbildung 5.29:
SET VARIANT ATTRIBUTE
-Icon
Abbildung 5.30: Beispiel für ein Attribut beim Variant
Abbildung 5.31:
TIME STAMP
Abbildung 5.32:
GET VARIANT ATTRIBUTE
-Icon
Abbildung 5.33: Beispiele für die Verwendung von
GET VARIANT ATTRIBUTE
Abbildung 5.34:
STRING LENGTH
-Icon
Abbildung 5.35: Beispiel für
STRING LENGTH
Abbildung 5.36:
CONCATENATE STRINGS
-Icon
Abbildung 5.37: Beispiel für
CONCATENATE STRINGS
Abbildung 5.38:
STRING SUBSET
-Icon
Abbildung 5.39: Beispiel für
STRING SUBSET
Abbildung 5.40:
FORMAT VALUE
-Icon
Abbildung 5.41: Beispiele für Formatbezeichner
Abbildung 5.42: Hilfreiche Pfadfunktionen
Abbildung 5.43: Beispiel
BUILD PATH
Abbildung 5.44: Beispiel
STRIP PATH
Abbildung 5.45:
INITIALIZE ARRAY
-Icon
Abbildung 5.46: Beispiel für
INITIALIZE ARRAY
Abbildung 5.47:
INDEX ARRAY
-Icon
Abbildung 5.48:
INDEX ARRAY 1D
Abbildung 5.49:
INDEX ARRAY 2D
Abbildung 5.50:
INDEX ARRAY 3D
Abbildung 5.51:
INDEX ARRAY 2D
mit
SUBARRAY
Abbildung 5.52:
INDEX ARRAY
Fehlermeldung
Abbildung 5.53:
SHUFFLE 1D ARRAY.VIM
-Icon
Abbildung 5.54: Beispiel für die Funktion
SHUFFLE 1D ARRAY.VIM
Abbildung 5.55:
DELETE FROM ARRAY
-Icon
Abbildung 5.56: Beispiel für die Funktion
DELETE FROM ARRAY
Abbildung 5.57:
BUILD ARRAY
-Icon
Abbildung 5.58:
BUILD ARRAY
mit drei einzelnen Elementen
Abbildung 5.59:
BUILD ARRAY
ohne
CONCATENATE INPUTS
Abbildung 5.60:
BUILD ARRAY
mit
CONCATENATE INPUTS
Abbildung 5.61:
TRANSPOSE 2D ARRAY
-Icon
Abbildung 5.62: Beispiel für die Funktion
TRANSPOSE 2D ARRAY
Abbildung 5.63:
SORT 1D ARRAY.VIM
-Icon
Abbildung 5.64:
SORT 1D ARRAY
mit Numerics
Abbildung 5.65:
SORT 1D ARRAY
mit Strings
Abbildung 5.66:
REVERSE 1D ARRAY
-Icon
Abbildung 5.67: Beispiel für
REVERSE 1D ARRAY
Abbildung 5.68:
INSERT INTO ARRAY
-Icon
Abbildung 5.69:
INSERT INTO ARRAY
1D
Abbildung 5.70:
INSERT INTO ARRAY
2D
Abbildung 5.71:
INSERT INTO ARRAY
3D page
Abbildung 5.72:
INSERT INTO ARRAY
3D column
Abbildung 5.73:
INSERT INTO ARRAY 3D
row
Abbildung 5.74:
BUNDLE
-Funktionen auf der Unterpalette
CLUSTER, CLASS & VARIANT
...
Abbildung 5.75:
UNBUNDLE BY NAME
-Icon
Abbildung 5.76:
UNBUNDLE
-Icon
Abbildung 5.77: Funktionsweise von
UNBUNDLE
und
UNBUNDLE BY NAME
Abbildung 5.78:
BUNDLE
-Icon
Abbildung 5.79:
BUNDLE BY NAME
-Icon
Abbildung 5.80: Funktionsweise
BUNDLE
Abbildung 5.81: Anzeige eines Tip Strip bei der Funktion
BUNDLE
im Blockdiagramm
Abbildung 5.82: Funktionsweise
BUNDLE BY NAME
Abbildung 5.83: Veränderung von Daten im Cluster
Abbildung 5.84: Konvertierungspalette für numerische Datentypen
Abbildung 5.85: Beispiele zur Anwendung der Konvertierungsfunktionen
Abbildung 5.86:
BOOLEAN TO (0,1)
-Icon
Abbildung 5.87: Beispiel Funktion
BOOLEAN TO (0,1)
Abbildung 5.88: Icons
Abbildung 5.89: Number To Boolean Array
Abbildung 5.90: Beispiele
RGB TO COLOR.VI
und
COLOR TO RGB.VI
Abbildung 5.91: Konvertierungspalette für Strings
Abbildung 5.92:
BYTE ARRAY TO STRING
-Icon
Abbildung 5.93: Beispiel für
BYTE ARRAY TO STRING
Abbildung 5.94:
ARRAY OF STRINGS TO PATH
-Icon
Abbildung 5.95:
ARRAY OF STRINGS TO PATH
Abbildung 5.96:
NUMBER TO HEXADECIMAL STRING
-Icon
Abbildung 5.97: Beispiele für
NUMBER TO HEXADECIMAL STRING
Abbildung 5.98:
DECIMAL STRING TO NUMBER
-Icon
Abbildung 5.99: Beispiel für
DECIMAL STRING TO NUMBER
Abbildung 5.100: Vorgang des Kartenziehens
Abbildung 5.101: Unterpalette
DIALOG & USER INTERFACE
Abbildung 5.102:
TWO BUTTON DIALOG
-Icon
Abbildung 5.103: Verwendung von
TWO BUTTON DIALOG
bei Black Jack
Abbildung 5.104: Spielbewertung für Black Jack
Kapitel 6
Abbildung 6.1:
FOR LOOP
auf der Functions Palette
Abbildung 6.2: Mauszeigersymbol zum Aufziehen einer For-Schleife
Abbildung 6.3: For-Schleife auf dem Blockdiagramm
Abbildung 6.4: Verschiedene Möglichkeiten, eine For-Schleife zu ite...
Abbildung 6.5:
WHILE LOOP
auf der Functions Palette
Abbildung 6.6: Mauszeigersymbol zum Aufziehen einer While-Schleife
Abbildung 6.7: While-Schleife im Blockdiagramm
Abbildung 6.8: Verschiedene Modi des Conditional Terminal
Abbildung 6.9:
SELECT
auf der Functions Palette
Abbildung 6.10:
SELECT
Funktion-Icon
Abbildung 6.11: Verwendung von
SELECT
im
BLACKJACK.VI
Abbildung 6.12:
CASE STRUCTURE
auf der Functions Palette
Abbildung 6.13: Weggabelung als Analogie zur Case-Struktur
Abbildung 6.14: Mauszeigersymbol während der Erstellung einer Case...
Abbildung 6.15: Case-Strukturen mit verschiedenen Eingängen
Abbildung 6.16: Beispiel Case-Struktur mit Enum
Abbildung 6.17: Eingangstunnel einer Schleife
Abbildung 6.18: Spezielle Tunnel bei Case-Strukturen
Abbildung 6.19: Unterschiede zwischen den verschiedenen Tunnelmodi
Abbildung 6.20:
CONDITIONAL
Tunnel
Abbildung 6.21:
CONDITIONAL
Tunnel mit
INDEXING
Abbildung 6.22:
CONDITIONAL
Tunnel
LAST VALUE
Abbildung 6.23:
CONDITIONAL
Tunnel
CONCATENATING
Abbildung 6.24: Shift Register
Abbildung 6.25: Beispiel Shift Register »Addition«
Abbildung 6.26: Beispiel Shift Register »Subtraktion«
Abbildung 6.27: Beispiel Shift Register »Mehrfach«
Abbildung 6.28: Verschiedene Vorlagen für die Connector Pane-Schal...
Abbildung 6.29: Verschiedene Möglichkeiten für die Einstellungen d...
Abbildung 6.30: Darstellung der optionalen Eingänge eines SubVIs
Abbildung 6.31: Erstellung eines SubVIs aus einem bestehenden Prog...
Abbildung 6.32: Icon Editor zum Verändern des VI-Icons
Abbildung 6.33: Connector Pane und Icon des
DRAW_CARDS_SUBVI
Abbildung 6.34:
DRAW_CARDS_SUBVI
Abbildung 6.35: Sequenz während der Erstellung
Abbildung 6.36: Sequenz nach der Erstellung
Abbildung 6.37:
FLAT SEQUENCE
auf der Functions Palette
Abbildung 6.38: Flache Sequenz mit Tunnel
Abbildung 6.39: Gestapelte Sequenz
Abbildung 6.40: Sequenzvariablen einer gestapelten Sequenz
Abbildung 6.41:
EVENT STRUCTURE
auf der Functions Palette
Abbildung 6.42: Mauszeiger während der Erstellungszeit einer
EVENT
...
Abbildung 6.43:
EVENT STRUCTURE
Abbildung 6.44: Ablaufdiagramm zur Unterscheidung von Notify/Filte...
Abbildung 6.45: Dialogfenster von
EDIT EVENTS HANDLED BY THIS CASE
Abbildung 6.46: Unterpalette der Timing-Funktionen
Abbildung 6.47:
TICK COUNT (MS)
-Icon
Abbildung 6.48: Beispiel
TICK COUNT (MS)
Abbildung 6.49:
HIGH RESOLUTION RELATIVE SECONDS.VI
-Icon
Abbildung 6.50: Beispiel
HIGH RESOLUTION RELATIVE SECONDS.VI
Abbildung 6.51:
WAIT (MS)
-Icon
Abbildung 6.52: Beispiel für
WAIT (MS)
Abbildung 6.53:
WAIT UNTIL NEXT MS MULTIPLE
-Icon
Abbildung 6.54: Beispiel für
WAIT UNTIL NEXT MS MULTIPLE
Abbildung 6.55: Zustandsdiagramm Mealy-Automat
Abbildung 6.56: Zustandsdiagramm Moore-Automat
Abbildung 6.57: Beispiel für State Machine in LabVIEW
Abbildung 6.58: Übungsaufgaben Shift Register
Abbildung 6.59: Lösungen Shift Register
Abbildung 6.60: Zustandsdiagramm für das Black Jack-Spiel
Abbildung 6.61: Grundgerüst der State Machine für Black Jack
Abbildung 6.62: For-Schleife im Zustand
FIRST CARDS
Abbildung 6.63: Ausblenden des
EVENT DATA NODE
Abbildung 6.64:
NEW CARD
-Ereignis
Abbildung 6.65:
CROUPIER‘S GAME
Case
Kapitel 7
Abbildung 7.1: Black Jack-Spieltisch im Frontpanel
Abbildung 7.2: Zustand
INITIALIZATION
Abbildung 7.3: Zustand
SHUFFLE CARDS
Abbildung 7.4: Zustand
FIRST CARDS
Abbildung 7.5:
DRAW_CARDS_SUBVI
Abbildung 7.6: Zustand
GAMBLER‘S GAME
Abbildung 7.7: Zustand
GAMBLER‘S GAME
Abbildung 7.8: Zustand
WHO'S THE WINNER
Abbildung 7.9:
VI ANALYZER
nach der Installation unter dem Reiter
TOOLS
Abbildung 7.10:
VI ANALYZER-SELECT TASK
-Dialogfenster
Abbildung 7.11:
VI ANALYZER-SELECT
VIs-Dialogfenster
Abbildung 7.12:
VI ANALYZER-SELECT TESTS
-Dialogfenster
Abbildung 7.13:
VI ANALYZER RESULTS WINDOW: TEST RESULTS
Abbildung 7.14:
VI ANALYZER RESULTS WINDOW: SUMMARY
Kapitel 8
Abbildung 8.1: Fehler zur Erstellungszeit durch Verbindung unterschiedlicher Date...
Abbildung 8.2:
HIGHLIGHT EXECUTION
-Button
Abbildung 8.3: Darstellung des Datenflusses im Blockdiagramm
Abbildung 8.4: Sonden-Werkzeug
Abbildung 8.5:
PROBE WATCH WINDOW
einer Sonde
Abbildung 8.6:
RETAIN WIRE VALUES
-Button
Abbildung 8.7: Breakpoints auf Funktion und Draht
Abbildung 8.8:
SINGLE STEPPING
-Buttons
Abbildung 8.9: Fehler-Cluster
Abbildung 8.10: Fehler-Cluster auf der Controls Palette
Abbildung 8.11:
ERROR IN 3D.CTL
-Control
Abbildung 8.12: Beispiel für ein Fehler-Cluster
Abbildung 8.13:
ERROR RING
nach der Erstellung
Abbildung 8.14:
SELECT ERROR
-Dialogfenster
Abbildung 8.15: Kontextmenü des
ERROR RING
Abbildung 8.16: Fehler-Ring nach der Auswahl eines Errors
Abbildung 8.17: Fehler-Ring mit selbst erstelltem Error
Abbildung 8.18:
SIMPLE ERROR HANDLER.VI
Abbildung 8.19:
CLEAR ERRORS.VI
Abbildung 8.20: Case-Struktur mit Error
Kapitel 9
Abbildung 9.1: Explorerdialog zum Auswählen des Dateipfades
Abbildung 9.2: Beispiel für einen
PROMPT
Abbildung 9.3: Pfadcontrol und Pfadvariable in LabVIEW
Abbildung 9.4:
OPEN/CREATE/REPLACE FILE
und
CLOSE FILE
auf der
FILE
...
Abbildung 9.5:
OPEN/CREATE/REPLACE FILE
-Icon
Abbildung 9.6: Warnung zu
REPLACE OR CREATE WITH CONFIRMATION
Abbildung 9.7:
CLOSE FILE
-Icon
Abbildung 9.8: Funktionen für Textdateien auf der Functions Palette
Abbildung 9.9:
READ (FROM) TEXT FILE
-Icon
Abbildung 9.10:
WRITE (TO) TEXT FILE
-Icon
Abbildung 9.11:
SET FILE POSITION
-Icon
Abbildung 9.12: Funktionen für Tabellenkalkulation auf der Functio...
Abbildung 9.13:
WRITE DELIMITED SPREADSHEET.VI
-Icon
Abbildung 9.14: Beispiel für den Parameter
TRANSPOSE
bei
WRITE DEL
...
Abbildung 9.15:
READ DELIMITED SPREADSHEET.VI
-Icon
Abbildung 9.16: Unterpalette
GRAPH
auf der Controls Palette
Abbildung 9.17:
WAVEFORM CHART
Abbildung 9.18:
WAVEFORM GRAPH
Abbildung 9.19: Kontextmenü des Plots und beider Achsen (x und y) ...
Abbildung 9.20: Unterschiedliche Optionen bei
MARKER SPACING
Abbildung 9.21: Anwendungsbeispiel
WAVEFORM CHART
Abbildung 9.22: Anwendungsbeispiel
WAVEFORM GRAPH
Abbildung 9.23:
WAVEFORM CHART
mit zwei Signalverläufen
Abbildung 9.24:
WAVEFORM GRAPH
mit zwei Signalverläufen
Abbildung 9.25:
XY GRAPH
Abbildung 9.26: Anwendungsbeispiel
XY GRAPH
Abbildung 9.27: Anwendungsbeispiel
XY GRAPH
mit vertauschten Achse...
Abbildung 9.28:
INTENSITY GRAPH
Abbildung 9.29: Anwendungsbeispiel
INTENSITY GRAPH
Abbildung 9.30: Beispiel für einen Kreis im
INTENSITY GRAPH
Abbildung 9.31:
FORMULA NODE
auf der Functions Palette
Abbildung 9.32:
FORMULA NODE
zur Erstellungszeit
Abbildung 9.33: Darstellung einer Case-Struktur als LabVIEW-Code u...
Abbildung 9.34: Drei Gleichungen als normaler Code im Blockdiagram...
Abbildung 9.35: Drei Gleichungen als
FORMULA NODE
Kapitel 10
Abbildung 10.1: Logo
NI MAX
Abbildung 10.2: Startseite
NI MAX
Abbildung 10.3:
SOFTWARE
im NI MAX
Abbildung 10.4:
GERÄTE UND SCHNITTSTELLEN
im NI MAX
Abbildung 10.5: kein assozierter Treiber für neue Hardware
Abbildung 10.6: Treiber für neue Hardware
Abbildung 10.7: Panel eines korrekt installierten Gerätes
Abbildung 10.8: Testpanel eines Gerätes aus dem NI MAX geöffnet
Abbildung 10.9: MAX USB
Abbildung 10.10: Palette für die VISA-Funktionen
Abbildung 10.11: VISA-Funktionen mit Anschlüssen
Abbildung 10.12:
VISA RESOURCE NAME
im Frontpanel
Abbildung 10.13:
INSTRUMENT DRIVER FINDER
aufrufen
Abbildung 10.14:
INSTRUMENT DRIVER FINDER
-Dialogfenster
Abbildung 10.15: Unterpalette
INSTRUMENT DRIVER
Abbildung 10.16:
VI TREE
Abbildung 10.17: Beispiel eines VI Trees des Geräts Agilent 34401 aus den LabVIEW...
Kapitel 11
Abbildung 11.1: Roulette Spiel
Abbildung 11.2: Gleiche Benennung
Abbildung 11.3: Wire unter Element
Abbildung 11.4: Kontexthilfe des Roulette-Programms
Abbildung 11.5: Beispiel eines Coercion Dots im Roulette-Programm
Abbildung 11.6: Wire von rechts nach links
Cover
Titelblatt
Impressum
Über die Autoren
Inhaltsverzeichnis
Einleitung
Fangen Sie an zu lesen
Abbildungsverzeichnis
Stichwortverzeichnis
End User License Agreement
1
2
3
4
7
8
9
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
393
394
395
396
397
Dieses Buch soll Ihnen helfen, einen Einstieg in LabVIEW zu finden und die Verwirklichung Ihrer ersten Programme zu ermöglichen. Dazu erhalten Sie ein Nachschlagewerk über LabVIEW, welches die (in unseren Augen) wichtigsten Grundlagen enthält, um ein eigenes Programm auf die Beine zustellen. Um dies zu erleichtern, haben wir ein Programm erstellt, in dem Sie gegen einen Croupier Black Jack spielen. Der Aufbau des Programms zieht sich peu à peu durch das Buch und wird am Ende nochmals vollständig beschrieben.
LabVIEW bietet dem Anwender sehr viele Elemente und Funktionen, um ein Programm zu erstellen. Leider können wir nicht auf alles eingehen, weil das Buch ansonsten wahrscheinlich mehr als tausend Seiten hätte. Deshalb haben wir uns im Rahmen dieses Buches größtenteils auf jene Elemente und Funktionen beschränkt, die im Black Jack-Programm notwendig sind. Allerdings gibt es auch den ein oder anderen Ausflug in LabVIEW-Bereiche, die nichts mit dem Programm zu tun haben. Generell gilt für LabVIEW (und wahrscheinlich für vieles andere auch): Learning by doing! Bitte nutzen Sie deshalb zusätzlich intensiv die von National Instruments für LabVIEW bereitgestellten Hilfefunktionen und untersuchen Sie die gewünschten Elemente und Funktionen mit ihren vielfältigen Optionen vor ihrer Anwendung genau. Im Zweifel geht man ganz nach dem Prinzip »Trial and Error«vor: Ausprobieren und gucken, was im Programm passiert (oder auch nicht)!
Bei National Instruments gibt es die Möglichkeit, an Zertifizierungstests für LabVIEW teilzunehmen, um sein Können zu zeigen. Die Zertifizierung wird in vier Stufen unterteilt:
CLAD (Certified LabVIEW Associate Developer): Nachweis von Grundkenntnissen
CLD (Certified LabVIEW Developer): Nachweis von fundierten Kenntnissen für die Entwicklung kleiner und mittelgroßer Anwendungen
CLA (Certified LabVIEW Architect): Nachweis von tiefen Kenntnissen für die Planung und Erstellung großer und komplexer Anwendungen
CLED (Certified LabVIEW Embedded Systems Developer): Nachweis der Fähigkeit Embedded-Systeme zur Steuerung, Regelung und Überwachung zu entwickeln
Wenn Sie sich für eine Zertifizierung interessieren, finden Sie weitere Informationen auf der Webseite von National Instruments.
Das Buch ist in einzelne Kapitel unterteilt, sodass Sie es nicht von vorne bis hinten lesen müssen. Sie können einzelne Kapitel überspringen oder nur Teile davon lesen, wenn Sie beispielsweise schon gewisse Vorkenntnisse in LabVIEW haben. Grundsätzlich raten wir Ihnen jedoch, das Buch von vorne bis hinten zu lesen, da sich so für den Leser der Aufbau von Black Jack (oder generell eines Programms) optimal erschließt – zumindest war das unsere Grundidee und unser Anliegen.
Das Buch ist in seiner Schreibweise so konzipiert, dass Sie als Leser ein Programm für einen anderen Anwender erstellen. Wenn von einer Erstellungszeit die Rede ist, meinen wir die Zeit, während der Programmierung, also in der Sie als Ersteller das Programm entwickeln. Wird das Wort Laufzeit verwendet, ist die Ausführung der von Ihnen programmierten Befehle gemeint, nachdem das Programm gestartet wurde.
Für einen einfacheren Lesefluss verzichten wir in diesem Buch auf eine gendergerechte Sprache. Selbstverständlich sollen sich alle Leser – ob männlich, weiblich oder divers – angesprochen fühlen.
Im Buch wird die englische Version von LabVIEW verwendet und dementsprechend sind auch alle Fachbegriffe in englischer Sprache, da in den meisten Unternehmen die englische Version im Einsatz ist.
Grundsätzlich gilt natürlich auch hier: Sie sollten alles lesen! Wenn Sie jedoch schon mit der Entwicklungsumgebung von LabVIEW vertraut sind, können Sie möglicherweise das Kapitel 1 LabVIEW überspringen. Oder falls Sie mit der Arbeit in Projekten keinerlei Berührungspunkte haben, könnten Sie Kapitel 3 ebenfalls übergehen.
Wir gehen davon aus, dass Sie grundlegende Kenntnisse besitzen, einen Computer zu bedienen und in der Lage dazu sind, LabVIEW zu installieren und in Betrieb zu nehmen. Die entsprechende Software können Sie auf der Webseite von National Instruments herunterladen. Neuerdings gibt es dort die Möglichkeit, eine kostenlose Community Edition von LabVIEW zu verwenden, so wie wir es auch für dieses Buch getan haben (nach Rücksprache mit National Instruments). Diese bietet die vollen Funktionen wie bei einer kommerziellen Version, darf allerdings nicht für kommerzielle Zwecke genutzt werden und ist nur für den privaten Gebrauch zugelassen. Die genau freigegebenen Verwendungszwecke der Community Edition können Sie in den Lizenzbedingungen von National Instruments nachlesen. Sie ist jedoch genau das Richtige, um Ihre ersten (privaten) Schritte und Programmierungen in LabVIEW vorzunehmen.
Außerdem nehmen wir an, dass Sie vermutlich schon in irgendeiner Form mit LabVIEW in Berührung gekommen sind, ansonsten würden Sie dieses Buch sicherlich nicht in Ihren Händen halten. Dennoch haben wir uns bemüht, die Inhalte so zu formulieren, als hätten Sie noch nie etwas von LabVIEW gehört.
Dieses Buch besteht aus folgenden Kapiteln:
Teil I
Die Entwicklungsumgebung in Labview
Kapitel 1
: LabVIEW
Hier erfahren Sie etwas über LabVIEW im Allgemeinen und dessen Aufbau der Entwicklungsumgebung.
Kapitel 2
: Black Jack 1
Bereits an dieser Stelle beginnen wir mit der Einführung, wie das Black Jack Programm aufgebaut werden kann und erläutern die Spielregeln.
Kapitel 3
: Projekte
In diesem Kapitel geht es um die Organisation von Programmen in Projekten, damit Sie bei der Arbeit mit Projekten den Überblick über Ihre Programme behalten.
Teil II
Grundlagen Der Programmierung
Kapitel 4
: Datentypen
Hier lernen Sie die verschiedenen Datentypen, die in LabVIEW verwendet werden, kennen (und vielleicht auch lieben).
Kapitel 5
: Funktionen
Nachdem Sie die Datentypen nun kennen, geht es hier um Funktionen, mit denen Sie die Datentypen in LabVIEW manipulieren können.
Kapitel 6
: Programmstruktur
Jetzt geht es an die Struktur: Damit aus Datentypen und Funktionen ein anständiges Programm wird, zeigen wir Ihnen, welche Strukturen Sie dafür in LabVIEW verwenden können.
Kapitel 7
: Black Jack 2
Im Verlauf des Buches haben Sie den Aufbau des Black Jack-Programms teilweise mitverfolgen können. An dieser Stelle gehen wir nochmals auf das Programm in seiner Gesamtheit ein.
Kapitel 8
: Debugging
Sollten Ihnen während der Programmierung Fehler unterlaufen oder das Programm verhält sich nicht wie erwartet, zeigen wir Ihnen in diesem Kapitel, wie Sie Ihr Programm auf Fehler untersuchen können.
Teil III
Datenverarbeitung und Ansteuerung von Hardware
Kapitel 9
: Datenverarbeitung
Wenn Sie sich mit (z. T. externen) Daten herumschlagen müssen, sind Sie hier an der richtigen Stelle. Wir stellen Ihnen Text- und Tabellenfunktionen vor sowie Diagramme und Graphen, mit denen Datensätze verarbeitet werden können.
Kapitel 10
: Hardwaresteuerung
Da Sie mit Hilfe von LabVIEW wahrscheinlich auch das Ziel verfolgen, Hardware anzusteuern, erfahren Sie in diesem Kapitel, wie die Kommunikation zwischen LabVIEW und Hardware aufgebaut wird.
Teil IV
Top-Ten Teil
Kapitel 11
: Die zehn gängisten Schnitzer bei der Programmierung in LabVIEW
Hier erklären wir Ihnen anhand eines Roulette-Programms welche Fehlerquellen es in LabVIEW gibt.
Wenn Sie das Hand-Symbol sehen, möchten wir Sie an bereits erklärte Inhalte erinnern, da sie an dieser Stelle nochmal wichtig sind.
Beim Anblick der Glühbirne erwarten Sie Tipps, die Ihnen das Arbeiten mit LabVIEW einfacher machen (sollen).
Das Ausrufezeichen soll Sie auf bestimmte Eigenheiten von LabVIEW hinweisen und vor möglichen Fehlerquellen warnen.
Die Anekdote gibt Ihnen Merksätze oder Erfahrungen aus dem täglichen Umgang mit LabVIEW mit auf den Weg.
Bei der Lupe finden Sie kurze Definitionen für bestimmte Anwendungen und Funktionen, die an dieser Stelle wichtig sind.
Das Fernglas enthält Beispiele für einige Funktionen und Strukturen zur Untermauerung der vorangegangenen Erläuterungen.
Im nächsten Kapitel wird Ihnen erst einmal das Funktionsprinzip und die Entwicklungsumgebung von LabVIEW vorgestellt. Danach werden wir auf die ersten Schritte zur Programmierung von Black Jack eingehen.
Die weiteren Inhalte dieses Buches repräsentieren die in unseren Augen wichtigsten Grundlagen von LabVIEW. Uns ist bewusst, dass dem ein oder anderen Leser Informationen fehlen oder ggf. auch zu viel sein werden. Auch ist unser Weg, LabVIEW zu beschreiben und das Programm Black Jack aufzubauen, NICHT der einzig richtige und vielleicht auch nicht der beste oder eleganteste. Unser Ziel war es, für Anfänger einen guten Einstieg in LabVIEW zu verwirklichen, indem wir überlegt haben, was uns im Studium dazu gefehlt hat bzw. geholfen hätte. Das haben wir versucht in diesem Buch anhand des Beispielprogramms Black Jack umzusetzen.
In diesem Sinne wünschen wir Ihnen viel Spaß beim Lesen und wir hoffen natürlich, dass Sie am Ende mehr über LabVIEW wissen als vorher!
Teil I
IN DIESEM TEIL …
… lernen Sie zunächst einmal die Entwicklungsumgebung in LabVIEW kennen. Sie sehen in welch einem Umfeld ein Programm (VI) entsteht und welche Möglichkeiten dafür in LabVIEW dafür zur Verfügung stehen. In einem weiteren Schritt erfahren Sie, wie mehrere Programme in einem Projekt gebündelt werden können, wenn der Umfang beim programmieren zunimmt. Im Kapitel Black Jack 1 geht es dann so langsam ans Eingemachte: anhand des Beispiels Black Jack erfahren Sie, welche ersten Überlegungen gemacht werden müssen, um an den Aufbau eines Programms heranzugehen.
Kapitel 1
IN DIESEM KAPITEL
Allgemeiner Aufbau und Prinzip von LabVIEWKennenlernen von Werkzeugen und Paletten, die zur Programmierung zur Verfügung stehenAnwendung des Kontextmenüs als wichtiges Hilfsmittel in LabVIEWIn diesem Kapitel erklären wir Ihnen, was LabVIEW ist, wofür es eingesetzt wird und wie man es benutzt. Sie werden die Bedienoberfläche und deren einzelne Elemente kennenlernen (Frontpanel, Blockdiagramm, Connector Pane, Icon). Um die Bedienoberfläche von LabVIEW mit Leben zu füllen, stehen verschiedene Werkzeuge und Paletten zur Verfügung, welche wir Ihnen in diesem Kapitel ebenfalls vorstellen werden. Ein wichtiges Hilfsmittel in LabVIEW ist das Kontextmenü, denn man kann mit dessen Hilfe wichtige Zeit beim Programmieren sparen. Deshalb wollen wir es Ihnen in diesem Kapitel zeigen und kurz auf die wichtigsten Punkte eingehen.
LabVIEW ist eine graphische Programmiersprache, deren Quellcode bzw. Programmlogik aus graphischen Elementen besteht. Die Abkürzung steht für Laboratory Virtual Instrument Engineering Workbench. Im Gegensatz zu textbasierten Programmiersprachen (wie zum Beispiel C++) können Sie mit LabVIEW Laborprozesse anschaulich mit bewegten Bildern darstellen. Zum Beispiel können Sie einen Kessel im Labor simulieren, in dem eine bunt gefärbte Flüssigkeit auf- und absteigt oder einen Farbumschlag in Abhängigkeit vom pH-Wert darstellen. Das klingt doch verlockender als irgendwelche kryptischen Texte, die schwarz auf weiß über einen Bildschirm flackern, oder?
Deshalb wird LabVIEW gerne in Ingenieur- und Naturwissenschaften eingesetzt. Mithilfe von LabVIEW können (Mess-)Geräte über sogenannte virtuelle Instrumente (VI) angesteuert werden. Diese virtuellen Instrumente werden von Ihnen in LabVIEW programmiert, das heißt sie sind das vollständige Programm. Jedes VI besteht aus dem Frontpanel, dem Blockdiagramm, dem Connector Pane und dem Icon. Das Frontpanel enthält Anzeige- und Bedienelemente, das Blockdiagramm enthält die eigentliche Programmlogik und das Connector Pane wird zur Erstellung von Unterprogrammen (SubVIs) genutzt. Das Icon wird zur Identifizierung des SubVIs angelegt, damit man es im Hauptprogramm schneller findet.
In den nächsten Unterkapiteln werden wir noch ausführlicher auf die Funktionen dieser vier Elemente eingehen. Jedes VI ist eigenständig lauffähig, kann aber auch beliebig als SubVI mit weiteren virtuellen Instrumenten verschachtelt werden, so dass auch hochkomplexe Programme erstellt werden können.
So wird die Programmiersprache sogar von der NASA eingesetzt. Wundern Sie sich also bitte nicht, wenn im Verlauf des Buches immer wieder Beispiele mit Bezug zur NASA auftauchen. Diese dienen zum besseren Verständnis, weil die meisten Menschen sich unter dem Begriff NASA etwas vorstellen können.
Die Programmierung in LabVIEW basiert auf dem Datenflussprinzip: graphische Symbole werden über Drähte (Wires) miteinander verbunden, so dass ein Flussdiagramm entsteht, welches von links nach rechts gelesen bzw. abgearbeitet wird. Die Farbe und Dicke der Drähte ist abhängig von dem verwendeten Datentyp. Im Verlauf des Datenflusses werden die Daten von einem Knoten (Node) zum nächsten übergeben. Nur wenn an allen Eingängen eines Knoten Daten verfügbar sind, wird dieser abgearbeitet und die Daten am Ausgang des Knotens weitergegeben. In Abbildung 1.1 ist ein einfacher Multiplikationsvorgang dargestellt. Das Multiplikationszeichen ist in diesem VI der Knoten. Erst wenn an beiden Eingängen des Knotens die Daten von Faktor 1 und Faktor 2 verfügbar sind, wird der Knoten abgearbeitet und das Ergebnis ausgegeben. In Kapitel 8 zeigen wir Ihnen, wie Sie den Datenfluss im Rahmen der Fehlersuche (Debugging) sichtbar machen können.
Abbildung 1.1: Knoten im Datenflussdiagramm
Der Datenfluss in LabVIEW wird über die Drähte gesteuert. Erst wenn alle Daten (a,b,c) an dem Block d anliegen – wie in Abbildung 1.2
