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 

Modular erweiterbares Berechnungsprogramm



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!

07.04.2011, 15:45
Beitrag #1

ToFu Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Aug 2007

2010SP1
2004
kA

73433
Deutschland
Modular erweiterbares Berechnungsprogramm
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
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
08.04.2011, 11:20
Beitrag #2

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Modular erweiterbares Berechnungsprogramm
(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????

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.04.2011, 13:14
Beitrag #3

ToFu Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Aug 2007

2010SP1
2004
kA

73433
Deutschland
RE: Modular erweiterbares Berechnungsprogramm
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


Angehängte Datei(en)
2010 .zip  dlltest.zip (Größe: 7,71 KB / Downloads: 216)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.04.2011, 22:23
Beitrag #4

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Modular erweiterbares Berechnungsprogramm
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.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: