版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘要:基于DDE(DynamicDataExchange)技術(shù),研究了VB6.0下組態(tài)軟件與下位機(jī)串口通信服務(wù)程序的實(shí)現(xiàn)方法,并對(duì)其進(jìn)行了改進(jìn),解決了組態(tài)軟件沒(méi)有提供某些現(xiàn)場(chǎng)設(shè)備的通信驅(qū)動(dòng)程序的問(wèn)題。服務(wù)程序利用串口通信控件MSComm與下位機(jī)進(jìn)行通信,同時(shí)采用DDE技術(shù)與組態(tài)軟件進(jìn)行數(shù)據(jù)交換。工程實(shí)踐表明,該方法通用性強(qiáng)、實(shí)現(xiàn)簡(jiǎn)便。1、引言、引言在工業(yè)控制領(lǐng)域,組態(tài)軟件正得到越來(lái)越廣泛的使用。例如:Fix、InTouch、KingVi
2、ew(組態(tài)王)等均是組態(tài)軟件的優(yōu)秀代表,它們提供了豐富的工控界面、數(shù)據(jù)庫(kù)處理、對(duì)象連接等數(shù)據(jù)管理控制功能,為使用者帶來(lái)了極大的方便。組態(tài)軟件以Windows系統(tǒng)作為操作平臺(tái),具有圖形功能完備、界面一致性好和易學(xué)易用等特點(diǎn),與以往使用專(zhuān)用機(jī)開(kāi)發(fā)的工控系統(tǒng)相比更有通用性,更方便了工程技術(shù)人員的應(yīng)用開(kāi)發(fā)。但在實(shí)際應(yīng)用中,組態(tài)軟件常常沒(méi)能提供一些現(xiàn)場(chǎng)設(shè)備的通信驅(qū)動(dòng)程序,而這些設(shè)備大多采用串口與PC機(jī)進(jìn)行通信。VB提供的串行通信控件MSComm,
3、讓開(kāi)發(fā)者可以方便、快捷地開(kāi)發(fā)串行通信程序,而采用VB在Windows環(huán)境下實(shí)現(xiàn)符合DDE協(xié)議的通信程序也并非難事,因此整個(gè)系統(tǒng)的數(shù)據(jù)流示意圖如圖1所示。本文以組態(tài)王軟件與PHILIPS公司的51LPC系列單片機(jī)之間的通信為例,研究了采用VB6.0開(kāi)發(fā)串口通信服務(wù)程序的原理及其實(shí)現(xiàn)方法。圖1系統(tǒng)數(shù)據(jù)流示意圖2、串口通信的實(shí)現(xiàn)方法、串口通信的實(shí)現(xiàn)方法Windows平臺(tái)下利用VB實(shí)現(xiàn)串口通信主要有以下兩種方法:1)使用WindowsAPI(A
4、pplicationProgramInterface)函數(shù)。這種方法可編寫(xiě)移植性強(qiáng)的通信程序,但必須首先用Declare聲明VB中所要用的動(dòng)態(tài)鏈接庫(kù)DLL,這需要對(duì)WindowsAPI函數(shù)有深入的了解,編程較復(fù)雜;2)使用Microsoft公司提供的ActiveX控件MSComm。該通信控件通過(guò)改變對(duì)象屬性,向?qū)ο蟀l(fā)送消息及為對(duì)象事件編寫(xiě)響應(yīng)代碼,可以方便地完成用戶(hù)應(yīng)用程序間的串行通信,既可實(shí)現(xiàn)API函數(shù)的所有功能,又使得編程效率提高,
5、應(yīng)用功能增強(qiáng),并且程序簡(jiǎn)單明了。對(duì)于MSComm控件實(shí)現(xiàn)串口通信的操作很多文獻(xiàn)都有論述,該控件的主要屬性可參考相關(guān)文獻(xiàn),在此不作具體介紹。需要強(qiáng)調(diào)的是:在數(shù)據(jù)發(fā)送與接收過(guò)程中,都要通過(guò)一個(gè)Variant類(lèi)型變量作為中介。發(fā)送數(shù)據(jù)時(shí),必須先將要發(fā)送的數(shù)據(jù)賦給一個(gè)Variant類(lèi)型變量,再把該Variant變量賦值給MSComm的Output屬性;同樣接受數(shù)據(jù)時(shí),也應(yīng)先將MSComm的Input屬性賦值給Variant變量,待接收端收到后必
6、須轉(zhuǎn)換成其它類(lèi)型(如字符型、二進(jìn)制型)的數(shù)據(jù)才能進(jìn)行處理。VB服務(wù)程序中通過(guò)串口發(fā)送數(shù)據(jù)的主要程序如下:Windows應(yīng)用程序間的DDE對(duì)話(huà)是通過(guò)應(yīng)用程序名、主題、項(xiàng)目三個(gè)標(biāo)識(shí)名來(lái)約定的。應(yīng)用程序名(Application)是進(jìn)行DDE對(duì)話(huà)雙方的名稱(chēng),KingView的程序名是View,VB的應(yīng)用程序名是可執(zhí)行文件的名稱(chēng)。主題(Topic)是被討論的數(shù)據(jù)域(Domain),KingView的主題被規(guī)定為T(mén)agName,VB的主題由窗體(
7、Fm)的LinkTopic屬性值指定。項(xiàng)目(Item)是被討論的特定數(shù)據(jù)對(duì)象,KingView中,在指定數(shù)據(jù)字典的IO變量的同時(shí),指定項(xiàng)目名稱(chēng),而在VB中,項(xiàng)目是一個(gè)特定的文本框、標(biāo)簽或者圖片框的名稱(chēng)。為了建立兩者間的DDE連接,首先需要在組態(tài)王中定義DDE設(shè)備,DDE設(shè)備的服務(wù)程序名、主題名和數(shù)據(jù)交換方式。在組態(tài)王的數(shù)據(jù)詞典中按照預(yù)先需要通訊的變量點(diǎn)數(shù)和變量類(lèi)型建立IO變量,定義變量的連接設(shè)備和項(xiàng)目名。然后在VB程序中設(shè)置主窗體的Li
8、nkMode屬性為1,LinkTopic可任意給定,如FmDDE。另外還需定義控件的屬性和方法,設(shè)置LinkTopic、LinkItem、LinkMode三個(gè)屬性。一般的設(shè)置為:Control.LinkTopic=服務(wù)器程序名|主題名Control.LinkItem=項(xiàng)目名Control.LinkMode=0,1,2,3其中:0=關(guān)閉DDE,1=熱連接,2=冷連接,3=通告連接;Control為文本框、標(biāo)簽框或圖片框的名字。本文的VB服
9、務(wù)程序中采用Text文本框控件進(jìn)行DDE通訊,其設(shè)置程序主要代碼為:Text1.LinkMode=1-SourceText1.LinkTopic=View|TagName這些雙方的DDE定義設(shè)置完成后,分別按先Server后Client的順序(即先啟動(dòng)VB服務(wù)程序,后啟動(dòng)組態(tài)王運(yùn)行程序)運(yùn)行應(yīng)用程序后就可以實(shí)現(xiàn)VB和組態(tài)王間的DDE通訊了。其中,將串口讀入數(shù)據(jù)發(fā)送給組態(tài)軟件的例程如下:PrivaeSubMSComml_OnComm()D
10、imTemp2AsVariantCasemEventCasecomEvReceive串口接收到數(shù)據(jù)MSComml.InputLen=1讀取一個(gè)字節(jié)Temp2=MSComml.Input讀取數(shù)據(jù)Text1.Text=CLng(Temp2)將數(shù)據(jù)發(fā)送給組態(tài)軟件Case…其他事件處理……EndEndSub4、對(duì)、對(duì)DDE通信的改進(jìn)方法通信的改進(jìn)方法實(shí)際應(yīng)用中,考慮到工控軟件的數(shù)據(jù)處理能力有限,應(yīng)將通信協(xié)議的轉(zhuǎn)換工作交由通信服務(wù)程序完成。串口通
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于dsp基于dsp的串行通信實(shí)現(xiàn)下位機(jī)部分
- 串行通信協(xié)議測(cè)試軟件的設(shè)計(jì)與實(shí)現(xiàn).pdf
- vb臺(tái)達(dá)plc與監(jiān)控計(jì)算機(jī)串行通信實(shí)現(xiàn)
- PLC編程軟件的設(shè)計(jì)與下位機(jī)的仿真與實(shí)現(xiàn).pdf
- 串行通信的實(shí)現(xiàn)
- 下位智能化I-O設(shè)備組態(tài)軟件開(kāi)發(fā)與實(shí)現(xiàn).pdf
- 應(yīng)急通信車(chē)控制系統(tǒng)組態(tài)軟件的研究與實(shí)現(xiàn).pdf
- 基于串行通道的高速通信方法設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于vb的臺(tái)達(dá)plc與監(jiān)控計(jì)算機(jī)的串行通信實(shí)現(xiàn)
- 雙機(jī)串行通信的設(shè)計(jì)與實(shí)現(xiàn)
- -vc 6_0實(shí)現(xiàn)pc機(jī)與單片機(jī)的串行通信
- 雙機(jī)串行通信的設(shè)計(jì)與實(shí)現(xiàn)
- 外文翻譯--關(guān)于pc機(jī)與單片機(jī)串行通信設(shè)計(jì)的實(shí)現(xiàn)
- 基于串口通信的工控組態(tài)軟件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 工控組態(tài)軟件的開(kāi)發(fā)——組態(tài)軟件中控件的設(shè)計(jì)與實(shí)現(xiàn).pdf
- Windows98下位圖文件在PC機(jī)與單片機(jī)串行通信中的應(yīng)用.pdf
- 基于vb實(shí)現(xiàn)pc機(jī)與單片機(jī)遠(yuǎn)距離通信的研究
- 上位機(jī)與下位機(jī)之間通信協(xié)議格式
- 工控組態(tài)軟件運(yùn)行平臺(tái)的研究與實(shí)現(xiàn).pdf
- 嵌入式工業(yè)監(jiān)控系統(tǒng)下位機(jī)軟件設(shè)計(jì)與實(shí)現(xiàn).pdf
評(píng)論
0/150
提交評(píng)論