INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

.exe arbeitet nicht



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

30.01.2012, 11:05
Beitrag #1

hi2012us Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Jan 2012

2010 SP1
2011
EN


Deutschland
.exe arbeitet nicht
Hallo,

ich habe ein ziemlich komplexes Programm, welches ich nun als ausführbare .exe-Datei erstellen soll.
Als Anleitung dafür dient mir das Buch "Einführung in LabVIEW" von Wolfgang Georgi&Ergun Metin.

Zu Beginn soll man alles was man benötigt bei einem neuen Projekt unter "my Computer" reinziehen.
Anschließend unter "Build Specifications" auf "new" -> "Application (EXE)" eine .exe erstellen.
Dazu muss unter "Source File" die HauptVI zu "Startup VIs" hinzufügen.

Nun zu meinem Problem:
Wenn ich dort dann nichts zu "Always Included" hinzufüge, so wird eine .exe Datei erstellt.
Diese kann ich auch ausführen und mein Programm startet, jedoch kann ich in meinem Programm einen Klick machen, danach geht nichts mehr.

Wenn ich dort dann zu "Always Included" alle SubVIs und Dateien hinzufüge, die ich normalerweise im Ordner habe, aus dem ich mein Programm als VI über LabVIEW starte, dann kommt immer wieder eine Fehlermeldung zu irgendwelchen SubVIs. Diese seien angeblich nicht ausführbar ( "broken"). Dies ist soweit auch richtig, als dass die SubVIs zum Teil Informationen aus meiner HauptVI bekommen und erst dann funktionieren. Nochmal der Hinweis: Starte ich die VI ganz normal über LabVIEW, dann funktioniert das Programm.


Kann mir da jemand einfach so helfen, also liegt der Fehler darin, wie ich die .exe erstellen möchte, oder liegt der Fehler irgendwo in meinem Programm?

Danke schonmal für alle Bemühungen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30.01.2012, 11:19
Beitrag #2

Hook1986 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 149
Registriert seit: Jan 2012

2010
2011
DE_EN


Deutschland
RE: .exe arbeitet nicht
Hallo,

Nur so ins Blaue raten bringt es meist nicht. Etwas mehr Informationen wären da doch schon von Nöten.
Z.B.: Welche Informationen kommen von deinem "Main" und werden wie in deinem "Sub" das ja "broken" sein soll verarbeitet? Wäre mal echt interessant, wenn du das zeigen könntest.
Sonst kann es häufig auch zu Problemen der .Exe kommen, wenn du irgendwo relative Pfade verwendest und diese relativ zu deinem VI liegen. Dann müsstest du einfach nur hingehen und den Pfad in der Executable zweimal strippen statt einmal. Siehe hier.

MfG Carsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.01.2012, 11:43 (Dieser Beitrag wurde zuletzt bearbeitet: 30.01.2012 11:51 von hi2012us.)
Beitrag #3

hi2012us Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Jan 2012

2010 SP1
2011
EN


Deutschland
RE: .exe arbeitet nicht
Hey Carsten,

danke für die schnelle Antwort.
Meine Subs geben Daten an die Main. Also als Beispiel stell ich bei meiner Main für meine Motorsteuerung Min- und Max-Werte ein, die Sub checkt dann ob Min auch kleiner als Max ist. Solche Sachen halt.

Das Problem ist, ich hab das Programm nicht komplett selbst erstellt, sondern nur von meinem Vorgänger übernommen.
Ich kann leider auch nicht die VI einfach hochladen, Betriebsgeheimnisse =(.

Dein Hinweis auf das "strippen" könnte aber trotzdem nützlich sein.
Denn in dem Ordner meines Programms sind einige Unterordner, die dann config-Dateien und SubVIs enthalten.
Im Main wird darauf so zugegriffen: der String "resources\interface\interface.vi" wird weitergegeben über ein "String-to-Path" an "Open VI Reference".
Dabei liegen Main.VI und der Ordner "resources" auf gleicher Ebene. Also müsste es sich um relative Pfade handeln?!

Also hab ich mir deinen Link zum "strippen" angesehen, jedoch versteh ich nicht wie ich das auf meine relativen Dateipfade anwende.
Denn bei meiner .exe-Herstellung entstand die .exe, .ini, .aliases und ein Ordner "data" in dem einige .conf-Dateien sind.
Also sind meine SubVIs mit in der .exe? wie gebe ich ihm dann die Pfade an??

mfg

edit: ich hab so einen Aufruf-Teil jetzt mal kurz nachgebastelt und angehängt:


Angehängte Datei(en)
10.0 .vi  ref.vi (Größe: 16,7 KB / Downloads: 270)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.01.2012, 12:06 (Dieser Beitrag wurde zuletzt bearbeitet: 30.01.2012 12:10 von Hook1986.)
Beitrag #4

Hook1986 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 149
Registriert seit: Jan 2012

2010
2011
DE_EN


Deutschland
RE: .exe arbeitet nicht
Hallo,

Du hast schon richtig erkannt, dass du ein Pfadproblem hast, weswegen dein Programm abstürzt. Das Problem ist, dass du relative Pfade verwendest. Abhilfe kannst du dadurch verschaffen, dass du die Pfade entweder immer absolut angibst, was aber das Problem hat, dass die Datei immer an einem festen Ort liegen muss (Das ist eher ein Nachteil). Die zweite Möglichkeit wäre, dass du die Dateien, auf die du dich beziehst (Configs), in den Ordner "Data" der ja beim Build erzeugt wird reinkopierst. Dafür kannst du zum Beispiel auch ein kleines VI nutzen, das du als "Post-Build-Action" ausführst. Dann musst du in der Case-Struktur in dem jeweiligen Fall den Pfad anpassen.

Edit: Die VIs, welche du während deinem Programm aufrufen willst könntest du der Einfachheit halber auch als SubVI einbinden. Dann wäre das Problem eigentlich gelöst. Falls du die VIs jedoch zwingend per Referenz aufrufen musst, müsstest du auch diese in den Ordenr "data" kopieren.

MfG Carsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.01.2012, 12:17 (Dieser Beitrag wurde zuletzt bearbeitet: 30.01.2012 12:20 von hi2012us.)
Beitrag #5

hi2012us Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Jan 2012

2010 SP1
2011
EN


Deutschland
RE: .exe arbeitet nicht
Leider steig ich da noch nicht ganz durch!

Die *.conf wurden automatisch in den Ordner "data" reinkopiert.
Die Frage ist nur welchen Pfad gebe ich in meinem Main jetz dafür an?
Einfach "data\blabla.conf" anstatt bisher "configs\blabla.conf"??

Ich will ja aber dem Endverbraucher nur noch meine .exe mit ggf dem Ordner "data" geben, er soll aber ja keine VIs an sich mehr sehen. Also ist das mit den Referenz-SubVIs nicht möglich?

mfg
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.01.2012, 12:27
Beitrag #6

Hook1986 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 149
Registriert seit: Jan 2012

2010
2011
DE_EN


Deutschland
RE: .exe arbeitet nicht
Hallo,

in dem Fall wäre es für den Aufruf der SubVIs leichter diese direkt in das Blockdiagramm reinzuziehen und somit aufzurufen. Wie das geht sollte dir ja nicht neu sein. Zudem würde es dir wahrscheinlich auch leichter fallen, als die VIs nur per Referenz aufzurufen.
Für das Problem mit den Configs hab ich dir einfach mal ein Beispiel angehängt.
Ich hatte in etwa das selbe Problem und habe es, wie in dem VI zu sehen gelöst.
Anmerkung: Meine Config lag in einem Ordner sub/inis , welcher sich in der selben Ebene wie das Main-VI befand. In der Executable dagegen in dem data Ordner.

MfG Carsten


Angehängte Datei(en)
10.0 .vi  Pfadextraktor.vi (Größe: 21,13 KB / Downloads: 327)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30.01.2012, 12:37
Beitrag #7

hi2012us Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Jan 2012

2010 SP1
2011
EN


Deutschland
RE: .exe arbeitet nicht
Danke, dass mit den configs versuch ich so mal.

Das mit den SubVIs wird wohl so nicht klappen Ahrg1
Der Grund, warum Referenzen benutzt werden ist, dass ich dann bestimmte SubVIs mehrfach aufrufen und benutzen kann, also als sog. Clone. Sie arbeiten dann parallel aber unabhängig von einander.
Ziehe ich die SubVIs direkt rein, so ist dies meines Wissens nach nicht mehr möglich.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  SUBVI arbeitet nach EXE Erstellung nicht richtig hulk 3 4.682 30.01.2021 18:30
Letzter Beitrag: hulk
  erstellte exe arbeitet auf Rechner mit RT-Engine nicht fehlerfrei der Jens 2 6.153 26.03.2012 11:59
Letzter Beitrag: der Jens
  Application arbeitet nicht richtig mit Schnittstellen auf anderem Rechner rebo 7 6.746 26.10.2010 21:02
Letzter Beitrag: rbliomera

Gehe zu: