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!
18.07.2006, 17:11 (Dieser Beitrag wurde zuletzt bearbeitet: 18.07.2006 17:11 von Teutates.)
Sofern mich keiner vom Gegenteil überzeugt und mir eine bestehende Lösung zeigt...
Ich würde gern direkten Zugriff über das Frontpanel haben auch Events die am laufen sind durch
Benutzerinteraktion direkt abzubrechen, es müsste also einfach ermöglicht werden nicht nur durch
Interaktion einen Case aufzurufen sondern auch mit einer bestimmten Aktion jeder Zeit abzubrechen,
ohne Zusatzschleifen.
Wenn ich dich richtig verstanden habe, dann willst du dass die Eventstructure nicht an einer Stelle bleibt, wenn in dem Event etwas längerdauerndes passiert.
Wenn ja, dann gibt es bei jedem Event eine Option "Lock front panel until the event case for this event completes"!
Einfach wegklicken.
Nein das Problem ist wenn der Event läuft wird er bis zum ende ausgeführt, und da nützt mir das unlocken auch nicht da erst am Ende des Cases aus dem Event gegangen wird. Und genau das ist das Problem bei mir
das auch ein Case abgebrochen werden kann, Beispiel ist habe eine Sequenz laufen die ingesamt 10 min läuft, dann wird diese auch 10 min laufen, ich kann zwar andere Dinge in anderen Schleifen abarbeiten aber nicht
direkt Einfluss nehmen.
Solang also nur kurze Operationen laufen ist das ja kein Problem nur wenn ich komplette Messzyklen in einem Case laufen lasse, Beispiel das Positionieren in einem Messgitter mit 8000 Punkten wie bei mir, muss es auch eine Möglichkeit geben mit einer weiteren Interaktion direkt diesen Case auch wenn er erst zu 50% gelaufen ist abzubrechen und das direkt als Funktion in dieser Struktur ohne Hickhack.
' schrieb:Wenn ich dich richtig verstanden habe, dann willst du dass die Eventstructure nicht an einer Stelle bleibt, wenn in dem Event etwas längerdauerndes passiert.
Wenn ja, dann gibt es bei jedem Event eine Option "Lock front panel until the event case for this event completes"!
Einfach wegklicken.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
direktes Abbrechen im Eventcase
Wie wäre es, wenn Du zwei Schleifen parallel abarbeitest und in der einen liegt die Event-Structure. In der anderen liegt der Rest (inkl. Stopschalter). Dann hast Du im Endeffekt immer Zugriff auf die "langlaufende" Schleife. Oder habe ich das falsch verstanden?
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
' schrieb:Nein das Problem ist wenn der Event läuft wird er bis zum ende ausgeführt,
Also ich verstehe das überhaupt nicht. Ein Event ist ein augenblickliches Ereignis, das "läuft" doch nicht, weder "bis zum Ende" noch anderswohin. Im jedem Eventcase kann allerdings Programmcode stehen, der nach dem betreffenden Event abgearbeitet wird. Mit dem kann man aber (wenn das erwähnte Häkchen weggeklickt ist) über Frontpanels genau so so kommunizieren wie in jedem anderen Programmteil auch. Also wo soll hier das Problem sein? Könntest Du nicht ein abgespecktes kleines vi als Beispiel geben, wie es unerwünschterweise läuft und dazu sagen, wie es wunschgemäß laufen sollte? Dann hätte das Rätselraten über das was Du meinst ein Ende.
Hab verstanden, Im Grunde habt Ihr ja recht , dachte mir halt das es vielleicht sinnvoll wäre im Event das mitlaufen einer Statemachine zu ermöglichen direkt als Option von LV aus sozusagen, die prüft ob direkt im Code raugesprungen werden soll, im Grunde wäre es halt nur etwas komfortabler und man müsste nicht so genau darauf achten ob man nun while oder Forschleifen verwendet und ob lange Sequenzen eingebaut werden.
Ich hatte wohl den Fehler gemacht eine Doppel-Forschleife mit Sequenzen , sozusagen 8000 Punkte und an jedem Punkt wird ein Messszenario ausgeführt, sprich Sequenz. Da diese 2 Stunden nun dieser Case abgearbeitet wird nützt mir eine zweite Schleife nichts es sei denn ich nehm die Stopfunktion aus der Applikationcontrol was ich nicht wollte. Nun ich werde das mal versuchen mit Whileschleifen umzusetzen dann kann ich den Abbruch ja über das Frontpanel steuern indem ich die Iterationszahl festlege und mit der Oderfunktion dann verknüpfe und die Stoptaste abgefragt wird. Somit liegt es also an meinen Forschleifen wo das unlocken keine Auswirkung hat es sei denn ich machs mir kompliziert und setze i im Falle von Stop auf N und baue mir mit Cases zusätzlich das sozusammen das auch die Schrittmotoren stehen bleiben Manchmal sieht man den Wald vor lauter Bäumen nicht...
Nun ja da fehlt mir wohl noch der Plan hab ja erst effektiv 3-4 Monate intensiv mit LV gearbeitet....
Ich glaube, du solltest deine Programmstruktur nochmal komplett überdenken und dich mit ner richtigen State-Machine anfreunden: Eine While-Schleife, darin ne Eventstruktur, im Timeout-Case der Eventstruktur kann man z.B. Code unterbringen, der dauernd ausgeführt werden soll (z.B. Aktualisierung von Anzeigen, ne Uhr, etc.)
Noch ein Tipp: Sequenzen sind dazu da, die Abarbeitungsreihenfolge festzulegen. Je mehr Schritte, desto unübersichtlicher...Die Reihenfolge kann man ja z.B. auch über die Verdrahtung des Fehlerclusters realisieren, wenn es sonst keine weitere Verbindung zwischen zwei VI's gibt.
Gruss
Achim
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)