LabVIEWForum.de
Task in Variant und zurück - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenkommunikation (/Forum-Datenkommunikation)
+---- Thema: Task in Variant und zurück (/Thread-Task-in-Variant-und-zurueck)



Task in Variant und zurück - M@rRy - 07.10.2011 11:24

Hey hey,

ich spiele gerade ein wenig mit den Variant-Klötzen und bin da auf etwas gestossen was ich mir noch nicht so Recht erklären kann. Ich hab einfach einen erstellten Task (einen AO) genommen und den Varaint gewandelt und wieder zurück um ihn dann zu starten und zu beschreiben. Das geht allerdings nicht, kann mir jemand sagen warum? Bin ja schon neugierig jetzt. Ich meine das erste Bild im Anhang. Das zweite funktioniert so. Doch ich hätte da eigentlich keinen Unterschied erwartet.

Gruß


RE: Task in Variant und zurück - Lucki - 07.10.2011 12:21

Würde ja gern helfen, habe aber keine Lust deswegen die VIs nachzubauen Big Grin


RE: Task in Variant und zurück - rolfk - 09.10.2011 09:28

(07.10.2011 11:24 )M@rRy schrieb:  Hey hey,

ich spiele gerade ein wenig mit den Variant-Klötzen und bin da auf etwas gestossen was ich mir noch nicht so Recht erklären kann. Ich hab einfach einen erstellten Task (einen AO) genommen und den Varaint gewandelt und wieder zurück um ihn dann zu starten und zu beschreiben. Das geht allerdings nicht, kann mir jemand sagen warum? Bin ja schon neugierig jetzt. Ich meine das erste Bild im Anhang. Das zweite funktioniert so. Doch ich hätte da eigentlich keinen Unterschied erwartet.

Gruß

Es gibt einen grundlegenden Unterschied zwischen einer Task und einem Channel. Der Task enthält zwar auch die Channels als Properties aber ist im wesentlichen einfach ein Refnum. Das heisst man sollte es wie einen Pointer sehen. Und Pointer sind nun einmal nur im Kontext sinnvoll, in dem sie angelegt wurden. Man könnte jetzt argumentieren dass dies in Deinem Fall ja gegben ist und das stimmt zwar aber es macht wenig Sinn. Was Du da tust is ja eignentlich eher sinnlos, den die Task kann ja auch direct durchverbunden werden und Flatten oder Umsetzung in Variants wird hauptsächlich verwendet wenn man Daten zwischen Applikationsinstanzen übertragen will. Und hier kann der Transfer eines Tasks prinzipbedingt nicht funktionieren. Ich gehe deshalb davon aus dass das Umsetzen einer Refnum in eine Variant sogar absichtlich fehlschlägt. Damit wird dem LabVIEW Programmierer der Unterschied erspart, wenn man dies lokal in einem VI testet und dann überrascht wird, wenns remote nicht mehr funcktioniert.


RE: Task in Variant und zurück - M@rRy - 11.10.2011 07:17

Vielen Dank für die Erläuterung Smile Wenn man jetzt mal von einem Task absieht, was ist den schöner oder geschickter zum übergeben von Daten? Flatten? oder nur Variant?

Gruß


RE: Task in Variant und zurück - rolfk - 13.10.2011 10:27

(11.10.2011 07:17 )M@rRy schrieb:  Vielen Dank für die Erläuterung Smile Wenn man jetzt mal von einem Task absieht, was ist den schöner oder geschickter zum übergeben von Daten? Flatten? oder nur Variant?

Gruß

Solange Du ganz in LabVIEW bleibst sicher Variants. LabVIEW kommt mit starken Tools die Dir die meiste Arbeit abnehmen. Wenn Du das Ganze auch ausserhalb LabVIEW handhaben möchtest bleibt nur der Weg über Flattened Data. Das schliesst Dinge ein wie Netzerkkommunikation, aber auch externen C Code oder dergleichen.