02.02.2010, 10:37
|
IchSelbst
LVF-Guru
Beiträge: 3.692
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Übergabewert an SubVI mit änderndem Datentyp möglich?
' schrieb:aber kann mir jemand ein Anwendungsbeispiel nennen, bei dem es Vorteilhaft ist ein polymorphes VI zu verwenden?
Stell dir vor, du hast ein VI, dass eine typunabhängige Funktion machen soll. z.B Addieren, oder Messwert lesen, oder allgemeine Eigenschaft eines Elementes setzen. Alle diese Funktionen sind an sich typunabhängig. Addieren kann man so ziemlich alles - von Datenbankinhalten bis hin zu Obst (1 Banane + 2 Äpfel = guten Brei).
Das tatsächliche physikalische Addieren jedoch geht nur typgebunden. Zieht man also ein I32 auf ein Add-Element, muss sich das Add-Element dem Typ anpassen. Die physikalische Addier-Operation für I32 ist nämlich eine andere wie für Obst.
Hast du also eine Funktion, die typunabhängig deklariert werden kann, machst du ein polymorphes VI für diese Funktion, sodass du dann verschiedene Typen verwenden kannst. Ich selbst habe noch nie ein eigenes polymorphes VI gebraucht.
Variant kann man sehr gut benutzen, um Eingänge zu sparen. Stell dir vor, die hast ein VI mit sehr vielen Funktionen. Jede einzelne Funktion braucht Daten zum Arbeiten. Wolltest du für alle diese Daten einen eigenen Eingang machen ... - das geht gar nicht. Also macht du nur zwei Eingänge: Einen der die Funktion auswählt und einen Variant, der die Daten für diese Funktion enthält.
Variant sind sehr zeit- und speicheraufwändig.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
02.02.2010, 10:52
(Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2010 11:54 von dimitri84.)
|
|
|
02.02.2010, 12:08
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Übergabewert an SubVI mit änderndem Datentyp möglich?
' schrieb:Ich denke polymorphe VIs haben lediglich den Komfort beim Programmieren sich nicht das richtige VI aussuchen zu müssen. Dabei ist nicht wirklich unbekannt welchen Datentyp die Parameter haben, denn nach dem Anschließen ist die ganze Geschichte ja nicht mehr polymorph, wie IchSelbst bereits erklärt hat. Eine echte Indikation für polymorphe VIs gibt es also nicht.
So denke ich auch. Ein polymorphes VI zu erstellen bedeutet eine gewissen Aufwand. Statt den zu treiben, ist es immer 10x schneller. aus einem gegebenen SUBVI.A.vi, aber unpassendem Datentyp, bei Bedarf in Minutenschnelle die Mutation SuVI.B.vi zu erstellen. Nicht umsonst gibt es die Möglichkeit zum Erstellen von polymorphe VI nur in der professionellen Version. Es ist etwas für Teams, die mit LabVIEW ein ganz großes Rad drehen. Die polymorphen VIs sind eine ganz großartige Sache, soweit sie als Bibliothekselemente von LV zur Verfügung stehen. Aber wer selbst, weil ein SUB-VI in 2 unterschiedlichen Anwendungen 2 unterschiedliche Datentypen benötigt, deswegen ein polymorphes VI erstellt, der leidet meines Erachtens unter Masochismus und Pedanderiewahn.
|
|
|
02.02.2010, 12:33
(Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2010 12:34 von dimitri84.)
|
|
|
02.02.2010, 12:49
|
IchSelbst
LVF-Guru
Beiträge: 3.692
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Übergabewert an SubVI mit änderndem Datentyp möglich?
' schrieb:Für mich allein war's ganz klar Zeitverschwendung.
Ganz sicher nicht.
Wie du ja selbst schon festgestellt hast: "Aber so hab ich's mal ausprobiert...".
Es ist keine Zeitverschwendung etwas gemacht zu haben zum Zwecke des Durchdenkens eines Sachverhaltes. Dass als Ergebnis herauskommt "brauch ich nicht" darf nicht gleichgesetzt werden mit Zeitverschwendung. Vielmehr war es von großem Nutzen, dass du die Zeit investiert hast. Jetzt kannst du nämlich mitreden, wenns über polymorphe Eingänge geht.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
02.02.2010, 13:26
(Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2010 13:51 von dimitri84.)
|
|
|
02.02.2010, 14:05
|
abrissbirne
LVF-Stammgast
Beiträge: 480
Registriert seit: Aug 2007
LV2009, LV2010
2007
EN
66123
Deutschland
|
Übergabewert an SubVI mit änderndem Datentyp möglich?
' schrieb:Die ganzen DAQ-VIs sind polymorph. Da kannst Du analoge Werte anschließen, digitale Werte anschließen, Arrays anschließen und Einzelwerte anschließen,..... (je nachdem, was Du ausgewählt hast).
Aber selbst verwende ich polymorphe VIs (eigentlich) auch nie.
Gruß Markus
' schrieb:Stell dir vor, du hast ein VI, dass eine typunabhängige Funktion machen soll. z.B Addieren, oder Messwert lesen, oder allgemeine Eigenschaft eines Elementes setzen. Alle diese Funktionen sind an sich typunabhängig. Addieren kann man so ziemlich alles - von Datenbankinhalten bis hin zu Obst (1 Banane + 2 Äpfel = guten Brei).
Das tatsächliche physikalische Addieren jedoch geht nur typgebunden. Zieht man also ein I32 auf ein Add-Element, muss sich das Add-Element dem Typ anpassen. Die physikalische Addier-Operation für I32 ist nämlich eine andere wie für Obst.
Hast du also eine Funktion, die typunabhängig deklariert werden kann, machst du ein polymorphes VI für diese Funktion, sodass du dann verschiedene Typen verwenden kannst. Ich selbst habe noch nie ein eigenes polymorphes VI gebraucht.
Variant kann man sehr gut benutzen, um Eingänge zu sparen. Stell dir vor, die hast ein VI mit sehr vielen Funktionen. Jede einzelne Funktion braucht Daten zum Arbeiten. Wolltest du für alle diese Daten einen eigenen Eingang machen ... - das geht gar nicht. Also macht du nur zwei Eingänge: Einen der die Funktion auswählt und einen Variant, der die Daten für diese Funktion enthält.
Variant sind sehr zeit- und speicheraufwändig.
' schrieb:Ich denke polymorphe VIs haben lediglich den Komfort beim Programmieren sich nicht das richtige VI aussuchen zu müssen. Dabei ist nicht wirklich unbekannt welchen Datentyp die Parameter haben, denn nach dem Anschließen ist die ganze Geschichte ja nicht mehr polymorph, wie IchSelbst bereits erklärt hat. Eine echte Indikation für polymorphe VIs gibt es also nicht. (Lasse mich gerne widerlegen.)
Danke für eure Antworten. Sehe das ähnlich wie Ihr. Hab heute aber trotzdem ein polymorphes VI erstellt um es mal gemacht zu haben. THX
|
|
|
02.02.2010, 15:28
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Übergabewert an SubVI mit änderndem Datentyp möglich?
Darüber denke ich genau so, von Zeitverschwendung kann hier keine Rede sein. Man will ja schließlich LabVIEW in allen Facetten kennenlernen ( - und ich bilde mir ewas darauf ein, von den angebotenen Funktionen und Möglichkeiten immerhin ca. 10% zu beherrschen Ich bin so unbescheiden, weil ein Redakteur der Zeitschift c't auch stolz darauf war, von den 350 Funktionen in MS Word immerhin 15 zu benutzen). Um mir die obige Meinung zu selbstgemachten polymorphen VI bilden zu können, mußte ich natürlich auch mal so etwas Ähnliches gemacht haben wie Dimitri. Nur mal die Hilfe kurz anzuschauen genügt nicht zum wirklichen Kennenlernen.
|
|
|
02.02.2010, 15:35
(Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2010 15:36 von dimitri84.)
|
|
|
05.02.2010, 12:47
|
Kiesch
LVF-Stammgast
Beiträge: 412
Registriert seit: Mar 2009
2019, 2018, 2016
2009
DE
04519
Deutschland
|
Übergabewert an SubVI mit änderndem Datentyp möglich?
Die simple Antwort dazu wann Polymorphe VIs nützlich sind ist doch eigentlich schnell gefunden: Wenn man die VIs häufig in verschiedenen Zusammenhängen einsetzt. Da will ich nicht erst noch jedes mal neu mehr programmieren nur weil ich ein Array reingeben will statt einer Zahl. Entsprechend einfach sind auch die Poly VIs herzustellen in solchen Fällen. Einfach mehrfachaufruf des VIs für ein Element (+ eventuell spezielle weitere Behandlung). Einmal gemacht kann man die dann immer wieder nutzen ohne das man dabei groß das richtige VI selbst suchen muss oder erneut prüfen muss ob man nen Fehler reingebaut hat.
Außerdem schafft ein VI für eben zum Beispiel Arrays und Einzelelemente mehr übersicht auf der Elementpalette.
Kurz: Verwende ich ein SubVI häufig und verschiedenen Eingabedatentypen, lohnt es es polymorph zu machen.
Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
*Zitat: IchSelbst*
|
|
|
| |