Hallo!
Ich hab einen String als globale Variable, in den ich an verschiedenen Stellen Statusinformationen über meine Datenverarbeitung eintrage. Diese Statusinformationen möchte ich, sobald sie auftauchen, auf dem Frontpanel meines Main.vi s anzeigen. Sprich: Ich möchte meine globale Variable auf dem Frontpanel anzeigen.
Ist und wenn ja wie ist das machbar?
Ist machbar, mit einem Anzeigeelement auf dem FP.
(ev. musst du die globaleV. auf lesen ändern, rechte MausTaste)
BTW: Ich verwende eigentlich nie globale Variablen
Entweder hab ich Dich nicht verstanden oder Du mich.
Ich kann natürlich den Wert der globalen Variable an ein Anzeigeelement übergeben und anzeigen.
Dazu muss allerdings die Wertübergabe in meinem Main.vi ausgeführt werden.
Der Wert der String-globalen Variablen wird allerdings in diversen Sub-Vi s um weitere Einträge ergänzt und das möchte ich auf meiner Benutzeroberfläche anzeigen, sobald sich etwas am Wert der globalen Variablen ändert und nicht erst nach Abarbeitung der Sub-vi s.
Sprich: Ich möchte ein String-Anzeigeelement, das direkt auf Änderungen der globalen Variablen regiert.
Hi BTB,
dann pack den String Indicator halt in eine Schleife!
Oder:
Benutze statt der globalen Variablen eine Queue, die du im MainVI ebenfalls in einer Schleife ausliest...
Hallo Leute,
bin ziemlich neu in Sachen Programmierung. Mein Programm soll Ventile ansteuern. Nun in meinem MainVI sind ineinander gekoppelte SubVIs enthalten, die mir jeweils den istdruck in eine globale Variable reinschreiben. Ich möchte jetzt den sich laufend ändernden Wert der globalenvariable in dem MainVI anzeigen lassen! Komischer Weise wird im MainVI nicht der aktuelle Wert der globalen Variablen angezeigt. Mache ich was falsch, wenn ich einfach ein Anzeigeelment auf dem Frontpanel erstelle und den mit der globalen Variablen verdrahte?
Zum Verständnis das ein Snapscreen.
Vielen Dank, denn ich bin am Verzweifeln
Hallo,
Also laut ScreenShot wird sowohl das SubVI als auch deine Anzeigeaktualisierung 1mal pro Schleifendurchlauf ausgeführt. Soweit schonmal gut.
Läuft jetzt aber das SubVI eine Weile und du möchtest eine Druckänderung sehen, WÄHREND das SUBVI LÄUFT, dann muss das Schreiben der globalen Variable INNERHALB des SUBVIs stattfinden und das AUSLESEN PARALLEL dazu. Also am einfachsten, indem du eine 2. While-Schleife mit dem Auslesen der globalen Variable beauftragst und deine Anzeige-Elemente beschreibst.
Vorraussetzung ist natürlich, dass das SubVI die Global MEHRMALS beschreibt, und nicht einfach 1mal am Ende der Ausführung.
Außerdem könnte (d)ein hochgeladenes (Beispiel-)VI helfen...
Ich hoffe man konnte mir folgen und es war ein klein wenig hilfreich
Gruß
Der Grundgedanke von Erik ist gut: Das aktualisieren der Anzeigen in einer parallelen Schleife zu machen. Nur wäre es dann höchst sinnvoll, sich von der globalen Variablen gleich mit zu verabschieden und für die Datenübertragung von den SubVIs eine Queue einzurichten (wurde hier auch schon gesagt). Der Vorteil: Man brauchte in der Schleife kein Wait und keinen ständigen Umlauf. Die Schleife macht genau dann einen Durchlauf und aktualisiert die Anzeige sofort, wenn ein neuer Wert vorliegt.