LabVIEWForum.de
Number to Boolean Array: Ausgabe wird immer weniger - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Number to Boolean Array: Ausgabe wird immer weniger (/Thread-Number-to-Boolean-Array-Ausgabe-wird-immer-weniger)



Number to Boolean Array: Ausgabe wird immer weniger - jak888 - 16.02.2011 20:57

Hallo,

ich habe heute von LabVIEW 8,6 auf LabVIEW 2010 gewechselt. Nachdem ich das Projekt an dem ich momentan arbeite in 2010 das erste Mal geöffnet habe musste ich ein paar VIs suchen, was aber nicht weiter tragisch war. Als die ersten Schwierigkeiten beseitigt waren konnte ich dort fortfahren, wo ich aufgehört hatte. Bis hierhin alles klar.

Als ich dann das Programm testete stellte ich fest, dass Teile nicht mehr funktionierten. Nach einer ausgedehnten Fehlersuche hatte ich die Fehlerquelle lokalisiert aber noch lange nicht verstanden: In einem SubVI in den Tiefen des Programms trat der Fehler auf:
Dort wird eine Zahl (U16) in ein Boolean Array umgewandelt. Der Verstand sagt einem, dass der Output dieser Operation ein Array[16] (also mit 16 Elementen) sein sollte. Dies ist auch der Fall beim ersten Durchlauf. Beim zweiten Durchlauf sind es nurnoch 15 Elemente, beim nächsten 14, usw. bis es 0 Elemente sind. Die Zahl hat sich dabei nicht verändert.

Da fing die Spielerei an: Ein Timer wurde eingefügt und bald darauf stellte ich fest, dass immer dann 16 Elemente ausgegeben werden, wenn der Wert für den Timer geändert wird. Dann Tat ich das einzig logische und hab einen Zufallszahlengenerator an den Timer gehängt (...) was aber auch nicht den gewünschten Effekt brachte. Ein Primitivbeispiel brachte auch nicht die gewünschte Erleuchtung, denn da funktionierte die Operation beliebig oft.
Als letztes blieb mir nur ein Ausweg: Ich hab das gesamte Blockdiagramm von einem VI in ein leeres kopiert, wo es problemlos funktionierte. Ich habe das neue VI verwendet und mein Programm lief wieder problemlos.

Ich brauche wohl nicht zu erwähnen, dass die ganze Sache recht blutdrucksteigernd war. Hat irgendjemand eine Idee, warum das nicht funktioniert hat aber in nem anderen VI problemlos funktioniert? VIs werde ich eventuell morgen hochladen, wenn ich Muse finde. Dann kann jeder selbst den Wahnsinn bewundern...


RE: Number to Boolean Array: Ausgabe wird immer weniger - GerdW - 16.02.2011 21:28

Hallo jak,

im NI-Forum wurde über einen Fehler bei bestimmten Array-Größen berichtet, vielleicht hängt dein Problem damit zusammen...

Zitat:eine Idee, warum das nicht funktioniert hat aber in nem anderen VI problemlos funktioniert?
Der übliche "insane object"-Fehler? Nach Kopieren in ein neues Blockdiagramm werden diese (meist) entfernt und wieder ein gut funktionierendes VI kompiliert Smile


RE: Number to Boolean Array: Ausgabe wird immer weniger - jak888 - 16.02.2011 22:57

Insane Object? Ich krieg hier gleich so'n Fön...
Naja, gut, dass das Problem jetzt "gelöst" ist.

Ich hab mir halt während der Lösung mehrfach gedacht: Die Software speichert die U16 Integer doch sowieso als Array[16] von 1en und 0en... Also wieso die Probleme bei der Umwandlung...


RE: Number to Boolean Array: Ausgabe wird immer weniger - macmarvin - 17.02.2011 10:03

Klingt nach einem fiesen Fehler den du da gefunden hast.
Bei "magischen" Problemen mache ich üblicherweise als erste Handlung ein forced recompile (strg+shift+Run-Button) über alles, hattest du das mal probiert?

Die Umwandlung von U16 auf Bool[] ist für LV kein reiner Typecast. Vielmehr wird daraus ein U8[16] (intern ist jeder Bool ein Byte) also aus 2 Byte werden 16 Byte (+Arrayoverhead).