摘要:計(jì)算機(jī)控制技術(shù)課程實(shí)訓(xùn)是高職學(xué)院學(xué)生對(duì)工程應(yīng)用設(shè)計(jì)的主要而關(guān)鍵的環(huán)節(jié),利用動(dòng)態(tài)數(shù)據(jù)交換(DDE)技術(shù),實(shí)現(xiàn)PCI7401通用IO板與力控組態(tài)軟件間的數(shù)據(jù)傳輸,開(kāi)發(fā)基于計(jì)算機(jī)控制的實(shí)時(shí)數(shù)據(jù)處理系統(tǒng),使學(xué)生得到綜合訓(xùn)練,對(duì)培養(yǎng)學(xué)生綜合運(yùn)用知道能力、獨(dú)立工作能力和開(kāi)發(fā)創(chuàng)造能力都有積極的作用。
關(guān)鍵詞:計(jì)算機(jī)控制;DDE;組態(tài);通用IO板
中圖分類號(hào):TP273+.5 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2009)24-6801-02
Based on DDE and Configuration Computer Control Technology Courses Research Training
MA Ning
(Mianyang Vocational and Technical College,Mianyang 621000,China)
Abstract: The computer-controlled technology is the Vocational Training courses and students at colleges of engineering design and the key link in the main, the use of Dynamic Data Exchange (DDE) technology, to achieve universal PCI7401 ForceControl IO board and the software configuration of data transmission, the development of Based on computer-controlled real-time data processing system, so that students receive comprehensive training on the integrated use of students know that the ability to work independently and develop the ability to create a positive role.
Key words: computer control; DDE; configuration; general IO board
隨著計(jì)算機(jī)控制技術(shù)的飛速發(fā)展,計(jì)算機(jī)作為上位機(jī)在工業(yè)控制領(lǐng)域應(yīng)用越來(lái)越廣泛。作為高職學(xué)院的《計(jì)算機(jī)控制技術(shù)》課程內(nèi)容的改革必須圍繞加強(qiáng)學(xué)生實(shí)際動(dòng)手能力、綜合應(yīng)用所學(xué)專業(yè)理論和技能的能力、獨(dú)立工作能力和開(kāi)發(fā)創(chuàng)造等能力的培養(yǎng)和提高,使學(xué)生在工程應(yīng)用設(shè)計(jì)能力方面得到充分的鍛煉,以適應(yīng)不斷刷新的新技術(shù)。早期的計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì),多采用匯編語(yǔ)言開(kāi)發(fā)硬件接口和下位機(jī)控制程序、采用高級(jí)語(yǔ)言開(kāi)發(fā)上位機(jī)接口,這存在開(kāi)發(fā)周期長(zhǎng)、編程工作量大、容易出錯(cuò)等不足,伴隨通用I/O板和組態(tài)軟件的出現(xiàn),為解決上述工程問(wèn)題提供了一種嶄新的方法。監(jiān)控組態(tài)軟件已被應(yīng)用于眾多控制領(lǐng)域的數(shù)據(jù)采集與監(jiān)視控制以及過(guò)程控制系統(tǒng)。 本文結(jié)合我院2007級(jí)計(jì)算機(jī)應(yīng)用專業(yè)《計(jì)算機(jī)控制技術(shù)》課程實(shí)訓(xùn)模塊內(nèi)容,介紹基于三維力控組態(tài)軟件和宏拓PCI7401通用I/O板進(jìn)行控制系統(tǒng)設(shè)計(jì)開(kāi)發(fā),借助DDE技術(shù)實(shí)現(xiàn)現(xiàn)場(chǎng)信號(hào)與人機(jī)交互接口的數(shù)據(jù)傳輸。
1 控制系統(tǒng)組成方案
計(jì)算機(jī)控制系統(tǒng)包括工業(yè)控制計(jì)算機(jī)(IPC)、工業(yè)控制對(duì)象和通信接口,其控制過(guò)程可以概括為實(shí)時(shí)數(shù)據(jù)采集、實(shí)時(shí)決策控制和實(shí)時(shí)輸出控制。本次實(shí)訓(xùn)要求用PCI7401對(duì)現(xiàn)場(chǎng)控制信號(hào)(模擬信號(hào)、開(kāi)關(guān)信號(hào))進(jìn)行采集控制和驅(qū)動(dòng)控制,以力控組態(tài)軟件開(kāi)發(fā)人機(jī)交互接口,系統(tǒng)組成方案如圖1所示。
2 宏拓PCI-7401I/O板簡(jiǎn)介
PCI7401是8路8位 A/D轉(zhuǎn)換,2路8位D/A轉(zhuǎn)換,16路TTL電平開(kāi)關(guān)量輸入,16路TTL電平開(kāi)關(guān)量輸出的通用I/O接口板,采用PCI總線標(biāo)準(zhǔn),可直接安裝于工業(yè)PC機(jī)或兼容機(jī)中。適用于各種工業(yè)現(xiàn)場(chǎng)的數(shù)據(jù)采集和測(cè)量。
3 組態(tài)環(huán)境
目前已經(jīng)廣泛使用的組態(tài)軟件包括國(guó)外、國(guó)內(nèi)版本。三維力控(Forcecontrol)監(jiān)控組態(tài)軟件能同時(shí)與大多數(shù)國(guó)內(nèi)外各種工業(yè)控制廠家的設(shè)備進(jìn)行網(wǎng)絡(luò)通信,它可以高可靠地與工控計(jì)算機(jī)和網(wǎng)絡(luò)系統(tǒng)結(jié)合,達(dá)到集中管理和監(jiān)控的目的;同時(shí)還可以方便地向控制層和管理層提供軟、硬件的全部接口,實(shí)現(xiàn)與“第三方”的軟硬件系統(tǒng)集成。力控為實(shí)施數(shù)據(jù)采集、過(guò)程監(jiān)控、生產(chǎn)控制提供了基礎(chǔ)平臺(tái),它可以和檢測(cè)、控制設(shè)備構(gòu)成任意復(fù)雜的監(jiān)控系統(tǒng),在過(guò)程監(jiān)控中發(fā)揮核心作用,支持主流的DCS、PLC、DDC、現(xiàn)場(chǎng)總線、智能儀表等,為了解決異構(gòu)環(huán)境下不同系統(tǒng)之間的通信,力控支持Windows平臺(tái)下與第三方應(yīng)用程序之間基于DDE、OPC、ODBC的的數(shù)據(jù)通信和數(shù)據(jù)交換標(biāo)準(zhǔn)。DDE使用共享的內(nèi)存在應(yīng)用程序之間進(jìn)行數(shù)據(jù)交換,能夠及時(shí)更新數(shù)據(jù),在兩個(gè)應(yīng)用程序之間信息是自動(dòng)更新的,無(wú)須用戶參與。從圖1可看出,利用DDE可以方便的解決組態(tài)軟件暫不支持的I/O設(shè)備間的通信控制。
4 DDE技術(shù)
DDE是一種動(dòng)態(tài)數(shù)據(jù)交換機(jī)制(Dynamic Data Exchange,DDE)。DDE應(yīng)用程序分客戶應(yīng)用程序、服務(wù)器應(yīng)用程序、服務(wù)器/客戶應(yīng)用程序,客戶應(yīng)用程序用于發(fā)起對(duì)話請(qǐng)求和接受信息、服務(wù)器應(yīng)用程序響應(yīng)請(qǐng)求和提供信息、服務(wù)器/客戶應(yīng)用程序表示既是服務(wù)器也是客戶程序,兩者之間通過(guò)請(qǐng)求、應(yīng)答、傳輸實(shí)現(xiàn)數(shù)據(jù)傳送。DDE協(xié)議使用服務(wù)(service)、主題(topic)和數(shù)據(jù)項(xiàng)(item)三級(jí)命名來(lái)標(biāo)識(shí)所傳遞的數(shù)據(jù)單元。通常情況下,服務(wù)就是應(yīng)用程序的文件名,主題是對(duì)服務(wù)器有意義的信息單元(例如:VB的窗體名稱),數(shù)據(jù)項(xiàng)就是指服務(wù)中的單個(gè)數(shù)據(jù)項(xiàng),如果通過(guò)網(wǎng)絡(luò)與遠(yuǎn)程機(jī)器的DDE通信,還要提供遠(yuǎn)程節(jié)點(diǎn)的名稱。每次DDE客戶與服務(wù)程序之間的對(duì)話都是先由客戶啟動(dòng)的,所以在每次客戶啟動(dòng)之前,dde服務(wù)器應(yīng)當(dāng)首先投入運(yùn)行。DDE通信中包括:服務(wù)器數(shù)據(jù)變化時(shí),直接把數(shù)據(jù)送給客戶,由客戶對(duì)這些資料進(jìn)行處理的熱鏈方式、服務(wù)器的數(shù)據(jù)變化時(shí),服務(wù)器通知客戶,由客戶取數(shù)據(jù)的溫鏈方式和由客戶申請(qǐng)數(shù)據(jù)、服務(wù)器發(fā)送數(shù)據(jù)的冷鏈方式3種方式。
4.1 力控組態(tài)軟件中的DDE技術(shù)
力控組態(tài)軟件的實(shí)時(shí)數(shù)據(jù)庫(kù)是數(shù)據(jù)處理的核心,它支持DDE標(biāo)準(zhǔn),力控?cái)?shù)據(jù)庫(kù)可以作為DDE服務(wù)器,其它DDE客戶程序可以從力控組態(tài)軟件數(shù)據(jù)庫(kù)中訪問(wèn)數(shù)據(jù);力控組態(tài)軟件數(shù)據(jù)庫(kù)也可以作為DDE客戶程序,從其它DDE服務(wù)程序中訪問(wèn)數(shù)據(jù)。
力控組態(tài)軟件數(shù)據(jù)庫(kù)作為服務(wù)器時(shí),服務(wù)名稱為“DB”,話題名稱為“DB”,數(shù)據(jù)項(xiàng)目名稱為數(shù)據(jù)庫(kù)中的點(diǎn)參數(shù)名,如“TAG1.PV”、“TAG1.DESC”;當(dāng)力控組態(tài)軟件數(shù)據(jù)庫(kù)作為客戶端訪問(wèn)DDE服務(wù)器程序時(shí),將DDE服務(wù)器程序當(dāng)作一個(gè)I/O設(shè)備,數(shù)據(jù)庫(kù)中的點(diǎn)參數(shù)通過(guò)I/O數(shù)據(jù)連接與DDE服務(wù)器程序進(jìn)行數(shù)據(jù)交換,其數(shù)據(jù)項(xiàng)對(duì)應(yīng)與服務(wù)程序中的數(shù)據(jù)項(xiàng)名稱連接。
4.2 VB中的DDE技術(shù)
VB應(yīng)用程序作為服務(wù)器時(shí),服務(wù)名稱為“VB應(yīng)用程序的名稱(用戶設(shè)置,不超過(guò)8個(gè)字符)”,話題名稱為“窗體名稱”,同時(shí)必須將窗體的LinkMode屬性設(shè)置為“1-Source”;VB應(yīng)用程序作為客戶端訪問(wèn)力控DDE服務(wù)器時(shí),需要設(shè)置控件對(duì)象的下列屬性為:LinkItem:TAG1.PV(數(shù)據(jù)庫(kù)變量名) 、LinkMode:0,1,2,3 、LinkTopic:DB|DB。
4.3 力控組態(tài)軟件與VB的DDE連接技術(shù)
在VB窗體(pci7401DDE)中添加一個(gè)timer控件、8個(gè)textBox控件channel1(0)~channel1(7)用于存放PCI7401的8路A/D轉(zhuǎn)換值、16個(gè)textBox控件text2(0)~text2(15)用于存放PCI7401的16路開(kāi)關(guān)量輸入狀態(tài)(1、0),同時(shí)設(shè)置窗體(pci7401DDE)的LinkMode=1-Source,LinkTopic=pci7401DDE,然后編寫(xiě)如下代碼:
Private Sub Form_Load()
hplx = pci7401check(0, 0, False, 1)'查找并打開(kāi)PCI7401板卡
End Sub
Private Sub Timer_Timer()
If hplx <> 0 Then
did(0) = pci7401di(hplx, False, 0) ‘讀PCI7401第0通道開(kāi)關(guān)量信號(hào)
did(1) = pci7401di(hplx, False, 1)‘讀PCI7401第1通道開(kāi)關(guān)量信號(hào)
For i = 0 To 7
channel1(i) = pci7401ad(hplx, False, i) * 5/255‘對(duì)8路模擬輸入進(jìn)行讀操作
‘延時(shí)
Next i
End If
For i = 0 To 1
X = did(i)
y = 1
For j = 0 To 7‘判斷每一路是否有輸入
If (X And y) Then
Text2(i * 8 + j).Text = 1
X = X - 2 ^ j
Else
Text2(i * 8 + j).Text = 0
End If
y = y * 2
Next j
Next i
End Sub
在力控開(kāi)發(fā)環(huán)境中,首先在IOManager窗口中添加IO設(shè)備驅(qū)動(dòng),本系統(tǒng)中為DDE,其中服務(wù)名稱為VB應(yīng)用程序的名稱(本系統(tǒng)中位ddevb),主題名稱為VB應(yīng)用程序的窗體名稱(本系統(tǒng)中為pci7401DDE);然后定義8個(gè)模擬I/O點(diǎn)ain1~ain8,分別連接到ddevb設(shè)備的channel1(0)~channel1(7),16個(gè)數(shù)字I/O點(diǎn)object1~object16,分別連接到ddevb設(shè)備的text2(0) ~text2(15);最后在窗口中放置對(duì)象并進(jìn)行動(dòng)畫(huà)連接。
運(yùn)行ddevb.exe,運(yùn)行力控程序,HMI界面顯示如圖2所示。采用同樣的方法可以在力控開(kāi)發(fā)環(huán)境中完成實(shí)時(shí)數(shù)據(jù)處理、歷史數(shù)據(jù)存儲(chǔ)、統(tǒng)計(jì)數(shù)據(jù)處理、報(bào)警處理、數(shù)據(jù)服務(wù)請(qǐng)求處理等功能。
5 結(jié)束語(yǔ)
該文提供了一種基于DDE技術(shù)實(shí)現(xiàn)通用IO板與組態(tài)軟件進(jìn)行計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)的方法,由于DDE技術(shù)的友好性,使得在計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)中,即使沒(méi)有相應(yīng)IO設(shè)備的硬件驅(qū)動(dòng),也可以方便的利用組態(tài)軟件的開(kāi)放性借助第三方應(yīng)用程序?qū)崿F(xiàn)實(shí)時(shí)數(shù)據(jù)交換,從而充分發(fā)揮計(jì)算機(jī)在實(shí)時(shí)控制系統(tǒng)中的優(yōu)勢(shì);通過(guò)這種模塊化實(shí)際訓(xùn)練,使得學(xué)生對(duì)計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)的步驟、方法和措施有了較好程度的理解和把握。
參考文獻(xiàn):
[1] 夏建全.工業(yè)計(jì)算機(jī)控制技術(shù)原理與應(yīng)用[M].北京:清華大學(xué)出版社,2008.
[2] 張運(yùn)剛.工業(yè)組態(tài)技術(shù)與應(yīng)用[M].北京:人民郵電出版社2008.