29.11.2008, 21:51
Beitrag #1
|
Kex2006
LVF-Gelegenheitsschreiber
Beiträge: 59
Registriert seit: May 2008
8.2.1
2008
de
65812
Deutschland
|
sub vi durch ring aufrufen
ich habe ein ring in meinem fp dort kann ich 10 fälle auswählen. je nachdem welchen wird ein anderes sub vi aufgerufen.
(warum ring, weil ich nicht nur 10 sondern 200 fälle hab.. und nicht 200 ok button plazieren wollte...)
aufgerufen wird das vi durch den vergleich (ist ring wert = dem gewollten wert)
mein problem jetzt: wie setze ich das ring wieder auf "0" nachdem ein vi aufgerufen wurde?
bisher versucht habe ich: mein programm ist in einer while schleife. in der wihle schleife eine sequenzstructur.
die erste sequenz fragt den ring ab d
in der zweiten steht das hauptprogramm
in der dritten wird das /der ring wieder auf "0" gesetzt.
das klappt aber nicht..man kann den ring während das programm läuft nicht betätigen, weil er sich selbst sofort wieder auf 0 setzt..
kann mir jemand helfen?
|
|
|
30.11.2008, 01:03
Beitrag #2
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
sub vi durch ring aufrufen
' schrieb:ich habe ein ring in meinem fp dort kann ich 10 fälle auswählen. je nachdem welchen wird ein anderes sub vi aufgerufen.
(warum ring, weil ich nicht nur 10 sondern 200 fälle hab.. und nicht 200 ok button plazieren wollte...)
aufgerufen wird das vi durch den vergleich (ist ring wert = dem gewollten wert)
mein problem jetzt: wie setze ich das ring wieder auf "0" nachdem ein vi aufgerufen wurde?
bisher versucht habe ich: mein programm ist in einer while schleife. in der wihle schleife eine sequenzstructur.
die erste sequenz fragt den ring ab d
in der zweiten steht das hauptprogramm
in der dritten wird das /der ring wieder auf "0" gesetzt.
das klappt aber nicht..man kann den ring während das programm läuft nicht betätigen, weil er sich selbst sofort wieder auf 0 setzt..
kann mir jemand helfen?
Wie wäre es mit Screenshot oder VI posten????
Gruß, 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.
|
|
|
30.11.2008, 12:56
Beitrag #3
|
|
|
30.11.2008, 12:59
Beitrag #4
|
Kex2006
LVF-Gelegenheitsschreiber
Beiträge: 59
Registriert seit: May 2008
8.2.1
2008
de
65812
Deutschland
|
sub vi durch ring aufrufen
also das ist jetzt ein kleiner teil.. hier sinds jetz 3 möglichkeiten. im richtigen programm wären es eben 200.
deshalb nicht einfach nur bool variablen
|
|
|
30.11.2008, 13:13
(Dieser Beitrag wurde zuletzt bearbeitet: 30.11.2008 13:18 von Snoop2000.)
Beitrag #5
|
Snoop2000
LVF-Gelegenheitsschreiber
Beiträge: 96
Registriert seit: May 2006
8.5, 8.2, 7.1, 2009
2006
de_en
52064
Deutschland
|
sub vi durch ring aufrufen
Hallo Kex,
hab grad mal kurz drübergeschaut... Ich glaube dein Problem ist, das du so all deine SubVIs auf einmal ausführst, die Bedingund aber erst innerhalb dieser VIs überprüfst.
Damit laufen immer deine SubVIs und das HauptVI kann keine Befehle mehr weitergeben.
Wenn du an deinen Ring einfach eine Case-Struktur anschließt kannst du deine SubVIs in die jeweiligen Cases legen, so wird immer nur das gewünschte SubVI ausgeführ und du brauchst keine zusätzliche überprüfung deiner bedingung mehr. Das spart resourcen und du kann neue Befehle Senden.
MFG,
Snoop
Kleiner Nachtrag:
Wenn du statt einem Ring ein ENum verwendest, kannst du über rechtsklick auf die Case Struktur sagen "Case für jeden Wert hinzufügen". Dann ist in deiner Case gleich alle möglichkeiten abgefangen und die siehst direkt, welchen Case du bearbeitest
Wer Rechtschreibfehler findet darf sie behalten!
|
|
|
30.11.2008, 15:13
Beitrag #6
|
Kex2006
LVF-Gelegenheitsschreiber
Beiträge: 59
Registriert seit: May 2008
8.2.1
2008
de
65812
Deutschland
|
sub vi durch ring aufrufen
das heißt theoretisch müsste es so funktionieren ??
werde versuchen die sub vis zu einer zusammen zu fassen (hab das etwas kompliziert programmiert..
|
|
|
30.11.2008, 15:56
Beitrag #7
|
Snoop2000
LVF-Gelegenheitsschreiber
Beiträge: 96
Registriert seit: May 2006
8.5, 8.2, 7.1, 2009
2006
de_en
52064
Deutschland
|
sub vi durch ring aufrufen
Ne, so meinte ich das nicht.
Du kannst (solltest) für jede deiner möglichkeiten ein eigenes SubVI verwenden! wenn du den Aufruf der SubVIs allerdings über eine Case Struktur vornimmst, findet die Auswahl auf der HauptVI ebene statt!
Wer Rechtschreibfehler findet darf sie behalten!
|
|
|
30.11.2008, 16:16
(Dieser Beitrag wurde zuletzt bearbeitet: 30.11.2008 16:18 von Snoop2000.)
Beitrag #8
|
|
|
30.11.2008, 17:04
Beitrag #9
|
Kex2006
LVF-Gelegenheitsschreiber
Beiträge: 59
Registriert seit: May 2008
8.2.1
2008
de
65812
Deutschland
|
sub vi durch ring aufrufen
' schrieb:Hab mal ein kleines Beispiel erstellt, vieleicht hilft das zu verdeutlichen, was ich meine
[attachment=43179:Haupt_und_Sub.rar]
Hab grad gesehn du hast 8.2 ...
[attachment=43180:Haupt_und_Sub_8.2.rar]
War mir schon klar was du gemeint hast!!!
nur.. ich habe wie gesagt 200 fälle.. und möchte ungern 200 sub vis da einfügen...
meine lösung jetzt ist: ich habe ein sub vi das sowieso jede schleife einmal aufgerufen wird. darin habe ich die case structure in der dann wiederrum (nur wenn der best. fall zutrifft) eine weitere sub vi aufgerufen wird. also im prinzip dein vorschlag.
aber jetzt bleibt immernoch das problem: wie setzte ich das enum oder ing zurück ??? ( da der case fall in der sub vi ist)
kann ich da in der sub vi eine "referenz" plazieren, dass das enum im hauptprogramm zurücksetzt?
|
|
|
| |