LabVIEWForum.de
Signal LED als globale Variable - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Signal LED als globale Variable (/Thread-Signal-LED-als-globale-Variable)

Seiten: 1 2 3


Signal LED als globale Variable - Hugin - 19.07.2012 15:39

Hallo Leute,

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


RE: Signal LED als globale Variable - GerdW - 19.07.2012 15:57

Hallo Hugin,

könntest du vielleicht mal VIs statt (beschnittener) Bilder anhängen? Oder wenigstens erläutern, um welches subVI es sich handelt?

Glas1
- 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 Big Grin

Unter der Annahme, dein subVI hat ein Icon names "Proband Monitor1", gilt Vermutung 2...


RE: Signal LED als globale Variable - jg - 19.07.2012 16:01

Think DATAFLOW!

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


RE: Signal LED als globale Variable - GerdW - 19.07.2012 16:13

Hallo Jens,

wie man's sieht. Hauptsächlich ist die Missachtung des DATAFLOW Schuld am fehlerhaften Verhalten Smile


RE: Signal LED als globale Variable - Hugin - 19.07.2012 16:14

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

SG
Hugin


RE: Signal LED als globale Variable - GerdW - 19.07.2012 16:20

Hallo Hugin,

Zitat:Datenfluss missachtet: Leuchtet meine LED nicht weil das SubVI schon abgearbeitet wurde?
Korrekt. So haben Jens und ich jedenfalls deine Bilder gedeutet...


RE: Signal LED als globale Variable - jg - 19.07.2012 16:31

Ä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


RE: Signal LED als globale Variable - Hugin - 20.07.2012 09:15

Hallo Jens, Hallo GerdW,

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.

SG
Hugin


RE: Signal LED als globale Variable - Hugin - 23.07.2012 09:20

Hallo Leute,

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


RE: Signal LED als globale Variable - GerdW - 23.07.2012 09:27

Hallo Hugin,

Zitat:Ich denke das Optimum ist es noch nicht.
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... Big Grin

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!