新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > labview中dll的調用(包括生成dll)

        labview中dll的調用(包括生成dll)

        作者: 時間:2017-01-09 來源:網絡 收藏

          點擊Destination>> Scale.dll,點擊,可選擇需要保存的路徑。然后再點擊Support Directory,這是指明了DLL支持文件的路徑(比如數據文件之類的放在哪個文件夾),選擇默認即可:


        圖13 Destination頁面

          Category中的Source Files可供用戶對打包VI的屬性和密碼做一些設置;Advanced和Additional Exclusions可以做一些高級的設置,這些均按默認值即可。Version Information可讓用戶填寫版本號、名稱、版權、公司等信息:


        圖14 Version Information

        點擊Run-Time Languages,可對支持語言進行選擇,默認即可。點擊Preview>>Generate Preview,可以預覽到結果:


        圖15 預覽生成

        點擊Build,彈出生成狀態對話框:


        圖16 生成狀態框

        點擊Done,生成完成,打開DLL文件保存的路徑查看:


        圖17 DLL文件保存路徑

        LabVIEW調用DLL文件

          LabVIEW可以方便地調用DLL文件,這些DLL文件可以是其他編譯工具,如VC,生成的。

          LabVIEW可以直接通過CLN節點來調用DLL文件,以前面生成的Scale.dll文件為例。現有一個內部定時連續采集程序,通過調用該DLL文件,使讀取的值為實際采集值的10倍(圖18)。


        圖18 連續采集程序

        方法一

          在程序框圖放入Call Library Function Node,雙擊彈出對話框。在Function頁面的Library name or path中給入生成的Scale.dll文件的路徑,Function name選擇Scale,其他選項默認。


        圖19 Function頁面

          由于是LabVIEW生成的DLL文件,在Parameters頁面不需要做改動,但是由于VI還有一路輸出,所以還需要添加一個參數y,作為DLL文件的輸出。

          如果是C語言等非LabVIEW生成的DLL函數,需要將retuen type的type選項和Data type選項改成函數定義的參數類型,對于函數里輸入的參數也都需要自行添加。Callbacks和Error Checking則不需要改動。


        圖20 Parameters頁面

          點擊“OK”,將生成的CLN的輸入段連接到DAQmx Read.vi,return type輸出連接到波形圖表上,即可實現采集值放大10倍的功能。


        圖21 完成后的程序

        方法二

        LabVIEW中還有一種方法可以調用DLL文件,在VI的選項欄,依次選擇Tools——Import——Shared Library(.dll),彈出Import Shared Library對話框。


        圖22 生成Import Shared Library對話框

          選擇Create VIs for a shared library,點擊Next,在Shared Library(.dll) Files中輸入Scale.dll文件的路徑,Head(.h) File里填寫頭文件的路徑。


        圖23 選擇DLL文件路徑和頭文件路徑

          點擊Next,如果DLL文件中依賴其他的一些DLL文件,需要在Include Paths中填寫這些文件的路徑。其他選項可以根據客戶需求設置,一般默認即可。這樣一直點擊Next到最后,選擇Open the generated library,點擊Finish。這樣可以生成一個.lvlib格式的庫文件,里面包含了Scale.vi,這是將調用該DLL文件的方法封裝好的VI,只留下輸入和輸出接口,方便運用到LabVIEW的程序中。直接將Scale.vi拖放到剛才的連續采集中即可完成方法一的功能。


        圖24 完成的程序

        VC調用LabVIEW生成的DLL文件

          剛才介紹了LabVIEW調用DLL文件的方法,使用VC調用LabVIEW生成的DLL文件也很簡單。還是以之前生成Scale 的DLL文件為例,不同的是采集電壓程序使用的是C語言的例程,但和LavVIEW實現的功能相同。

          首先將先前生成Scale DLL文件時,路徑下所有的文件全部復制粘帖到C語言例程的文件夾下。打開連續采集程序,點擊狀態欄的Project——Settings,在Project Settings對話框中加載入Scale.lib的靜態鏈接庫。

          在程序中鍵入#include "Scale.h",以便引入該DLL函數。下面是C程序的代碼,功能是有限點采集電壓,通過Scale.dll文件實現采樣值放大10倍的功能。加粗部分是因為調用DLL文件所做的改動。

        #include

        #include "NIDAQmx.h"

        #include "Scale.h"

        #define DAQmxErrChk(functionCall) if( DAQmxFailed(error=(functionCall)) ) goto Error; else

        int main(void)

        {

        int32 error=0;

        TaskHandle taskHandle=0;

        int32 read;

        float64 data[1000];

        char errBuff[2048]={

        主站蜘蛛池模板: 武宣县| 颍上县| 商城县| 桃园县| 巩义市| 库尔勒市| 兴义市| 靖州| 吕梁市| 永丰县| 临猗县| 长春市| 北碚区| 东阿县| 铜鼓县| 泉州市| 怀安县| 芮城县| 剑川县| 遵义市| 商城县| 大石桥市| 达尔| 莱西市| 西乌| 黎川县| 若羌县| 五莲县| 亚东县| 山阴县| 六枝特区| 东宁县| 商丘市| 芦山县| 昌宁县| 庆阳市| 三都| 乳源| 耿马| 比如县| 龙陵县|