0 引言
近年來(lái),國(guó)內(nèi)的數(shù)控產(chǎn)業(yè)發(fā)展態(tài)勢(shì)良好,用戶對(duì)產(chǎn)品的復(fù)雜度、加工精度、加工效率要求越來(lái)越高,對(duì)投資成本的控制愈加嚴(yán)格。一些多任務(wù)機(jī)床如車銑復(fù)合機(jī)床、雙刀架的車床及多工位的銑槽機(jī)床等逐漸成為數(shù)控機(jī)床用戶的首選。目前此類機(jī)床基本由機(jī)床公司或機(jī)床用戶聯(lián)合數(shù)控廠家進(jìn)行定制開發(fā),這種專機(jī)具有精簡(jiǎn)高效的特點(diǎn)。但是,這種的定制周期一般很難得到有效的控制,甚至某些定制任務(wù)會(huì)因舊軟件框架的開放性不足而失敗;部分定制成功的系統(tǒng)由于過(guò)于精簡(jiǎn),功能固定、柔性不足,為機(jī)床用戶后續(xù)的產(chǎn)品調(diào)整以及數(shù)控廠家的系統(tǒng)維護(hù)帶來(lái)了極大的麻煩。另外,部分機(jī)床用戶通過(guò)投入大量資金購(gòu)買國(guó)外高檔數(shù)控系統(tǒng)來(lái)應(yīng)付復(fù)雜加工的要求,這對(duì)國(guó)內(nèi)的制造業(yè),尤其是國(guó)防工業(yè)有很大不利因素。
國(guó)外的多功能機(jī)床應(yīng)用形式多樣,一些國(guó)外高檔數(shù)控系統(tǒng)廠家如Siemens840D或Fanuc30得提出了通道控制或路徑控制的概念。多通道控制中,通道與笛卡爾坐標(biāo)空間是一一對(duì)應(yīng)的。多通道數(shù)控系統(tǒng)與多任務(wù)數(shù)控系統(tǒng)的區(qū)別在于,一般多通道數(shù)控系統(tǒng)是針對(duì)同一個(gè)零件的多個(gè)工序在同一臺(tái)數(shù)控系統(tǒng)上的加工,加工時(shí)通道間一般具有時(shí)間或距離上的關(guān)聯(lián)性:而多任務(wù)數(shù)控系統(tǒng)則可以完成不同工藝的多個(gè)工件在同一臺(tái)數(shù)控機(jī)床上的加工任務(wù),任務(wù)間一般不具有關(guān)聯(lián)性。多任務(wù)多通道數(shù)控系統(tǒng)其特點(diǎn)在于:
(1)加工范圍廣:能夠完成傳統(tǒng)功能單一的數(shù)控系統(tǒng)所不能完成的任務(wù),比如雙刀架(雙主軸)數(shù)控車等;
(2)加工效率高:能夠在符合加工工藝的前提下,將傳統(tǒng)串行的工序并行化,比如同時(shí)進(jìn)行車端面與銑鍵槽的工作;
(3)加工精度高:能夠在不更換夾具的情況下,先后完成粗車、精車以及磨削加工;
(4)可重組性高:通過(guò)搭配不同結(jié)構(gòu)的數(shù)控機(jī)床,能夠在一臺(tái)多功能數(shù)控系統(tǒng)上進(jìn)行合理的配置后實(shí)現(xiàn)不同的加工控制,甚至可以實(shí)現(xiàn)在線測(cè)量任務(wù)與在線搬運(yùn)任務(wù),類似于三坐標(biāo)測(cè)量機(jī)與機(jī)器手功能的復(fù)合;
(5)用戶投資少:與傳統(tǒng)的多個(gè)機(jī)床完成同一多工位的加工方案和FNIS相比,其機(jī)床占地面積及用戶投資也減少了。
多任務(wù)數(shù)控系統(tǒng)軟件的設(shè)計(jì)關(guān)鍵在于多任務(wù)數(shù)控系統(tǒng)中數(shù)據(jù)層的映射關(guān)系,人機(jī)界面的清晰及友好,解釋器中對(duì)多通道代碼符號(hào)的辨識(shí),在核心控制層中對(duì)多任務(wù)、多通道的控制調(diào)度等。本文主要從系統(tǒng)軟件設(shè)計(jì)的角度介紹多任務(wù)數(shù)控系統(tǒng)的幾個(gè)重要的方面。文章第二部分介紹了軟件的整體設(shè)計(jì),具體包括多任務(wù)數(shù)控模塊的層次,以及軸組件及PMC組件數(shù)據(jù)庫(kù)的建立與映射;模塊設(shè)計(jì)部分包括多任務(wù)界面模塊設(shè)計(jì)、解釋器擴(kuò)充設(shè)計(jì)以及多任控制狀態(tài)切換設(shè)計(jì)。最后,文章第三部分通過(guò)對(duì)一個(gè)多工位的雙主軸交換的切削的在線仿真與實(shí)際加工驗(yàn)證該設(shè)計(jì)方案的正確性。1 數(shù)控軟件方案設(shè)計(jì)
1.1 整體設(shè)計(jì)
為了讓機(jī)床廠家或機(jī)床用戶在一臺(tái)多功能數(shù)控系統(tǒng)上進(jìn)行合理的配置,實(shí)現(xiàn)對(duì)不同結(jié)構(gòu)的機(jī)床正確控制,就需要系統(tǒng)具有開放性和柔性。因此,軟件整體設(shè)計(jì)階段要考慮支持多任務(wù)結(jié)構(gòu)的合理架構(gòu)以及與多任務(wù)數(shù)據(jù)流有關(guān)的關(guān)鍵數(shù)據(jù)關(guān)系,這可為軟件設(shè)計(jì)中的模塊間接口和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)作支撐。
(1)架構(gòu)層次設(shè)計(jì)
架構(gòu)設(shè)計(jì)主要考慮兩點(diǎn),首先是軟件系統(tǒng)的平臺(tái)方案,其次是軟件層次及模塊劃分。從多任務(wù)控制的角度需要著重考慮平臺(tái)的多線程控制能力,從降低傳統(tǒng)系統(tǒng)多任務(wù)定制的復(fù)雜角度關(guān)注系統(tǒng)的開放性。因此可供選擇的方案有Windows NT與MFCWinCE與wxWidgets(Python)或RTLinux與MFC人機(jī)交互的優(yōu)良性和跨操作系統(tǒng)平臺(tái)移植的可行性免度考慮選擇WinCE與wxWidgets方案。軟件層次按照開放式的軟件結(jié)構(gòu)特點(diǎn),通過(guò)數(shù)據(jù)交互層,使應(yīng)用層與核心控制層分離,該系統(tǒng)的整體框架如圖1所示。與一般的開放式數(shù)控系統(tǒng)結(jié)構(gòu)相比,其特點(diǎn)在于從應(yīng)用層到核心控制層,每層中都必須考慮多任務(wù)相關(guān)的相關(guān)模塊及接口。特別是應(yīng)用層界面的顯示配置模塊、參數(shù)設(shè)置中增加通道參數(shù);數(shù)據(jù)層中增加任務(wù)、通道數(shù)據(jù);核心控制層增加了任務(wù)管理與通道管理模塊,在線程管理中增加了對(duì)任務(wù)及通道的統(tǒng)一管理模塊。
用戶通過(guò)人機(jī)界面選擇某個(gè)通道的C代碼文件,同時(shí)后臺(tái)的程序管理器從數(shù)據(jù)庫(kù)中取出相應(yīng)的G代碼文件送到解釋器,解釋后的程序送到工藝過(guò)程優(yōu)化器,進(jìn)行專家系統(tǒng)的輔助加工工藝過(guò)程分析,以及對(duì)坐標(biāo)點(diǎn)的平滑處理后,根據(jù)系統(tǒng)分析得到的數(shù)據(jù)啟動(dòng)實(shí)時(shí)線程管理器控制各對(duì)應(yīng)任務(wù)、硬件掃描層和PLC控制層。在任務(wù)管理層中統(tǒng)一管理當(dāng)前所有任務(wù)的通道軸及PLC信號(hào)。這樣可以保證多個(gè)通道的工作模式能夠得到一致控制。
(2)數(shù)據(jù)映射關(guān)系
為了使多通道的控制的運(yùn)動(dòng)數(shù)據(jù)與邏輯數(shù)據(jù)能得到正確的映射,使多刀架、多主軸的系統(tǒng)得到有效控制,保證數(shù)控軟件的數(shù)據(jù)流的正確性,需要設(shè)計(jì)與通道有關(guān)的數(shù)據(jù)元素的關(guān)系。這里主要考慮與任務(wù)相關(guān)的數(shù)據(jù)關(guān)系。其中涉及任務(wù)、通道、運(yùn)動(dòng)(邏輯)組件和物理設(shè)備等。
該數(shù)據(jù)組織關(guān)系中,任務(wù)作為所有控制單元的總體數(shù)據(jù)結(jié)構(gòu),其以通道和PLC作為基本單元,而通道含有伺服軸及主軸的相關(guān)信息,PLC屬于PMC組件中的相關(guān)信息,通過(guò)運(yùn)動(dòng)控制單元軸組件及邏輯控制單元PMC組件,最后映射到各個(gè)物理設(shè)備,這樣完成了從任務(wù)到具體設(shè)備之間的元素關(guān)系的建立和相應(yīng)的索引路徑。
1.2 模塊設(shè)計(jì)
(1)界面模塊布局設(shè)計(jì)
多任務(wù)數(shù)控系統(tǒng)軟件相比于傳統(tǒng)的數(shù)控系統(tǒng)軟件,界面有很大的區(qū)別,比如任務(wù)、通道視窗的布局顯示,以及在動(dòng)態(tài)加工仿真過(guò)程的圖像窗口的控制等。
在總體設(shè)計(jì)上,對(duì)于多任務(wù)的加工顯示,采用多標(biāo)簽結(jié)合輪換的方式設(shè)計(jì)(考慮到以后與WEE的方式兼容)。其中每個(gè)標(biāo)簽對(duì)應(yīng)一個(gè)任務(wù),每個(gè)任務(wù)內(nèi)的通道視窗不同,用戶可以通過(guò)分屏切換的方法選擇某一通道。每個(gè)G代碼文件以通道為單位,同一個(gè)加工任務(wù)采用相同的加工控制方式:多任務(wù)的加工仿真是通過(guò)在系統(tǒng)軟件中預(yù)留特定的視窗來(lái)顯示縮略視圖及局部視圖。各個(gè)控件添加通道及任務(wù)作為其屬性成員,從控制方式(自動(dòng)、手動(dòng)、MDA),加工狀態(tài)(修調(diào)量、G代碼狀態(tài)、M代碼狀態(tài)、報(bào)警顯示)的單個(gè)控件元素到一個(gè)標(biāo)簽式局部控件容器,各個(gè)標(biāo)簽的成員及屬性由參數(shù)管理中的用戶參數(shù)靈活配置。
另外,在應(yīng)用層設(shè)計(jì)中,還考慮二維或三維的零件切削仿真和測(cè)量監(jiān)測(cè)過(guò)程仿真兩個(gè)功能。仿真的接口通過(guò)設(shè)備虛擬層實(shí)現(xiàn)。采用模型驅(qū)動(dòng)的方式,利用硬件抽象層的虛擬設(shè)備接口直接驅(qū)動(dòng)模型。
(2)解釋器模塊擴(kuò)展指令設(shè)計(jì)
傳統(tǒng)的解釋器是單任務(wù)的,對(duì)于多任務(wù)、多通道式的解釋器,其主要的設(shè)計(jì)在于如何設(shè)計(jì)能夠滿足協(xié)調(diào)多個(gè)任務(wù)之間正確工作的指令,然后設(shè)計(jì)解釋譯碼程序。對(duì)于解釋器而言,一般與一個(gè)特定的軌跡是對(duì)應(yīng)的,因此設(shè)計(jì)中將通道與c代碼對(duì)應(yīng),而任務(wù)與任務(wù)之間則保持相對(duì)獨(dú)立的關(guān)系。相對(duì)單通道數(shù)控系統(tǒng)而言,正確設(shè)計(jì)多個(gè)通道之間的協(xié)調(diào)指令是相對(duì)較復(fù)雜的。
用戶編程接口是指用戶程序的指令符號(hào)標(biāo)記,其符號(hào)的定義要求首先保證在解釋譯碼時(shí)能簡(jiǎn)潔快速地實(shí)現(xiàn)多通道的配置,其次是與原編程指令兼容,然后是直觀易懂。因此需要對(duì)解釋器宏指令進(jìn)行擴(kuò)充,增加用戶的軸命名規(guī)則,軸動(dòng)態(tài)配置及增加CALL,子功能等調(diào)用宏指令。通過(guò)該宏指令,可以對(duì)擴(kuò)展的子功能進(jìn)行調(diào)用。設(shè)計(jì)的擴(kuò)展子功能包括通道軸動(dòng)態(tài)配置指令(配置/釋放),軸同步標(biāo)志信號(hào)指令(啟動(dòng)德待停止定時(shí))。例如通道間的等待指令定義為WAITS[markNOchNO],在本通道內(nèi)設(shè)置markNOchNO所指示的信號(hào)量,同時(shí)等待通道chNO,markNO所指示的信號(hào)量,如果該信號(hào)量置位則繼續(xù),否則阻塞本通道G代碼。
(3)任務(wù)及通道模塊控制設(shè)計(jì)
任務(wù)及通道的控制器設(shè)計(jì)是整個(gè)系統(tǒng)設(shè)計(jì)的關(guān)鍵部分之一。如何在系統(tǒng)中能充分協(xié)調(diào)整個(gè)系統(tǒng)的任務(wù),使之既能實(shí)現(xiàn)串行控制也能實(shí)現(xiàn)并行控制是控制的關(guān)鍵所在。在基于PC式的數(shù)控系統(tǒng)中,采用線程結(jié)合信號(hào)量的方式實(shí)現(xiàn)對(duì)各個(gè)任務(wù)間的同步控制和任務(wù)間相隔一段時(shí)間或距離的異步控制。其中:
泣踐程的單位對(duì)干通道為最小單元,這樣可以保證線程的粒度適中,使單個(gè)線程的周期空間及時(shí)間較小,從而是加工能得到較高的實(shí)時(shí);
區(qū)信號(hào)量分任務(wù)內(nèi)部與任務(wù)外部?jī)煞N,任務(wù)內(nèi)部用于協(xié)調(diào)同一任務(wù)內(nèi)部的通道間信號(hào)以及該任務(wù)自身的控制模式如自動(dòng)、手動(dòng)等任務(wù)外部用于協(xié)調(diào)流水線的信號(hào),其主要完成任務(wù)間的聯(lián)合控制。
任務(wù)的狀態(tài)控制是設(shè)計(jì)中關(guān)鍵,從實(shí)際的控制角度出發(fā),使用狀態(tài)機(jī)的方法來(lái)對(duì)其狀態(tài)進(jìn)行有效控制。狀態(tài)機(jī)如圖4所示。
圖4 狀態(tài)機(jī)
以任務(wù)作為控制方式的基本單元,以通道作為線程的控制單元,任務(wù)內(nèi)部的狀態(tài)切換由用戶手動(dòng)或PLC完成,通道之間的協(xié)調(diào)由線程和信號(hào)量?jī)?nèi)部控制。在單個(gè)任務(wù)正常運(yùn)行的時(shí)候,同時(shí)監(jiān)視該任務(wù)內(nèi)的各激活通道的信號(hào),如果有通道的信號(hào)已經(jīng)到達(dá),則請(qǐng)求對(duì)應(yīng)的通道,切換到等待通道信號(hào)狀態(tài),在準(zhǔn)備就緒后,喚醒對(duì)應(yīng)的通道,使之加入運(yùn)行隊(duì)列。
2 加工驗(yàn)證
為了驗(yàn)證整個(gè)設(shè)計(jì),根據(jù)上述設(shè)計(jì)方案,在WinCE系統(tǒng)平臺(tái)下編程實(shí)現(xiàn)了一種多任務(wù)的數(shù)控系統(tǒng)軟件,并進(jìn)行了加工驗(yàn)證與仿真,如圖5所示。
由于多工位加工的復(fù)雜性,對(duì)編程人員的要求相對(duì)較高,而且碰撞、過(guò)切等情況發(fā)生的概率便相應(yīng)增加,因此在該軟件設(shè)計(jì)中,考慮了與實(shí)際加工同步進(jìn)行的三維加工在線仿真來(lái)進(jìn)行干涉檢查和安全預(yù)警。圖5便是整個(gè)設(shè)計(jì)的軟件界面圖,其正在進(jìn)行一個(gè)多工位的雙主軸交換的切削加工,通過(guò)加工的仿真,進(jìn)一步驗(yàn)證了按照上述思路所設(shè)計(jì)的數(shù)控系統(tǒng)軟件能夠完成這種多任務(wù)、多通道的加工。
3 結(jié)束語(yǔ)
本文從軟件整體結(jié)構(gòu)及模塊設(shè)計(jì)兩個(gè)方面介紹了一種在一臺(tái)數(shù)控系統(tǒng)中實(shí)現(xiàn)多任務(wù)、多通道數(shù)控功能的數(shù)控系統(tǒng)軟件的整體設(shè)計(jì)方案。在軟件整體結(jié)構(gòu)方面介紹了整個(gè)系統(tǒng)的架構(gòu)以及多任務(wù)和多通道中關(guān)鍵數(shù)據(jù)的組織關(guān)系;在模塊方面介紹了用戶界面HMI塊、解釋器模塊及任務(wù)及通道控制模塊的設(shè)計(jì)。最后結(jié)合一個(gè)多工位的雙主軸交換的切削加工對(duì)所設(shè)計(jì)的軟件進(jìn)行了在線仿真與實(shí)際驗(yàn)證。與傳統(tǒng)的數(shù)控系統(tǒng)相比,其復(fù)合加工的效率和精度更高,而且成本更低,靈活性更強(qiáng),為單數(shù)控裝置實(shí)現(xiàn)復(fù)合功能提供了有效的技術(shù)驗(yàn)證。
(審核編輯: 智匯胡妮)
分享