<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 一個(gè)分布式監控系統的軟件設計

一個(gè)分布式監控系統的軟件設計

作者: 時(shí)間:2016-12-22 來(lái)源:網(wǎng)絡(luò ) 收藏

摘 要討論了一個(gè)監控系統的軟件設計。給出了系統結構、冗余設計及軟件設計要點(diǎn)。

本文引用地址:http://dyxdggzs.com/article/201612/332865.htm

關(guān)鍵詞: 式系統 網(wǎng)絡(luò )通信ActiveX自動(dòng)化

1 系統結構

系統結構見(jiàn)圖1,這是一個(gè)兩級式監控系統。在現場(chǎng)級兩臺互為熱備的現場(chǎng)計算機通過(guò)現場(chǎng)總線(xiàn)與現場(chǎng)設備相連,實(shí)時(shí)采集現場(chǎng)數據并向現場(chǎng)設備傳送監控級發(fā)來(lái)的控制指令,同時(shí)把各種實(shí)時(shí)信息發(fā)送到監控級。在監控級,各監控計算機通過(guò)TCP/IP以太網(wǎng)與各現場(chǎng)計算機相連以獲取現場(chǎng)數據,并提供GUI以便操作人員監視及控制現場(chǎng)設備。

2 冗余設計

對于可靠性要求較高的系統,常常采用冗余設計以提高可靠性。本系統的現場(chǎng)計算機為雙機熱備,監控級計算機也可根據需要進(jìn)行雙機熱備。

雙機熱備必須解決故障識別和狀態(tài)鏡象兩個(gè)問(wèn)題,但為實(shí)現快速切換,應盡量簡(jiǎn)化算法,同時(shí)盡量減少交換信息,因此如果狀態(tài)信息不是很重要,則不必隨主備信息一起傳送?;谏鲜鏊枷?,定義的主備機報文格式見(jiàn)圖2,各字段的含義如下:

(1)信息標識:標識報文類(lèi)型,共定義了三種報文:

a)普通報文:由主備機正常進(jìn)行交互用的報文,稱(chēng)主機發(fā)往備機的報文為請求報文,備機發(fā)往主機的報文為應答報文。

b)切換報文:當主機想轉為備機時(shí),發(fā)送此報文。該報文是非常必要的,一種情況是當現場(chǎng)計算機與現場(chǎng)設備失去聯(lián)系時(shí),就需要主動(dòng)進(jìn)行切換。

c)退出報文:當某一臺機器退出時(shí),應發(fā)送此報文,否則對方將認為該機故障。

(2)主備標志:指示本站是否為主機,“1”表示主機,“0”表示備機。

(3)判決標志:當主備機的主備標志一致,即兩者同時(shí)為主機或同時(shí)為備機時(shí),應根據判決標志進(jìn)行切換,該標志可以預先設定為一個(gè)值,也可以取IP地址或啟動(dòng)時(shí)間作為判決標志。判決條件可以取大于或小于。

具體實(shí)現方法為:主機定時(shí)向備機發(fā)送請求報文,備機收到后就發(fā)一個(gè)應答報文;同時(shí)另設一定時(shí)器,當收到對方的一個(gè)報文就把該定時(shí)器清0,與此同時(shí)定時(shí)器定時(shí)加1。若定時(shí)器溢出,則表示對方故障,否則表示對方正常。程序包括定時(shí)發(fā)送、故障檢測及接收處理三部分,它們是并行工作的,流程圖見(jiàn)圖3。通過(guò)對發(fā)送定時(shí)器及檢測定時(shí)器定時(shí)間隔及檢測次數的設定,可以決定切換時(shí)間。

3 軟件設計

系統軟件分為現場(chǎng)級與監控級兩部分,其中監控級包括人機接口及監控級自動(dòng)化服務(wù)器兩部分,見(jiàn)圖4。下面討論一下軟件設計中的關(guān)鍵問(wèn)題。

3.1 數據傳輸方式及通信可靠性

