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

開放式上位數控軟件架構及其組件間解耦問題研究*

2016-08-31 06:44:48李志明李衛超吳榮華王瓊瓊
制造技術與機床 2016年2期

李志明 李衛超 田 夢 吳榮華 王瓊瓊

(①燕山大學信息科學與工程學院(軟件學院),河北 秦皇島 066004 ②河北省計算機虛擬技術與系統集成重點實驗室,河北 秦皇島 066004 ③北京機床所精密機電有限公司,北京 100102)

?

開放式上位數控軟件架構及其組件間解耦問題研究*

李志明①②李衛超①②田夢①②吳榮華③王瓊瓊①②

(①燕山大學信息科學與工程學院(軟件學院),河北 秦皇島 066004②河北省計算機虛擬技術與系統集成重點實驗室,河北 秦皇島 066004③北京機床所精密機電有限公司,北京 100102)

在分析上位數控軟件功能特點的基礎上,考慮開放式數控系統中關鍵部件更換時軟件適應性,提出一種分層的開放式上位數控系統軟件架構,并簡述了各層及模塊之間的交互關系;將依賴注入機制應用于開放式上位數控軟件各組件間的解耦問題中,以后置處理模塊內部、以及后置處理模塊與代碼仿真及干涉檢測模塊間的解耦問題為例,分別說明了構造子注入、設值注入的使用方法。

開放式數控系統;軟件架構;依賴注入;解耦

數控系統在諸多高端裝備中均處于核心地位,直接影響著裝備性能的優劣。專用數控系統的封閉性致使無法將最新的軟硬件技術成果融入數控系統之中,嚴重地阻礙了數控技術的發展,使之難以適應互聯網+、中國制造2025等新戰略要求。因此,開放式數控系統逐漸成為了數控技術發展的主流,其應用也日益廣泛。

在常見的3種開放式數控系統結構[1]中,“IPC+開放式運動控制器”方式,憑借其自身硬軟件平臺良好的開放性及便捷性,應用較多。在該方式中,開放式數控系統軟件具有統領性作用,且其復雜程度較高,例如各坐標軸運動狀態、機床狀態等信息顯示、NC代碼編輯與下載,運動軌跡預覽及仿真、參數設置、外圍設備控制與檢測等,均需通過數控系統的UI界面加以體現;此外,還有許多用戶不可見的重要功能模塊,如NC代碼語法檢查、機床運動坐標變化、路徑優化及NC代碼生成等模塊。

目前,我國在開放式數控系統軟件架構方面的研究開展的較少,缺乏該方面軟件架構實施的資料和規范,尚未形成完善的、統一的架構體系[2]。此外,在開放式數控系統軟件研發過程中,某項功能的實現往往需要多個模塊協作完成;模塊與模塊之間的耦合難以避免,而過度的耦合則會嚴重影響開放式數控系統軟件的擴展性、移植性、維護性。

本文以項目組研發的開放式精密激光切割數控系統平臺為基礎,對開放式上位數控系統軟件架構問題進行研究,并將依賴注入原理(又稱控制反轉)運用到組件間的解耦問題之中,以期建立一個模塊化、可重構、可擴展的開放式數控系統平臺。

1 基于UMAC的開放式數控系統硬件架構

本文中開放式數控系統硬件架構以IPC和UMAC為基礎構建,其硬件結構示意如圖1所示。在該架構中,用戶可充分利用IPC的軟硬件資源,融合最新的信息技術及個性化需求,對運行于IPC中的上位數控軟件進行自主開發。上位數控軟件的作用主要是實現實時性要求不是很高的人機交互功能;UMAC 運動控制器一般由電源模塊、通用 CPU 板、軸擴展卡、I/O 卡和具有特定功能的附件板卡等構成,是該架構的核心所在,主要實現實時性要求很高的NC代碼解釋、插補運算、運動控制、軟PLC程序執行等功能。該硬件架構兼具靈活性和穩定性,開發效率高,可滿足專用數控系統難以滿足的個性化功能需求。

從圖1中可以發現,上位數控軟件是重要的人機接口之一,對整個數控系統具有統領性作用;其穩定性、可靠性對整套數控裝備的性能具有重要的影響。軟件架構決定了軟件的品質,在軟件開發中占有重要地位。因此,在開放式數控系統方興未艾之時,對上位數控軟件的架構問題展開研究顯得尤為必要。

2 開放式數控系統軟件架構

開放式數控系統軟件由IPC中的上位數控軟件和UMAC中的下位軟PLC程序兩部分組成,是開放式數控裝備的靈魂所在。UMAC中的軟PLC程序的架構問題詳見文獻[3];IPC中的上位數控軟件架構及組件間解耦問題是本文的研究重點。

2.1上位數控軟件功能

軟件的開放性是開放式數控系統的特點之一,也就是說,開放式數控系統允許用戶開發常規的、個性化的數控功能以及軟件系統集成。就常規功能而言,可分為用戶可見的人機交互功能和用戶不可見的數據及業務處理功能;本文分別稱之為顯性功能和隱性功能。

常見的顯性功能有CNC各類狀態顯示、參數設置、工藝檔案、NC代碼仿真、MDI等功能;常見的隱性功能有后置處理、NC代碼語法檢查、故障診斷與報警、連鎖控制邏輯、與運動控制器及外設交互等。為了配合開放式數控系統的硬件開放性,增強上位數控軟件的生命力,還應從架構角度著重考慮軟件對核心設備及部件更換的適應能力,如運動控制器、激光器的更換情況。

由此可見,開放式數控系統的功能模塊繁多,且模塊間依賴關系復雜。因此,要開發一套穩定可靠、性能良好,適應性及可擴展性強,易維護的上位數控軟件,架構問題則應是要考慮的首要問題。

2.2上位數控軟件架構研究

常用的軟件架構類型有MVC架構、分層架構[4]、微內核架構[5]、元模型架構[6]和管道-過濾器架構等。

在上位數控軟件架構類型選取時,從用戶數量、界面復雜程度、人機交互頻度、業務邏輯復雜度以及系統的擴展性、移植性和互換性等角度考慮,最終選取分層架構模式。分層架構中各層之間通過定義好的接口進行通信。上層僅使用下層提供的服務而無需知道下層的細節,這使得在接口不變的前提下可以對某一層或者某層中的部分功能進行無損替換,從而降低系統間的依賴程度并在較大程度上保證了系統的可擴展性。分層架構將原本復雜的系統分開,有利于分化系統的復雜性,使開發人員可以專注于某一層的細節。

本文通過對上位數控系統整個流程進行研究,并綜合考慮開放程度和集成代價,得到“系統—模塊—組件”的組成結構,將開放式上位數控系統軟件分為人機交互層、業務邏輯層、通訊協議層和數據服務層。上位數控軟件架構分層如圖2所示。

圖2中,人機交互層主要用于用戶操作指令與數控系統狀態和參數之間的交互,如坐標及速度顯示、機床狀態顯示、參數設置、工藝檔案管理等。

業務邏輯層負責對相關數據進行數控業務知識的處理,是對數控領域內各對象的抽象,由后置處理、故障診斷、代碼仿真及檢測、權限管理等模塊組成,具有承上啟下的作用,是整個上位數控軟件的核心部分。

通訊協議層負責上位數控軟件與UMAC、外設、以及數據庫之間的通訊工作,由運動控制器通訊協議包、網絡通訊協議和數據庫操作封裝等組成。通訊協議層對上層服務接口的定義,應考慮不同主流廠商的設備通訊協議,盡量定義一致的接口,從而增強設備更換時的系統適應性,如開放式運動控制器的更換、激光加工系統中激光器的更換等。

數據服務層的主要功能是實現數據存儲,如工藝檔案、材料檔案、機床特性、系統故障診斷表等。

圖2中所示的開放式上位數控系統各層及模塊間的交互關系如圖3所示。

