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