999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

組件對象模型技術在地鐵綜合監控系統的應用

2016-06-01 01:05:20劉衛紅
城市軌道交通研究 2016年1期

李 貴 劉衛紅 金 旭 江 輝

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

組件對象模型技術在地鐵綜合監控系統的應用

李 貴劉衛紅金 旭江 輝

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

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

關鍵詞軌道交通;綜合監控;組件對象模型;組態軟件平臺

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

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

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

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

1 Cimplicity HMI平臺二次開發的傳統模式

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

1.1傳統開發模型

在BCE提供的開發環境下,傳統的二次開發模型如圖1所示。

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

1.2傳統開發模型存在的問題

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

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

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

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

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

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

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

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

客戶端使用Visual Basic 6.0作為編譯環境,創建Active X DLL工程,最終編譯形成單獨的DLL文件,進行開發、調試、編譯、部署等工作。

2.1COM開發模型

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

2.2COM開發模型實現

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

整體函數調用和控制的實現原理,如圖4所示。

圖2 COM開發模型

圖3 COM組件存在形式

詳細實現過程如圖5所示。

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

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

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事件中通過簡單類工廠模式,很好地解決了多類型對象的實例化問題,并最終通過執行的CallBy Name函數,利用“反射”機制調用具體類中的函數,達到控制或者執行某個具體功能函數的目的。

圖4 COM模型調用原理

圖5 COM模型實現過程

2.3COM開發模型的優勢

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

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

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

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

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

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

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

3 結語

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

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

參考文獻

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

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

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

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

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

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

[7] 吳東慶.反射機制下類工廠模式的實現與研究[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)

主站蜘蛛池模板: 久久96热在精品国产高清| 99一级毛片| 国产精品一区在线麻豆| 国产一区二区丝袜高跟鞋| 国产一在线观看| 四虎影视无码永久免费观看| 国产一级毛片yw| 欧美成人区| 国产va在线观看| 久久6免费视频| 国产不卡国语在线| 国产色图在线观看| 四虎永久免费在线| 国产黑人在线| 久久国产精品波多野结衣| 国产免费久久精品99re不卡| 无码av免费不卡在线观看| 久久国产乱子| 97视频在线精品国自产拍| 2020精品极品国产色在线观看 | 这里只有精品免费视频| 麻豆精品国产自产在线| 亚洲乱码在线视频| 精品一区国产精品| 狠狠色香婷婷久久亚洲精品| 国产在线视频自拍| 免费一级毛片在线观看| 国产精品99一区不卡| 在线观看91香蕉国产免费| 国产亚洲欧美日韩在线一区| a级毛片在线免费| 国产综合欧美| 91外围女在线观看| 91福利在线看| 一本色道久久88| 亚洲无线一二三四区男男| 九九这里只有精品视频| 欧美成人免费一区在线播放| 国产91特黄特色A级毛片| 91小视频在线观看免费版高清| 99久久99这里只有免费的精品| 欧美日韩在线观看一区二区三区| 精品少妇人妻一区二区| 在线永久免费观看的毛片| 亚洲视频免费播放| 欧美日韩成人| 国产69精品久久久久孕妇大杂乱| 成人午夜亚洲影视在线观看| 久久男人视频| 在线观看亚洲人成网站| 亚洲中文字幕无码爆乳| 蜜臀AV在线播放| 亚洲综合专区| 天堂网亚洲综合在线| 国产欧美视频在线观看| 丰满少妇αⅴ无码区| 亚洲免费福利视频| 日韩午夜福利在线观看| 91福利免费| 伊人婷婷色香五月综合缴缴情| 欧美国产综合视频| 激情亚洲天堂| 国产精品美乳| 2022国产无码在线| 国产欧美日韩18| 国产成人免费| 国产精品13页| 国产视频a| 欧美色综合网站| 波多野结衣无码AV在线| 99在线视频免费观看| 国产成人免费视频精品一区二区| 欧美午夜久久| 亚洲国产精品一区二区第一页免| 久久综合九色综合97婷婷| 中文无码毛片又爽又刺激| 天天综合色天天综合网| 久久a级片| 五月婷婷综合在线视频| a亚洲视频| 亚洲欧美国产五月天综合| 亚洲日本韩在线观看|