LabVIEWForum.de
Benutzereingabewerte ändern - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Benutzereingabewerte ändern (/Thread-Benutzereingabewerte-aendern)

Seiten: 1 2


Benutzereingabewerte ändern - Thomaslein - 02.11.2012 11:16

Hallo LabView-Gemeinde

Ich hab da mal wieder ne kleine Frage..

Mein Programm beginnt mit der Benutzereingabe von "Anfangswerten" diese dienen dazu des Program ordnungsgemäß zu starten.

Nun meine Frage: Ist es möglich diese Werte im späteren Programmablauf durch Bentuzer selbst wieder zu verändern???
Die Kühlung benötigt 2 Werte, Kühl-Soll-Temp und den Start-Temp.....
Nun möchte ich gerne die Werte verändern können um diese evtl anzupassen an best Leistungszustände....

Ich hatte schon die Idee über Eigenschaftsknoten aber ich komm da auch nicht so richtig weiter....


Bin über jede Hilfe dankbar....

MfG Thomas


RE: Benutzereingabewerte ändern - GerdW - 02.11.2012 11:27

Hallo Thomas,

wenn du in der Schleife die Werte ändern willst, musst du wohl die Abfrage in die Schleife hinein nehmen. Dort dann mit einem Button (und einer Case-Struktur) die Abfrage aufrufen...

Wenn du schon dein VI umschreibst:
- Entferne gleich die RaceCondition im Bild: THINK DATAFLOW! Verwende Drähte statt lokaler Variablen! Warum lokale Variablen, wenn die Terminals teilweise unbenutzt im BD rumliegen?
- Verwende doch gleich Eingabeelemente statt immer erst einen Dialog aufzurufen! (Falls dem keine Sicherheitsaspekte entgegenstehen...)
- Warum verwendest du den FXP-Datentyp in einem VI, welches offensichtlich auf einem PC läuft? Warum überhaupt der ganze Datentypen-Mix (SGL, DBL, FXP)?
- die ganzen Geräte-spezifischen Sachen würde ich in subVIs auslagern (aka "Gerätetreiber" erstellen)...
- Wenn dein Gerät Werte in einzelnen Bytes zurückmeldet und du diese Bytes mit StringToU8Array umwandelst, dann würde ich gleich nach dieser Umwandlung mit IndexArray einen skalaren Wert erzeugen, anstatt hinterher (wie du) mit Arrays hantieren zu müssen, die eh nur einen einzelnen Wert enthalten...
So z.B.:
[attachment=42089]
- Was hälst du von einer Statemachine statt riesiger Sequenzen?
- Bei deinem "hier komm ich nicht weiter" versuchst du einen skalaren Wert in ein Array zu schreiben. Das kann so nicht funktionieren...

- In deinem Profil steht LV8.6, dein Attachment ist dagegen LV2011. Da passt was nicht...


RE: Benutzereingabewerte ändern - Thomaslein - 02.11.2012 11:42

Hallo Gerd,

kann ich den den Wert aus der Eingabe nicht als Standart nehmen um diese dann in der Schleife beliebig zu ändern????

Zitat: Verwende doch gleich Eingabeelemente statt immer erst einen Dialog aufzurufen! (Falls dem keine Sicherheitsaspekte entgegenstehen...)

mein Betreuer will das aber so das wenn einer das bedient gleich von anfang an das richtige einstellen kann/ oder soll

Zitat: - Entferne gleich die RaceCondition im Bild: THINK DATAFLOW! Verwende Drähte statt lokaler Variablen!

ja das das war auch nur jetzt so zum zeigen, wenn ich eine lösung habe nehm ich dann sicher drähte, obwohl ich das dann unübersichtlicher finde...

Zitat: - Warum verwendest du den FXP-Datentyp in einem VI, welches offensichtlich auf einem PC läuft? Warum überhaupt der ganze Datentypen-Mix (SGL, DBL, FXP)?

kann ich dir nicht sagen, hab ich mich noch nie damit beschäftigt, werd ich mir mal ansehen......

Zitat: - Wenn dein Gerät Werte in einzelnen Bytes zurückmeldet und du diese Bytes mit StringToU8Array umwandelst, dann würde ich gleich nach dieser Umwandlung mit IndexArray einen skalaren Wert erzeugen, anstatt hinterher (wie du) mit Arrays hantieren zu müssen, die eh nur einen einzelnen Wert enthalten...

könntest du mir das mal an einem Bsp zeigen???

Zitat: - Bei deinem "hier komm ich nicht weiter" versuchst du einen skalaren Wert in ein Array zu schreiben. Das kann so nicht funktionieren...

