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 

NI VIs in dynamischem Aufruf finden?



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!

06.08.2010, 08:40
Beitrag #1

danielsan Offline
LVF-Grünschnabel
*


Beiträge: 39
Registriert seit: Mar 2007

2011-SP1
2006
DE

22000
Deutschland
NI VIs in dynamischem Aufruf finden?
Hallo zusammen,
ich weiß, dass ähnliche Fragen hier schon mehrfach aufgetaucht sind, aber ich glaube nichts passt konkret zu meinem Problem:

Rufe ich folgendes VI dynamisch aus einer exe auf

   

bekomme ich diesen Fehler:

   

Bei Aufruf aus der Entwicklungsumgebung gibt es kein Problem.
Das Problem tritt nicht mehr auf, wenn ich das VI DAQmx zurücksetzen rausnehme.

Muss ich für Ausführung in der Laufzeitumgebung die DAQmx-VIs irgendwo mit übergeben?

Im Anhang ist mal das ganze Projekt.

Grüße,
Daniel


Sonstige .zip  CallMain.zip (Größe: 329,13 KB / Downloads: 193)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.08.2010, 09:09
Beitrag #2

macmarvin Offline
CLA
***


Beiträge: 445
Registriert seit: Sep 2006

2014
2004
EN

81373
Deutschland
NI VIs in dynamischem Aufruf finden?
LV findet die SubVIs nach dem Builden nicht, da es beim builden nix von dem main.vi weiß.

Hab das Projekt inkl. buildspec angepasst.

Sonstige .zip  CallMain_fix_build.zip (Größe: 2,01 KB / Downloads: 245)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.08.2010, 09:58
Beitrag #3

danielsan Offline
LVF-Grünschnabel
*


Beiträge: 39
Registriert seit: Mar 2007

2011-SP1
2006
DE

22000
Deutschland
NI VIs in dynamischem Aufruf finden?
Hallo macmarvin,
erst mal vielen Dank für die Hilfe.
So geht es natürlich. Ist aber nicht ganz das, was ich meinte. Mein Problem ist eher repräsentativ für ein größeres Projekt, in dem ich mit Plug-Ins arbeite, die dynamisch aufgerufen werden sollen.
Daher will ich sie ja gerade nicht mit in die .exe des Aufrufers reinkompilieren.

Der dynamische Aufruf klappt in der Regel aus der Entwicklungsumgebung immer, in der runtime aber nur, wenn ich bestimmte VIs rausnehme wie das DAQmx zurücksetzen im Beispiel.

Daher noch mal die Frage. Wie kriege ich das hin, dass er diese findet, ohne dass ich sie mit in die exe reinkompilieren muss?

Gruß,
Daniel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.08.2010, 11:03
Beitrag #4

macmarvin Offline
CLA
***


Beiträge: 445
Registriert seit: Sep 2006

2014
2004
EN

81373
Deutschland
NI VIs in dynamischem Aufruf finden?
In dem du für deine dynamischen VIs/Plugins eine Buildspec anlegst.
In dem Beispiel von mir, wird das dynamisch Gerufene eben nicht mit in die Exe mit einkompiliert, sondern mit allen benötigten SubVIs daneben gelegt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.08.2010, 11:16
Beitrag #5

danielsan Offline
LVF-Grünschnabel
*


Beiträge: 39
Registriert seit: Mar 2007

2011-SP1
2006
DE

22000
Deutschland
NI VIs in dynamischem Aufruf finden?
OK. jetzt hab ichs. Lässt sich über das Ziel der zusätzlichen Datei steuern und dann nimmt er die Abhängigkeiten mit

Trotzdem finde ich das noch nicht ganz befriedigend. Prinzipiell sind doch die DAQmx-VIs schon vorhanden und auch in der Runtime drin. Warum findet er die denn nicht? Auf diesem Weg muss ich ja die Exe immer wieder neu kompilieren, wenn sich bei den Abhängigkeiten was getan hat.

Grüße,
Daniel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.08.2010, 12:21
Beitrag #6

macmarvin Offline
CLA
***


Beiträge: 445
Registriert seit: Sep 2006

