LabVIEWForum.de
EventCase blockiert FP - aber welcher? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenkommunikation (/Forum-Datenkommunikation)
+---- Thema: EventCase blockiert FP - aber welcher? (/Thread-EventCase-blockiert-FP-aber-welcher)

Seiten: 1 2


RE: EventCase blockiert FP - aber welcher? - Soean - 23.05.2012 14:42

Mechanical Action ist jeweils auf "Switch when pressed". Beide werden jedoch ausschließlich programmatisch über die Property "Value (signl)" geändert. Jedoch nur einer zur Zeit und definitiv auch nur ein Mal.


RE: EventCase blockiert FP - aber welcher? - GerdW - 23.05.2012 14:45

Hallo soean,

Zitat:Wie arbeite ich am Besten in verschiedenen Schleifen mit ein und der selben Klasse?
Gar nicht. Die Event-Schleife verschickt nur Kommandos an die Arbeitsschleife - und dort bleibt das Objekt. (Aka Producer-Consumer aka event-driven statemachine)


RE: EventCase blockiert FP - aber welcher? - Soean - 23.05.2012 16:17

Hallo GerdW,


(23.05.2012 14:45 )GerdW schrieb:  Hallo soean,

Zitat:Wie arbeite ich am Besten in verschiedenen Schleifen mit ein und der selben Klasse?
Gar nicht. Die Event-Schleife verschickt nur Kommandos an die Arbeitsschleife - und dort bleibt das Objekt. (Aka Producer-Consumer aka event-driven statemachine)

Das werde ich mir wohl bei Gelegenheit noch mal genauer überlegen/angucken müssen. Bei dem aktuellen Programm würde ich meine Struktur schon gerne beibehalten, wie gesagt, bei meinen anderen Programmen funktioniert es auch. Und der Aufwand, es zum jetzigen Zeitpunkt zu ändern, wäre nicht unerheblich.

Ich habe noch ein anderes Problem bei dieser Software: Sie "läuft nicht rund". Bedeutet: Wie bereits erwähnt habe ich eine Main-Loop und 5 parallel laufende Loops. Das FP ist über eine Tab-Control organisiert. Zu debugging-Zwecken lasse ich mit die Iterationen der einzelnen Schleifen ausgeben. Bei aufruf einiger bestimmter Seiten des Tab-Controls stockt die Software, deutlich daran zu sehen, dass die interationsanzeigen nicht mehr kontinuierlich, sondern stockend hoch laufen, sie machen also Sprünge von meinetwegen 512 auf 523. Der einzige Unterschied ist aber wirklich, dass unterschiedliche Seiten im Tab-Control aufgerufen werden, die States-Machines bleiben in den selben States.

Aber das FP ist doch auch nicht überladen, oder? (Siehe Bilder)


Könnten meine beiden Probleme zusammen hängen?

Aber ich mache nun erst einmal Feierabend, bei uns scheint die Sonne Cool


Vielen Dank für eure Hilfe! Wäre super, wenn wir morgen weiter nach einer Lösung suchen könnten :-)

Gruß,

Soean


RE: EventCase blockiert FP - aber welcher? - rolfk - 24.05.2012 11:59

(23.05.2012 16:17 )Soean schrieb:  Ich habe noch ein anderes Problem bei dieser Software: Sie "läuft nicht rund". Bedeutet: Wie bereits erwähnt habe ich eine Main-Loop und 5 parallel laufende Loops. Das FP ist über eine Tab-Control organisiert. Zu debugging-Zwecken lasse ich mit die Iterationen der einzelnen Schleifen ausgeben. Bei aufruf einiger bestimmter Seiten des Tab-Controls stockt die Software, deutlich daran zu sehen, dass die interationsanzeigen nicht mehr kontinuierlich, sondern stockend hoch laufen, sie machen also Sprünge von meinetwegen 512 auf 523. Der einzige Unterschied ist aber wirklich, dass unterschiedliche Seiten im Tab-Control aufgerufen werden, die States-Machines bleiben in den selben States.

Das zeigt gerade, dass die Loop die den Zähler inkrementiert fröhlich im Hintergrund weiterläuft. Was aber passiert ist das der UI Thread bei Dir durch etwas blockiert wird, und dann kann LabVIEW auch keine Frontpanelupdates machen, auch wenn der Controlwert X mal geupdated wird. Die LabVIEW Eventstruktur hat intern eine EventQueue, aber wenn diese EventQueue nicht abgearbeitet wird indem man die Eventstruktur in einer Loop regelmässig ausführt, kann das Frontpanel blockieren, wenn ein Event mit der Checkbock "Lock Front Panel (defer processin of user actions) untile this event case completes" in der Queue sitzt. Entfernen dieser Checkbox ist aber effektiv meist keine gute Lösung da dies viele andere Probleme mit sich mitbringen kann.


RE: EventCase blockiert FP - aber welcher? - Soean - 24.05.2012 12:19

Ich habe jetzt das Problem des nicht sauber "updatenen" FPs an anderer Stelle lokalisiert. Ganz dumm habe ich mir die Systemleistung angesehen...und siehe da: Knapp 100%. Da hätte ich auch wirklich mal eher drauf kommen können. Auch an welcher Schleife das liegt konnte ich durch Desaktivierung der einzelnen Schleifen herausfinden. Ich muss nur noch das warum klären. Sie läuft nicht unendlich schnell (wait 50 ms), und sonderlich komplizierte Operationen werden auch nicht durchgeführt. Aber ich bin zuversichtlich :-)

Vllt gibt es wegen der hohen Prozessorlast Probleme mit der EventStructure? Wir werden sehen, sobald ich die rechenintensive Schleife korrigieren konnte :-)

Noch einmal Danke euch allen! Ich melde mich dann, wenn die Schliefe keine Probleme mehr bereitet.


Gruß,

soean