馬聰
摘要:USB-4716是研華公司推出的通用數(shù)據(jù)采集,信號(hào)控制模塊,性能強(qiáng)大,易上手,支持Labview,VB,VC++,C#等多種編程控制方式。該文結(jié)合工作實(shí)踐介紹使用C#編程語(yǔ)言,Visual Studio開(kāi)發(fā)平臺(tái),編寫(xiě)Windows圖形界面風(fēng)格Winform應(yīng)用程序的一般步驟,方法和注意事項(xiàng)。
關(guān)鍵詞:USB4716;C#;Visual Studio;Winform
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)13-0084-02
隨著科技進(jìn)步,測(cè)控系統(tǒng)在自動(dòng)化系統(tǒng)中的應(yīng)用越來(lái)越廣泛,對(duì)于一個(gè)全新測(cè)控系統(tǒng)的研制開(kāi)發(fā),相比于以往完全重新搭建硬件平臺(tái)來(lái)構(gòu)建測(cè)控系統(tǒng)的設(shè)計(jì)思路,使用成熟硬件模塊與通用軟件設(shè)計(jì)平臺(tái)更加高效省時(shí),同時(shí)這種設(shè)計(jì)思路也得到越來(lái)越多研發(fā)人員的青睞?;谀K化設(shè)計(jì)思路,成熟的硬件平臺(tái)以及通用軟件設(shè)計(jì)語(yǔ)言的設(shè)計(jì)理念,本文將介紹一種快速測(cè)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。
1 平臺(tái)簡(jiǎn)介
1.1 硬件平臺(tái)
1.1.1 USB-4716模塊
1)16個(gè)單端/8個(gè)差分或組合方式模擬量輸入通道(ADC:analog to digital converter),16位精度,采樣率可達(dá)200KS/s;
2)2個(gè)模擬量輸出通道(DAC:digital to analog converter);
3)8個(gè)數(shù)字量輸出通道(DO:digital output);
4)8個(gè)數(shù)字量輸入通道(DI:digital input);
5)USB通信和供電/支持熱插拔/LED指示燈/自動(dòng)校準(zhǔn)功能……
1.1.2 電腦
1) Window 2000/Windows XP/Windows 7操作系統(tǒng);
2) 安裝Visual Studio 2005(VS)以上版本開(kāi)發(fā)平臺(tái)。
1.2 軟件平臺(tái)
VS是目前最流行的Windows平臺(tái)應(yīng)用程序的集成開(kāi)發(fā)環(huán)境。C#是微軟公司發(fā)布的一種面向?qū)ο蟮母呒?jí)程序設(shè)計(jì)語(yǔ)言。
2 軟件功能塊圖
系統(tǒng)分為3大部分,分別是電腦,USB-4716模塊以及外設(shè)部分,電腦用來(lái)編寫(xiě)運(yùn)行Winform程序,USB-4716是通用數(shù)據(jù)采集與控制模塊,外設(shè)根據(jù)應(yīng)用不同會(huì)有所差異。
程序軟件分為四大功能模塊,如圖1。
3 詳細(xì)軟件設(shè)計(jì)
軟件開(kāi)發(fā)流程依次為安裝設(shè)備驅(qū)動(dòng),連接設(shè)備,打開(kāi)VS,創(chuàng)建C# Winform應(yīng)用程序,加載DLL,調(diào)用DLL方法編寫(xiě)程序等幾個(gè)步驟。建議在連接設(shè)備之前先安裝設(shè)備驅(qū)動(dòng),連接設(shè)備之后通過(guò)Windows設(shè)備管理器查看設(shè)備連接情況確保設(shè)備連接成功,這樣安裝會(huì)比較順利。
設(shè)備驅(qū)動(dòng)中包含廠商開(kāi)發(fā)的DLL動(dòng)態(tài)鏈接庫(kù),一旦加載完成,程序開(kāi)發(fā)過(guò)程中就可以非常方便的調(diào)用DLL中的方法函數(shù)完成輸入輸出控制。其中比較常用的控件有:BufferedAiCtrl控件提供連續(xù)模擬信號(hào)輸入方法調(diào)用,可設(shè)置采樣頻率;BufferedAoCtrl控件提供連續(xù)模擬信號(hào)輸出控制,可輸出波形;InstantAiCtrl控件提供即時(shí)模擬輸入方法調(diào)用;InstantAoCtrl控件提供即時(shí)模擬輸出方法調(diào)用;InstantDiCtrl控件提供即時(shí)數(shù)字輸入方法調(diào)用;InstantDoCtrl控件提供即時(shí)數(shù)字輸出方法調(diào)用。
3.1 ADC數(shù)據(jù)采集處理與顯示
點(diǎn)擊Use Instant AI,選擇即時(shí)ADC采樣模式,點(diǎn)擊開(kāi)始采集一次ADC模擬數(shù)據(jù)。
點(diǎn)擊Use Buffered AI,選擇連續(xù)采樣模式,點(diǎn)擊開(kāi)始,按照設(shè)置的采樣率連續(xù)采集ADC模擬數(shù)據(jù),直至收到停止命令。
3.2 DAC模擬量輸出控制
點(diǎn)擊Use Instant AO,選擇即時(shí)DAC輸出模式,點(diǎn)擊開(kāi)始輸出本次設(shè)置DAC電壓值。
點(diǎn)擊Use Buffered AO,選擇連續(xù)DAC輸出模式,點(diǎn)擊開(kāi)始,按照設(shè)置的輸出頻率連續(xù)輸出設(shè)置的DAC電壓值,直至收到停止命令。
3.3 數(shù)字量輸出控制
默認(rèn)DO數(shù)字輸出狀態(tài)為低電平,點(diǎn)擊DO端口地址圖標(biāo),變?yōu)樗{(lán)色,輸出狀態(tài)更新為高電平輸出。
3.4 數(shù)字量輸入采集與顯示
默認(rèn)DI狀態(tài)實(shí)時(shí)更新,在沒(méi)有外接輸入狀態(tài)下,內(nèi)部弱上拉配置DI輸入為邏輯高電平,一旦接收到物理低電平,即更新顯示狀態(tài)為邏輯低電平。
3.5 源代碼示例
以下是C#編寫(xiě)的ADC采樣代碼,在ADSampling方法中直接調(diào)用instantAiCtrl1.Read方法,實(shí)現(xiàn)任意通道ADC信號(hào)的單次讀取,簡(jiǎn)單易用。
public void ADSampling(int ADCChannel, ref double[] m_dataScaled)
{ if (instantAiCtrl1.Read(0, ADCChannel, m_dataScaled) != ErrorCode.Success) …… }
4 結(jié)束語(yǔ)
通過(guò)實(shí)際設(shè)計(jì)開(kāi)發(fā),我們發(fā)現(xiàn)使用標(biāo)準(zhǔn)數(shù)據(jù)采集與信號(hào)控制模塊USB-4716,結(jié)合VS開(kāi)發(fā)平臺(tái),C#編程語(yǔ)言,可以很方便地搭建數(shù)據(jù)采集與信號(hào)控制平臺(tái),極大地提高了工作效率,節(jié)約了設(shè)計(jì)開(kāi)發(fā)時(shí)間。更重要的是,在更換測(cè)試需求后,可以通過(guò)簡(jiǎn)單更改外設(shè)配件以及代碼移植實(shí)現(xiàn)全新測(cè)試功能。
參考文獻(xiàn):
[1] USB-4716 用戶(hù)手冊(cè)——研華科技,2010年2月第一版 [EB/OL].http://downloadt.advantech.com.cn/ProductFile/Downloadfile2/1-HU9ZV3/USB-4716_user_manual(CH)_ed.1.pdf.
[2] Windows驅(qū)動(dòng)程序DAQNavi_USB4716_3.2.6.0.exe——研華科技 [EB/OL]. (2015-10-08).http://support.advantech.com.cn/support/DownloadSRDetail_New.aspx?SR_ID=1-FCIIF6&Doc _Source=Download.