LabVIEWForum.de
Parameter aus LV DLL - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: DLL & externer Code (/Forum-DLL-externer-Code)
+---- Thema: Parameter aus LV DLL (/Thread-Parameter-aus-LV-DLL)



Parameter aus LV DLL - hammerheadbene - 18.10.2011 13:14

Ist bestimmt eine absolute Noob Frage, aber ich weiß es trotzdem nicht.

Ich möchte in Labview mehrere Oszis´s auswerten, aber nur eine Routine verwenden. Soweit so gut funktioniert das alles ganz gut mit IVI. Nun möchte ich die komplette Routine als dll exportieren und in meinen C# Programm verwenden. Aufruf klappt auch super aber jetzt kommt der Haken:

Wie kann ich Parameter in Labview definieren und diese dann im Aufruf der DLL in C# an das Programm übergeben. Mir würde schon ein einfacher Integer-Wert für den Anfang reichen. Ich weiß nicht, wie ich den Parameter in LV so definiere, dass ich ihn später in C# "rausholen" kann aus der dl, um schließlich damit dann weiterarbeiten zu können.

Vielen Dank für eure Hilfe.


RE: Parameter aus LV DLL - M@rRy - 18.10.2011 14:29

Mahlzeit,

vom Prinzip her ist das ganz einfach in folgenden Schritten:

1. Bau ein VI (abgehackt)
2. Definiere dir selbst was du übergeben möchtest (einlesen als direkte Übergabe eines Wertes, Ausgaben als Pointer)
3. Jetzt musst du das auch LV miteilen, das tust du indem du zunächst oben Rechts auf das Icon links klickst und "show Connector" wählst.
4. Klicke in eins der Connector-Felder und dann in das Control (für einen Wert der eingelesen werden soll) und in die Indicator (für einen Wert der ausgegeben werden soll)
5. Nun bauen wir die dll, dafür gehste auf tools -> Build Application / Shared Library, wähle deinen Pfad, den Namen und co und bevor du nun auf Bulid klickst gehst du auf den Reiter Source Files.
6. Doppelklick auf den Namen des VI's das du gerade offen hast, dort kannst du jetzt deine Übergabeparameter hinzufügen / löschen und bearbeiten und nun BUILD! Fertig.

Nun möchtest du die DLL ja in C verwenden, dafür solltest du dir überlegen ob du die DLL statisch (immer) oder dynamisch (nur beim Aufruf im Programm) verwenden möchtest. Des Weiteren musst du natürlich eine definition der Funktion, die als Übergabe fungiert, in C definieren. Solltest du dir nun nicht gemerkt haben wie genau dieser Funktionsaufruf aussah, mache ich nämlich nie, schau einfach in den Ordner wo deine DLL gespeichert wurde und öffne die Header-Datei. Das ist da dein nötiges Format. Nun kannst du die Funktion in C verwenden, wie gesagt, Pointer zum auslesen, Variablen direkt für Eingaben.

Viel Spaß, solltest du dich mit der Syntax noch nicht auseinander gesetzt haben dann klick mal hier und schau dir unter Tutorials das ganze bei der DLL mal an.

Gruß
Daniel