无码人妻精品一区二区三区9厂-国产精品人人做人人爽人人添-在线永久免费观看黄网站-国产精品久久久久一区二区三区

首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
中華工控網首頁
  P L C | 變頻器與傳動 | 傳感器 | 現場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
  D C S | 工業以太網 | 現場總線 | 顯示調節儀表 | 數據采集 | 數傳測控 | 工業安全
  電 源 | 嵌入式系統 | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
LabVIEW與外部程序間DLL文件的調用
北京泛華恒興科技有限公司
收藏本文     查看收藏
 
 
圖5 設置回調函數
    如果為Reserve選擇了一個回調函數,那么當一個新的線程開始調用這個DLL時,這個回調函數首先被調用。可以利用這個函數為新線程使用到的數據做初始化工作。線程在使用完這個DLL之后,它會去調用Unreserve中指定的回調函數。Abort中指定的函數用于VI非正常結束時被調用,也就是讓一個程序在運行完前停止。這些回調函數的原型在Prototype for these procedures中列出,必須要由DLL的開發者按照特定的格式實現。如果使用的DLL不是專為LabVIEW設計的,一般不會包含這樣的回調函數。
    第四頁是錯誤處理方式,用戶可根據需要選擇相應的錯誤檢查級別。
    另外還需要注意的是,C語言中的struct在LabVIEW中可以使用cluster來表示,但有時需要作出相應的調整。這是因為在C語言中,struct的字節對齊是可以進行設置的,這就決定了其各元素的存放地址的可變性。C語言中的對字節對齊數可通過#pragma pack指令或在工程屬性中進行指定。而在LabVIEW的cluster中,所有元素只能是1字節對齊的,所以如果要和C語言中非1字節對齊的struct對應,需要做出一些調整。比如,對于C語言中2字節對齊的struct,第一個元素如果是I8型的,在LabVIEW的cluster中第一個元素對應不變,但不能緊挨著放第二個元素,必須留一個無意義的空位。C語言的struct其實也是如此,只不過沒有表現出來。所以為了方便,如果自己用C語言生成DLL文件供LabVIEW調用最好將struct都設為1字節對齊。C語言的struct中可以嵌套數組,但是這和LabVIEW中含有數組元素的cluster是不一樣的,LabVIEW中需要將數組中的元素都拆開放入cluster中。
    如果C語言的struct中含有一個指針,LabVIEW中的cluster只能用一個U32數值(32位系統上,64位系統上使用U64)來表示指針的地址,而不能將指針所指向的內容放到Cluster中去。如果聲明的是指向struct的指針,才能在LabVIEW中使用cluster與之對應。CLN節點的配置面板中,沒有一個專門命名的“struct”或者“cluster”參數類型,應選擇“Adapt to Type”就可以了。如果參數的類型就是結構而非指針,考慮到C函數參數的壓棧順序,把一個結構體作為參數傳給函數,相當于把結構中每個元素分別作為參數傳遞給函數。圖6為C語言中struct和LabVIEW中cluster的部分匹配圖。
 
圖6 struct和cluster匹配
 
 
 
LabVIEW打包DLL文件
我們接下來學習如何使用LabVIEW來打包一個DLL文件。
首先我們編寫一個名為Scale.vi的程序,功能很簡單就是對輸入的數據乘上10,然后再輸出(圖7)。

圖7 scale.vi
必須在任務管理器中才能生成.dll文件。所以我們首先建立一個project,過程如下:
點擊File>>New Project:
圖8 生成新項目
 
接著彈出是否將該VI添加到新項目的對話框:
 
圖9 是否添加VI到新建項目
 
選擇Add,生成新的項目管理器,將其保存在需要的路徑下:
 
 
圖10 項目管理器
 
右鍵單擊項目瀏覽器窗口中的Build Specifications,在快捷菜單中選擇New>>Shared Library(DLL),彈出對DLL文件進行設置的對話框。點擊Category>>Information,根據自己需求修改Build specification name和Target filename:
 
 
點擊Source Files>>Project Files>> Scale.vi>> ,彈出對話框,直接用默認值,點擊OK:
 
 
圖12 Define VI Prototype
點擊Destination>> Scale.dll,點擊 ,可選擇需要保存的路徑。然后再點擊Support Directory,這是指明了DLL支持文件的路徑(比如數據文件之類的放在哪個文件夾),選擇默認即可:
 
 

狀 態: 離線

公司簡介
產品目錄

公司名稱: 北京泛華恒興科技有限公司
聯 系 人: 市場部
電  話: 010-82156688
傳  真: 010-82156006
地  址: 北京市海淀區西小口路66號東升科技園·北領地 A-4樓
郵  編: 100192
主  頁:
 
該廠商相關技術文摘:
基于XML的模塊化分布式軟件系統架構設計
電動助力轉向系統(EPS)耐久性試驗臺
基于1553B總線和PXI總線的某型航天動力控制系統關鍵技術研究
效率與成本是數據采集迎接挑戰的關鍵
基于柔性測試技術的通用衛星電源變換器測試設備設計與實現
X-Designer 3.1,構建型軟件平臺助力測試測量
自動測試設備(ATE)中的技術融合與應用
引領測試系統創新性思維
基于柔性測試技術的節氣門反應時間測試系統設計
基于柔性測試技術的車窗按鈕老化測試系統
基于柔性測試技術的位置傳感器標定與檢測系統平臺的設計
基于柔性測試技術在噪聲定位分析方面的應用
更多文摘...
立即發送詢問信息在線聯系該技術文摘廠商:
用戶名: 密碼: 免費注冊為中華工控網會員
請留下您的有效聯系方式,以方便我們及時與您聯絡

關于我們 | 聯系我們 | 廣告服務 | 本站動態 | 友情鏈接 | 法律聲明 | 不良信息舉報
工控網客服熱線:0755-86369299
版權所有 中華工控網 Copyright©2022 Gkong.com, All Rights Reserved