LabVIEWForum.de
Funktionale Globale Variable - Problem - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Funktionale Globale Variable - Problem (/Thread-Funktionale-Globale-Variable-Problem)



Funktionale Globale Variable - Problem - F.Bi - 20.02.2008 07:47

Hallo

Da ich in verschiedenen Abläufen (VIs) die DIO- und AD-DA Ein-/Ausgänge ansprechen muss, will ich die Initialisierung über eine Funktionale Globale Variable machen. Zuerst habe ich das über Notifier gemacht, das funktioniert auch. Da das aber zu unübersichtlich ist, wollte ich dafür die oben genannte Funktionale Globale Variable benutzen.

Ich habe mal einige einfache Testprogramme zur Verdeutlichung erstellt.
Normale Vorgehensweise „Funktionstest-Test2.vi“ funktioniert.

Mein Problem:
Initialisierung: InitTest.vi
Messung: Funktionstest-Test1.vi
Funktionale Globale Variable: global_data_storage-ini-Test.vi
Wenn ich Funktionstest-Test1.vi aufrufe, erhalte ich Error -200429.

LabVIEW 8.5

Es ist wahrscheinlich nur eine Kleinigkeit, aber ich finde keine Lösung. :-(


Funktionale Globale Variable - Problem - jg - 20.02.2008 19:59

Hallo,

nach etwas testen und versuchen finde 2 Fehler:

1. Wenn du nichts bei deinem FGV anschließt, dann wird der Case "Write" ausgeführt, da das entsprechende Control als Default-Wert "Write" hat.
2. Hast du mal das Init-VI und das Funktionstest-VI in ein VI zusammengepackt? Dann geht es nämlich. Nehme mal an, dass das Task zwar über dein Init-VI angelegt wird, aber wenn dann LV wieder stoppt, dann wird auch das Task beendet. Ein 2. Aufruf des FGV-VI liefert dann am Ausgang nur ein leeres Task.

MfG, Jens


Funktionale Globale Variable - Problem - F.Bi - 21.02.2008 08:08

Hallo Jens,

dein zweiter Punkt trifft das Problem.
Wenn das VI beendet wird, taucht die Fehlermeldung auf.
Ich habe die zwei VIs nicht in eins gepackt, sondern mal in das Init-VI eine Sequenz gepackt, dann kommt, solange es läuft, keine Fehlermeldung mehr. Gibt es dafür eine logische Erklärung bzw. was noch besser wäre, eine sinnvollere Lösung als das VI nicht zu beenden?

Der erste Punkt trifft allerdings nicht zu. Default ist Read, deshalb muss zum Lesen der GFV der Read/Write Anschluss nicht belegt werden. Wenn ich bei AD_Sample-Anzahl einen Wert schreibe, dann kann ich diesen auch auslesen. Das Problem taucht auch bei PCI6229-Counter nicht auf, sondern nur bei den Tasks auf.