LabVIEWForum.de
Exe liefert andere Berechnungsergebnisse - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Application Builder (/Forum-Application-Builder)
+---- Thema: Exe liefert andere Berechnungsergebnisse (/Thread-Exe-liefert-andere-Berechnungsergebnisse)



Exe liefert andere Berechnungsergebnisse - Boncho - 14.12.2012 10:59

Hallo zusammen!

Ich habe ein Problem in meiner fertigen Application, welches ich mir so recht nicht erklären kann. Vielleicht könnt ihr mir dort helfen?

Grundsätzlich folgendes: Ich habe ein Programm geschrieben, welches mit einem Spektrometer kommuniziert, Messungen durchführt, mit den Ergebnissen rumrechnet, einen Messreport erstellt usw. Funktioniert auch alles wie es soll. Aus dieser Software habe ich dann einen Installer gebastelt. Das tut soweit auch und die Software läuft. Auch die Dateipfade habe ich für die .exe entsprechend angepasst.
Lediglich eine Berechnung von vielen bereitet mir Sorgen, denn die liefert in der .exe andere Ergebnisse als in der Entwicklungsumgebung. Konkret geht es dabei um die Berechnung des Farbortes eines Spektrums. Dazu liest die Funktion Tristimuluskurven aus Textdateien ein, gewichtet das Spektrum mit diesen und berechnet daraus den Farbort in x und y Koordinaten.
Nur warum unterscheiden sich die Ergebnisse zwischen Entwicklungsumgebung und Exe? Die Textdateien scheint er ja zu finden...

Ich habe das VI "Chromacity coordinates.vi" mal angehangen, inklusive zweier VI's welche die Textdateien lesen. Das eine erstellt eine Tabelle wieviele Bytes eine Zeile in der Textdatei hat, das andere kann dann entsprechend gezielt Zeilen aus den Textdateien lesen. Beispielhaft habe ich auch mal eine Tristimuluskurve als Textfile angehängt.

Ich wäre echt dankbar, wenn da jemand einen Tip hat!

Viele Grüße,
Tobias


RE: Exe liefert andere Berechnungsergebnisse - GerdW - 14.12.2012 13:10

Hallo boncho,

- Was deine beiden VIs zum Einlesen der Textdatei und das nachfolgende Umwandeln von String nach Zahl erledigen, kannst du auch mit der Funktion "Read from Spreadsheet File" (oder ReadTextFile mit SpreadsheetStringToArray) bekommen. Und dies viel einfacher...

- Es fehlt ein subVI "Array wavelength cut"...

- lass dir doch einfach in der EXE das VI anzeigen, um "live" alle Werte begutachten zu können. (Sowas nennt man Debugging: Wenn ein anderer Rechenwert herauskommt, prüft man die Rechnung inkl. Eingangs- und Zwischenwerte...)


RE: Exe liefert andere Berechnungsergebnisse - jg - 14.12.2012 13:28

Ich tippe mal darauf, dass du in deinen Entwicklungsumgebung den "System-Dezimalpunkt" abgeschaltet hast.
Das "weiß" jetzt die Exe nicht, und erwartet beim Einlesen deiner txt-Datei Zahlen mit einem Komma als Dezimaltrennzeichen.

Gruß, Jens


RE: Exe liefert andere Berechnungsergebnisse - Boncho - 14.12.2012 14:06

(14.12.2012 13:10 )GerdW schrieb:  - Was deine beiden VIs zum Einlesen der Textdatei und das nachfolgende Umwandeln von String nach Zahl erledigen, kannst du auch mit der Funktion "Read from Spreadsheet File" (oder ReadTextFile mit SpreadsheetStringToArray) bekommen. Und dies viel einfacher...

Hallo Gerd,

Ist mir bekannt, ich lese allerdings innerhalb der Software oft aus Textdateien ein und daher die beiden VI's, die auch an vielen anderen Stellen verwendet werden.

(14.12.2012 13:10 )GerdW schrieb:  - Es fehlt ein subVI "Array wavelength cut"...

Sorry, vergessen!

(14.12.2012 13:10 )GerdW schrieb:  - lass dir doch einfach in der EXE das VI anzeigen, um "live" alle Werte begutachten zu können. (Sowas nennt man Debugging: Wenn ein anderer Rechenwert herauskommt, prüft man die Rechnung inkl. Eingangs- und Zwischenwerte...)

Ich habe versucht die Exe zu debuggen aber da hat er mir schon beim öffnen des Debuggers einen Fehler gemeldet. Einfach, das entsprechende VI Frontpanel einblenden zu lassen, da hätte ich auch mal selbst drauf kommen können. Blush


(14.12.2012 13:28 )jg schrieb:  Ich tippe mal darauf, dass du in deinen Entwicklungsumgebung den "System-Dezimalpunkt" abgeschaltet hast.
Das "weiß" jetzt die Exe nicht, und erwartet beim Einlesen deiner txt-Datei Zahlen mit einem Komma als Dezimaltrennzeichen.

Gruß, Jens

Hallo Jens,

Danke! Thats it! Big Grin
Ich habe in sämtlichen anderen Programmteilen, die aus Textdateien lesen, den Code entsprechend angepasst, nur in diesem hab ichs wohl vergessen. Manchmal sieht man den Wald vor lauter Bäumen nicht. Cool
Jetzt berechnet auch die Exe das korrekte Ergebnis.

Danke für die Antworten und die Hilfe, ihr beiden!

Grüße,
Tobias


RE: Exe liefert andere Berechnungsergebnisse - GerdW - 14.12.2012 14:17

Hallo Tobias,

Zitat:ich lese allerdings innerhalb der Software oft aus Textdateien ein und daher die beiden VI's, die auch an vielen anderen Stellen verwendet werden.
Und da ist es sinnvoll, jede Textdatei zweimal einzulesen? Einmal, um die Zeilenlängen zu bestimmen und dann noch einmal, um jeweils eine Zeile zu lesen? Obwohl man die schon gelesen hatte (und deshalb einfach per IndexArray darauf zugreifen könnte), aber den entsprechenden Draht nicht weiterverwendet?

Tut mir leid, aber deine zwei VIs sind RubeGoldberg...