ja hab ich dann auch gemerkt, aber würde diese Idee prinzipiell so funktionieren???


Danke schon mal für deine Mühe
(02.11.2012 11:27 )GerdW schrieb:  - In deinem Profil steht LV8.6, dein Attachment ist dagegen LV2011. Da passt was nicht...

Ja das liegt daran das der PC im Labor die Version Lv86_img hat, aber leider kein Internet hat Dodgy und ich zu Hause aufm Lapi die neuere... ich hätte es als "ältere Version" speichern sollen....





Danke für das Bild... das hilft mir sehr, aber ich als Neuling in LV war froh das ich es überhaupt IWIE hinbekommen habe...... ich werde deinen Vorschlag natürlich annehmen und mein Programm umschreiben Smile


RE: Benutzereingabewerte ändern - GerdW - 02.11.2012 11:49

Hallo Thomas,

Zitat:mein Betreuer will das aber so das wenn einer das bedient gleich von anfang an das richtige einstellen kann/ oder soll
Im geschilderten Fall kann man die Abfrage auch im ersten Schleifendurchlauf erzwingen: Oder-Verknüpfung mit dem Ergebnis von "i=0"...

Zitat:ja hab ich dann auch gemerkt, aber würde diese Idee prinzipiell so funktionieren???
Wenn du wirklich einen skalaren Wert in ein Array schreiben willst, musst du BuildArray oder InsterIntoArray verwenden.
Wenn dieses Problem aber auf dem anderen geschilderten Problem mit der deutlich zu umständlichen Auswertung der Gerätemeldungen beruht, würde ich die Eingabeelemente selbst als Skalare anlegen und nicht als Arrays. Siehe Bild Snippet oben!


RE: Benutzereingabewerte ändern - Thomaslein - 02.11.2012 12:19

Zitat:Wenn du wirklich einen skalaren Wert in ein Array schreiben willst, musst du BuildArray oder InsterIntoArray verwenden.
Wenn dieses Problem aber auf dem anderen geschilderten Problem mit der deutlich zu umständlichen Auswertung der Gerätemeldungen beruht, würde ich die Eingabeelemente selbst als Skalare anlegen und nicht als Arrays. Siehe Bild Snippet oben!

du meinst das sicher so...


RE: Benutzereingabewerte ändern - GerdW - 02.11.2012 12:46

Hallo Thomas,

Zitat:du meinst das sicher so...
Nein!
- Du verwendest InitArray statt der genannten Funktionen.
- Du erstellst ein Array mit NULL (!) Elementen. Was erhoffst du dir davon?


RE: Benutzereingabewerte ändern - Thomaslein - 02.11.2012 12:57

^^ ach ich kann doch auch nix dafür, Ja ich hätte geau lesen sollen.. Top1

aber jetzt...


RE: Benutzereingabewerte ändern - GerdW - 02.11.2012 13:04

Hallo Thomas,

noch etwas Manöverkritik:
- du liest aus einer lokalen Variablen einen Wert und erstellst damit ein Array mit einem Element.
- du liest ein Array aus (Anschalttemperatur, wahrscheinlich nur ein einziges Element im Array) und fügst dieses an der Position 0 ein: dies ist nichts weiter als ein Voranstellen und kann ( oder sollte - meiner Meinung nach) mit BuildArray erledigt werden...
- dieses zusammengefügte Array wird jetzt genommen und das erste Element wird als "AN-Temp" angezeigt (und wohl auch nur verwendet)
So gehts vielleicht auch:
[attachment=42093](Äquivalent für die Ausgabe der AN-Temp!)

Diese ganze Array-Akrobatik (mit der du noch so deine Probleme hast) machst du nur, weil du die Rückmeldungen deines Gerätes als Array (mit nur einem einzigen Element) ausgeben lässt, statt dort gleich skalare Werte zu erzeugen. Merkst du nicht, wie du dir selbst das Leben schwer machst?

Schon mal den Link in meiner Signatur beachtet?


RE: Benutzereingabewerte ändern - Thomaslein - 02.11.2012 14:11

Hallo Gerd...

ich habs nun doch hinbekommen....

[attachment=42096]

und das ganze ausserhalb der While-Schleife...

somit kann ich den Anfangswert im laufenden programm ändern....

danke dir


RE: Benutzereingabewerte ändern - Thomaslein - 02.11.2012 15:33

Hallo Gerd,


in deinem ersten Bild ganz oben...

[Bild: attachment.php?aid=42089]

was ist das für ein Symbol das die beiden Leitungen zusammen führt????

[attachment=42102]... das finde ich bei mir nicht