關(guān) 閉

        新聞中心

        EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于LabVIEW的數(shù)控機(jī)床網(wǎng)絡(luò)測(cè)控系統(tǒng)——總體設(shè)計(jì) (二)

        基于LabVIEW的數(shù)控機(jī)床網(wǎng)絡(luò)測(cè)控系統(tǒng)——總體設(shè)計(jì) (二)

        作者: 時(shí)間:2015-03-06 來(lái)源:網(wǎng)絡(luò) 收藏

          3.3通用數(shù)據(jù)采集卡的驅(qū)動(dòng)設(shè)計(jì)

        本文引用地址:http://www.104case.com/article/270594.htm

          系統(tǒng)中,在數(shù)據(jù)采集卡部分,提供了大量的數(shù)據(jù)采集子程序,這些驅(qū)動(dòng)程序從簡(jiǎn)單到高級(jí),可以提供給用戶使用,但這些子程序只支持NI的數(shù)據(jù)采集卡(DAQ)以及少數(shù)公司開發(fā)的支持平臺(tái)的數(shù)據(jù)采集卡,而這些卡的價(jià)格較昂貴,一般的用戶很難接受。因此,為了能在平臺(tái)上使用普通數(shù)據(jù)采集,有以下幾種方案可以解決LabVIEW與普通數(shù)據(jù)采集卡驅(qū)動(dòng)的問(wèn)題。

          3.3.1基于LabVIEW的普通國(guó)產(chǎn)采集卡的驅(qū)動(dòng)方法

          為了解決LabVIEW與普通國(guó)產(chǎn)采集卡的接口驅(qū)動(dòng)問(wèn)題,有三種可行方案:

         ?、僦苯佑肔abVIEW的InPort , OutPort圖標(biāo)編程方式;

         ?、谟肔abVIEW的CIN圖標(biāo)生成的板卡卡驅(qū)動(dòng)程序的子VI方式;

         ?、塾肔abVIEW的Call Library Functions圖標(biāo),動(dòng)態(tài)鏈接數(shù)據(jù)采集卡的。DLL庫(kù)函數(shù)方式。

          (1)用In Port和Out Port直接編程方式(I/O方式)驅(qū)動(dòng)

          LabVIEW中有兩個(gè)直接訪問(wèn)底層設(shè)備的圖標(biāo),即In Port.vi和Out Port.vi.這兩個(gè)函數(shù)分別完成從設(shè)備的物理地址直接讀取和輸出數(shù)據(jù)功能,通過(guò)直接讀寫寄存器可以提高數(shù)據(jù)的傳輸速率,采集卡的工作方式為軟件驅(qū)動(dòng),查詢方式為讀取采樣結(jié)果。In Port.vi和Out port.vi圖標(biāo)存放在Memory子模板上。直接讀取端口方式實(shí)現(xiàn)起來(lái)比較簡(jiǎn)單,適用于采集精度要求不高的情況。對(duì)于精度要求高且復(fù)雜的采集系統(tǒng),如包含對(duì)內(nèi)存大量操作的情況,這種方式就不能滿足要求[19]。

          (2)調(diào)用C語(yǔ)言源代碼方式(CINF方式)驅(qū)動(dòng)

          在實(shí)際設(shè)計(jì)中,經(jīng)常會(huì)碰到某些想實(shí)現(xiàn)的功能,但利用LabVIEW圖標(biāo)實(shí)現(xiàn)和處理又不是很方便靈活,而利用其他編程語(yǔ)言很容易實(shí)現(xiàn)的情況。這時(shí)就需要用LabVIEW中的接口圖標(biāo),以實(shí)現(xiàn)LabVIEW與其他語(yǔ)言直接的連接,CIN圖標(biāo)就是其中的一種。

          它是LabVIEW與C語(yǔ)言的接口,CIN通過(guò)輸入、輸出端口實(shí)現(xiàn)兩種語(yǔ)言之間的數(shù)據(jù)傳遞。輸入、輸出端口的個(gè)數(shù)可由設(shè)計(jì)者根據(jù)實(shí)際需要確定。當(dāng)LabVIEW的程序運(yùn)行到CIN節(jié)點(diǎn)時(shí),數(shù)據(jù)由CIN的輸入端口傳遞給C源代碼圖標(biāo),程序去執(zhí)行C源代碼,代碼執(zhí)行完后,得到的數(shù)據(jù)結(jié)果由CIN的輸出端返回給LabVIEW [20]。

          (3)調(diào)用動(dòng)態(tài)連接庫(kù)DLL的方式(CLF方式)驅(qū)動(dòng)

          動(dòng)態(tài)連接庫(kù)(DLL)是一種應(yīng)用程序在運(yùn)行時(shí)與庫(kù)文件連接起來(lái)的技術(shù),是在應(yīng)用程序運(yùn)行時(shí)被裝入和鏈接的,而不是把源代碼復(fù)制到應(yīng)用程序中去,因此使用動(dòng)態(tài)鏈接庫(kù)可以實(shí)現(xiàn)多個(gè)應(yīng)用程序直間代碼和資源的共享。不過(guò)動(dòng)態(tài)鏈接庫(kù)常由數(shù)據(jù)采集卡生產(chǎn)廠商提供,通過(guò)LabVIEW的CLF節(jié)點(diǎn)調(diào)用。如果廠商不提供DLL動(dòng)態(tài)連接庫(kù),用戶就要自己編寫,這就對(duì)用戶的編程水平有了進(jìn)一步的要求。不過(guò)使用動(dòng)態(tài)鏈接庫(kù)有其自身的有點(diǎn),如方便的實(shí)現(xiàn)共享代碼、資源和數(shù)據(jù);DLL的編寫與語(yǔ)言無(wú)關(guān);隱藏實(shí)現(xiàn)細(xì)節(jié);節(jié)省內(nèi)存等;

          3.3.2調(diào)用動(dòng)態(tài)連接庫(kù)DLL的方式實(shí)現(xiàn)板卡驅(qū)動(dòng)的設(shè)計(jì)

          由于該設(shè)計(jì)平臺(tái)中,選用的國(guó)產(chǎn)普通采集卡,需要自己編寫板卡驅(qū)動(dòng),鑒于以上幾種方法的比較,本文選用的是調(diào)用動(dòng)態(tài)連接庫(kù)DLL的方式(CLF方式)驅(qū)動(dòng)。通過(guò)LabVIEW的CLF節(jié)點(diǎn)調(diào)用的實(shí)現(xiàn)如下,調(diào)用動(dòng)態(tài)連接庫(kù)的配置方式詳見下圖3.8所示。

          

        調(diào)用動(dòng)態(tài)連接庫(kù)的配置方式

        上一頁(yè) 1 2 下一頁(yè)

        關(guān)鍵詞: LabVIEW 數(shù)控機(jī)床

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 汉沽区| 邢台县| 嫩江县| 东丽区| 昌乐县| 阿瓦提县| 新和县| 凤凰县| 同仁县| 兰溪市| 灵宝市| 黄平县| 松桃| 阿克| 油尖旺区| 吉木乃县| 铁岭县| 石楼县| 静海县| 奇台县| 文水县| 泾川县| 罗定市| 连城县| 阿城市| 昌江| 宜良县| 宁津县| 洪泽县| 金阳县| 阳信县| 和顺县| 邛崃市| 通化县| 广州市| 水富县| 怀安县| 寿光市| 惠东县| 都江堰市| 正宁县|