摘要:針對目前組態(tài)王與智能化儀表通信時存在的問題,基于VB和動態(tài)數(shù)據(jù)交換技術DDE,研究了組態(tài)王與VB數(shù)據(jù)交換的方法,并采用VB可視化的編程方法,編寫了上位機與智能化儀表間的串口通信程序及組態(tài)軟件與VB間的OLE數(shù)據(jù)交換程序。實現(xiàn)了組態(tài)王與智能化儀表的實時通信,間接擴展了組態(tài)王的驅動程序庫。另外,設計完成了基于組態(tài)王和VB的智能化儀表監(jiān)控系統(tǒng)。運行結果表明,該系統(tǒng)具有良好的穩(wěn)定性、實時性,可以較好地實現(xiàn)工業(yè)現(xiàn)場的實時監(jiān)控。
0 引言
隨著科學技術的不斷發(fā)展,計算機測控技術在工業(yè)現(xiàn)場的各種測量及控制系統(tǒng)中應用越來越廣泛。通常情況下,工業(yè)現(xiàn)場的各種測控系統(tǒng)需要上位計算機與工業(yè)現(xiàn)場各種智能化儀表進行通信,以便及時了解現(xiàn)場儀表的運行情況,從而實現(xiàn)對現(xiàn)場各種狀態(tài)的實時監(jiān)控。
組態(tài)王軟件作為一種優(yōu)秀的上位機監(jiān)控軟件,在許多領域的遠程監(jiān)控中都得到了廣泛的應用。然而,組態(tài)王為數(shù)據(jù)采集和控制提供的大量底層設備驅動程序,主要是針對較大規(guī)模廠商的板卡和模塊,對于較小規(guī)模廠商開發(fā)的各種智能化儀表及用戶自己設計的板卡,卻沒有現(xiàn)成的驅動程序提供。因此,利用組態(tài)王與智能化儀表及用戶自己設計的板卡進行通信時,往往需要用戶自己開發(fā)底層的驅動程序,給用戶的使用帶來了諸多的不便。為了解決上述問題,組態(tài)王專門提供了一種DDE技術,能夠使用戶方便地實現(xiàn)組態(tài)王與其它支持動態(tài)數(shù)據(jù)交換的應用程序進行數(shù)據(jù)交換。
Visual Basic 6.0 (簡稱VB)是一款簡單、易用的可視化編程語言,開發(fā)者可以方便地利用其提供的組件快速建立一個應用程序。因而,在各種程序開發(fā)中,VB得到了廣泛的應用,同時在VB中提供的串行通信控件MSComm,為開發(fā)者實現(xiàn)上位計算機與現(xiàn)場各種儀表進行通信提供了一種有效途徑。另外,VB還支持DDE技術,利用該技術可以方便地開發(fā)出Windows環(huán)境下的DDE程序。
本文針對目前組態(tài)王與智能化儀表通信時存在的問題,給出了一種基于VB和DDE技術的上位計算機與現(xiàn)場智能儀表進行通信的方法。開發(fā)了一套組態(tài)王與VB相結合的智能化儀表監(jiān)控系統(tǒng),較好地實現(xiàn)了工業(yè)現(xiàn)場各種智能化設備運行狀態(tài)的實時監(jiān)控。
1 系統(tǒng)的基本結構
基于組態(tài)王和VB的智能化儀表監(jiān)控系統(tǒng)的結構如圖1所示。由圖1可知,該系統(tǒng)由上位計算機、RS2232 /485通信電纜和現(xiàn)場各種智能化儀表構成,該系統(tǒng)采用的是一對多的通信鏈接形式,即現(xiàn)場多種智能化儀表掛接在RS2485 總線上,然后再由RS2232 /485轉換器轉換后,連接到上位計算機。
圖1 系統(tǒng)基本原理圖。
2 系統(tǒng)的工作原理
組態(tài)王與現(xiàn)場智能儀表的通信原理如圖2 所示。
由圖2可以看出,該系統(tǒng)的通信包括兩部分:組態(tài)王與VB程序的DDE通信; VB 程序通過RS2232 /485 與現(xiàn)場智能儀表的通信。
圖2 組態(tài)王與現(xiàn)場智能儀表通信原理
2. 1 組態(tài)王與VB的動態(tài)數(shù)據(jù)交換
動態(tài)數(shù)據(jù)交換(DDE) 是Windows平臺上的一個完整通信協(xié)議,該協(xié)議使應用程序能彼此交換數(shù)據(jù)和發(fā)送指令。組態(tài)王和VB進行DDE通信的過程中,請求發(fā)送數(shù)據(jù)的一方稱為"客戶",被請求的一方稱為"服務器".由于DDE通信時,交換雙方需實現(xiàn)數(shù)據(jù)或控制命令的雙向傳輸。因此,它們既是"客戶",又是"服務器".
2. 1. 1 DDE通信時組態(tài)王的設定
組態(tài)王與VB之間數(shù)據(jù)交換內(nèi)容是通過三個標志名來約定的:
① 應用程序名。進行DDE對話的雙方的名稱。
組態(tài)王運行系統(tǒng)的程序名是View.
② 主題。被討論的數(shù)據(jù)域。組態(tài)王主題規(guī)定為tagname.
③ 項目。被討論的特定數(shù)據(jù)對象。在組態(tài)王的數(shù)據(jù)詞典里,定義I/O 變量的同時,也定義了項目名稱。
為了建立DDE鏈接,需要在組態(tài)王的數(shù)據(jù)詞典里建立一個I/O變量,并登記服務器程序的三個標志名。
本系統(tǒng)中應用程序名為VBDDE,話題名為form1,項目名為INCREA100, 程序交換的方式為標準WindowsDDE交換。
2. 1. 2 DDE通信時VB的設定
在VB編程軟件中, DDE連接主要是通過控件的屬性和方法實現(xiàn)的。通常情況下,DDE通信主要是通過文本框、標簽或圖片框等控件進行。
如果VB作為顧客,數(shù)據(jù)交換時,則需要對上述控件的LinkTop ic、Link Item、LinkMode 屬性進行如下設置:
Control. L inkTop ic =服務器程序名|主題名
Control. L ink Item =項目名
Control. L inkMode有四種選擇: 0表示關閉DDE;
1表示熱鏈接; 2表示冷鏈接; 3表示通告鏈接。
其中, Control表示文本框、標簽或圖片框的名字。
本系統(tǒng)中Control表示文本框Text1,LinkTop ic設置為View|Tagname, LinkItem 設置為PLC1. INCREA100,LinkMode設置為1.
如果組態(tài)王作為顧客,只要把VB 應用程序中提供數(shù)據(jù)窗體的LinkMode屬性設置為1,其它無需再在VB中增加任何程序。
評論
查看更多