下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、一個(gè)分布式監(jiān)控系統(tǒng)的軟件設(shè)計(jì)于恒春 杜世偉 湯冬誼 楊 麗 時(shí)間:2009年05月04日 字 體: 大 中 小關(guān)鍵詞:監(jiān)控系統(tǒng)冗余設(shè)計(jì)軟件設(shè)計(jì)TCP/IP雙機(jī)摘要: 討論了一個(gè)分布式監(jiān)控系統(tǒng)的軟件設(shè)計(jì)。給出了系統(tǒng)結(jié)構(gòu)、冗余設(shè)計(jì)及軟件設(shè)計(jì)要點(diǎn)。關(guān)鍵詞: 分布式系統(tǒng) 網(wǎng)絡(luò)通信 ActiveX自動(dòng)化1 系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu)見(jiàn)圖1,這是一個(gè)兩級(jí)分布式監(jiān)控系統(tǒng)。在現(xiàn)場(chǎng)級(jí)兩臺(tái)互為熱備的現(xiàn)場(chǎng)計(jì)算機(jī)通過(guò)現(xiàn)場(chǎng)總線(xiàn)與現(xiàn)場(chǎng)設(shè)備相連,實(shí)時(shí)采集現(xiàn)場(chǎng)數(shù)據(jù)并向現(xiàn)場(chǎng)設(shè)備傳送監(jiān)控級(jí)發(fā)來(lái)的控制指令,同時(shí)把各種實(shí)時(shí)信息發(fā)送到監(jiān)控級(jí)。在監(jiān)控級(jí),各監(jiān)控計(jì)算機(jī)通過(guò)TCP/IP以太網(wǎng)與各現(xiàn)場(chǎng)計(jì)算機(jī)相連以獲取現(xiàn)場(chǎng)數(shù)據(jù),并提供GUI以便操作人員監(jiān)
2、視及控制現(xiàn)場(chǎng)設(shè)備。2 冗余設(shè)計(jì)對(duì)于可靠性要求較高的系統(tǒng),常常采用冗余設(shè)計(jì)以提高可靠性。本系統(tǒng)的現(xiàn)場(chǎng)計(jì)算機(jī)為雙機(jī)熱備,監(jiān)控級(jí)計(jì)算機(jī)也可根據(jù)需要進(jìn)行雙機(jī)熱備。雙機(jī)熱備必須解決故障識(shí)別和狀態(tài)鏡象兩個(gè)問(wèn)題,但為實(shí)現(xiàn)快速切換,應(yīng)盡量簡(jiǎn)化算法,同時(shí)盡量減少交換信息,因此如果狀態(tài)信息不是很重要,則不必隨主備信息一起傳送?;谏鲜鏊枷耄x的主備機(jī)報(bào)文格式見(jiàn)圖2,各字段的含義如下:(1)信息標(biāo)識(shí):標(biāo)識(shí)報(bào)文類(lèi)型,共定義了三種報(bào)文:a)普通報(bào)文:由主備機(jī)正常進(jìn)行交互用的報(bào)文,稱(chēng)主機(jī)發(fā)往備機(jī)的報(bào)文為請(qǐng)求報(bào)文,備機(jī)發(fā)往主機(jī)的報(bào)文為應(yīng)答報(bào)文。b)切換報(bào)文:當(dāng)主機(jī)想轉(zhuǎn)為備機(jī)時(shí),發(fā)送此報(bào)文。該報(bào)文是非常必要的,一種情況是當(dāng)
3、現(xiàn)場(chǎng)計(jì)算機(jī)與現(xiàn)場(chǎng)設(shè)備失去聯(lián)系時(shí),就需要主動(dòng)進(jìn)行切換。c)退出報(bào)文:當(dāng)某一臺(tái)機(jī)器退出時(shí),應(yīng)發(fā)送此報(bào)文,否則對(duì)方將認(rèn)為該機(jī)故障。(2)主備標(biāo)志:指示本站是否為主機(jī),“1”表示主機(jī),“0”表示備機(jī)。(3)判決標(biāo)志:當(dāng)主備機(jī)的主備標(biāo)志一致,即兩者同時(shí)為主機(jī)或同時(shí)為備機(jī)時(shí),應(yīng)根據(jù)判決標(biāo)志進(jìn)行切換,該標(biāo)志可以預(yù)先設(shè)定為一個(gè)值,也可以取IP地址或啟動(dòng)時(shí)間作為判決標(biāo)志。判決條件可以取大于或小于。具體實(shí)現(xiàn)方法為:主機(jī)定時(shí)向備機(jī)發(fā)送請(qǐng)求報(bào)文,備機(jī)收到后就發(fā)一個(gè)應(yīng)答報(bào)文;同時(shí)另設(shè)一定時(shí)器,當(dāng)收到對(duì)方的一個(gè)報(bào)文就把該定時(shí)器清0,與此同時(shí)定時(shí)器定時(shí)加1。若定時(shí)器溢出,則表示對(duì)方故障,否則表示對(duì)方正常。程序包括定時(shí)發(fā)送、
4、故障檢測(cè)及接收處理三部分,它們是并行工作的,流程圖見(jiàn)圖3。通過(guò)對(duì)發(fā)送定時(shí)器及檢測(cè)定時(shí)器定時(shí)間隔及檢測(cè)次數(shù)的設(shè)定,可以決定切換時(shí)間。3 軟件設(shè)計(jì)系統(tǒng)軟件分為現(xiàn)場(chǎng)級(jí)與監(jiān)控級(jí)兩部分,其中監(jiān)控級(jí)包括人機(jī)接口及監(jiān)控級(jí)自動(dòng)化服務(wù)器兩部分,見(jiàn)圖4。下面討論一下軟件設(shè)計(jì)中的關(guān)鍵問(wèn)題。3.1 數(shù)據(jù)傳輸方式及通信可靠性本系統(tǒng)的網(wǎng)絡(luò)操作系統(tǒng)為Windows NT,網(wǎng)絡(luò)通信協(xié)議為T(mén)CP/IP,采用Windows Socket進(jìn)行通信程序的設(shè)計(jì)。Windows Socket有流式與數(shù)據(jù)報(bào)兩種。前者為面向連接服務(wù),后者為無(wú)連接服務(wù)。考慮到監(jiān)控系統(tǒng)的數(shù)據(jù)量較小,而對(duì)實(shí)時(shí)性要求較高,因此采用數(shù)據(jù)報(bào)方式。采用數(shù)據(jù)報(bào)方式的另一點(diǎn)
5、考慮是,它可以廣播。在本系統(tǒng)中,現(xiàn)場(chǎng)工控機(jī)采用定時(shí)廣播的方式傳輸數(shù)據(jù),這種方式有如下優(yōu)點(diǎn):1) 解決了主備機(jī)之間的數(shù)據(jù)鏡像問(wèn)題。2) 不需設(shè)置IP地址。這有兩層含義,一方面發(fā)送方不需知道接收方的地址,因?yàn)镮P廣播地址是個(gè)固定地址;另一方面,各監(jiān)控計(jì)算機(jī)也不必知道各現(xiàn)場(chǎng)計(jì)算機(jī)的IP地址,因?yàn)楫?dāng)它收到廣播后,就可以獲得發(fā)送方的IP地址,然后把它存在一張地址表中,以后向該現(xiàn)場(chǎng)計(jì)算機(jī)發(fā)送指令時(shí)就可以直接從地址表中取出其IP地址。這種處理方法有點(diǎn)類(lèi)似于TCP/IP協(xié)議地址解析中的動(dòng)態(tài)聯(lián)編1。但數(shù)據(jù)報(bào)方式的可靠性不如流式高。對(duì)于現(xiàn)場(chǎng)計(jì)算機(jī),因?yàn)閿?shù)據(jù)定時(shí)廣播,這種可靠性的差別并無(wú)大礙。但對(duì)監(jiān)控計(jì)算機(jī)而言,它
6、發(fā)出一個(gè)請(qǐng)求,必須知道該請(qǐng)求是否被響應(yīng)。因此采用了異步確認(rèn)機(jī)制(見(jiàn)圖5),處理過(guò)程為:在發(fā)送端設(shè)一張表,當(dāng)發(fā)送一個(gè)請(qǐng)求時(shí)為該請(qǐng)求分配(或預(yù)先分配)一個(gè)標(biāo)識(shí),然后把該標(biāo)識(shí)隨同請(qǐng)求一起發(fā)出去,同時(shí)啟動(dòng)超時(shí)定時(shí)器;接收端響應(yīng)該請(qǐng)求后,發(fā)回一個(gè)含有請(qǐng)求標(biāo)識(shí)的應(yīng)答報(bào)文;若接收端收到該應(yīng)答報(bào)文,則刪除表中的請(qǐng)求標(biāo)識(shí),同時(shí)定時(shí)器停止,否則將發(fā)生超時(shí),表示請(qǐng)求未被響應(yīng)。3.2 系統(tǒng)信息的處理監(jiān)控系統(tǒng)中主要包括如下三種數(shù)據(jù):(1) 現(xiàn)場(chǎng)數(shù)據(jù):包括現(xiàn)場(chǎng)信號(hào)測(cè)量值、設(shè)備運(yùn)行狀態(tài)、報(bào)警信息及其它由現(xiàn)場(chǎng)計(jì)算機(jī)產(chǎn)生的數(shù)據(jù)。(2) 控制指令:如控制數(shù)字量輸出、模擬量輸出及現(xiàn)場(chǎng)設(shè)備等的控制字。(3) 系統(tǒng)信息:主要是一些系統(tǒng)
7、管理信息,如控制權(quán)限,監(jiān)控計(jì)算機(jī)登錄狀態(tài)等。這些信息要么由現(xiàn)場(chǎng)計(jì)算機(jī)采集或產(chǎn)生,要么由監(jiān)控計(jì)算機(jī)寫(xiě)入現(xiàn)場(chǎng)計(jì)算機(jī),但最終還是要存入現(xiàn)場(chǎng)計(jì)算機(jī)并向外定時(shí)廣播。前兩種信息由于直接產(chǎn)生于或作用于現(xiàn)場(chǎng),因此存于各自的現(xiàn)場(chǎng)計(jì)算機(jī)。但系統(tǒng)信息是全局信息,是所有站共享的信息,這樣存在著如下問(wèn)題:當(dāng)監(jiān)控計(jì)算機(jī)寫(xiě)入系統(tǒng)信息(如登錄)時(shí),應(yīng)把它發(fā)向哪個(gè)現(xiàn)場(chǎng)計(jì)算機(jī)呢?如果向所有站廣播,就存在著一致性問(wèn)題。正確的做法是:把一臺(tái)現(xiàn)場(chǎng)計(jì)算機(jī)作為系統(tǒng)服務(wù)器,系統(tǒng)信息都寫(xiě)入該服務(wù)器中,然后由它向其它站廣播。那么應(yīng)選擇哪個(gè)現(xiàn)場(chǎng)計(jì)算機(jī),并且使所有站(包括現(xiàn)場(chǎng)級(jí)與監(jiān)控級(jí))都選擇同一個(gè)現(xiàn)場(chǎng)計(jì)算機(jī)?本系統(tǒng)采取一種動(dòng)態(tài)算法實(shí)現(xiàn)了這種選擇,
8、并且當(dāng)該現(xiàn)場(chǎng)計(jì)算機(jī)故障時(shí)自動(dòng)轉(zhuǎn)移到另外的現(xiàn)場(chǎng)計(jì)算機(jī)。具體方法參見(jiàn)圖6:設(shè)一張表及一個(gè)定時(shí)器組,當(dāng)收到一個(gè)站的信息時(shí)就把該站的IP地址存入該表中,同時(shí)把相應(yīng)的定時(shí)器清0;若定時(shí)器溢出,則將該站的IP地址置為無(wú)效值。當(dāng)各計(jì)算機(jī)尋找系統(tǒng)服務(wù)器時(shí),就順序搜索該表,找到第一個(gè)有效IP地址,就把它作為系統(tǒng)服務(wù)器。3.3 監(jiān)控級(jí)自動(dòng)化服務(wù)器的設(shè)計(jì)監(jiān)控級(jí)軟件主要是為操作人員提供人機(jī)界面,但它同時(shí)還要與現(xiàn)場(chǎng)計(jì)算機(jī)進(jìn)行通信,為把界面設(shè)計(jì)分離開(kāi)來(lái),我們采用了Microsoft ActivX自動(dòng)化技術(shù)實(shí)現(xiàn)了這一設(shè)計(jì)思想。這樣,界面設(shè)計(jì)人員可以采用目前流行的各種可視化開(kāi)發(fā)工具集中精力進(jìn)行界面設(shè)計(jì),而且可以根據(jù)需要設(shè)計(jì)不
9、同的界面,在我們的系統(tǒng)中就有兩種界面。自動(dòng)化技術(shù)是Microsoft ActiveX組件技術(shù)中的一種,它包括自動(dòng)化服務(wù)器和自動(dòng)化控制器兩種,其中自動(dòng)化控制器是指使用和操縱自動(dòng)化服務(wù)器的應(yīng)用程序(如VBA),自動(dòng)化技術(shù)通常是指自動(dòng)化服務(wù)器。另一種最為常用的組件技術(shù)是ActiveX控件,但一個(gè)ActiveX控件只能提供一個(gè)IDispatch接口,而一個(gè)自動(dòng)化服務(wù)器可以提供多個(gè)IDispatch接口。通過(guò)IDispatch接口,客戶(hù)程序可以訪(fǎng)問(wèn)該接口的屬性和方法。對(duì)于VBA客戶(hù)程序來(lái)說(shuō),訪(fǎng)問(wèn)IDispatch接口的語(yǔ)法與訪(fǎng)問(wèn)VBA 對(duì)象的語(yǔ)法是一樣的,因此,對(duì)于VBA客戶(hù)程序而言,一個(gè)IDispat
10、ch接口就相當(dāng)于一個(gè)對(duì)象。自動(dòng)化服務(wù)器通常采用層次結(jié)構(gòu)來(lái)組織對(duì)象,Microsoft的許多自動(dòng)化服務(wù)器都是這樣組織的,如數(shù)據(jù)訪(fǎng)問(wèn)對(duì)象DAO。本系統(tǒng)的自動(dòng)化服務(wù)器也采用了這樣一種結(jié)構(gòu),見(jiàn)圖7, 其中Workstation是指監(jiān)控級(jí)各站,Station是指現(xiàn)場(chǎng)級(jí)各站,這只是個(gè)示意圖。這種結(jié)構(gòu)一方面體現(xiàn)了對(duì)象間的層次及包含關(guān)系,另一方面對(duì)象的創(chuàng)建、刪除及組織也比較方便,整個(gè)服務(wù)器只需一個(gè)ProgID來(lái)標(biāo)識(shí)。客戶(hù)程序創(chuàng)建服務(wù)器的過(guò)程為:首先利用ProgID創(chuàng)建頂層對(duì)象(Application),然后利用該頂層對(duì)象提供的方法創(chuàng)建各集合并向其中添加元素,對(duì)集合的操作類(lèi)似于VBA中的collection對(duì)象,主要有Count(),Item(),Add()等幾種。應(yīng)當(dāng)指出,上面所討論的對(duì)象層次結(jié)構(gòu)及集合的概念只是一種設(shè)計(jì)思想,并非有現(xiàn)成的設(shè)計(jì)工具,我們采用VC+ 6.0設(shè)計(jì)了自己的集合類(lèi)及自動(dòng)化服務(wù)器,客戶(hù)端采用VB 6.0。本系統(tǒng)是按照分布式的思想進(jìn)行設(shè)計(jì)的。分布式的特點(diǎn)就在于各節(jié)點(diǎn)是平等的,在數(shù)據(jù)傳輸方式、冗余設(shè)計(jì)及系統(tǒng)服務(wù)器的選擇等處理上都體現(xiàn)了這一思想。本文給出的冗余設(shè)計(jì),是基于網(wǎng)絡(luò)的一種方法,其實(shí)現(xiàn)不依賴(lài)于操作系統(tǒng)、編程語(yǔ)言,是一種比較通用的方法。組件技術(shù)是軟件發(fā)展的方向,本系統(tǒng)利用自動(dòng)化技術(shù)將界面設(shè)計(jì)與底層設(shè)計(jì)分離開(kāi)來(lái),各自進(jìn)行獨(dú)立設(shè)計(jì),充分體現(xiàn)了
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國(guó)嬰兒床市場(chǎng)前景規(guī)模及發(fā)展趨勢(shì)分析報(bào)告
- 2024年港口起重機(jī)采購(gòu)與租賃合同3篇
- 2024年塔吊租賃合同及操作培訓(xùn)服務(wù)3篇
- 茂名職業(yè)技術(shù)學(xué)院《刑法2》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年度物業(yè)服務(wù)合同履行監(jiān)督與違約責(zé)任追究研究3篇
- 2024年標(biāo)準(zhǔn)離婚合同樣本圖片直接下載版B版
- 2024年版測(cè)繪服務(wù)委托書(shū)2篇
- 2024年歌手經(jīng)紀(jì)公司合約3篇
- 2025年蘭州貨運(yùn)從業(yè)資格證考試試題和答案
- 2025公對(duì)公借款合同范本
- 《物流系統(tǒng)規(guī)劃與設(shè)計(jì)》課程教學(xué)大綱
- 護(hù)理質(zhì)控分析整改措施(共5篇)
- 金屬礦山安全教育課件
- 托盤(pán)演示教學(xué)課件
- 中華農(nóng)耕文化及現(xiàn)實(shí)意義
- DB32T 4353-2022 房屋建筑和市政基礎(chǔ)設(shè)施工程檔案資料管理規(guī)程
- DBJ61-T 112-2021 高延性混凝土應(yīng)用技術(shù)規(guī)程-(高清版)
- 2023年高考數(shù)學(xué)求定義域?qū)n}練習(xí)(附答案)
- 農(nóng)產(chǎn)品品牌與營(yíng)銷(xiāo)課件
- 蘇科版一年級(jí)心理健康教育第17節(jié)《生命更美好》教案(定稿)
- 車(chē)輛二級(jí)維護(hù)檢測(cè)單參考模板范本
評(píng)論
0/150
提交評(píng)論