為機床工具企業(yè)提供深度市場分析                     

用戶名:   密碼(mǎ):         免費注冊  |   申請VIP  |  

English  |   German  |   Japanese  |   添加收藏  |  
廣州數控
數控係統

車床 銑床 鑽床 數控係統 加工中心 鍛壓機床 刨插拉床(chuáng) 螺紋加工機床 齒輪加工機床
磨(mó)床 鏜床 刀具 功能部件 配件附件 檢驗測量 機床電器 特種加工 機器人

數控係統

電工電力 工程機械(xiè) 航空航天 汽車 模具
儀器儀表 通用機(jī)械(xiè) 軌道交通 船舶

搜索
熱門關鍵字:

數控機(jī)床

 | 數控(kòng)車床 | 數控係統 | 滾齒機 | 數控銑床 | 銑刀 | 主軸 | 立式加工(gōng)中心 | 機器人
您現在的位(wèi)置:數控係統網> 技術前(qián)沿> 開放式上位數控軟件架構及其組件間解耦問題研究(jiū)
開放(fàng)式上位數(shù)控軟件架構及其組件間解耦問題研究
2018-3-1  來源:燕山大學 河北省計算機 北(běi)京機床所  作(zuò)者:李誌明 李衛超(chāo) 田夢 吳榮華(huá) 王瓊瓊

  

  
       摘要:在分析上位數控軟件功能特點的基礎上(shàng)。考慮開放式數控(kòng)係統中(zhōng)關鍵部件更(gèng)換時軟件適應性,提出一種分層的開放式上(shàng)位數控係統軟件架構,並簡述了各層及(jí)模塊之間的交互關係;將依賴注入機製應用於開放式上位數控軟件各組件(jiàn)間的解耦問題中,以後置處理模塊(kuài)內部(bù)、以及後置處理模塊與代碼仿(fǎng)真及幹涉檢測模塊間的解耦問題為例。分別說明了構造子(zǐ)注入、設值注入的使用方法(fǎ)。
  
       關鍵詞:開放式數控係(xì)統;軟件架構;依賴注入;解(jiě)耦
    
       數控係統在諸多高端裝備中均處於核心地位,直接影響著裝(zhuāng)備性能的優劣。專用(yòng)數(shù)控係統的封閉性致(zhì)使無法(fǎ)將最新的軟硬件技術成果融人數控(kòng)係統之(zhī)中,嚴重地阻礙了數控技術的發展,使之難以適應互聯(lián)網+、中國製造2025等新戰略要求。因此,開放式數控係統逐漸成為了數(shù)控技術發(fā)展的主流,其(qí)應用也日益廣泛。
  
      在常見的(de)3種開放式數控係統結構中,“IPC+開放式運動控製器”方式,憑借其自身硬(yìng)軟件平台良好(hǎo)的(de)開放性(xìng)及便捷性,應用(yòng)較多。在(zài)該方式中,開(kāi)放式數控係統(tǒng)軟件具有統領性(xìng)作用,且其複雜程度較高,例如各坐標(biāo)軸運動狀態、機床狀態等信息顯示(shì)、NC代碼(mǎ)編輯與下載,運動(dòng)軌跡預覽及仿真、參數設置(zhì)、外圍設備控製與檢測等,均需(xū)通過數控係統的UI界麵加以體現(xiàn);此外,還有許多用戶不可見的重(chóng)要功能模塊(kuài),如NC代碼語法檢查、機床運動坐標變化、路徑優化及(jí)NC代碼生成等(děng)模塊(kuài)。
  
       目前,我國在開放式數控係統軟件架(jià)構方麵的研究開(kāi)展的較少,缺乏該方麵軟件架構實施的資料和規範,尚未形成完善的、統一的架構體係心J。此外,在開放式數控係統軟(ruǎn)件研發(fā)過程中,某項功能的實現往往需要多個模塊協作完成;模塊與模(mó)塊之間的耦合難以(yǐ)避免,而過度(dù)的耦合(hé)則會嚴重影響開(kāi)放式數控係統軟件的擴展性、移植性、維護性。
  
       本文以項目組研發的開放式(shì)精密激(jī)光切割數控係統平(píng)台為基礎,對開放(fàng)式上位(wèi)數控係統軟件架構問題進行(háng)研究,並將依賴注入(rù)原理(又稱控製反轉)運用到組件間的解耦問題之中,以(yǐ)期建立(lì)一個模(mó)塊化、可重構、可擴展的開(kāi)放式數控係統平台。
  
       1 、基於UMAC的開放式數控係統硬(yìng)件架構
  
       本文(wén)中開放式數控係統硬件(jiàn)架構以IPC和UMAC為基礎(chǔ)構建,其硬件結構(gòu)示意(yì)如圖l所示。在該架構中,用戶可充分利用(yòng)IPC的軟硬件資源,融合最新的信息技術及個性化需求,對運行於IPC中的上位(wèi)數(shù)控軟件進行自主開發。上位數控(kòng)軟(ruǎn)件的作用主要是實現實時性要求不(bú)是很高的人機交互功能(néng);UMAC運動控製器一般由(yóu)電(diàn)源模塊、通用CPU板、軸擴展卡(kǎ)、I/O卡(kǎ)和具有特定功能(néng)的附件(jiàn)板卡等(děng)構成,是該架構的核心所在,主要實現實時性要求很高的NC代碼解釋、插補運算、運動控製、軟PLC程序執行等功能。該硬件架構兼(jiān)具靈活性和穩定性,開發(fā)效率高,可滿足專用數控係(xì)統(tǒng)難以滿足的個性(xìng)化功能需求。
  
