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