LabVIEWForum.de - Anwedung startet VI

LabVIEWForum.de

Normale Version: Anwedung startet VI
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Werte Kollegen, ich müsste mich mal der Schwarmintelligenz bedienen.

Folgende Thematik:
- Ich hab ein Unterprogramm, nennen wir es Sub.vi, welches ablaufinvariant ist und die Arbeit einer Klimabox übernimmt. Davon laufen eine unbestimmte Anzahl Parallel. Diese übernehmen eigenständig ihre Konfiguration, Klimamessung und Datenspeicherung.
- Ich hab ein Hauptprogramm, nennen wir es Master.vi, in dem die Benutzer Zugriff auf die Subs bekommen und sich die Frontpanel anzeigen lassen können (zeigt Klimadaten aus der jeweiligen Position der Klimabox)

Das funktioniert soweit alles tadellos...bis ich eine Anwendung daraus generiere. Das Masterprogramm soll auf einem Server laufen und geht dort natürlich nur als exe. Leider kann in dieser exe, keine Sub mehr gestartet werden.
Starte ich den Sub als VI, fehlen natürlich alle darin enthaltenen vi's sowie lib's
Die Subs als Anwendung zu starten geht auch nicht, oder sagen wir, ich weiß nicht wie, da ich ja auch Parameter (Konfigurationen) an die Subs übertragen muss.

Hat jemand eine Idee für dieses Problem???

PS: Ich hab zur Übersicht nur den Master im Anhang
Hallo Scoop,

hast du den Pfad zum subVI mal überprüft?
Hast du bei den subVIs alle benötigten subsubVIs bereitgestellt?
Hast du mal über ein Error-Handling/-Logging im Master nachgedacht?

Die bessere Lösung besteht üblicherweise darin, alle aufzurufenden subVIs in deine Master-EXE als "immer enthaltene Daten" mit hineinzubauen. Oder man arbeitet mit statischen VI-Referenzen, die stellen auch sicher, dass das subVI beim EXE-Build inkludiert wird…
Hallo Gerd, danke für deine schnelle Antwort.

Zitat:hast du den Pfad zum subVI mal überprüft?
Ja, das passt soweit.
Zitat:Hast du bei den subVIs alle benötigten subsubVIs bereitgestellt?
Nein, das ist ja das Problem, mit dem "Wie?"
Zitat:Hast du mal über ein Error-Handling/-Logging im Master nachgedacht?
Da sitz ich gerade dran.
Zitat:Die bessere Lösung besteht üblicherweise darin, alle aufzurufenden subVIs in deine Master-EXE als "immer enthaltene Daten" mit hineinzubauen. Oder man arbeitet mit statischen VI-Referenzen, die stellen auch sicher, dass das subVI beim EXE-Build inkludiert wird…
Was passiert denn wenn ich VI's in "immer enthalten" schiebe?
Die statische VI-Referenz ist doch Pfad-gebunden?! Da müssten die Pfade zwischen VI und Anwendung gleich sein, nehm ich an. Sind bei der stat. Ref alle "inneren" VI's mit dabei? Das wäre dann ja die beste Lösung
Hallo Marko,

Zitat:Was passiert denn wenn ich VI's in "immer enthalten" schiebe?
Sie landen dann im Executable, mitsamt ihrer Dependencies…

Zitat:Die statische VI-Referenz ist doch Pfad-gebunden?! Da müssten die Pfade zwischen VI und Anwendung gleich sein, nehm ich an. Sind bei der stat. Ref alle "inneren" VI's mit dabei? Das wäre dann ja die beste Lösung
Bei statischen Referenzen landen die subVIs auch automatisch im Executable, mitsamt Dependencies.
Und einen Pfad brauchst du dann auch nicht mehr, da du ja schon eine Referenz hast!
Zitat:Hallo Marko,
Wer ist Marko? Big Grin

Zitat:Die statische VI-Referenz ist doch Pfad-gebunden?! Da müssten die Pfade zwischen VI und Anwendung gleich sein, nehm ich an. Sind bei der stat. Ref alle "inneren" VI's mit dabei? Das wäre dann ja die beste Lösung
Bei statischen Referenzen landen die subVIs auch automatisch im Executable, mitsamt Dependencies.
Und einen Pfad brauchst du dann auch nicht mehr, da du ja schon eine Referenz hast!
Hab ich jetzt gemacht. Bekomme folgenden Fehler:
"Fehler 1198 bei Methodenknoten in reentrant_call_static.vi->cb_start.vi->#Klimaster-v1.01.vi
Mögliche Ursachen:
LabVIEW: (Hex 0x4AE) Das VI befindet sich in einem für diese Operation unzulässigen Zustand. Ändern Sie für diese Operation den Ausführungsmodus des VIs auf "ablaufinvariant".
"

Das aufzurufende VI ist ablaufinvariant!

Edit:
ich häng mal das aufrufende VI mit dran
Gerd, hab dank, es läuft.Dais

Die vorherige Fehlermeldung kam zu Stande, weil die statische Referenz "strikt typisiert" war...mein Fehler!!!

Jetzt läufts. Für alle die ähnliche Probleme haben,.. VI's aus Anwendungen heraus immer als statische Referenz starten und beim kompillieren die aufzurufenden VI's mit in "immer enthaltene Dateien".
(18.03.2021 13:56 )MicroScoop schrieb: [ -> ]Jetzt läufts. Für alle die ähnliche Probleme haben,.. VI's aus Anwendungen heraus immer als statische Referenz starten und beim kompillieren die aufzurufenden VI's mit in "immer enthaltene Dateien".
Beides brauchst du nicht. Ich bin aber bei Gerd, "Static VI Reference" ist der einfachste Ansatz.

Gruß, Jens
Zitat:Ich bin aber bei Gerd, "Static VI Reference" ist der einfachste Ansatz.

Ja, ich auch. Vor allem weil es eine Lösung ist die super funktioniert, sowohl in der späteren Anwendung als auch während der Entwicklung im VI Big Grin
Referenz-URLs