圖1開放式敦控係(xì)統硬件平台示意
  
       從圖l中可以發現(xiàn),上位數控軟件是重要的人機接口之(zhī)一,對整個數控係統具有(yǒu)統領(lǐng)性作用;其穩(wěn)定性、可靠性對整套數控裝備的性(xìng)能具有(yǒu)重要的影響。軟件架構決定了軟件的品質,在軟件開發中占有重要地(dì)位。因此,在開放式數控係(xì)統方興未(wèi)艾之時,對上位(wèi)數控軟件的架構問題展開研究顯得尤為必要。
  
       2、開放式數控(kòng)係統軟件架構
  
       開放式數控係統軟(ruǎn)件由IPC中的上位數控軟(ruǎn)件和UMAC中的下位軟PLC程序兩部(bù)分組成,是開放式數控裝(zhuāng)備的靈魂所在。UMAC中的軟PLC程序的(de)架構問題詳(xiáng)見文獻[3];IPC中的上位數控軟件架構及組件間(jiān)解耦問題是本文的研究重點(diǎn)。
  
       2.1上位數控軟件功能
       
       軟件的開放性是開放式數控係統的特(tè)點之一,也就是說,開放式數控係統(tǒng)允許用戶開發常規(guī)的、個性(xìng)化的數控功能以及軟件係(xì)統(tǒng)集成。就(jiù)常規功能而言,可(kě)分為用戶可(kě)見(jiàn)的人機交互功能和用戶不(bú)可(kě)見的數據(jù)及業務處理功(gōng)能;本文分別稱之(zhī)為顯性(xìng)功能和隱性(xìng)功能。常見的顯性功能有CNC各類(lèi)狀態顯示、參(cān)數設置、工藝(yì)檔案、NC代(dài)碼仿真、MDI等功能;常見的隱(yǐn)性功能有後置處理、NC代碼語法檢查、故障診斷與報警(jǐng)、連鎖控製邏輯、與運動(dòng)控(kòng)製器及(jí)外設交互等。為了配合開放式數控係統的硬(yìng)件開放性(xìng),增強上(shàng)位數(shù)控軟件的生命力,還應從架構角度著重考慮(lǜ)軟件對核心(xīn)設備及部件更換的適應能力,如運動控製(zhì)器(qì)、激光器的更換(huàn)情況。
  
       由此(cǐ)可(kě)見,開放式數控係統的(de)功能模塊繁(fán)多,且模塊間依賴關係複雜。因此,要開發一套穩定(dìng)可靠、性能(néng)良好,適應(yīng)性及可擴展性強,易維護的上位數控軟件,架(jià)構問題則應是要考慮的首要問題(tí)。
  
       2.2上位數(shù)控軟件架構研究
  
       常用的軟件架構類型有MVC架構、分層架構H J、微內核架構(gòu)”J、元模型架構∞o和管(guǎn)道一過濾器架構等。
  
       在上位(wèi)數控軟件架構類(lèi)型(xíng)選取時,從用戶數量、界麵複雜程度、人機交互頻度、業務邏輯(jí)複雜度以及係統的擴展性、移植性和互換性(xìng)等角度考(kǎo)慮(lǜ),最終選取分(fèn)層架(jià)構模式。分層架構中各(gè)層之(zhī)間通過定義好的(de)接(jiē)口進(jìn)行通信。上層(céng)僅使用下層提供(gòng)的服務而無需(xū)知道下層的細節(jiē),這使得在接口不變的前提下可以對某一層或者某層中的部分功(gōng)能進行無損替換,從(cóng)而降低係統間的依賴程(chéng)度(dù)並在較大程度上保證了係統的可(kě)擴展性。分層架(jià)構將原本複雜的係統(tǒng)分開,有利於分化係統(tǒng)的複(fù)雜性,使開發人員可以專注(zhù)於某一層(céng)的細節。
  
       本文(wén)通過(guò)對上位(wèi)數控係統整個流程進行研究,並綜合考慮開放程度和集成代價,得到“係統一模塊一組件(jiàn)”的(de)組成結構,將開放式上位數控係(xì)統軟件分為人機交互層(céng)、業務邏輯層、通訊協議(yì)層(céng)和數據服務層。上位數控軟件架構分層如(rú)圖2所示。
  
  
  圖2開放式致控係統上位機軟件架構(gòu)
  
       圖2中,人機交互層主要用於用戶操作指令與數(shù)控係統狀(zhuàng)態和參數之間的交互,如(rú)坐標(biāo)及速度顯示、機床狀態顯示、參數(shù)設置、工藝檔案管理等。
  
       業務邏輯層負(fù)責對相關數據進行(háng)數控業務知識(shí)的處理,是對數控領域內各對象的(de)抽象,由後置處理、故障診斷、代碼仿真及檢測、權限管理等(děng)模塊(kuài)組成,具有承上啟下的作用,是整個上位(wèi)數控軟件的核心部分(fèn)。
  
       通訊協議(yì)層負責上位數控軟件與UMAC、外設、以及數據庫之間的(de)通訊工作,由運動控製器通(tōng)訊協議包(bāo)、網絡通訊協議和(hé)數(shù)據庫操作封裝(zhuāng)等組成。通(tōng)訊協議層對上層服務接口的定義,應考慮不同(tóng)主流廠商的設(shè)備通訊協議,盡量定義一致的接口,從而增強設備更換時的係統適應性,如開放式運動控製器(qì)的更換、激(jī)光加工(gōng)係統(tǒng)中激光器的更換等(děng)。
  
       數據服務層的主要功能是實現數據存儲,如工藝檔案、材料檔案、機床特性、係統故障(zhàng)診斷(duàn)表等。圖2中所示的開放式上位數控係統(tǒng)各(gè)層及模塊間的(de)交互關係如圖3所示。
  
  
圖(tú)3開放式數(shù)控係統各層及模塊問的(de)交互關係
  
       通常,分層架構與依賴(lài)注入機製(zhì)一起(qǐ)使(shǐ)用,實現層與(yǔ)層之間的“可替換”式設計。在(zài)此(cǐ)基礎上,本文還將依賴注入應用到了組件間的解耦之(zhī)中(zhōng),從而在很大程度上(shàng)降低了上位數控軟件中各組件之間的耦合度(dù)。
  
       3、組件(jiàn)間的解耦設計
  
       耦合(hé)度是指模塊(kuài)或組件間(jiān)的依賴關係,包括控製關係、調(diào)用關係、數據傳(chuán)遞關係。對於絕大部(bù)分軟件來說,在軟件設計階段便確定了各模塊的控製關係、調(diào)用(yòng)關係和數據傳遞關係;在編碼階段(duàn)中,控製關係和數據傳遞關係造(zào)成的耦(ǒu)合無法進一步優化,而(ér)調用(yòng)關係造成的耦合則可以通過(guò)使(shǐ)用合適的設計模式得到很大程度的改善。
  
       在常(cháng)規的軟(ruǎn)件開發過(guò)程中,組件的實例化通常在(zài)其他相關組件(jiàn)中完成。這種依賴關係造成的耦合降低了組件的可移植性和可替(tì)換性。針對這個問(wèn)題,本文將依賴注入(rù)設計模式應用於上位數控軟件的各組件的設計之中(zhōng),從(cóng)而有效降低了組件間的耦合度。
  
       3.1依賴注入(rù)模式簡介(jiè)
  
       依(yī)賴注入[71有3種模(mó)式:接口注人、設值注入和構造子注入;其中設值注入和構造子注入是目前主流的實現模式。設值注入方式簡潔(jié)、便利,適宜在組(zǔ)件依賴關(guān)係較為複雜時(shí)使用。構造子注入在構造組件時完成(chéng)依賴關係的設(shè)定,能讓組件在被創建後就處於相(xiàng)對穩定(dìng)的狀態,適宜在組件的依賴關係相對簡單時(shí)使用(yòng)。在(zài)實際開發中,以構造子(zǐ)注人為主,設值(zhí)注入為(wéi)輔,會達到較好的效果坤J。
  
       Castle是基於.NET平台(tái)的開源(yuán)項目,囊括了ORM、IoC容器、MVC框架、AOP等,為開發人員構(gòu)建應用程序提供(gòng)了強大(dà)的(de)支持。Windsor Container是Castle的IoC容器,可以實(shí)現對組(zǔ)件生命周期、組件間依賴關係的管理。
  
       3.2應用(yòng)構造子注入解耦示例
  
       後置(zhì)處理模塊根據當前機床特性信息、係統特性(xìng)信息和(hé)刀位文件信息生成正確的NC代碼。圖(tú)4為後置處理模塊最初的依賴關係圖,圖5為運(yùn)用依賴注入(rù)原理將依賴關(guān)係提取後的依賴關係。
  
  
 
圖(tú)4後置處理的(de)原始依慧關係 
  
 
 
 
圈5後置(zhì)處理應用構造子注入後的依藏關係(xì)
  
       機床特性信息組件、係統特(tè)性信息組件和刀位文件(jiàn)信息組件在(zài)容器中完成實例化,之後由容器將實例化後的(de)對象注入到後置(zhì)處理(lǐ)組件中。後置處理組件對於機(jī)床特性信息、係統特性信(xìn)息和刀位文件信息(xī)的依賴是固定不變(biàn)的(de),適合使用構造子注入的注入方式,這樣使得組件被創建後就具備了正確運行必要的參數,使組件(jiàn)處(chù)於相對穩定的狀態。
  
       後置處理(lǐ)組(zǔ)件中構造(zào)子注人代碼(mǎ)示例如下(xià):
  
        
  
       3.3應用設值(zhí)注入解耦示例
       
       代(dài)碼仿真與幹涉檢測模塊負責對後置處理模塊產生的NC代碼進行仿真和幹涉檢測,檢測(cè)通過(guò)後的NC代碼才能在機床上實(shí)際運行。此時(shí),代碼仿真與幹涉檢測模塊依賴於後(hòu)置處理模塊,圖6為二者最初的依賴關係,圖7為應用依賴注入原理將(jiāng)依(yī)賴關係提取後,後置處理組(zǔ)件和代碼仿真與幹涉檢測組件的依賴關係(xì)。後(hòu)置處理功能組件在容器中進行實例(lì)化,之後(hòu)該實(shí)例由(yóu)容器注入到代碼仿真與幹涉檢測組件中,由於代碼的仿真(zhēn)及(jí)幹涉檢(jiǎn)測不但(dàn)支持對後置處(chù)理功能所生成NC代碼的檢測,還支持用戶(hù)自己(jǐ)編寫NC代碼的檢測,並且(qiě)對於程序中使用的某(mǒu)些第三方類庫而言,可能要求組件(jiàn)必須提供一個默(mò)認的(de)構造函(hán)數,此時構造子注入模式就體現出其局限性‘9|,此時合適的(de)依(yī)賴注入方(fāng)式應為設值注人。
  
  
  
       代碼仿真及幹涉檢測組件(jiàn)中設(shè)值注入(rù)代碼(mǎ)示例如下(xià):
  
        
  
        
  
       文(wén)中采用(yòng)的Windsor container容器可以(yǐ)自動管理組件間的依賴(lài)關係,無需用戶去編寫(xiě)XML配置文(wén)件或者通過Attribute來指定容器之間的(de)依賴關係舊o,當某個功能模(mó)塊的(de)接(jiē)口有新的(de)實現時隻(zhī)需要修改容器中相應代(dài)碼即可。這種設計方法降低了相(xiàng)關組件間的耦合度,提高了(le)功能模塊的複用性,便於功能模塊的替換及擴展,使係統的設(shè)計結構(gòu)更加清(qīng)晰。
  
       4、結(jié)語
  
       依(yī)托IPC+UMAC的開放式數(shù)控係統架構中(zhōng)軟件開放性的特(tè)點,在分析(xī)了(le)上位數控軟件功能特點及考(kǎo)慮了硬件設備更換時的係統適應性的(de)基礎上,提出了一種分(fèn)層的上位數控係統軟件架構,並闡述了各層及模塊之間的交互關(guān)係(xì)。之後,將依賴注入機製應用於開放式上位(wèi)數(shù)控軟件各組件問的(de)解耦問題中,結合後置處理模塊內部、以及後置處理模塊和代碼仿真及幹涉檢測模(mó)塊間(jiān)的解耦問題,分別示例了構造子注(zhù)入、設值注入的應用。依賴注入機製(zhì)的使用降低了上位數控軟件各組件(jiàn)間的耦合度,提高了(le)軟件各(gè)模塊的複用性。在開放(fàng)式(shì)數控(kòng)係統應用興起之(zhī)初,本文對構(gòu)建模塊化、可重構(gòu)、可擴展的開放式上位(wèi)數控軟件具有一定的參考價值。
    投稿箱:
        如果您有機床行業、企業相關新聞稿件發表(biǎo),或進行資訊合作(zuò),歡迎聯(lián)係本網編輯部, 郵箱:skjcsc@vip.sina.com
国产999精品2卡3卡4卡丨日韩欧美视频一区二区在线观看丨一区二区三区日韩免费播放丨九色91精品国产网站丨XX性欧美肥妇精品久久久久久丨久久久久国产精品嫩草影院丨成人免费a级毛片丨五月婷婷六月丁香综合