本系統的網(wǎng)絡(luò )操作系統為Windows NT,網(wǎng)絡(luò )通信協(xié)議為T(mén)CP/IP,采用WindowsSocket進(jìn)行通信程序的設計。Windows Socket有流式與數據報兩種。前者為面向連接服務(wù),后者為無(wú)連接服務(wù)??紤]到監控系統的數據量較小,而對實(shí)時(shí)性要求較高,因此采用數據報方式。

采用數據報方式的另一點(diǎn)考慮是,它可以廣播。在本系統中,現場(chǎng)工控機采用定時(shí)廣播的方式傳輸數據,這種方式有如下優(yōu)點(diǎn):

1) 解決了主備機之間的數據鏡像問(wèn)題。

2) 不需設置IP地址。這有兩層含義,一方面發(fā)送方不需知道接收方的地址,因為IP廣播地址是個(gè)固定地址;另一方面,各監控計算機也不必知道各現場(chǎng)計算機的IP地址,因為當它收到廣播后,就可以獲得發(fā)送方的IP地址,然后把它存在一張地址表中,以后向該現場(chǎng)計算機發(fā)送指令時(shí)就可以直接從地址表中取出其IP地址。這種處理方法有點(diǎn)類(lèi)似于TCP/IP協(xié)議地址解析中的動(dòng)態(tài)聯(lián)編1。但數據報方式的可靠性不如流式高。對于現場(chǎng)計算機,因為數據定時(shí)廣播,這種可靠性的差別并無(wú)大礙。但對監控計算機而言,它發(fā)出一個(gè)請求,必須知道該請求是否被響應。因此采用了異步確認機制(見(jiàn)圖5),處理過(guò)程為:在發(fā)送端設一張表,當發(fā)送一個(gè)請求時(shí)為該請求分配(或預先分配)一個(gè)標識,然后把該標識隨同請求一起發(fā)出去,同時(shí)啟動(dòng)超時(shí)定時(shí)器;接收端響應該請求后,發(fā)回一個(gè)含有請求標識的應答報文;若接收端收到該應答報文,則刪除表中的請求標識,同時(shí)定時(shí)器停止,否則將發(fā)生超時(shí),表示請求未被響應。

3.2 系統信息的處理

監控系統中主要包括如下三種數據:

(1)現場(chǎng)數據:包括現場(chǎng)信號測量值、設備運行狀態(tài)、報警信息及其它由現場(chǎng)計算機產(chǎn)生的數據。

(2)控制指令:如控制數字量輸出、模擬量輸出及現場(chǎng)設備等的控制字。

(3)系統信息:主要是一些系統管理信息,如控制權限,監控計算機登錄狀態(tài)等。

這些信息要么由現場(chǎng)計算機采集或產(chǎn)生,要么由監控計算機寫(xiě)入現場(chǎng)計算機,但最終還是要存入現場(chǎng)計算機并向外定時(shí)廣播。前兩種信息由于直接產(chǎn)生于或作用于現場(chǎng),因此存于各自的現場(chǎng)計算機。但系統信息是全局信息,是所有站共享的信息,這樣存在著(zhù)如下問(wèn)題:當監控計算機寫(xiě)入系統信息(如登錄)時(shí),應把它發(fā)向哪個(gè)現場(chǎng)計算機呢?如果向所有站廣播,就存在著(zhù)一致性問(wèn)題。正確的做法是:把一臺現場(chǎng)計算機作為系統服務(wù)器,系統信息都寫(xiě)入該服務(wù)器中,然后由它向其它站廣播。那么應選擇哪個(gè)現場(chǎng)計算機,并且使所有站(包括現場(chǎng)級與監控級)都選擇同一個(gè)現場(chǎng)計算機?本系統采取一種動(dòng)態(tài)算法實(shí)現了這種選擇,并且當該現場(chǎng)計算機故障時(shí)自動(dòng)轉移到另外的現場(chǎng)計算機。

具體方法參見(jiàn)圖6:設一張表及一個(gè)定時(shí)器組,當收到一個(gè)站的信息時(shí)就把該站的IP地址存入該表中,同時(shí)把相應的定時(shí)器清0;若定時(shí)器溢出,則將該站的IP地址置為無(wú)效值。當各計算機尋找系統服務(wù)器時(shí),就順序搜索該表,找到第一個(gè)有效IP地址,就把它作為系統服務(wù)器。

