DLL in LabVIEW einbinden - 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: DLL in LabVIEW einbinden (/Thread-DLL-in-LabVIEW-einbinden) Seiten: 1 2 |
DLL in LabVIEW einbinden - rolfk - 21.02.2008 11:53 ' schrieb:ja, ein alter Studiumkollege hat mir auf die Reihe geholfen.. bzw. mir das mal erklärt.. 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 DLL in LabVIEW einbinden - rolfk - 21.02.2008 11:55 ' 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. DLL in LabVIEW einbinden - IchSelbst - 21.02.2008 13:23 ' 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. DLL in LabVIEW einbinden - verflixxt - 21.02.2008 17:04 ' 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... DLL in LabVIEW einbinden - IchSelbst - 21.02.2008 17:26 ' 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. DLL in LabVIEW einbinden - IchSelbst - 21.02.2008 21:11 ' 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. |