INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Übergabewert an SubVI mit änderndem Datentyp möglich?



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

02.02.2010, 10:37
Beitrag #11

IchSelbst Offline
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).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
02.02.2010, 10:52 (Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2010 11:54 von dimitri84.)
Beitrag #12

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Übergabewert an SubVI mit änderndem Datentyp möglich?
' schrieb:Sehr interessant, aber kann mir jemand ein Anwendungsbeispiel nennen, bei dem es Vorteilhaft ist ein polymorphes VI zu verwenden? Ich arbeite bis jetzt immer mit Variant wenn ich verschiedene Datentypen behandle.

Besten Dank.

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.)

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.02.2010, 12:08
Beitrag #13

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.02.2010, 12:33 (Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2010 12:34 von dimitri84.)
Beitrag #14

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Übergabewert an SubVI mit änderndem Datentyp möglich?
' schrieb: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.
Ich habe heute den ganzen Vormittag meine 10 häufigsten signalverarbeitenden (sub)VIs polymorph gemacht. Huh Einmal für ein Kanal (Waveform) und einmal für n-Kanäle (Array of Waveform). Vielleicht dankt es mir mein Nachfolger. Für mich allein war's ganz klar Zeitverschwendung. Aber so hab ich's mal ausprobiert...

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.02.2010, 12:49
Beitrag #15

IchSelbst Offline
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).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.02.2010, 13:26 (Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2010 13:51 von dimitri84.)
Beitrag #16

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Übergabewert an SubVI mit änderndem Datentyp möglich?
' schrieb: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.
Das ist mir sehr wohl bewusst. Zeitverschwendung war ganz klar nur auf die Funktionalität bezogen. Wenn ich mal kein Praktikant mehr bin, werd' ich sicher nicht mehr die Zeit und Muße haben für sowas ... oder besser gesagt ein bisschen weniger (SeBa hat ja auch heute noch viel Zeit für Experimente!Wink)

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
02.02.2010, 14:05
Beitrag #17

abrissbirne Offline
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
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.02.2010, 15:28
Beitrag #18

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

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 beherrschenMellow 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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.02.2010, 15:35 (Dieser Beitrag wurde zuletzt bearbeitet: 02.02.2010 15:36 von dimitri84.)
Beitrag #19

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Übergabewert an SubVI mit änderndem Datentyp möglich?
' schrieb:Nur mal die Hilfe kurz anzuschauen genügt nicht zum wirklichen Kennenlernen.
In diesem Fall reicht's wohl schon aus, denn es sind wirklich nur diese (etwa) 3 Handgriffe. Das Mühsame ist nur die Variationen der VIs herzustellen. Der Rest ist idiotensicher. (Wenn das Universum nur nicht immer bessere und mächtigere Idioten produzieren würde.)

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.02.2010, 12:47
Beitrag #20

Kiesch Offline
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*
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Datentyp eines Elements herausfinden Mrindfleisch 15 10.615 12.02.2021 08:26
Letzter Beitrag: Mrindfleisch
  Variant Datentyp TDO 12 11.663 13.04.2015 07:38
Letzter Beitrag: TDO
  Falscher Datentyp in Kontexthilfe th13 2 4.000 29.11.2014 15:02
Letzter Beitrag: th13
  Kann ich Datentyp in Eigenschaftsknoten ermitteln? Hasenfuss 3 4.979 10.04.2013 19:43
Letzter Beitrag: Hasenfuss
  Events im SubVI abarbeiten möglich? phylin 4 5.943 20.01.2012 19:24
Letzter Beitrag: phylin
  Eventstruktur im HauptVi und SubVi möglich? Topia 8 8.594 29.09.2011 10:14
Letzter Beitrag: A.Berndsen

Gehe zu: