LabVIEWForum.de - DLL in LabVIEW einbinden

LabVIEWForum.de

Normale Version: DLL in LabVIEW einbinden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
' schrieb:ja, ein alter Studiumkollege hat mir auf die Reihe geholfen.. bzw. mir das mal erklärt..

Wenn mans mal geschnallt hat ist das gar nicht so übel...

Danke auf alle Fälle..

Also die Zeiten wo ich Pascal kannte sind schon 20 Jahre her. Also in Detail helfen kann ich Dir hier nicht! Im Prinzip schaut es alles extrem trivial aus und wenn Du daran schon scheiterst scheint mir wird es prinzipiel schlecht aussehen.

Was Du wissen willst im Zusammenhang mit einer Erstellung für LabVIEW sind folgende Dinge aus den Pascal Files

function Compress_Open : Smallint; stdcall; external 'compress.dll';
function Compress_Close : Smallint; stdcall; external 'compress.dll';

function Compress_Setup : Smallint; stdcall; external 'compress.dll';
function Compress_Set(bar:extended) : Smallint; stdcall; external 'compress.dll';

Alles in der compress.dll. Liefern alle Smallint zurück, was immer das ist in Pascal. Könnte 16 Bit int sein, aber dann hoffe ich mal dass es keine 16 Bit DLL ist. Die könntest Du nämlich nur mit LabVIEW für Windows 3.1 (letzte verfügbare Version war glaub ich LabVIEW 5) gebrauchen.

Alle gerauchen Standard Call calling convention und alle ausser der letzten sind Funktionen ohne Parameter. Der extended Parameter ist auch wieder sowas. Könnte ein extended float sein aber vielleicht meint Pascal da etwas ganz anderes damit.

Dann noch dies:

function GMH_OpenCom (port:word): Smallint; stdcall; external 'GMH3X32.DLL';
function GMH_CloseCom:Smallint; stdcall; external 'GMH3X32.DLL';
function GMH_Transmit (adr, code:Smallint; var priority: smallint; var float_dat: double; var int_dat: longint):Smallint;

Dasselbe aber nun für GMH3X32.DLL. Wieder smallint als return Wert. Der word Parameter für die erste Funtion ist wohl ein 16 Bit unsigned aber das ist auch wieder eine grobe Vermutung. Dann kommt noch Transmit mit zwei smallint by value, einem smallint passed as pointer, einem double float passed as pointer, und einem longint passed as pointer.
Auch hier wieder Standard Calling convention.

Also mal irgendwo in Pascalland raussuchen was smallint, longint, word und extended sind und dann loslegen.

Rolf Kalbermatter
' schrieb:In der Compress-DLL wird ein Parameter mit Typ extended übertragen. Diesen Typ kennt LV nicht.

LabVIEW kennt den Extended Float! Könnte sein dass das damit gemeint ist, aber braucht nicht. Der LabVIEW Typ Extended entspricht dem 10 Byte Extended floating point Format wie es durch die Intel MMU benützt wird.
' schrieb:Der LabVIEW Typ Extended entspricht dem 10 Byte Extended floating point Format wie es durch die Intel MMU benützt wird.
Was? Das gibt es in LV 7.1.1? Da muss ich doch sofort (heute abend) kucken. Das wäre mir entgangen.

In Pascal in extended ein 80Bit-Float (also 10 Byte). SmallInt ist in Pascal (Delphi) ein I16 - im Gegensatz zu C++, wo small ein I8 ist. Das hab ich in meinem Tutorial tabellerisch zusammengefasst.

Im übrigen: Wer seine Druckvorgabe mit einer Genauigkeit von extended macht - naja.
' schrieb:Im übrigen: Wer seine Druckvorgabe mit einer Genauigkeit von extended macht - naja.


Die Genauigkeit wäre nicht schlecht da ich das Programm zur Kalibrierung von Druckverteilungsplatten (Biomechanik) benützen möchte.

Hab jetzt statt extended double und es funktioniert auch...bzw. meine Genauigkeit liegt bei 1kg bei einem Druck von 8 bar auf 0,49m²

Öhm, ich glaub das ist gar nicht so schlecht...


Komisch...jetzt auf einmal klappt das ganze wie von alleine...Reporte erstellen, usw...
' schrieb:Die Genauigkeit wäre nicht schlecht da ich das Programm zur Kalibrierung von Druckverteilungsplatten (Biomechanik) benützen möchte.
18 Stellen Genauigkeit (bei Extended)? Die 15 bei double scheinen mir noch zuviel.
' schrieb:LabVIEW kennt den Extended Float! Könnte sein dass das damit gemeint ist, aber braucht nicht. Der LabVIEW Typ Extended entspricht dem 10 Byte Extended floating point Format wie es durch die Intel MMU benützt wird.
Der DLL-Knoten unterstützt kein Extended.
Seiten: 1 2
Referenz-URLs