LabVIEWForum.de
Globale Variable auf Standardwert zurücksetzen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Globale Variable auf Standardwert zurücksetzen (/Thread-Globale-Variable-auf-Standardwert-zuruecksetzen)



Globale Variable auf Standardwert zurücksetzen - Diplomer - 17.01.2007 02:30

Hallo,

ich übertrage über eine globale Variable ein Cluster mit Mess- und Zustandsdaten aus einem SubVI an eine parallellaufende Schleife im Hauptprogramm. An das Cluster habe ich eine Case angeschlossen wodurch weitere Programme ausgeführt werden sollen.
Nun ist es so, dass ich bei einem Stop im Hauptprogramm extra auch das Sub stoppe ('while-inside'Wink und alles wird schön beendet. Bei erneutem Aufruf hat die globale Variable allerdings noch die alten Werte geladen und löst sofort das Case aus und versaut mir meinen Messablauf....

...kann ich die globale Variable zu Beginn der Messung irgendwie zurück auf den Standartwert setzen?

Für's Hauptprogramm könnte ich diese Funktion auch gebrauchen, damit alle Anzeigefelder zunächst leer sind (Standart-Einstellung).
Zur Zeit tipp ich mich jedes Mal durch die Anzeigeleiste bzw. öffne das GlobaleVariable.vi aus OrdnerXY und setzt das dann auch zurück....


solche "Kleinigkeiten" können in der "Testphase" bei Laufzeiten von 30min-24h/Messung echt nerven...


Gruß David



P.S.: Ich weiß, dass Globale Variablen nicht unbedingt die beste Lösung sind, nur werd ich daran nichts mehr ändern! - hoffentlich


Globale Variable auf Standardwert zurücksetzen - cb - 17.01.2007 07:09

' schrieb:Hallo,

ich übertrage über eine globale Variable ein Cluster mit Mess- und Zustandsdaten aus einem SubVI an eine parallellaufende Schleife im Hauptprogramm. An das Cluster habe ich eine Case angeschlossen wodurch weitere Programme ausgeführt werden sollen.
Nun ist es so, dass ich bei einem Stop im Hauptprogramm extra auch das Sub stoppe ('while-inside'Wink und alles wird schön beendet. Bei erneutem Aufruf hat die globale Variable allerdings noch die alten Werte geladen und löst sofort das Case aus und versaut mir meinen Messablauf....

...kann ich die globale Variable zu Beginn der Messung irgendwie zurück auf den Standartwert setzen?

Für's Hauptprogramm könnte ich diese Funktion auch gebrauchen, damit alle Anzeigefelder zunächst leer sind (Standart-Einstellung).
Zur Zeit tipp ich mich jedes Mal durch die Anzeigeleiste bzw. öffne das GlobaleVariable.vi aus OrdnerXY und setzt das dann auch zurück....
solche "Kleinigkeiten" können in der "Testphase" bei Laufzeiten von 30min-24h/Messung echt nerven...
Gruß David
P.S.: Ich weiß, dass Globale Variablen nicht unbedingt die beste Lösung sind, nur werd ich daran nichts mehr ändern! - hoffentlich

ziehe eine "Stacked Sequence" um dein Programm und schreibe ein False in die Globale Variable entweder im 1. oder im letzten Rahmen. Damit wird beim Beenden oder Starten des Programms deine Stop-Variable zurückgesetzt.

Ja, das ist eine der wenigen Anwendungen wo eine Stacked Sequence richtig (im Sinne des Erfinders) einzusetzen istSmile


Globale Variable auf Standardwert zurücksetzen - Diplomer - 17.01.2007 11:57

...das ist natürlich eine Möglichkeit...nur (ich benutze nur gestapelte Sequenzen 'duck'Wink will ich nicht noch mehr Rahmen in meinem Hauptvi haben - ich hab z.Zt. 3 Whileschleifen mit X verschachtelten Cases, Whiles & Seqs...

gibt es nicht vielleicht einen Methodenknoten o.ä. mit dem ich gleich alles (Hauptprogramm & globaleVariablen) zurücksetzen kann? Den müsste ich dann nur ein außerhalb der Hauptschleifen aufrufen...

Gruß David

...ähm...wenn ich eh was außerhalb der Hauptschleifen aufrufen würde, könnte dies doch auch das Nullsetzen der GlobalenV sein, müsste dann ja eigentlich auch nur einmal ausgeführt werden... nur fürs Haupt.vi allgemein ist das auch noch keine Lösung ....trotzdem gleich mal ausprobieren....


Globale Variable auf Standardwert zurücksetzen - cb - 17.01.2007 16:06

' schrieb:...das ist natürlich eine Möglichkeit...nur (ich benutze nur gestapelte Sequenzen 'duck'Wink will ich nicht noch mehr Rahmen in meinem Hauptvi haben - ich hab z.Zt. 3 Whileschleifen mit X verschachtelten Cases, Whiles & Seqs...

gibt es nicht vielleicht einen Methodenknoten o.ä. mit dem ich gleich alles (Hauptprogramm & globaleVariablen) zurücksetzen kann? Den müsste ich dann nur ein außerhalb der Hauptschleifen aufrufen...

Gruß David

...ähm...wenn ich eh was außerhalb der Hauptschleifen aufrufen würde, könnte dies doch auch das Nullsetzen der GlobalenV sein, müsste dann ja eigentlich auch nur einmal ausgeführt werden... nur fürs Haupt.vi allgemein ist das auch noch keine Lösung ....trotzdem gleich mal ausprobieren....

GUT, dass du dich gleich geduckt hast!

ersetze die gestapelten Sequenzen deines "Programms" durch eine vernünftige State Machine, dann hast du nur noch die Sequenz um die "Haupt-Statemachine" und obendrein noch ein gut strukturieres BlockdiagrammBig Grin

Sicher gibt es einen Methodenknoten: öffne eine Referenz auf die Globale Variable, hangle dich durch alle Controls, finde das, das du brauchst und setz es auf den Wert (per Propery oder der Methode "reinit to default") den du haben willst ... und vergiss nicht die Referenzen nachher wieder zu schließen. Ist zwar übelster Spaghetticode, aber watt solls <Hände in Unschuld wasch>


Globale Variable auf Standardwert zurücksetzen - Kopmann - 17.01.2007 18:12

Hallöchen,

wenn du unbedingt lokale Variablen benutzen willst dann gehe auf die Lokale Variable (Eingabe oder Ausgabe) -> Eigenschaftsknoten -> Wert.
Diesen musst du dann in lesen ändern. Setze eine Konstante davor und bei jedem Durchlauf wird der Wert auf diese zurückgesetzt.

Oder wie schon erwähnt eine Sate Machine verwenden schau dir dazu mal meinen Beitrag (Frage!). Signalverarbeitung die dritte an. Dort findest du eine tolle Anwendung. Zumindest was das Suchen von Punkten angeht und das manipulieren von diesen.

Gerrit

Beispiel im Anhäng


Globale Variable auf Standardwert zurücksetzen - Diplomer - 17.01.2007 19:27

es läuft soweit, und daher werd ich keine State mehr einbauen, das tu ich mir nicht mehr an - das nächste mal werde ichs aber ganz bestimmt beachten. Jetzt habe ich noch 1 Monat für meine DA und da will ich nurnoch testen und "kleine" Fehler korigieren und natürlich schreiben, schreiben, schreiben....

den Methodenknoten werd ich morgen gleich mal austesten, den Eigenschaftsknoten auch - ich hab aber ein Problem mit Globalen und nicht lokalen Variablen, vielleicht klappts trotzdem.

Danke für die Tip und ich gelobe Besserung

David


Globale Variable auf Standardwert zurücksetzen - cb - 17.01.2007 20:12

' schrieb:es läuft soweit, und daher werd ich keine State mehr einbauen, das tu ich mir nicht mehr an - das nächste mal werde ichs aber ganz bestimmt beachten. Jetzt habe ich noch 1 Monat für meine DA und da will ich nurnoch testen und "kleine" Fehler korigieren und natürlich schreiben, schreiben, schreiben....

den Methodenknoten werd ich morgen gleich mal austesten, den Eigenschaftsknoten auch - ich hab aber ein Problem mit Globalen und nicht lokalen Variablen, vielleicht klappts trotzdem.

Danke für die Tip und ich gelobe Besserung

David

ich meinte durchaus eine Globale Variable. Auf die Global kann man genauso eine Referenz erzeugen wie auf ein VI, für den VI Server ist das Quasi ein VI ohne Blockdiagramm ...

Ah, DA:)so hat's bei mir auch angefangen ... ich gebs ja zu, das mit der Statemachine hab ich auch erst 2 Monate nach der DA gelerntWink