LabVIEWForum.de - Modular erweiterbares Berechnungsprogramm

LabVIEWForum.de

Normale Version: Modular erweiterbares Berechnungsprogramm
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo.

Ich habe folgendes Problem.
Ich habe ein 2 Dimensionales Array mit Double-Werten.
Mein Programm soll folgendes machen.
Es gibt eine Reihe von definierten Berechnungen in dem Programm. Welche Berechnung genutzt werden soll, holt sich das Programm mit den erforderlichen Parametern aus einer ini-Datei.
Das Rechenergebnis wird immer in einen String gewandelt.
Jetzt will ich in der ini.datei eine Option schaffen, dass man eine dll/Bibliothek aufrufen kann, sodass ich das Programm darüber später erweitern kann.
In der ini-Datel würde dann ein Schlüssel "lib" stehen der den Namen/Pfad der dll/Bibliothek enthält.
Das Hauptprogramm soll bei diesem Schlüssel dann die externe Bibliothek nutzen zur Berechnung.
Dann könnte ich Funktionen nachliefern, indem ich die dll/Bibliothek und einen passenden ini-Eintrag nachliefere.
Die Ausführung der dll/Bibliothek soll ohne Frontpanel o.ä. ablaufen und einfach den Stringwert zurückgeben.

Hier ein Beispiel für die ini-Datei (nur ein Auszug):

-----------------------------------------------------------------------------------------------------------------
Name="Testname 1" ;Name des Blocks (wird in der Ergebnistabelle als Beschreibung angegeben)
Typ="single" ;[single,integral,dll,min,max]
Einzelwert, integraler Wert, dll-berechnung, minimaler/maximaler Wert
WL=xxx ;Parameter für Messung "single"
Low=xxx ;untere Integrations- / Bereichsgrenze
Up=xxx ;obere Integrations- / Bereichsgrenze
Lib="xxx.dll" ;Name der DLL-Datei
-------------------------------------------------------------------------------------------------------------------

Im Programm wird der Typ geprüft und dann in einer case-structur entsprechend gewählt.
Beim Typ dll wird der Wert unter Lib gelesen und es soll die externe lib eingebunden werden.
Eingang is immer das Array (welches aber unterschiedlich groß sein kann. Aber IMMER 2D-Double)
Ausgang ist String

Hat zu dem Problem jemand ne Idee?
Würde nur ungern die passwortgeschützten vi nehmen wollen.

Gruß ToFu
(07.04.2011 15:45 )ToFu schrieb: [ -> ]Hallo.

Ich habe folgendes Problem.
Ich habe ein 2 Dimensionales Array mit Double-Werten.
Mein Programm soll folgendes machen.
Es gibt eine Reihe von definierten Berechnungen in dem Programm. Welche Berechnung genutzt werden soll, holt sich das Programm mit den erforderlichen Parametern aus einer ini-Datei.
Das Rechenergebnis wird immer in einen String gewandelt.
Jetzt will ich in der ini.datei eine Option schaffen, dass man eine dll/Bibliothek aufrufen kann, sodass ich das Programm darüber später erweitern kann.
In der ini-Datel würde dann ein Schlüssel "lib" stehen der den Namen/Pfad der dll/Bibliothek enthält.
Das Hauptprogramm soll bei diesem Schlüssel dann die externe Bibliothek nutzen zur Berechnung.
Dann könnte ich Funktionen nachliefern, indem ich die dll/Bibliothek und einen passenden ini-Eintrag nachliefere.
Die Ausführung der dll/Bibliothek soll ohne Frontpanel o.ä. ablaufen und einfach den Stringwert zurückgeben.

Hier ein Beispiel für die ini-Datei (nur ein Auszug):

-----------------------------------------------------------------------------------------------------------------
Name="Testname 1" ;Name des Blocks (wird in der Ergebnistabelle als Beschreibung angegeben)
Typ="single" ;[single,integral,dll,min,max]
Einzelwert, integraler Wert, dll-berechnung, minimaler/maximaler Wert
WL=xxx ;Parameter für Messung "single"
Low=xxx ;untere Integrations- / Bereichsgrenze
Up=xxx ;obere Integrations- / Bereichsgrenze
Lib="xxx.dll" ;Name der DLL-Datei
-------------------------------------------------------------------------------------------------------------------

Im Programm wird der Typ geprüft und dann in einer case-structur entsprechend gewählt.
Beim Typ dll wird der Wert unter Lib gelesen und es soll die externe lib eingebunden werden.
Eingang is immer das Array (welches aber unterschiedlich groß sein kann. Aber IMMER 2D-Double)
Ausgang ist String

Hat zu dem Problem jemand ne Idee?
Würde nur ungern die passwortgeschützten vi nehmen wollen.

Gruß ToFu

Wo ist das Problem? Aufruf dynamischer DLL Funktionen mittels Call Library Node ist ja einfach. Und seit etwa LabVIEW 8.5 kann mann auch den Pfad zu DLL mitgeben. Der Funktionsname und die Parameterliste muss dann aber natürlich schon gleich bleiben.

Und wo in Himmels Namen kommen passwortgeschützte VIs ins Spiel????
Hi.

Danke für die Antwort.
Bin dabei, die Sache mit dem Aufruf über Libs zu lösen.
Krieg nur die Parameterübergabe nicht auf die Reihe.
Krieg immer nen Ausnahmefehler beim Aufruf des Knoten.
Wahrscheinlich stimmt der Weg noch nicht, wie ich die dll erstelle.
Sind die ersten Aktionen, die ich mit dlls mache.

Hier mal der tree aus dem die dll werden soll.
Das soll zum Schluss nen Framework werden, womit ich die zukünftigen dll-Files erstellen kann.
Bisher ist nur ne sinnlose Auswertung drin.


Gruß ToFu
Du willst in LabVIEW eine DLL machen um diese von LabVIEW aus aufzurufen! Das ginge mit VI Server auch einfacher. Dann legst Du Dein Toplevel-VI mit allen SubVIs in eine LLB und lädst das VI von dort mit VI Server. Schau Dich mal um nach LabVIEW Plugin Vorbildern.
Referenz-URLs