LabView: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „Test“)
 
Keine Bearbeitungszusammenfassung
 
(6 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Test
[[Kategorie:2013_WS_MTR7_Praktikum_GPE]]
[[Kategorie:LabView]]
[[Kategorie:National_Instruments]]
 
'''Autor:''' [http://193.175.248.171/wiki/index.php/Benutzer:Felix_Kortmann Felix Kortmann] und [http://193.175.248.171/wiki/index.php/Benutzer:Dominik_Rebein Dominik Rebein]
 
__TOC__
 
 
==== LabView: Einleitung====
 
Das Programm LabView des Herstellers National Instruments ermöglicht die Programmierung von Simulationsmodellen und/oder Eingabe/Ausgabe- Programmen mittels einer graphischen Oberfläche. Im englischen Sprachgebrauch wird dabei häufig der Begriff I/O (Input/Output) verwendet. 
 
Dabei ist die Handhabung ähnlich den Produkten Matlab Simulink oder LEGO Mindstorms BricX.
 
Grundbestandteile sind dabei unterschiedliche Funktionsbausteine, welche durch farbige Linien in der graphischen Programmieroberfläche miteinander logisch verknüpft werden können.
 
Der Vorteil der graphischen Programmierung ist, dass die Erkennung der Zusammenhänge von Variablen bzw. Werten durch Verfolgen der Verbindungslinien visuell sehr leicht möglich ist. So kann u.U. schneller ein Verständnis für die Grundaufgaben des Programmes erzielt werden, als wenn nur abstrakter Funktionscode betrachtet wird.
 
Nachteil der graphischen Programmierung ist, dass bei einem stark verschachtelten Aufbau die Übersichtlichkeit des Programmes leidet. In diesen Fällen kann u.U. die selbe Aufgabe mit einer schriftbasierten Programmiersprache (bspw. C) übersichtlicher gelöst werden.
 
In der Folge soll der Einsatz der Software in Verbindung mit einem Eingabe/Ausgabe-Controller anhand einer Ansteuerung eines Schrittmotors erläutert werden.
 
==== Grundlegendes: VI und Blockdiagramm====
 
In ein erstelltes leeres Projekt kann nun ein "Visual Interface", kurz VI genannt, eingefügt werden. Es handelt sich dabei um eine graphische Benutzeroberfläche für das zugehörige Programm. Auf dieser Oberfläche lassen sich Bedienelemente oder Eingabefelder anordnen, um durch diese Einfluss auf das Programm zu nehmen. Außerdem lassen sich Zustände und Werte des Programmes durch Anzeigeelemente darstellen, um den Fortschritt des Programmes während des Laufes verfolgen zu können. Dies erleichtert oftmals die Fehlerbehebung. Um ein VI hinzuzufügen, muss auf das weiße-Blatt-Symbol oben links in der Projekt-Explorer Ansicht geklickt werden:
 
[[Datei:neues VI.jpg]]
 
Abbildung 5:''Erstellung eines leeren VI''
 
Es erscheint daraufhin ein leeres VI. Dieses stellt ein graphic user interface für die Interaktion mit dem späteren Programm dar. Das eigentliche Programm wird in einem "Blockdiagramm" genannten Fenster erzeugt und editiert. Das Blockdiagramm wird folgendermaßen geöffnet:
 
"Fenster" => "Blockdiagramm"
 
VI und Blockdiagramm stehen in direkter Beziehung. Es können Eingaben im VI gemacht werden, die das Blockdiagramm beeinflussen und es können Ausgaben des Blockdiagramms auf dem VI dargestellt werden.
 
Besonders zu beachten ist, dass es sich in diesem Fall um ein Programm handelt, welches auch trotz Installation der Hardware, stets nur auf dem PC abläuft. Dadurch können sich Schwierigkeiten bei der Übertragung ergeben. Dies gilt besonders bei verhältnismäßig "schnellen" Signalen (d.h. Signale mit hohen Frequenzen). In diesem Fall soll die Ansteuerung eines Schrittmotors mit Signalen im Mikrosekunden-Bereich erfolgen. Daher wird die Nutzung des sogenannten Host-Programmes, d.h. des Programmes welches auf dem PC läuft, nicht zum Erfolg bei der Ansteuerung führen. LabView bietet durch den sogenannten RealTime-Modus eine Funktionalität um diese Problematik zu Umgehen.
 
Das folgende Kapitel erläutert zunächst, wie die eigentliche Programmierung im Blockdiagramm umgesetzt wird.
 
==== Erste Schritte: Programmieren im Blockdiagramm====
 
In das leere Blockdiagramm können nun Schleifen, Variablen und Funktionsbausteine per drag&drop aus dem "Funktionsmenü" eingefügt und miteinander verknüpft werden.
Die Verbindungen zwischen Bausteinen werden grafisch durch Linien gebildet, die mit der Computermaus gezogen werden:
 
[[Datei:Blockdiagramm.jpg]]
 
Abbildung 6: ''Beispieldarstellung im Blockdiagramm''
 
Die Funktionspalette enthält eine Vielzahl an Elementen, die unterschiedlichste Möglichkeiten von Berechnungen, Umformungen, Vergleichen etc. bieten.
Besonders beachtet werden muss, dass nicht jeder Baustein mit jedem verknüpft werden kann, da teilweise die verwendeten Datentypen nicht kompatibel sind.
Am sinnvollsten ist es, wenn man einen neuen Baustein einsetzen möchte, diesen zunächst anzuklicken und unter "Hilfe" die Beschreibung zu studieren. Dort sind alle Eingangs-und Ausgangsgrößen, die Funktion und die benötigten Datentypen des Bausteins beschrieben.
 
Die unterschiedlichen Datentypen, die in einem Blockdiagramm zum Einsatz kommen, werden durch unterschiedliche Farben der Verbindungslinien dargestellt. Die wichtigsten sind:
 
- blau = integer
- orange = double
- grün = bool
 
Teilweise können Datentypen auch durch Bausteine entsprechend transformiert werden, um sie einsetzen zu können.
 
Im Falle von Programm-Schleifen zeigt sich der Vorteil der graphischen Programmierung: Eine Schleife wird durch einen Rahmen dargestellt, in den entsprechende Operationen eingefügt werden können. Der Inhalt des Rahmens entspricht dann dem Teil des Programmes, welches entsprechend der Laufzeit der Schleife wiederholt wird. Als Abbruchbedingung für die Schleife kann beispielsweise ein Bedienelement auf dem VI dienen oder es kann eine Laufzeit der Schleife analog zu anderen Programmiersprachen vorgegeben werden.
 
Eine Eingabemöglichkeit im VI, die dann auf das Programm im Blockdiagramm Einfluss nimmt, lässt sich folgendermaßen umsetzen: Man fügt zunächst ein Bedienelement im Blockdiagramm ein. Dieses erscheint dann gleichzeitig auch im VI und kann dort beliebig platziert werden.
 
====Programmausführung auf PC oder CRio====
 
Es gibt in LabVIEW zwei Optionen um das Programm laufen zu lassen, die erste Option ist in der Abbildung 15 dargestellt. Dabei wird das Programm auf dem PC ausgeführt und es wird die Verbindung von PC zum CRio benötigt. Die zweite Option besteht darin, dass Programm auf dem CRio autonom laufen zu lassen. Dies ist in Abbildung 16 aufgeführt und sehr leicht per Drag and Drop realisierbar.
Der Vorteil besteht darin, dass jegliche Programme ohne weitere PC-Unterstützung laufen können. Der PC wird dann lediglich zur Programmierung verwendet.
 
[[Datei:Programm auf PC.JPG|700px]]
 
Abbildung 15:''Programm auf dem PC''
 
[[Datei:Programm auf Crio.JPG|700px]]
 
Abbildung 16:''Programm auf dem CRIO''
 
====Einbindung der RS232 Schnittstelle zur Datenübertragung (WICHTIG für weitere Praktika in diesem Bereich!)====
 
Bisher wurde in diesem Artikel der Umgang mit LabVIEW beschrieben und die Programmierung eines funktionsfähigen Programmes zur Steuerung einer Achse erläutert. Ein weiterer wichtiger Bereich zur Realisierung einer autonomen Achsenbewegung ist allerdings die autonome Übergabe von Parametern zur Steuerung der Achse. Dabei ist es von Bedeutung, eine Real-Time Anwendung zu gewährleisten. Hierzu wird in dem Artikel [http://193.175.248.171/wiki/index.php/LabVIEW_RS232_Schnittstelle LabVIEW RS232 Schnittstelle] eine Möglichkeit aufgezeigt, Daten über die RS232 Schnittstelle zu erhalten und im Blockdiagramm weiterführend zu verwenden.

Aktuelle Version vom 5. Oktober 2020, 09:40 Uhr


Autor: Felix Kortmann und Dominik Rebein


LabView: Einleitung

Das Programm LabView des Herstellers National Instruments ermöglicht die Programmierung von Simulationsmodellen und/oder Eingabe/Ausgabe- Programmen mittels einer graphischen Oberfläche. Im englischen Sprachgebrauch wird dabei häufig der Begriff I/O (Input/Output) verwendet.

Dabei ist die Handhabung ähnlich den Produkten Matlab Simulink oder LEGO Mindstorms BricX.

Grundbestandteile sind dabei unterschiedliche Funktionsbausteine, welche durch farbige Linien in der graphischen Programmieroberfläche miteinander logisch verknüpft werden können.

Der Vorteil der graphischen Programmierung ist, dass die Erkennung der Zusammenhänge von Variablen bzw. Werten durch Verfolgen der Verbindungslinien visuell sehr leicht möglich ist. So kann u.U. schneller ein Verständnis für die Grundaufgaben des Programmes erzielt werden, als wenn nur abstrakter Funktionscode betrachtet wird.

Nachteil der graphischen Programmierung ist, dass bei einem stark verschachtelten Aufbau die Übersichtlichkeit des Programmes leidet. In diesen Fällen kann u.U. die selbe Aufgabe mit einer schriftbasierten Programmiersprache (bspw. C) übersichtlicher gelöst werden.

In der Folge soll der Einsatz der Software in Verbindung mit einem Eingabe/Ausgabe-Controller anhand einer Ansteuerung eines Schrittmotors erläutert werden.

Grundlegendes: VI und Blockdiagramm

In ein erstelltes leeres Projekt kann nun ein "Visual Interface", kurz VI genannt, eingefügt werden. Es handelt sich dabei um eine graphische Benutzeroberfläche für das zugehörige Programm. Auf dieser Oberfläche lassen sich Bedienelemente oder Eingabefelder anordnen, um durch diese Einfluss auf das Programm zu nehmen. Außerdem lassen sich Zustände und Werte des Programmes durch Anzeigeelemente darstellen, um den Fortschritt des Programmes während des Laufes verfolgen zu können. Dies erleichtert oftmals die Fehlerbehebung. Um ein VI hinzuzufügen, muss auf das weiße-Blatt-Symbol oben links in der Projekt-Explorer Ansicht geklickt werden:

Abbildung 5:Erstellung eines leeren VI

Es erscheint daraufhin ein leeres VI. Dieses stellt ein graphic user interface für die Interaktion mit dem späteren Programm dar. Das eigentliche Programm wird in einem "Blockdiagramm" genannten Fenster erzeugt und editiert. Das Blockdiagramm wird folgendermaßen geöffnet:

"Fenster" => "Blockdiagramm"

VI und Blockdiagramm stehen in direkter Beziehung. Es können Eingaben im VI gemacht werden, die das Blockdiagramm beeinflussen und es können Ausgaben des Blockdiagramms auf dem VI dargestellt werden.

Besonders zu beachten ist, dass es sich in diesem Fall um ein Programm handelt, welches auch trotz Installation der Hardware, stets nur auf dem PC abläuft. Dadurch können sich Schwierigkeiten bei der Übertragung ergeben. Dies gilt besonders bei verhältnismäßig "schnellen" Signalen (d.h. Signale mit hohen Frequenzen). In diesem Fall soll die Ansteuerung eines Schrittmotors mit Signalen im Mikrosekunden-Bereich erfolgen. Daher wird die Nutzung des sogenannten Host-Programmes, d.h. des Programmes welches auf dem PC läuft, nicht zum Erfolg bei der Ansteuerung führen. LabView bietet durch den sogenannten RealTime-Modus eine Funktionalität um diese Problematik zu Umgehen.

Das folgende Kapitel erläutert zunächst, wie die eigentliche Programmierung im Blockdiagramm umgesetzt wird.

Erste Schritte: Programmieren im Blockdiagramm

In das leere Blockdiagramm können nun Schleifen, Variablen und Funktionsbausteine per drag&drop aus dem "Funktionsmenü" eingefügt und miteinander verknüpft werden. Die Verbindungen zwischen Bausteinen werden grafisch durch Linien gebildet, die mit der Computermaus gezogen werden:

Abbildung 6: Beispieldarstellung im Blockdiagramm

Die Funktionspalette enthält eine Vielzahl an Elementen, die unterschiedlichste Möglichkeiten von Berechnungen, Umformungen, Vergleichen etc. bieten. Besonders beachtet werden muss, dass nicht jeder Baustein mit jedem verknüpft werden kann, da teilweise die verwendeten Datentypen nicht kompatibel sind. Am sinnvollsten ist es, wenn man einen neuen Baustein einsetzen möchte, diesen zunächst anzuklicken und unter "Hilfe" die Beschreibung zu studieren. Dort sind alle Eingangs-und Ausgangsgrößen, die Funktion und die benötigten Datentypen des Bausteins beschrieben.

Die unterschiedlichen Datentypen, die in einem Blockdiagramm zum Einsatz kommen, werden durch unterschiedliche Farben der Verbindungslinien dargestellt. Die wichtigsten sind:

- blau = integer - orange = double - grün = bool

Teilweise können Datentypen auch durch Bausteine entsprechend transformiert werden, um sie einsetzen zu können.

Im Falle von Programm-Schleifen zeigt sich der Vorteil der graphischen Programmierung: Eine Schleife wird durch einen Rahmen dargestellt, in den entsprechende Operationen eingefügt werden können. Der Inhalt des Rahmens entspricht dann dem Teil des Programmes, welches entsprechend der Laufzeit der Schleife wiederholt wird. Als Abbruchbedingung für die Schleife kann beispielsweise ein Bedienelement auf dem VI dienen oder es kann eine Laufzeit der Schleife analog zu anderen Programmiersprachen vorgegeben werden.

Eine Eingabemöglichkeit im VI, die dann auf das Programm im Blockdiagramm Einfluss nimmt, lässt sich folgendermaßen umsetzen: Man fügt zunächst ein Bedienelement im Blockdiagramm ein. Dieses erscheint dann gleichzeitig auch im VI und kann dort beliebig platziert werden.

Programmausführung auf PC oder CRio

Es gibt in LabVIEW zwei Optionen um das Programm laufen zu lassen, die erste Option ist in der Abbildung 15 dargestellt. Dabei wird das Programm auf dem PC ausgeführt und es wird die Verbindung von PC zum CRio benötigt. Die zweite Option besteht darin, dass Programm auf dem CRio autonom laufen zu lassen. Dies ist in Abbildung 16 aufgeführt und sehr leicht per Drag and Drop realisierbar. Der Vorteil besteht darin, dass jegliche Programme ohne weitere PC-Unterstützung laufen können. Der PC wird dann lediglich zur Programmierung verwendet.

Abbildung 15:Programm auf dem PC

Abbildung 16:Programm auf dem CRIO

Einbindung der RS232 Schnittstelle zur Datenübertragung (WICHTIG für weitere Praktika in diesem Bereich!)

Bisher wurde in diesem Artikel der Umgang mit LabVIEW beschrieben und die Programmierung eines funktionsfähigen Programmes zur Steuerung einer Achse erläutert. Ein weiterer wichtiger Bereich zur Realisierung einer autonomen Achsenbewegung ist allerdings die autonome Übergabe von Parametern zur Steuerung der Achse. Dabei ist es von Bedeutung, eine Real-Time Anwendung zu gewährleisten. Hierzu wird in dem Artikel LabVIEW RS232 Schnittstelle eine Möglichkeit aufgezeigt, Daten über die RS232 Schnittstelle zu erhalten und im Blockdiagramm weiterführend zu verwenden.