Hallo LV Gemeinde
ich habe folgendes Problem:
Ich habe einen Zustandsautomaten gebaut dieser soll unteranderem durch einen Stop Button beendet werden.
Leider lässt sich nach starten des VI nichts mehr auf dem Frontpanel bedienen so das ich das VI über den Größen bösen roten Button beenden muss.
Hat jemand eine Idee oder weiss was ich falsch gemacht habe bzw wo mein Denkfehler liegt ??
es handelt sich hierbei um LV 2011
[
attachment=56678]
Besten Dank und Grüße
flizzer82
Hallo flizzer82
Ohne deinen Code im Detail zu kennen gehe ich davon aus, dass die Bedienoberfläche durch den Event blockiert ist.
Du kannst dies in der Event-Struktur konfigurieren (siehe Bild).
Ich persönlich würde eine andere Lösung anstreben...
Lagere den ausführenden Code in eine parallele Schleife aus (Producer - Consumer oder ähnliche Architektur).
Denn in der Event-Struktur sollte nur das nötigste an Code platziert werden.
Gruss
Chris
(21.09.2016 09:00 )Morpheus schrieb: [ -> ]Denn in der Event-Struktur sollte nur das nötigste an Code platziert werden.
Genau. Nie, wirklich NIE Code in der Event-Struktur platzieren, der länger als einige ms Abarbeitungszeit braucht!
Gruß, Jens
Hallo flizzer82,
wenn die Event Struktur mehrmals angesprochen werden soll, muss sie innerhalb einer While Schleife sein.
Bei Deiner Darstellung kommt es nur zu einem Eventaufruf.
Gruß
Freddy
Besten Dank Chris Das war die Lösung genau wie ich es mir vorgestellt habe.
auf die Producer - Consumer Idee werde ich beim nächsten Projekt zurückgreifen
mfg
flizzer82
Gerade erst die restlichen Antworten gelesen.
dabei stellt sich mir eine Frage .... Warum sollte ich die Event struktur nicht so benutzen das ist mir noch schleierhaft
es wird genau das gemacht was ich möchte ... eine zeitlang gewartet bis jemand START drückt ansonsten wird durchs Timeout ne meldung gegeben.
mfg flizzer82
(21.09.2016 09:18 )flizzer82 schrieb: [ -> ]Gerade erst die restlichen Antworten gelesen.
dabei stellt sich mir eine Frage .... Warum sollte ich die Event struktur nicht so benutzen das ist mir noch schleierhaft
THINK Dataflow, solange dein VI deine State-Machine abarbeitet, kann es keine weiteren Events in anderen Cases der Event-Struktur abarbeiten.

Und genau deshalb musst du dein VI abschießen...
Gruß, Jens
Guten Morgen
Das ist es ja ... es gibt nur das Timeout und das Start Event Case
es wird also garkein anderes Event abgearbeiotet werden. Ich benutze die Event Strucktur nur um zu starten.
mfg flizzer
(22.09.2016 07:01 )flizzer82 schrieb: [ -> ]Guten Morgen
Das ist es ja ... es gibt nur das Timeout und das Start Event Case
es wird also garkein anderes Event abgearbeiotet werden. Ich benutze die Event Strucktur nur um zu starten.
Das finde ich Engineering Overkill, das könntest du auch mit langsamen Pollen erschlagen.
Es ist IMHO einfach schlechter Programmierstil, langlaufende Prozesse in einen Event-Case zu hängen - das solltest du dir gar nicht erst angewöhnen. Dann passiert dir das auch nicht bei komplizierten Programmen. Die Event-Struktur muss immer "schnell" auf User-Event reagieren können.
Und ich hoffe, du verwendest nicht mehr als 1 Event-Struktur pro VI, auch so etwas macht in der Regel nur mehr Ärger als dass es nützt.
Gruß, Jens