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!
nach einigem Suchen und Probieren, schreib ich euch nun noch weil ich irgendwie nicht weiterkomme.
Im Anhang findet ihr ein Bild meines Test_VI.
Mein Problem: Mein Programm empfängt ein Triggersignal. Nach einer gewissen Zeit soll auf einem anderen Bildschirm eine LED aufleuchten. Das Ganze hab ich per SubVI und globaler Variablen realisiert aber irgendwie funktioniert es nicht.
Wenn ich die GV mit auf mache sehe ich wie sie leuchtet aber im SubVI nicht. Warum? Was habe ich nicht bedacht?
Vielen Dank und
Schöne Grüße
Hugin
19.07.2012, 15:57 (Dieser Beitrag wurde zuletzt bearbeitet: 19.07.2012 15:59 von GerdW.)
könntest du vielleicht mal VIs statt (beschnittener) Bilder anhängen? Oder wenigstens erläutern, um welches subVI es sich handelt?
- Dein subVI enthält keine Schleife und läuft deshalb nur einmal kurz durch...
- Du hast den Dataflow missachtet...
- Deine Drähte sind zu krumm, deshalb kommen die Werte nicht durch
Unter der Annahme, dein subVI hat ein Icon names "Proband Monitor1", gilt Vermutung 2...
Ich nehme an, dein zweiter Screenshot ist das VI "Proband Monitor 1".
Das wird jeweils einmal nach Beendigung des "To Eng" ausgeführt und fertig.
Parallel startest du im TRUE Case hintereinander zwei (unnötige) Warteschleifen (Die Schleifen sind unnötig, nicht die Waits...).
Da ist dein Proband-VI aber schon längst abgearbeitet...
Und noch der Wink mit dem Zaunpfahl, wieso deine Schleifen überflüssig sind: Der "Millisekunder Counter" am Wait-VI gibt dir die "Millisekunden seit Systemstart" zurück. In der Regel wird also dein Vergleich IMMER True sein.
Gruß, Jens
EDIT: @GerdW: Gilt nicht auch Vermutung 1?!
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!
@GerdW
Hatten in meinem genervtsein völlig missachtet, dass mein DA-Wandler auch noch einige SubVI`s hat. Ja, es geht um das SubVI "ProbandMonitor1".
Noch kurze Verständnisfrage: Ich brauche doch keine Schleife in meinem SubVI wenn es in meiner Whileschleife vom MainVI liegt? Es ist doch jedesmal aktiv wenn ein neuer Wert "hingesendet" wird?
Datenfluss missachtet:
Leuchtet meine LED nicht weil das SubVI schon abgearbeitet wurde?
Ändere einmal die Einstellungen deines Proband-VIs auf "Show Front panel when called" + "Close afterwards..." und nimm den Haken bei "Show Front Panel when loaded" raus, vielleicht verstehst du dann, was wir meinen.
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!
vielen Dank für eure Hinweise. Ich hab die Warteschleifen rausgenommen. Und grübel über das Datenflussproblem (ich verstehe was ihr meint). Leider habe ich längere Zeit nicht mehr mit LV gearbeitet, so muss ich mich erst wieder neu reinfinden.
Nun auf meinem ProbandMonnitor 1 sollen ja die ganze Zeit weiterhin die Soll/Ist-Werte angezeigt werden und nur nach einem externen Trigger, nach einer bestimmte Zeit die LED kurz aufleuchten, d.h. ich müsste doch beide Prozesse in einer Schleife laufen lassen und über eine CaseStruktur die LED anzeigen? Aber da bin ich wieder genau bei dem selben Datenflussfehler. Komme ich hier nur mit Melder od. Queues weiter und lege beide Prozesse in zwei Schleifen innerhalb einer Whileschleife?
In meinem eigentlichen Programm benutze ich einen Zustandsautomaten mit Queues und Ereignisstruktur. Müsste ich die LED-Anzeige in den Ereignisprozess mit einbringen?
Bewege ich mich in eine falsche Richtung?
Boar, das ist bestimmt ganz einfach, nur ich steh gerade mit beiden Füssen auf`n Schlauch.
neue Woche neue Erkenntnisse!?
Heute habe ich nochmal an meinem bestehenden Datenflussproblem herumgedoktert. Und bin zu folgender Lösung siehe Anhang gekommen.
Ich denke das Optimum ist es noch nicht. Und bin für konstruktive Äußerungen dankbar.
Gibt es eine Möglichkeit, dass ich bei der Stopp-Taste trotz mehrer lokaler Variablen das Latch-Schaltverhalten einstellen kann?
SG
Hugin
23.07.2012, 09:27 (Dieser Beitrag wurde zuletzt bearbeitet: 23.07.2012 09:29 von GerdW.)
Als erstes die gestapelte Sequenz durch eine flache ersetzen...
Im subVI: Man muss nicht jedesmal die Farben erneut setzen, wenn man dies schon während der Programmierung per Pinsel-Tool erledigt...
Zitat:Und bin für konstruktive Äußerungen dankbar.
In Zukunft möglichst ohne Sequenzen auskommen...
Zitat:Gibt es eine Möglichkeit, dass ich bei der Stopp-Taste trotz mehrer lokaler Variablen das Latch-Schaltverhalten einstellen kann?
Nein. Entweder lokale Variablen oder Latch-Verhalten!