摘要:本文介紹了使用VB實(shí)現(xiàn)組態(tài)王與單片機(jī)之間的通信,減少了系統(tǒng)開(kāi)發(fā)周期,提高了軟件質(zhì)量,便于系統(tǒng)調(diào)試與維護(hù)。
關(guān)鍵詞:VB 組態(tài)王 單片機(jī)
中圖分類(lèi)號(hào):TP29 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2011)12(c)-0000-00
DCS的構(gòu)成方式十分靈活,處于底層的過(guò)程控制級(jí)(下位機(jī))一般由分散的數(shù)據(jù)采集站和現(xiàn)場(chǎng)控制站等就地實(shí)現(xiàn)數(shù)據(jù)采集和控制,并通過(guò)數(shù)據(jù)通信網(wǎng)絡(luò)傳送到生產(chǎn)監(jiān)控級(jí)計(jì)算機(jī)。生產(chǎn)監(jiān)控級(jí)(上位機(jī))對(duì)來(lái)自過(guò)程控制級(jí)的數(shù)據(jù)進(jìn)行集中操作管理,如各種優(yōu)化計(jì)算、統(tǒng)計(jì)報(bào)表、故障診斷、顯示報(bào)警等。一般由一臺(tái)PC機(jī)作為上位機(jī),多臺(tái)單片機(jī)組成的數(shù)據(jù)采集與控制系統(tǒng)作為下位機(jī),為使人機(jī)交互方便、操作簡(jiǎn)單直觀,常采用VB、VC開(kāi)發(fā)監(jiān)控系統(tǒng),但這種實(shí)現(xiàn)方法編程難度大,對(duì)設(shè)計(jì)人員要求高,開(kāi)發(fā)周期長(zhǎng),而組態(tài)軟件的出現(xiàn)恰好解決了這個(gè)問(wèn)題。
組態(tài)軟件是指一些數(shù)據(jù)采集與過(guò)程控制的專(zhuān)用軟件,它們是處在自動(dòng)控制系統(tǒng)監(jiān)控層一級(jí)的軟件平臺(tái)和開(kāi)發(fā)環(huán)境,使用靈活的組態(tài)方式,為用戶(hù)提供快速構(gòu)建工業(yè)自動(dòng)控制系統(tǒng)監(jiān)控功能的、通用層次的軟件工具。組態(tài)軟件的應(yīng)用領(lǐng)域很廣,可以應(yīng)用于電力系統(tǒng)等領(lǐng)域的數(shù)據(jù)采集與監(jiān)視控制以及過(guò)程控制等諸多領(lǐng)域。近年來(lái),組態(tài)王KingView工控軟件以其簡(jiǎn)單的操作、友好的界面、低廉的價(jià)格等優(yōu)勢(shì)得到了廣大使用者的好評(píng)。
由于工業(yè)控制中需要監(jiān)控的設(shè)備有儀表、模塊及其他各種類(lèi)型的設(shè)備,它們數(shù)量眾多,需要開(kāi)發(fā)大量的驅(qū)動(dòng)以支持不同設(shè)備,而組態(tài)王提供的驅(qū)動(dòng)不可能滿(mǎn)足所有需求,對(duì)于用戶(hù)自己設(shè)計(jì)的裝置則沒(méi)有相關(guān)驅(qū)動(dòng)程序。本文詳細(xì)介紹了如何用VB實(shí)現(xiàn)組態(tài)軟件與單片機(jī)之間的通信。
1 通信系統(tǒng)結(jié)構(gòu)
該系統(tǒng)結(jié)構(gòu)框圖如圖1所示,組態(tài)王與VB應(yīng)用程序間的通信通過(guò)DDE實(shí)現(xiàn),單片機(jī)與VB應(yīng)用程序間的通信通過(guò)串口通信實(shí)現(xiàn)。
2 VB應(yīng)用程序與組態(tài)王之間的數(shù)據(jù)交換
DDE(動(dòng)態(tài)數(shù)據(jù)交換)能夠和其它支持動(dòng)態(tài)數(shù)據(jù)交換的應(yīng)用程序方便的交換數(shù)據(jù),DDE對(duì)話(huà)的內(nèi)容是通過(guò)三個(gè)標(biāo)識(shí)名來(lái)約定的:應(yīng)用程序名 (application)、主題 (topic)、項(xiàng)目 (item),對(duì)VB而言,程序名是指Visual Basic程序使用的可執(zhí)行文件的名稱(chēng),主題是指Visual Basic程序窗體(Form)的 LinkTopic屬性值,項(xiàng)目是一個(gè)特定的文本框、標(biāo)簽或圖片框等控件的名稱(chēng)。在 VB可視化編程工具中,DDE 連接是通過(guò)控件的屬性和方法來(lái)實(shí)現(xiàn)的。對(duì)于作“顧客”的文本框、標(biāo)簽或圖片框,要設(shè)置 LinkTopic、LinkItem、LinkMode 三個(gè)屬性。
control.LinkTopic=服務(wù)器程序名|主題名
control.LinkItem=項(xiàng)目名
其中,control 是文本框、標(biāo)簽或圖片框的名字。
control.LinkMode有四種選擇:0=關(guān)閉 DDE;1=熱連接;2=冷連接;3=通告連接。
組態(tài)王訪問(wèn)VB應(yīng)用程序時(shí),首先在VB中設(shè)置如下:Form1窗體中的LinkMode屬性設(shè)置為1,窗體的LinkTopic屬性設(shè)置為FormTopic,控件的Name屬性設(shè)置為T(mén)ext_To_View,生成的可執(zhí)行文件的名稱(chēng)為vbdde。在組態(tài)王中設(shè)置如下:新建DDE設(shè)備,服務(wù)程序名即為VB中生成的可執(zhí)行文件名,話(huà)題名與VB中窗體的LinkTopic屬性值相同;新建一變量,變量的連接設(shè)備名與服務(wù)程序名相同,項(xiàng)目名與控件的Name屬性相同;新建一畫(huà)面,將畫(huà)面的文本框動(dòng)畫(huà)連接至新建的變量。
3 VB應(yīng)用程序與單片機(jī)之間的數(shù)據(jù)交換
VB與單片機(jī)之間的串行通信主要是通過(guò)MSComm控件實(shí)現(xiàn)的,微軟公司提供的Microsoft Comm Control控件(簡(jiǎn)稱(chēng)MSComm)為編程者提供了簡(jiǎn)化的Windows下的串行通信編程,使編程者不必掌握諸多關(guān)于硬件方面的知識(shí),節(jié)省了開(kāi)發(fā)周期。使用MSComm控件主要是通過(guò)事件來(lái)處理串行口的交互,在使用事件驅(qū)動(dòng)法設(shè)計(jì)程序時(shí),每當(dāng)有新字符到達(dá),或端口狀態(tài)改變,或發(fā)生錯(cuò)誤時(shí),MSComm控件將觸發(fā)OnComm事件,而應(yīng)用程序在捕獲該事件后,可以通過(guò)檢查MSComm控件的CommEvent屬性獲取所發(fā)生的事件或錯(cuò)誤,從而采取相應(yīng)的操作。在MSComm控件中主要用到的幾個(gè)屬性為CommPort、Settings等,CommPort用來(lái)設(shè)置并返回通信端口號(hào),Settings以字符串的形式設(shè)置并返回波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位,缺省值為“9600,n,8,1”。
4 結(jié)語(yǔ)
通過(guò)VB實(shí)現(xiàn)組態(tài)王與單片機(jī)的通信,程序?qū)崿F(xiàn)簡(jiǎn)單且模塊化。將組態(tài)軟件與高級(jí)語(yǔ)言合用編寫(xiě)復(fù)雜控制系統(tǒng)軟件,易于做到縮短開(kāi)發(fā)周期,提高軟件質(zhì)量,且便于調(diào)試和維護(hù)。
參考文獻(xiàn)
[1] 北京亞控科技發(fā)展有限公司.組態(tài)王Vision6.53用戶(hù)手冊(cè)[M].北京:北京亞控科技發(fā)展有限公司,2007.