開放式上位數(shù)控軟件架構及其組件間解耦問題研究
2018-3-1 來源:燕山大學 河北省計算機 北京機床所 作者:李志明 李衛(wèi)超 田夢 吳榮華 王瓊瓊
摘要:在分析上位數(shù)控軟件功能特點的基礎上。考慮開放式數(shù)控系統(tǒng)中關鍵部件更換時軟件適應性,提出一種分層的開放式上位數(shù)控系統(tǒng)軟件架構,并簡述了各層及模塊之間的交互關系;將依賴注入機制應用于開放式上位數(shù)控軟件各組件間的解耦問題中,以后置處理模塊內部、以及后置處理模塊與代碼仿真及干涉檢測模塊間的解耦問題為例。分別說明了構造子注入、設值注入的使用方法。
關鍵詞:開放式數(shù)控系統(tǒng);軟件架構;依賴注入;解耦
數(shù)控系統(tǒng)在諸多高端裝備中均處于核心地位,直接影響著裝備性能的優(yōu)劣。專用數(shù)控系統(tǒng)的封閉性致使無法將最新的軟硬件技術成果融人數(shù)控系統(tǒng)之中,嚴重地阻礙了數(shù)控技術的發(fā)展,使之難以適應互聯(lián)網(wǎng)+、中國制造2025等新戰(zhàn)略要求。因此,開放式數(shù)控系統(tǒng)逐漸成為了數(shù)控技術發(fā)展的主流,其應用也日益廣泛。
在常見的3種開放式數(shù)控系統(tǒng)結構中,“IPC+開放式運動控制器”方式,憑借其自身硬軟件平臺良好的開放性及便捷性,應用較多。在該方式中,開放式數(shù)控系統(tǒng)軟件具有統(tǒng)領性作用,且其復雜程度較高,例如各坐標軸運動狀態(tài)、機床狀態(tài)等信息顯示、NC代碼編輯與下載,運動軌跡預覽及仿真、參數(shù)設置、外圍設備控制與檢測等,均需通過數(shù)控系統(tǒng)的UI界面加以體現(xiàn);此外,還有許多用戶不可見的重要功能模塊,如NC代碼語法檢查、機床運動坐標變化、路徑優(yōu)化及NC代碼生成等模塊。
目前,我國在開放式數(shù)控系統(tǒng)軟件架構方面的研究開展的較少,缺乏該方面軟件架構實施的資料和規(guī)范,尚未形成完善的、統(tǒng)一的架構體系心J。此外,在開放式數(shù)控系統(tǒng)軟件研發(fā)過程中,某項功能的實現(xiàn)往往需要多個模塊協(xié)作完成;模塊與模塊之間的耦合難以避免,而過度的耦合則會嚴重影響開放式數(shù)控系統(tǒng)軟件的擴展性、移植性、維護性。
本文以項目組研發(fā)的開放式精密激光切割數(shù)控系統(tǒng)平臺為基礎,對開放式上位數(shù)控系統(tǒng)軟件架構問題進行研究,并將依賴注入原理(又稱控制反轉)運用到組件間的解耦問題之中,以期建立一個模塊化、可重構、可擴展的開放式數(shù)控系統(tǒng)平臺。
1 、基于UMAC的開放式數(shù)控系統(tǒng)硬件架構
本文中開放式數(shù)控系統(tǒng)硬件架構以IPC和UMAC為基礎構建,其硬件結構示意如圖l所示。在該架構中,用戶可充分利用IPC的軟硬件資源,融合最新的信息技術及個性化需求,對運行于IPC中的上位數(shù)控軟件進行自主開發(fā)。上位數(shù)控軟件的作用主要是實現(xiàn)實時性要求不是很高的人機交互功能;UMAC運動控制器一般由電源模塊、通用CPU板、軸擴展卡、I/O卡和具有特定功能的附件板卡等構成,是該架構的核心所在,主要實現(xiàn)實時性要求很高的NC代碼解釋、插補運算、運動控制、軟PLC程序執(zhí)行等功能。該硬件架構兼具靈活性和穩(wěn)定性,開發(fā)效率高,可滿足專用數(shù)控系統(tǒng)難以滿足的個性化功能需求。

