' schrieb:Hallo Forum,
ich habe da mal wieder ein kleines Problem:
Aus meinem StartVI heraus starte ich zwei Programme. Über zwei Schaltflächen auf dem Frontpanel des Start VI´s möchte ich die Frontpanel der beiden
Programme ein bzw. ausblenden. In der Entwicklungsumgebung funktioniert dieses bei beiden Programme einwandfrei.
Sobald ich eine EXE erstelle funktioniert das Ein- und Ausblenden nur noch bei dem unteren Programm (AnalogEingaengeServer.vi). Bei dem oberen Programm tut sich nichts.
Die VI - Einstellungen (FP: Datei -> VI - Einstellungen) sind bei beiden Programmen identisch. Auch die Einstellungen sowie die SUB - VI - Einstellungen (rechte Maustaste auf das Programm) sind gleich.
Hier der Code:
1. Im False - Case soll der Frontpanel geschlossen werden:
[attachment=45609:false_case.gif]
2. Im True - Case soll der Frontpanel geöffnet werden:
[attachment=45610:true_case.gif]
Ich habe hier schon einige Beiträge gelesen, in denen dieses Problem etwas mit dem Pfad und der entsprechenden Referenz zu tun hat.
Daran scheint es hier aber nicht zu liegen. Bei einem der beiden Programme funktioniert es ja schließlich.
Hat jemand eine Idee?
Vielen Dank vorab für die Unterstützung.
Vogster
Zumindest zu Debug-Zwecken solltest Du die Error Cluster durchverbinden und irgendwo sichtbar machen. So weisst Du überhaupt nicht ob das Open VI Referenz VI überhaupt funktioniert. In neueren Versionen ist nämlich diese Funktion sehr wählerisch geworden. Wenn Du der einen Path gibst der nicht perfekt übereinstimmt mit dem Pfad des VIs das eventuel schon im Speicher ist (als SubVI irgendwo anders eingebaut) dann meckert die mit einem Fehler und tut nichts. Da das VI innerhalb Deines EXE liegt wird der absolute Konstanten Pfad ehh nicht stimmen (und im Development System auch nur auf Deinem heutigen PC oder nur wenn Du auf einem anderen PC die genau gleiche Projekthierarchy auf der Disk anhältst).
Besser ist um ein VI zu benützen das im gleichen Directory liegt wie Deine VIs die Du dynamisch aufrufen willst. Darin hast Du ein Current VI Path, den Stripst Du einmal und fügst dann den Namen des VIs das Du aufrufen willst wieder hinzu. Da in einem EXE alle VIs quasi in einem einzigen Verzeichnis innerhalb des Executables liegen (ok sobald Du LabVIEW Libraries und Classes verwendest braucht das nicht mehr unbedingt so zu sein aber ansonsten ist's schon so) funktioniert diese Methode dann auch da.
Rolf Kalbermatter