LabVIEWForum.de - Kombiniertes Eingabe- Ausgabefeld?

LabVIEWForum.de

Normale Version: Kombiniertes Eingabe- Ausgabefeld?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

also ich bin gerade dabei ein kleines Programm für meine Diplomarneit zu basteln, kenn mich aber leider noch nicht so gut aus mit LabVIEW.
Das Programm soll dazu dienen, per RS232 mit einem Microcontroller zu kommunizieren. Der Microcontroller arbeitet im Prinzip wie ein elektronisches Thermostat, also er schaltet bei verschiedenen Temperaturen diverse Relais usw.
Der eigentliche Sinn des LabVIEW-Programms ist nun also die aktuellen Schalttemperatur-Einstellungen des Microcontrollers auszulesen und gegebenenfalls anzupassen, also ihm die neuen Daten zu schicken.

Nun zu meiner eigentlichen Frage: Ist es irgendwie möglich, die ausgelesenen Einstellungen in einem Eingabefeld auszugeben? Wäre also sowas wie ein neuer Standardwert für das Feld, wenn ihr versteht was ich meine?
Wenn ich nämlich die ausgelesenen Daten in einem normalen Ausgabefeld anzeige, muss man ja immer per Hand alle Daten in die Eingabefelder übertragen bevor man sie dem Microcontroller schickt. Das ist nicht nur umständlich, sondern erhöht auch die Wahrscheinlichkeit versehentlicher Falscheingaben enorm...

Hat da evtl. jemand einen Tip für mich?


LG, Nukolar
Hallo Nukolar,

da kannst du ne Lokalevariable benutzen. Oder per Eigenschaftsknoten in die Eigenschaft "Wert" schreiben.

im Blockdiagramm rechtsklick auf deine Eingabevariable im Menue dann den Punkt "Erstellen" da findest du beoides drin.

Die Lokale Variable oder die Eigenschaft kannst du dann wieder mit nem rechtsklick und im Menue von Lesendzu schreibend und umgekehrt machen.

Grüße
Achimedes
Hallo Achimedes,

danke für den Tip, werd das mal ausprobieren.



Gruß, Nukolar
' schrieb:Hallo Nukolar,

da kannst du ne Lokalevariable benutzen. Oder per Eigenschaftsknoten in die Eigenschaft "Wert" schreiben.

im Blockdiagramm rechtsklick auf deine Eingabevariable im Menue dann den Punkt "Erstellen" da findest du beoides drin.

Die Lokale Variable oder die Eigenschaft kannst du dann wieder mit nem rechtsklick und im Menue von Lesendzu schreibend und umgekehrt machen.

Grüße
Achimedes

Solange es um User Interaktion geht ist das zwar nicht wichtig aber wenn Du den Wert in einer Loop schnell updaten willst dann ist die lokale Variable der "Wert" Property Node ganz deutlich vorzuziehen.

Eine Property Node wird immer im UI Thread ausgeführt und ist synchron. D.h. der Code (Deine Loop zum Beispiel) muss einen Threadcontextswitch machen, den Wert updaten, das UI wird soweit nötig neu gezeichnet und danach ein Threadcontextswitch zurück in Deinem Code.

Bei einem Terminal oder lokalen Variablen Schreibzugriff, wird der Wert ganz einfach in eine ein Element Queue für das FP ELement gepostet und der Code kann weitermachen. Irgendwann kommt der UI Thread an die Reihe, sieht dass Updates für ein (oder auch mehrere) Controls nötig sind und kann das alles in einem Rutsch abarbeiten. Der UI Thread wird ungefähr 30 bis 50 mal pro Sekunde angestossen wenn die CPU nicht zuviel mit anderen Dingen beschäftigt ist.

Und wer jetzt sagt, aber dann verliere ich ja Updates im User Interface (die Loop generiert zum Beispiele 10000 Werte pro Sekunde aber nur 30 - 50 werden wirklich dargestellt) der muss mir mal erzählen wie er in einem Film die verschiedenen stehenden Bilder (25 - 30 pro Sekunde) voneinander unterscheidet Lol

Der Vorteil davon ist halt eben, dass die Loop überhaupt 10000 Werte pro Sekunde generieren kann. Bei einem Property Update wird die Loop auf nie mehr als 100 Iterationen kommen selbst auf einer 500 Core Maschine, da das Neuzeichnen auf dem Schirm eine sehr zeitaufwendige Operation ist, selbst wenn es nur um ein einfaches numerisches Element geht.

Rolf Kalbermatter
Referenz-URLs