圖1開放式敦控系統(tǒng)硬件平臺示意
從圖l中可以發(fā)現(xiàn),上位數(shù)控軟件是重要的人機接口之一,對整個數(shù)控系統(tǒng)具有統(tǒng)領性作用;其穩(wěn)定性、可靠性對整套數(shù)控裝備的性能具有重要的影響。軟件架構決定了軟件的品質,在軟件開發(fā)中占有重要地位。因此,在開放式數(shù)控系統(tǒng)方興未艾之時,對上位數(shù)控軟件的架構問題展開研究顯得尤為必要。
2、開放式數(shù)控系統(tǒng)軟件架構
開放式數(shù)控系統(tǒng)軟件由IPC中的上位數(shù)控軟件和UMAC中的下位軟PLC程序兩部分組成,是開放式數(shù)控裝備的靈魂所在。UMAC中的軟PLC程序的架構問題詳見文獻[3];IPC中的上位數(shù)控軟件架構及組件間解耦問題是本文的研究重點。
2.1上位數(shù)控軟件功能
軟件的開放性是開放式數(shù)控系統(tǒng)的特點之一,也就是說,開放式數(shù)控系統(tǒng)允許用戶開發(fā)常規(guī)的、個性化的數(shù)控功能以及軟件系統(tǒng)集成。就常規(guī)功能而言,可分為用戶可見的人機交互功能和用戶不可見的數(shù)據(jù)及業(yè)務處理功能;本文分別稱之為顯性功能和隱性功能。常見的顯性功能有CNC各類狀態(tài)顯示、參數(shù)設置、工藝檔案、NC代碼仿真、MDI等功能;常見的隱性功能有后置處理、NC代碼語法檢查、故障診斷與報警、連鎖控制邏輯、與運動控制器及外設交互等。為了配合開放式數(shù)控系統(tǒng)的硬件開放性,增強上位數(shù)控軟件的生命力,還應從架構角度著重考慮軟件對核心設備及部件更換的適應能力,如運動控制器、激光器的更換情況。
由此可見,開放式數(shù)控系統(tǒng)的功能模塊繁多,且模塊間依賴關系復雜。因此,要開發(fā)一套穩(wěn)定可靠、性能良好,適應性及可擴展性強,易維護的上位數(shù)控軟件,架構問題則應是要考慮的首要問題。
2.2上位數(shù)控軟件架構研究
常用的軟件架構類型有MVC架構、分層架構H J、微內核架構”J、元模型架構∞o和管道一過濾器架構等。
在上位數(shù)控軟件架構類型選取時,從用戶數(shù)量、界面復雜程度、人機交互頻度、業(yè)務邏輯復雜度以及系統(tǒng)的擴展性、移植性和互換性等角度考慮,最終選取分層架構模式。分層架構中各層之間通過定義好的接口進行通信。上層僅使用下層提供的服務而無需知道下層的細節(jié),這使得在接口不變的前提下可以對某一層或者某層中的部分功能進行無損替換,從而降低系統(tǒng)間的依賴程度并在較大程度上保證了系統(tǒng)的可擴展性。分層架構將原本復雜的系統(tǒng)分開,有利于分化系統(tǒng)的復雜性,使開發(fā)人員可以專注于某一層的細節(jié)。
本文通過對上位數(shù)控系統(tǒng)整個流程進行研究,并綜合考慮開放程度和集成代價,得到“系統(tǒng)一模塊一組件”的組成結構,將開放式上位數(shù)控系統(tǒng)軟件分為人機交互層、業(yè)務邏輯層、通訊協(xié)議層和數(shù)據(jù)服務層。上位數(shù)控軟件架構分層如圖2所示。

圖2開放式致控系統(tǒng)上位機軟件架構
圖2中,人機交互層主要用于用戶操作指令與數(shù)控系統(tǒng)狀態(tài)和參數(shù)之間的交互,如坐標及速度顯示、機床狀態(tài)顯示、參數(shù)設置、工藝檔案管理等。
業(yè)務邏輯層負責對相關數(shù)據(jù)進行數(shù)控業(yè)務知識的處理,是對數(shù)控領域內各對象的抽象,由后置處理、故障診斷、代碼仿真及檢測、權限管理等模塊組成,具有承上啟下的作用,是整個上位數(shù)控軟件的核心部分。
通訊協(xié)議層負責上位數(shù)控軟件與UMAC、外設、以及數(shù)據(jù)庫之間的通訊工作,由運動控制器通訊協(xié)議包、網(wǎng)絡通訊協(xié)議和數(shù)據(jù)庫操作封裝等組成。通訊協(xié)議層對上層服務接口的定義,應考慮不同主流廠商的設備通訊協(xié)議,盡量定義一致的接口,從而增強設備更換時的系統(tǒng)適應性,如開放式運動控制器的更換、激光加工系統(tǒng)中激光器的更換等。
數(shù)據(jù)服務層的主要功能是實現(xiàn)數(shù)據(jù)存儲,如工藝檔案、材料檔案、機床特性、系統(tǒng)故障診斷表等。圖2中所示的開放式上位數(shù)控系統(tǒng)各層及模塊間的交互關系如圖3所示。

