INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

BenutzerEvent löst timeout-Case aus



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!

04.07.2013, 10:28 (Dieser Beitrag wurde zuletzt bearbeitet: 04.07.2013 10:42 von Hasenfuss.)
Beitrag #21

Hasenfuss Offline
LVF-Stammgast
***


Beiträge: 331
Registriert seit: Dec 2012

2012
2012
DE



RE: BenutzerEvent löst timeout-Case aus
Hallo Ihr alle zusammen,

vielen Dank, dass Ihr Euch so viel Zeit genommen habt, um mir etwas weiterzuhelfen.

Ich habe mir noch nicht alles im Detail angeschaut, ich möchte aber zu diesem Punkt etwas beantworten:

"Geschrieben von Lucki - 02.07.2013 11:28
Der "Irrsinn" des Programms besteht ja darin, dass das gesamte Programm nicht nur von Haupt-VI aus, sondern auch von jedem SubVI beendet werden soll. Ich wüßte kein praktisches Beispiel, in dem so etwas sinnvoll sein könnte. ..."

1. Mein Beispiel war ein abstrahiertes Beispiel. Ich hatte ein Problem, aber ich kann mein reales Beispiel nicht versenden, so habe ich versucht, durch dieses Problem den bei mir auftretenden Fehler deutlich zu machen. Ausserdem steuerte ich in meinem Beispielprogramm von den SubVIs die Lampen im Haupt-VI, die subVIs konnten zwar einzeln beendet werden, nicht aber die gesamte Anwendung durch ein SubVI.

2. Bei mir gibt es diesen Fall, dass ich mit mehreren Events arbeiten muss - aber vielleicht gibt es ja für mein Problem auch noch eine andere Lösung.

Ich habe ein Haupt-VI, in dem ich ein Unterpanel habe, um dort verschiedene Programm-Module je nach Auswahl hineinzuladen (siehe Bild). Neben dem Unterpanel sind Schalter positioniert, die in der Eventstruktur des Haupt-VIs ausgewertet werden und je nach Schalter wird das entsprechende Unterprogramm in das SubPanel geladen.

Das Unterprogramm 1 besteht aus zwei Teilen, da es dort ein separates Fenster gibt, in dem Einstellungen vorgenommen werden können. Dieses Fenster kann als separates Fenster geladen werden, es soll aber der Übersichtlichkeit auch in das SubPanel geladen werden.

Das Problem ist also nun, dass ich aus dem Unterprogramm heraus das SubPanel des Hauptprogramms verändern möchte. Nun kann ich die Referenz des SubPanels übergeben und das Laden vom Unterprogramm 1 aus machen. Ich habe aber gedacht, dass es schöner ist, wenn ich das Laden des zweiten Moduls von Unterprogramm 1 auch vom Haupt-VI, in dem ich alle Anzeigen aus steuere, mit übernehme. Die Abarbeitung erfolgt aber über Eventstrukturen, also musste ich auch in das Haupt-VI eine Eventstruktur einbauen. Der Übersichtlichkeit halber hatte ich einfach an die bisherigen Benutzerevents ein weiteres Event drangehängt und so ist das "Chaos" entstanden.

Einige dieser Programmblöcke bleiben während der gesamten Laufzeit aktiv. In diesen subVIs arbeite ich sehr oft auch mit Eventstrukturen. In Eventstrukturen kann ich keine Melderereignisse verarbeiten. Darum habe ich in dem Haupt-VI ein Benutzerereignis "Beenden" gesetzt und registriert, dass von allen subVIs aus gelesen wird. Daher in meinem Beispiel die Möglichkeit, die beiden subVIs aus dem Haupt-VI heraus zu beenden.

Zu einer Sache hätte ich gerne nochmal eine Frage. Beim Experimentieren vor einiger Zeit hatte ich mehrere SubVIs aus einem Haupt-VI heraus beendet. Also im Haupt-VI habe ich das Event Stoppen ausgelöst, an alle SubVIs, die Referenz übertragen und es haben sich auch brav alle SubVIs beendet.

Jetzt schreibt ihr mir, dass die Eventstruktur wie eine Queue arbeitet. Das heisst doch, dass es hätte eigentlich garnicht funktionieren dürfen, dass sich beide SubVIs beenden, weil doch dann von einem der beiden VIs das Ereignis verarbeitet wurde. Das verstehe ich grad noch nicht. Oder war das dann "Zufall", dass es funktionierte?


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
04.07.2013, 18:46 (Dieser Beitrag wurde zuletzt bearbeitet: 04.07.2013 18:47 von Holy.)
Beitrag #22

Holy Offline
LVF-Stammgast
***


Beiträge: 339
Registriert seit: Sep 2008

2014
2007
EN

09XXX
Deutschland
RE: BenutzerEvent löst timeout-Case aus
(04.07.2013 10:28 )Hasenfuss schrieb:  Jetzt schreibt ihr mir, dass die Eventstruktur wie eine Queue arbeitet. Das heisst doch, dass es hätte eigentlich garnicht funktionieren dürfen, dass sich beide SubVIs beenden, weil doch dann von einem der beiden VIs das Ereignis verarbeitet wurde. Das verstehe ich grad noch nicht. Oder war das dann "Zufall", dass es funktionierte?

Das habe ich nicht geschrieben Wink
Ich habe aber geschrieben das jede Eventregistrierung wie eine Queue funktioniert. Dazu mal ein Beispiel:
  • Event A erzeugen
  • Event A das erste mal registrieren und somit Eventregistrierung B erzeugen
  • Event A ein weiteres mal registrieren und somit Eventregistrierung C erzeugen
  • Eventregistrierungen B und C jeweils an eine eigene WhileSchleife mit Eventstruktur bringen

Was wird jetzt hier passieren?
Wie beschrieben bildet jede der Eventregistrierungen B und C eine eigene Queue ab. Das führt dazu wenn du einmal Event A feuerst kann sowohl an Eventregistrierung B und C ein angekommener Event A verarbeitet werden.

Du hast in deinem Orginalbeispiel im Prinzip Eventregistrierung B geteilt und diese an beide Whileschleifen gleichzeitig gebracht. Jetzt ist logischerweise nur ein Event A da zum abarbeiten und die Probleme beginnen...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  letztes Element wieder fokusieren nach Fenster lost focus TpunktN 2 2.891 28.11.2022 11:31
Letzter Beitrag: TpunktN
  Case-Struktur: Angegebener Case nicht vorhanden braendy 10 6.925 02.02.2021 15:05
Letzter Beitrag: Lucki
  VISA Timeout LP 8 8.171 10.10.2019 09:05
Letzter Beitrag: jahu
  Event Case Ignoriert Tastendruck wenn in Gegenwart eines anderen "Leeren" Event Case Ksanto 8 8.321 23.10.2017 09:08
Letzter Beitrag: Ksanto
  CLD Prüfungsängste, Timeout HasteMalNeMark 7 5.999 29.03.2016 16:01
Letzter Beitrag: rolfk
  Event-Struktur: Timeout während der Eventabarbeitung kwakz 4 5.526 04.09.2015 17:21
Letzter Beitrag: Lucki

Gehe zu: