裴軍明,郭敬軍
(上海隧道工程股份有限公司,上海 200082)
隧道綜合監(jiān)控系統(tǒng)是集通信技術(shù)、計(jì)算機(jī)技術(shù)、自動(dòng)控制技術(shù)于一體,為隧道管理人員提供完整和清晰的隧道運(yùn)行狀況。整個(gè)系統(tǒng)主要分為交通監(jiān)控系統(tǒng)、設(shè)備監(jiān)控系統(tǒng)、電力監(jiān)控和綜合供配電系統(tǒng)以及通信管理系統(tǒng)四部分,其中交通監(jiān)控系統(tǒng)具有交通數(shù)據(jù)采集、交通事件監(jiān)測(cè)、交通信號(hào)控制、交通信息發(fā)布等功能;設(shè)備監(jiān)控系統(tǒng)包括隧道環(huán)境監(jiān)測(cè)、通風(fēng)設(shè)備監(jiān)控、排水設(shè)備監(jiān)控、照明設(shè)備監(jiān)控、火災(zāi)報(bào)警監(jiān)控等子系統(tǒng);電力監(jiān)控系統(tǒng)具有電氣參數(shù)監(jiān)測(cè)、電力設(shè)備監(jiān)控、監(jiān)控系統(tǒng)和其他弱電系統(tǒng)的內(nèi)、外場(chǎng)設(shè)備供電和保護(hù)監(jiān)控等功能;通信管理系統(tǒng)包含視頻監(jiān)控系統(tǒng)、緊急電話系統(tǒng)、廣播系統(tǒng)等[1-2]。
隨著工業(yè)組態(tài)軟件技術(shù)的發(fā)展,大量的最新計(jì)算技術(shù)、通訊技術(shù)、多媒體技術(shù)被用來提高其性能,擴(kuò)充其功能;工業(yè)組態(tài)軟件更加注重效率,用戶通過模板快速生成自己的項(xiàng)目應(yīng)用,圖形模板、數(shù)據(jù)庫模板、設(shè)備模板可以讓用戶以“復(fù)制”方式快速生成目標(biāo)程序[3]。
本文將基于通用公司的組態(tài)軟件平臺(tái) Cimplicity HMI,對(duì)草海隧道崗頭山隧道工程隧道綜合監(jiān)控系統(tǒng)的程序開發(fā)和實(shí)現(xiàn)的進(jìn)行一些分析。
CIMPLICITY HMI軟件系統(tǒng)是模塊化的軟件結(jié)構(gòu),它由軟件核心,基本系統(tǒng),可選模塊和設(shè)備通訊組件等組成,能夠支持多種硬件和軟件平臺(tái),是一個(gè)基于客戶服務(wù)器的結(jié)構(gòu)[4]。其主要功能和特點(diǎn)如下:
(1)強(qiáng)大的圖形用戶界面設(shè)計(jì)開發(fā)工具及應(yīng)用程序開發(fā)模塊。CIMPLICITY采用標(biāo)準(zhǔn)Windows GUI作為自己的圖形用戶界面,而且它的外觀完全按照 Microsoft Office的標(biāo)準(zhǔn)設(shè)計(jì),這樣用戶可以不用專門進(jìn)行學(xué)習(xí)就可以熟悉它的環(huán)境,圖庫圖形豐富多彩,支持從畫面到畫面包含對(duì)象的顏色漸變,內(nèi)嵌VBA,具有自己的內(nèi)部函數(shù),支持ActiveX、OLE插入。
(2)實(shí)時(shí)數(shù)據(jù)的采集和分析功能。能形成可視化的圖表或曲線及報(bào)警管理。在CIMPLICITY中能夠處理的數(shù)據(jù)類型有數(shù)字量、模擬量、整數(shù)、浮點(diǎn)數(shù)、字符串、數(shù)組和結(jié)構(gòu)等,在進(jìn)行數(shù)據(jù)采集時(shí)可以指定采集方式。
(3)能進(jìn)行大量的數(shù)據(jù)讀寫及存盤備份功能。支持與多種ODBC關(guān)系數(shù)據(jù)庫的連接;利用微軟的開放數(shù)據(jù)庫互連標(biāo)準(zhǔn)(ODBC)來提供給用戶記錄報(bào)警,事件和點(diǎn)值到一個(gè)ODBC數(shù)據(jù)庫的能力[5]。
(4)網(wǎng)絡(luò)功能。CIMPLICITY將系統(tǒng)分成服務(wù)器和瀏覽站兩種軟件系統(tǒng)形式,CIMPLICITY服務(wù)器軟件可以安裝在計(jì)算機(jī)中并通過通訊鏈路采集控制器中的數(shù)據(jù),將數(shù)據(jù)放在服務(wù)器的共享數(shù)據(jù)庫中,同時(shí)服務(wù)器還具備人機(jī)界面和監(jiān)控的各種功能。CIMPLICITY瀏覽站軟件同樣可以安裝在計(jì)算機(jī)中并具備人機(jī)界面和監(jiān)控的各種功能,但是它不能直接與控制器相連采集過程數(shù)據(jù),而這些數(shù)據(jù)都是來自于服務(wù)器節(jié)點(diǎn)上的共享數(shù)據(jù)庫的。服務(wù)器和瀏覽站同時(shí)連接到TCP/IP網(wǎng)絡(luò)上,通過網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)的傳輸和交換,
(5)同時(shí)還能提供給開發(fā)人員自外掛程序模塊的接口。CIMPLICITY系統(tǒng)中提供了一組系統(tǒng)開發(fā)軟件工具,這組工具包括:點(diǎn)管理應(yīng)用程序界面、報(bào)警管理應(yīng)用程序界面和設(shè)備通訊開發(fā)工具箱。這是應(yīng)用程序界面(API)的集合,當(dāng)你開發(fā)你自己的程序系統(tǒng)時(shí),可以調(diào)用它們實(shí)現(xiàn)與CIMPLICITY系統(tǒng)之間的通訊和資源共享。
整個(gè)系統(tǒng)由數(shù)據(jù)庫服務(wù)器、通信服務(wù)器、工作站及計(jì)算機(jī)網(wǎng)絡(luò)組成,系統(tǒng)結(jié)構(gòu)圖如圖1所示。
圖1 隧道綜合監(jiān)控系統(tǒng)結(jié)構(gòu)系統(tǒng)圖
整個(gè)系統(tǒng)設(shè)置多臺(tái)具有設(shè)備監(jiān)控、交通監(jiān)控、電力監(jiān)控、閉路電視(CCTV)監(jiān)視、火災(zāi)報(bào)警等功能的工作站,并支持多媒體大屏幕綜合顯示;基于以太局域網(wǎng)實(shí)現(xiàn)多工作站分功能、分級(jí)別網(wǎng)上資源共享、網(wǎng)絡(luò)協(xié)調(diào)運(yùn)作功能(采用TCP/IP通信協(xié)議);基于Client/Server主客體系上建立統(tǒng)一的信息數(shù)據(jù)庫,實(shí)現(xiàn)隧道與相接交通線路或管理部門網(wǎng)絡(luò)上的通信,能接收上級(jí)部門的指令和建議,輔以協(xié)調(diào)、管理;通過I/O服務(wù)器設(shè)備,獲得設(shè)備監(jiān)控、交通監(jiān)控和火災(zāi)報(bào)警等系統(tǒng)的下層設(shè)備所需的隧道中的各種信息,由本系統(tǒng)指揮和協(xié)調(diào)數(shù)據(jù)的流向,由各工作站讀取且分別處理、運(yùn)算后,向上、向下發(fā)布指令,并存入統(tǒng)一的數(shù)據(jù)庫中,供值班人員隨時(shí)調(diào)用、顯示、打印。
整個(gè)隧道監(jiān)控系統(tǒng)集成平臺(tái)采用C/S結(jié)構(gòu),服務(wù)端主要負(fù)責(zé)數(shù)據(jù)的采集存儲(chǔ)與分析,硬件指令的收發(fā),客戶端主要提供了簡潔直觀、快捷方便的人機(jī)界面,接受用戶指令下發(fā)至服務(wù)端,同時(shí)從服務(wù)端接收經(jīng)過分析的數(shù)據(jù)信息,和報(bào)警信息提供給用戶。
本系統(tǒng)采用面向?qū)ο蟮姆椒ㄟM(jìn)行軟件系統(tǒng)設(shè)計(jì),實(shí)現(xiàn)豐富的彩色圖形顯示制作和動(dòng)畫顯示,將系統(tǒng)過程真實(shí)地可視化地反映給操作者。對(duì)于現(xiàn)場(chǎng)設(shè)備,如風(fēng)機(jī)、車道燈、水泵、情報(bào)板、電話、廣播、等等,需要根據(jù)對(duì)應(yīng)于這些設(shè)備的輸入、輸出、反饋信號(hào)、報(bào)警、邏輯腳本、操作權(quán)限等建立一個(gè)通用的設(shè)備模板,進(jìn)而實(shí)現(xiàn)代碼和對(duì)象的復(fù)用。
設(shè)計(jì)模板必須首先了解和收集系統(tǒng)中的設(shè)備對(duì)象以及相關(guān)的功能需求。例如交通信號(hào)系統(tǒng)對(duì)隧道內(nèi)的車道信號(hào)燈的狀態(tài)可以進(jìn)行實(shí)時(shí)監(jiān)控,并且將各個(gè)車道信號(hào)燈的操作歷史記錄在案。監(jiān)控管理人員通過組態(tài)頁面上表示不同種類的車道燈的圖標(biāo)的可視化的操作,控制命令傳輸給實(shí)施控制的PLC,從而實(shí)現(xiàn)對(duì)車道信號(hào)燈的單控和集中控制,當(dāng)交通信號(hào)燈的狀態(tài)有變化后,通過PLC,將車道信號(hào)燈的狀態(tài)傳輸?shù)较嚓P(guān)的組態(tài)頁面,組態(tài)頁面上的車道信號(hào)燈的圖標(biāo)也隨之變化為相應(yīng)狀態(tài)。從而可分析得出:信號(hào)燈數(shù)據(jù)加工功能需求如下:
1)對(duì)輸入數(shù)據(jù)的有效性檢查;
2)對(duì)控制命令的權(quán)限判斷。
而信號(hào)燈的輸入、輸出的數(shù)據(jù)如表1所示。
表1 設(shè)備的輸入輸出數(shù)據(jù)
其次,針對(duì)于各種信號(hào)情況,設(shè)計(jì)由系統(tǒng)自動(dòng)實(shí)現(xiàn)或在操作員參與下完成的相應(yīng)預(yù)案,例如對(duì)于車輛超高報(bào)警信號(hào)的處理,就結(jié)合了人工確認(rèn)和系統(tǒng)批量操作,具體流程見圖2。
圖2 車輛超高報(bào)警處理流程圖
以CIMPLICITY的圖形編輯程序CimEdit開發(fā)元件庫,只要事先按照自己的需要完成圖形的編輯及一些相應(yīng)的代碼編寫,將來對(duì)于同樣的類型的功能符號(hào),就可直接從元件庫中選擇粘貼即可。
CimEdit利用 linked objects方式在一個(gè)畫面文件(源文件)中開發(fā)好模板,而在其他畫面中進(jìn)行動(dòng)態(tài)連接,以后若發(fā)生需求變動(dòng),如增加顯示新的數(shù)據(jù),圖符的變動(dòng),只需針對(duì)源文件中的模板進(jìn)行相關(guān)的修改,而其他畫面只需做極小改動(dòng)甚至不必改動(dòng),從而加快了修改速度,減少了逐個(gè)修改帶來的遺漏和錯(cuò)誤。如車道信號(hào)燈所包含的多個(gè)實(shí)時(shí)反饋狀態(tài)(允許通行、禁止通行、關(guān)閉信號(hào)燈)以及對(duì)交通信號(hào)燈進(jìn)行遙控,具體設(shè)備反饋顯示圖例見圖3。
在對(duì)象圖元中是通過變量區(qū)分的,而變量往往與數(shù)據(jù)點(diǎn)相關(guān)聯(lián)。命名數(shù)據(jù)點(diǎn)可采用按系統(tǒng)、設(shè)備、功能的次序由前向后或由后向前的統(tǒng)一方式,每個(gè)部分間可加上如“.”,“_”等分隔符,同時(shí)注意命名長度限制,命名過長時(shí)可采用不會(huì)產(chǎn)生歧義的縮寫。命名方法的統(tǒng)一不僅可使數(shù)據(jù)點(diǎn)易于理解,而且有利于數(shù)據(jù)點(diǎn)的批量生成。由于CIMPLICITY HMI的數(shù)據(jù)點(diǎn)瀏覽器支持樹狀瀏覽方法,這種命名方式還使得數(shù)據(jù)點(diǎn)可依次逐級(jí)合并或打開顯示,分類更為清晰。
圖3 信號(hào)燈的反饋顯示
該方式更關(guān)注在圖元模板的設(shè)計(jì),特別是復(fù)合對(duì)象的設(shè)計(jì)。它不受在線修改限制,用戶只需在修改圖元后,重新打開使用該圖元的畫面即可。不過,由于數(shù)據(jù)點(diǎn)和圖形的聯(lián)系不緊密,在開發(fā)中常常自行制定一些設(shè)計(jì)原則來限制,這就維護(hù)人員對(duì)系統(tǒng)更為了解,而且無法脫離工程進(jìn)行修改。
CIMPLICITY還可通過生成類 (Class)和對(duì)象(Class Objects),實(shí)現(xiàn)模板復(fù)用[6]。類(Class)是一組對(duì)象的模板,Object是屬于某個(gè)類(Class)的一個(gè)對(duì)象,對(duì)象中包含屬性和數(shù)據(jù)點(diǎn)。創(chuàng)建一個(gè)Class,隨后可以快速地復(fù)制對(duì)象,相應(yīng)的數(shù)據(jù)點(diǎn)也被創(chuàng)建。
Class即是對(duì)象的模板,其屬性是創(chuàng)建對(duì)象時(shí)由用戶輸入的一些對(duì)應(yīng)于該對(duì)象的靜態(tài)信息,如:信號(hào)燈的名稱、描述、基地址等,而數(shù)據(jù)點(diǎn)是對(duì)象動(dòng)態(tài)顯示時(shí)所需要用到的數(shù)據(jù)點(diǎn),定義該數(shù)據(jù)項(xiàng)的PLC內(nèi)存地址。創(chuàng)建一個(gè)圖形對(duì)象對(duì)應(yīng)于類(Class),屬于該類的圖形對(duì)象都可以用該圖形對(duì)象來動(dòng)態(tài)顯示,該圖形對(duì)象必須含有一個(gè)名為$OBJECT的臨時(shí)變量。
創(chuàng)建屬于該Class的Object之后,其相應(yīng)的數(shù)據(jù)點(diǎn)也被自動(dòng)創(chuàng)建。將對(duì)象拖曳到顯示畫面中,將自動(dòng)實(shí)現(xiàn)圖形對(duì)象的Link Copy,并將 Object名字分配給$OBJECT。
如果對(duì)每個(gè)同類設(shè)備的數(shù)據(jù)點(diǎn)分配PLC地址時(shí),按照一致的順序分配在從基地址開始的連續(xù)地址中,在設(shè)計(jì)模板時(shí)可將數(shù)據(jù)項(xiàng)的地址設(shè)置為在基地址的基礎(chǔ)上有增量,這樣創(chuàng)建對(duì)象時(shí)只需修改基地址,其他的數(shù)據(jù)點(diǎn)地址便可自動(dòng)生成,無需一一配置。
該方式通過Cimplicity HMI自動(dòng)完成數(shù)據(jù)點(diǎn)的設(shè)置及圖元的綁定。Class還可單獨(dú)導(dǎo)出保存,并可在別處修改后導(dǎo)入工程。但是Class的修改不支持在線修改,如果功能需求不確定,在線維護(hù)要求較多的情況下不是很適合。
本文提出了一種基于面向?qū)ο蟮姆绞介_發(fā)草海隧道崗頭山隧道工程隧道綜合監(jiān)控系統(tǒng),該方案基于Cimplicity HMI工控組態(tài)軟件平臺(tái),該技術(shù)利用了面向?qū)ο蠹夹g(shù)中的封裝性、繼承性的特點(diǎn),可大大節(jié)省了整個(gè)系統(tǒng)的開發(fā)研制時(shí)間,加快了整個(gè)系統(tǒng)的投入運(yùn)行的時(shí)間。
Cimplicity HMI提供了二種方式設(shè)計(jì)和開發(fā)對(duì)象:第一種利用圖形編輯程序linked objects方式設(shè)計(jì)模板和發(fā)布圖形對(duì)象;第二種通過生成類(Class)建立模板并創(chuàng)建對(duì)應(yīng)的對(duì)象(Class Objects)實(shí)現(xiàn)復(fù)用。對(duì)于系統(tǒng)的開發(fā)和后期維護(hù),這兩種方式各具優(yōu)缺點(diǎn),我們可根據(jù)實(shí)際情況結(jié)合使用,取長補(bǔ)短。
該技術(shù)具有極大的便利性,首先監(jiān)控系統(tǒng)模板中所有的設(shè)備模板和實(shí)例對(duì)象均集中在開發(fā)環(huán)境下進(jìn)行修改,其次對(duì)象模板的修改將會(huì)自動(dòng)反映到其各個(gè)實(shí)例上,并不需要對(duì)每一個(gè)實(shí)例逐一進(jìn)行修改,從而極大地降低了維護(hù)的工作量和成本,延長了系統(tǒng)的生命周期。
[1]姬衛(wèi)東.計(jì)算機(jī)信息系統(tǒng)在隧道監(jiān)控中的應(yīng)用[J].電氣技術(shù),2008,9(8):74-76.
[2]王德虎.隧道監(jiān)控系統(tǒng)典型解決方案[J].山西建筑,2010,36(35):367-368.
[3]馬國華.監(jiān)控組態(tài)軟件的相關(guān)技術(shù)發(fā)展趨勢(shì)[J].自動(dòng)化博覽,2009,27(2):16 -19.
[4]萬波,王新鵬,張明.工控組態(tài)軟件CIMPLICITY及應(yīng)用[J].電力自動(dòng)化設(shè)備 ,2002,22(8):19-21.
[5]萬春紅,張東寧,錢沖山,等.基于Cimplicity HMI的水泥熱工參數(shù)采集與報(bào)表實(shí)現(xiàn)[J].電腦開發(fā)與應(yīng)用 ,2011,38(1):97-101.
[6]GE Fanuc Intelligent Platforms Inc..Cimplicity HMI User’s manual[R].USA:GE Fanuc Intelligent Platforms Inc,2003.