Einführung in LabVIEW

Ähnliche Dokumente
Prof. Hans-Dieter Seelig, Ph.D. Lehrveranstaltung Grafische Programmiersysteme

Dokumentation CT TG13 Labview. 1.1 Drehregler: 0 C bis 100 C, Anzeige analog und als Zahlenwert

Flussdiagramm / Programmablaufplan (PAP)

Einführung in LabVIEW

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Kontrollstrukturen -- Schleifen und Wiederholungen

Die drei Engel der Weihnacht

Ergebnisse des Praktikums Dreiphasensystem (Ströme) 1) Berechnung aller Ströme eines Dreiphasensystems (Verbraucher-Dreieckschaltung)

5. Strukturierte Programmierung

Mathematik für Wirtschaftswissenschaftler

4.1.1 Numerische Datentypen (Darstellung) (Genauigkeit der Speicherung numerischer Daten d.h. Zahlen, benötigter Speicherplatz pro Zahl).

Labor Industrielle Netzwerke. Versuch 2: Tastaturentprellung

Computernetzwerke. Von den Grundlagen zur Funktion und Anwendung. von Rüdiger Schreiner. 2., überarbeitete Auflage. Hanser München 2007

ARCHICAD 10. Praktisches Handbuch für Entwurf, Planung und Realisierung. von Martin Schnitzer, Markus Denzlinger. 1. Auflage. Hanser München 2006

Schleifenanweisungen

2. Programmierung in C

Datenbankprogrammierung mit MySQL 5 und PHP 5 Spona

Programmieren lernen in ASP.NET mit C#

Einführung in die Programmierung mit BlueJ

Programmieren des NXT-Roboters mit LabView 2010

Programmstrukturen und Struktogramme

Visual Basic Express Fehlerermittlung

Handbuch für die Programmierung mit LabVIEW

Programmentwurf Prof. Metzler

Mathematik für das Ingenieurstudium

Programmablaufpläne. Vorgehen zur Erstellung eines lauffähigen C-Programms

Anweisungen und Kontrollstrukturen

Programming 101. Carl Herrmann IPMB & DKFZ

Moderne Workflow-Programmierung mit ABAP Objects

Labor Software-Entwicklung 1

Wie subtrahiert man ungleichnamige Brüche? Wie addiert man gemischte Zahlen? muss man Brüche auf den Hauptnenner bringen?

Mikrocomputertechnik

Javakurs für Anfänger

BKTM - Programmieren leicht gemacht.

Java-Programmierung mit NetBeans

Programmentwurf mittels strukturierter Programmierung. Programmentwurf. Nassi-Shneiderman-Diagramm [DIN ]

Labor Software-Entwicklung 1

6. Algorithmen auf Zeichenketten

ECDL-Advanced Excel 2010 Advanced

Berechnung einer Geschwindigkeit

Programmiertechnik 1 FOR-SCHLEIFEN

Einstieg in die Informatik mit Java

Einführung in NI LabVIEW

Gliederung. Übungsbeispiel Autovermietung

Einführung in LabVIEW

INSTALLATIONSANLEITUNG BEDIENUNGSANLEITUNG

Zwischenklausur Informatik, WS 2016/17. Lösungen zu den Aufgaben

Aufgabe spshaus Übung P1

INSTALLATIONSANLEITUNG BEDIENUNGSANLEITUNG

Richtig einsteigen: Access 2010 VBA-Programmierung

Demo für

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Technische Probleme lösen mit C/C++

Inhaltsverzeichnis. Wilhelm Haager. Computeralgebra mit Maxima. Grundlagen der Anwendung und Programmierung. ISBN (Buch):

Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme

Linux-Treiber entwickeln

3 Geoverarbeitung mit dem ModelBuilder

Datenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15

Shell-Programmierung für Unix und Linux

Strukturierte Programmentwicklung

INSTALLATIONSANLEITUNG BEDIENUNGSANLEITUNG

Excel Grundlagen. Peter Wies. 1. Ausgabe, Februar 2013

Einführung in die Programmierung für NF. Rückgabewerte, EBNF, Fallunterscheidung, Schleifen

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

HTML5, JavaScript und jquery

Learning Object-Oriented Programming. Algorithmen. Algorithmusbegriff. Klärung der Herkunft des Begriffs Formale Definition von Algorithmus

Schnelle Multiplikation

Makro. Operationsendeerkennung. in TrainController (TC) - Version 8.xx / Gold -

Microsoft Excel Das offizielle Trainingsbuch Frye

Einführung in die Programmierung mit BlueJ

Struktogramme. (6.) Ermitteln Sie den Wert von a und b aus dem Struktogramm: Struktogramme S. 1/3

Microcomputertechnik

Labor Elektrische Messtechnik

LEGO MINDSTORMS NXT MIT LABVIEW 2009 PROGRAMMIEREN

Klausur Software-Entwicklung März 01

Programmiertechnik 1 FOR-SCHLEIFEN

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Ideen und Konzepte der Informatik

VBA mit Microsoft Excel für Kids

Einstieg in die Informatik mit Java

<? $ZeilenMax = 9; $SpaltenMax = 9; echo "<pre>";

Konzepte der Informatik

Informatik 1. Sommersemester Helmut Seidl. Institut für Informatik TU München

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Präzedenz von Operatoren

Skript Lineare Algebra

Programmieren in C/C++ und MATLAB

ECDL MODUL COMPUTING. Syllabus Version 1.0

C++ Teil Schleifen. Man kann bestimme Anweisungen in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen.

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

Numerische Mathematik

Microsoft Excel 2013 auf einen Blick

Arduino Kurs Timer und Interrupts. Stephan Laage-Witt FES Lörrach

Transkript:

Einführung in LabVIEW von Wolfgang Georgi, Ergun Metin 5., überarbeitete und erweiterte Auflage Einführung in LabVIEW Georgi / Metin schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG Hanser München 2012 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 42386 2 Inhaltsverzeichnis: Einführung in LabVIEW Georgi / Metin

3 Programmstrukturen Lernziele 1. Gedanken der strukturierten Programmierung verstehen. 2. Flache und gestapelte Sequenzen programmieren, mit lokalen Sequenzvariablen und lokalen Variablen arbeiten können. 3. Mit Hilfe der Case-Struktur Alternativen und Mehrfachalternativen programmieren können. 4. For-Schleifen programmieren können, auch unter Zuhilfenahme von Schieberegistern. 5. While-Schleifen programmieren können, u.a. zum Ersetzen der Startoption 'Wiederholt ausführen'. 3.1 Strukturiertes Programmieren Im Laufe der Entwicklung der Programmiertechnik erkannte man, dass sich jedes Programm prinzipiell aus drei Bausteinen oder Strukturblöcken aufbauen lässt. Diese Bausteine heißen Sequenz, Alternative, Schleife. Beschränkt man sich bei der Programmentwicklung konsequent auf diese drei Elemente, spricht man von 'strukturierter Programmierung'. Strukturierte Programme lassen sich mit Hilfe von Struktogrammen leicht grafisch veranschaulichen. Tabelle 3.1 zeigt die Paletten von LabVIEW 2010, welche die Strukturen Sequenz, Alternative und Schleife enthalten. Tabelle 3.2 gibt einen Überblick über diese Strukturen. Tabelle 3.1 Strukturblöcke in LabVIEW, Version 2010 Palette 'Programmierung' 'Strukturen' 'Flache Sequenz' und 'Gestapelte Sequenz' 'Case-Struktur' 'For-Schleife' und 'While-Schleife'

50 3 Programmstrukturen Tabelle 3.2 Grundtypen von Strukturblöcken und ihre Darstellung. Links Programmablaufplan, in der Mitte Struktogramm, rechts C-Notation Sequenz Alternative {} {} Besteht nur aus einer einzelnen C- Anweisung, wird sie stets durch ';' abgeschlossen. Beispiel: k = 0; ja Bedingung erfüllt nein ja Bedingung erfüllt nein if (Bedingung) {} else {} Schleife Bedingung erfüllt nein Solange Bedingung erfüllt S ja S while(bedingung) {S} Die Frage ist natürlich, inwieweit das Konzept der strukturierten Programmierung von konventionellen Programmiersprachen auf LabVIEW übertragbar ist bzw. welche Modifikationen erforderlich werden. Im Prinzip besteht jedenfalls die Möglichkeit der Übertragung.

