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 

EventCase blockiert FP - aber welcher?



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!

23.05.2012, 11:29 (Dieser Beitrag wurde zuletzt bearbeitet: 23.05.2012 11:30 von Soean.)
Beitrag #1

Soean Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 140
Registriert seit: Sep 2010

2012
2009
EN


Deutschland
EventCase blockiert FP - aber welcher?
Hallo zusammen,

ich bin bestimmt nicht der Erste mit diesem Problem, aber die Suchfunktion bringt mich nicht weiter.

Ich habe ein _MAIN-vi mit einer Main-Loop und 5 dazu parallelen Schleifen (DIO-Signalerfassung/Erzeugung, RS232-Kommunikationen...). In meiner Main-Loop gibt es eine State-Machine, in einem Case dieser State-Machine eine Event-Structure mit derzeit 25 Cases.

Einer dieser Cases wird von 2 bool'schen Schaltern, welche in einer der parallelen Schleifen über die Property Value(Signaling) gesetzt werden, ausgelöst. Das Funktioniert auch. Die Main-State-Machine springt, sobald einer dieser Schalter gesetzt wurde, in den nächsten Case, die State-Machine wird nicht mehr aufgerufen. Trotzdem bleibt von diesem Zeitpunkt an mein FP gesperrt.

Dies bedeutet doch, dass irgendwo noch ein Bedienelement, welches auf die Event-Structure registriert wurde, seinen Wert ändert und dementsprechend ein Event auslöst, welches nicht verarbeitet werden kann, weil die Event-Structure nicht mehr aufgerufen wird, oder?
Leider kann ich keinen Punkt im Programmablauf finden, bei dem noch ein Bedienelemt verändert wird, erst recht nicht über value(signl).

Kann es noch eine andere Ursache geben? Wie würdet ihr vorgehen, um den Fehler weiter einzugrenzen?

Highlight-Mode usw. fallen raus, da ich das Programm nur als Applikation auf dem Rechner testen kann, an dem die Peripherie angeschlossen ist, und auf welchem kein LabView installiert ist.

Vielen Dank für eure Hilfe!!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
23.05.2012, 11:47 (Dieser Beitrag wurde zuletzt bearbeitet: 23.05.2012 11:49 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.430
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: EventCase blockiert FP - aber welcher?
Hallo Soean,

Zitat:in einem Case dieser State-Machine eine Event-Structure mit derzeit 25 Cases.
Zwei Punkte:
- Wenn das FP nicht auf Eingaben reagiert, ist ein Event noch nicht abgearbeitet. Dies ist nämlich die Standardeinstellung bei der Eventstruktur.
- Es ist m.M.n. äußerst schlechtes Design, die Eventstruktur in einem Case einer Statemachine zu verstecken... Wenn man Events für sich reklamiert, sollte man sie auch (jederzeit) abarbeiten können!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.05.2012, 12:24
Beitrag #3

Soean Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 140
Registriert seit: Sep 2010

2012
2009
EN


Deutschland
RE: EventCase blockiert FP - aber welcher?
Nachdem folgendes Event aufgerufen wurde, reagiert das FP nicht mehr. (siehe Grafik)

Wie dort zu sehen ist, wechselt die State-Machine nach Abarbeiten des Events den Case. Das passiert auch. Das FP bleibt jedoch gesperrt.

Wie soll ich weiter vorgehen?


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.05.2012, 12:35 (Dieser Beitrag wurde zuletzt bearbeitet: 23.05.2012 12:36 von Lucki.)
Beitrag #4

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: EventCase blockiert FP - aber welcher?
Es gibt diese zwei Möglichkeiten:
Entweder eine parallele Schleife nur zur Ereignisbehandlung - dann kann/soll Timout unendlich sein (-1).
Oder Ereignsistruktur in der Hauptschleife. Dann kein Timeout von unendlich, sonst blockiert die Struktur!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.05.2012, 13:22
Beitrag #5

Soean Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 140
Registriert seit: Sep 2010

2012
2009
EN


Deutschland
RE: EventCase blockiert FP - aber welcher?
Ich habe den Timeout auf 100 ms gesetzt - das FP bleibt blockiert.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.05.2012, 13:37
Beitrag #6

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: EventCase blockiert FP - aber welcher?
Es ist doch leicht feszustellen, wo es hängt. In den Ereigniscases sollte es nichts geben, was wartet. Bei Dir sieht man so komische Sachen wie das Ikon mit der Uhr, oder den Text "Auf Heizpatrone warten". Vielleicht hat sie sich verlaufen und kommt überhaupt nicht...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
23.05.2012, 13:48
Beitrag #7

Soean Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 140
Registriert seit: Sep 2010

2012
2009
EN


Deutschland
RE: EventCase blockiert FP - aber welcher?
Big Grin

nene...Die HP (HeizPatrone) lege ich in dem Fall selbst in den Prüfautomaten. Dieser fängt darauf hin auch wie gewollt automatisch an zu prüfen. Die Main-State-Machine verlässt also den "Idle"-Case mit der Event-Structure und geht über den Case "Automatic-Start" in den Case "Automatic-Run". Nur das FP bleibt blockiert.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.05.2012, 13:52
Beitrag #8

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: EventCase blockiert FP - aber welcher?
Wie GerdW schon gesagt hat, eindeutig schlechter Programmierstil. Eine Eventstruktur in einen Case einer State-Machine zu stecken, der dann nicht regelmäßig aufgerufen wird, da muss so was passieren.

Also: Eventstruktur in eine eigene "GUI-Loop" stecken, und dann die State-Machine per Queue oder Notifier steuern!

Gruß, Jen

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!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.05.2012, 14:02
Beitrag #9

Soean Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 140
Registriert seit: Sep 2010

2012
2009
EN


Deutschland
RE: EventCase blockiert FP - aber welcher?
Hmm...diesen "schlechten Programmierstil" habe ich auch in früheren Programmen angewandt - hat einwandfrei funktioniert.

Aber ok. Die Event-Structure in eine eigene Loop. Da stoße ich als Autodidakt jedoch gerade an meine Grenzen. Wie arbeite ich am Besten in verschiedenen Schleifen mit ein und der selben Klasse? Aber das ist vllt auch "Off-Topic"...

Danke für eure Hilfe!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.05.2012, 14:11 (Dieser Beitrag wurde zuletzt bearbeitet: 23.05.2012 14:21 von jg.)
Beitrag #10

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: EventCase blockiert FP - aber welcher?
Alternativ musst du halt dafür sorgen, dass der "Idle"-Case immer wieder aufgerufen wird, so dass auch wirklich Events abgearbeitet werden!

Andere Idee, wie sieht es mit dem Schaltverhalten deiner "Booleans" aus. Nicht dass die 2 Events pro "Value-Signaling" auslösen.
Ich kann mich da an einen Fehler bei Farbfeldern erinnern, die lös(t)en pro Benutzeränderung 2x das Event Value-Change aus.

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!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
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
  SubVI bei zweitem Aufruf blockiert klaschudi 14 9.010 15.11.2013 17:37
Letzter Beitrag: klaschudi
  webservice blockiert Dialog Box und externen Programmaufruf ImperatorPlebis 2 2.921 30.01.2013 17:28
Letzter Beitrag: ImperatorPlebis
  Aufruf Eventcase durch Globale Variable Gipler1977 9 8.288 25.09.2010 13:36
Letzter Beitrag: IchSelbst

Gehe zu: