LabVIEWForum.de - Ereignisstruktur

LabVIEWForum.de

Normale Version: Ereignisstruktur
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Moin Zusammen,
kann man in Erreignisstruktur zu einem Ereignis Priorität geben.
Zum Beispiel:
ich habe 3 Ereignisse, P1,P2 und Not Aus. Und ich möchte das Programm abbrechen, egal wo das Programm steht(P1 oder P2).
LG Lola
Hallo lola,

wenn deine Events P1 und P2 dein Programm blockieren können, hast du schon vorher einen Designfehler gemacht.
Events sollten NIE ein Programm blockieren!

Zitat:kann man in Erreignisstruktur zu einem Ereignis Priorität geben.
In neueren LabVIEW-Versionen kann man Events priorisieren.
ABER: dies verhindert nicht, dass weiterhin THINK DATAFLOW gültig ist!

Ein Event ist KEIN Interrupt, neue Events werden erst nach Abarbeitung des aktuellen Eventcases verarbeitet!
(01.12.2014 15:52 )GerdW schrieb: [ -> ]Hallo lola,

wenn deine Events P1 und P2 dein Programm blockieren können, hast du schon vorher einen Designfehler gemacht.
Events sollten NIE ein Programm blockieren!

Zitat:kann man in Erreignisstruktur zu einem Ereignis Priorität geben.
In neueren LabVIEW-Versionen kann man Events priorisieren.
ABER: dies verhindert nicht, dass weiterhin THINK DATAFLOW gültig ist!

Ein Event ist KEIN Interrupt, neue Events werden erst nach Abarbeitung des aktuellen Eventcases verarbeitet!

Hallo GerdW,
die P1 und P2 blockieren nicht mein Programm. Ich möchte nur falls es einen Hardware Fehler auftritt, dann kann ich das ganze Programm Software massig abbrechen.
LG Lola
Hallo lola,

dein PDF ist nett, aber nicht aussagekräftig…

Zitat:die P1 und P2 blockieren nicht mein Programm.
In beiden Events liegt ein subVI, welches uns unbekannt ist…

Zitat:Ich möchte nur falls es einen Hardware Fehler auftritt, dann kann ich das ganze Programm Software massig abbrechen.
Rein vom Anschein her kannst du jederzeit auf den NOTAUS-Knopf drücken…

Wozu die Wartezeit in der Schleife? Ist die nicht kontraproduktiv bzgl. deiner Anfrage, "sofort" stoppen zu können? THINK DATAFLOW!
Wenn du diese Wartezeit unbedingt brauchst: Erstell einen Timeout-Eventcase und lasse diesen 100ms warten…
(01.12.2014 16:35 )GerdW schrieb: [ -> ]Hallo lola,

dein PDF ist nett, aber nicht aussagekräftig…

Zitat:die P1 und P2 blockieren nicht mein Programm.
In beiden Events liegt ein subVI, welches uns unbekannt ist…

Zitat:Ich möchte nur falls es einen Hardware Fehler auftritt, dann kann ich das ganze Programm Software massig abbrechen.
Rein vom Anschein her kannst du jederzeit auf den NOTAUS-Knopf drücken…

Wozu die Wartezeit in der Schleife? Ist die nicht kontraproduktiv bzgl. deiner Anfrage, "sofort" stoppen zu können? THINK DATAFLOW!
Wenn du diese Wartezeit unbedingt brauchst: Erstell einen Timeout-Eventcase und lasse diesen 100ms warten…
guten Morgen GerdW,
in jedem Event liegt ein SubVI, die werden ausgeführt, wenn man die Taster P1 oder P2 betätigt. Das Problem ist, wenn man den Taster NOT AUS betätigt, werden die SubVI nicht untergebrochen. Sondern die laufen bis zum Ende. Aber ich möchte in jeder Zeit das ganze unterbrechen wenn ich NOT- AUS betätige.
Nur kurzen Hinweis, habe jetzt keine Zeit:
Man kann ein Sub-Vi, satt das Ikon zu benutzen, auch über Methodenknoten aufrufen, und zwar so, dass dann nicht das Hauptprogramm während der Ausführungszeit blockiert wird. Ebenso läßt es sich stoppen, indem man über Methoden- (oder Eigenschafts-?) Knoten direkt den Stop-Knopf des Sub-Vis betätigt.
Also: In den beiden Ereignissen P1 und P2 Aufruf der SubVis nicht über ihre Ikons, sondern über Methodenkonten, und bei Ereignis "Not-Aus" das Stoppen der beiden Sub-Vis veranlassen.
Think Dataflow!
Wie soll ein anderes Event der Event-Struktur verarbeitet werden, wenn ein SubVI abgearbeitet wird und sich das Haupt-VI noch IN einem anderen Event-Case befindet?

Lösungs-Möglichkeiten: s. Lucki (wenn auch etwas unschön zwecks radikalem Abbruch eines VIs) oder Umbau deines VI!

Gruß, Jens
(02.12.2014 10:35 )jg schrieb: [ -> ]Lösungs-Möglichkeiten: s. Lucki (wenn auch etwas unschön zwecks radikalem Abbruch eines VIs) oder Umbau deines VI!
Das war von mir unglücklich formuliert. Mit Stoppen des VI meinte ich, dass man über eine Referenz zum Sub-Vi ganz sanft den Stopp-Knopf des Sub-Vis drückt.
(02.12.2014 10:14 )Lucki schrieb: [ -> ]Nur kurzen Hinweis, habe jetzt keine Zeit:
Man kann ein Sub-Vi, satt das Ikon zu benutzen, auch über Methodenknoten aufrufen, und zwar so, dass dann nicht das Hauptprogramm während der Ausführungszeit blockiert wird. Ebenso läßt es sich stoppen, indem man über Methoden- (oder Eigenschafts-?) Knoten direkt den Stop-Knopf des Sub-Vis betätigt.
Also: In den beiden Ereignissen P1 und P2 Aufruf der SubVis nicht über ihre Ikons, sondern über Methodenkonten, und bei Ereignis "Not-Aus" das Stoppen der beiden Sub-Vis veranlassen.
moin Lucki,
ich habe noch nie mit Methodenknoten gearbeitet, wie kann man durch diese Funktion ein SubVI aufrufen?
danke

(02.12.2014 11:27 )lola2014 schrieb: [ -> ]
(02.12.2014 10:14 )Lucki schrieb: [ -> ]Nur kurzen Hinweis, habe jetzt keine Zeit:
Man kann ein Sub-Vi, satt das Ikon zu benutzen, auch über Methodenknoten aufrufen, und zwar so, dass dann nicht das Hauptprogramm während der Ausführungszeit blockiert wird. Ebenso läßt es sich stoppen, indem man über Methoden- (oder Eigenschafts-?) Knoten direkt den Stop-Knopf des Sub-Vis betätigt.
Also: In den beiden Ereignissen P1 und P2 Aufruf der SubVis nicht über ihre Ikons, sondern über Methodenkonten, und bei Ereignis "Not-Aus" das Stoppen der beiden Sub-Vis veranlassen.
moin Lucki,
ich habe noch nie mit Methodenknoten gearbeitet, wie kann man durch diese Funktion ein SubVI aufrufen?
danke
Beispiel mit dem Aufruf eines VI´s in einem Subpanel:
[attachment=51516]
Seiten: 1 2
Referenz-URLs