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?
' 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
Hallo
das ist ungefähr das prinzip.
LabVIEW Version 8.2
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
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
das heißt theoretisch müsste es so funktionieren ??
werde versuchen die sub vis zu einer zusammen zu fassen (hab das etwas kompliziert programmiert..
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!
Hab mal ein kleines Beispiel erstellt, vieleicht hilft das zu verdeutlichen, was ich meine
[
attachment=15616]
Hab grad gesehn du hast 8.2 ...
[
attachment=15617]

' 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?