通常,分層架構與依賴注入機制一起使用,實現層與層之間的“可替換”式設計。在此基礎上,本文還將依賴注入應用到了組件間的解耦之中,從而在很大程度上降低了上位數控軟件中各組件之間的耦合度。

3 組件間的解耦設計

耦合度是指模塊或組件間的依賴關系,包括控制關系、調用關系、數據傳遞關系。對于絕大部分軟件來說,在軟件設計階段便確定了各模塊的控制關系、調用關系和數據傳遞關系;在編碼階段中,控制關系和數據傳遞關系造成的耦合無法進一步優化,而調用關系造成的耦合則可以通過使用合適的設計模式得到很大程度的改善。

在常規的軟件開發過程中,組件的實例化通常在其他相關組件中完成。這種依賴關系造成的耦合降低了組件的可移植性和可替換性。針對這個問題,本文將依賴注入設計模式應用于上位數控軟件的各組件的設計之中,從而有效降低了組件間的耦合度。

3.1依賴注入模式簡介

依賴注入[7]有3種模式:接口注入、設值注入和構造子注入;其中設值注入和構造子注入是目前主流的實現模式。設值注入方式簡潔、便利,適宜在組件依賴關系較為復雜時使用。構造子注入在構造組件時完成依賴關系的設定,能讓組件在被創建后就處于相對穩定的狀態,適宜在組件的依賴關系相對簡單時使用。在實際開發中,以構造子注入為主,設值注入為輔,會達到較好的效果[8]。

Castle是基于.NET平臺的開源項目,囊括了ORM、IoC容器、MVC框架、AOP等,為開發人員構建應用程序提供了強大的支持。Windsor Container是Castle的IoC容器,可以實現對組件生命周期、組件間依賴關系的管理。

3.2應用構造子注入解耦示例

后置處理模塊根據當前機床特性信息、系統特性信息和刀位文件信息生成正確的NC代碼。圖4為后置處理模塊最初的依賴關系圖,圖5為運用依賴注入原理將依賴關系提取后的依賴關系。

機床特性信息組件、系統特性信息組件和刀位文件信息組件在容器中完成實例化,之后由容器將實例化后的對象注入到后置處理組件中。后置處理組件對于機床特性信息、系統特性信息和刀位文件信息的依賴是固定不變的,適合使用構造子注入的注入方式,這樣使得組件被創建后就具備了正確運行必要的參數,使組件處于相對穩定的狀態。

后置處理組件中構造子注入代碼示例如下:

//刀位文件信息

private IDLDataInfo iDLDataInfo;

//機床特性信息

private IMachineToolInfo iMachineToolInfo;

//系統特性信息

private ISystemInfo iSystemInfo;

//構造函數,構建依賴關系

public PostProcessor(IDLDataInfo dlDataInfo,IMachineToolInfo machineToolInfo,ISystemInfo systemInfo)

{

this.iDLDataInfo = dlDataInfo;

this.iMachineToolInfo = machineToolInfo;

this.iSystemInfo = systemInfo;

}

3.3應用設值注入解耦示例

代碼仿真與干涉檢測模塊負責對后置處理模塊產生的NC代碼進行仿真和干涉檢測,檢測通過后的NC代碼才能在機床上實際運行。此時,代碼仿真與干涉檢測模塊依賴于后置處理模塊,圖6為二者最初的依賴關系,圖7為應用依賴注入原理將依賴關系提取后,后置處理組件和代碼仿真與干涉檢測組件的依賴關系。

后置處理功能組件在容器中進行實例化,之后該實例由容器注入到代碼仿真與干涉檢測組件中,由于代碼的仿真及干涉檢測不但支持對后置處理功能所生成NC代碼的檢測,還支持用戶自己編寫NC代碼的檢測,并且對于程序中使用的某些第三方類庫而言,可能要求組件必須提供一個默認的構造函數,此時構造子注入模式就體現出其局限性[9],此時合適的依賴注入方式應為設值注入。

代碼仿真及干涉檢測組件中設值注入代碼示例如下:

//后置處理

private IPostProcessor _Post;

//設值注入

public IPostProcessor Post

{

get { return this. _Post; }

set { this. _Post = value; }

}

容器中部分代碼示例如下:

//建立容器

IWindsorContainercontainer=new indsorContainer(newXmlInterpreter(("../../BasicUsage.XML") );

//加入組件

container.AddComponent("machinetoolinfo",typeof(IMachineToolInfo),typeof(MachineToolInfo));

container.AddComponent("systeminfo",typeof(ISystemInfo),typeof(SystemInfo));

container.AddComponent("dldatainfo",typeof(IDLDataInfo),typeof(DLDataInfo));

container.AddComponent( "post",typeof(IPostProcessor),typeof(PostProcessor));

container.AddComponent( "ncsimulation",typeof(ICodeSimulation),typeof(CodeSimulation) );

//獲取組件

PostProcessor post=(PostProcessor)container["post"];

CodeSimulation code=(CodeSimulation)container["ncsimulation"];

code.Post = post;

//使用組件

string ncCode=post.OutPutNCCode();

文中采用的Windsor container容器可以自動管理組件間的依賴關系,無需用戶去編寫XML配置文件或者通過Attribute來指定容器之間的依賴關系[8],當某個功能模塊的接口有新的實現時只需要修改容器中相應代碼即可。這種設計方法降低了相關組件間的耦合度,提高了功能模塊的復用性,便于功能模塊的替換及擴展,使系統的設計結構更加清晰。

4 結語

依托IPC+UMAC的開放式數控系統架構中軟件開放性的特點,在分析了上位數控軟件功能特點及考慮了硬件設備更換時的系統適應性的基礎上,提出了一種分層的上位數控系統軟件架構,并闡述了各層及模塊之間的交互關系。之后,將依賴注入機制應用于開放式上位數控軟件各組件間的解耦問題中,結合后置處理模塊內部、以及后置處理模塊和代碼仿真及干涉檢測模塊間的解耦問題,分別示例了構造子注入、設值注入的應用。依賴注入機制的使用降低了上位數控軟件各組件間的耦合度,提高了軟件各模塊的復用性。在開放式數控系統應用興起之初,本文對構建模塊化、可重構、可擴展的開放式上位數控軟件具有一定的參考價值。

[1]Zhou L, Yuan J L, Gao P, et al. A new architecture of open CNC system based on compiling mode [J]. The International Journal of Advanced Manufacturing Technology,2014,73:1597-1603.

[2]楊梅. 基于DSP的自動焊錫機開放式控制系統的開發[D].廣州:華南理工大學,2013:3-4.

[3]李志明,李衛超,吳榮華,等. 開放式精密激光切割數控系統軟PLC程序設計方法[J].制造技術與機床,2015(4):97-101.

[4]福勒.企業應用架構模式 [M].王懷民,周斌,譯.北京:機械工業出版社,2010:12-17.

[5]孫永清,林九川,錢偉. Hyper-V微內核架構安全性分析[J]. 武漢理工大學學報,2010,32(15):130-132.

[6]閆喜強,李彥,李文強, 等.元模型的復雜產品多學科信息建模方法[J]. 計算機輔助設計與圖形學學報,2013,25(10):1540-1548.

[7]Kamil Jezek, Lukas Holy, Premek Brada. Dependency injection refined by extra-functional properties [J]. 2012 IEEE Symposium on Visual Languages and Human-Centric Computing,2012:255-256.

[8]馬立林. 基于Castle面向用戶的實驗室管理系統的設計與實現[D].南昌:南昌大學,2010:18-25.

[9]閆軒. 基于AOP/IOC技術的電信行業統一接口平臺系統的設計與實現[D].北京:中國科學院大學,2013:17-18.

(編輯譚弘穎)

如果您想發表對本文的看法,請將文章編號填入讀者意見調查表中的相應位置。

Research on the upper computer software architecture and its decoupling problem of components

LI Zhiming①②, LI Weichao①②,TIAN Meng①②, WU Ronghua③, WANG Qiongqiong①②

(①School of Information Science and Engineering (Software), Yanshan University, Qinhuangdao 066004, CHN;②The Key Laboratory for Computer Virtual Technology and System Integration of Hebei Province,Qinhuangdao 066004, CHN;③BMTRI Precision Mechatronics Co.,Ltd., Beijing 100102, CHN)

On the basis of analyzing the functions of the upper computer software, and the software adaptability when the key parts in the open CNC system replaced is considered, a layered software architecture of upper computer software is proposed, and the relationships among layers and modules are explained. The dependency injection mechanism is applied to the decoupling problem among the components of upper computer software. Taking the decoupling problem in post-processing module and the decoupling problem between post-processing module and code simulation and interference detection module for example, the application of the constructor injection and the setter injection are described respectively.

open CNC system; software architecture; dependency injection; decoupling

TP311. 1

B

李志明,男,1978年生,博士,副教授,主要從事數控及制造裝備信息化、計算機測控技術、軟件工程方面的研究工作,已發表學術論文近20篇,承擔、參與多項省部級科研項目。

2015-09-14)

160221

*2012年科技部專項閥芯精密激光切割機成套工藝與裝備研發(JK12-0301);2013年河北省科技支撐計劃項目開放式精密激光切割數控系統軟件架構研究(13211828)

主站蜘蛛池模板: 一级毛片在线免费视频| 五月婷婷综合在线视频| 中文字幕亚洲另类天堂| 久无码久无码av无码| 欧美亚洲另类在线观看| 久久99这里精品8国产| 国产精品欧美亚洲韩国日本不卡| 97se亚洲| 免费一级大毛片a一观看不卡| 91免费观看视频| 亚洲成年网站在线观看| 国产毛片久久国产| 中文字幕在线欧美| 五月婷婷丁香色| 欧美在线黄| 无码区日韩专区免费系列| 青青久视频| 久久亚洲国产一区二区| 精品国产成人av免费| 国产99视频在线| 亚洲一区二区成人| www.精品国产| 一本无码在线观看| 高清欧美性猛交XXXX黑人猛交| 99视频在线免费看| 在线观看国产黄色| 成年人国产视频| 美女无遮挡免费网站| 国产女人18水真多毛片18精品| 女人18毛片久久| 国产精品熟女亚洲AV麻豆| 99人妻碰碰碰久久久久禁片| 国产午夜无码专区喷水| 日本国产在线| 久久夜色精品国产嚕嚕亚洲av| 青青草国产精品久久久久| 九九久久99精品| 国产精品一线天| 国产亚洲欧美在线专区| 久久中文字幕2021精品| 97成人在线观看| 亚洲系列无码专区偷窥无码| a毛片在线免费观看| 国产va在线观看免费| 国产91线观看| 国产成人一区| 国产日韩欧美一区二区三区在线 | 国产不卡在线看| 成人字幕网视频在线观看| 青青操视频免费观看| 漂亮人妻被中出中文字幕久久| 国产精品30p| 亚洲国产天堂在线观看| 热99re99首页精品亚洲五月天| 免费国产好深啊好涨好硬视频| 国产波多野结衣中文在线播放| www.亚洲色图.com| 一级成人a做片免费| 中文字幕丝袜一区二区| 成人综合网址| 亚洲综合在线网| 国产精鲁鲁网在线视频| 国产午夜无码片在线观看网站| a天堂视频| 亚洲国产精品一区二区高清无码久久| 精品国产网站| 精品伊人久久久久7777人| 四虎精品国产永久在线观看| 狠狠操夜夜爽| 在线播放精品一区二区啪视频| 午夜成人在线视频| 亚洲香蕉久久| 国产精品香蕉| 91在线中文| 一级毛片免费观看不卡视频| 欧美日韩国产在线播放| 免费三A级毛片视频| 欧美影院久久| 色悠久久久| 国产精品吹潮在线观看中文| 欧美一级在线播放| 亚洲成人高清在线观看|