INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Daten mit Tunnel übergeben



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

11.03.2008, 16:43
Beitrag #1

Techniker Offline
LVF-Grünschnabel
*


Beiträge: 32
Registriert seit: Feb 2008

8.00
2007
kA

41366
Deutschland
Daten mit Tunnel übergeben
Ich habe ein Problem ein Signal aus einer Sequenz Struktur nach außen zu führen.
Das Signal ist eine Enum-Konstante und befindet sich in einer Sequenz Struktur. Diese Sequenz Struktur ist in einer Eventstruktur. Und außerhalb dieser Eventstruktur ist ein vorgegebenes VI, welches den Wert der Enum-Konstante benötigt. Das Programm ist so aufgebaut, dass in der Sequenz Struktur die enum-Daten nacheinander aufgerufen werden und das VI den jeweiligen Schritt ausführen lassen. Ist es möglich in jeder Sequenz einer Sequenz Struktur einen Wert nach außen zu geben. Wenn dem nicht so sein sollte, würde ich mich freuen, wenn mir jemand eine alternative sagen könnte, oder einen link zu einem Beispielprogramm.

Im Prinzip habe ich ein VI, welches verschiedene Eingangssignale bekommt. Vergleichbar mit dem fahren eines PKW.
Programmteil 1 (mit Schaltgetriebe)
1. Schritt Anschnallen
2. Schritt Einschalten
3. Schritt Gas geben
4. Schritt Kupplung Treten
5. Schritt Schalten

Programmteil 2 (mit Automatikgetriebe)
1. Schritt Anschnallen
2. Schritt Einschalten
3. Schritt Gas geben

Die verschiedenen Programmteile habe ich bisher mittels Eventstruktur und Drücken von Funktionstasten realisiert. Innerhalb eines Events wollte ich eine Sequenz Struktur einbinden. Dort hat mein Prpblem begonnen.
Es ist aber wahrscheinlich nicht im Sinne des Erfinders, wenn sich in jeder Sequenz das VI befindet oder?
Ich poste mal mein Beispiel und hoffe auf eine Hilfe.

   


Techniker
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
12.03.2008, 08:38
Beitrag #2

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Daten mit Tunnel übergeben
Wie so oft:

Das schreit nach einer "State Machine"...dazu gibts Zillionen Beispiele hier im Forum!

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.03.2008, 10:19
Beitrag #3

Techniker Offline
LVF-Grünschnabel
*


Beiträge: 32
Registriert seit: Feb 2008

8.00
2007
kA

41366
Deutschland
Daten mit Tunnel übergeben
' schrieb:Wie so oft:

Das schreit nach einer "State Machine"...dazu gibts Zillionen Beispiele hier im Forum!


Ich habe mir jetzt ein Beispiel einer einfachen State Machine angeschaut und wollte diese an meine Anwendung anpassen. Jetzt bin ich aber auf eine weitere Frage gestoßen. Ich müsste ja in dem Case Rechnen 1 viele weitere Schritte nacheinander ausführen, was ich in meinem Ursprungs-Programm mit einer Sequenz versucht habe. Nur wie realisiere ich diesen Ablauf sinnvoll ohne eine Sequenz einzubinden. Soll ich mit dem Schieberegister Arbeiten oder mit Eventstrukturen innerhalb der Case Struktur?? Ich würde mich freuen, wenn mir jemand einen Tip geben könnte ich bin hier kurz vorm verzweifeln. Leider konnte ich auch keine andere State Machine inlv80finden. Ich würde mich freuen, wenn einer von euch LV Profis sich mal 2 Minuten nehmen könnte um mir einen etwas größeren Denkanstoß zu geben.

Das Beispiel von dem ich geschrieben habe befindet sich im Anhang.


Techniker


Angehängte Datei(en)
Sonstige .vi  StateMachine_einfach_1_.vi (Größe: 19,96 KB / Downloads: 289)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.03.2008, 10:32
Beitrag #4

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Daten mit Tunnel übergeben
Mach doch einfach in Deiner Haupt-State-Machine mehr Cases, die Du hintereinander ansprichst. Sonst brauchst Du eine State-Machine in der State-Machine. Big Grin

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.03.2008, 11:24
Beitrag #5

Techniker Offline
LVF-Grünschnabel
*


Beiträge: 32
Registriert seit: Feb 2008

8.00
2007
kA

41366
Deutschland
Daten mit Tunnel übergeben
' schrieb:Mach doch einfach in Deiner Haupt-State-Machine mehr Cases, die Du hintereinander ansprichst. Sonst brauchst Du eine State-Machine in der State-Machine. Big Grin

Gruß Markus

Also füge ich am besten in meine Case-Struktur in der sich auch die Cases für "Rechnen 1", "Rechnen 2" und "Rechnen 3" befinden zusätzliche Cases ein für meinen weiteren Ablauf. Wie springe ich denn am besten zwischen den einzelnen Cases. Mit Hilfe von Schieberegistern oder gibt es dabei eine bessere Möglichkeit die für Anfänger u.U. auch einfacher ist.

Techniker
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.03.2008, 11:44
Beitrag #6

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Daten mit Tunnel übergeben
Mach' mal Rechnen3 und schau' was im String steht....

Ich hab' Dir das Bsp. mit einem "Type_Def" gemacht, dann musst Du das Enum nur einmal ändern und es wird global übernommen.


Sonstige .zip  State_Machine.zip (Größe: 21,34 KB / Downloads: 467)

Lv80_img

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
12.03.2008, 14:31
Beitrag #7

Techniker Offline
LVF-Grünschnabel
*


Beiträge: 32
Registriert seit: Feb 2008

8.00
2007
kA

41366
Deutschland
Daten mit Tunnel übergeben
' schrieb:Mach' mal Rechnen3 und schau' was im String steht....

Ich hab' Dir das Bsp. mit einem "Type_Def" gemacht, dann musst Du das Enum nur einmal ändern und es wird global übernommen.

[attachment=38726:State_Machine.zip]
Lv80_img

Gruß Markus

Immer wieder eine super Hilfe hier das Forum. Vielen dank.
Was ist denn der Vorteil von diesem "Type_Def". Ich habe festgestellt, dass man die Texte nur in dieser Datei ändern kann. Das man eine zusätzliche Datei bei seinem Projekt benötigt finde ich jedoch unübersichtlich. zumindest für diese Aufgabe.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.03.2008, 15:24
Beitrag #8

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Daten mit Tunnel übergeben
Der Vorteil einer "Typ-Definition" bei einer Enum für eine State-Machine ist die Erweiterbarkeit. Wenn man noch einen weiteren Fall hinzufügen muss, editiert man einfach die "Typ-Definition" der Enum, fügt dort den Case hinzu, und wenn man schön brav das "Auto-Update from Type-Definition" drin gelassen hat, werden alle Enums, die man so im VI drin hat, automatisch aktualisiert. Dann funktionieren auch immer so Sachen wie "Rechter Mausklick -> Create -> Constant" usw...

MfG, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.03.2008, 15:43
Beitrag #9

Techniker Offline
LVF-Grünschnabel
*


Beiträge: 32
Registriert seit: Feb 2008

8.00
2007
kA

41366
Deutschland
Daten mit Tunnel übergeben
' schrieb:Der Vorteil einer "Typ-Definition" bei einer Enum für eine State-Machine ist die Erweiterbarkeit. Wenn man noch einen weiteren Fall hinzufügen muss, editiert man einfach die "Typ-Definition" der Enum, fügt dort den Case hinzu, und wenn man schön brav das "Auto-Update from Type-Definition" drin gelassen hat, werden alle Enums, die man so im VI drin hat, automatisch aktualisiert. Dann funktionieren auch immer so Sachen wie "Rechter Mausklick -> Create -> Constant" usw...

MfG, Jens


Das würde auch erklären warum an meinen Cases jetzt nicht mehr der Klartext steht, sondern nur noch die Zahlen.
Wo kann ich denn erkennen, dass es sich bei der verwendeten Enum um eine handelt, die außerhalb von dem eigentlichen Programm deklariert wird?? Und wie geht man vor, wenn man eine solche Konstante außerhalb verwaltet und dem Case hinzufügt?

Grüße
Techniker
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.03.2008, 16:18 (Dieser Beitrag wurde zuletzt bearbeitet: 12.03.2008 16:20 von Y-P.)
Beitrag #10

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Daten mit Tunnel übergeben
Erzeugen kannst Du die Type-Def folgendermaßen:

1. "File"->"New"->"Other Files"->"Custom Control"
2. Schaltfläche "Control" auf "Type-Def", bzw. "Strict Type-Def" umstellen
3. Enum erstellen und speichern

Einfügen tust Du sie so:
1. Rechtsklick im Block-Diagramm
2. "Select a VI", dann Dein Type-Def auswählen und schon hast Du die Konstante

Ob die Konstante zu einem Type-Def gehört, siehst Du, wenn Du einen Rechtsklick drauf machst.
Da gibt's dann u.a. folgende Auswahlmöglichkeiten "Open Type Def", "Auto Update from Type Def",....

Gruß Markus

EDIT: Ich habe mal den Thementitel erweitert, damit man das Thema schneller wieder findet, wenn man eine State-Machine oder was zu Type-Defs sucht.

' schrieb:Das würde auch erklären warum an meinen Cases jetzt nicht mehr der Klartext steht, sondern nur noch die Zahlen.
Wo kann ich denn erkennen, dass es sich bei der verwendeten Enum um eine handelt, die außerhalb von dem eigentlichen Programm deklariert wird?? Und wie geht man vor, wenn man eine solche Konstante außerhalb verwaltet und dem Case hinzufügt?

Grüße
Techniker

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Buttons und Auto-Indexed Tunnel Minako 6 11.274 13.05.2024 08:52
Letzter Beitrag: Minako
  Per VI Scripting mit Tunnel in While Schleife verbinden Tywin 2 5.533 19.06.2013 07:56
Letzter Beitrag: Tywin
  Daten parallel übergeben Problem 10 9.142 03.07.2012 16:55
Letzter Beitrag: Problem
  Daten zwischen den einzelnen Fällen einer Case-Struktur übergeben labrat 5 9.125 28.11.2011 13:18
Letzter Beitrag: Lucki
  Daten an anderes VI übergeben ohne GV etc... rio170 19 16.355 03.02.2011 15:17
Letzter Beitrag: rio170
  Tunnel Probleme bei Übergabe der Daten zu SchiebeRegister Oleg 4 5.658 25.02.2010 11:16
Letzter Beitrag: Oleg

Gehe zu: