LabVIEWForum.de - Variable auf mehreren Registerkarten anzeigen

LabVIEWForum.de

Normale Version: Variable auf mehreren Registerkarten anzeigen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo an alle,

ich mochte über Registerkarten verschiedene Betriebsarten visualisieren.
Nun gibt es Variablen, welche auf mehr als einer Registerkarte angezeigt werden sollen, z.B. eine Raumtemperatur.

Ist es möglich, eine Art "globales Anzeigefeld" zu erstellen, welchem ich an einer Stelle im Blockdiagramm einen Wert zuweise und dieses Anzeigefeld an verschiedenen Stellen des Frontpanel anzuzeigen?

Oder braucht es für jede Anzeige ein Anzeigefeld, welches ich dann mit der lokalen Variable verschalte?

MfG Nico
Hallo Nico,

Zitat:Ist es möglich, eine Art "globales Anzeigefeld" zu erstellen, welchem ich an einer Stelle im Blockdiagramm einen Wert zuweise
Ja.

Zitat:und dieses Anzeigefeld an verschiedenen Stellen des Frontpanel anzuzeigen?
Nein.
Bzw. Jein: du kannst bei einer numerischen Anzeige (z.B. bei Schiebern) zusätzliche Anzeigen sichtbar machen. Diese zeigen den selben Wert wie das "Original", können aber woanders platziert werden. Und man kann sie wiederum bei "customizen" durch einen anderen Schieber ersetzen, bei dem man dann eine weitere numerische Anzeige sichtbar macht usw.

Zitat:Nun gibt es Variablen, welche auf mehr als einer Registerkarte angezeigt werden sollen, z.B. eine Raumtemperatur.
Du musst einfach diesen Indikator über der Registerkarte platzieren.
Dazu einfach mit den Cursortasten (nicht mit der Maus!) über die Registerkarte schieben und evtl. die Z-Anordnung im Menü anpassen (Vorder-/Hintergrund)…

Zitat:Oder braucht es für jede Anzeige ein Anzeigefeld, welches ich dann mit der lokalen Variable verschalte?
Sowas geht natürlich auch - aber warum willst du lokale Variablen nutzen?
Hallo Gerd,

danke für deine Antwort(en).

Ich habe führe von einem Kollegen ein Projekt weiter.
Es ist sehr komplex, deshalb kann ich manche Dinge in LV nicht einfach mal schnell ändern.
Also wenn z.B. einer sagt "Registerkarten sind doof", dann kann ich das nicht einfach umprojektieren.

Für meine Anlage gibt es verschiedene Betriebsarten, jede wird auf einer eigenen Registerkarte visualisiert.
Jetzt möchte ich bei zwei dieser Betriebsarten ein paar Temperaturen anzeigen lassen.
Da habe ich mir natürlich Gedanken gemacht, wie lasse ich eine Temperatur auf 2 Registerkarten anzeigen.

Bei mir sieht es grob so aus:
Ich habe eine While-Schleife, die kontinuierlich abläuft.
Darin einen Case. Im Case 1 wird die Temperatur gelesen und in eine Variable geschrieben.
Abhängig von der angezeigten Registerkarte wird Case 2 oder 3 ausgeführt. In beiden soll die Temperatur angezeigt werden.
Danach wird wieder Case 1 ausgeführt, danach wieder 2 oder 3,...

Im Case 2 bzw. 3 verwende ich also die lokale Variable aus Case 1 und schreibe den Wert in meine Anzeige auf der jeweiligen Registerkarte.
Sind lokale Variablen da nicht ein gutes Mittel?
Hallo Nico,

Zitat:Ich habe eine While-Schleife, die kontinuierlich abläuft. Darin einen Case. Im Case 1 wird die Temperatur gelesen und in eine Variable geschrieben. Abhängig von der angezeigten Registerkarte wird Case 2 oder 3 ausgeführt.
Das Konzept nennt sich landläufig "Statemachine"/"Zustandsautomat"…

Zitat:Im Case 2 bzw. 3 verwende ich also die lokale Variable aus Case 1 und schreibe den Wert in meine Anzeige auf der jeweiligen Registerkarte. Sind lokale Variablen da nicht ein gutes Mittel?
Nein, sind sie nicht.
THINK DATAFLOW: LabVIEW speichert Werte/Daten in Drähten und/oder Schieberegistern.
Warum speicherst du also deine Temperaturdaten nicht in einem Schieberegister und stellst sie dann an benötigter Stelle dar?

Wenn deine Statemachine nur die von dir beschriebenen 3 States kennt, dann kannst du doch meinen vorigen Vorschlag verwenden und die Temperaturanzeige einfach über die Registerkarte legen!?
Ich versteh jetzt: Bei nur 2 von mehr als 2 Registerseiten sollen gewisse Temperaturen angezeigt werden. IMHO ist es somit einfacher, diese Anzeigen auf jedem der beiden Registerseiten anzulegen. Das mit dem darüberschieben macht nur Sinn, wenn es immer sichtbar sein soll.

Im Gegensatz zu Gerd bin ich der Meinung, dass lokale Variablen in diesem Spezialfall durchaus auch eine legitime Lösungsmöglichkeit sind. Allerdings brauchst du das doch gar nicht. Schreib doch einfach im "Temperaturausleseschritt" immer die ausgelesenen Werte in die entsprechenden beiden Terminals und nicht erst in der nachfolgenden Case-Struktur.

Gruß, Jens
An der Stelle kurz angemerkt: wenn man anstelle einer lokalen Variablen, eine globale Variable verwendet, kann man davon beliebig viele Anzeigeelemente auf dem Frontpanel platzieren. Die Anzeigeelemente sind automatisch an die Variable gebunden. Man muss also nur an einer Stelle die Variable beschreiben und die gebundenen Anzeigen aktuallisieren sich automatisch.

Ob das eine Alternative ist, weiß ich nicht. Wenn ja, weiß ich nicht, ob sie gut ist!
Hallo TSC,

Zitat:wenn man anstelle einer lokalen Variablen, eine globale Variable verwendet, kann man davon beliebig viele Anzeigeelemente auf dem Frontpanel platzieren. Die Anzeigeelemente sind automatisch an die Variable gebunden.
Das musst du mir mal an einem BeispielVI (LV2014 bitte) demonstrieren!
[attachment=56567]

Hier ein zip von nem mini Beispielprojekt!
Erstmal DANKE an alle für die Hilfe.

Letztendlich geht es mir ja um die Beschreibung/Formatierung.
Wenn ich auf 2 oder mehr Registerkarten (nicht allen) einen gleichen Wert anzeigen will, muss ich jede Anzeige konfigurieren, speziell die Beschriftung/Untertitel.

Ich dachte, es gibt vielleicht in LabVIEW die Möglichkeit, sozusagen an einer Stelle eine Numerische Anzeige mit Aussehen und Wert zu definieren und diese Anzeige an mehreren Stellen im Frontpanel zu verwenden, ohne weitere Anpassungen vornehmen zu müssen.
(05.09.2016 13:48 )Gruenschnabel schrieb: [ -> ]Erstmal DANKE an alle für die Hilfe.

Letztendlich geht es mir ja um die Beschreibung/Formatierung.
Wenn ich auf 2 oder mehr Registerkarten (nicht allen) einen gleichen Wert anzeigen will, muss ich jede Anzeige konfigurieren, speziell die Beschriftung/Untertitel.

Ich dachte, es gibt vielleicht in LabVIEW die Möglichkeit, sozusagen an einer Stelle eine Numerische Anzeige mit Aussehen und Wert zu definieren und diese Anzeige an mehreren Stellen im Frontpanel zu verwenden, ohne weitere Anpassungen vornehmen zu müssen.

Dann lohnt es sich evtl doch, ein Anzeigeelement VOR das Registerkartenelement zu schieben, sauber zu formatieren und abhängig von der gewählten Registerkarte sichtbar oder unsichtbar schalten. Evtl auch noch die Postion über Eigenschaftsknoten manipulieren.

[attachment=56568]
Seiten: 1 2
Referenz-URLs