Ich arbeit seit einer Zeit an einem Programm und hab im Laufe der Programmierung Unregelmäßigkeiten mit
Vergleichsoperatoren entdeckt die absolut nicht logisch sind!!!
Um das zu verdeutlichen habe ich ein kleines Beispiel-VI
"Para2.vi" erstellt und dazu ein kurzes Video
http://screenr.com/Svm aufgenommen.
Bitte schaut euch das an oder testet das VI, oder programmiert es halt nach ...
Ich weiß jetzt leider noch nicht ob nur mein System davon betroffen ist oder ob dieser Bug allgemein ist.
Das Beispiel-VI soll die While-Schleife, bei einem Wert der größer ist als die Eingabe (x), stoppen. Die Schrittweite kann dazu eingestellt werden, denn mit jedem Schleifendurchlauf wird zum Startwert Null die Schrittweite dazu addiert und danach an einen Schieberegister übergeben. Und wie gesagt, davor erfolgt die Abfrage mit einem Vergleichsoperator! Ich hab hier als Beispiel den "größer"-Vergleichsoperator gewählt. ... Wenn also der neu berechnete Wert größer als x ist, dann soll die Schleife gestoppt werden, und genau hier kommen die Bugs!!! Denn bei bestimmten Werten für x und für die Schrittweite kommt es vor, dass bei einem "gleichen" Wert die Abfrage als "true" ausgewertet wird. Statt
">" gilt also bei bestimmten Werten
">=". usw....
Aber dieser Bug ist auch bei anderen Vergleichsoperationen da, guckt euch das
Video einfach mal an!
Ich hab vorhin sogar einmal LabVIEW 2009 mit der eingebauten Funktion (beim Deinstallieren/Installieren) "reparieren" lassen und danach noch den Patch f3 installiert, aber gebracht hat das nichts :-(