3.2 Sequenz 51 3.2 Sequenz Nach Abschnitt 1.6.2 wird ein Knoten, d.h. eine Funktion wie z.b. das Addieren, genau dann ausgeführt, wenn alle seine Eingabe-Terminals mit Daten versorgt sind. Danach versorgt dieser Knoten alle seine Ausgabe-Terminals mit Daten. Funktionen, die voneinander bezüglich der Versorgung mit Daten unabhängig sind, werden in LabVIEW parallel ausgeführt. Ein sequenzieller Ablauf ist in LabVIEW-Programmen also keineswegs selbstverständlich. Die Funktionen, die zuerst alle notwendigen Daten über die Verbindungsleitungen erhalten, werden als Erste ausgeführt. Läuft eine Leitung parallel zu verschiedenen Funktionen, ist nicht vorhersagbar, welche Funktion zuerst abläuft. In vielen Fällen ist das auch gleichgültig. Manchmal ist aber eine gewisse Reihenfolge unabdingbar. Dann ist die Sequenzstruktur nützlich. Ein einfaches Beispiel für den Gebrauch der Sequenz ist die Aufgabe, den Zeitbedarf für eine gewisse Zahl von Operationen zu bestimmen. Wir wollen z.b. wissen, wie lange LabVIEW auf einem gegebenen PC braucht, um die Reihe 1 1 1 1 s 5 = 1+ + + + 2 3 4 5 zu berechnen und das Ergebnis anzuzeigen. Ein erster einfacher Ansatz zur Summenbildung besteht in der Entwicklung eines Programms gemäß Bild 3.1. Bild 3.1 Erster Schritt zur Programmentwicklung für die Messung des Zeitbedarfs bei der Berechnung einer Reihe aus fünf Summanden Die Konstante 1,00 erhält man aus 'Funktionen' 'Programmierung' 'Numerisch' als 'Numerische DBL-Konstante' links im unteren Teil der Palette. In unserem Beispiel wurde anschließend im Kontextmenü dieser Konstante über 'Anzeigeformat ' auf 'Fließkomma' und 2 Kommastellen umgestellt sowie der Haken vor 'Abschließende Nullen ausblenden' entfernt. Die übrigen Konstanten wurden aus der 1,00 durch Kopieren und Wertänderung erstellt. Das erspart die wiederholte Anpassung des Anzeigeformats. Die 5 Summanden werden mit der Funktion für Mehrfacharithmetik (unter 'Funktionen' 'Numerisch') addiert, die hier auf fünf Eingänge erweitert wurde. Anschließend folgen ein Rechtsmausklick auf den Ausgang dieses Operators und die Auswahl von 'Erstellen' 'Anzeigeelement'. Die Beschriftung (Label) des so gebildeten Elements wurde in 'Summe' umbenannt, das Anzeigeformat auf 3 Stellen nach dem Komma erweitert. Für die Zeitberechnung nutzt man eine Funktion, welche die Millisekunden zählt, die seit dem Einschalten des Rechners vergangen sind. Man findet sie unter 'Funktionen' 'Programmierung' 'Timing' links oben. Bezeichnung: 'Timerwert (ms)'. Die Programmierung der Zeitmessung nach dem Muster von Bild 3.2 schlägt fehl! Wegen der Parallelverarbeitung in LabVIEW könnte z.b. zuerst die Endzeit ermittelt werden, dann die Anfangszeit und erst danach die Summe. Auch eine andere Abfolge wäre möglich. Sie hängt von der

52 3 Programmstrukturen Reihenfolge der Programmierschritte ab, die das fertige LabVIEW-Programm bilden, und ist dem Anwender in der Regel nicht bekannt. Bild 3.2 Falsche Behandlung der Aufgabe, die Zeit zur Berechnung und Anzeige einer Summe zu ermitteln Das Programm in Bild 3.2 ist zwar lauffähig, zeigt aber dieselben Werte für Anfangszeit und Endzeit, wie man Bild 3.3 entnimmt. Bild 3.3 Anfangszeit und Endzeit sind infolge fehlerhafter Programmierung identisch Den richtigen Ansatz zeigt das Diagramm in Bild 3.4. Der dreigeteilte Rahmen ist eine Sequenz, die unter 'Funktionen' 'Programmierung' 'Strukturen' als 'Flache Sequenzstruktur' steht. Sie hat zunächst nur einen einzelnen Rahmen und wird in diesem Fall mit Hilfe des Kontextmenüs und 'Rahmen danach einfügen' auf drei Rahmen erweitert. Diese Rahmen werden zur Laufzeit des Programms stets von links nach rechts abgearbeitet. Bild 3.4 Richtiger Ansatz zur Zeitmessung: Verwendung einer flachen Sequenz Der Ansatz ist jetzt zwar richtig, doch liest man bedauerlicherweise auf dem Panel nach dem Start des Programms immer noch die gleichen Millisekundenwerte für Anfangszeit und

3.2 Sequenz 53 Endzeit ab. Das ist kein Programmierfehler, sondern liegt einfach an der hohen Leistungsfähigkeit von LabVIEW und modernen PCs. Innerhalb einer Millisekunde kann die Reihenberechnung nebst der wesentlich zeitintensiveren Anzeige mehrfach durchgeführt werden. Deshalb erweitern wir das Programm im Vorgriff auf Abschnitt 3.4 um eine For-Schleife, die n-mal durchlaufen wird, siehe Bild 3.5. Bild 3.5 Korrektes Programm zur Zeitmessung Folgende Änderungen wurden vorgenommen: Um die Summenberechnung wurde eine For-Schleife gelegt und an den Anschluss links oben mit der Inschrift 'N' ein Bedienelement 'n' per Kontextmenü (mit 'Bedienelement erstellen') angeschlossen. Man findet die For-Schleife unter 'Funktionen' 'Programmierung' 'Strukturen'. Anfangszeit und Endzeit werden nicht mehr angezeigt. Dazu links in der Sequenz einen Rechtsmausklick auf das Terminal 'Anfangszeit' ausführen und im Kontextmenü 'Anzeigeelement ausblenden' wählen. Entsprechend im Rahmen 2 mit 'Endzeit' verfahren. Natürlich hätte man in diesem Beispiel auch die entsprechenden Anzeigeelemente löschen können. Die interessierende Rechenzeit wird als Differenz von Endzeit minus Anfangszeit gebildet. Man kann diese Zeitmessungsaufgabe auch mit Hilfe der platzsparenden gestapelten Sequenz lösen (LabVIEW-Gurus rümpfen hier allerdings die Nase wegen der 'Verdeckung von Code', siehe Abschnitt 17.1). Das VI dazu ist in Bild 3.6 bis Bild 3.8 dargestellt. Dabei sind folgende weitere Änderungen nötig: Die flache Sequenz wird durch eine gestapelte Sequenz ersetzt. Dazu am Rahmen der flachen Sequenz mit Rechtsmausklick Kontextmenü aufrufen und anklicken: 'Durch gestapelte Sequenz ersetzen'. Die drei Rahmen der ursprünglichen Sequenz liegen jetzt Platz sparend übereinander und können über die Selektorbeschriftung am oberen Rand, welche die Nummern 0, 1 oder 2 anzeigt, mit Hilfe der kleinen Pfeile rechts und links durchgeblättert werden. Mit Hilfe einer 'Lokalen Sequenzvariablen', die man im Kontextmenü der gestapelten Sequenz findet ('Lokale Sequenzvariable hinzufügen'), wird die Anfangszeit im Rahmen 0 in den Rahmen 2 weitergeleitet (siehe dazu Bild 3.6 und Bild 3.8).