Hallo zusammen,
ich habe das im Anhang begefügte VI als Minimalbeispiel angehängt. Meine eigentliche Software ist nach dem gleichen Prinzip aufgebaut, nur das es hier noch mehr Ereignisse und Aktionen gibt!
Folgendes funktioniert in meinem Hauptprogramm im Gegensatz zum beigefügten VI NICHT:
der Benutzer erzeugt ein Ereignis (hier zum Beispiel umlegen des Schalters "Boolesch"). Danach klickt der User auf "Abbrechen" und bei der Abfrage, ob man wirklich abbrechen möchte, auf NEIN. Nun sollte das VI auf das nächste Ereignis warten.
Was im beigefügten VI funktioniert, klappt bei mir nicht. Die Ereignisstruktur wird zwar erreicht, ich kann mit meinen Button's aber kein Ereignis mehr auslösen, gerade so, als wenn sie deaktiviert wären. Wenn ich ein Timeout mit hinein programmiere wird dieses normal ausgführt und danach wieder brav gewartet. Aber ich kann mit meinen Button's trotzdem kein Ereignis mehr auslösen.
Irgendein Anhaltspunkt?
Das VI im Anhang wurde mitlv86programmiert!
@Achim: ja, es wäre sinnvoll gewesen es für eine ältere VErsion zu speichern -> hier jetzt auch für 8.0!
Zum (wohl aus Versehen) doppelt geposteten Thread: Gelöscht!
Jetzt habe ich ein Problem. Du postest ein funktionierendes Bsp.-VI und fragst jetzt, wieso etwas ähnliches in deinem "richtigen" VI nicht funzt: KEINE AHNUNG!
Einziger typischer Tip, wenn eine Event-Struktur scheinbar nicht mehr funzt: Hast du davon mehr als 1 innerhalb eines VI verwendet?
Gruß, Jens
' schrieb:
Jetzt habe ich ein Problem. Du postest ein funktionierendes Bsp.-VI und fragst jetzt, wieso etwas ähnliches in deinem "richtigen" VI nicht funzt: KEINE AHNUNG!
Einziger typischer Tip, wenn eine Event-Struktur scheinbar nicht mehr funzt: Hast du davon mehr als 1 innerhalb eines VI verwendet?
Gruß, Jens
Moin Jens,
ja der Fehler war für mich scheinbar nicht reproduzierbar und das nicht funktionierende VI darf ich nicht posten. Aber du hast recht, mehrere Eventstrukturen wurden innerhalb eines VI's programmiert und blocken sich gegenseitig. Ich muss das Konzept meiner Software wohl komplett überarbeiten.
Also: NIEMALS mehrere Event-Strukturen innerhalb eines VI verwenden!
' schrieb:Also: NIEMALS mehrere Event-Strukturen innerhalb eines VI verwenden!
So absolut würde ich das nicht sagen und NI sagt das auch nicht. Aber eines ist auf jeden Fall zu beachten: Es kann zu einem gegebenen Zeitpunkt kann immer nur in einer Ereignisstruktur auf ein Ereignis gewartet werden. Die andere kann erst aktiv werden, wenn entweder in der ersten Schleife ein Ereignis stattgefunden hat oder das Timeout verstrichen ist.
Tödlich ist es in jedem Fall, wenn eine - oder sogar beide - der Ereignisstrukturen ein Timeout von unendlich haben. Bei Dir ist das im geposteten Beispiel der Fall, so daß also die Verwendung einer weiteren Ereignisstruktur im VI automatisch in die Hose geht.
Aber davon abgesehen: Man kann es immer so machen - notfalls auch mit einer eigenen unabhängigen while-Schleife nur für das Abfangen von Ereignissen - daß man mit einer einzigen Ereignisstruktur auskommt und ist damit immer gut beraten.
Bei Verwendung der Ereignisstruktur in der Hauptschleife ist zu beachten, daß das Warten möglichst immer im Timeout der Ereignsistruktur stattfindet. Wenn hier an anderer Stellen noch Wartefunktinen eingebaut sind, dann kann in dieser Zeit ebenfalls nicht sofort auf ein Ereignis reagiert werden.
mmh, ich habe, glaube ich das gleiche Problem. Mein VI, welches aus vielen Sub-VIs (einige auch doppelt), besteht "hängt" immer. Das heißt einige Ereignisse funktionieren wunderbar, und andere kann ich anklicken und es passiert erstmal nichts. Wenn ich dann jedoch ein Ereignis anwende, was funktioniert, funktioniert auch das andere, jedoch nicht kontinuierlich.
Ich versuch es mal in einem Bsp.:
Wenn ich z.B. den Latch-Schalter fürs Speichern drücke, bleibt dieser hängen, bis ich meinetwegen eine Eingangsfrequenz ändere. Dann springt der Schalter zurück und es wurde auch gespeichert.
Leider funktionieren einige Funktionen so in meinem VI.
So wie ich das richtig verstanden habe, müsste ich entweder immer Time-Outs setzen?! oder meine Struktur des VIs verändern.
Aber in meinem Sub-Vi sind keine Eventstrukturen.
Hat jemand so was auch schonmal gehabt. Und wie kann ich das lösen? (wie setzte ich denn Time-Outs?)
Gruß
dirk
P.S.: Das Sub-VI verwende ich 2x
Das SubVI bringt uns hier gar nichts...du müsstest wenn schon dein MainVI zusätzlich posten...oder nen Screenshot!
Aber mal was anderes...hast du den Schalter mal im entsprechenden EventCase platziert?