圖3開放式數(shù)控系統(tǒng)各層及模塊問的交互關系
通常,分層架構與依賴注入機制一起使用,實現(xiàn)層與層之間的“可替換”式設計。在此基礎上,本文還將依賴注入應用到了組件間的解耦之中,從而在很大程度上降低了上位數(shù)控軟件中各組件之間的耦合度。
3、組件間的解耦設計
耦合度是指模塊或組件間的依賴關系,包括控制關系、調用關系、數(shù)據(jù)傳遞關系。對于絕大部分軟件來說,在軟件設計階段便確定了各模塊的控制關系、調用關系和數(shù)據(jù)傳遞關系;在編碼階段中,控制關系和數(shù)據(jù)傳遞關系造成的耦合無法進一步優(yōu)化,而調用關系造成的耦合則可以通過使用合適的設計模式得到很大程度的改善。
在常規(guī)的軟件開發(fā)過程中,組件的實例化通常在其他相關組件中完成。這種依賴關系造成的耦合降低了組件的可移植性和可替換性。針對這個問題,本文將依賴注入設計模式應用于上位數(shù)控軟件的各組件的設計之中,從而有效降低了組件間的耦合度。
3.1依賴注入模式簡介
依賴注入[71有3種模式:接口注人、設值注入和構造子注入;其中設值注入和構造子注入是目前主流的實現(xiàn)模式。設值注入方式簡潔、便利,適宜在組件依賴關系較為復雜時使用。構造子注入在構造組件時完成依賴關系的設定,能讓組件在被創(chuàng)建后就處于相對穩(wěn)定的狀態(tài),適宜在組件的依賴關系相對簡單時使用。在實際開發(fā)中,以構造子注人為主,設值注入為輔,會達到較好的效果坤J。
Castle是基于.NET平臺的開源項目,囊括了ORM、IoC容器、MVC框架、AOP等,為開發(fā)人員構建應用程序提供了強大的支持。Windsor Container是Castle的IoC容器,可以實現(xiàn)對組件生命周期、組件間依賴關系的管理。
3.2應用構造子注入解耦示例
后置處理模塊根據(jù)當前機床特性信息、系統(tǒng)特性信息和刀位文件信息生成正確的NC代碼。圖4為后置處理模塊最初的依賴關系圖,圖5為運用依賴注入原理將依賴關系提取后的依賴關系。

圖4后置處理的原始依慧關系

圈5后置處理應用構造子注入后的依藏關系
機床特性信息組件、系統(tǒng)特性信息組件和刀位文件信息組件在容器中完成實例化,之后由容器將實例化后的對象注入到后置處理組件中。后置處理組件對于機床特性信息、系統(tǒng)特性信息和刀位文件信息的依賴是固定不變的,適合使用構造子注入的注入方式,這樣使得組件被創(chuàng)建后就具備了正確運行必要的參數(shù),使組件處于相對穩(wěn)定的狀態(tài)。
后置處理組件中構造子注人代碼示例如下:

3.3應用設值注入解耦示例
代碼仿真與干涉檢測模塊負責對后置處理模塊產(chǎn)生的NC代碼進行仿真和干涉檢測,檢測通過后的NC代碼才能在機床上實際運行。此時,代碼仿真與干涉檢測模塊依賴于后置處理模塊,圖6為二者最初的依賴關系,圖7為應用依賴注入原理將依賴關系提取后,后置處理組件和代碼仿真與干涉檢測組件的依賴關系。后置處理功能組件在容器中進行實例化,之后該實例由容器注入到代碼仿真與干涉檢測組件中,由于代碼的仿真及干涉檢測不但支持對后置處理功能所生成NC代碼的檢測,還支持用戶自己編寫NC代碼的檢測,并且對于程序中使用的某些第三方類庫而言,可能要求組件必須提供一個默認的構造函數(shù),此時構造子注入模式就體現(xiàn)出其局限性‘9|,此時合適的依賴注入方式應為設值注人。


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


文中采用的Windsor container容器可以自動管理組件間的依賴關系,無需用戶去編寫XML配置文件或者通過Attribute來指定容器之間的依賴關系舊o,當某個功能模塊的接口有新的實現(xiàn)時只需要修改容器中相應代碼即可。這種設計方法降低了相關組件間的耦合度,提高了功能模塊的復用性,便于功能模塊的替換及擴展,使系統(tǒng)的設計結構更加清晰。
4、結語
依托IPC+UMAC的開放式數(shù)控系統(tǒng)架構中軟件開放性的特點,在分析了上位數(shù)控軟件功能特點及考慮了硬件設備更換時的系統(tǒng)適應性的基礎上,提出了一種分層的上位數(shù)控系統(tǒng)軟件架構,并闡述了各層及模塊之間的交互關系。之后,將依賴注入機制應用于開放式上位數(shù)控軟件各組件問的解耦問題中,結合后置處理模塊內部、以及后置處理模塊和代碼仿真及干涉檢測模塊間的解耦問題,分別示例了構造子注入、設值注入的應用。依賴注入機制的使用降低了上位數(shù)控軟件各組件間的耦合度,提高了軟件各模塊的復用性。在開放式數(shù)控系統(tǒng)應用興起之初,本文對構建模塊化、可重構、可擴展的開放式上位數(shù)控軟件具有一定的參考價值。
投稿箱:
如果您有機床行業(yè)、企業(yè)相關新聞稿件發(fā)表,或進行資訊合作,歡迎聯(lián)系本網(wǎng)編輯部, 郵箱:skjcsc@vip.sina.com
如果您有機床行業(yè)、企業(yè)相關新聞稿件發(fā)表,或進行資訊合作,歡迎聯(lián)系本網(wǎng)編輯部, 郵箱:skjcsc@vip.sina.com
更多相關信息
業(yè)界視點
| 更多
行業(yè)數(shù)據(jù)
| 更多
- 2025年6月 新能源汽車銷量情況
- 2025年6月 新能源汽車產(chǎn)量數(shù)據(jù)
- 2025年6月 基本型乘用車(轎車)產(chǎn)量數(shù)據(jù)
- 2025年6月 軸承出口情況
- 2025年6月 分地區(qū)金屬切削機床產(chǎn)量數(shù)據(jù)
- 2025年6月 金屬切削機床產(chǎn)量數(shù)據(jù)
- 2025年5月 新能源汽車銷量情況
- 2025年5月 新能源汽車產(chǎn)量數(shù)據(jù)
- 2025年5月 基本型乘用車(轎車)產(chǎn)量數(shù)據(jù)
- 2025年5月 軸承出口情況
- 2025年5月 分地區(qū)金屬切削機床產(chǎn)量數(shù)據(jù)
- 2025年5月 金屬切削機床產(chǎn)量數(shù)據(jù)
- 2025年4月 新能源汽車銷量情況