LabVIEWForum.de
Anwedung startet VI - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Application Builder (/Forum-Application-Builder)
+---- Thema: Anwedung startet VI (/Thread-Anwedung-startet-VI)



Anwedung startet VI - MicroScoop - 18.03.2021 12:30

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


RE: Anwedung startet VI - GerdW - 18.03.2021 12:36

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…


RE: Anwedung startet VI - MicroScoop - 18.03.2021 13:10

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


RE: Anwedung startet VI - GerdW - 18.03.2021 13:29

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!


RE: Anwedung startet VI - MicroScoop - 18.03.2021 13:39

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


RE: Anwedung startet VI - MicroScoop - 18.03.2021 13:56

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".


RE: Anwedung startet VI - jg - 18.03.2021 14:29

(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


RE: Anwedung startet VI - MicroScoop - 23.03.2021 12:05

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