馬志剛
(山西機電職業(yè)技術(shù)學(xué)院,山西 長治 046011)
計算機測控,就是利用傳感器將實際物理量(如溫度、壓力、液位)轉(zhuǎn)換為電量(如電壓、電流),再將這些電量傳送到控制系統(tǒng)中,由控制系統(tǒng)將采集到的數(shù)據(jù)存儲起來,進行實時分析并按工藝要求輸出相應(yīng)的電信號,推動執(zhí)行裝置完成控制任務(wù)。
計算機測控系統(tǒng)可分為硬件和軟件兩部分,硬件部分由監(jiān)控對象(生產(chǎn)機械)、計算機主機等組成。計算機主機有單片機、PLC或主控機等。計算機軟件有系統(tǒng)軟件和應(yīng)用軟件之分,應(yīng)用軟件有很多,主要的是:1) Visual Basic、VC、Labview等高級語言;2) 如組態(tài)王、昆侖通態(tài)等組態(tài)軟件[1]。
其中Microsoft Visual C++,(簡稱Visual C++、MSVC、VC++或VC)是Microsoft公司推出的以C++語言為基礎(chǔ)的開發(fā)Windows環(huán)境程序,面向?qū)ο蟮目梢暬删幊滔到y(tǒng)。
數(shù)據(jù)采集卡實際上就是過程通道板卡,他是一塊印刷電路板上記成了模擬多路開關(guān)、程序放大器、采樣/保持器、AD/DA轉(zhuǎn)換器、光電隔離接口等電路[1]。常見的板卡有研華、凌華等,現(xiàn)今眾多板卡的出現(xiàn),給工控人員提供了極大的便利,不需要掌握過于復(fù)雜的電子電路,而交給更專業(yè)的板卡生產(chǎn)廠家去完成,而自己只需要根據(jù)生產(chǎn)過程選擇合適的板卡就行,而廣大的板卡廠家也很貼心的提供了二次開發(fā)的接口,我們只需要根據(jù)廠家提供的二次開發(fā)接口完成我們的開發(fā)就可以節(jié)省大量時間。
本論文是基于鄭市一個電子科技有限公司的一款迷你USB數(shù)據(jù)采集卡而寫,該數(shù)據(jù)采集卡采用USB2.0總線,具有12路單端模擬量采集,2路DA模擬量輸出,2路PWM可編程頻率占空比輸出,1路PWM脈寬測量,1路32位計數(shù)器端口,8路單向輸入輸出口。
該板卡提供設(shè)備操作函數(shù)、AD操作函數(shù)和PWM輸入輸出函數(shù)、IO口控制模塊。
表1數(shù)據(jù)采集卡常用函數(shù)
具體過程如下:
1) 新建一個基于對話框的程序
圖1 演示系統(tǒng)界面
2) 將解壓得到的dll,lib、h文件復(fù)制入程序目錄之中。
圖2 解壓包內(nèi)容
3) 在數(shù)據(jù)采集卡Dlg.cpp中加入#include "easyusb_card_dll.h"和#pragma comment(lib,"easyusb_card_dll.lib")
圖3 函數(shù)申明
這樣就可以調(diào)用easyusb_card_dll.dll庫文件中的函數(shù)。
4) 打開設(shè)備和關(guān)閉設(shè)備
新建兩按鈕響應(yīng)函數(shù),在打開設(shè)備中填入OpenUsbV20函數(shù),并判斷是否打開設(shè)備成功,如打開失敗,則彈出對話框提示打開失敗,程序如下圖:
圖4 打開設(shè)備函數(shù)
5) 設(shè)置閥門開啟、關(guān)閉狀態(tài)
執(zhí)行機構(gòu)可采用繼電器去控制馬達或閥門的起閉。開啟停止閥門可以用DoSetV20函數(shù)來實現(xiàn)。DoSetV20具體定義如下:
設(shè)置OUT0-7的輸出狀態(tài),輸入?yún)?shù)為8位字符型,Chan為要設(shè)置的通道,0 對應(yīng)OUT0……7 對應(yīng)OUT7
State為要設(shè)置的狀態(tài),0 對應(yīng)輸出口輸出0 V,1 對應(yīng)輸出口輸出3.3 V
正常返回 0,失敗返回-1。
我們可以通過建立按鈕來調(diào)用這些函數(shù),可以通過判斷按鍵上的文本來判斷是開啟閥門還是關(guān)閉閥門,外接電路如圖5:
圖5 硬件電路圖
具體程序內(nèi)容如下:
圖6 輸出函數(shù)
6) 檢測閥門開啟狀態(tài)
檢測閥門開啟狀態(tài)可以通過調(diào)用DiReadV20函數(shù)來實線,DIReadV20函數(shù)具體定義如下:
功能:讀入8位開關(guān)量輸入。
函數(shù):int DiReadV20 (unsigned char *value);
*value:為8位無符號型數(shù)據(jù)指針,函數(shù)返回后該數(shù)據(jù)指向的數(shù)據(jù)就是IN0—7的輸入狀態(tài),其中位0的值表示IN0的高低狀態(tài),以此類推,位7的值表示IN7的高低狀態(tài);每位數(shù)值為0
則輸入為低電平(0 V)、為1 則為高電平(3.3 V)
函數(shù)返回:=0 表示操作有效/-1 失敗。
我們可以調(diào)用定時器來實現(xiàn)定時讀取輸入端口狀態(tài),具體程序如下:
圖7 讀取端口狀態(tài)
如上,我們的設(shè)計主體基本完成。除此之外,我們還可以有其他輔助功能,如:開機畫面、登錄驗證功能、讀取溫度和禁止快捷鍵等功能。
通過調(diào)用板卡廠商提供的動態(tài)鏈接庫,可以極大的簡化項目開發(fā)過程,可以大大提高開發(fā)人員的效率。
[1] 李江全,唐智輝,朱東芹.Visual Basic數(shù)據(jù)采集與串口通信測控應(yīng)用實戰(zhàn)[M].北京:人民郵電出版社,2010.