Hallo zusammen,
mein Senf zum Thema:
- Globale Variablen führen schnell zu bestimmten Problemen (u.a. Race Conditions), weshalb man sich genau überlegen sollte, ob man sie nutzt.
- Ich selbst habe seit 10+ Jahren keine globalen Variablen mehr benutzt…
- Es gibt im NI-Forum dazu die Meinung, dass es für kleinere Projekte durchaus sinnvoll sein kann, globale Variablen zu nutzen. Hier wird dann aber konkret der Anwendungsfall "WORM" (Write Once, Read Many) genannt: eine globale Variable (meist für Konfigurationsdaten) zu Beginn des Programms beschreiben und später dann gern auf diese Daten lesend zugreifen…
Um deine Frage zu beantworten:
Zitat:Wie ist die korrekte Vorgehensweise für Erstellung und Benutzen von globale Variablen?
Erstellen:
- In der Funktionspalette mit den Strukturen findest du auch eine globale Variable. Diese einfach in dein Blockdiagramm ziehen, dann doppelklicken und fertig konfigurieren (d.h. einen Datentyp einstellen). Dann die globale Variable als VI in deinem Projekt speichern.
Benutzen:
- Die globale Variable (bzw. deren VI) aus deinem Projekt in ein VI/Blockdiagramm ziehen.
- Das VI einer globalen Variablen kann mehrere solchre Variablen aufnehmen: dann muss man noch die richtige Variable auswählen, wenn man das "globale VI" ins Blockdiagramm zieht…
Mögliche Probleme:
- Race Conditions
- ver-/behindert deine Programmierung, wenn du mal plötzlich mehrere "Objekte" hast, die alle ihre eigene globale Variable benötigen. Beispiel: du schreibst einen Gerätetreiber, der wichtige Daten in einer globalen Variablen speichert. Dann willst du plötzlich mehrere dieser Geräte gleichzeitig benutzen: wo bekommst du nun voneinander unabhängige globale Variablen her!? (Stichwort zur Lösung: OOP…)
Edi:
- Zeige uns bitte deinen konkreten Anwendungsfall, damit wir bessere Tipps geben können!
- Bitte keine PNs schicken, wenn du Antworten in einem Thread haben willst. Technische Diskussionen bitte immer im Forum…
Zitat:Wenn ich im Fronpanel eine Variable erstelle, dann entsteht im Blockdiagramm auch eine Variable.
So, wie du es hier beschreibst, hast du aber eben keine Variable angelegt!
Du hast im Frontpanel ein Control (oder einen Indicator) erzeugt und siehst im Blockdiagramm dessen Terminal!
Bitte (nochmal) die LabVIEW-Grundlagen durcharbeiten und wenigsten die Grundbegriffe erlernen (wie Control, Indicator, Terminal)…