• 
    

    
    

      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
      略阳县| 丰原市| 阳高县| 图木舒克市| 微山县| 黄山市| 延寿县| 临沭县| 莒南县| 宣威市| 开阳县| 田阳县| 临夏县| 西和县| 宝应县| 宜黄县| 邢台县| 日喀则市| 贵阳市| 前郭尔| 九江县| 和平区| 湟源县| 比如县| 伊宁县| 沙洋县| 曲麻莱县| 迁西县| 贺兰县| 南郑县| 抚顺县| 满洲里市| 栾川县| 鹤壁市| 库尔勒市| 乾安县| 花莲市| 舟山市| 满洲里市| 崇仁县| 沭阳县|