LabVIEWForum.de - Task in Variant und zurück

LabVIEWForum.de

Normale Version: Task in Variant und zurück
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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ß
Würde ja gern helfen, habe aber keine Lust deswegen die VIs nachzubauen Big Grin
(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.
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ß
(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.
Referenz-URLs