国产成人精品a视频一区www_国产区视频在线观看_99色视频_欲色av_亚洲一区电影_亚洲综合视频一区

基于組件技術的計算機數控系統開發

來源:互聯網

點擊:1319

A+ A-

所屬頻道:新聞中心

關鍵詞:組件技術 數控系統

      隨著現代制造業的進步和計算機集成系統的不斷成熟,數控系統融合計算機技術正朝著開放化、網絡化、智能化的方向發展。具有層次化結構的開放式數控系統以其可擴展、可移植、可互換和可配置等特點,成為當今數控技術發展的趨勢。

      組件技術具有可重用性和良好的語言無關性,可以實現跨進程、跨平臺甚至網絡范圍內的互操作,較好地解決軟件復用技術所面臨的問題。由組件來組建開放數控軟件,可在較高層次上滿足開放式數控系統的要求。因此,本文提出了一個基于組件技術的開放式數控系統體系結構,并對系統的設計、實現、封裝、部署等過程進行了詳細介紹。

    1 系統組件的劃分

      本文建立的數控系統從邏輯上劃分為人機交互服務器(HMI Server)組件、認證服務(Authentica-tion Service)組件、運動控制核心(Motion ControlKernel,以下簡稱MCK)組件、PLC組件、運動學(Kinematics)組件和人機交互客戶端(HMI Client)5個基本組成部分。

      a) HMI Client是數控系統的客戶端,為用戶提供一個與數控系統進行交互的圖形或命令行形式的界面,并且可以同時存在多個實例,它不與運動控制組件進行直接交互,而是以HMI Server作為中介。

      b) HMI Server組件存在的目的是為HMIClient訪問運動控制組件提供一個簡單的外觀層,降低HMI Client與運動控制組件之間的耦合度,因此,其主要功能是轉發請求,并對任何加工數據進行處理,它是Facade設計模式的一個具體應用,滿足了軟件架構低耦合的要求。

      c) MCK組件是整個系統的功能核心,負責完成系統大部分的任務。根據高內聚原則,將該組件進一步細分成8個子組件,每個子組件獨立地實現一個特定的功能,這些子組件包括誤差補償(ErrorCompensation)組件、插補(Interpolation)組件、超前讀(Look Ahead)組件、NC代碼解釋器(NC CodeInterpreter)組件、路徑規劃(Path Planning)組件、位置控制(Position Control)組件、刀具補償(ToolCompensation)組件和速度規劃(Velocity Control)組件。

      d) Kinematics組件負責正向計算和逆向運動計算、采用幾何方法糾錯和刀具偏移量、對工件的動態檢測、在聯合坐標系和笛卡兒坐標系中進行運動學極限檢測等。

      e) PLC負責實現機床監控、換刀機構控制、夾具控制、潤滑和冷卻系統控制、傳感器檢測等數控系統的輔助控制功能。

    2 系統的部署架構

      基于CCM的分布式系統,可以通過網絡將若干處理器資源組織起來,并通過將系統任務合理地分布于各處理節點上來實現系統功能。相對于運行于單機的系統而言,運行在分布式環境下的系統的運行能力可以隨網絡結構的擴展而進一步增強,并且可以避免單個節點過載的情況。

      對于建立在分布式環境下的系統,系統組件之間的消息傳遞路徑大體分為2種:位于同一節點內的組件之間的消息傳遞路徑通常為PC總線;位于不同節點的組件之間的消息傳遞路徑通常為網絡總線。前者的響應延遲較低,因此,可以將有交互并且對交互響應時間要求較為嚴格的組件放置于同一節點,對交互響應時間并無明確要求的組件則可分布于不同的節點。

      由于實現運動控制是系統的主要任務,并且運動控制過程對實時性有一定的要求,因此出于對效率的考慮,將與運動控制相關的組件即MCK、PLC和Kinematics安排在同一節點,稱為運動控制節點。運動控制節點上安裝了實時操作系統,這就使得數控系統可以根據各項任務對實時性要求的不同,為每個任務分配不同的優先級,從而保證了對關鍵任務的及時處理。系統的部署架構如圖1。

    圖1 系統的部署架構

    3 組件的IDL/CIDL定義

      以HMI Server為例,對定義過程進行描述。

      HMI Server的IDL定義如下:  component HMIServer supports  SystemService  {  provides RegisterService RegSrv;  provides NCCodeManager NCCodeMgr;  uses AuthenticationService AuthSrv;  publishes StartMotionControl StartMC;  publishes StopMotionControl StopMC;  publishes PauseMotionControl  PauseMC;  publishes NCCodeReady NCCodeRD;  publishes SystemInitiation SysInit;  };  home HMIServerHome manages  HMIServer{}。

      其中,系統服務面向系統外部的HMI Client注冊服務面向所有運動控制組件;NC代碼管理器則面向MCK中的NC代碼解釋器組件;Home則是用于創建組件實例的工廠(Factory)。

      允許系統使用者開發適合自身需要的HMIClient也是本系統的一個目標,所以應該讓系統使用者自主選擇HMI Client的開發技術,而不應該使HMI Client僅基于CCM,因此HMI Client只要遵循系統接口規范,可以使用任何技術實現。由于Provides/uses方式僅能用于組件之間連接的建立,因此HMI Server以支持(supports)的方式對外提供系統服務,而注冊服務和NC代碼管理器則以提供(provides)的方式與相應的使用者建立連接。

      由于系統服務中的登錄和注銷功能只是對HMI Client提供了一個訪問認證服務的接口,因此HMI Server需要與認證服務組件建立連接,以使用其提供的認證功能。對于HMI Server組件,由于其狀態不需要在生存期以外進行保存,所以沒有必要將組件定義為Entity或Process類型,并且一個組件的生存期需要超過一次客戶請求,所以Service類型也不合適。因此,要使組件在整個系統運行期間保持激活狀態,Session類型是最合適的選擇。

      HMI Server的CIDL定義如下:  composition session HMIServer_impl  {  home executor HMIServerHome_Exec  {   implements   CNC::HMISERVER_MODULE::H  MIServerHome;  manages HMIServer_Exec;  };  }。

    4 IDL/CIDL到C++的映射

      完成IDL和CIDL的定義后,首先,使用TAO/CIAO開發包中的Perl腳本來生成工程描述文件;然后,建立空白的實現文件,這樣可以使整個工程通過編譯,而具體的實現代碼則可在隨后逐步完善。編譯完成后,將會在各組件的工程目錄中生成映射到C++的客戶端stub、服務器端skeleton、服務器端servant等文件。在生成了組件的C++框架文件后,就可以以此為基礎進行組件的具體實現過程。

    5 組件的實現

      以HMI Server為例,對組件的實現進行說明。

      a) 定義每個組件executor的實現類,它們都位于單獨的名稱空間下,例如,HMIServer_exec_i是HMI Server組件executor的實現類,它定義了executor接口,規定了executor所必需實現的方法,包括HMI Server組件使用supports關鍵字明確支持的接口中的方法。

      由于HMIServer_Exec是一個Session類型的組件,因此HMIServer_exec_i需要對SessionComponent中的一些容器回調函數進行重置(override)。例如,set_session_context,其具體實現如下:

      void  HMIServer_exec_i::set_session_context(Com  ponents::SessionContext_ptr ctx)  {  ,,  this->m_context=HMIServer_Exec_Con  text::_narrow(ctx);  }。

      b) 組件所提供的facet也需要單獨實現,通常在facet的實現中保存了對相應executor的引用,以實現其向exector的導航,在相應的executor中則必須為receptacle提供獲取關聯的facet的/get_<facet_name>0方法。

      HMI Client這類非組件的客戶端是通過調用/provide_<facet_name>0來得到組件相應的fac-et,而/get_<facet_name>0實際上是/provide_<facet_name>0在組件executor端的映射。

      c) 使用supports關鍵字聲明的接口是通過繼承的方式在組件executor中實現的,例如,HMIServer組件通過繼承的方式支持SystemService接口。

      HMI Server組件在IDL中聲明了對認證服務組件的Authentication Service接口的使用。在具體實現中,HMI Server組件executor通過其上下文(Context)得到指向Authentication Service接口實現類的指針,從而調用其中相應的方法,HMI Server組件的上下文在組件部署期間被創建,并由組件的容器在組件激活前通過容器的回調函數set_ses-sion_context進行設置。

      對事件的發布也是通過組件上下文,例如,HMI Server作為系統初始化事件的事件源,其具體發布方法為:

      ::CNC::SystemInitiation_var  evt1=new ::OBV_CNC::SystemInitiation  ;  m_context->push_SysInit(evt1)。

      該事件的響應方法,則由各接收者獨立實現。

      d) 定義組件home executor的實現類以及組件executor在DLL中的入口點(Entry Point),入口點的主要作用是創建組件home實例。HMIServer組件入口點的具體實現如下:

      extern  "C" ::Components::HomeExecutorBase_ptr  createHMIServerHome_Impl()  {  return new  CIDL_HMIServer_Impl::HMIServerHo  me_exec_i();  }。

    6 組件的封裝組裝及部署

      在得到了各組件的DLL實現后,需要對其進行封裝與組裝,以便使系統能夠在分布式環境下進行部署,系統使用者可以根據需要,制定不同的部署方案。

      組裝的具體工作就是為系統中相關的facet和receptacle,event source和event sink建立連接描述文件,這是一個遞歸的過程,最終形成完整的系統。本系統由HMI Server,MCK,PLC,運動學、認證服務組件組裝而成,其中MCK由8個子組件組裝而成。

      封裝過程的目標是制作一個包括組件實現和組件描述的可部署的組件包,組件包是用于部署的最小單元。對于單獨的組件,需要將該組件的XML描述文件和組件的DLL文件封裝為zip格式的組件包;對于組裝而來的組件,由于它沒有獨立的組件實現,因此,只需要為其組件描述和組件包建立關系。

      在部署階段,首先,需要建立目標環境(TargetEnvironment)的模型,該模型描述了作為組件載體的物理資源及其拓撲結構;然后,參照預先設計的部署架構建立相應的部署計劃。

      整個過程通過使用CosMIC工具完成,這樣能有效地避免手工編輯XML文件時容易出現的錯誤,從而提高開發效率。

    7 組件的運行

      在CORBA體系結構中,分布環境中的節點監控進程被稱作節點管理器(Node Manager),分布在某一節點上的一個組件的運行,被稱作節點應用程序(Node Application)。解析部署計劃,判斷計劃是否可行,并且將計劃轉換為合適的數據結構,以作為執行管理器輸入的進程被稱作部署計劃執行器(Plan Launcher);根據部署計劃的解析結果,負責將系統各組件分布到相應的節點上的進程被稱作執行管理器(Execution Manager)。

      部署計劃執行器在完成解析后,會將結果發送到執行管理器,然后執行管理器按照計劃將系統各組件分布到域中各節點。計劃成功執行后,各系統組件被激活待命,可以通過生成的IOR文件直接獲取其引用,也可以使用CORBA名稱服務進行定位。另外,可以編寫腳本以方便整個啟動過程的進行,系統啟動后,用戶就可以通過HMI Client對系統進行操作和監控。HMI Client的圖形界面如圖2。

    圖2 HMI Client的圖形界面

    8 結語

      提出了一個基于CCM技術的開放式數控系統,并介紹了數控組件的設計、實現、封裝、組裝、部署及運行的全過程。該系統可以更好地滿足系統模塊化、可重構、可擴展、可移植等開放性要求,對于推動組件技術在開放式數控系統領域中的應用具有重要意義。

    (審核編輯: 智匯張瑜)

    聲明:除特別說明之外,新聞內容及圖片均來自網絡及各大主流媒體。版權歸原作者所有。如認為內容侵權,請聯系我們刪除。

    主站蜘蛛池模板: 在线观看不卡一区 | 99久久九九| 黄色的网站免费观看 | 国产情侣一区二区三区 | 特级理论片 | 成年人在线视频播放 | 一区二区三区高清 | 日日草视频 | 国产精品乱码一区二区三区 | 欧美精品1区 | 91久久综合| 精品国产欧美 | 亚洲天堂一区 | 日韩精品一区在线 | 日本美女黄网站 | 欧美综合一区二区 | 国产精品地址 | 蜜桃久久久久久 | 欧美日韩第一区 | h在线观看 | 欧美日本色 | 日本天堂在线观看 | 久久久久av | 激情91| 久久激情小视频 | 婷婷桃色网 | 中文久久 | 在线观看免费毛片视频 | 成人毛片在线观看 | 亚洲成人av在线 | 久久久av | 国产九九精品 | 欧美电影一区 | 婷婷视频在线 | 精品国产一区二区三区国产馆杂枝 | 香蕉三级 | 日韩三区视频 | 在线小视频 | 国产精品婷婷午夜在线观看 | av片在线观看 | www.日韩在线 |