本發明專利技術公開了一種跨平臺輕量級的分布式控制系統,包括多個設備節點;各設備節點分別包括:存儲模塊,用于為每個跨平臺輕量級組件創建一個組件的實例、一個組件接口的實例,保存包括各跨平臺輕量級組件的實例、組件接口的實例;以及為跨平臺輕量級組件間的交互提供接口;所述跨平臺輕量級組件為獨立的對外提供接口的動態鏈接庫DLL或共享庫SO;加載模塊,用于加載一個應用程序中所有的跨平臺輕量級組件;通信模塊,用于在不同應用程序或本分布式控制系統中不同設備節點之間進行數據交換及服務調用。本發明專利技術能使分布式控制系統能夠實現源碼級的跨平臺。
【技術實現步驟摘要】
本專利技術涉及控制領域,尤其涉及一種跨平臺輕量級的分布式控制系統。
技術介紹
不論是工業過程控制中的分布式控制系統(DCS)、核電站的電站計算機系統(KIT),還是軌道交通中使用的大型監督控制與數據采集系統(SCADA),都涉及兩個核心問題,即軟件的組件化架構和分布式數據采集與集中計算帶來的系統各服務間的通信問題。同時,隨著應用的擴展,工程對系統的部署靈活性、平臺依賴性、可擴展性要求越來越高。這就提出了一個非常現實的問題如何搭建一個跨平臺的、完善的CPDSFI (CrossPlatform Distributed Software framework Infrastructure,分布式基礎軟件框架),使得DCS、KIT、SCADA等大型系統的設計開發人員可以將主要精力集中在具體事務處理上,不必過多關心底層網絡通信、進程通信、功能組件冗余,同時可以將在該基礎框架上建立的各個服務靈活部署在不同機器上,將已經完成的組件復用到其他的系統或應用程序中,以同時滿足大型系統(設有專用服務器、多層網絡結構)、小型系統(操作站和服務器軟件安裝在相同機器上,并采用單層扁平網絡結構,以節約成本)、嵌入式系統的需要。目前實現 CPDSFI 的同類技術包括C0RBA、DCOM、XPC0M、QT、JavaBean。CORBA 是比較早的用于處理分布式環境中應用的規范。CORBA使用一種接口定義語言用于刻畫物件將呈現出來的接口。CORBA規定了從接口定義語言到特定程序語言(C++或Java)的實現映射。這個映射精確的描述了 CORBA如何被用戶端和服務器端實現的。標準映射的有Ada、C、C++、Smalltalk、Java、以及Python,這些映射由ORB實現。ORB是一個在對象間建立客戶/服務器聯系的中件。使用0RB,客戶可以調用服務器的對象或對象中的應用,被調用的對象不要求在同一臺機器上,由ORB負責進行通信。與CORBA類似的其他CPDSFI技術存在以下問題(I)代碼不公開或標準過于復雜等問題,需要進行相當的定制工作,才能應用到工業控制場合。雖然各個廠家都提供很多資料和相關的示例代碼,但是要想熟練掌握這些技術,運用到開發過程中,當出現問題時能準確定位和分析,需要對標準的工作機理有透徹的理解,加上DCS系統本身的復雜性,此處的風險很難控制。(2)目前主流的DCS控制系統軟件都沒有實現源碼級的跨平臺。同一套系統不能同時支持多種操作系統,不利于控制系統軟件的縱向深入發展。目前的DCS控制系統軟件大都運行在Windows平臺上,由于平臺本身的漏洞,造成系統經常需要殺毒,增加了維護的成本。
技術實現思路
本專利技術要解決的技術問題是如何使分布式控制系統能夠實現源碼級的跨平臺。為了解決上述問題,本專利技術提供了一種跨平臺輕量級的分布式控制系統,包括多個設備節點;各設備節點分別包括存儲模塊,用于為每個跨平臺輕量級組件創建一個組件的實例、一個組件接口的實例,保存包括各跨平臺輕量級組件的實例、組件接口的實例;以及為跨平臺輕量級組件間的交互提供接口 ;所述跨平臺輕量級組件為獨立的對外提供接口的動態鏈接庫DLL或共享庫SO ;加載模塊,用于加載一個應用程序中所有的跨平臺輕量級組件;通信模塊,用于在不同應用程序或本分布式控制系統中不同設備節點之間進行數據交換及服務調用。進一步地,所述跨平臺輕量級組件還包括一個調用組件對象的接口,該接口繼承自第一接口 IPlugin,所述第一接口 IPlugin繼承自原始接口 IMyUnknown。進一步地,所述加載模塊在存儲模塊的配合下,將各跨平臺輕量級組件的接口的信息存入鏈表中,通過一跨平臺輕量級組件的接口加載該跨平臺輕量級組件。進一步地,所述存儲模塊為跨平臺輕量級組件間的交互提供接口是指所述存儲模塊當收到一個跨平臺輕量級組件調用另一跨平臺輕量級組件的請求時,從保存接口信息的鏈表中找到被調用的跨平臺輕量級組件的接口,返回給調用方。進一步地,所述加載模塊還用于保存一配置文件,所述配置文件中包括各跨平臺輕量級組件的路徑信息;所述存儲模塊還用于當沒有找到被調用的跨平臺輕量級組件的接口時,嘗試根據配置文件中的路徑信息重新加載被調用的跨平臺輕量級組件,若加載成功,則將接口存入鏈表中并返回給調用方,否則返回給調用方失敗信息。進一步地,所述加載模塊還用于讀取各應用程序對應的配置文件,按照應用程序對應的配置文件為該應用程序加載組件;一應用程序對應的配置文件中說明了該應用程序需要加載的跨平臺輕量級組件名稱及這些跨平臺輕量級組件存放的相對路徑。進一步地,多個服務部署在不同的設備節點上;所述存儲模塊還用于保存部署文件;所述部署文件用于記載各設備節點的部署信息以及每個設備節點代表的服務類型,所述設備節點的部署信息用于指示本設備節點上所部署的服務。進一步地,所述通信模塊還用于當所在的設備節點需要向一個服務發送數據時,根據該部署文件確定部署了該服務的目標設備節點,將所在的設備節點需要發送的數據通過以太網傳送給所述目標設備節點;以及當收到其它設備節點的通信模塊傳送來的數據時交給本設備節點中相應的服務處理,并返回處理結果數據。進一步地,所述通信模塊包含跨平臺輕量級進程通信中間件和跨平臺輕量級網絡通信中間件;所述跨平臺輕量級進程通信中間件用于進行本設備節點中兩個進程間的通信;所述跨平臺輕量級網絡通信中間件按照UDP協議封裝/解封和其它設備節點之間傳輸的數據。本專利技術的分布式控制系統中,應用程序通過加載跨平臺輕量級組件執行,不必為不同運行平臺或廠商專門定制代碼,實現了源碼級的跨平臺;本專利技術的優化方案中,不同的應用程序或不同的設備節點可跨平臺進行數據交換和服務調用;本專利技術易于掌握,能屏蔽網絡通信和進程間通信的復雜度。附圖說明圖I是實施例一的跨平臺組件的結構示意圖;圖2是實施例一中加載模塊的工作方式示意圖;圖3是實施例一的軟件架構模式示意圖;圖4是實施例一的分布式控制系統的結構示意圖。具體實施例方式下面將結合附圖及實施例對本專利技術的技術方案進行更詳細的說明。需要說明的是,如果不沖突,本專利技術實施例以及實施例中的各個特征可以相互結合,均在本專利技術的保護范圍之內。實施例一,一種跨平臺輕量級的分布式控制系統,包括多個設備節點;各設備節點分別包括存儲模塊,用于為每個跨平臺輕量級組件創建一個組件的實例、一個組件接口的實例;保存包括各跨平臺輕量級組件;以及為跨平臺輕量級組件間的交互提供接口 ;所述跨平臺輕量級組件為獨立的對外提供接口的DLL(動態鏈接庫)或SO(共享庫);加載模塊,用于加載一個應用程序中所有的跨平臺輕量級組件;通信模塊,用于在不同應用程序或本分布式控制系統中不同設備節點之間進行數據交換及服務調用。本實施例中,應用程序可通過加載模塊加載各跨平臺輕量級組件執行。不同的應用程序或不同的設備通過通信模塊進行數據交換和服務調用。本實施例中,跨平臺輕量級組件通過加載模塊被應用程序加載,跨平臺輕量級組件間通過存儲模塊進行交互,通過接口調用配合完成所需功能。本實施例中,所述跨平臺輕量級組件還可以提供一個調用組件對象的接口,該接口繼承自一個特定的第一接口 IPlugin,所述第一接口 IPlugin繼承自原始接口IMyUnknown0接口層次關系如下權利要求1.一種跨平本文檔來自技高網...
【技術保護點】
一種跨平臺輕量級的分布式控制系統,包括多個設備節點;其特征在于,各設備節點分別包括:存儲模塊,用于為每個跨平臺輕量級組件創建一個組件的實例、一個組件接口的實例,保存包括各跨平臺輕量級組件的實例、組件接口的實例;以及為跨平臺輕量級組件間的交互提供接口;所述跨平臺輕量級組件為獨立的對外提供接口的動態鏈接庫DLL或共享庫SO;加載模塊,用于加載一個應用程序中所有的跨平臺輕量級組件;通信模塊,用于在不同應用程序或本分布式控制系統中不同設備節點之間進行數據交換及服務調用。
【技術特征摘要】
【專利技術屬性】
技術研發人員:任平,呂燕琨,
申請(專利權)人:北京和利時系統工程有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。