Ein nicht initialisierte Shift-Register behält den Wert seit dem letzten Aufruf des VIs - zumindest solange es im Speicher/RAM ist. Das sollte eigentlich zum Verständnis langen.
(29.04.2013 15:47 )Hasenfuss schrieb: Mein Problem liegt darin - eine FGV ist - so wie ich es verstanden habe - keine wirkliche globale Variable, sondern ein VI mit einer while-Schleife mit einem case, der zwei Befehle kennt, z.B. "Schreiben" und "Lesen". Auf dem Frontpanel hab ich ein Enum mit den beiden Befehlen als Bedienelement. Dann hab ich ein Bedienelement und ein Anezigeelement, beide vom gleichen Typ, z.B. einen String, die ich Eingang und Ausgang nenne.
Stimmt nur bedingt. Du kannst auch mehr als 2 Befehle haben, und der Ein- und Ausgang müssen auch nicht identisch sein.
(29.04.2013 15:47 )Hasenfuss schrieb: Jetzt rufe ich das VI FGV einmal von einem übergeordnetem VI auf, setze eine Variable und den Enum-Befehl "Schreiben", dann wird das VI FGV wieder beendet. Rufe ich nun an einer anderen Stelle das VI FGV wieder auf mit dem Befehl "Lesen" - da verstehe ich grad etwas nicht - bleibt das VI - trotzdem es einmal beendet wurde, noch mit dem Wert im Speicher bestehen?
s. oben.
(29.04.2013 15:47 )Hasenfuss schrieb: Bei Signalgraphen hatte ich früher manchmal das Problem, dass Anzeigeninhalte da blieben. Entweder konnte ich die Historie im Eigenschaftsknoten löschen oder bei Neustart den Haken "Bei Neustart Anzeigeninhalte löschen" setzen. Darf ich diesen Haken bei einer FGV nicht setzen?
s. oben, der Zwischenspeicher ist das Shift-Register, nicht die Controls.
Allgemein: FGVs sind der erste Zugang zu objekt-orientiertem Programmieren in LabVIEW. Vgl. dazu auch die Folien, auf die dich
Gerd heute hingewiesen hat.
Gruß, Jens