VIs verlangen immer ALLE Signale am Eingang - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: VIs verlangen immer ALLE Signale am Eingang (/Thread-VIs-verlangen-immer-ALLE-Signale-am-Eingang) |
VIs verlangen immer ALLE Signale am Eingang - Hans_Wurst - 21.05.2008 15:02 Hallo, ich möchte eine case-Abfrage in meinem Programm ausführen, bei der grundsätzlich eine "default-Anweisung" in einem case-Aufruf ausgeführt wird und beim Einteten eines Events (durch button) der case-Aufruf nochmal mit einer anderen Aufgabe ausgeführt wird. Nun habe ich das Problem, dass LabVIEW diesen Case-Aufruf IMMER erst dann ausführt, wenn alle Signale vollständig an den Eingängen anliegen. Sie wird somit also nur ausgeführt, wenn der Event eintritt. Sonst nie. Kennt jemand vielleicht einen besseren Lösungsweg? Danke und viele Grüße vom LabVIEW-Neuling. VIs verlangen immer ALLE Signale am Eingang - Hans_Wurst - 21.05.2008 16:53 Hallo, ich habe gerade herausgefunden, dass man dieses Problem mit dem Setzen des Timeoutwertes in der Event-Funktion umgehen kann. Nun habe ich das Problem, dass ich diese Event-Schleife nur einmal ausführen kann. Danach reagiert er nicht mehr auf ein erneutes Aufrufen des Events (bzw. betätigen des Schalters). Da das hier aber nicht mehr zum Thema passt, habe ich ein neues Theme (Ereignis nur einmal ausführbar) ins Forum gestellt. LG, HW VIs verlangen immer ALLE Signale am Eingang - Kvasir - 21.05.2008 17:24 Habe dir jetzt schon auf deinen anderen Post geantwortet. Aber such doch mal im Forum hier nach "StateMaschine" oder "Event". Da hatten wir schon öfter gute Beispiele, wie man eine Eventstruktur gut einbauen kann. Ansonsten denke ich - von deiner Beschreibung her, dass du hier eventuell sogar ganz ohne Event auskommst (siehe Screenshot). Grüße VIs verlangen immer ALLE Signale am Eingang - Lucki - 24.05.2008 07:31 Verstehe nicht richtig was Du meinst. Falls das Problem ist, daß ein Event a) bei einem Bedien-Ereignis und b) unabhängig von einer Bedienung beim Start des Programms ausgeführt wird, dann mache ich das z.B. so: [attachment=12665] Zitat:Nun habe ich das Problem, dass LabVIEW diesen Case-Aufruf IMMER erst dann ausführt, wenn alle Signale vollständig an den Eingängen anliegen. Sie wird somit also nur ausgeführt, wenn der Event eintritt. Sonst nie.Das ist kein Problem, sondern ein logisches Muß. Was sollte die Ausführung für einen Sinn machen, wenn die dabei zu verwendenten Daten noch gar nicht vorliegen? Und das Wort "erst" passt sowieso nicht. Wegen der quasiparallelen Abarbeitung ist es eher richtig zu sagen: Eine Instruktion nicht erst dann ausgeführt, wenn sie (wie bei anderen Programmiersprachen) im fortlaufenden Programmtext an der Reihe ist, sondern schon dann, wenn alle benötigten Daten vorliegen - also zum überhaupt frühest möglichen Zeitpunkt. |