《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > 一種基于VB和InTouch 的通信軟件實現(xiàn)
一種基于VB和InTouch 的通信軟件實現(xiàn)
中國自動化網(wǎng)
摘要: 本文是以筆者參與的某啤酒廠的監(jiān)控系統(tǒng)實現(xiàn)的項目為背景。由于現(xiàn)場的PLC或單片機控制系統(tǒng)的資源,、功能有限,,不能長期保存數(shù)據(jù),人機界面差,,因此一般采用工控機作為上位機,,把現(xiàn)場數(shù)據(jù)通過數(shù)據(jù)采集站送入上位機,這樣組成一個測控系統(tǒng),。上位機豐富的資源可以對采集到的數(shù)據(jù)進行分析,,存盤,運算,、打印,、報警并進行各種相應顯示。上位機形象的人機界面可使操作員更直觀,,全面的了解現(xiàn)場的情況,。
Abstract:
Key words :

1,、 前言
  本文是以筆者參與的某啤酒廠的監(jiān)控系統(tǒng)實現(xiàn)的項目為背景。由于現(xiàn)場的PLC或單片機控制系統(tǒng)的資源,、功能有限,,不能長期保存數(shù)據(jù)

,人機界面差,,因此一般采用工控機作為上位機,,把現(xiàn)場數(shù)據(jù)通過數(shù)據(jù)采集站送入上位機,這樣組成一個測控系統(tǒng),。上位機豐富的資源可以對

采集到的數(shù)據(jù)進行分析,,存盤,運算,、打印,、報警并進行各種相應顯示。上位機形象的人機界面可使操作員更直觀,,全面的了解現(xiàn)場的情況,。

采用Intouch、VB來實現(xiàn)上,、下兩層的通信,,簡單、明了,。
 ?。病?系統(tǒng)結構
  筆者參與的監(jiān)控系統(tǒng)呈兩層分布式體系結構:數(shù)據(jù)采集層和監(jiān)控層,。數(shù)據(jù)采集層主要采用數(shù)據(jù)通信標準接口,;監(jiān)控層屬于局域網(wǎng),遵循局

域網(wǎng)的協(xié)議標準,。數(shù)采層進行數(shù)據(jù)的采集,、處理將數(shù)據(jù)傳遞到上一層;監(jiān)控層共享數(shù)采層傳來的數(shù)據(jù),。
  該系統(tǒng)的數(shù)采層由多臺測控裝置組成,。這些測控裝置采用RS-485標準總線與數(shù)采管理站通信。在軟件方面采用VB來實現(xiàn)測控裝置

數(shù)采程序,,它主要完成上位機與測控裝置之間的數(shù)據(jù)通信和所采集數(shù)據(jù)的DDE(動態(tài)數(shù)據(jù)交換)轉換功能,。
  在工控機上的人機界面則采用監(jiān)控平臺軟件來實現(xiàn)。目前較為流行的監(jiān)控平臺軟件有Heuristics公司的ONSPEC,、Int

ellution公司的FIX和Wonderare公司的InTouch等,。InTouch監(jiān)控軟件作為一個實時的人機界面實用程序

生成器,可以產(chǎn)生在管理級別上的監(jiān)控和數(shù)據(jù)采集程序。它具有開發(fā)周期短,、可以生成復雜的,、友好的交互式圖形界面,組態(tài)靈活的優(yōu)點,,是

目前工業(yè)控制領域中簡便易用的“快速應用程序生成器”,。但它必須采用DDE的數(shù)據(jù)交換方式與DDE服務器連接來獲得數(shù)據(jù)。此時用戶編

制的運行于數(shù)采站上的VB應用程序充當DDE服務器,,如圖一所示,。將VB和Intouch結合起來,協(xié)同工作,,可以發(fā)揮各自優(yōu)點,。
  3,、 系統(tǒng)DDE實現(xiàn)
  該啤酒長系統(tǒng)在Windows環(huán)境下以動態(tài)數(shù)據(jù)交換機制實現(xiàn)系統(tǒng)的實時數(shù)據(jù)共享,。如圖2所示:
  首先,數(shù)采層采集處理后的數(shù)據(jù)送到數(shù)采管理站,,轉換成DDE型數(shù)據(jù),;然后,借助于NETDDE機制,,數(shù)采管理站把實時數(shù)據(jù)送至工

程師站,。工程師站作為NT域控制器,再借助于NETDDE機制實現(xiàn)與其他各監(jiān)視站之間的動態(tài)數(shù)據(jù)交換,。由于各站之間建立了“熱連接”

鏈路,,作為服務器一方總是在數(shù)據(jù)變化時主動發(fā)送數(shù)據(jù)給客戶方。即當數(shù)采管理站采集的數(shù)據(jù)發(fā)生變化時自動反應到工程師站,。在現(xiàn)場實時數(shù)

據(jù)的傳送上,,工程師站既作為數(shù)采管理站的客戶,又作為其它各監(jiān)視站的服務器,。

系統(tǒng)的動態(tài)數(shù)據(jù)交換實現(xiàn)分為三個方面:
 ?、?采管理站的DDE數(shù)據(jù)類型的數(shù)據(jù)產(chǎn)生,。
 ?、?監(jiān)控層應用程序的DDE組態(tài)。
 ?、?構造NETDDE應用程序,。
  3,、1 用VB 編制DDE程序VB 是開發(fā)Windows應用程序的一種面向對象程序設計語言,,他支持Windows環(huán)境下的DDE通信機制。VB提供了動態(tài)數(shù)據(jù)交換的Link Topic連接主題 ,Link Item連接項 ,,Link Timeout連接等待時間 和Linkmode(連接模式)四項屬性,。在應用程序編制時,根據(jù)DDE原理,,把應用程序的可執(zhí)行文件名去掉EXE后綴,,則成為DDE中的Topic。Linkmode有Manual手工 ,,Notify通知 ,,和Automatic自動 三種方式。在這個系統(tǒng)中我們采用Automatic自動 方式,。數(shù)采管理站的巡測數(shù)采程序的流程圖如下:

  測控裝置采用RS-485接口標準,,因此某一時刻只能有一個站發(fā)送數(shù)據(jù),其余站只能接口,。在該測控裝置的通信協(xié)議中,,由主機以召喚方式向測控裝置發(fā)送送數(shù)命令和相應機號,只有與主機發(fā)送的機號一致的測控裝置才允許發(fā)送數(shù)據(jù),。
  此VB程序作為DDE服務器,,在VB中只有窗體可以作為服務器,在程序的初始化部分應進行DDE設置,,程序段如下:
 ?。妫铮颍恚保欤椋睿耄恚铮洌澹剑?br />   form1.linktopic=form1
  在窗體上放置了mscomm控件用于控制串行端口傳輸和接受數(shù)據(jù),,為應用程序提供串行通信功能,。
  Mscomm1.comport=2
 ?。停螅悖铮恚恚保螅澹簦簦椋睿纾螅?#39;9600n81''設定該通信口的波特率,、奇偶校驗、數(shù)據(jù)位,、停止位
 ?。停螅悖铮恚恚保椋睿穑酰簦欤澹睿剑?'使用Input將使Mscomm控件讀取接收緩'沖區(qū)中全部的內(nèi)容
  Mscomm1.Portopen
  窗體上的定時器控件timer1,,用于定時兩秒,,當定時到時,發(fā)送FE命令,,要求測控裝置發(fā)送數(shù)據(jù),。其程序實現(xiàn)如下:
  mscomm1.output=″fe″+chr$13  '輸出FE命令
 ?。恚螅悖铮恚恚保铮酰簦穑酰簦?Prime;tank″ 'tank為機號
  當數(shù)據(jù)由測控裝置送到數(shù)采站時將觸發(fā)mscomm控件的oncomm事件,,在此事件處理句柄中完成讀入數(shù)據(jù)的功能。
  Bufferstring=mscomm1.input '讀入緩沖區(qū)內(nèi)容
 ?。桑?Bufferstring<>'ff' then
 ?。裕澹簦玻簦澹簦?Bufferstring+text2.text
  這樣讀入的數(shù)據(jù)就顯示在Text2文本框中。
 ?。常脖O(jiān)控層應用程序的DDE組態(tài)
  監(jiān)控層應用程序主要執(zhí)行InTouch中的WonderViewer,,而InTouch正是借助DDE與其它軟件聯(lián)合工作。
 ?。桑睿裕铮酰悖枋怯糜诮⑷藱C接口的一種軟件包,。它包括WonderViewer和WonderMaker兩大部分。使用InTouch軟件只需建立一個標記名字典,,再利用WonderMaker的圖形功能把被控對象形象的畫出來,,在PC機上就可以把整個對象描繪出來。InTouch只需在標記名字典中指明標記名為DDE特性,,同時指定應用程序的服務名和話題名,,WonderViewer可自動執(zhí)行獲取數(shù)據(jù)點的全部操作。
 ?。桑睿裕铮酰悖杓瓤梢宰鳛榭蛻粲挚梢宰鳛榉掌?。通過NETBIOS DDE的網(wǎng)絡接口,可使機制建立起3個層次,,因此監(jiān)控層應用程序的DDE組態(tài)分為兩大部分:
 ?、?工程師站的DDE組態(tài)
  DDE用項名,、主題名,、應用程序名三個層次來標識客戶與服務器之間傳遞的數(shù)據(jù)單位,通常表示為:應用程序名|主題名,!項名,;對于客戶,應按三個層次去連接相應的數(shù)據(jù),。工程師站作為數(shù)采站的DDE客戶,。在InTouch的標簽庫中,提供了DDE設置框,,使得DDE組態(tài)簡便,、易行。
  工程師站中的層次標識為:\\shucai\dde1|form1text2.text 數(shù)采站的節(jié)點,,dde1為數(shù)采站上的VB應用程序名 ,。
 ?、?其它各監(jiān)視站的DDE組態(tài)
  這主要是建立各監(jiān)視站與工程師站的DDE 連接,。此時工程師站作為DDE服務器,其它各監(jiān)視站作為客戶從工程師站上取數(shù)據(jù)。建立DDE連接的過程與上述類似,。
 ?。础?結論
 ?。郑率且环N優(yōu)秀的面向對象程序設計語言,,采用它編制Windows環(huán)境下的上位機串行通信軟件,程序實現(xiàn)簡單,,減輕了軟件開發(fā)的工作,。用InTouch監(jiān)控程序軟件完成復雜的圖形截面,方便快捷,。VB應用程序一方面作為DDE服務器同InTouch進行數(shù)據(jù)交換,,另一方面通過Windows提供的串行通信設備驅動程序與低層的測控裝置進行串行通信。對于用戶只與InTouch友好人機界面打交道,。實際運行證明該通信軟件可靠,,操作方便。
  參考文獻
 ?。?、 瞿坦,數(shù)據(jù)通信及網(wǎng)絡通信,, 華中理工大學
 ?。病?張鑫,,計算機散控制系統(tǒng),,水利電力出版社

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載,。