<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > labview中dll的調(diào)用(包括生成dll)

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

          作者: 時(shí)間:2017-01-09 來源:網(wǎng)絡(luò) 收藏

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


          圖13 Destination頁面

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


          圖14 Version Information

          點(diǎn)擊Run-Time Languages,可對支持語言進(jìn)行選擇,默認(rèn)即可。點(diǎn)擊Preview>>Generate Preview,可以預(yù)覽到結(jié)果:


          圖15 預(yù)覽生成

          點(diǎn)擊Build,彈出生成狀態(tài)對話框:


          圖16 生成狀態(tài)框

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


          圖17 DLL文件保存路徑

          LabVIEW調(diào)用DLL文件

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

            LabVIEW可以直接通過CLN節(jié)點(diǎn)來調(diào)用DLL文件,以前面生成的Scale.dll文件為例。現(xiàn)有一個(gè)內(nèi)部定時(shí)連續(xù)采集程序,通過調(diào)用該DLL文件,使讀取的值為實(shí)際采集值的10倍(圖18)。


          圖18 連續(xù)采集程序

          方法一

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


          圖19 Function頁面

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

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


          圖20 Parameters頁面

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


          圖21 完成后的程序

          方法二

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


          圖22 生成Import Shared Library對話框

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


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

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


          圖24 完成的程序

          VC調(diào)用LabVIEW生成的DLL文件

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

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

            在程序中鍵入#include "Scale.h",以便引入該DLL函數(shù)。下面是C程序的代碼,功能是有限點(diǎn)采集電壓,通過Scale.dll文件實(shí)現(xiàn)采樣值放大10倍的功能。加粗部分是因?yàn)檎{(diào)用DLL文件所做的改動(dòng)。

          #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]={看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();