開放(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
如果您有機床行業、企業相關新聞稿件發表(biǎo),或進行資訊合作(zuò),歡迎聯(lián)係本網編輯部, 郵箱:skjcsc@vip.sina.com
更多相關信息
業界視點
| 更多
行業數據
| 更多
- 2024年11月 金屬切削機床產量數據
- 2024年11月 分(fèn)地區金屬切削機(jī)床產量數據
- 2024年(nián)11月(yuè) 軸承出口情況
- 2024年11月 基本型乘用(yòng)車(轎(jiào)車)產量數(shù)據
- 2024年11月 新能(néng)源汽車產量數據
- 2024年11月 新能源汽車(chē)銷量情(qíng)況
- 2024年(nián)10月 新能源汽(qì)車產量數據
- 2024年10月 軸承出口情況
- 2024年10月 分地區(qū)金屬切削機床產量數據
- 2024年10月 金屬切削機床產(chǎn)量數據
- 2024年9月 新能源汽車銷量情況
- 2024年8月 新能源汽車產量數據
- 2028年8月 基(jī)本(běn)型乘用車(轎車)產量數據
博文選萃
| 更多
- 機械加工過程圖示
- 判斷一(yī)台加工(gōng)中(zhōng)心精度的幾(jǐ)種辦法
- 中走絲線切割機(jī)床的發展趨(qū)勢
- 國產數控係統和數(shù)控機(jī)床何去何從?
- 中國的技術工人都去哪(nǎ)裏了?
- 機械老板(bǎn)做了十多年,為何(hé)還是小作坊(fāng)?
- 機械行業最新自殺性營銷,害人害己!不倒(dǎo)閉才
- 製造業大逃亡
- 智能時代,少(shǎo)談點智造,多談點製造
- 現實麵前,國(guó)人沉默(mò)。製造業(yè)的騰飛,要從機床
- 一文(wén)搞(gǎo)懂數(shù)控車床加工刀(dāo)具補償功能
- 車床鑽孔攻螺紋加(jiā)工(gōng)方法及工裝設(shè)計
- 傳統鑽削與螺旋銑孔加工工藝的(de)區別