LabVIEWForum.de - Fehler 91 bei der Arbeit mit Variant...

LabVIEWForum.de

Normale Version: Fehler 91 bei der Arbeit mit Variant...
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
<div align="left">Guten Tag zusammen,

hier bin ich mal wieder mit einem kleinem LabVIEW-Problem:
Ich möchte numerische Daten über eine Referenz in ein Bedienelement eines Cluster schreiben.
Es handelt sich bei dein numerischen Daten um ein zweidimensionales Array, bei dem Cluster um numerische Bedienelemente in Cluster in Cluster.
Bei den ersten drei Durchläufen (also Zeilen des Arrays, bzw. Cluster des Clusters) funktioniert alles einwandfrei, beim vierten erhalte ich die Meldung
Fehler 91
Der Datentyp des Variant ist nicht kompatibel mit dem Datentyp, der mit dem Eingang verbunden ist.

Kann mir eventuell jemand erklären warum? Und viel wichtiger: Wie korrigiere ich das ganze?

Vielen Dank schonmal im Voraus,

der Radler</div>
Hallo Radler,

bin eben über diesen Beitrag gestolpert.
Hast Du Dein Problem schon selber gelöst?

Gruß
Andreas
Hi, ich bin gerade auch über diesen Fehler (Error 91) gestolpert! Ich hab eine Event- Struktur die auf 2 Events (Value Change von einem Tab Control oder einer combo Box in einem Array of Cluster) reagiert.
Nun benötige ich einmal den vorherigen und den aktuellen Wert von dem Tab Control. Diese erhalte ich, wenn ich mir den Variant To Data Block nehme und darauf als Typ einen Int. Wenn ich einfach nur einen Indicator anschliesse, erhalte ich auch die Werte als Zahlen. Wenn ich aber diese Zahlen irgendwie verwenden möchte bekomme ich den Fehler :

Error 91 Possible reason(s): LabVIEW: The data type of the variant is not compatible with the data type wired to the type input.

Weiss jemand, wie man den abstellen kann??


Hier im Forum hat man geschickter Weise nicht geantwortet!?!

Danke Herbert
Hallo Herbert,

wie möchtest Du die Daten den weiter verarbeiten?
Es scheint wohl daran zu liegen, daß die Datentypen des gewandelten Variants und der Datensenke nicht übereinstimmen.

Gruß
Andreas
<div align="left">Hallo, Herbert,

wenn ich deine Beschreibung richtig verstehe, dann glaube ich zu wissen, wo dein Fehler/Problem liegt. Ich fasse mal meine Ansichten zusammen:

1. Du verwendest eine Event-Struktur.
2. In einem der Event-Cases hast du als Events eingetragen: "Value Change" eines Tab-Controls & "Value Change" einer Combo-Box.
3. Problem ist jetzt: Datentyp des Tab-Controls ist im Prinzip eine Enum-Variable (vielleicht auch ein Text-Ring, da bin ich nicht ganz sicher). Der dazugehörende Datentyp ist eine Integer-Variable, weshalb dein Variant to Integer funktioniert.
4. Die Combo-Box dagegen ist im Prinzip ein String! Deshalb funktioniert die Umwandlung vom Variant nicht und du erhälst die 91er Fehlermeldung.

Ich hoffe, das wars.

Ach ja, Möglichkeit, das ganze zu umgehen: Es müsste doch möglich sein, deine Combo-Box durch eine Enum-Variable bzw. Text-Ring zu ersetzen.

MfG, Jens</div>
Hallo!

Ich grabe mal diesen uralt Thread wieder aus.. Beigefügt sind 2 Screenshots. Anscheinend mag es der Variant nicht, wenn er auf einmal Daten des Typs U16 bekommt, nachdem er vorher einen Enum bekommen hat. Wie könnte ich dieses Problem lösen?

Liebe Grüße
Dawn
Das Problem liegt eher darin begründet, dass du ein Variant mit nur einem U16 (Ring oder Enum, egal) zurückverwandeln willst in ein Cluster mit einem U16.

Gruß, Jens
Bin auch gerade drauf gekommen, dass ich völligen Quatsch geschrieben habe. Vielen Dank! Habe es jetzt mit deiner Hilfe lösen können Big Grin
Hmm...bei mir taucht dieser Fehler nun auch auf. Aber nur in der Applikation. Wenn das Programm in der Entwicklungsumgebung läuft, ist alles ok. Da gibt es wieder irgendeinen Unterschied zwischen exe und Entwicklungsumgebung, den ich übersehe. Oder?

Gruß,

Soean
Nachtrag:

Unter den Known Issues fand ich dies:

Error 91 occurred at the Variant To Data node
Variant To Data sometimes throws an error 91 when running in a built executable in LV 2009 "Error 91 occurred at ... Possible reason(s): LabVIEW: The data type of the variant is not compatible with the data type wired to the type input."

Workaround: 1) Update the variant type by generating a new one. (In an empty VI wire the typedef into the "data to variant" prim and run the VI. Then create a constant from the indicator and use this constant as the new type for the variant.) OR 2) Use a Flatten Variant to String and then an Unflatten from String (not the variant version). If you wire in the control you're trying to extract from the variant, it will work like a charm.

Reported Version: 2009 32-bit Resolved Version: 2012 32-bit Added: 02/18/2011

Werde nun versuchen die Workarounds umzusetzen, auch wenn ich gerade noch nicht sicher bin, ob dies bei mir möglich ist. We will see :-)
Referenz-URLs