27.03.2007, 14:36
Beitrag #1
|
Tholo
LVF-Neueinsteiger
Beiträge: 7
Registriert seit: Mar 2007
9.0.1.
2006
DE
Deutschland
|
Frontpanel nimmt keine Eingabe an
Hallo,
Ich habe ein Problem. Eine Kollege und ich arbeiten an einem mittelgroßen Programm was sich mit auslesen von Messdaten beschäftigt. Unsere Oberfläche ist eine Registerkarte und diese steuern wir mit einer Ereignisstruktur an. Da die Messdaten kontinuierlich ausgelesen und angezeigt werden sollen, lies sich meiner Meinung nach eine Whileschleife innerhalb eines Ereignisses nicht vermeiden. (Auch wenn ich hier gelesen habe, dass das keine gute Lösung ist Whileschleifen in Ereignisstrukturen einzubauen)
Nun ist das Problem, dass bei einem Messablauf das Frontpanel nicht mehr reagiert, also sich unser Anhalt-Button nicht drücken lässt. Das Häckchen bei "Frontpanel bis zum Ausführungsende des Ereignis-Case sperren" ist schon raus, also daran liegt es schon einmal nicht. Der Button der die Messung anhalten soll, ist per Referenz->Eigenschaftsknoten in die Whileschleife eingebaut. Das kuriose ist, dass es schon einmal funktioniert hat, also es nicht unmöglich sein kann, es so zu lösen. Nur leider geht es jetzt nicht mehr und die zwei zu vergleichenden Backupdateien beinhalten einen ganzen Tag arbeit und ich finde einfach die Änderung nicht, die diesen Effekt ausgelöst haben könnte.
Für Anregungen wäre ich sehr dankbar, da ich nun schon mehrere Stunden in die Fehlersuche investiert habe.
MfG
Tholo
|
|
|
27.03.2007, 14:54
Beitrag #2
|
Wiggi
LVF-Gelegenheitsschreiber
Beiträge: 99
Registriert seit: Aug 2006
7.1
2005
kA
Deutschland
|
Frontpanel nimmt keine Eingabe an
' schrieb:Hallo,
Ich habe ein Problem. Eine Kollege und ich arbeiten an einem mittelgroßen Programm was sich mit auslesen von Messdaten beschäftigt. Unsere Oberfläche ist eine Registerkarte und diese steuern wir mit einer Ereignisstruktur an. Da die Messdaten kontinuierlich ausgelesen und angezeigt werden sollen, lies sich meiner Meinung nach eine Whileschleife innerhalb eines Ereignisses nicht vermeiden. (Auch wenn ich hier gelesen habe, dass das keine gute Lösung ist Whileschleifen in Ereignisstrukturen einzubauen)
Nun ist das Problem, dass bei einem Messablauf das Frontpanel nicht mehr reagiert, also sich unser Anhalt-Button nicht drücken lässt. Das Häckchen bei "Frontpanel bis zum Ausführungsende des Ereignis-Case sperren" ist schon raus, also daran liegt es schon einmal nicht. Der Button der die Messung anhalten soll, ist per Referenz->Eigenschaftsknoten in die Whileschleife eingebaut. Das kuriose ist, dass es schon einmal funktioniert hat, also es nicht unmöglich sein kann, es so zu lösen. Nur leider geht es jetzt nicht mehr und die zwei zu vergleichenden Backupdateien beinhalten einen ganzen Tag arbeit und ich finde einfach die Änderung nicht, die diesen Effekt ausgelöst haben könnte.
Für Anregungen wäre ich sehr dankbar, da ich nun schon mehrere Stunden in die Fehlersuche investiert habe.
MfG
Tholo
Nur ne Idee..
kannst du nicht "Auslesen" und "Haltbutton" in zwei seperate While schleifen legen die parallel abgearbeitet werden?
Du solltest dann mit dem Haltebutton einen Eigenschaftsknoten einrichten, der auch die Whileschleife des Messvorgangs beendet.
MfG
Wiggi
|
|
|
27.03.2007, 15:00
Beitrag #3
|
|
|
27.03.2007, 15:01
Beitrag #4
|
Tholo
LVF-Neueinsteiger
Beiträge: 7
Registriert seit: Mar 2007
9.0.1.
2006
DE
Deutschland
|
Frontpanel nimmt keine Eingabe an
Juhu ich hab's geschafft.
Irgendwie hat ein Häckchen in einem anderen Ereignis wohl Einfluss genommen auf meinen Mess-Case und damit das Panel gesperrt. Hab jetzt für alle Cases das Häckchen rausgenommen und es funktioniert. Jetzt mach ich erstmal Feierabend und morgen schau ich dann welcher Case das Problem war.
Danke und schönen Feierabend.
MfG
Tholo
|
|
|
27.03.2007, 15:04
Beitrag #5
|
Mr.T
LVF-SeniorMod
Beiträge: 1.007
Registriert seit: Jun 2005
2009
2005
kA
88400
Deutschland
|
Frontpanel nimmt keine Eingabe an
Würde mich mal interessieren, ob es in LV ein "Vergleichstool" gibt...
Hallo!
Welche Operation führt denn der Stopp-Button aus? Latch? A ne! hast ja nen Eigenschaftsknoten gemacht...Hmmm.
Poste doch mal den relevanten Teil!
Prinzipiell würde ich aber tatsächlich die Messung in eine parallele Schleife stecken, und diese von der Ereignisstruktur aus "triggern". Dann hast Du auch dieses Problem nicht!
Gruß
Mit einem freundlichen Wort und etwas Gewalt erreicht man viel mehr als nur mit einem freundlichen Wort. [...Marcus zu Lennier, B5]
|
|
|
28.03.2007, 07:17
Beitrag #6
|
Achim
*****
Beiträge: 4.223
Registriert seit: Nov 2005
20xx
2000
EN
978xx
Deutschland
|
Frontpanel nimmt keine Eingabe an
' schrieb:Würde mich mal interessieren, ob es in LV ein "Vergleichstool" gibt...
Gibt es...
http://zone.ni.com/reference/en-XX/help/37...are_options_db/
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)
|
|
|
28.03.2007, 09:56
Beitrag #7
|
Tholo
LVF-Neueinsteiger
Beiträge: 7
Registriert seit: Mar 2007
9.0.1.
2006
DE
Deutschland
|
Frontpanel nimmt keine Eingabe an
Das Vergleichstool hab ich schon benutzt gehabt, nur der Nachteil ist, dass LabVIEW es nicht zulässt verschiedene gleichnamige SubVIs gleichzeitig zu öffnen. Außerdem waren über 1340 Änderungen eingetragen und das hätte ewig gedauert.
Ansonsten würde mich mal noch interessieren, wie man einen kontinuierlichen Messablauf sauber programmieren kann ohne eine ungeliebte While-Schleife in die Ereignisstruktur zu packen bzw. auch was so schlimm daran ist?
Auf horizonterweiternde Antworten würde ich mich freuen.
Tholo
|
|
|
28.03.2007, 10:05
Beitrag #8
|
Achim
*****
Beiträge: 4.223
Registriert seit: Nov 2005
20xx
2000
EN
978xx
Deutschland
|
Frontpanel nimmt keine Eingabe an
' schrieb:Ansonsten würde mich mal noch interessieren, wie man einen kontinuierlichen Messablauf sauber programmieren kann ohne eine ungeliebte While-Schleife in die Ereignisstruktur zu packen bzw. auch was so schlimm daran ist?
Stichwort: State Machine
Die While-Schleife ist nicht ungeliebt. Sie ist sogar "lebensnotwendig" für ein LV-Programm...Nur ist ein Event im Normalfall ein kurzzeitiges Auftreten einer Bedingung, die etwas anderes anstößt, z.b. nen Zustandswechsel. Ein fortdauernder Vorgang (kontinuierliches Datenlesen) im Eventcase ist einfach schlechter Programmierstil! Man kann das Eventcase ja auch "winzig klein" machen und die Datenerfassung daneben in der gleichen Schleife machen...das ist auf jeden Fall besser und sauberer.
Mir fehlt jetzt grad ein bisschen die Zeit...
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)
|
|
|
| |