朱鵠駿, 徐向文, 唐 姝, 柯少卿
(上海船舶運(yùn)輸科學(xué)研究所研究開(kāi)發(fā)中心,上海200135)
隨著計(jì)算機(jī)技術(shù)、控制技術(shù)、圖形顯示技術(shù)、工業(yè)以太網(wǎng)技術(shù)、通信技術(shù)及現(xiàn)場(chǎng)總線技術(shù)的發(fā)展,工業(yè)控制計(jì)算機(jī)系統(tǒng)得到了迅猛的發(fā)展。組態(tài)軟件作為用戶無(wú)需改變運(yùn)行程序源代碼的軟件平臺(tái)工具,其技術(shù)日漸成熟,應(yīng)用組態(tài)軟件技術(shù)可以開(kāi)發(fā)出各種實(shí)時(shí)監(jiān)控軟件,免去了實(shí)現(xiàn)監(jiān)控軟件過(guò)程中的大量編程工作,極大地提高了監(jiān)控軟件開(kāi)發(fā)的工作效率,同時(shí)保證了監(jiān)控系統(tǒng)的可靠性和監(jiān)控質(zhì)量。
組態(tài)軟件產(chǎn)品出現(xiàn)于20世紀(jì)80年代,于80年代末期進(jìn)入我國(guó)。但在90年代中期以前,由于國(guó)內(nèi)用戶還缺乏對(duì)組態(tài)軟件的認(rèn)識(shí)及國(guó)內(nèi)工業(yè)自動(dòng)化和信息技術(shù)應(yīng)用的水平不高,使組態(tài)軟件在國(guó)內(nèi)的應(yīng)用并不普及。隨著工業(yè)控制系統(tǒng)應(yīng)用的深入,在面臨規(guī)模更大,控制更復(fù)雜的系統(tǒng)時(shí),人們認(rèn)識(shí)到原有的編程開(kāi)發(fā)方式已不適用于此類開(kāi)發(fā)。同時(shí),微軟Windows平臺(tái)的推出使組態(tài)軟件有了更適宜的操作系統(tǒng)平臺(tái),因此,1995年后組態(tài)軟件在國(guó)內(nèi)的應(yīng)用逐漸得到了普及。
組態(tài)軟件的含義是可使用軟件工具對(duì)計(jì)算機(jī)及軟件的各種資源進(jìn)行配置,以使計(jì)算機(jī)或軟件按設(shè)計(jì)要求工作,達(dá)到使用者要求的使用目的。
組態(tài)軟件是面向監(jiān)控與數(shù)據(jù)采集的軟件平臺(tái)工具,是自動(dòng)控制系統(tǒng)監(jiān)控層一級(jí)的數(shù)據(jù)采集與過(guò)程控制的專用軟件。它應(yīng)具有豐富的設(shè)置項(xiàng)目,使用方法靈活,功能強(qiáng)大,能以靈活多樣的組態(tài)方式提供給用戶開(kāi)發(fā)界面和開(kāi)發(fā)控制功能的簡(jiǎn)捷方法,與網(wǎng)絡(luò)系統(tǒng)結(jié)合后可向控制層和管理層提供軟硬件的全部接口,進(jìn)行系統(tǒng)集成。
船舶專用組態(tài)軟件是開(kāi)發(fā)船舶監(jiān)控軟件的開(kāi)發(fā)工具,用戶可以利用船舶專用組態(tài)軟件,根據(jù)船舶監(jiān)控系統(tǒng)的設(shè)計(jì)要求生成所需的船舶監(jiān)控軟件。
工控組態(tài)軟件雖有諸多優(yōu)點(diǎn),在船舶監(jiān)控系統(tǒng)領(lǐng)域也得到了一定的應(yīng)用,但由于其過(guò)于強(qiáng)調(diào)通用性,在使用中就使得系統(tǒng)體積龐大、成本高、資源浪費(fèi),不能符合船舶監(jiān)控系統(tǒng)對(duì)低資源、少消耗、低成本的要求。另外,船舶監(jiān)控系統(tǒng)對(duì)報(bào)警系統(tǒng)、畫面測(cè)點(diǎn)數(shù)量、顯示所需控件、圖庫(kù)等方面都有特殊要求,工控組態(tài)軟件與船舶監(jiān)控的要求有較大的差距。因此,迫切需要一種針對(duì)船舶監(jiān)控系統(tǒng)行業(yè)的、專用的組態(tài)軟件。
船舶監(jiān)控專用組態(tài)軟件的使用者是船舶監(jiān)控自動(dòng)化工程設(shè)計(jì)人員,因此,在設(shè)計(jì)船舶監(jiān)控專用組態(tài)軟件時(shí)應(yīng)充分了解船舶監(jiān)控自動(dòng)化工程設(shè)計(jì)人員的基本需求,并加以總結(jié)提煉,重點(diǎn)集中解決共性問(wèn)題。以下是船舶監(jiān)控組態(tài)軟件需解決的主要問(wèn)題:
●如何與采集、控制設(shè)備間進(jìn)行數(shù)據(jù)交換;
●使來(lái)自設(shè)備的數(shù)據(jù)與計(jì)算機(jī)圖形畫面上的各元素關(guān)聯(lián)起來(lái);
●處理數(shù)據(jù)報(bào)警及系統(tǒng)報(bào)警;
●存儲(chǔ)歷史數(shù)據(jù)并支持歷史數(shù)據(jù)的查詢;
●各類報(bào)表的生成與打印輸出;
●為使用者提供靈活、多變的組態(tài)工具,以適應(yīng)不同應(yīng)用的需求;
●最終生成的應(yīng)用系統(tǒng)運(yùn)行穩(wěn)定、可靠;
●具有與第三方程序的接口,方便數(shù)據(jù)共享。
船舶監(jiān)控系統(tǒng)的特殊性,對(duì)船舶監(jiān)控專用組態(tài)軟件的性能提出了如下要求:
●實(shí)時(shí)多任務(wù);
●高可靠性。
實(shí)時(shí)性是指工業(yè)控制計(jì)算機(jī)系統(tǒng)應(yīng)該具有的能夠在限定的時(shí)間內(nèi)對(duì)外來(lái)事件做出反應(yīng)的特性。
多任務(wù)是使數(shù)據(jù)采集與輸出、數(shù)據(jù)處理與算法實(shí)現(xiàn)、圖形顯示及人機(jī)對(duì)話、實(shí)時(shí)數(shù)據(jù)的存儲(chǔ)、檢索管理、實(shí)時(shí)通信等多項(xiàng)任務(wù)要在1臺(tái)計(jì)算機(jī)上同時(shí)運(yùn)行等。
高可靠性是要求在計(jì)算機(jī)、數(shù)據(jù)采集控制設(shè)備正常工作的情況下,當(dāng)供電系統(tǒng)正常、監(jiān)控組態(tài)軟件的目標(biāo)應(yīng)用系統(tǒng)所占的系統(tǒng)資源不超負(fù)荷時(shí),則要求軟件系統(tǒng)穩(wěn)定可靠地運(yùn)行。
●面向?qū)ο?
●模塊化;
●并行化;
●統(tǒng)一抽象化;
●開(kāi)放性。
面向?qū)ο蟮脑O(shè)計(jì)思想是一種針對(duì)現(xiàn)實(shí)世界對(duì)象的一種客觀抽象的思想方法,能夠較容易貼近現(xiàn)實(shí)存在,使系統(tǒng)實(shí)現(xiàn)起來(lái)更容易一些。
而模塊化的設(shè)計(jì)思想是減少重復(fù)勞動(dòng)的一種比較理想的方法,它可以增加代碼的可重用性,并使系統(tǒng)結(jié)構(gòu)和脈絡(luò)更加清晰。
并行化設(shè)計(jì)思想關(guān)鍵在于“并行”,它有助于資源的有效利用,提高速度和效率,是系統(tǒng)提速增加實(shí)時(shí)性的首選方法。
方案一將16號(hào)線車站設(shè)置于十字路口南側(cè),以盡量避免對(duì)既有上林大橋產(chǎn)生影響。車站共設(shè)3個(gè)出入口,分別位于灃涇大道東西兩側(cè),以滿足灃涇大道兩側(cè)人流過(guò)街需求。車站設(shè)置兩組風(fēng)亭,位于車站西側(cè)的綠化帶內(nèi)。
統(tǒng)一抽象化在于簡(jiǎn)化對(duì)事物和對(duì)象的表示,增強(qiáng)系統(tǒng)結(jié)構(gòu)和對(duì)象的通用性。開(kāi)放性,就是要增強(qiáng)系統(tǒng)的可互操作性及與其它系統(tǒng)的兼容性等。
船舶監(jiān)控專用組態(tài)軟件分為組態(tài)層、運(yùn)行層和信息管理層(實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng))。
設(shè)計(jì)監(jiān)控系統(tǒng)的工程師通過(guò)使用組態(tài)層軟件,通過(guò)系統(tǒng)組態(tài)、數(shù)據(jù)庫(kù)組態(tài)、硬件組態(tài)、圖形組態(tài)、報(bào)警組態(tài)、控制回路組態(tài)、報(bào)表圖表組態(tài)等多種組態(tài)方式,將監(jiān)控系統(tǒng)表示成一系列的組態(tài)文件(又稱配置文件)或者組態(tài)數(shù)據(jù)庫(kù)形式。
運(yùn)行層是將在組態(tài)層已經(jīng)配置好的監(jiān)控系統(tǒng)(各組態(tài)文件表示),以監(jiān)控軟件的形式在操作站中運(yùn)行。在信息管理層,集中性地協(xié)調(diào)控制與管理各個(gè)操作站的設(shè)備數(shù)據(jù),以及用于上層的信息管理與報(bào)表信息輸出等等。
組態(tài)層、運(yùn)行層及信息管理層之間是相互獨(dú)立又需要相互聯(lián)系的。
從總體上講,船舶監(jiān)控專用組態(tài)軟件是由系統(tǒng)開(kāi)發(fā)環(huán)境和系統(tǒng)運(yùn)行環(huán)境兩大部分構(gòu)成的。
5.1.1 系統(tǒng)開(kāi)發(fā)環(huán)境
系統(tǒng)開(kāi)發(fā)環(huán)境是設(shè)計(jì)工程師為實(shí)施其控制方案,在組態(tài)軟件的支持下進(jìn)行應(yīng)用程序的系統(tǒng)生成工作所必須依賴的工作環(huán)境。通過(guò)建立一系列用戶數(shù)據(jù)文件,生成最終的圖形目標(biāo)應(yīng)用系統(tǒng),供系統(tǒng)運(yùn)行環(huán)境運(yùn)行時(shí)使用。系統(tǒng)開(kāi)發(fā)環(huán)境由若干個(gè)組態(tài)程序組成,如圖形界面組態(tài)程序、測(cè)點(diǎn)組態(tài)程序等。
5.1.2 系統(tǒng)運(yùn)行環(huán)境
在系統(tǒng)運(yùn)行環(huán)境下,目標(biāo)應(yīng)用程序被裝入計(jì)算機(jī)內(nèi)存并投入實(shí)時(shí)運(yùn)行。系統(tǒng)運(yùn)行環(huán)境由若干個(gè)運(yùn)行程序組成,如圖形界面運(yùn)行程序、實(shí)時(shí)數(shù)據(jù)庫(kù)運(yùn)行程序等。
自動(dòng)化工程設(shè)計(jì)工程師最先接觸的一定是系統(tǒng)開(kāi)發(fā)環(huán)境,通過(guò)一定工作量的系統(tǒng)組態(tài)和調(diào)試,最終將目標(biāo)應(yīng)用程序在系統(tǒng)運(yùn)行環(huán)境投入實(shí)時(shí)運(yùn)行,完成一個(gè)工程項(xiàng)目。
組態(tài)軟件的系統(tǒng)運(yùn)行環(huán)境對(duì)自動(dòng)化工程設(shè)計(jì)工程師開(kāi)發(fā)的應(yīng)用程序進(jìn)行解釋、運(yùn)行,并提供與工業(yè)現(xiàn)場(chǎng)用戶之間的交互界面。
5.1.3 系統(tǒng)基本構(gòu)成
組態(tài)軟件因?yàn)槠涔δ軓?qiáng)大,而每個(gè)功能相對(duì)來(lái)說(shuō)又具有一定的獨(dú)立性,因此,其組成形式是一個(gè)集成軟件平臺(tái),由若干程序組件構(gòu)成。
其中必備的典型組件包括:
●應(yīng)用程序管理器;
●圖形界面開(kāi)發(fā)程序;
●圖形界面運(yùn)行程序;
●測(cè)點(diǎn)組態(tài)程序;
●實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)運(yùn)行程序;
●I/O驅(qū)動(dòng)程序。
船舶監(jiān)控專用組態(tài)軟件的運(yùn)行分為3個(gè)層次:組態(tài)層、運(yùn)行層和信息管理層(詳見(jiàn)圖1)。
5.2.1 組態(tài)層
組態(tài)層主要功能包括系統(tǒng)組態(tài)、硬件組態(tài)、數(shù)據(jù)庫(kù)組態(tài)、界面組態(tài)(包括流程圖組態(tài)、圖表組態(tài)和報(bào)表組態(tài)等)和控制回路組態(tài)等。
圖1 組態(tài)軟件運(yùn)行的層次結(jié)構(gòu)
1.系統(tǒng)組態(tài)。各現(xiàn)場(chǎng)控制站、工程師站和操作員站的基本配置信息即通過(guò)系統(tǒng)組態(tài)來(lái)設(shè)定。選擇投入運(yùn)行的現(xiàn)場(chǎng)控制站的類型、個(gè)數(shù)、各自的站號(hào)及是否有冗余等,確定操作員站的站號(hào)。還可以設(shè)定安全保護(hù),對(duì)操作員的操作權(quán)限和操作范圍進(jìn)行限定。
2.硬件組態(tài)。完成系統(tǒng)中監(jiān)控的所有現(xiàn)場(chǎng)設(shè)備的邏輯定義,以便能夠正確與設(shè)備進(jìn)行通信,使系統(tǒng)能夠適應(yīng)異構(gòu)工業(yè)控制系統(tǒng)的監(jiān)控要求。系統(tǒng)能夠組態(tài)的硬件類型越多,則系統(tǒng)將具有越強(qiáng)的通用性。
3.數(shù)據(jù)庫(kù)組態(tài)。實(shí)時(shí)數(shù)據(jù)庫(kù)是集散型控制系統(tǒng)的信息來(lái)源。一個(gè)工程項(xiàng)目中所有要監(jiān)測(cè)和控制的點(diǎn)都在數(shù)據(jù)庫(kù)組態(tài)中完成。
4.界面組態(tài)。系統(tǒng)運(yùn)行時(shí),控制現(xiàn)場(chǎng)的設(shè)備狀態(tài)要在監(jiān)控界面上及時(shí)表示出來(lái)。設(shè)備狀態(tài)的表示方法有以下幾種:直接表示、變量圖表表示、圖形對(duì)象狀態(tài)表示、報(bào)表表示。
5.控制回路組態(tài)。系統(tǒng)運(yùn)行時(shí),可根據(jù)控制現(xiàn)場(chǎng)的設(shè)備參數(shù)選擇控制方案,對(duì)設(shè)備進(jìn)行實(shí)時(shí)控制??刂品桨缚捎捎脩糇孕芯幹?用戶可選擇輸入的設(shè)備參數(shù)和所需控制的目標(biāo)參數(shù),選擇相應(yīng)算法。
5.2.2 運(yùn)行層
監(jiān)控系統(tǒng)運(yùn)行時(shí),監(jiān)控服務(wù)器首先調(diào)入系統(tǒng)硬件配置表和數(shù)據(jù)詞典,從而加載相應(yīng)的硬件驅(qū)動(dòng)程序,生成設(shè)備監(jiān)控實(shí)時(shí)數(shù)據(jù)庫(kù),并根據(jù)配置定時(shí)采集硬件數(shù)據(jù);監(jiān)控客戶端在被確認(rèn)身份后,通過(guò)監(jiān)控服務(wù)器載入監(jiān)控界面配置文件生成控制系統(tǒng)的監(jiān)控界面,并生成系統(tǒng)所有實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)的一個(gè)映像,然后服務(wù)器和客戶端不斷地交換實(shí)時(shí)數(shù)據(jù),實(shí)現(xiàn)系統(tǒng)監(jiān)控過(guò)程。
監(jiān)控界面中各種圖形對(duì)象都只是一種被動(dòng)的圖元。它們?cè)诤畏N條件下做何種動(dòng)作,處于何種狀態(tài),都在界面組態(tài)層中得到配置。
監(jiān)控系統(tǒng)運(yùn)行時(shí),所有圖形對(duì)象根據(jù)監(jiān)控界面配置文件中的配置方案,由實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)進(jìn)行驅(qū)動(dòng),客戶端監(jiān)控界面上的圖形元素根據(jù)實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)改變本身的狀態(tài),即進(jìn)行檢測(cè)數(shù)據(jù)顯示。
當(dāng)一個(gè)用戶通過(guò)監(jiān)控界面改變實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)后,被改變的數(shù)據(jù)將回傳至服務(wù)器中,服務(wù)器相應(yīng)地進(jìn)行兩方面工作:①如果用戶改變了I/O數(shù)據(jù),則將數(shù)據(jù)通過(guò)I/O端口寫入設(shè)備,從而操作硬件設(shè)備;②將改變的I/O數(shù)據(jù)和中間數(shù)據(jù)分發(fā)給其他用戶端,更新所有用戶實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)的映像。
5.2.3 信息管理層
對(duì)監(jiān)控?cái)?shù)據(jù)進(jìn)行處理、轉(zhuǎn)移、備份和分析,丟棄不必要的數(shù)據(jù);將設(shè)備操作情況進(jìn)行登記,以便對(duì)用戶操作設(shè)備進(jìn)行跟蹤和管理;進(jìn)行用戶身份和權(quán)限的管理;各種報(bào)表信息的輸出等。信息管理層一般位于中央計(jì)算機(jī)站。
船舶監(jiān)控專用組態(tài)軟件總體功能架構(gòu)如圖2所示。
船舶監(jiān)控專用組態(tài)軟件的開(kāi)發(fā)工具是C++,使用C++開(kāi)發(fā)的產(chǎn)品運(yùn)行效率更高,程序代碼較短,運(yùn)行速度更快,但開(kāi)發(fā)周期要長(zhǎng)一些。
采用的應(yīng)用程序框架是MFC(Microsoft Foundation Class Library)。如果選擇了MFC,也就選擇了一種程序結(jié)構(gòu)、一種編程風(fēng)格。對(duì)于為VC定制的開(kāi)發(fā)框架,MFC經(jīng)歷了多年的發(fā)展和完善,MFC功能非常全面,且非常穩(wěn)定,bug很少。其中用戶可能遇到的bug更少,而且有第三方面的專門工具幫助用戶避開(kāi)這些bug。為此,選擇VC作為組態(tài)軟件的開(kāi)發(fā)環(huán)境。
隨著計(jì)算機(jī)技術(shù)發(fā)展的日新月異及我國(guó)造船量的不斷增加,對(duì)船舶監(jiān)控專用組態(tài)軟件的需求也不斷上升。不難預(yù)測(cè),最近幾年中國(guó)的船舶監(jiān)控專用組態(tài)軟件市場(chǎng)仍會(huì)以較快的速度發(fā)展,船舶監(jiān)控專用組態(tài)軟件的推廣將促進(jìn)我國(guó)船舶監(jiān)控技術(shù)不斷邁上新臺(tái)階,并由此縮短與發(fā)達(dá)國(guó)家在船舶監(jiān)控領(lǐng)域的差距,提高我國(guó)造船工業(yè)在國(guó)際市場(chǎng)的競(jìng)爭(zhēng)力。
圖2 系統(tǒng)總體功能架構(gòu)
[1] 馬固華.監(jiān)控組態(tài)軟件及其應(yīng)用[M].北京:清華大學(xué)出版社,2001.
[2] 張志檁,等.實(shí)時(shí)數(shù)據(jù)庫(kù)原理及應(yīng)用[M].北京:中國(guó)石化出版社,2001.
[3] 聶書(shū)志.實(shí)時(shí)數(shù)據(jù)庫(kù)的設(shè)計(jì)思想和實(shí)現(xiàn)技術(shù)[J].經(jīng)濟(jì)與社會(huì)發(fā)展,2006,11(4):53-55.
[4] 葉建位,蘇宏業(yè).實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)關(guān)鍵技術(shù)及實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2005(3):45—47.
[5] 闞宏進(jìn),劉希遠(yuǎn),等.基于VC++工控組態(tài)軟件實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)的設(shè)計(jì)[J].甘肅工業(yè)大學(xué)學(xué)報(bào),2001,27(4):73-76.
[6] 王荃,會(huì)海東,等.工控組態(tài)軟件實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J],計(jì)算機(jī)應(yīng)用,2000,27(3):40-43.
[7] 徐國(guó)風(fēng).實(shí)時(shí)數(shù)據(jù)庫(kù)關(guān)鍵技術(shù)研究[D].西安:西安建筑科技大學(xué),2006.
[8] KAO Ben,GARCIAMOL INA Hector.An overview of real2 time database systems[M].Princeton NJ,USA:Prentice Hall Inc,1995.
上海船舶運(yùn)輸科學(xué)研究所學(xué)報(bào)2010年2期