0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

LabVIEW接口功能和動態(tài)鏈接庫調用機制的研究及設計

電子設計 ? 來源:合肥工業(yè)大學學報 ? 作者:徐正紅,金施群,丁 ? 2020-11-16 10:45 ? 次閱讀

作者:徐正紅,金施群,丁曉牧

虛擬儀器是現(xiàn)代計算機技術、儀器儀表技術及現(xiàn)代計算機輔助測試(CAT)技術相結合的產(chǎn)物,廣泛應用于數(shù)據(jù)采集和自動測試領域。

LabVIEW是一種基于圖形程序的虛擬儀器編程語言,LabVIEW程序稱為虛擬儀器程序(簡稱VI)。LabVIEW按照模塊化編程思想,將一些特定的測試任務,建立成一系列的VI,然后通過這些VI的組合來構成各種復雜的、功能強大的測試系統(tǒng)。LabVIEW除了帶有各種基本的VI庫(GP-IB、VISA、VXI和串行接口儀器的驅動程序等)和功能超強且龐大的分析函數(shù)庫外,還可以通過調用外部代碼實現(xiàn)Lab VIEW比較復雜的接口功能,其中就包括動態(tài)鏈接庫調用機制。

動態(tài)鏈接庫可采用VB、VC++6.0等高級語言開發(fā),VC++6.0編制動態(tài)鏈接庫,首先由AppWizard生成DLL框架,用戶自己鍵入實現(xiàn)各種功能的代碼。DLL需要h函數(shù)聲明文件、C源文件及def定義文件。h文件的作用是聲明DLL要實現(xiàn)的函數(shù)原型,供DLL編譯使用,同時還提供應用程序編譯使用。C文件是實現(xiàn)具體文件的源文件,它有一個入口點函數(shù),在DLL被初次調用時運行,完成初始化工作。def文件是DLL項目中比較特殊的文件,用于定義該DLL項目將輸出的函數(shù),只有def文件列出的函數(shù)才能被應用函數(shù)調用,函數(shù)名列在該文件EXPORTS的關鍵字下。

多滾輪法大直徑測量的數(shù)據(jù)采集系統(tǒng)

多滾輪法大直徑測量原理結構

滾輪法大直徑測量原理結構主要有被測大軸、滾輪、圓光柵、信號調理與接口、計數(shù)器及大軸轉數(shù)測量標記組成。大軸直徑計算公式為

D=α*d/2τN

其中,D為被測大軸直徑;d為滾輪直徑;α為滾輪轉動角度;N為大軸轉動周數(shù)。滾輪采用特殊的結構設計,以減小測量過程中打滑發(fā)生的幾率。同時通過3個滾輪的冗余測量信號,可辯識出測量過程中的“打滑發(fā)生段”,并在進行三滾輪信號合成時,采用有效的數(shù)據(jù)融合技術,進一步將“打滑段”的信號剔除。通過對接觸壓力大小與滾輪直徑變化的關系作精確標定,測量時根據(jù)擬合數(shù)學模型對滾輪變形作適時修正,以消除或減小滾輪變形引起的測量誤差。為減小溫度場不均勻或變化所導致的測量誤差,在工件表面布置多個溫度傳感器,用以監(jiān)測工件是否進入恒溫狀態(tài)及工件溫度的變化和分布情況,以便對該溫度場引起的大直徑尺寸變化進行修正。用微位移傳感器測量大軸表面形狀誤差,分離出各次諧波,用以修正測得直徑,減小形狀誤差的影響。

數(shù)據(jù)采集系統(tǒng)組成

多滾輪法大直徑測量系統(tǒng)采用的傳感器種類和數(shù)目均較多,多參數(shù)的測量和控制由虛擬儀器測量系統(tǒng)實現(xiàn),其結構框圖如圖1所。

LabVIEW接口功能和動態(tài)鏈接庫調用機制的研究及設計

圖1數(shù)據(jù)采集系統(tǒng)框圖

光柵數(shù)據(jù)采集硬件主要由RENISHAW公司的RESR20圓光柵編碼器和FAGOR公司的DRO板組成,RESR20圓光柵編碼器的角分辨力可達0.01″,分度不確定度為0.5″。RGH20讀數(shù)頭輸出4路信號,DRO板對這4路信號進行細分后轉換成數(shù)字信號輸入計算機,完成對圓光柵信號的數(shù)據(jù)采集。光電傳感器的信號由6071E板(該板為NI公司的多功能數(shù)據(jù)采集板,具有模擬量、數(shù)字量采集單元,該板同時用于位移、壓力等信號的采集)上的計數(shù)器送入計算機,作為數(shù)據(jù)采集的觸發(fā)信號。同時為減小數(shù)據(jù)采集啟停引起的誤差,通常在大軸轉動數(shù)周過程中采集光柵信號。在編制采集軟件時設置大軸轉動周數(shù)單元,當大軸轉動且計數(shù)標記通過光電傳感器時,計算機開始采集數(shù)據(jù),當大軸轉動周數(shù)達到預設值時,停止數(shù)據(jù)采集。

數(shù)據(jù)采集系統(tǒng)軟件設計

6071E多功能采集卡自身帶有適用于LabVIEW環(huán)境的驅動程序,直接進行設置即可。DRO板必須用VC++編程調用其動態(tài)鏈接庫進行初始化,然后將VC++的調用生成動態(tài)鏈接庫,由Lab2VIEW調用完成對DRO板的初始化,參數(shù)的初始化包括滾壓輪標準參數(shù)、測試任務參數(shù)以及其他環(huán)境參數(shù)等。初始化結束,計算機檢測到觸發(fā)信號后開始數(shù)據(jù)采集,數(shù)據(jù)采集部分同樣需要用VC++編程調用DRO板的動態(tài)鏈接庫的庫函數(shù)。圓光柵信號輸入計算機后由軟件進行數(shù)據(jù)的處理和存儲,當大軸轉動周數(shù)等于預設值時,停止采集,一次數(shù)據(jù)采集過程完成。

LabVIEW調用動態(tài)鏈接庫,使用LabVIEW功能模板中“Advanced”子模板的“調用庫函數(shù)(Call Library Function)”結點。實現(xiàn)動態(tài)鏈接庫調用步驟如下:

(1)在LabVIEW程序建立“調用庫函數(shù)結點”。其中“Call Library Function”結點通過選擇功能模板“Advanced”子模板的“Call Library Function”功能產(chǎn)生。

(2)配置“調用庫函數(shù)結點”。雙擊框圖程序窗口的“Call Library Function”結點,在彈出的對話框中對此“調用庫函數(shù)結點”進行配置。其中:在“Library Nameor Path”項中鍵入結點所鏈接的DLL文件名,它由c源代碼編譯而來;在“Function Name”項中鍵入結點相鏈接的DLL文件中函數(shù)的名稱;參數(shù)“returntype”的類型選擇“Void”,并增加所需的其他返回參數(shù)。

(3)編輯c源文件。c源文件包括硬件初始化文件和數(shù)據(jù)采集文件。硬件初始化部分源代碼如下:

//FirstInittheBoardConfigandAxisConfigData

BoardConfig.NumberOfAxes=4;

do

{

printf(“\nSelectsignaltype(0=TTL,1=1Vpp):”);

signal_type=getch();

}while((signal_type‘1’));

signal_type=signal_type-‘0’;

//Enteryourownvalues,theseareonlyasample.

(4)編譯c源代碼。將c源文件編譯成DLL文件,使用VC++6.0完成。

(5)運行VI。運行由上述步驟生成的LabVIEW程序。

結束語

LabVIEW的外部代碼擴展功能是其重要特點之一,調用動態(tài)鏈接庫是LabVIEW提供的調用外部代碼的4種途徑中最通用的一種??烧{用標準共享庫和用戶自定義的庫函數(shù),對于不附帶LabVIEW驅動程序的硬件尤其具有使用價值。通過調用動態(tài)鏈接庫機制可引入C語言的強大功能,確實是一條增強LabVIEW與其它Windows應用程序之間的數(shù)據(jù)共享能力的良好途徑。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • LabVIEW
    +關注

    關注

    1975

    文章

    3656

    瀏覽量

    324565
  • 虛擬儀器
    +關注

    關注

    23

    文章

    775

    瀏覽量

    87365
  • 數(shù)據(jù)采集

    關注

    39

    文章

    6198

    瀏覽量

    113828
收藏 人收藏

    評論

    相關推薦

    Linux動態(tài)鏈接庫的基本概念

    學習Linux動態(tài)鏈接庫是一個繞不開的話題,我們今天就一起來看一下什么是動態(tài)鏈接庫動態(tài)鏈接庫
    發(fā)表于 09-27 14:31 ?1568次閱讀

    關于使用動態(tài)鏈接庫及圖像采集的問題

    我用的是方誠科技的工業(yè)相機,里面提供了一些動態(tài)鏈接庫,包括了相機初始化,采集圖像,顏色處理等函數(shù),我以前都是用VB做的,買相機的時候他會提供VB的模塊,所以用VB比較方便。現(xiàn)在我想用LABVIEW
    發(fā)表于 05-26 18:05

    labview調用動態(tài)鏈接庫

    小弟我最近用到labview調用動態(tài)鏈接庫相關的知識,不是很懂,請問哪位大神能幫我看看怎么調用的啊?不勝感激的哦!能幫我完善的,小弟在此膜拜
    發(fā)表于 07-10 21:59

    labview調用動態(tài)鏈接庫問題

    本帖最后由 ZHZJK 于 2014-7-15 11:07 編輯 本人使用動態(tài)鏈接庫一直沒成功過,這次準備調用讀卡器的dll來讀卡用了其中 打開串口 和讀取卡號 兩函數(shù)總是有錯希望大家?guī)兔纯?/div>
    發(fā)表于 07-15 11:01

    LabVIEW動態(tài)鏈接庫

    問一下大家,如何利用動態(tài)鏈接庫調用LabVIEW官方不支持的攝像頭?求高手指教!
    發(fā)表于 03-13 09:59

    LABVIEW調用動態(tài)鏈接庫以后的編程問題

    labview調用動態(tài)鏈接庫,可以在圖形顯示框中顯示光柵光柵的峰值波長比如1550nm,下一步打算顯示出應力,就是說給他一個力,他的峰值波長就會變化,比如峰值波長變到1553nm,就
    發(fā)表于 11-17 14:29

    LabVIEW調用visual studio C#生成的動態(tài)鏈接庫dll文件

    1)visual studio C#生成動態(tài)鏈接庫dll文件2)LabVIEW通過構造器調用C#的dll文件
    發(fā)表于 07-23 23:18

    關于labview'的動態(tài)鏈接庫的問題

    最近使用labview調用動態(tài)鏈接庫,使用vs2017生成dll文件,然后調用,但是為什么輸入數(shù)組的情況下輸出一直為0呢,我使用公式節(jié)點
    發(fā)表于 03-14 11:26

    動態(tài)鏈接庫LabVIEW中的高級應用

    LabVIEW 中的提供了調用共享庫函數(shù)的接口,但是一些現(xiàn)成的函數(shù)卻因為接口參數(shù)類型不同而不能在Lab
    發(fā)表于 08-04 10:09 ?57次下載

    LabVIEW下普通數(shù)據(jù)采集卡的驅動與調用

    在深入分析動態(tài)鏈接庫特點的基礎上,重點研究了在LabVIEW平臺下調用動態(tài)
    發(fā)表于 12-16 15:04 ?61次下載

    C++中動態(tài)鏈接庫的創(chuàng)建和調用

    動態(tài)連接的創(chuàng)建步驟: 一、創(chuàng)建Non-MFC DLL動態(tài)鏈接庫 1、打開File —> New —> Project選項,選擇Win32 Dynamic-Link Library
    發(fā)表于 11-24 18:13 ?7次下載

    LINUX環(huán)境下CLIPS動態(tài)鏈接庫的實現(xiàn)方法

    在LINUX環(huán)境下,為了簡便、快捷地制作出CLIPS動態(tài)鏈接庫,本文采用了CNU AUTOTOOLS把CLIPS嵌入式高級語言編譯成動態(tài)鏈接庫的實現(xiàn)方法,重點
    發(fā)表于 04-14 21:18 ?30次下載

    虛擬儀器中動態(tài)鏈接庫的應用

    本文在闡述了動態(tài)鏈接庫技術和虛擬儀器中的 動態(tài)鏈接 機制的基礎上,詳述了基于DLL的USB
    發(fā)表于 07-05 17:17 ?27次下載
    虛擬儀器中<b class='flag-5'>動態(tài)</b><b class='flag-5'>鏈接庫</b>的應用

    英創(chuàng)信息技術WinCE設備動態(tài)鏈接庫的制作與調用

    在使用英創(chuàng)ARM9系列主板做開發(fā)時,用戶可能希望將自己一部分代碼封裝起來,隱藏代碼的實現(xiàn)過程,只提供接口供其他程序調用。使用動態(tài)鏈接庫(Dynamic Link Library)可以很
    的頭像 發(fā)表于 01-15 14:33 ?1167次閱讀
    英創(chuàng)信息技術WinCE設備<b class='flag-5'>動態(tài)</b><b class='flag-5'>鏈接庫</b>的制作與<b class='flag-5'>調用</b>

    Linux下的靜態(tài)鏈接庫動態(tài)鏈接庫的區(qū)別是什么?

    學習Linux動態(tài)鏈接庫是一個繞不開的話題,我們今天就一起來看一下什么是動態(tài)鏈接庫、動態(tài)鏈接庫
    的頭像 發(fā)表于 02-17 10:49 ?1310次閱讀
    Linux下的靜態(tài)<b class='flag-5'>鏈接庫</b>和<b class='flag-5'>動態(tài)</b><b class='flag-5'>鏈接庫</b>的區(qū)別是什么?