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!
17.06.2006, 10:03 (Dieser Beitrag wurde zuletzt bearbeitet: 17.06.2006 10:04 von Lucki.)
' schrieb:(Lokale) Variablen werden in LabVIEW etwas anders behandelt als in textuellen Programmiersprachen wie C. Ein lokale Variable dient nur als Stellvertreter eines Bedien- bzw. Anzeigeelements und ist (bis auf wenige Ausnahmen) nur ein Ersatz für eine Verdrahtung zwischen zwei Blöcken.
Ich würde sagen: Lokale Variablen in LabVIEW sind etwas völlig anderes als in textorientierten Programmiersprachen. Außer dem Namen habe beide nichts miteinander gemein. In einer textorientierten Programmiersprache habe ich auf eine Variable jederzeit an mehreren Stellen das Programms Zugriff, lesend und schreibend. In LabVIEW habe ich das nicht, und wenn ich das will, muß ich eine "lokale Vatiable" anlegen, die unzutreffenderweise leider so benannt ist und eigentlich besser "Variablenkopie" heißen müßte. Die lokale Variable in LabVIEW ist also für etwas erforderlich, was in einer textorientierten Sprache ganz unspektakulär mit Lesen oder Schreiben funktionert, ohne daß ich dafür etwas Besonderes Kreiren muß.
Exakt vergleichbar mit lokalen Variablen einer Textsprache sind in LabVIEW nach außen hin nicht angeschlossene Bedien- oder Anzeigeelemente (mit zusätzlichen "lokalen Variablen"), sowie (initialisierte) Schieberegister.
' schrieb:Exakt vergleichbar mit lokalen Variablen einer Textsprache sind in LabVIEW nach außen hin nicht angeschlossene Bedien- oder Anzeigeelemente (mit zusätzlichen "lokalen Variablen"), sowie (initialisierte) Schieberegister.
@Lucki:
Das sehe ich anders. Exakt gesehen entsprechen meines Erachtens nach eher die Datenleitungen in LabVIEW den Variablen textueller Programmiersprachen. Bedien- und Anzeigeelemente hingegen könnte man am ehesten mit Strukturen bzw. Klassen (bei OOP) vergleichen.
@blitzgeist:
Ich kann deine Fehlermeldung bei mir leider nicht reproduzieren. Soll heissen, bei mir tut das wie's soll. Hast du denn einen Pfad übergeben? Die von dir genannte GPIB-Fehlermeldung kenne ich bei Problemen mit fehlenden oder falschen Referenzen auf Dateien bzw. ActiveX-Objekten.
der kopier-part, funktioniert nun fehlerfrei. habe es so realisiert, wie gepostet (jetzt unter LV v8.0).
habe dies getestet mit einem test-string. doch das problem liegt nun an der stelle, welche mit einem roten punkt markiert ist: dort gelangen die daten (messdaten, aufgelistet in einem string-array; überprüft mit einer sonde im betrieb) nicht an. Vor der case-anweisung sind sie noch vorhanden. woran liegt das?
danke für tips
gruß Timo
19.06.2006, 18:39 (Dieser Beitrag wurde zuletzt bearbeitet: 19.06.2006 18:40 von Lucki.)
' schrieb:Komisches Beispiel: Es erzeugt die Zahlenfolge 0,1,3,6,10,15 und ist wohl nicht das, was blitzgeist wollte
Hier hatte ich mich geirrt und würde die Nachricht gern editieren oder löschen. Leider geht das mit der neuen Board- Supersoftware nicht mehr. Liebe LV-Gemeinde, helft mir, veschließt bitte die Augen und betrachtet die Nachricht als nicht existierend.
Hast du dir das ganze schonmal angesehen, wenn die Highlight-Funktion aktiv ist? Also die "Glühbirne" in der Leiste oben an ist? Stoppt dein Programm denn, läuft es komplett durch aber hat die Daten nicht, oder läuft es scheinbar endlos weiter?
Gruß, Niko
God is Real - unless declared as Integer.
20.06.2006, 08:36 (Dieser Beitrag wurde zuletzt bearbeitet: 20.06.2006 08:38 von Achim.)
offensichtlich hast du ja im FALSE-Case der äußeren Struktur nichts an den Ausgang angeschlossen; sichtbar am nicht ausgefüllten "Kästchen". Kann es sein, dass sich dein VI im falschen Case ("leerer String") verirrt? Schließ doch mal bei FALSE nen Dummy an und guck was passiert...mal so ins Blaue...
Gruss
Achim
PS: Mach mal nen Rechtsklick auf den Ausgang...
"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)
die Highlight-Funktion ist je echt abgefahren =) ... doch das Problem ist folgendes: ich starte die Messung mit einem button-Impuls, der geht in den true-Zeig einer case-Anweisung und dort spielt die Messung in einer Sequenz ab. Die Messwerte liegen dann in einem string-array, welches sich in der case-Anweisung, besser noch in einer while-Schleife, welche ebenfalls in der case-Anweisung ist. Diese Messwerte müssen nun irgendwie aus der case-Anweisung herausgeführt werden, damit ich sie dann der "in Datei speichern Sequenz übergeben kann". Sobald die Sequenz in der case-Anweisung zu ende ist ist die case-Anweisung false (da ja nur mit einem Impuls, sprich button-Klick die Messung gestartet wird) und danach der false-Zweig aktiv ist und ich somit nicht mehr an das string-array herankomme.
Leute ich habs! Bin mir zwar nicht sicher ob es die sauberste Lösung ist aber sie hat Funktion. Habe ein den false-Zweig der der aäßersten case-Anweisung eine lokale "Variable" der Messwerte angelegt und diese der Kopier-Sequenz, welche ebenfalls in dem false-Zweig ist zugeführt. Klingt eigendlich nach einer sehr simplen Lösung, hat aber lange geauert, bis ich es geblickt habe. Wie geasgt ob es die sauberste Realisierung ist, stelle ich in Frage aber es geht.
Danke für eure mithilfe in diesem thread.