3.3 監控級自動(dòng)化服務(wù)器的設計

監控級軟件主要是為操作人員提供人機界面,但它同時(shí)還要與現場(chǎng)計算機進(jìn)行通信,為把界面設計分離開(kāi)來(lái),我們采用了MicrosoftActivX自動(dòng)化技術(shù)實(shí)現了這一設計思想。這樣,界面設計人員可以采用目前流行的各種可視化開(kāi)發(fā)工具集中精力進(jìn)行界面設計,而且可以根據需要設計不同的界面,在我們的系統中就有兩種界面。

自動(dòng)化技術(shù)是Microsoft ActivX組件技術(shù)中的一種,它包括自動(dòng)化服務(wù)器和自動(dòng)化控制器兩種,其中自動(dòng)化控制器是指使用和操縱自動(dòng)化服務(wù)器的應用程序(如VBA),自動(dòng)化技術(shù)通常是指自動(dòng)化服務(wù)器。另一種最為常用的組件技術(shù)是ActiveX控件,但一個(gè)ActiveX控件只能提供一個(gè)lDispatch接口,而一個(gè)自動(dòng)化服務(wù)器可以提供多個(gè)lDispatch接口。通過(guò)lDispatch接口,客戶(hù)程序可以訪(fǎng)問(wèn)該接口的屬性和方法。對于VBA客戶(hù)程序來(lái)說(shuō),訪(fǎng)問(wèn)lDispatch接口的語(yǔ)法與訪(fǎng)問(wèn)VBA對象的語(yǔ)法是一樣的,因此,對于VBA客戶(hù)程序而言,一個(gè)lDispatch接口就相當于一個(gè)對象。

自動(dòng)化服務(wù)器通常采用層次結構來(lái)組織對象,Microsoft的許多自動(dòng)化服務(wù)器都是這樣組織的,如數據訪(fǎng)問(wèn)對象DAO。本系統的自動(dòng)化服務(wù)器也采用了這樣一種結構,見(jiàn)圖7, 其中Workstation是指監控級各站,Station是指現場(chǎng)級各站,這只是個(gè)示意圖。這種結構一方面體現了對象間的層次及包含關(guān)系,另一方面對象的創(chuàng )建、刪除及組織也比較方便,整個(gè)服務(wù)器只需一個(gè)ProgID來(lái)標識。

客戶(hù)程序創(chuàng )建服務(wù)器的過(guò)程為:首先利用ProgID創(chuàng )建頂層對象(Application),然后利用該頂層對象提供的方法創(chuàng )建各集合并向其中添加元素,對集合的操作類(lèi)似于VBA中的Collection對象,主要有Count(),ltem(),Add()等幾種。應當指出,上面所討論的對象層次結構及集合的概念只是一種設計思想,并非有現成的設計工具,我們采用VC++6.0設計了自己的集合類(lèi)及自動(dòng)化服務(wù)器,客戶(hù)端采用VB6.0

本系統是按照分布式的思想進(jìn)行設計的。分布式的特點(diǎn)就在于各節點(diǎn)是平等的,在數據傳輸方式、冗余設計及系統服務(wù)器的選擇等處理上都體現了這一思想。本文給出的冗余設計,是基于網(wǎng)絡(luò )的一種方法,其實(shí)現不依賴(lài)于操作系統、編程語(yǔ)言,是一種比較通用的方法。組件技術(shù)是軟件發(fā)展的方向,本系統利用自動(dòng)化技術(shù)將界面設計與底層設計分離開(kāi)來(lái),各自進(jìn)行獨立設計,充分體現了組件技術(shù)的優(yōu)越性。

參考文獻

1 周明天,汪文勇. TCP/IP網(wǎng)絡(luò )原理與技術(shù).北京:清華大學(xué)出版社

2 (美)Jerry Anderson. visual C++5 ActiveX編程指南.北京:清華大學(xué)出版社

3 (美)Peter Norton, Rob McGregor.MFC開(kāi)發(fā)windows95/NT4應用程序.北京:清華大學(xué)出版社

(收稿日期:1999-06-16)

 

 



關(guān)鍵詞: 分布

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>