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!
(02.07.2019 09:07 )maxil schrieb: So ich hoffe eine letzte Frage jetzt,
ich habe gehofft, dass sich dadurch ein (annäherndes) realtime Verhalten ergibt, leider dauert es doch einige Zeit, bis die LED leuchtet.
Gibt es da irgendwelche Möglichkeiten es zu beschleunigen?
Pack am besten mal dein VI in den Anhang damit man sich das genau ansehen kann. Grundsätzlich kann man Aufbau mit einer Eventstruktur weniger ressourcenfressend aufbauen als mit einer dauernd abfragenden Casestruktur.
(02.07.2019 09:07 )maxil schrieb: So ich hoffe eine letzte Frage jetzt,
ich habe gehofft, dass sich dadurch ein (annäherndes) realtime Verhalten ergibt, leider dauert es doch einige Zeit, bis die LED leuchtet.
Gibt es da irgendwelche Möglichkeiten es zu beschleunigen?
Pack am besten mal dein VI in den Anhang damit man sich das genau ansehen kann. Grundsätzlich kann man Aufbau mit einer Eventstruktur weniger ressourcenfressend aufbauen als mit einer dauernd abfragenden Casestruktur.
Hallo Marco,
das ist der Teil, um den es geht!
Hallo maxil,
ich habe dir mal in den Anhang ein grundsätzliches Bild gepackt wie eine Queue aufgebaut werden sollte. Du hast eine Erzeugerschleife (deine Obere) und eine Verbraucherschleife (deine Untere). Den Stoppbutton darfst du nicht in beide Schleifen packen (wie Jens oben schon beschrieben hat). Es ist auch nicht ratsam bei so vielen Bedienelementen für jeden Vorgang eine Casestruktur zu benutzen. Erstelle dir eine Eventstruktur in die du alle deine Buttons steckst. Die Eventstruktur wartet auf eine Eingabe, die Casestruktur läuft jedes Mal aufs Neue durch.
Ich nehme an, dass du "Leistungsspektrum" in die untere Schleife bekommen möchtest?
die Diagramme werden eigentlich gut dargestellt, das dargestellte VI muss ich noch abändern, habe bisher das Problem, dass die Button extrem verzögert reagieren.
bei den Queues ist mir aber auch gerade aufgefallen, dass wenn ich sie nutze, eine LED ansteuern möchte (zwei sind angeschlossen sowie zwei Button), beide leuchten.
Gibt es da keine Unterscheidung wenn ich mehrere "Element Einfügen" usw. intern verwende?
02.07.2019, 12:54 (Dieser Beitrag wurde zuletzt bearbeitet: 02.07.2019 12:56 von MarcoN.)
die Diagramme werden eigentlich gut dargestellt, das dargestellte VI muss ich noch abändern, habe bisher das Problem, dass die Button extrem verzögert reagieren.
bei den Queues ist mir aber auch gerade aufgefallen, dass wenn ich sie nutze, eine LED ansteuern möchte (zwei sind angeschlossen sowie zwei Button), beide leuchten.
Gibt es da keine Unterscheidung wenn ich mehrere "Element Einfügen" usw. intern verwende?
Hallo maxil,
die Verzögerung der Buttons kann ich mir nur durch die ganzen Casestrukrturen erklären. Um den lieben Gerd mal zu zitieren: "THINK DATAFLOW"
In der unteren Schleife wird vor jedem Case abgefragt ob er du einen Button auf TRUE oder FALSE stehen hast. Desweiteren benutzt du vor den Casestrukturen ein ODER was für mich nicht ganz Sinn ergibt. Ein oder braucht nur ein TRUE um ein TRUE weiterzuleiten. Sprich: Egal welchen Button du drückst, wird immer der TRUE-Case deiner Casestrukturen laufen.
Weiß nicht genau was du mit dem "Element Einfügen" meinst, da ich die englische Version von LV benutze. Wenn du allerdings nicht genau verstehst was in der Schaltung passiert schalte im Blockdiagramm die Highlightfunktion an. (Kleine Glühbirne neben dem "Ausführen"). Dann kannst du dir in Ruhe anschauen was du verdrahtet hast und warum 2 LED leuchten obwohl es nur eine soll.
EDIT: Lad mal die aktuellste Version deines VI´s hoch. Du kannst VI´s auch als Datei hochladen damit sie jeder bearbeiten kann. Bei Bildern ist das sonst bisschen schwierig!
die Diagramme werden eigentlich gut dargestellt, das dargestellte VI muss ich noch abändern, habe bisher das Problem, dass die Button extrem verzögert reagieren.
bei den Queues ist mir aber auch gerade aufgefallen, dass wenn ich sie nutze, eine LED ansteuern möchte (zwei sind angeschlossen sowie zwei Button), beide leuchten.
Gibt es da keine Unterscheidung wenn ich mehrere "Element Einfügen" usw. intern verwende?
Hallo maxil,
die Verzögerung der Buttons kann ich mir nur durch die ganzen Casestrukrturen erklären. Um den lieben Gerd mal zu zitieren: "THINK DATAFLOW"
In der unteren Schleife wird vor jedem Case abgefragt ob er du einen Button auf TRUE oder FALSE stehen hast. Desweiteren benutzt du vor den Casestrukturen ein ODER was für mich nicht ganz Sinn ergibt. Ein oder braucht nur ein TRUE um ein TRUE weiterzuleiten. Sprich: Egal welchen Button du drückst, wird immer der TRUE-Case deiner Casestrukturen laufen.
Weiß nicht genau was du mit dem "Element Einfügen" meinst, da ich die englische Version von LV benutze. Wenn du allerdings nicht genau verstehst was in der Schaltung passiert schalte im Blockdiagramm die Highlightfunktion an. (Kleine Glühbirne neben dem "Ausführen"). Dann kannst du dir in Ruhe anschauen was du verdrahtet hast und warum 2 LED leuchten obwohl es nur eine soll.
EDIT: Lad mal die aktuellste Version deines VI´s hoch. Du kannst VI´s auch als Datei hochladen damit sie jeder bearbeiten kann. Bei Bildern ist das sonst bisschen schwierig!
Hi Marco,
die Verzögerung der Button passiert in der oberen Schleife (dort legen sie zuvor), da die Daten des Messgerätes nur alle paar Sekunden abgerufen werden. Mir wurde damals empfohlen, das lesen der Daten in eine
eigene Schleife zu packen, sowie die Abfrage der Buttons.
Ist das der richtige Screenshot, da ist keine Queue zu sehen.
UND: Du hast schon wieder eine Datenflußabhängigkeit zwischen deinen beiden Schleifen erzeugt. Die obere Schleife wird erst nach Beendigung der unteren Schleife 1x ausgeführt. Hatte ich schon einmal erwähnt. Willst du das wirklich?
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!
in der oberen Schleife sehe in anhand deines Bildes aber gar keine Buttons
In dem Bild was du hier reingestellt hast sehe ich nur ein SubVI und ein ExpressVI. Eins von beiden wird dann wohl Zeit brauchen oder du hast ein anderes VI vor dir..
Das kannst du ja auch so machen. Die Queue ist im Prinzip ein Puffer. Nur die Buttons ergeben mir deinem ODER keinen Sinn.
Beispiel: Du drückst auf den ersten Button "Kontinuierlich Speichern Signalverlauf". Der Button macht genau die selbe Funktion wie wenn du den Button "Kontinuierlich Speichern Leistungsspektrum" drückst. Verstehst du was ich meine?
Stell einfach mal dein VI hier rein..
Gruß
Marco
02.07.2019, 17:55 (Dieser Beitrag wurde zuletzt bearbeitet: 02.07.2019 17:58 von maxil.)
vielleicht helfen die Bilder zum besseren Verständnis.
Wenn ich hier die Button zum Abbruch der Schleife nicht einbringen kann/soll (Verzögerung bei der Datenübertragung zwischen den Whils), wie kann man dann eine vernünftige
Abbruchbedingung von Hand schaffen auf dem VI?
(02.07.2019 13:05 )jg schrieb:
(02.07.2019 11:43 )maxil schrieb: Hallo Marco,
das ist der Teil, um den es geht!
Ist das der richtige Screenshot, da ist keine Queue zu sehen.
UND: Du hast schon wieder eine Datenflußabhängigkeit zwischen deinen beiden Schleifen erzeugt. Die obere Schleife wird erst nach Beendigung der unteren Schleife 1x ausgeführt. Hatte ich schon einmal erwähnt. Willst du das wirklich?
Gruß, Jens
Hi Jens,
nein sollen sie nicht, sie sollen eigentlich parallel laufen bzw. ich hatte vorher alles in einer Schleife und habe die Steuerung (Buttons) auf Anraten in eine separate Schleife gepackt.
Sie soll eigentlich sofort reagieren, wenn eine Benutzerinteraktion erfolgt, während in der oberen z.B. Daten eingelesen werden!
02.07.2019, 18:30 (Dieser Beitrag wurde zuletzt bearbeitet: 02.07.2019 18:33 von jg.)
nein sollen sie nicht, sie sollen eigentlich parallel laufen bzw. ich hatte vorher alles in einer Schleife und habe die Steuerung (Buttons) auf Anraten in eine separate Schleife gepackt.
Sie soll eigentlich sofort reagieren, wenn eine Benutzerinteraktion erfolgt, während in der oberen z.B. Daten eingelesen werden!
Das tun sie aber nicht, da du per Draht eine Abarbeitungsreihenfolge der beiden Schleifen festlegst. LabVIEW 101 Wissen. (s. Links in GerdWs Signatur)
Wir haben dir inzwischen mehrfach entsprechende Bsp. hochgeladen, warum programmierst du das nicht nach? Weitere Beispiele zur Verwendung von Queues findest du im NI Example Finder (sehr zu empfehlen).
Gruß, Jens
P.S.: Screenshots von deinem Frontpanel helfen wenig beim Verständnis, was du eigentlich erreichen willst. Wie wäre es mal mit einem VI-Upload? inkl. genauer Erklärung, was du erreichen willst.
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!
schau dir mein Bild an. Da siehst du wie du das VI manuell beenden kannst. Die Rechte Schleife überprüft nur ob du noch Daten in deiner Queue hast. Denn wenn du die Schleife sofort beendest gehen dir die Daten die im Puffer liegen sonst verloren.
Versuch mein VI auf deins zu übertragen. Wenn deine Queue läuft kann man zusammen schauen ob man das ganze VI noch schneller machen kann.
Sonst schau dir mal, wie von jg gesagt, die Examples zum Thema Queue an..