1、引言
在一個(gè)自動(dòng)監(jiān)控(Supervisory Control And Data Acquisition SCADA)系統(tǒng)中,投入運(yùn)行的監(jiān)控組態(tài)軟件是系統(tǒng)的數(shù)據(jù)采集和處理中心、遠(yuǎn)程監(jiān)控中心和數(shù)據(jù)轉(zhuǎn)發(fā)中心。處于運(yùn)行狀態(tài)的監(jiān)控組態(tài)軟件與各種控制、檢測(cè)設(shè)備如掛接在現(xiàn)場(chǎng)總線上的工控計(jì)算機(jī)、PLC、智能儀表、智能設(shè)備等共同構(gòu)成快速響應(yīng)控制中心??刂品桨负退惴ㄒ话阍谠O(shè)備上組態(tài)并執(zhí)行,也可在工控計(jì)算機(jī)上組態(tài),然后在下裝到設(shè)備中執(zhí)行,根據(jù)設(shè)備的具體要求而定[1]。組態(tài)軟件在SCADA系統(tǒng)中所處的位置如圖1所示。
監(jiān)控組態(tài)軟件投入運(yùn)行后,操作人員可以在其支持下完成以下各項(xiàng)任務(wù)
(1) 查看生產(chǎn)現(xiàn)場(chǎng)的實(shí)時(shí)數(shù)據(jù)及流程畫面,瀏覽各實(shí)時(shí)歷史趨勢(shì)畫面;
(2) 自動(dòng)打印各種實(shí)時(shí)歷史生產(chǎn)報(bào)表;
(3) 及時(shí)得到各種過程報(bào)警和系統(tǒng)報(bào)警;
(4) 在需要時(shí),人為干預(yù)生產(chǎn)過程,修改生產(chǎn)過程參數(shù)和狀態(tài);
(5) 與管理部門的計(jì)算機(jī)聯(lián)網(wǎng),為管理部門提供生產(chǎn)實(shí)時(shí)數(shù)據(jù)。
[align=center][img=467,353]http://www.e-works.net.cn/images/128352655907812500.JPG[/img]
圖1 監(jiān)控組態(tài)軟件在SCADA系統(tǒng)中所處的位置[/align] 現(xiàn)場(chǎng)總線作為開放的控制網(wǎng)絡(luò)能實(shí)現(xiàn)現(xiàn)場(chǎng)設(shè)備間、現(xiàn)場(chǎng)設(shè)備與控制室間的信號(hào)通信[2]。開放通信是信息傳輸與共享的基礎(chǔ)之一,而當(dāng)現(xiàn)場(chǎng)信號(hào)傳至監(jiān)控計(jì)算機(jī)之后,如何實(shí)現(xiàn)計(jì)算機(jī)內(nèi)部各程序之間的信息溝通與傳遞,即如何讓現(xiàn)場(chǎng)信號(hào)與各應(yīng)用程序連接起來,讓現(xiàn)場(chǎng)信息出現(xiàn)在計(jì)算機(jī)的各應(yīng)用平臺(tái)上,依然存在一個(gè)連接標(biāo)準(zhǔn)與規(guī)范的問題。在多用戶、多任務(wù)的計(jì)算機(jī)系統(tǒng)中實(shí)現(xiàn)程序間的數(shù)據(jù)交換比較方便,操作系統(tǒng)對(duì)這種操作是支持的。自從Windows及微機(jī)版UNIX、LINUX操作系統(tǒng)的面世后,出現(xiàn)了程序之間交換數(shù)據(jù)的技術(shù)、協(xié)議或標(biāo)準(zhǔn),實(shí)現(xiàn)程序間的數(shù)據(jù)交換才比較容易。在工業(yè)PC機(jī)的自動(dòng)化系統(tǒng)中被廣泛采用的今天,讓現(xiàn)場(chǎng)總線控制系統(tǒng)和人機(jī)界面軟件能夠有效充分地用PC機(jī)豐富強(qiáng)大的軟件資源,是一項(xiàng)值得深入研究的課題。文章對(duì)有關(guān)技術(shù)問題結(jié)合工程實(shí)踐作些討論。
2、動(dòng)態(tài)數(shù)據(jù)交換的基本概念
盡管工控組態(tài)軟件的數(shù)據(jù)交換技術(shù)有了長足進(jìn)步,在當(dāng)前實(shí)際運(yùn)用的現(xiàn)場(chǎng)總線控制系統(tǒng)組態(tài)軟件中,對(duì)于DDE和OPC兩種數(shù)據(jù)交換技術(shù)的具體運(yùn)用-特別是在微機(jī)執(zhí)行多任務(wù)條件下如何進(jìn)一步提高組態(tài)軟件與其他程序之間的數(shù)據(jù)交換實(shí)時(shí)性方面,仍然存在某些不足,值得進(jìn)一步探討和研究。其中,動(dòng)態(tài)數(shù)據(jù)實(shí)時(shí)交換(DDE)技術(shù)在控制網(wǎng)絡(luò)的集成中得到了實(shí)際應(yīng)用。其原因:
(1) 這種方法實(shí)時(shí)性較好,可以采用標(biāo)準(zhǔn)的Windows技術(shù);
(2) 作為連接控制網(wǎng)絡(luò)與信息網(wǎng)絡(luò)的通信處理機(jī)在硬件上比較容易實(shí)現(xiàn)。
當(dāng)控制網(wǎng)絡(luò)與信息網(wǎng)絡(luò)有一共享工作站或通信處理機(jī)時(shí),就可以通過動(dòng)態(tài)數(shù)據(jù)交換技術(shù)實(shí)現(xiàn)控制網(wǎng)絡(luò)中實(shí)時(shí)數(shù)據(jù)與信息網(wǎng)絡(luò)中數(shù)據(jù)庫數(shù)據(jù)的動(dòng)態(tài)交換,從而實(shí)現(xiàn)控制網(wǎng)絡(luò)與信息網(wǎng)絡(luò)的集成。
DDE是進(jìn)程間通信的方法。為了進(jìn)行會(huì)話,DDE應(yīng)用程序用3個(gè)基本的標(biāo)志符(或字符串),即三層識(shí)別系統(tǒng)來區(qū)別其他DDE應(yīng)用程序,他們分別是應(yīng)用程序名(Application)、主題名(Topic)和項(xiàng)目名(Item)。每個(gè)DDE會(huì)話由應(yīng)用程序名和主題名唯一定義,在DDE會(huì)話建立前由客戶程序和服務(wù)器共同決定應(yīng)用程序名和主題名,而由客戶程序填寫服務(wù)器的3個(gè)標(biāo)志名。應(yīng)用程序名位于層次機(jī)構(gòu)的頂層,用于指出特定的DDE服務(wù)器應(yīng)用程序名。主題名更深刻地定義了服務(wù)器應(yīng)用程序會(huì)話的主題內(nèi)容,服務(wù)器應(yīng)用程序可支持一個(gè)或多個(gè)主題名[2]。
3、面向過程控制的動(dòng)態(tài)參數(shù)數(shù)據(jù)交換程序設(shè)計(jì)
為方便討論問題、現(xiàn)舉例說明。根據(jù)某生產(chǎn)自動(dòng)化改造工程要求,需要對(duì)系統(tǒng)進(jìn)行組態(tài)監(jiān)控操作平臺(tái)設(shè)計(jì),采用組態(tài)軟件IFIX2.2和Windows應(yīng)用軟件VB6.0,開發(fā)并實(shí)現(xiàn)基于DDE機(jī)制的進(jìn)程間數(shù)據(jù)交換,滿足工業(yè)控制網(wǎng)SCADA工控計(jì)算機(jī)內(nèi)部信息交換需要,為各應(yīng)用程序通過共享內(nèi)存交換信息,實(shí)現(xiàn)控制網(wǎng)絡(luò)與信息網(wǎng)絡(luò)的集成,并為進(jìn)一步進(jìn)行Windows程序間的數(shù)據(jù)交換開發(fā)提供有借鑒意義的參考[3]??刂凭W(wǎng)絡(luò)與信息網(wǎng)絡(luò)的主要集成技術(shù)如圖2所示。
[align=center][img=455,201]http://www.e-works.net.cn/images/128352656163437500.JPG[/img]
圖2 控制網(wǎng)絡(luò)與信息網(wǎng)絡(luò)的主要集成技術(shù)[/align][align=left] 3.1 DDE信息交換的網(wǎng)絡(luò)集成方法
通過共享存儲(chǔ)器的DDE技術(shù)為實(shí)現(xiàn)控制網(wǎng)絡(luò)與信息網(wǎng)絡(luò)的集成提供了技術(shù)支持,有很強(qiáng)的實(shí)時(shí)性。工程設(shè)計(jì)以工控計(jì)算機(jī)IPC作為通信處理機(jī),該IPC機(jī)同時(shí)也是2個(gè)網(wǎng)絡(luò)的工作站,跨接控制網(wǎng)絡(luò)和信息網(wǎng)絡(luò),在溝通2個(gè)網(wǎng)絡(luò)中起橋梁作用。通信處理機(jī)IPC用DDE方法實(shí)現(xiàn)2個(gè)網(wǎng)絡(luò)間各站點(diǎn)的通信,是整個(gè)集成網(wǎng)絡(luò)的關(guān)鍵,它能實(shí)現(xiàn)以下功能:[/align] (1) 搜集控制網(wǎng)絡(luò)上各站點(diǎn)的實(shí)時(shí)數(shù)據(jù)信息,寫入信息網(wǎng)絡(luò)的數(shù)據(jù)庫,以便信息網(wǎng)絡(luò)用戶瀏覽、查詢;
(2) 將信息網(wǎng)絡(luò)用戶的控制信息及時(shí)下達(dá)至控制網(wǎng)絡(luò)的指定工作站點(diǎn)。
基于通信處理機(jī)DDE信息交換的網(wǎng)絡(luò)集成方法如圖3所示。
[align=center][img=374,91]http://www.e-works.net.cn/images/128352656403906250.JPG[/img]
圖3 基于通信處理機(jī)DDE信息交換的網(wǎng)絡(luò)集成方法[/align][align=left] 3.2 組態(tài)軟件iFix與VB之間的DDE實(shí)現(xiàn)
現(xiàn)場(chǎng)總線控制系統(tǒng)采用Intellution公司開發(fā)的組態(tài)軟件iFix2.2作為SCADA監(jiān)控操作平臺(tái)。iFix是一種工業(yè)自動(dòng)化組態(tài)軟件,它采用圖形用戶界面,提供了監(jiān)控和數(shù)據(jù)采集功能,為操作人員和開發(fā)人員提供了良好的監(jiān)控環(huán)境,可以實(shí)現(xiàn)對(duì)象自由組態(tài)及動(dòng)態(tài)屬性的在線配置、現(xiàn)場(chǎng)動(dòng)態(tài)數(shù)據(jù)采集、數(shù)據(jù)處理、狀態(tài)監(jiān)控、報(bào)警、參數(shù)設(shè)置、報(bào)表生成、數(shù)據(jù)存儲(chǔ)、接口等基本功能和網(wǎng)絡(luò)管理功能。在各種操作系統(tǒng)上的版本共享相同的內(nèi)核,允許在同一網(wǎng)絡(luò)結(jié)構(gòu)中運(yùn)行建立在不同操作系統(tǒng)上的iFix版本。iFix包含大量圖形工具,使用戶能夠快速地開發(fā)系統(tǒng),而且它提供了強(qiáng)大的功能,包括實(shí)時(shí)過程的監(jiān)視和監(jiān)督控制、報(bào)警和報(bào)警管理、歷史趨勢(shì),統(tǒng)計(jì)過程控制、基于用戶的安全系統(tǒng)、方便的系統(tǒng)擴(kuò)展、網(wǎng)絡(luò)功能等。而VB6.0是微軟公司推出的一個(gè)流行且強(qiáng)大的快速開發(fā)工具,在開發(fā)SCADA系統(tǒng)時(shí),利用DDE技術(shù)把兩種工具有效的結(jié)合起來,更能發(fā)揮它們各自的優(yōu)勢(shì),可以獲取令人滿意的結(jié)果。
系統(tǒng)分為監(jiān)控子系統(tǒng)、數(shù)據(jù)采集子系統(tǒng)和數(shù)據(jù)交換子系統(tǒng)。以臺(tái)灣磐儀工控機(jī)IPC1作為SCADA監(jiān)控硬件平臺(tái)。監(jiān)控計(jì)算機(jī)通過掛在CC-Link總線上的遠(yuǎn)程IO模塊和數(shù)據(jù)采集模塊,即采集子系統(tǒng)與現(xiàn)場(chǎng)的監(jiān)控儀表相聯(lián)系。采集子系統(tǒng)負(fù)責(zé)將現(xiàn)場(chǎng)各智能儀表采集的數(shù)據(jù)采集上來;監(jiān)控系統(tǒng)通過DDE方式與采集子系統(tǒng)相聯(lián)系,將現(xiàn)場(chǎng)的各種運(yùn)行參數(shù)實(shí)時(shí)顯示出來;監(jiān)控系統(tǒng)根據(jù)需要給出控制命令,由采集子系統(tǒng)傳達(dá)給掛在CC-Link總線上的CC-Link主控PLC,PLC負(fù)責(zé)現(xiàn)場(chǎng)各種設(shè)備的控制。數(shù)據(jù)交換子系統(tǒng)通過DDE方式與監(jiān)控子系統(tǒng)系統(tǒng)交換數(shù)據(jù),將現(xiàn)場(chǎng)實(shí)時(shí)信息經(jīng)由控制網(wǎng)絡(luò)傳達(dá)到信息網(wǎng)絡(luò)。某車間監(jiān)控層過程實(shí)時(shí)數(shù)據(jù)流向如圖4所示。[/align][align=center][img=418,354]http://www.e-works.net.cn/images/128352656831250000.JPG[/img]
圖4 VB作為服務(wù)器、iFix 作為客戶的數(shù)據(jù)流向圖[/align]
iFix軟件提供了強(qiáng)有力的DDE客戶和服務(wù)器支持。DDE客戶支持允許把來自其他應(yīng)用。程序的信息傳遞到iFix軟件中,用于數(shù)據(jù)庫和畫面;服務(wù)器支持允許把iFix軟件的過程信息傳遞到其他應(yīng)用程序中去處理。
(1) DDE客戶支持
iFix軟件DDE客戶支持允許讀寫DDE地址,利用DDE IO驅(qū)動(dòng)器和塊配置的DDE地址,可以在過程數(shù)據(jù)庫中插入來自其他應(yīng)用程序、DDE驅(qū)動(dòng)程序或另一個(gè)SCADA節(jié)點(diǎn)的數(shù)據(jù)信息。
數(shù)據(jù)庫中的這些信息可以按照以下方式使用在鏈中傳送數(shù)據(jù)、對(duì)DDE數(shù)據(jù)進(jìn)行報(bào)警和用DDE數(shù)據(jù)制作趨勢(shì)曲線。
DDE客戶支持允許在 iFix 畫面中直接使用DDE,而不使用數(shù)據(jù)庫中的點(diǎn)。即DDE可以直接應(yīng)用于數(shù)據(jù)鏈接、動(dòng)態(tài)特性(前景顏色、邊界顏色、X和Y坐標(biāo)、水平或垂直填充、可見性等)設(shè)置、XY繪圖、棒狀圖和命令語言。iFix作為客戶DDE的地址語法為=ApplicationTopicItem例如現(xiàn)場(chǎng)設(shè)備點(diǎn)DO1的IO地址=VBServerForm1Text1,其中VBServer為VB開發(fā)的應(yīng)用程序名,F(xiàn)orm1為主題名,Text1為項(xiàng)目名。
(2) DDE服務(wù)器支持
iFix軟件作為服務(wù)器允許將它的實(shí)時(shí)數(shù)據(jù)或歷史數(shù)據(jù)傳送到其他DDE客戶應(yīng)用程序中。使用iFix DDE服務(wù)器功能,需要首先啟動(dòng)DDE服務(wù)器程序,即iFix軟件的安裝目錄 iFix32下的DMDDE.exe。iFix 作為服務(wù)器提供的DDE編址語法如表1所示。
[align=center]表1 DDE編程語法
[img=328,118]http://www.e-works.net.cn/images/128352657083437500.jpg[/img][/align]
3.3 VB的DDE鏈接屬性
VB作為Windows環(huán)境下非常流行的快速開發(fā)工具,與Windows操作系統(tǒng)同出于微軟一家,它理所當(dāng)然地支持Windows下的DDE技術(shù)。用VB可以方便快捷地開發(fā)出DDE客戶或服務(wù)器的應(yīng)用程序。
(1) VB的DDE屬性、DDE事件和DDE方法
VB中支持DDE的對(duì)象有5類窗體(Form)、多文檔窗體(MDI Form)、標(biāo)簽(Label)、文本框(TextBox)和圖片框(PictureBox)。其中,窗體和多文檔窗體可作為DDE服務(wù)器即數(shù)據(jù)的提供者,Label、TextBox和PictureBox等可以作為DDE服務(wù)器即數(shù)據(jù)的接收者。VB為支持DDE給發(fā)送端對(duì)象提供了2種DDE屬性和4種DDE事件,給接收端對(duì)象提供了4種DDE屬性、4種DDE事件和4種DDE方法(見表2)。
[align=center]表2 接收端對(duì)象的屬性、事件及方法
[img=325,118]http://www.e-works.net.cn/images/128352657606250000.jpg[/img][/align]
(2) 利用VB開發(fā)DDE客戶服務(wù)器應(yīng)用程序
在利用VB開發(fā)DDE客戶服務(wù)器應(yīng)用程序中,欲建立DDE鏈接,完全依賴對(duì)象的DDE屬性設(shè)置。VB分別作為DDE客戶和DDE服務(wù)器時(shí),DDE屬性的不同設(shè)置(見表3)。
[align=center]表3 VB作為DDE客戶服務(wù)的DDE屬性設(shè)置
[img=330,227]http://www.e-works.net.cn/images/128352657790312500.jpg[/img][/align] (3) 動(dòng)態(tài)數(shù)據(jù)交換的過程
DDE管理器作為服務(wù)端通過驅(qū)動(dòng)程序從PLC的內(nèi)存中采集到數(shù)據(jù),與組態(tài)進(jìn)行數(shù)據(jù)交換后又通過驅(qū)動(dòng)程序?qū)懭隤LC的內(nèi)存區(qū),這一過程的示意圖如圖5所示。
[align=center][img=466,94]http://www.e-works.net.cn/images/128352658023593750.JPG[/img]
圖5 動(dòng)態(tài)數(shù)據(jù)交換的實(shí)際過程[/align][align=left] (4) 動(dòng)態(tài)數(shù)據(jù)交換的建立過程
DDE工程的建立主要包括PLC細(xì)節(jié)的描述、網(wǎng)絡(luò)的設(shè)置、數(shù)據(jù)點(diǎn)的選取,其中主要是進(jìn)行設(shè)備的配置和點(diǎn)的設(shè)置。接下來建立需要監(jiān)控的點(diǎn),并對(duì)其進(jìn)行編輯,包括定義監(jiān)控點(diǎn)的名字、PLC的類型、監(jiān)控點(diǎn)在PLC內(nèi)存中的位置、數(shù)據(jù)的類型等??筛鶕?jù)PLC機(jī)架上輸入輸出單元的點(diǎn)數(shù)來定義輸入字和輸出字,同時(shí)定義手動(dòng)自動(dòng)控制標(biāo)志位。[/align]
3.4 VB作為DDE服務(wù)器、iFix 作為DDE客戶的實(shí)際鏈接
有些參數(shù)需要通過VB開發(fā)的應(yīng)用程序VBServer把從遠(yuǎn)程現(xiàn)場(chǎng)采集的實(shí)時(shí)數(shù)據(jù)傳輸?shù)絠Fix實(shí)現(xiàn)顯示或制作趨勢(shì)圖,如油漆烘間的實(shí)測(cè)溫度、純水進(jìn)口壓力、循環(huán)水過濾器壓力、顏料的實(shí)測(cè)濃度、電泳循環(huán)泵的轉(zhuǎn)速和膠爐實(shí)測(cè)溫度、一次抽風(fēng)系統(tǒng)增壓機(jī)的進(jìn)口和出口壓力、空氣預(yù)熱器蒸汽溫度等參數(shù)。
在VBServer中,把采集到的實(shí)時(shí)數(shù)據(jù)賦給TextBox(文本框),并把iFix中各點(diǎn)的DDE地址的項(xiàng)目名設(shè)為對(duì)應(yīng)的TextBox(文本框)。如油漆烘間的實(shí)測(cè)溫度,在iFix中點(diǎn)名為AI_Oven_Tem,其DDE地址VBServerformMaintxt OvenTem(其中VBServer是應(yīng)用程序名,formMain是作為主題的窗體名,txtOvenTem是作為項(xiàng)目的文本框名稱)。此時(shí),iFix為客戶,VB應(yīng)用程序?yàn)榉?wù)器。
3.5 VB作為DDE客戶與DDE服務(wù)器iFix的實(shí)際鏈接
通常情況下,現(xiàn)場(chǎng)的檢測(cè)信號(hào)和運(yùn)動(dòng)參數(shù)的流向是從iFix傳輸?shù)絍B開發(fā)的應(yīng)用程序VBSrvApp或其它的Windows應(yīng)用程序,再由Windows應(yīng)用程序或VBSrvApp以命令形式經(jīng)iFix下達(dá)給遠(yuǎn)程現(xiàn)場(chǎng)的智能儀表或PLC等遠(yuǎn)程的現(xiàn)場(chǎng)設(shè)備,如油漆烘間和膠爐各自的設(shè)定溫度、純水進(jìn)口的設(shè)定壓力、顏料的設(shè)定濃度等參數(shù)。
在VBServer中,把各個(gè)設(shè)定參數(shù)相應(yīng)的TextBox(文本框)的LinkItem屬性設(shè)置為對(duì)應(yīng)的iFix的點(diǎn),然后把從iFix的點(diǎn)傳輸?shù)綄?duì)應(yīng)TextBox(文本框)中的內(nèi)容下達(dá)給遠(yuǎn)程現(xiàn)場(chǎng)設(shè)備。此時(shí),VB應(yīng)用程序?yàn)閂BServer客戶,iFix為服務(wù)器。
4、結(jié)束語
組態(tài)軟件在工控DCADA系統(tǒng)中處于重要位置,實(shí)現(xiàn)它與第三方軟件的通信是系統(tǒng)成敗的關(guān)鍵。文章中討論的問題,是某自動(dòng)化生產(chǎn)線改造中動(dòng)態(tài)數(shù)據(jù)交換技術(shù)應(yīng)用的總結(jié),該生產(chǎn)線現(xiàn)運(yùn)行良好,說明該設(shè)計(jì)是可行和有效的。