LabVIEWForum.de
Einheit eines Graph in Referenz bekannt machen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Einheit eines Graph in Referenz bekannt machen (/Thread-Einheit-eines-Graph-in-Referenz-bekannt-machen)



Einheit eines Graph in Referenz bekannt machen - elsatobias - 31.03.2010 12:51

Hallo,

in meinem aktuellen Projekt arbeite ich erstmals mit Einheiten für Datentypen.

Ich habe nun das Problem, dass eine Referenz auf einen Graphen, anscheinend nichts über die Einheit des Graphen weiß und einen Fehler beim Anschluss eines Datentyps mit Einheit an einen Eigenschaftsknoten ausgibt (Datenquelle hat Einheit xy, Datensenke hat Einheit NoUnit).

Ich habe zur Verdeutlichung ein Snipplet angehängt. Wie bekommt man die Konstante angeschlossen, möglichst ohne sich Gedanken zu machen, ob der Zahlenwert nun Meter, feet oder sonst irgendeine Längeeinheit hat?

snip09
[attachment=25517]

Kleine Frage am Rande: Ist es bei euch auch so das LV2009f2 in der Kontexthilfe anzeigt, dass die Einheit dpt ist, obwohl /m als Einheit ausgewählt wurde (und auch richtig gerechnet wird)?

Danke für eure Hilfe
Schöne Grüße
Tobi


Einheit eines Graph in Referenz bekannt machen - Y-P - 01.04.2010 06:42

Dein Snippet funktioniert bei mir nicht. Könntest Du bitte mal das VI hochladen.

Gruß Markus


Einheit eines Graph in Referenz bekannt machen - elsatobias - 01.04.2010 07:39

Hallo,

hier nochmal ein "richtiges" VI. Was geht denn an dem Snipplet nicht? Nicht, dass Du die fehlerhafte Verbindung des Eigenschaftenknotens meinst, was ja mein Problem ist.

Aber schonmal danke und schöne Ostern
Tobi

Lv09_img2
[attachment=25528]


Einheit eines Graph in Referenz bekannt machen - Y-P - 01.04.2010 07:49

Nee. Es wird in meinem Blockdiagramm nur das Bild als Ganzes in Kleinformat eingefügt und nicht der Sourcecode, wenn ich die Datei vom Desktop in mein Blockdiagramm ziehe. Jetzt schau' ich aber mal Dein VI an.

EDIT (nachdem ich nun das VI angeschaut habe):

Wie es aussieht reicht es, wenn Du nur einen Zahlenwert anschließt und nicht die Zahl mit Einheit:

[attachment=25529]
snip09

Gruß Markus

PS: Wie hast Du eigentlich Dein Snippet erstellt? :unsure:Vielleicht hast Du da ja was falsch gemacht, weshalb ich es nicht laden konnte.


Einheit eines Graph in Referenz bekannt machen - SeBa - 01.04.2010 07:52

Also dein Graph heißt "Signalverlaufsgraph" und die Referenz heißt "Signalverlaufsgraph 2" ...? Seltsam... und dann wirft es noch den Fehler "Ungültige Objektreferenz" ... merkwürdig...

Davon abgesehen, warum sollte die Y-Achse überhaupt eine Einheit haben? Schließ doch einfach eine normale einheitenlose DBL Konstante an. Da musst du nix nachdenken und es funktioniert. Du stellst ja nur das min/max ect. ein... das ist doch unabhängig von jeglicher Einheit die deine Datenpunkte im Graph haben könnten.

Max. = 5 für Eier pro Osterhase ist dieselbe 5 wie für tote Hasen pro Wolf...


Gruß SeBa


Einheit eines Graph in Referenz bekannt machen - elsatobias - 01.04.2010 08:37

Hallo,

danke schonmal für eure Antworten. Ja, den Fehler mit der Referenz habe ich jetzt auch gesehen. Aber selbst mit einer Referenzkonstante auf den Graphen klappt es nicht.

Dass es mit einheitenlosen Werten geht weiß ich. Dann muss ich aber manuell nachsehen, wie der Graph eingestellt ist und die Max/Min-Werte von Hand umrechnen.

Meine Eingangsdaten in den Graphen sind immer in Metern, die "Zahlenwerte" für den Max/Min-Wert auch. Den Graphen selber kann der User zwischen Metern und Fuß umschalten. Wenn der Graph nun die Einheit Fuß hat, und die Max/Min Werte einheitenlos mit den Meter Werten eingestellt wird, hat der Graph zuviel Leerraum.

Wie gesagt, ich kann alles von Hand ausrechnen, nur dann ist meiner Meinung nach die Implementierung der Einheiten nicht konsequent und für mich dann wertlos.

Schöne Grüße
Tobi


Einheit eines Graph in Referenz bekannt machen - SeBa - 01.04.2010 10:42

So klappts:

snip09
[attachment=25535]

Das Snippet erstellt (bei mir auch) die falsche Referenz... war also nicht dein Fehler.

Also Ref. anpassen und gucken.

EDIT:
:unsure:Spricht was gegen Autoscale?

Gruß SeBa


Einheit eines Graph in Referenz bekannt machen - elsatobias - 01.04.2010 12:30

Hallo SeBa,

ein sehr schönes Beispiel... leider aber nicht die Lösung zu meinem Problem.

Mein Problem ist folgendermaßen:

Meine Messwerte sind alle in Metern, der Graph kann in Metern oder in Fuß anzeigen. Das Maximum des Graphen soll jetzt 1 Meter sein oder, falls ein Messwert darüber liegt, diesen als Maximum (+10% damit der graph nicht so an die Decke geklatscht aussieht, darum ist Autoscale keine Lösung).

Bleiben wir beim Beispiel mit dem 1m. Wenn der Graph auf Fuß steht, muss das Maximum aber 3,28 betragen. Nun habe ich mir erhofft, wenn ich der Maximum-Eigenschaft den Wert 1 mit der Einheit Meter übergebe, dass ich mir keine Gedanken darüber machen muss, ob der Graph nun Meter oder Fuß anzeigt. Das geht aber anscheinend nicht.

Ich habe nun einen workaround benutzt, indem ich die Einheit des Graphen auslese, in einem case-Block die Einheit umrechne und dann entferne. Geht zwar, ist aber nicht so elegant, wie meine "gedachte" Lösung oben.

Ich habe nochmal die Lösungsmöglichkeiten im Anhang zusammengefasst.

Lv09_img2
[attachment=25536]

Schöne Grüße
Tobi

[EDIT]
Was das Snippet angeht, entwickelt LV da ein sehr reges "Eigenleben", wie SeBa auch festgestellt hat.