LabVIEWForum.de
RS-232 Abfrage läuft nicht als sub vi in .exe - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Application Builder (/Forum-Application-Builder)
+---- Thema: RS-232 Abfrage läuft nicht als sub vi in .exe (/Thread-RS-232-Abfrage-laeuft-nicht-als-sub-vi-in-exe)



RS-232 Abfrage läuft nicht als sub vi in .exe - nomis - 31.01.2017 12:06

Hallo liebe Forumgemeinde,

Danke das es euch gibt! Durch eure vielen Beiträge konnte ich viele meiner Ideen umsetzen - Danke!

Nun stecke ich jedoch fest. Die Suche hier im Forum hat mir nicht weitergeholfen. Vielleicht kann jemand von euch weiter helfen.


Ich nutze LV 2012 SP1 und habe ein Programm geschrieben, das als erstes nach einem angeschlossenen Gerät sucht und mir die Schnittstelle ausgibt wenn das Gerät gefunden wurde. Ist das Gerät gefunden geht es im Programmablauf weiter. Das Ganze habe ich in einer StateMachine programmiert.
Wenn ich nun dieses Programm mit dem ApplicationBuilder zu einer ausführbaren Datei wandle und auf dem Entwicklungsrechner starte, läuft die oben beschriebene Suchfunktion nicht. Das angeschlossene Gerät wird nicht gefunden. Auch ist der Suchvorgang viel zu schnell beendet. Als würde das vi gar nicht ausgeführt.

Daraufhin habe ich nur die Suchfunktion als vi in eine .exe gewandelt und siehe da es funktioniert.
Dann habe ich die Suchfunktion als sub vi in eine StateMachine-artige Strucktur plaziert und es funktioniert nicht so ohne weiteres.
Erst wenn beim .exe machen bei den Advanced-Einstellungen Enable debugging aktiviert ist läuft es. Aber warum?

Anbei das CA-12 find unit.vi welches nach dem Gerät sucht
und das UI-Main.vi in dem es als Subvi nur bei eingeschaltetem Debug läuft.

Vielen Dank schon mal im Voraus


RE: RS-232 Abfrage läuft nicht als sub vi in .exe - HVo - 01.02.2017 10:27

Ist auf dem Zielrechner auch der VISA-Treiber installiert?
Wenn Du einen Installer-Package erzeugst, dann hast Du die Möglichkeit auch den VISA Treiber zzgl. der LV-Runtime mit einzubinden.


RE: RS-232 Abfrage läuft nicht als sub vi in .exe - nomis - 03.02.2017 10:08

Hallo Henrik,
hier geht es darum das die .exe auf dem Entwicklungsrechner nur läuft wenn ich das Häkchen bei debuggen setze und ich gerne wissen möchte warum das so ist. Ich selber erkenne keinen Grund dafür. Daher wende ich mich an euch.


RE: RS-232 Abfrage läuft nicht als sub vi in .exe - GerdW - 03.02.2017 10:12

Hallo nomis,

durch das "Enable debugging" werden andere Compiler-Einstellungen verwendet bzw. deutlich mehr Code (eben für das Debugging) erzeugt.

Das kann u.a. auch dazu führen, dass irgendwelche "normalen" Compiler-Optimierungen und auch Compiler-Fehler nicht mehr implementiert werden - was dann auch zu dem von dir beobachteten Phänomen führen kann…


RE: RS-232 Abfrage läuft nicht als sub vi in .exe - macmarvin - 26.04.2017 11:36

(03.02.2017 10:08 )nomis schrieb:  Hallo Henrik,
hier geht es darum das die .exe auf dem Entwicklungsrechner nur läuft wenn ich das Häkchen bei debuggen setze und ich gerne wissen möchte warum das so ist. Ich selber erkenne keinen Grund dafür. Daher wende ich mich an euch.

Der Methodenaufruf im SubVI (default Werte setzen) braucht das Frontpanel. In der Exe entfernt LV von allen VIs das FP, von denen es ausgeht das sie nicht angezeigt werden oder anderweitig gebraucht werden. Als Debugbuild sind alle Frontpanels enthalten, deshalb geht's damit.
Leider die nachfolgende Programmierung (Autoindizierte FOR-Schleife) den Error gelöscht (Leeres Eingangsarray => Null Schleifeniterationen => normale Ausgangstunnel sind default-Werte)