23.08.2010, 15:07
Beitrag #1
|
lennox_mcdough
LVF-Neueinsteiger
Beiträge: 9
Registriert seit: Aug 2010
2012
2010
EN
8010
Oesterreich
|
Einstellungen laden ohne Verwendung von Variablen
Hallo,
ich habe ein Problem ähnlich diesem hier: http://www.labviewforum.de/index.php?showt...;hl=eingabefeld
Ich habe mein Programm jetzt soweit, dass es fertig ist, sich richtig timed und man auch alle Einstellungen, die man vornehmen kann, gleichzeitig in den Header des Messfiles geschrieben wird. Der Header ist knapp 40 Zeilen lang, sind auch einige Einstellungen. Jetzt komme ich aber auf ein Problem:
Ich würde gerne die Funktion "Einstellungen laden" einbauen: Das Programm soll den Header lesen und die Eingabefelder auf die Werte, die im Header vorliegen, setzen. Das ganze möchte ich aber falls möglich OHNE die Verwendung von Variablen machen. Ist das möglich, und wenn ja, wie?
lg tobi
|
|
|
23.08.2010, 15:15
Beitrag #2
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Einstellungen laden ohne Verwendung von Variablen
Verstehe ich richtig, du willst (bei Bedarf oder als Default bei Programmstart) irgendwelche Settings aus einer Datei lesen und damit deine Controls im Frontpanel belegen?!
In diesem Fall ist es vollkommen legitim, eine lokale Variable des Controls anzulegen und "zu beschreiben". Sehr viel anderes bleibt auch nicht übrig auf Grund des Datenflusskonzeptes von LabVIEW, schließlich willst du noch irgendwas einstellen können im FP - das Element muss also ein Eingabeelement sein - und somit ist es im BD automatisch eine Datenquelle. Beschreiben kannst du das nur über eine lokale Variable.
(OK, man könnte noch die PropertyNode "Value" nehmen, aber das frisst mehr Resourcen).
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
23.08.2010, 15:15
(Dieser Beitrag wurde zuletzt bearbeitet: 23.08.2010 15:26 von Falk.)
Beitrag #3
|
|
|
23.08.2010, 15:25
Beitrag #4
|
lennox_mcdough
LVF-Neueinsteiger
Beiträge: 9
Registriert seit: Aug 2010
2012
2010
EN
8010
Oesterreich
|
Einstellungen laden ohne Verwendung von Variablen
' schrieb:Verstehe ich richtig, du willst (bei Bedarf oder als Default bei Programmstart) irgendwelche Settings aus einer Datei lesen und damit deine Controls im Frontpanel belegen?!
In diesem Fall ist es vollkommen legitim, eine lokale Variable des Controls anzulegen und "zu beschreiben". Sehr viel anderes bleibt auch nicht übrig auf Grund des Datenflusskonzeptes von LabVIEW, schließlich willst du noch irgendwas einstellen können im FP - das Element muss also ein Eingabeelement sein - und somit ist es im BD automatisch eine Datenquelle. Beschreiben kannst du das nur über eine lokale Variable.
(OK, man könnte noch die PropertyNode "Value" nehmen, aber das frisst mehr Resourcen).
Gruß, Jens
Es geht z.B. um das Einstellen der Parameter an einem Lock-In Verstärker. Für die Modulationsfrequenz kann sein dass einer Aus der Arbeitsgruppe eine Mod-Freq von 137 Hz braucht und einer eine Mod-Freq von 5000 Hz. Sind wie gesagt ziemlich viele Variablen.
Das Problem das ich habe ist, dass ich das FP fertig habe: In jedem Tab im FP wird ein Gerät angesteuert (Lock-In, Gasmischer, Thermostat). Die Datenfluss und -verarbeitung schaut so aus, dass ich alle Einstellungen für ein Gerät clustere und dann im BD an eine SubVI übergebe. Diese SubVI ist aber so gestaltet, dass dort wieder ein FP vorliegt, sodass man die SubVI als eingenständige VI benutzen kann. Wenn ich also nun die Eingabeelemente in der SubVI mit Variablen ersetze fehlen mir ja in der SubVI diese Elemente und ich kann die SubVI nicht mehr eigenständig verwenden.
Ich scheue mich auch ein wenig vor der Verwendung von Variablen, denn wenn ich mich richtig erinnere, hieß es in de LabVIEW CORE Kursen immer, man solle auf Variablen soweit wie möglich verzichten.
lg tobi
|
|
|
23.08.2010, 15:44
(Dieser Beitrag wurde zuletzt bearbeitet: 23.08.2010 15:46 von cb.)
Beitrag #5
|
cb
LVF-SeniorMod
Beiträge: 1.731
Registriert seit: Feb 2006
2018SP1
2001
EN
40xxx
Deutschland
|
Einstellungen laden ohne Verwendung von Variablen
wenn es dir darum geht, dass du beim Programmieren nicht für jedes Control eine lokale Variable ins Block-Diagramm legen musst, dann kann man sich dadurch behelfen, in dem man programmatisch die Referenzen auf die Controls erzeugt und die Werte per Property Node schreibt:
http://www.labviewforum.de/index.php?s=&am...st&p=104566
' schrieb:Ich scheue mich auch ein wenig vor der Verwendung von Variablen, denn wenn ich mich richtig erinnere, hieß es in de LabVIEW CORE Kursen immer, man solle auf Variablen soweit wie möglich verzichten.
das ist durchaus richtig, aber: du hast ja keine andere Möglichkeit, wenn du die Controls auf einen bestimmten Wert setzen willst, als das über lokale Variablen oder Property Nodes zu erledigen, und darauf zu verzichten die Controls mit einem bestimmten Wert zu belegen, nur weil man dafür lokale Variablen oder Property Nodes braucht ist ja irgendwie auch keine Option ... in diesem Fall hat mal also immer eine gute Ausrede, warum man sie doch benutzt
|
|
|
30.08.2010, 16:15
Beitrag #6
|
lennox_mcdough
LVF-Neueinsteiger
Beiträge: 9
Registriert seit: Aug 2010
2012
2010
EN
8010
Oesterreich
|
Einstellungen laden ohne Verwendung von Variablen
Danke.
Hab jetzt alles umgebaut und stehe vor dem nächsten Problem. Der Programmatische Aufbau schaut jetzt so aus:
1) Man startet man das Programm, dies läuft zuerst in einer Schleife. Da wartet zB. auch eine Event-Structure, falls man was laden will. Die Event-Structure ruft eine subVI auf, die den String vom Header eines Messfiles scannt und alle gescannten Variablen auf die globale Variable überträgt.
2) Drückt man auf "Messung starten", beendet man diese Schleife, man durchläuft eine Sequenz mit der man die Werte der Eingabefelder (!) auf die globalen Variablen überträgt
und dann beginnt die Messung. (Nachdem man auf einen gemeinsamen Start-Tick gewartet hat).
Jetzt kommt das Problem: Wenn ich nun mit der Event Structure die Werte in die globalen Variablen (3 Stück, je Instrument eine) schreibe ändere ich damit aber nicht die Werte der Eingabefelder. Starte ich nun die Messprozedur werden die globalen Felder ja wieder auf die Default-Values des Front Panel gesetzt. In einem anderen Programm (nicht von mir) funktioniert da, aber da waren das lokale Variablen, und die kann ich nicht verwenden, da ich viele subVIs brauche.
lg tobi
|
|
|
30.08.2010, 21:51
Beitrag #7
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Einstellungen laden ohne Verwendung von Variablen
Also - entweder du überträgst beim Laden von einer externen Datei die Einstellungen auf die FP-Controls (z.B durch Schreiben in eine lokale Variable) oder du merkst dir irgendwie, ob der User jetzt Einstellungen selber vorgenommen hat oder Einstellungen geladen hat. Im zweiten Fall werden halt die Werte aus deinem FP nicht in die globalen Variablen übertragen.
Ich würde lieber die Einstellungen beim Laden auch im FP anzeigen, denn dann kann der User ein Setup laden und dieses noch partiell abändern. Den Übertrag musst du dann halt programmieren, da bleibt dir nichts anderes übrig.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
| |