熟女人妻水多爽中文字幕,国产精品鲁鲁鲁,隔壁的少妇2做爰韩国电影,亚洲最大中文字幕无码网站

技術頻道

娓娓工業
您現在的位置: 中國傳動網 > 技術頻道 > 應用方案 > COM在世紀星中的應用

COM在世紀星中的應用

時間:2010-02-05 15:17:39來源:sunjuan

導語:?與設備通信的驅動程序是世紀星組態軟件的重要組成部分,本文主要講述COM組件技術在開發世紀星驅動程序時的應用。

      [摘 要]與設備通信的驅動程序是世紀星組態軟件的重要組成部分,本文主要講述COM組件技術在開發世紀星驅動程序時的應用。

1 引言

      在工控軟件中,數據的采集和下發直接影響系統的性能,因此對于如何構架一個高效合理的軟件系統在工控界一直被廣泛關注。在組態軟件中,一般可分為兩部分:HMI人機接口和數據采集模塊。其中HMI是用戶和現場設備進行通信的接口,HMI要做到直觀易用以便于用戶對生產情況的了解和操作,而HMI要以數據采集模塊作為支撐,可見數據采集模塊在工控軟件中的重要性。為了適應各種不同的設備,世紀星的驅動程序采用了組件技術,使數據采集模塊具有高性能、高可靠性、靈活、便于升級等重要特性。

2 COM組件技術

     COM--Component Object Model,即組件對象模型,它是微軟提出的一套開發軟件的方法與規范。組件實際上是一些小的二進制可執行程序,它們可以給應用程序,操作系統,以及其他組件提供服務,能夠跨越鏈接庫、應用程序、系統軟件甚至網絡軟件,多個COM對象甚至可以聯接起來形成應用程序或組件系統。組件式程序設計方法能像搭積木一樣開發大而復雜的軟件系統,并且可以利用以往開發的組件資源而不必進行二次開發。COM(組件對象模型)是一個與操作平臺 無關的、分布的、面向對象的機制,其本質特性是COM對象的接口與實現的分離。基于COM的組件開發具有以下幾點優勢:

     第一,從用戶的角度考慮,用戶一般希望能夠定制所用的應用程序,而組件技術從本質上講就是可被定制的,因而用戶可以用更能滿足他們需要的某個組件來替換原來的那個。
      第二,由于組件是相對應用程序獨立的部件,我們可以在不同的程序中使用同一個組件而不會產生任何問題,軟件的可重用性將大大的得到增強。
      第三,隨著網絡應用的普及,分布式網絡應用程序在軟件市場上變得越來越重要。組件價構可以使得開發這類應用程序的過程得以簡化。

     第四,組件式開發便于軟件系統的升級,當某部分功能需要升級時,開發人員只需修改相應組件即可,而用戶只需替換原來的組件,這就使得軟件升級只是替換一些組件而已。

     第五,組件式開發便于軟件開發的分工協作,每個組件各自完成所需功能,只需在進行開發前協商好接口即可。

3 世紀星數據采集模塊 

     數據采集模塊是世紀星軟件系統的后臺服務程序,負責從現場設備采集數據并將數據提供給HMI,而HMI產生的控制信號又通過數據采集模塊傳輸給設備,這樣就達到了用戶與設備的相互對話。其信息流如圖1所示:

 

     在數據采集模塊中,基本上由兩部分組成,一部分是和設備相對應的驅動程序,該程序既是一個COM組件,另有一個控制程序DataComm負責調用驅動程序以及和其他模塊通信。在上位機和下位機或其他一些板卡進行通信時大致有以下幾種方式:串口,TCP/IP,計算機PCI卡,數據采集模塊通過一個統一的接口訪問不同的設備,設備驅動文件只需完成該接口功能即可,這樣在與新設備通信時DataComm不必修改,只要開發出與該設備通信的驅動組件就能完成上位機與設備之間的通信,DataComm與驅動程序之間的關系如圖2所示:

 

4 設備驅動的接口設計與實現 

     每個COM組件都至少有一個IUnknown接口或繼承IUnknown的子接口,IUnknown接口負責查詢該組件的其他接口和維護引用計數,引用計數與組件對象持久性相關,本文不詳細闡述。前面說訪問設備使用統一的接口,那么該接口應該具有所有操作設備通用的功能,如初始化和關閉設備,讀寫數據等。在C++中使用抽象基類作為接口,其部分定義如下:

class IDeviceAccess : public IUnknown 

{

public:

virtual  HRESULT __stdcall QueryInterface(REFIID iid, void** ppvObj) = 0;

virtual  ULONG   __stdcall AddRef() = 0;

virtual  ULONG   __stdcall Release() = 0;

public:

virtual  BOOL  __stdcall UnInitialDevice( LPDEVADDR pDevAddr )=0;

virtual  BOOL  __stdcall InitialDevice( LPDEVINIDATA pInitDat )=0;

virtual  BOOL  __stdcall ReadData(…… )=0;

virtual  BOOL  __stdcall WriteData( …… )=0;

……   ……};

     該接口的實現是在COM組件中,因為設備不同,所以實現也有所不同,但同類設備也有一些相同之處,比如智能儀表大多都是通過串口進行通信,而對串口的參數設置是這類設備的共同之處,為此我們定義一個類CDevice:public IdeviceAccess,這個類完成初始化等基本的功能,而讀寫數據ReadData和WriteData都進行空實現,讓所有相關設備以CDevice為基類然后重寫ReadData和WriteData即可。世紀星的驅動組件是使用MFC開發的,MFC是通過嵌套類實現COM功能,在世紀星中我們以繼承CDevice的類作為嵌套類,這個嵌套類完成一些具體功能,它所在的類我們成為外部類,外部類提供一個全局唯一的CLSID,DataComm通過CLSID定位組件,然后使用之前定義的接口完成與設備的通信,通過圖3描述如下:

 

5 小結

     數據采集模塊的性能是影響工控軟件的一個重要因素,高效穩定的數據通信服務是工控軟件或許更大發展的基本保證。世紀星使用COM技術實現數據通信既方便了開發人員對新設備驅動的開發,又便于用戶對驅動的升級,同時增強了世紀星本身的可擴展性。

標簽:

點贊

分享到:

上一篇:龍格LG系列變頻器在鍋爐變頻...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網站簡介|會員服務|聯系方式|幫助信息|版權信息|網站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網-工業自動化與智能制造的全媒體“互聯網+”創新服務平臺

網站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業執照證書 | 不良信息舉報中心 | 粵公網安備 44030402000946號

主站蜘蛛池模板: 澄江县| 岑巩县| 天长市| 泰安市| 同仁县| 通州市| 开封县| 连平县| 天台县| 格尔木市| 宜阳县| 洛隆县| 台江县| 中超| 通许县| 英山县| 祁阳县| 巴彦县| 同江市| 昭通市| 全南县| 响水县| 静宁县| 新津县| 华容县| 库尔勒市| 亚东县| 罗源县| 德令哈市| 武威市| 尚志市| 泗洪县| 芜湖县| 安塞县| 天柱县| 襄城县| 漳州市| 神池县| 西昌市| 梁河县| 泰和县|