LabVIEW für Dummies - Corinna Meiwald - E-Book

LabVIEW für Dummies E-Book

Corinna Meiwald

0,0
24,99 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

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:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 385

Veröffentlichungsjahr: 2022

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



LabVIEW für Dummies

Schummelseite

FARBEN DER DATENTYPEN IN LABVIEW

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 Datencontainer

Arrays 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 ocker

TUNNELMODI IN LABVIEW

Da 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

SHORT CUTS IN LABVIEW

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 + QUICKDROP

LabVIEW 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

Über die Autoren

Melanie von der Crone

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

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).

Idee zum Buch

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!

Inhaltsverzeichnis

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

Tabellenverzeichnis

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

Illustrationsverzeichnis

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

Orientierungspunkte

Cover

Titelblatt

Impressum

Über die Autoren

Inhaltsverzeichnis

Einleitung

Fangen Sie an zu lesen

Abbildungsverzeichnis

Stichwortverzeichnis

End User License Agreement

Seitenliste

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

Einleitung

Über dieses Buch

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.

Konventionen in diesem Buch

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.

Was Sie nicht lesen müssen

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.

Törichte Annahme über den Leser

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.

Wie dieses Buch aufgebaut ist

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.

Symbole, die in diesem Buch verwendet werden

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.

Wie es weitergeht

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

Die Entwicklungsumgebung in LabVIEW

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

LabVIEW – die etwas andere Art der Programmierung

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 LabVIEW

In 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.

Datenflussprinzip

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