• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于組件技術(shù)的微機監(jiān)測上位機軟件系統(tǒng)

    2011-05-08 08:43:56侯胡的李永燕楊云國
    鐵路計算機應(yīng)用 2011年1期
    關(guān)鍵詞:電務(wù)段組件架構(gòu)

    侯胡的,李永燕,楊云國

    (上海鐵大電信設(shè)備有限公司,上海 200070)

    微機監(jiān)測系統(tǒng),主要用于集中監(jiān)測鐵路信號設(shè)備的運行狀態(tài)和運行參數(shù),目前已經(jīng)廣泛應(yīng)用于我國鐵路行業(yè)。微機監(jiān)測系統(tǒng)組成部分主要有數(shù)據(jù)采集系統(tǒng)和上位機處理軟件系統(tǒng)。而現(xiàn)有的上位機軟件系統(tǒng)主要由3部分組成:站機、服務(wù)器和終端程序。其中站機位于車站機械室內(nèi),通過與下位機軟件的通信,獲取、匯總并分析數(shù)據(jù)采集機采集到的信息,同時上傳到服務(wù)器。服務(wù)器用于轉(zhuǎn)發(fā)站機數(shù)據(jù)到各個終端,同時存儲歷史數(shù)據(jù)。終端則提供查詢數(shù)據(jù)并進(jìn)行綜合顯示的功能。

    1 微機監(jiān)測軟件系統(tǒng)架構(gòu)

    該系統(tǒng)2種軟件架構(gòu)見圖1和圖2。

    圖1表示每一個車站都設(shè)有一臺監(jiān)測主機,上面裝有站機程序。所有站機程序通過使用相同的網(wǎng)絡(luò)應(yīng)用層協(xié)議連接到電務(wù)處、電務(wù)段2個服務(wù)器上;各家終端只連接自己的服務(wù)器。

    圖2表示每一個車站也都裝有一臺監(jiān)測主機,上面裝有站機程序。電務(wù)處終端要查看的各個站機送來的信息,都是經(jīng)過電務(wù)段服務(wù)器轉(zhuǎn)發(fā)給電務(wù)處服務(wù)器,然后再由電務(wù)處服務(wù)器發(fā)送到各個終端;反之,電務(wù)處終端的查詢命令也是先要經(jīng)過電務(wù)處服務(wù)器發(fā)送到電務(wù)段服務(wù)器,再由電務(wù)段服務(wù)器轉(zhuǎn)發(fā)到各個車站。

    圖2 微機監(jiān)測軟件架構(gòu)模式2

    上面2種方式,都有以下一些缺點:

    (1)系統(tǒng)運行效果很大程度上依賴于服務(wù)器的穩(wěn)定性,服務(wù)器出現(xiàn)問題時,整個網(wǎng)絡(luò)看不到數(shù)據(jù)。

    (2)站機層面,所有的設(shè)備驅(qū)動都在一個程序模塊類,可重用性差。各個廠家的設(shè)備接口眾多,缺乏統(tǒng)一的接口協(xié)議, 修改程序影響范圍大。

    (3)終端軟件調(diào)看數(shù)據(jù)如日曲線的數(shù)據(jù)量少,且功能單一。

    (4)與其他既有系統(tǒng),如電務(wù)信息管理系統(tǒng)CSMIS的交互不方便,采用數(shù)據(jù)庫交互的方式效率較低。

    (5)與信號專家診斷系統(tǒng)的交互不方便,采用socket通信的方式較為麻煩。

    2 面向?qū)ο蟮慕M件技術(shù)與問題

    這里的組件技術(shù)是指微軟公司提出的COM/DCOM技術(shù)。

    COM(組件對象模型)是一種以組件為架構(gòu)單元的對象模型,這種模型使系統(tǒng)中各個組件能夠以二進(jìn)制接口的方式進(jìn)行交互。該模型具有3個特性:語言無關(guān)性、進(jìn)程透明性和可重用性。

    DCOM(分布式組件對象模型)是COM的無縫擴展,它支持不同計算機上的組件對象與客戶對象之間的相互通信。對于客戶程序而言,這些組件程序所在的位置是透明的,編程人員不用考慮不同機器上程序之間的通信的具體細(xì)節(jié),而是關(guān)注于系統(tǒng)業(yè)務(wù)本身的實現(xiàn)上。

    有了組件技術(shù),就可以將一些可重用模塊如微機聯(lián)鎖、智能電源屏等I/O驅(qū)動程序做成組件,然后在這些組件的基礎(chǔ)上對現(xiàn)有微機監(jiān)測軟件系統(tǒng)進(jìn)行重新架構(gòu)。

    3 基于COM/DCOM的微機監(jiān)測軟件架構(gòu)

    3.1 系統(tǒng)架構(gòu)

    采用組件技術(shù)后,微機監(jiān)測軟件系統(tǒng)是用戶界面交互程序和實時值、日報表等模塊以及各個I/O驅(qū)動模塊。在基于組件的微機監(jiān)測軟件架構(gòu)里,服務(wù)器程序可以不用,以前的終端程序也就相當(dāng)于一個用戶界面程序去連接遠(yuǎn)端的硬件I/O驅(qū)動模塊。

    具體的模塊劃分和系統(tǒng)結(jié)構(gòu)如圖3。聯(lián)鎖、智能電源屏等I/O驅(qū)動模塊位于軟件系統(tǒng)的最低層,所有這些模塊和CAN總線數(shù)據(jù)收發(fā)模塊Can-ModuleEx(通過CAN協(xié)議收集軌道電壓、絕緣漏流、道岔電流等數(shù)據(jù))組成一個軟件虛擬層,這個虛擬軟件層由許多組件組成。這些組件對外提供接口,通過這些接口,就可以獲取緩存在這些組件中的數(shù)據(jù)。另外,對數(shù)據(jù)的處理過程如報警、實時值、日報表等也可以編寫成獨立模塊,這樣可以針對不同的應(yīng)用場合使用不同的模塊。

    圖3 微機監(jiān)測系統(tǒng)模塊劃分和系統(tǒng)結(jié)構(gòu)

    模塊與模塊之間則是采用隊列數(shù)據(jù)結(jié)構(gòu)進(jìn)行數(shù)據(jù)的交互,交互的接口使用自定義結(jié)構(gòu)體。比如變化開關(guān)量在idl文件中的定義如下:

    typedef

    [

    uuid(7E42E7AD-2C3F-48ae-B5EEE1979493E6A6),helpstring("變化開關(guān)量結(jié)構(gòu)"),

    ]

    struct COM_DigitChangeQueueTemplate

    {

    [helpstring("分機號")]BYTE FenJiNo;

    [helpstring("開關(guān)量序號(最高位表示變化狀態(tài))")] WORD DigitNo;

    }COM_DigitChangeQueueTemplate;然后在程序中使用封裝好的隊列類取出數(shù)據(jù):

    COM_DigitStatusQueueTemplate *pDigit;

    OutQueue(DigitStatusQueueNo,pDigit);

    對于在有多個微機監(jiān)測廠商的環(huán)境里,如電務(wù)段里往往會有多個廠商的軟件和設(shè)備,在新的軟件架構(gòu)下就不需要另外再設(shè)立各自的服務(wù)器,而是只要將用戶界面主程序直接連接到相應(yīng)的車站機中的相應(yīng)的I/O模塊即可。

    重新架構(gòu)后的微機監(jiān)測軟件系統(tǒng)架構(gòu)如圖4。

    圖4 新微機監(jiān)測軟件架構(gòu)圖

    3.2 多線程與組件的關(guān)系

    由于微機監(jiān)測軟件系統(tǒng)采用了MFC多線程方式實現(xiàn),因此不可避免的牽涉到多線程調(diào)用組件的問題。在本軟件系統(tǒng)中,我們使用了STA(單線程套間)啟動線程,同時通過列集和散集將COM對象的指針傳遞到各個線程。

    (1)在主線程里獲取組件的接口指針,比如將開關(guān)量組件指針pDigit通過列集封送成IStream接口指針pStream:

    IStream *pStream = NULL;

    static IDigitComp *pDigit;

    HRESULT hr = ::CoMarshalInterThreadInterfaceInStream(__uuidof(IDigitComp), pDigit,&pStream);

    (2)通過散集在各功能模塊線程中內(nèi)部使用和釋放該接口指針:

    DWORD WINAPI DigitProcMain(LPVOID pWndView)

    {

    IStream *pStream = (IStream*) pWndView;

    HRESULT hr=::CoGetInterfaceAnd-Release-Stream(pStream, __uuidof(IDigitComp), (void**)&pDigit);

    其他邏輯處理過程 ……

    }

    4 微機監(jiān)測采用組件技術(shù)的難點

    鐵路上對信號設(shè)備的監(jiān)測具有采集點眾多,數(shù)據(jù)量較大,各個模塊之間關(guān)聯(lián)緊密,實時性要求高等特點。

    微機監(jiān)測系統(tǒng)已經(jīng)開發(fā)了10多年,鐵路內(nèi)有數(shù)千個微機監(jiān)測系統(tǒng)使用的都是老的系統(tǒng)架構(gòu),在這基礎(chǔ)上又有一系列應(yīng)用層通信協(xié)議,而且每個微機監(jiān)測廠家又有自己的一些特色功能,這些都使得微機監(jiān)測的功能變得比較復(fù)雜。

    5 微機監(jiān)測軟件使用組件技術(shù)的優(yōu)勢與不利

    采用組件技術(shù)的優(yōu)勢:

    (1)所有的驅(qū)動程序都被獨立出來,如同在硬件層之上行成一個與硬件無關(guān)的虛擬層,在此基礎(chǔ)上可以形成統(tǒng)一接口協(xié)議。

    (2)由于這些組件繼承了自動化接口IDispatch,因此可以采用ASP或者JSP進(jìn)行編程,通過Web界面與微機監(jiān)測系統(tǒng)交互。

    (3)一定程度上增強程序的穩(wěn)定性,因為當(dāng)出現(xiàn)異常時,可以隔離到個別模塊,其他模塊仍然可以照常運行,從而增強軟件系統(tǒng)的整體穩(wěn)定性。

    (4)更容易添加擴展功能,如信號故障診斷分析等。

    (5)可以不用專門的終端軟件,甚至服務(wù)器軟件。

    (6)不再需要下載配置庫,因此站機配置的改變會實時反映出來。

    采用組件技術(shù)的不利之處:

    (1)軟件開發(fā)和運行環(huán)境的配置較為復(fù)雜,軟件調(diào)試不如以前方便。

    (2)網(wǎng)絡(luò)中各個主機須有相同的用戶名和密碼,或者需要配置網(wǎng)絡(luò)的工作域。

    6 結(jié)束語

    重新設(shè)計后的微機監(jiān)測軟件系統(tǒng)能夠使各廠家統(tǒng)一接口協(xié)議,甚至制定類似于OPC (OLE Process Control) 的統(tǒng)一接口協(xié)議。由硬件廠家提供I/O驅(qū)動程序模塊和接口。通過連接到不同的組件上,可以實現(xiàn)雙網(wǎng)冗余系統(tǒng)。

    [1] 趙相榮,李 萍. TJWX-2000型信號微機監(jiān)測系統(tǒng)[M]. 北京:中國鐵道出版社, 2001.

    [2] 潘愛民. COM原理與應(yīng)用[M]. 北京:清華大學(xué)出版社,1999.

    [3] Christopher Tavares. 深入解析ATL[M]. 2版. 北京:電子工業(yè)出版社,2007.

    猜你喜歡
    電務(wù)段組件架構(gòu)
    基于FPGA的RNN硬件加速架構(gòu)
    無人機智能巡檢在光伏電站組件診斷中的應(yīng)用
    能源工程(2022年2期)2022-05-23 13:51:50
    功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實踐
    汽車工程(2021年12期)2021-03-08 02:34:30
    鐵路電務(wù)段安全風(fēng)險管理研究
    新型碎邊剪刀盤組件
    重型機械(2020年2期)2020-07-24 08:16:16
    U盾外殼組件注塑模具設(shè)計
    LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實現(xiàn)
    鐵路網(wǎng)絡(luò)信息安全控制策略
    鐵路電務(wù)段安全風(fēng)險管理與應(yīng)用分析
    中國新通信(2016年8期)2016-06-03 09:11:02
    風(fēng)起新一代光伏組件膜層:SSG納米自清潔膜層
    太陽能(2015年11期)2015-04-10 12:53:04
    井研县| 慈利县| 屏东县| 清涧县| 固镇县| 阳原县| 石门县| 通河县| 宁都县| 仲巴县| 河西区| 永丰县| 察隅县| 固阳县| 伊川县| 东乡族自治县| 宾阳县| 永仁县| 若羌县| 镇宁| 克拉玛依市| 苏尼特左旗| 福鼎市| 江口县| 江孜县| 平谷区| 山阴县| 阿巴嘎旗| 江阴市| 原平市| 陈巴尔虎旗| 喀喇沁旗| 满城县| 玉门市| 蒲江县| 颍上县| 清徐县| 安塞县| 阳西县| 林口县| 中西区|