淺談在VB和InTouch 的通信軟件的實(shí)現(xiàn)
出處:gfs0521 發(fā)布于:2011-09-01 08:12:49
1、前言
本文是以筆者參與的某啤酒廠的監(jiān)控系統(tǒng)實(shí)現(xiàn)的項(xiàng)目為背景。監(jiān)控系統(tǒng)主要由前端監(jiān)視設(shè)備、傳輸設(shè)備、后端控制顯示設(shè)備這三大部分組成,其中后端設(shè)備可進(jìn)一步分為中心控制設(shè)備和分控制設(shè)備。前、后端設(shè)備有多種構(gòu)成方式,它們之間的聯(lián)系(也可稱作傳輸系統(tǒng))可通過電纜、光纖或微波等多種方式來實(shí)現(xiàn)。由于現(xiàn)場的PLC或單片機(jī)控制系統(tǒng)的資源、功能有限,不能長期保存數(shù)據(jù),人機(jī)界面差,上位機(jī)豐富的資源可以對采集到的數(shù)據(jù)進(jìn)行分析,存盤,運(yùn)算、打印、報(bào)警并進(jìn)行各種相應(yīng)顯示。上位機(jī)形象的人機(jī)界面可使操作員更直觀,全面的了解現(xiàn)場的情況。采用Intouch、VB來實(shí)現(xiàn)。vb是Visual Basic的簡稱,是由美國微軟公司于1991年開發(fā)的一種可視化的、面向?qū)ο蠛筒捎檬录?qū)動方式的結(jié)構(gòu)化程序設(shè)計(jì)語言,可用于開發(fā) Windows 環(huán)境下的各類應(yīng)用程序。它簡單易學(xué)、效率高,且功能強(qiáng)大可以與 Windows 開發(fā)工具SDK相媲美。在Visual Basic環(huán)境下,利用事件驅(qū)動的編程機(jī)制、新穎易用的可視化設(shè)計(jì)工具,使用Windows內(nèi)部的廣泛應(yīng)用程序接口(API)函數(shù),動態(tài)鏈接庫(DLL)、對象的鏈接與嵌入(OLE)、開放式數(shù)據(jù)連接(ODBC)等技術(shù),可以高效、快速地開發(fā)Windows環(huán)境下功能強(qiáng)大、圖形界面豐富的應(yīng)用軟件系統(tǒng)。
2、系統(tǒng)結(jié)構(gòu)
筆者參與的監(jiān)控系統(tǒng)呈兩層分布式體系結(jié)構(gòu):數(shù)據(jù)采集層和監(jiān)控層。數(shù)據(jù)采集層主要采用數(shù)據(jù)通信標(biāo)準(zhǔn)接口;監(jiān)控層屬于局域網(wǎng),遵循局域網(wǎng)的協(xié)議標(biāo)準(zhǔn)。數(shù)采層進(jìn)行數(shù)據(jù)的采集、處理將數(shù)據(jù)傳遞到上一層;監(jiān)控層共享數(shù)采層傳來的數(shù)據(jù)。該系統(tǒng)的數(shù)采層由多臺測控裝置組成。這些測控裝置采用RS-485標(biāo)準(zhǔn)總線與數(shù)采管理站通信。在軟件方面采用VB來實(shí)現(xiàn)測控裝置數(shù)采程序,它主要完成上位機(jī)與測控裝置之間的數(shù)據(jù)通信和所采集數(shù)據(jù)的DDE(動態(tài)數(shù)據(jù)交換)轉(zhuǎn)換功能。
在工控機(jī)上的人機(jī)界面則采用監(jiān)控平臺軟件來實(shí)現(xiàn)。工控機(jī)即工業(yè)控制計(jì)算機(jī),但現(xiàn)在,更時(shí)髦的叫法是產(chǎn)業(yè)電腦或工業(yè)電腦,英文簡稱IPC,全稱Industrial Personal Computer.工控機(jī)通俗的說就是專門為工業(yè)現(xiàn)場而設(shè)計(jì)的計(jì)算機(jī)。 工業(yè)控制軟件系統(tǒng)主要包括系統(tǒng)軟件、工控應(yīng)用軟件和應(yīng)用軟件開發(fā)環(huán)境等三大部分。其中系統(tǒng)軟件是其他兩面者的基礎(chǔ),因而系統(tǒng)軟件設(shè)計(jì)的開發(fā)質(zhì)量。工控應(yīng)用軟件主要是根據(jù)用戶工業(yè)控制和管理的需求而生成的,因此具有專用性。目前較為流行的監(jiān)控平臺軟件有Heuristics公司的ONSPEC、InTouch公司的FIX和Wonderare公司的InTouch等。Intouch 一種工業(yè)自動化組態(tài)軟件,Wonderware公司產(chǎn)品。InTouch HMI軟件用于可視化和控制工業(yè)生產(chǎn)過程。它為工程師提供了一種易用的開發(fā)環(huán)境和廣泛的功能,使工程師能夠快速地建立、測試和部署強(qiáng)大的連接和傳遞實(shí)時(shí)信息的自動化應(yīng)用。InTouch軟件是一個(gè)開放的、可擴(kuò)展的人機(jī)界面,為定制應(yīng)用程序設(shè)計(jì)提供了靈活性,同時(shí)為工業(yè)中的各種自動化設(shè)備提供了連接能力。它具有開發(fā)周期短、可以生成復(fù)雜的、友好的交互式圖形界面,組態(tài)靈活的優(yōu)點(diǎn),是目前工業(yè)控制領(lǐng)域中簡便易用的"快速應(yīng)用程序生成器".但它必須采用DDE的數(shù)據(jù)交換方式與DDE服務(wù)器連接來獲得數(shù)據(jù)。如圖一所示。將VB和Intouch結(jié)合起來,協(xié)同工作,可以發(fā)揮各自優(yōu)點(diǎn)。
3、系統(tǒng)DDE實(shí)現(xiàn)
該啤酒長系統(tǒng)在Windows環(huán)境下以動態(tài)數(shù)據(jù)交換機(jī)制實(shí)現(xiàn)系統(tǒng)的實(shí)時(shí)數(shù)據(jù)共享。如圖2所示:
首先,數(shù)采層采集處理后的數(shù)據(jù)送到數(shù)采管理站,轉(zhuǎn)換成DDE型數(shù)據(jù);然后,借助于NETDDE機(jī)制,數(shù)采管理站把實(shí)時(shí)數(shù)據(jù)送至工程師站。工程師站作為NT域控制器,再借助于NETDDE機(jī)制實(shí)現(xiàn)與其他各監(jiān)視站之間的動態(tài)數(shù)據(jù)交換。netdde.exe是微軟Windows的網(wǎng)絡(luò)動態(tài)數(shù)據(jù)Exchange服務(wù)。它用于幫助exchange數(shù)據(jù)在網(wǎng)絡(luò)傳輸。這不是純粹的系統(tǒng)程序,但是如果終止它,可能會導(dǎo)致不可知的問題。在用戶安裝了某些分布式控制系統(tǒng)軟件(DCS)通用監(jiān)控軟件來說后,系統(tǒng)中會出現(xiàn)netdde.exe或netdde進(jìn)程服務(wù),但此處netdde或netdde.exe為是通過網(wǎng)絡(luò)借助DDE(DYNAMIC DATA EXCHANGE)進(jìn)行數(shù)據(jù)交互的一種方式。由于各站之間建立了"熱連接"鏈路,作為服務(wù)器一方總是在數(shù)據(jù)變化時(shí)主動發(fā)送數(shù)據(jù)給客戶方。即當(dāng)數(shù)采管理站采集的數(shù)據(jù)發(fā)生變化時(shí)自動反應(yīng)到工程師站。在現(xiàn)場實(shí)時(shí)數(shù)據(jù)的傳送上,工程師站既作為數(shù)采管理站的客戶,又作為其它各監(jiān)視站的服務(wù)器。

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

測控裝置采用RS-485接口標(biāo)準(zhǔn),因此某一時(shí)刻只能有一個(gè)站發(fā)送數(shù)據(jù),其余站只能接口。在該測控裝置的通信協(xié)議中,由主機(jī)以召喚方式向測控裝置發(fā)送送數(shù)命令和相應(yīng)機(jī)號,只有與主機(jī)發(fā)送的機(jī)號一致的測控裝置才允許發(fā)送數(shù)據(jù)。
此VB程序作為DDE服務(wù)器,在VB中只有窗體可以作為服務(wù)器,在程序的初始化部分應(yīng)進(jìn)行DDE設(shè)置,程序段如下:
form1.linkmode=1form1.linktopic=form1在窗體上放置了mscomm控件用于控制串行端口傳輸和接受數(shù)據(jù),為應(yīng)用程序提供串行通信功能。
Mscomm1.comport=2Mscomm1.settings='9600n81''設(shè)定該通信口的波特率、奇偶校驗(yàn)、奇偶校驗(yàn)是一種校驗(yàn)代碼傳輸正確性的方法。根據(jù)被傳輸?shù)囊唤M二進(jìn)制代碼的數(shù)位中"1"的個(gè)數(shù)是奇數(shù)或偶數(shù)來進(jìn)行校驗(yàn)。采用奇數(shù)的稱為奇校驗(yàn),反之,稱為偶校驗(yàn)。采用何種校驗(yàn)是事先規(guī)定好的。通常專門設(shè)置一個(gè)奇偶校驗(yàn)位,用它使這組代碼中"1"的個(gè)數(shù)為奇數(shù)或偶數(shù)。若用奇校驗(yàn),則當(dāng)接收端收到這組代碼時(shí),校驗(yàn)"1"的個(gè)數(shù)是否為奇數(shù),從而確定傳輸代碼的正確性。數(shù)據(jù)位、停止位Mscomm1.inputlen=0 '使用Input將使Mscomm控件讀取接收緩'沖區(qū)中全部的內(nèi)容Mscomm1.Portopen窗體上的定時(shí)器控件timer1,用于定時(shí)兩秒,當(dāng)定時(shí)到時(shí),發(fā)送FE命令,要求測控裝置發(fā)送數(shù)據(jù)。其程序?qū)崿F(xiàn)如下:
mscomm1.output=″fe″+chr$13'輸出FE命令mscomm1.output=″tank″'tank為機(jī)號當(dāng)數(shù)據(jù)由測控裝置送到數(shù)采站時(shí)將觸發(fā)mscomm控件的oncomm事件,在此事件處理句柄中完成讀入數(shù)據(jù)的功能。Bufferstring=mscomm1.input '讀入緩沖區(qū)內(nèi)容If Bufferstring<>'ff' thenText2.text= Bufferstring+text2.text這樣讀入的數(shù)據(jù)就顯示在Text2文本框中。
3.2監(jiān)控層應(yīng)用程序的DDE組態(tài)
監(jiān)控層應(yīng)用程序主要執(zhí)行InTouch中的WonderViewer,而InTouch正是借助DDE與其它軟件聯(lián)合工作。
InTouch是用于建立人機(jī)接口的一種軟件包。它包括WonderViewer和WonderMaker兩大部分。使用InTouch軟件只需建立一個(gè)標(biāo)記名字典,再利用WonderMaker的圖形功能把被控對象形象的畫出來,在PC機(jī)上就可以把整個(gè)對象描繪出來。InTouch只需在標(biāo)記名字典中指明標(biāo)記名為DDE特性,同時(shí)指定應(yīng)用程序的服務(wù)名和話題名,WonderViewer可自動執(zhí)行獲取數(shù)據(jù)點(diǎn)的全部操作。
InTouch既可以作為客戶又可以作為服務(wù)器。通過NETBIOS DDE的網(wǎng)絡(luò)接口,可使機(jī)制建立起3個(gè)層次,因此監(jiān)控層應(yīng)用程序的DDE組態(tài)分為兩大部分:
① 工程師站的DDE組態(tài)
DDE用項(xiàng)名、主題名、應(yīng)用程序名三個(gè)層次來標(biāo)識客戶與服務(wù)器之間傳遞的數(shù)據(jù)單位,通常表示為:應(yīng)用程序名|主題名項(xiàng)名;對于客戶,應(yīng)按三個(gè)層次去連接相應(yīng)的數(shù)據(jù)。工程師站作為數(shù)采站的DDE客戶。在InTouch的標(biāo)簽庫中,提供了DDE設(shè)置框,使得DDE組態(tài)簡便、易行。
工程師站中的層次標(biāo)識為:\\shucai\dde1|form1text2.text數(shù)采站的節(jié)點(diǎn),dde1為數(shù)采站上的VB應(yīng)用程序名。
?、?其它各監(jiān)視站的DDE組態(tài)
這主要是建立各監(jiān)視站與工程師站的DDE 連接。此時(shí)工程師站作為DDE服務(wù)器,其它各監(jiān)視站作為客戶從工程師站上取數(shù)據(jù)。建立DDE連接的過程與上述類似。
4、 結(jié)論
VB是一種的面向?qū)ο蟪绦蛟O(shè)計(jì)語言,采用它編制Windows環(huán)境下的上位機(jī)串行通信軟件,程序?qū)崿F(xiàn)簡單,減輕了軟件開發(fā)的工作。用InTouch監(jiān)控程序軟件完成復(fù)雜的圖形截面,方便快捷。VB應(yīng)用程序一方面作為DDE服務(wù)器同InTouch進(jìn)行數(shù)據(jù)交換,另一方面通過Windows提供的串行通信設(shè)備驅(qū)動程序與低層的測控裝置進(jìn)行串行通信。對于用戶只與InTouch友好人機(jī)界面打交道。實(shí)際運(yùn)行證明該通信軟件可靠,操作方便。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 工業(yè)視覺檢測系統(tǒng)技術(shù)參數(shù)與選型運(yùn)維指南2026/1/4 14:50:21
- 工業(yè)視覺檢測系統(tǒng)核心知識解析2025/12/29 11:23:21
- 工業(yè)級電磁閥技術(shù)參數(shù)與選型運(yùn)維指南2025/12/29 11:06:44
- 工業(yè)控制系統(tǒng)遠(yuǎn)程訪問安全實(shí)操指南2025/12/25 10:04:23
- 工業(yè)控制系統(tǒng)網(wǎng)絡(luò)安全防護(hù)實(shí)操指南2025/12/25 9:53:54
- PCB焊盤與過孔設(shè)計(jì)核心實(shí)操規(guī)范(含可焊性與可靠性保障)
- 汽車電子常用電子元器件選型指南
- MOSFET驅(qū)動與隔離方案設(shè)計(jì)
- 高溫環(huán)境下電源IC選型建議
- 安防監(jiān)控設(shè)備連接器應(yīng)用分析
- 高速PCB信號完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測試方法









