LabVIEWForum.de
Excel einbinden / dll in Excel - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: ActiveX & .Net (/Forum-ActiveX-Net)
+---- Thema: Excel einbinden / dll in Excel (/Thread-Excel-einbinden-dll-in-Excel)



Excel einbinden / dll in Excel - muah - 25.04.2012 19:38

Guten Abend,
Hoffe das Thema passt in meine gewählte Kategorie.

stehe vor einem Problem, welches ich bisher nicht lösen konnte.
Ich habe eine DLL, die aus drei Werten mir etwas ausrechnet.
Diese DLL habe ich versucht in Labview einzubinden, funktioniert leider nicht (Funktionen werden angezeigt, jedoch sobald daten an die DLL übergeben werden kommt ein Fehler der im Zusammenhang mit der DLL liegt).

Mit dieser DLL kann ich jedoch ohne Probleme in Excel berechnungen durchführen.
Nun folgendes habe ich vor:

-> Labview soll Daten an Excel weiterleiten
-> Excel soll diese Daten auswerten (mithilfe der DLL)
-> Labview soll das Ergebnis auslesen

Es soll aber kein Excel zu sehen sein, es soll im Hintergrund geöffnet und evtl. geschlossen werden.

Nun meine Frage: Ist das möglich?
Wenn ja wie?

Ich bedanke mich für eure Hilfe.

Gruss


RE: Excel einbinden / dll in Excel - GerdW - 26.04.2012 09:04

Hallo muah,

Zitat:Nun meine Frage: Ist das möglich?
Alles, was die Application an Funktionen anbietet, ist möglich:
[attachment=39610]


RE: Excel einbinden / dll in Excel - abrissbirne - 26.04.2012 11:45

(25.04.2012 19:38 )muah schrieb:  Ich habe eine DLL, die aus drei Werten mir etwas ausrechnet.
Diese DLL habe ich versucht in Labview einzubinden, funktioniert leider nicht (Funktionen werden angezeigt, jedoch sobald daten an die DLL übergeben werden kommt ein Fehler der im Zusammenhang mit der DLL liegt).
Wenn du die DLL selbst geschrieben hast würde ich versuchen diese zu debuggen. Es ist doch leichter den direkten Weg zu nehmen, als der Umleitung (bitte das 'denken lesen' und 'posten' ignorieren) zu folgen Smile


RE: Excel einbinden / dll in Excel - muah - 26.04.2012 12:05

Hallo,

leider hab nicht ich die dll geschrieben, diese dll enthält komplexe berechnungen beruhend auf einigen vielen Literaturwerten.
Der direkte Weg wäre mir auch viel lieber aber leider klappt es nicht anders, hab schon Tagelang versucht die dll einzubinden nach recherche des Fehlermeldung (Error 1097) sehe ich leider keinen anderen Weg.

Soweit ich weiss wurde die dll noch mit Fortran geschrieben.

Bedanke mich für eure Hilfe.
Für andere Lösungsvorschläge bin ich offen.


RE: Excel einbinden / dll in Excel - jg - 26.04.2012 20:36

Errorcode 1097 bedeutet "nur", dass ein Ausnahmefehler bei Aufruf der DLL aufgetreten ist.
Die Ursache dafür kann vielfältig sein.
Für genauere Aussagen müssten wir die Definition der Funktion kennen, die du aufrufen willst.

Alternativ würde es sich anbieten, eine "Wrapper-DLL" in C zu schreiben, die deine DLL-Aufrufe kapselt.

Der Umweg über Excel ist IMHO sehr kompliziert.

Gruß, Jens


RE: Excel einbinden / dll in Excel - rasta - 27.04.2012 05:44

(26.04.2012 20:36 )jg schrieb:  Errorcode 1097 bedeutet "nur", dass ein Ausnahmefehler bei Aufruf der DLL aufgetreten ist.
Die Ursache dafür kann vielfältig sein.
Für genauere Aussagen müssten wir die Definition der Funktion kennen, die du aufrufen willst.

Alternativ würde es sich anbieten, eine "Wrapper-DLL" in C zu schreiben, die deine DLL-Aufrufe kapselt.

Der Umweg über Excel ist IMHO sehr kompliziert.

Gruß, Jens

Hallo,
als Ergänzung:
Error 1097 kann ebenfalls auftreten, wenn die Calling Convention (stdcall(WINAPI) bzw C) nicht korrekt eingestellt wurde.
Auf einem LV-Anwendertreffen kam die Aussage seitens NI, dass ab LV2009 die LV-interne Überprüfung auf eben diese Calling Convention aus Performance-Gründen abgestellt wurde.

Gruß
Ralf


RE: Excel einbinden / dll in Excel - rolfk - 27.04.2012 19:59

(26.04.2012 12:05 )muah schrieb:  Hallo,

leider hab nicht ich die dll geschrieben, diese dll enthält komplexe berechnungen beruhend auf einigen vielen Literaturwerten.
Der direkte Weg wäre mir auch viel lieber aber leider klappt es nicht anders, hab schon Tagelang versucht die dll einzubinden nach recherche des Fehlermeldung (Error 1097) sehe ich leider keinen anderen Weg.

Soweit ich weiss wurde die dll noch mit Fortran geschrieben.

Bedanke mich für eure Hilfe.
Für andere Lösungsvorschläge bin ich offen.

Also wenn die DLL mit VBA in Excel ansprechbar ist, dann muss das mit der Call Library Node in LabVIEW auch gehen. LabVIEW hat im Vergleich viel mehr Möglichkeiten dan VBA. Warum error 1097 kommt hat einfach damit zu tun, dass Du die Call Library Node nicht korrekt konfiguriert hast. Was die korrekte Konfiguration ist, lässt sich aber nur sagen wenn man die Funktionsbeschreibung inklusiv Aufrufsdeklaration kennt. Manchmal ist die Aufrufsdeklaration alleine schon genügend, zusammen mit etwas Erfahrung auf dem Gebiet vom Aufrufen von C Funktionen in C. Aber oft sind diese Deklarationen alleine nicht aussagekräftig genug da sie nur Informationen beinhalten die für den C Compiler notwendig sind. Das ist aber meist nicht genug um zu wissen wie man eine solche Funktion in einem Programm wirklich aufrufen muss.