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 

Einfrieren der GUI bei Eventcase



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!

22.06.2020, 19:27 (Dieser Beitrag wurde zuletzt bearbeitet: 22.06.2020 19:31 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.471
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Einfrieren der GUI bei Eventcase
Hallo Thommy,

herzlich willkommen im Forum!

Zitat:Ich habe das Problem, dass ich einen programmierten Dauertest wobei der Motor unterschiedliche Drehzahlen anfährt nicht anhalten kann.
Sobald ein Event ausgeführt wird ist die GUI für die Eingabe eingefroren bis das Event abgearbeitet ist.
Ich verwende keine Queues und bin mir unsicher ob ein Anhalten des Dauertest ohne überhaupt möglich ist.
Über Tipps und Anregungen würde ich mich freuen.
Es gibt eine klare Grundregel für die Nutzung der Event-Struktur: ein Eventcase sollte so schnell wie möglich abgearbeitet sein. Und unter "schnell" sollte man hier "Millisekunden" verstehen!
Deine Bilder zeigen dagegen etwas anderes: viel Code in den Eventcases, inkl. Schleifen und anscheinend Kommunikation mit externer Messtechnik. Alles Dinge, die nicht "schnell" ablaufen…

Nun könnte man auf die "clevere" Idee kommen, in der Eventcase-Definition das Häkchen bei "block GUI" zu entfernen. Das ist aber leider auch nicht sinnvoll, da dank THINK DATAFLOW! andere Events erst dann abgearbeitet werden können, wenn der aktuelle Case beendet wurde. Du verschlimmbessert auf diese Weise nur das Verhalten deines Programms: Events werden registriert, aber stark zeitverzögert abgearbeitet - das hört man den User jetzt schon fluchen…

Lösung:
Programm neu erstellen - und sich vorher Gedanken um eine sinnvolle Programmstruktur machen!
Warum verwendest du denn keine Queues? Oder sinnvoll strukturierte Statemachines oder QMH?

Anmerkungen zu den Bildern:
Generell sehr "komprimierter" Code, da könnte man mal aufräumen und z.B. mehr gerade Drähte verwenden! Lies mal den Styleguide in der LabVIEW-Hilfe!
Was genau sollen FOR-Loops bewirken, die exakt einmal iterieren? Das ist quasi ein NOP! Warum nutzt du nicht den ErrorWire für den DATAFLOW?
Schleifen in Schleifen (Dauertest): das geht mit einer Statemachine schöner…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
RE: Einfrieren der GUI bei Eventcase - GerdW - 22.06.2020 19:27

Gehe zu: