中文字幕一区二区三区四区五区-亚洲综合视频在线-欧美精品免费在线观看-日本精品视频一区-777奇米视频-91九色视频在线观看-欧美激情免费在线观看-欧美国产视频一区-99精品视频在线看-日韩欧三级-亚洲一区www

寧波市鄞州首南恒宇激光雕刻廠

DAQBench在人機界面編程中的應用
分享到:


人機界面是測控應用系統(tǒng)開發(fā)的一個重要部分。DAOBench是凌華科技股份有限公司研發(fā)的一套測量和自動化應用的32位ActiveX控件,包括用戶界面、數據分析、信息整合、SCADA/HMI等各種控件及工具。使用DAQBench,用戶可以很容易地開發(fā)出復雜的用戶應用系統(tǒng)來顯示信號數據、分析所采集到的數據、快速地與Excel、數據庫或Web做信息整合。運用DAQBench的SCADA/HMI功能,您也可以很快地開發(fā)分布式(distributed)人機界面(HMI)應用系統(tǒng)。可以在任何支持ActiveX標準的軟件開發(fā)平臺使用,包括Visual Basic、Visual C++、C++Builder、Delphi等。

1、原理

ActiveX控件的妙處在于,控件與應用程序總是能融洽地交互。ActiveX控件提供了三種與應用程序交互的基本機制:屬性(Property)、方法(Method)和事件(Event)。用戶由此三部分來控制控件并開發(fā)程序。屬性是描述控件的當前狀態(tài),并影響控件的顯示和行為,屬性值存儲在控件的變量中。方法為定義在控件內的函數(Function),方法的使用與控件所提供的功能有關,通常會影響控件本身或其行為,大多數方法的作用也會受到控件當時屬性的影響。事件是在某些特定情況時,控件所產生的通知事件,事件被傳遞給控件應用程序以執(zhí)行程序中與此事件連接的函數(Event handler)。

以下舉例說明,如何運用DAQBench控件建立人機界面,以及使用ADLINK的數據采集設備的ActiveX控件進行模擬信號的處理。

我們假設把一個程序分成兩部分:可視部分(前臺顯示操作的界面)和不可視部分(后臺工作的線程)。本文程序的顯示界面非常簡單,僅有一個作圖控件及一個退出按鈕,后臺工作是使用一個虛擬的PCI—9112多功能數據采集卡(不需要安裝真正的板卡)產生采樣數據。程序流程見圖1,在程序的開始,調用PCI—9112控件的方法StartContAI來激活連續(xù)的AI, 當采樣完成時,會自動激活PCI—9112控件的事件AiHalfReady 0,在事件響應函數中,通過調用作圖控件的方法PlotChart 0,把采集到的數據傳送給作圖控件。這樣,我們就能不斷地在屏幕上看到采樣數據,直到程序退出。整個程序只有兩條語句需要鍵盤輸入,其余工作都是通過鼠標點擊來完成的。從這個程序您可以感受到用DAQBench的ActiveX控件來做數據采集程序是多么的簡單容易。

圖1 程序原理圖
2、編程

以下將以逐步推進(step by step)的方式,說明如何在微軟的Visual c++6.0下,運用DAQBench的ActiveX控件來完成數據采集的應用。

2.1 程序框架的建立

使用Visual C++的MFC AppWizard來建立一個基于對話框的程序框架。

通過File>>New菜單命令建立一個新的項目,其會打開New的對話框。在Projects頁面中,選擇[MFC AppWizard(exe)]項目類型,在Project name中輸入項目名稱:MZR 點0K。

在Step 1對話框選擇[Dialog based]選項, 點Finish>>點0K。

這樣,應用程序向導會構建一個新的項目和程序的框架,并自動在對話框編輯器中打開程序對話框。

2.2 加載DAQBench控件

把需要的ActiveX控件添加到控件工具欄(Control Toolbar)的步驟如下:

(1) 選擇Project>> Add To Project >>Components And Controls?項目,然后,在接著出現的對話框中,使用鼠標雙擊Registered ActiveX Controls目錄條目。這樣就會打開一系列計算機上已經安裝和注冊的ActiveX控件清單。選擇并插入需要的ActiveX控件到您的項目和控件工具欄中。

(2) 選擇繪圖ActiveX控件(文件名)DAQBench DChart Control—(ADLINK),單擊Insert按鈕,在隨后的對話框中使用鼠標點選OK,接受缺省的類名和文件名。

(3) 選擇數據采集ActiveX控件(文件名)NuDAQ PCI—9112 Control—(ADLINK),單擊Insert按鈕,單擊確定按鈕,單擊OK按鈕,接受缺省的類名和文件名。

(4) 添加完畢,返回Components And Controls Gallery對話框,單擊Close按鈕。

這樣,就在對話框編輯器的控件工具欄中,加進了繪圖控件DAQBench DChart Control和數據采集控件NuDAQ PCI—9112 Control,可以方便地將控件加入到對話框中。

2.3 程序設計

將控件添加到控件工具欄之后,就可以在設計應用程序的用戶界面時使用控件了。開發(fā)者可以使用對話框編輯器將控件放置在對話框上。具體操作步驟如下:

刪除窗體上帶TODO消息的靜態(tài)文本控件,并刪除確定按鈕。

單擊Controls工具條底部的DChart按鈕,并通過鼠標點擊把它放在對話框中,ActiveX控件可以象標準Windows控件一樣插入對話框,并可調整位置與大小。

選擇Controls工具條底部的PCI—9112按鈕,把它放在對話框中適當的位置,右鍵點擊對話框中的PCI—9112控件,在打開的菜單中選擇屬性(Properties),就會出現一個帶有各種不同屬性字段的屬性頁對話框。通過屬性頁對話框,你可以對這個特定的控件進行設置,具體數值見表1。

表1 控件NuDAQ PCI-9112 Control屬性設置
在用戶使用控件編寫程序之前,要先為該控件設定一個變量名稱。下面為作圖控件和采樣控件設定相應變量:通過快捷鍵Ctrl+W,打開MFC Class Wizard對話框,在Member Variables標簽中將Class name設置為CMZRDlg,通過Add Variables?按鈕給其中的控件標識號添加變量,變量的定義見表2。

表2 對話框中相應控件變量的
定義PCI—9112控件的事件處理函數,通過快捷鍵Ctrl+W,在MFC Class Wizard窗口中,按下Message Maps 標簽并在Object Ids字段中選IDC_PCI9112CTRLI控件,在Messages字段中選AiHalfReady,單擊Add Function按鈕,添加數據采集控件的AiHalfReady消息響應函數,接受缺省的函數名,單擊Edit Code按鈕以定位到該函數,在其中加入下列代碼:

void
CMZRDlg::OnAiHalfReadyPci9112ctrl1(VARIANT FAR*ScaledData,VARIANT FAR*BinaryCodes)
{
//TODO:Add your control notification handler code here
m_Chart.PlotChart(ScaledData);// 將ScaledData中的采樣數據傳遞給作圖控件。
}

在初始化函數中啟動數據采集函數:

定位到對話框初始化函數void CMzRDlg::OnInitDialog(),在其結尾return TRUE;語句之前加入下列語句

聯系我們

地址: 浙江省.寧波市鄞州區(qū)寧姜公路(九曲小區(qū)二期旁)

郵編: 315040

聯系人: 盛立峰

電話: 0574-87139378

傳真: 0574-87139378

手機: 13867861670

郵箱: 85400329@qq.com

聯系我們