亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        組件對象模型技術在地鐵綜合監(jiān)控系統(tǒng)的應用

        2016-06-01 01:05:20劉衛(wèi)紅
        城市軌道交通研究 2016年1期
        關鍵詞:軌道交通

        李 貴 劉衛(wèi)紅 金 旭 江 輝

        (浙江浙大中控信息技術有限公司,310053,杭州∥第一作者,工程師)

        組件對象模型技術在地鐵綜合監(jiān)控系統(tǒng)的應用

        李 貴劉衛(wèi)紅金 旭江 輝

        (浙江浙大中控信息技術有限公司,310053,杭州∥第一作者,工程師)

        摘 要闡述了組件對象模型(COM)技術在地鐵綜合監(jiān)控系統(tǒng)軟件平臺開發(fā)中的應用情況,詳述了COM技術在基于組態(tài)軟件平臺Cimplicity HMI上進行二次開發(fā)時的應用。通過與傳統(tǒng)開發(fā)模式的對比,展現(xiàn)了COM技術在Cimplicity HMI平臺上開發(fā)的優(yōu)勢。COM技術可解決傳統(tǒng)開發(fā)模式存在的代碼碎片化、控制代碼與畫面視圖嚴重耦合、代碼編號不方便、調(diào)試困難、難以版本管理、代碼無法保密等問題,具有較好的實用性,值得推廣。

        關鍵詞軌道交通;綜合監(jiān)控;組件對象模型;組態(tài)軟件平臺

        Author's address Zhejiang SUPCON Information Co.,Ltd,310053,Hangzhou,China

        目前,優(yōu)秀的上位機組態(tài)軟件較多,由GE IP公司開發(fā)的Cimplicity HMI便是其中之一。Cimplicity HMI支持OLE、COM組件(Active X DLL),畫面編輯簡單易用,可提供報警、日志、趨勢、遠程瀏覽、冗余等功能。

        由于應用行業(yè)的不同,每個監(jiān)控工程的功能是不同的。Cimplicity HMI可以創(chuàng)建程序腳本正是解決此問題的關鍵。它允許用戶用類似于Visual Basic類型的編程語言(Basic Control Language,簡為“BCL”)在其提供的編譯環(huán)境(Basic Control Environment,簡為“BCE”)中創(chuàng)建程序。BCE提供了一個用戶根據(jù)自身需求進行二次開發(fā)的編譯環(huán)境,用戶可以在BCE的全局模塊或者各個畫面中創(chuàng)建變量、結構體、函數(shù)等代碼。

        目前流行的做法是:分別在每個畫面中創(chuàng)建相應的功能函數(shù),部分公共函數(shù)從全局模塊中調(diào)用。GE官方提供的二次開發(fā)樣例也是如此。但是,這樣的開發(fā)模式會導致代碼碎片化、代碼編寫調(diào)試困難、版本管理混亂等一系列問題。本文以在Cimplicity HMI上進行綜合監(jiān)控軟件平臺客戶端(下稱“客戶端”)的二次開發(fā)為例,介紹一種以COM組件嵌入BCE的全新開發(fā)方式,很好地解決了這些問題。

        1 Cimplicity HMI平臺二次開發(fā)的傳統(tǒng)模式

        BCE提供了一個與Visual Basic語言極為相似的用戶命令環(huán)境,內(nèi)置了一個超過600個標準功能函數(shù)的程序集,并且提供相應的訪問接口。通過這些接口,可以訪問或控制Cimplicity的數(shù)據(jù)點、報警和錯誤記錄等數(shù)據(jù)。通過BCE可以實現(xiàn)算術運算、邏輯運算、字符串處理、文件處理、數(shù)組處理、DDE通信、Windows界面交互等各種功能。

        1.1傳統(tǒng)開發(fā)模型

        在BCE提供的開發(fā)環(huán)境下,傳統(tǒng)的二次開發(fā)模型如圖1所示。

        工程組態(tài)時,一個畫面通常會繪制多個圖元,包括普通的矩形、多邊形、圓形、圖片、按鈕、文本、OLE(對象連接與嵌入)對象、微軟.NET控件、趨勢控件等。當圖元需要執(zhí)行或響應一個操作時,就需要在相應的圖元上綁定一個對應的腳本。腳本可以調(diào)用一個公共的全局模塊腳本,由此可以實現(xiàn)某些公共變量或者函數(shù)的共享和控制。腳本可以控制畫面中的各個圖元的多種狀態(tài),如位置、大小、顏色、文本等。

        1.2傳統(tǒng)開發(fā)模型存在的問題

        (1)代碼碎片化。BCE并沒有提供一個類似于VC++或者VB的集成編譯環(huán)境,所有的代碼都分布在全局腳本以及各個畫面的圖元中,如果畫面較多,且每張畫面中的圖元層次和數(shù)量也較多時,代碼編寫、維護的工作量將明顯增大。特別是像地鐵行業(yè),各個圖元的組態(tài)都是比較復雜的,以電力監(jiān)控系統(tǒng)中的一個電動開關為例,不僅要考慮開關的開、關狀態(tài),還要考慮開關設備的斷線、維修等狀態(tài),每個狀態(tài)都需要對此開關圖元中的子圖元進行組態(tài),因此層次可能較深,數(shù)量也可能較多。類似的圖元可能在整個監(jiān)控平臺中的很多地方出現(xiàn),意味著相應的代碼可能分布在不同的地方。這樣就導致了代碼的碎片化現(xiàn)象。代碼碎片化給代碼的維護和調(diào)試帶來了很大的困難,因為調(diào)試前必須找到相應的代碼進行斷點,而當圖元結構層次和數(shù)量都很多時,工作量大大增加。

        (2)控制代碼與畫面視圖嚴重耦合。此問題造成的后果是:代碼編寫和畫面制作無法很好地由兩組人員完成,且改動也將受到牽制。必須先由畫面組態(tài)人員繪制完畫面后,開發(fā)人員才能進行相應的編碼工作;且一旦涉及更改,必須由畫面組態(tài)人員再次提供相應的畫面后,方能進行代碼更改,否則將導致混亂的對應狀態(tài)。

        (3)BCE存在缺陷。BCE雖然是一個腳本代碼的編寫環(huán)境,卻存在以下問題:①代碼沒有智能提示;②函數(shù)有順序限制;③無法跨模塊使用全局變量;④不能使用Byte數(shù)據(jù)類型;⑤函數(shù)不能返回數(shù)組;⑥不能使用Replace、Split等字符串常用函數(shù)。此缺陷造成無法有效、高效地進行代碼編寫。

        (4)調(diào)試工作困難。BCE編譯環(huán)境中,不能像普通編譯器一樣對任意編寫的函數(shù)進行斷點調(diào)試,必須在每處函數(shù)調(diào)用入口設置斷點后才能進入需要的調(diào)試狀態(tài)。另外,編譯器提供的監(jiān)視功能只能監(jiān)視數(shù)值和文本,當監(jiān)視對象類型的變量時,不能顯示對象的屬性及屬性值,對解決問題時的調(diào)試幾乎沒有作用。

        (5)版本管理困難。BCE沒有單個整體代碼工程的概念,所有的代碼“散落”在各畫面的圖元中,所以代碼的版本管理比較困難。

        (6)代碼公開化問題。代碼直接綁定到圖元中,導致接觸到客戶端的人都可以點開各個圖元而看到里面綁定的腳本代碼,對代碼的規(guī)范管理存在一定風險。

        2 COM技術在Cimplicity HMI平臺二次開發(fā)中的應用

        COM(Component Object Model,組件對象模型)是一種以組件為發(fā)布單元的對象模型,可使各軟件組件用一種統(tǒng)一的方式進行交互。COM既提供了組件之間進行交互的規(guī)范,也提供了實現(xiàn)交互的環(huán)境,并且組件對象之間交互的規(guī)范不依賴于任何特定的語言。

        客戶端使用Visual Basic 6.0作為編譯環(huán)境,創(chuàng)建Active X DLL工程,最終編譯形成單獨的DLL文件,進行開發(fā)、調(diào)試、編譯、部署等工作。

        2.1COM開發(fā)模型

        整體的開發(fā)模型如圖2所示??梢?,COM開發(fā)模型不再將功能腳本寫到每個圖元里,而是將全部的具體實現(xiàn)的功能代碼都放到COM組件中,實現(xiàn)代碼的集中管理。在每個圖元中只有標準的調(diào)用代碼,BCE全局腳本中也只有統(tǒng)一的調(diào)用代碼,真正實現(xiàn)的代碼全部移入COM組件工程中。其結合軟件設計模式中的“簡單類工廠模式”,動態(tài)地創(chuàng)建相應的類,有效地實現(xiàn)了內(nèi)存管理并取得了良好的系統(tǒng)性能。

        2.2COM開發(fā)模型實現(xiàn)

        COM組件有三種形式:①進程內(nèi)(組件以DLL方式存在,它與客戶在同一進程內(nèi));②進程間(以EXE方式存在,它與客戶在同一臺機器卻不在同一進程內(nèi));③不同機器上以EXE方式存在。不論何種形式,客戶都不必知道使用的是哪種組件,因為COM組件對象是位置透明的。本文詳細介紹采用第一種COM組件形式,現(xiàn)實地鐵綜合監(jiān)控系統(tǒng)軟件平臺客戶端的二次開發(fā)。具體構成如圖3所示。

        整體函數(shù)調(diào)用和控制的實現(xiàn)原理,如圖4所示。

        圖2 COM開發(fā)模型

        圖3 COM組件存在形式

        詳細實現(xiàn)過程如圖5所示。

        首先,需要響應圖元的事件必須在相應的圖元上綁定執(zhí)行腳本。圖元所能觸發(fā)的事件僅是Cimplicity提供的20多種事件,所以圖元需要綁定的腳本也就20多個代碼段。以響應鼠標點擊事件為例,畫面圖元中On MouseUp調(diào)用全局腳本中的On MouseUpEx函數(shù)。

        gISCSLib在全局腳本中,主要用于存放其模塊的20多個事件的響應調(diào)用對象。它是后臺COM組件ISCSLib的一個實例。ISCSLib工程中的Main類包含了On MouseUp集中響應函數(shù),此函數(shù)中實現(xiàn)簡單類工廠的代碼如下:

        Select Case sScr Name

        Case"startmimic.cim"

        Set oScrCOM = New Scr_StartMimmic

        Case"navigator.cim"

        Set oScrCOM = New Scr_NaviSymbols

        End Select

        CallByName oScrCOM,"OnMouseUp",VbCallType.VbMethod,X,Y,flags,oControl

        在On MouseUp事件中通過簡單類工廠模式,很好地解決了多類型對象的實例化問題,并最終通過執(zhí)行的CallBy Name函數(shù),利用“反射”機制調(diào)用具體類中的函數(shù),達到控制或者執(zhí)行某個具體功能函數(shù)的目的。

        圖4 COM模型調(diào)用原理

        圖5 COM模型實現(xiàn)過程

        2.3COM開發(fā)模型的優(yōu)勢

        使用COM技術在Cimplicity HMI平臺上進行二次開發(fā),非常巧妙地克服了傳統(tǒng)開發(fā)模式的各種缺點。

        (1)代碼管理集約化。具體現(xiàn)實代碼被全部轉移到COM工程后,一個工程就能管理所有的實現(xiàn)代碼,并可充分利用VB編譯器的各種功能,方便代碼的編寫和維護,大大提高工作效率。

        (2)控制代碼與畫面視圖解耦。圖元和全局腳本中只剩少量的“接口型”標準調(diào)用代碼,組態(tài)人員可以在畫圖時直接將代碼復制到圖元腳本中,并不用關心后續(xù)的代碼編寫;腳本開發(fā)人員也不再受制于圖元中的代碼,具體的代碼全部編寫到COM工程中即可。圖形組態(tài)人員和代碼開發(fā)人員互不干擾,可以并行開,大大提高了工作效率,降低了兩者的工作沖突。

        (3)標準VB開發(fā)。絕大多數(shù)代碼被轉移到Visual Basic 6.0開發(fā)的COM工程中,人員只要使用VB開發(fā)環(huán)境即可輕松編碼。

        (4)調(diào)試方便。將COM工程設置為“Active X DLL”工程類型,結合Cimplicity的BCE進行代碼聯(lián)調(diào),所有在COM工程中的斷點都可以正常攔截并調(diào)試,所有類型的變量都可以正常查看,調(diào)試十分方便。

        (5)方便版本管理。所有功能代碼集中在COM工程中,可方便地進行VB工程的代碼版本管理工作。

        (6)代碼隱藏。COM工程最后編譯生成的是一個DLL文件,關鍵性的代碼被隱藏,從而非常有效地保護了軟件代碼不被泄露。

        3 結語

        本文提出了一種基于COM技術開發(fā)地鐵綜合監(jiān)控軟件的方案。該方案基于Cimplicity HMI工控組態(tài)軟件平臺,結合Cimplicity支持COM組件的特性,利用COM技術開發(fā)Active X DLL,解決了傳統(tǒng)開發(fā)模式的諸多問題,可大大節(jié)省整個系統(tǒng)的研發(fā)時間,以及后期系統(tǒng)的維護費用。

        傳統(tǒng)開發(fā)模式存在代碼碎片化、控制代碼與畫面視圖嚴重耦合、代碼編寫不方便、調(diào)試困難、難以版本管理、代碼無法保密等的缺點,COM開發(fā)模式可很好地解決這些問題。該技術可運用于不同行業(yè)中相類似的開發(fā)過程,能解決非常實際的開發(fā)問題,值得推廣。

        參考文獻

        [1] Curland Matthew J,Storage,Bill.Advanced Visual Basic 6 [M].涂翔云,劉玉印,劉巖,譯.北京:中國電力出版社,2001.

        [2] 程杰.大話設計模式[M].北京:清華大學出版社,2007.

        [3] 張婭.COM研究及其在組態(tài)軟件中的應用[J].微計算機信息,2006,22(34):49.

        [4] 王海剛.COM中的設計模式[J].計算機仿真,2004,21 (5):184.

        [5] 歐建斌.工廠設計的模式研究[J].微型電腦應用,2010,26 (12):15.

        [6] 張偉.用VB實現(xiàn)COM組件的包容[J].計算機應用,2001,21 (10):99.

        [7] 吳東慶.反射機制下類工廠模式的實現(xiàn)與研究[J].計算機應用,2006,26(3):705.

        Application of COM Technology to Metro Integrated Supervisory Control System

        Li Gui,Liu Weihong,Jin Xu,Jiang Hui

        AbstractThe application of COM technology in the soft platform development of metro ISCSis described,the application and research findings of COM technology on the redevelopment based on Cimplicity HMI software platform are introduced in detail.Compared with traditional application development,the technological advantages of COM development on Cimplicity HMIsoftware platform are fully displayed.It could solve many problems existing in the traditional mode such assevere coupling of coultrol code and picture,debugging difficulties,vulnerable code and so on,thus has good practicability and promotional value.

        Key wordsurban rail transit;integrated supervisory control system(ISCS);component object model(COM);Cimplicity HMI software platform

        中圖分類號U 29-39

        DOI:10.16037∕j.1007-869x.2016.01.025

        收稿日期:(2014-06-03)

        猜你喜歡
        軌道交通
        軌道交通產(chǎn)品CE認證論述
        城市軌道交通投融資模式分析
        水性漆在軌道交通輪對上的應用研究
        上海涂料(2021年5期)2022-01-15 06:09:22
        高速軌道交通發(fā)展趨勢
        軌道交通出入段接□進路設計選型的探討
        漏泄電纜在軌道交通無線通信系統(tǒng)中的應用
        軌道交通安防系統(tǒng)設計方案的思考
        軌道交通的寬窄帶融合無線調(diào)度系統(tǒng)
        PPP模式在我國軌道交通建設中的應用
        消費導刊(2018年10期)2018-08-20 02:56:32
        國外軌道交通通信系統(tǒng)簡述
        電子測試(2018年1期)2018-04-18 11:53:51
        亚洲天堂av三区四区不卡| 亚洲最新版无码AV| 91综合久久婷婷久久| 日韩精品自拍一区二区| 国产tv不卡免费在线观看| 精品久久久久久无码中文野结衣 | 精品亚洲成a人在线观看| 韩国无码av片在线观看网站| 亚洲人成精品久久久久| 亚洲全国最大的人成网站| 亚洲午夜狼人综合影院| 天天夜碰日日摸日日澡| 久久91综合国产91久久精品| 精品国产夫妻自拍av| 亚洲成在人线视av| 先锋影音最新色资源站| 国产目拍亚洲精品一区二区| 亚洲av本道一本二本三区| 欧美日韩在线视频一区| 综合久久给合久久狠狠狠97色 | 8ⅹ8x擦拨擦拨成人免费视频| 国产在线精品福利大全| 一本色道加勒比精品一区二区| 国产欧美精品一区二区三区四区 | 在线视频一区二区日韩国产| 亚洲成在人网站天堂日本| 人人爽久久久噜人人看| 精品国产乱码久久久软件下载| 粉嫩小泬无遮挡久久久久久| 国产精品成人自拍在线观看| 97久久超碰国产精品旧版| av超碰在线免费观看| 国产精品一区一区三区| 中文字幕免费在线观看动作大片| 国产精品成人一区二区三区 | 亚洲一区二区三区免费av| 色婷婷五月综合激情中文字幕| 永久免费无码av在线网站| 亚洲av激情久久精品人| av免费播放网站在线| 久久精品国产亚洲av大全|