LabVIEWForum.de
vi aus DLL erstellen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: vi aus DLL erstellen (/Thread-vi-aus-DLL-erstellen)

Seiten: 1 2


vi aus DLL erstellen - leon_lab - 11.01.2013 14:26

Hallo zusammen,

ich bin blutiger Anfänger was LabView betrifft und hab startschwierigkeiten. Ich hoffe ihr wollt mir als Neuling helfen. Vielen Dank Smile

Ich hab ein Projekt bekommen bei dem es schon eine *.lvlib gibt und in dieser sind bereits schon einige Funktionen einer DLL.

Ich muss jetzt eine weitere Funktion der DLL dieser lib hinzufügen.

Ich bin folgendermaßen vorgangen:

1. *lvlib geöffnet, hinzufügen -> neu -> .vi hinzufügen
2. Konnektivität -> Bibliotheken -> Knoten zum Aufruf externen Bibliotheken
3. DLL ausgewählt, Funktion aus der Liste ausgewählt, WinAPI ausgewählt.
4. Parameter eingegeben die die Funktion verlangt.
5. Gespeichert.

Problem NR1:
Das von mir erstellte .Vi wird nicht unter "Eigene Bibliotheken" angezeigt, die anderen aber schon.

Problem NR2:
Wenn ich über "VI auswählen" das neue .vi einfüge wird es angzeigt, ich kann es per doppelklick öffnen, aber ich kann das nicht mit den anderen Elemente Verbinden. Was mach ich denn falsch? Muss ich irgendwo noch etwas einstellen?


Ich hab noch etwas anderes im Internet gefunden und zwar über Werkzeuge->Importieren->DLL. Wenn ich dass mache erstellt er mir aber eine neue .lvlib. Wenn ich da dann das .vi der alten hinzufügen will er die neue.lvlib auch einbinden. Hier kann ich dann die Parameter verbinden. Was mach ich denn nur falsch? Tu schon 3 Tage mit so etwas einfachen rum.
Ich hoffe ihr könnt mir helfen Smile

Vielen Dank


RE: vi aus DLL erstellen - GerdW - 11.01.2013 14:32

Hallo Leon,

vor dem Umgang mit DLLs aus LabVIEW heraus ist es hilfreich, sich erstmal Grundlagen wie das Einstellen der Connectoren eines VIs anzueignen...

Schon mal die Kurse von NI (s. Link in der Signatur) durchgearbeitet?

Zitat:5. Gespeichert.
Und wo?


RE: vi aus DLL erstellen - leon_lab - 11.01.2013 14:40

Danke für deine Antwort,

ich hab das Buch Einführung in LabView 4 Auflag vom Hanser Verlag hier und hab das ein bisschen gemacht.
Wie man Steuerelemente verbindet weiß ich eigentlich. Nur sind da keine Connectoren. Wie man eben Funktionen aus einer DLL erstellt habe ich auch aus dem Buch nur leider sind bei mir keine Connectoren.



Das Vi hab ich im gleichen Ordner gespeichert wo die bereits Vorhandenen Vi´s liegen. Und dann noch die Bibliothek selbst unterm gleichen Namen gespeichert.


RE: vi aus DLL erstellen - GerdW - 11.01.2013 14:54

Hallo Leon,

bitte Grundlagen durcharbeiten: Connector Pane


RE: vi aus DLL erstellen - leon_lab - 12.01.2013 20:42

Bin ich jetzt blöd? Ich habe das alles so gemacht, ich lese jetzt aber nicht raus wieso ich bei meiner selbst erstellten vi keine Connectors habe. Obwohl ich die doch im Vi so erstellt habe...


RE: vi aus DLL erstellen - Trinitatis - 12.01.2013 20:47

(11.01.2013 14:40 )leon_lab schrieb:  Wie man Steuerelemente verbindet weiß ich eigentlich. Nur sind da keine Connectoren. Wie man eben Funktionen aus einer DLL erstellt habe ich auch aus dem Buch nur leider sind bei mir keine Connectoren.


Hallo leon_lab,

Dieser Antwort entliest man, dass du noch keine Connectoren erstellt hast.

Gruß, Marko


RE: vi aus DLL erstellen - leon_lab - 13.01.2013 00:28

Ok, dann hab ich den Link nicht richtig verstanden... aber Danke jetzt weiß ich bescheid, ich werde es am Montag gleich probieren.

Ich hätte da noch eine Frage.

Ich muss ein Aray mit 16 Integer werte der Funktion übergeben. Wie sieht dass denn in Lab-View aus. Ich find da nichts im Internet.

Den genauen Funktionsrumpf hab ich nicht 100% im Kopf aber ich versuch ihn schnell hinzuschreiben (wenns unklar ist werde ich ihn am Montag genau kopieren)


long * funktionsname(long * handle, long * array);

Also ein array ist ja eigentlich immer ein Pointer. Wenn ich jetzt das Vi erstelle, ziehe ich dann in das Frontpannel ein Array und pack dann in dieses Array so ein Integer Steuerelement 16 mal. Cluster sind glaub für Strukturen wie ich das verstanden habe?

Vielen lieben Dank für eure Hilfe.
Jetzt stehe ich nicht mehr ganz so im Dunkeln Smile


RE: vi aus DLL erstellen - Trinitatis - 13.01.2013 00:41

(13.01.2013 00:28 )leon_lab schrieb:  Wenn ich jetzt das Vi erstelle, ziehe ich dann in das Frontpannel ein Array und pack dann in dieses Array so ein Integer Steuerelement 16 mal.

Hallo leon_lab,

das kannst ja mal versuchenSmile

Du erstellst das Array so, wie du es beschrieben hast, nur nicht 16 mal reinziehen - einmal reicht. Wieviele Werte du dann später in dieses Array schreibst, wenn du es der DLL übergibst, hängt dann vom Aufruf-VI der DLL ab. Wenn du saagst, es müssen 16 sein, dann musst du 16 reinschreiben.

Ob man einer DLL einen Cluster übergeben kann, weiß ich gar nicht - würde mich auch mal interessieren, ich denke mal: eher nicht.


Gruß, Marko


RE: vi aus DLL erstellen - leon_lab - 13.01.2013 11:39

Mach ich dass dan später im Blockdiagramm wenn ich die Vi zusammen baue oder?


RE: vi aus DLL erstellen - leon_lab - 14.01.2013 08:25

Also der Funktionsheader ist folgendermaßen:

long funktion(void *handle, unsigned int *data);

Das handle wurde in den anderen Beispielen als "Numerisches Element" - vorzeichenloser 32-Bit Interger und wird als Wert übergeben, das habe ich hier auch so gemacht.

Bei dem usigned int *data bin ich mir jetzt einfach nicht sicher wie man das richtig macht.

Ich hab folgendes eingestellt:
Typ: Array
Datentyp: vorzeichenloser 16-Bit Integer
Dim: 1
Arry-Format: Array-Datenzeiger.

Dann hab ich in das Frontpanel ein Array gezogen und hier einen U16 Integer Wert rein und das dann mit dem Connector der DLL verbunden. Ist das so richtig?

VIELEN LIEBEN DANK FÜR EURE HILFE Smile