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