LabVIEWForum.de
VI funktioniert -> Exe stürzt ab - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: VI funktioniert -> Exe stürzt ab (/Thread-VI-funktioniert-Exe-stuerzt-ab)



VI funktioniert -> Exe stürzt ab - TDO - 27.04.2015 13:23

Hallo Zusammen,

habe mal wieder ein Problem.
Ich habe ein SubVI, welches alle verfügbaren COM-Ports abklappert und prüft, ob dort ein bestimmtes Gerät angeschlossen ist.
Es können mehrere Geräte des gleichen Typs angeschlossen sein.
Das SubVI liefert ein Array, mit allen Verfügbaren Geräten, mit dem zugehörigen COM-Port und der jeweiligen Seriennummer des Geräts.
Sofern ich das VI laufen lasse funktioniert das wunderbar.
Sobald ich daraus eine .exe bilde, stürzt das Programm mit folgender Meldung ab:
[attachment=52927]

Weiß jemand, woran das liegt?
Habe das VI auch mal angehängt. Habe es in LV 2010 konvertiert. Ich nutze LV 2014.

Gruß
TDO


RE: VI funktioniert -> Exe stürzt ab - GerdW - 27.04.2015 13:38

Hallo TDO,

ich habe das VI mal etwas aufgeräumt und einen zusätzlichen Fehlerbehandlungs-Case eingefügt.
BytesAtPort ist auch überbewertet, wenn du mit aktiviertem TermChar arbeitest!
Außerdem solltest du IMMER alle Ports auch wieder schließen, die du vorher öffnest!
(Und warum man InsertIntoArray nutzen muss, um ein Element an ein Array anzuhängen, weiß ich auch nicht… Wink )
Noch ein Problem: da du für den ErrorCluster ein Schieberegister nutzt, werden nachfolgende Ports nicht mehr untersucht, sobald einer einen Fehler beim Zugriff meldet!

Zitat:Sobald ich daraus eine .exe bilde, stürzt das Programm mit folgender Meldung ab:
Ist VISA auf dem Rechner, wo die EXE läuft, korrekt installiert?
Sind die COM-Ports alle freigegeben, wenn die EXE darauf zugreifen will? (Siehe Befundung oben…)


RE: VI funktioniert -> Exe stürzt ab - TDO - 27.04.2015 13:57

Hallo Gerd,

zunächst vielen Dank für die schnelle Antwort!
Ich habe dein VI so laufen lassen, bekomme aber immer folgende Fehlermeldung:

Fehler -1073807339 bei VISA: Lesen in Find (1).vi

Mögliche Ursachen:

VISA: (Hex 0xBFFF0015) Zeitüberschreitung, bevor der Vorgang abgeschlossen werden konnte.

(27.04.2015 13:38 )GerdW schrieb:  BytesAtPort ist auch überbewertet, wenn du mit aktiviertem TermChar arbeitest!

Kann es daran liegen, dass ich jetzt die Fehlermeldung bekomme?

Zitat:Außerdem solltest du IMMER alle Ports auch wieder schließen, die du vorher öffnest!
Darauf achte ich eigentlich immer, aber du hast Recht, dass es in diesem Fall nicht IMMER wieder geschlossen wird.

Zitat:Noch ein Problem: da du für den ErrorCluster ein Schieberegister nutzt, werden nachfolgende Ports nicht mehr untersucht, sobald einer einen Fehler beim Zugriff meldet!
Eigentlich sollte ja auch kein Fehler auftreten! Und wenn ein Fehler auftritt, stürzt das Programm meistens ohnehin ab.

Zitat:Sobald ich daraus eine .exe bilde, stürzt das Programm mit folgender Meldung ab:
Ist VISA auf dem Rechner, wo die EXE läuft, korrekt installiert?
Sind die COM-Ports alle freigegeben, wenn die EXE darauf zugreifen will? (Siehe Befundung oben…)
[/quote]

Rechner ist auf dem Rechner installiert. Ist der gleiche, auf dem auch das VI läuft.
Die COM-Ports sind nur von meiner Software in Gebrauch und sollten demnach alle freigegeben sein.

Gruß
TDO


RE: VI funktioniert -> Exe stürzt ab - GerdW - 27.04.2015 14:01

Hallo TDO,

Zitat:Kann es daran liegen, dass ich jetzt die Fehlermeldung bekomme?
Ja. Deshalb kam auch noch der Hinweis auf das Schieberegister im ErrorCluster-Draht, was sich hier ungünstig auswirkt…
Tipp: TimeOut beim VISA-Init kürzer stellen (z.B. 1s) und dafür die Wartezeit in der Schleife entfernen. Dann nur noch den TimeOut-Fehler ausfiltern…

Zitat:Die COM-Ports sind nur von meiner Software in Gebrauch und sollten demnach alle freigegeben sein.
Ja, sie "sollten" freigegeben sein. Waren es im Fehlerfall aber eben nicht immer. Und das kann dann, wenn man die EXE parallel zur LabVIEW-IDE testet, zu besagten Fehlern führen (LabVIEW hält einen COM-Port belegt und die EXE darf dann nicht darauf zugreifen.)


RE: VI funktioniert -> Exe stürzt ab - TDO - 27.04.2015 14:33

Okay, das SubVI funktioniert jetzt!
Wäre möglich, dass es am vergessenen Schließen einer Referenz lag.
Jetzt kam allerdings direkt der nächste Fehler.
[attachment=52936]
Ist es möglich (in einer .exe) von einem SubVI auf das Frontpanel der eigentlichen Anwendung zuzugreifen?
Ich übergebe dem SubVI den Pfad zur Anwendung und öffne dann (hier vermutlich der Fehler) eine Referenz auf das VI um damit weiter zu arbeiten.
Wenn ich eine Referenz auf die Anwendung öffnen möchte, will das VI aber die Port oder Dienstnummer usw. und damit kann ich leider nicht dienen.

Irgendwelche Ideen dazu?

Gruß
TDO


RE: VI funktioniert -> Exe stürzt ab - GerdW - 27.04.2015 14:37

Hallo TDO,

Zitat:Wäre möglich, dass es am vergessenen Schließen einer Referenz lag.
Wovon reden wir denn hier die ganze Zeit? Hmm

Zitat:Ist es möglich (in einer .exe) von einem SubVI auf das Frontpanel der eigentlichen Anwendung zuzugreifen?
Entweder übergibt das MainVI dem subVI gleich eine Referenz auf sich (VI) oder sein Frontpanel - oder das subVI guckt in seinen eigenen Properties nach seinem Caller:
[attachment=52937]
Wenn du den VI-Namen (nur den Namen, ohne den Pfad!) kennst, kannst du natürlich auch eine String-Konstante verwenden…


RE: VI funktioniert -> Exe stürzt ab - jg - 27.04.2015 14:39

(27.04.2015 14:33 )TDO schrieb:  Okay, das SubVI funktioniert jetzt!
Wäre möglich, dass es am vergessenen Schließen einer Referenz lag.
Ja, könnte sein, denn der Original-Fehlercode liefert laut Google-Fehlersuche das hier:
http://digital.ni.com/public.nsf/allkb/6807113B057FDE4C86256B41008212ED

Gruß, Jens