Zustandsautomat beenden - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Zustandsautomat beenden (/Thread-Zustandsautomat-beenden) |
Zustandsautomat beenden - flizzer82 - 21.09.2016 08:41 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 RE: Zustandsautomat beenden - Morpheus - 21.09.2016 09:00 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 RE: Zustandsautomat beenden - jg - 21.09.2016 09:17 (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 RE: Zustandsautomat beenden - Freddy - 21.09.2016 09:18 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 RE: Zustandsautomat beenden - flizzer82 - 21.09.2016 09:18 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 RE: Zustandsautomat beenden - jg - 21.09.2016 16:25 (21.09.2016 09:18 )flizzer82 schrieb: Gerade erst die restlichen Antworten gelesen.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 RE: Zustandsautomat beenden - flizzer82 - 22.09.2016 07:01 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 RE: Zustandsautomat beenden - jg - 22.09.2016 09:33 (22.09.2016 07:01 )flizzer82 schrieb: Guten MorgenDas 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 |