2014
2004
EN

81373
Deutschland
NI VIs in dynamischem Aufruf finden?
Ne... die DAQmx VIs sind ja auch bei der Labview Entwicklungsumgebung erstmal nicht dabei. Warum sollten sie dann in der Runtime vorhanden sein?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.08.2010, 13:19
Beitrag #7

macmarvin Offline
CLA
***


Beiträge: 445
Registriert seit: Sep 2006

2014
2004
EN

81373
Deutschland
NI VIs in dynamischem Aufruf finden?
Noch ein Tipp für PlugIn-Archtitekturen in LV.
Die einzelnen PlugIns jeweils in .lvlibs packen oder noch besser gleich in LVOOP schreiben.
Erleichtert das Handling bzw. erstellen der Buildspecs.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.08.2010, 14:06
Beitrag #8

danielsan Offline
LVF-Grünschnabel
*


Beiträge: 39
Registriert seit: Mar 2007

2011-SP1
2006
DE

22000
Deutschland
NI VIs in dynamischem Aufruf finden?
Ja stimmt. Ich bin nur so daran gewöhnt, die Treiber mit draufzuhauen. Deswegen verstehe ich halt immer noch nicht so ganz, warum er sie in einem Fall findet und in dem anderen nicht. Macht für mich keinen Sinn, wenn sie installiert sind.
Hmmm. Es gibt ja noch die Option, einen Installer zu erstellen und da die DAQmx-Treiber einzubinden. Vielleicht sollte ich das mal probieren.

lvlibs verwende ich schon durchgehend.
Ich werde mal warten bis wir LV2010 zugeschickt bekommen. Da gibt es ja auch das neue Format lvlibp für kompilierte Projektdateien. Vielleicht vereinfacht das alles etwas.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.08.2010, 15:00 (Dieser Beitrag wurde zuletzt bearbeitet: 06.08.2010 15:03 von macmarvin.)
Beitrag #9

macmarvin Offline
CLA
***


Beiträge: 445
Registriert seit: Sep 2006

2014
2004
EN

81373
Deutschland
NI VIs in dynamischem Aufruf finden?
' schrieb:Ja stimmt. Ich bin nur so daran gewöhnt, die Treiber mit draufzuhauen. Deswegen verstehe ich halt immer noch nicht so ganz, warum er sie in einem Fall findet und in dem anderen nicht. Macht für mich keinen Sinn, wenn sie installiert sind.
Hmmm. Es gibt ja noch die Option, einen Installer zu erstellen und da die DAQmx-Treiber einzubinden. Vielleicht sollte ich das mal probieren.

Der DAQmx Treiber ist systemweit verfügbar wenn installiert. Die entsprechenden LV VIs werden aber nur bei Bedarf mit in die jeweilige vi.lib installiert. D.h. selbst wenn dein Installer DAQmx installiert, wird die LV Runtime immer noch die DAQmx VIs dazu suchen/finden müssen.
Du könntest da zwar Stunts probieren wie z.B. die vi.lib auf einem Rechner suchen und in den Suchpfad der LV Runtime mit aufzunehmen, aber ob sowas funktioniert... keine Ahnung und "gefühlt" wird's irgendwann gehörig krachen.
Oder du aktivierst per ini-key in der Entwicklungsumgebung, daß du SubVIs durch ihren inhalt ersetzen kannst und ersetzt alle Aufrufe die in die vi.lib gehen (hier alle DAQmx VIs) mit deren Inhalt (rekursiv). Danach kannst du den Code dann aber auch fast schon wegschmeißen Ironie

Das LV2010 inlining in Verbindung mit den neuen kompilierten Projektdateien, könnte da tatsächlich einiges bringen.
Edith: Wobei ich vor LV2010 SP1 eher vorsichtig wäre Glas1
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
  Application Builder nicht zu finden Vril 1 3.476 14.03.2010 18:52
Letzter Beitrag: Y-P
  Dynamisch eingebundene Vis in EXE finden Achimedes 10 10.532 05.07.2007 08:52
Letzter Beitrag: rolfk

Gehe zu: