LabVIEWForum.de - Automatische Konfiguration eines Knotens zum Aufruf externer Bibliothekn (CLF)

LabVIEWForum.de

Normale Version: Automatische Konfiguration eines Knotens zum Aufruf externer Bibliothekn (CLF)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich möchte gerne automatisch (mithilfe eines anderen VIs) ein VI erstellen, in welchem ein Knoten zum Aufruf externer Bibliotheken enthalten ist (im Englischen: Call Library Function Node; kurz
CLF-Knoten).

Diesen CLF-Knoten möchte ich gerne automatisch konfigurieren (d. h. Definition des Funktionsnamens der DLL-Funktion, des Pfades der Bibliothek, der Parameter, etc.).

Mithilfe von VI-Skripten haben ich den ersten Teil - das Erstellen eines neuen VIs und die Platzierung eines CLF-Knotens schon - gelöst (siehe hochgeladenes VI CLF-Knoten-per-Skript.vi)

Weiß jemand, ob und wie auch die Konfiguration des CLF-Knotens mithilfe von VI-Skripten möglich ist?

Vielen Dank

Georg
Hallo Georg,

ich finde deinen Eifer gut, aber hast du dir schon mal den DLL-Import-Assistenten von LabVIEW angeschaut?
Man findet diesen unter Werkzeuge->Importieren->DLL...
Hallo GerdW,

dein Verweis auf den DLL-Import-Assistenten ist sicher gut und richtig. Danke.

Allerdings habe ich mehrere Gründe, ihn nicht verwenden zu wollen.

Erstens:
Ich möchte die Funktionen einiger Fortran-DLLs einbinden. Weil keine Header-Dateien vorhanden sind, müsste ich sie zunächst schreiben (wobei ich mich damit nicht gut auskenne).

Zweitens:
Die DLLs enthalten sehr viele Funktionen. Bei Verwendung des DLL-Import-Assistenten müsste ich die Bezeichnungen der Ein- und Ausgabeparameter per Hand eingeben (durchschnittlich vier pro Funktion, beispielsweise "Temperatur t in °C"). Würde ich die CLF-Knoten mithilfe von VI-Skripten konfigurieren können, wäre es möglich, diese Bezeichnungen aus vorhandenen Listen auszulesen.

Drittens:
Meines Wissens ist es nicht möglich den Pfadnamen der DLL mit dem Import-Assistenten als variabel (Angabe über das Blockdiagramm) zu konfigurieren (ich könnte mich irren). Weil dies aber aus bestimmten Gründen notwendig wäre, müsste ich die (Sub)VIs für jede Funktion öffnen, die Konfiguration des Pfadnamens vornehmen, ein Eingabeelement auf dem Frontpanel erstellen und es mit dem Anschlussfeld verbinden.

Hätte jemand einen Hinweis, wie die Konfiguration des CLF-Knotens mithilfe des "scriptings" automatisch vorgenommen werden kann, würde ich mich über einen Beitrag freuen.

Georg
Versehentlich habe ich im Eröffnungsbeitrag die falsche Datei hochgeladen.

Hier nun die richtige.
(30.08.2012 11:32 )Georg Zit schrieb: [ -> ]Versehentlich habe ich im Eröffnungsbeitrag die falsche Datei hochgeladen.

Hier nun die richtige.

Grundsätzlich scheinst Du auf dem richtigen Weg. Nun halt noch eine Unzahl von Property Nodes und Methoden an die refnum anschliessen, die von der New VI Object Node kommt, alles natürlich in der richtigen Reihenfolge und mit den richtigen Parametern die Du hoffentlich irgendwie richtig von Deinen Fortran DLLs geparst hast, und natürlich auch noch richtigen Datenfluss, denn so wie es jetzt ist wird das VI gleich nach erstellen gespeichert noch bevor die noch nicht vorhandenen Properties und Methoden Zeit haben etwas an dem VI zu tun.

Wie alles was mit VI Scripting zu tun hat solltest Du Dich auf eine lange und koffeinereiche (oder welches Aufputschmittel Du auch bevorzugst Big Grin) Entwicklung einstellen. Fix und fertigen Code habe ich nicht, da ich noch nie einen Call Library Wizard programmiert habe und dazu ehrlich gesagt auch keine Zeit habe.

Note: Es wäre übrigens sicher enorm hilfreich wenn Du für die Classkonstante am New VI Object gleich ein CallLibrary Typ verwendest
Node->GrowableFunction->CallLibrary. Dann siehst Du auch die entsprechenden Methoden und Properties die diese Klasse unterstützt und von denen Du garantiert mehr dann einige wenige verwenden wirst.
Hallo rolfk,

vielen Dank für Deine Hinweise.

Mitlerweile habe ich es hinbekommen, den CLF-Knoten mithilfe von VI-Skripten zu erstellen und auch zu konfigurieren.

Meine Lösung des Problems habe ich für interessierte LabVIEW-Nutzer im ZIP-Archiv CLFN_per_Skript.zip hochgeladen (für LabVIEW 2010 oder höher).

Nicht geschafft habe ich es, den Rückgabeparameter der Funktion zu benennen und das Namensformat des CLF-Knotens einzustellen. Sehr wichtig sind diese Einstellungen allerdings nicht.

Georg
Referenz-URLs