曹 建 福
西安交通大學機械制造系統(tǒng)工程國家重點實驗室,西安,710049
航空航天、汽車、造船等行業(yè)技術的不斷發(fā)展,對數(shù)控裝備的柔性和適應性提出了更高的要求,因此開放式數(shù)控系統(tǒng)的研究引起了國際范圍內的普遍關注。從20世紀90年代初,歐美、日本等工業(yè)發(fā)達國家就相繼提出開放式數(shù)控系統(tǒng)問題[1]。美國最早提出了NGC(下一代控制器)計劃,三大汽車公司(通用公司、福特公司、克萊斯勒公司)提出了OMAC(開放式模塊化結構控制器)標準。歐洲提出了OSACA(開放式數(shù)控系統(tǒng)體系結構)計劃,日本提出了OSEC(控制器的開放系統(tǒng)環(huán)境)計劃。這些標準協(xié)議得到了許多數(shù)控技術廠商的支持,一些符合這些技術規(guī)范的基于PC的數(shù)控系統(tǒng)已投入應用。從20世紀90年代開始,國內開展了開放式數(shù)控系統(tǒng)的研究工作(CONUC),并在2002年發(fā)布了開放式數(shù)控系統(tǒng)的國家標準GB/T 18759。華中數(shù)控、藍天數(shù)控等公司采用通用PC平臺+運動控制器的硬件結構,開發(fā)了系列的開放式數(shù)控系統(tǒng)[2]。近年來,國內也開展了基于現(xiàn)場總線的開放式數(shù)控系統(tǒng)的研究工作,北京航空航天大學、大連光洋、上海開通公司等開發(fā)出光纖總線式數(shù)控系統(tǒng),這些現(xiàn)場總線數(shù)控系統(tǒng)的核心處理模塊均基于PC平臺。這些基于PC平臺的數(shù)控系統(tǒng)雖然己具有一定的開放性,但嚴格來說還不具備開放式數(shù)控系統(tǒng)的本質特性。
在開放式數(shù)控系統(tǒng)的結構和關鍵技術研究方面,國內外研究者也進行了大量的研究工作。文獻[3]將STEP-NC數(shù)據(jù)模型和IEC61499標準引入到數(shù)控系統(tǒng)設計中,提出了一種基于分層塊結構的開放式數(shù)控系統(tǒng),除了具有面向對象的特點外還支持設計框架。文獻[4]提出了一種內核軟件結構,它通過使用資源模型和進程模型來實現(xiàn)。文獻[5]開發(fā)了一種五層樹形結構的CNC軟件包,樹的節(jié)點單元是具體函數(shù),處理實時任務的模塊單元采用動態(tài)鏈接庫,處理非實時任務的模塊單元采用COM組件來實現(xiàn),外部接口遵循SERCOS實時串行協(xié)議,內部接口遵循OMAC協(xié)議。文獻[6]提出了功能分離設計法,包括三個部件,即機器引擎接口、事件處理器(EP)、系統(tǒng)描述數(shù)據(jù)(SDD),機器引擎接口通過HMI進行設定任務,SDD存儲規(guī)則和NC功能,EP負責處理事件。文獻[7-10]研究了基于現(xiàn)場總線和組件技術的開放式數(shù)控系統(tǒng)結構。文獻[11]提出了一種由主控流水線、驅動程序和微代碼實時單元構成的數(shù)控流水線體系,流水線封裝了從指令譯碼到生成數(shù)控微代碼的控制功能,采用標準編程接口實現(xiàn),微代碼實時單元由開放式硬件進行控制。文獻[12]用層級式有限狀態(tài)機描述數(shù)控系統(tǒng)的控制邏輯,可根據(jù)有限狀態(tài)機完成對數(shù)控系統(tǒng)的重構。文獻[13]提出了基于組件的開放式控制系統(tǒng)結構框架,由硬件層、實時操作系統(tǒng)層、CML層、應用程序層等組成。
雖然基于PC平臺的設計數(shù)控系統(tǒng)是近幾十年國內外采取的主流模式,但未來高性能數(shù)控系統(tǒng)采用嵌入式技術是必然的選擇,而對嵌入式數(shù)控系統(tǒng)的開放性,國內外還只是停留在研究階段[14]。針對嵌入式智能測控儀器裝置的快速組態(tài)開發(fā)難題,筆者研究開發(fā)出嵌入式柔性開發(fā)平臺,并利用該平臺開發(fā)出系列的嵌入式數(shù)控系統(tǒng),這些數(shù)控系統(tǒng)已在五軸聯(lián)動加工中心、六軸管相貫切割機、高速雕刻機等裝備上得到了大量應用。
具有開放式體系結構CNC允許用戶根據(jù)需要進行選配和集成、更改或擴展系統(tǒng)的功能,以便迅速適應不同的應用需求,該體系結構應該具有以下屬性:①互操作性;②可移植性;③可伸縮性;④可替換性。為解決嵌入式高性能數(shù)控系統(tǒng)的開放性問題,筆者及合作者們提出了一種基于構件的柔性開放式控制系統(tǒng)框架。針對二軸到九軸各種數(shù)控裝備的需求,為保證嵌入式數(shù)控系統(tǒng)核心硬件的兼容性,CNC硬件被抽取成10多種基本的功能構件,包括CPU模板、位置控制板、顯示與操作終端、內裝式PLC、遠程操作面板等,硬件構件之間通過現(xiàn)場總線或標準的總線連接,其集成邏輯結構如圖1所示。CAN協(xié)議建立在國際標準組織開放系統(tǒng)互連模型之上,協(xié)議簡單,最高通信速率可達1Mbit/s,直接傳輸距離高達10km,采取多主工作方式,高抗電磁干擾性、糾錯能力強;同時,CAN接口安裝方便,成本低。因此,本文選用CAN總線作為CNC控制器與PLC、操作面板之間的數(shù)據(jù)通信方式。所開發(fā)的數(shù)控系統(tǒng)與驅動器的連接接口提供了兩種形式,圖1a所示為典型的數(shù)字脈沖量或模擬量接口,圖1b所示為高速以太網(wǎng)接口。提供驅動器的以太網(wǎng)接口可兼容多種總線協(xié)議,目前已實現(xiàn)了MechatrolinkⅢ協(xié)議,這是由日本安川公司提出的一種符合EEE802.3u標準的以太網(wǎng)協(xié)議,傳輸速度可達到100Mbit/s。
CPU模板使用了帶PC104總線的3.5英寸嵌入式CPU處理單元,位置控制模板采用DSP+FPGA形式實現(xiàn),DSP使用的是 TI公司的TMS320F2812。為了提高多軸聯(lián)動插補速度,插補算法采取軟插補(粗)+硬插補(精)結合的模式。
內裝式PLC模板負責高速的邏輯控制功能,實現(xiàn)機床輔助設備、加工中心中刀庫、機械臂等控制任務。
高檔數(shù)控系統(tǒng)要實現(xiàn)高速高精控制,這既要在內部完成大量的數(shù)據(jù)傳輸,同時還要保證通信的實時性和可靠性。本文定義了一種面向數(shù)控系統(tǒng)的高速現(xiàn)場總線通信協(xié)議,這種協(xié)議在使用的CAN總線上保證各節(jié)點之間的循環(huán)通信周期達到16ms。協(xié)議采用帶29位報文標識符的擴展幀,其通信報文形式如表1所示。

圖1 嵌入式柔性數(shù)控系統(tǒng)硬件集成邏輯結構

表1 CAN總線報文結構
CAN報文由擴展的29位標識符、1位數(shù)據(jù)類型、1位遠程發(fā)送請求、4位該幀內數(shù)據(jù)段數(shù)據(jù)長度、0~8字節(jié)數(shù)據(jù)段、16位循環(huán)冗余碼(CRC)、2位應答位和1位幀結尾組成。
CAN標識符的分配在設計應用層協(xié)議時非常重要,它決定了信息的優(yōu)先權及等待時間,同時也影響了通信結構適用性和標識符使用的效率。報文標識符中包含有優(yōu)先標記、目標地址、源地址、幀類型、幀號、保留位、結束標記,其格式如表2所示。

表2 擴展幀報文標識符格式
其中,優(yōu)先標記(1位)用來標記當前幀的優(yōu)先級別。對于正常信息,將該標記置1,對于緊急信息(如報警信息、緊急斷電等),將該標記置0。該標記先于其他幀占用總線,在最短的時間內到達目的地址。目標地址(7位)指定該幀數(shù)據(jù)或信息所要到達的目的地。源地址(7位)指定該幀數(shù)據(jù)或信息的來源地址;在數(shù)控系統(tǒng)中,對每個CAN模板都設定一個地址號,用來區(qū)分不同的設備。CAN總線上的節(jié)點個數(shù)主要取決于總線驅動電路,目前最多可達110個。本文采用了長度為7位的目標地址和源地址,可以有128個編碼地址。幀類型(1位)用來標記該幀數(shù)據(jù)場中的內容,它是數(shù)據(jù)內容還是控制信息。幀號(8位)用來標記數(shù)據(jù)拆分后的幀塊序號。由于每個郵箱最多可存放8字節(jié),消息的大小不定,對32位的CNC控制器側輸入信號,可直接傳輸,而刀庫表和梯形圖程序段卻遠遠超過64位,需要分段傳輸。在傳輸超過8字節(jié)長度的數(shù)據(jù)時,按照每塊8字節(jié)對數(shù)據(jù)進行拆分,根據(jù)先后順序需指定相應幀號,從0開始遞增。幀號用8位表示,取值范圍為0~255,用這種方式完全滿足數(shù)控系統(tǒng)的通信需求。保留(4位)是指可根據(jù)功能擴展的需要增加其他功能。結束標記(1位)用來標記傳輸過程結束。
CAN報文數(shù)據(jù)段要傳送的數(shù)據(jù)包括 MST代碼、I/O信息、當前刀盤位置信息、梯形圖程序、刀庫表信息以及遠程操作面板信號,表3所示為數(shù)據(jù)段數(shù)據(jù)類型的定義。

表3 數(shù)據(jù)段中數(shù)據(jù)類型定義
開放式數(shù)控系統(tǒng)的控制軟件都應當具備可剪裁性或多重性,整個體系結構應當能夠被重新配置,以滿足多種應用領域的需求,具備理想“開放性”概念的控制軟件應可被拆分為多個標準部件。為了實現(xiàn)上的方便同時又滿足組態(tài)的特性,我們提出了一個柔性的軟件框架結構,如圖3所示。“柔性”與“開放性”這兩個概念有不同點,它們又具有相同的特性,“開放性”側重與外部系統(tǒng)通過定義標準的接口相互操作,而“柔性”是指系統(tǒng)能通過改變自身結構以適應外部環(huán)境的能力。
這種柔性數(shù)控系統(tǒng)采用基于構件的組態(tài)結構,軟件由三部分組成:嵌入式柔性開發(fā)平臺、功能程序構件庫和模型算法構件庫。嵌入式柔性開發(fā)平臺用來實現(xiàn)功能構件封裝、系統(tǒng)配置等任務。針對多軸聯(lián)動數(shù)控系統(tǒng)具有多任務和實時性的特點,控制軟件的進程管理設計成前臺、后臺程序模式。后臺模塊稱為“背景”程序,主要用來完成加工數(shù)據(jù)的準備工作和管理工作,前臺模塊是一個循環(huán)運行的程序,它是主程序,在運行過程中被1ms實時中斷服務程序打斷,前后臺程序相互配合完成數(shù)控系統(tǒng)的各項控制和管理任務。功能構件的程序模式由配置腳本文件指定。

圖3 嵌入式柔性數(shù)控系統(tǒng)軟件結構
構件化結構的關鍵是構件抽取,即對可重用對象的提煉概括。通過良好地定義這些對象之間相互通信的接口,可以將這些基本對象或將它們進一步分析以后形成的粒度更小的對象,在開發(fā)過程中加以重用。本論文建立的構件庫由用戶層構件庫和核心層構件庫組成,兩者之間通過標準硬件接口通信。用戶層構件庫包括人機界面、加工數(shù)據(jù)預處理、代碼編程、圖形模擬、梯形圖編輯等非實時任務構件,其組成見圖4。考慮到用戶層使用Win CE的原因,選擇利用 COM構件實現(xiàn)。核心層構件庫涉及數(shù)控加工的實時性任務,包括插補計算、MST代碼處理、報警處理、速度控制和位置控制等,其組成見圖5,因為在核心層沒有使用操作系統(tǒng),因此利用功能函數(shù)形式實現(xiàn)。各種功能構件按標準的接口進行封裝,功能構件的標準接口見圖6,事件端口是任務發(fā)生事件狀態(tài),公共參數(shù)包括系統(tǒng)通用參數(shù)、主軸參數(shù)、伺服運動參數(shù)、刀具參數(shù)等,(x1,x2,…,xn)為構件的入口參數(shù),(y 1,y2,…,ym)為構件的出口參數(shù)。圖7是一個典型的功能構件接口圖,譯碼構件把數(shù)控加工代碼轉換成進行插補的標準數(shù)據(jù)格式。

圖4 用戶層構件庫組成

圖5 核心層構件庫組成

圖6 功能構件標準接口

圖7 譯碼功能構件接口
柔性數(shù)控系統(tǒng)的性能很大程度上依賴于運動控制模型與算法,已開發(fā)的模型算法構件包括多軸聯(lián)動插補、前瞻速度處理、五軸旋轉刀具中心點補償(RTCP)、閉環(huán)位置控制、樣條插補等。模型算法在實現(xiàn)時被封裝成標準的函數(shù)形式:

其中,Event_state用來設置某功能構件激活的條件,(Parameter_1,Parameter_2,…,Parameter_n)表示構件之間的連接關系和接口定義,配置時設置和初始化。Method表示用C語言寫的模型與算法程序,包括基本語句與函數(shù)。Address_map參數(shù)的作用是功能構件脫離硬件設備和編程環(huán)境,在具體使用時再綁定具體的物理地址。
前瞻速度處理構件的目的是插補前計算程序段的最優(yōu)轉接速度,同時實現(xiàn)前加減速自適應控制,以保證加工段的速度平滑過渡和加工效率,預處理段數(shù)為 100。該構件被封裝為 int speed_control(int SegNo,int*Feed,struct Speed Regs*in),入口參數(shù)為預讀段的段標號(int SegNo)、預讀段的各段指令速度Fh(int*Feed)、加工類型及加工坐標(xh,yh,zh)(struct Speed Regs*in)。出口參數(shù)為:預讀段的轉接點最優(yōu)銜接速度v e,i(int feed_end)。公共接口參數(shù)有各加工軸最大允許速度(Vx max,Vy max,Vz max)(int V max[3])、最大允許加速度(Ax max,Ay max,Az max)(int A max[3])、最大允許加加速度(Jxmax,Jymax,Jz max)(int16 JJspeed[3])等。
實現(xiàn)思路為在預讀段銜接進給速度限制和加工過程平滑減速的約束條件下,對轉接點最優(yōu)銜接速度進行預計算。利用加速方式求得預讀段的終點進給速度,作為銜接進給速度的速度上限,同時對預讀段作反向速度修正,其修正速度不大于轉接點速度上限,以滿足加工過程平滑減速的約束條件。
以S曲線加速方式求得預讀段l(i)的終點進給速度v(0)e,i,再與該段的反向修正末速度v(1)e,i比較,通過下式求得轉接點最優(yōu)銜接速度為

五軸加工旋轉刀具中心點補償方法用于實時補償數(shù)控系統(tǒng)的非線性運動誤差。RTCP功能由兩個構件實現(xiàn),非實時函數(shù) Cal_RTCPPoint(Strct S_Line,int32 PivotD_X,Int32 PivotD_Y,int32 PivotD_Z,char*OutStr),它負責計算出各直線軸需補償?shù)脑隽恐?而實時函數(shù)RTCP_Chabu(Real_pos,Real_pos1,Real_pos2,int32 PivotD_X,Int32 PivotD_Y,int32 PivotD_Z)負責計算各插補周期的補償量struct inter_pos comPos,將該補償量和插補增量合成后獲得位置輸出量struct inter_pos realpos。構件入口參數(shù)為結構體型參數(shù)struct S_Line Line,其中包含刀具初始位置P、目標位置坐標Po、樞軸中心距。出口參數(shù)為各插補周期輸出位置坐標 P′o。
計算思路是利用空間投影等方法計算旋轉補償向量,并根據(jù)刀位點初始信息以及直線插補計算所得坐標位置,計算輸出位移量,采用先計算法平面補償向量,再進行投影的方法,避免了繁雜的矩陣運算。計算整段旋轉補償值來約束段末刀位點,計算各插補周期旋轉補償量約束每個插補周期補償精度的方法,實現(xiàn)高精度補償。對指定曲線進行投影,將轉動曲線投影至任意兩個線性軸確定的某一法平面,計算該法平面的轉動半徑以及相對于本插補周期轉動軸初始角度的轉動增量Δα,并根據(jù)樞軸中心距,將刀具初始坐標進行刀具坐標轉換,再求出平面轉動補償向量ΔP,并將其進行空間投影,然后根據(jù)P′o=P o-ΔP計算實際輸出位移。
利用該嵌入式柔性開發(fā)平臺,研究了加工中心用五軸聯(lián)動數(shù)控系統(tǒng)的實現(xiàn)問題。加工中心用數(shù)控系統(tǒng)需要的技術指標是:5個運動軸可實現(xiàn)聯(lián)動,最小分辨率為 0.001mm/0.001°,具有直線、圓弧插補、空間螺旋線等插補功能。切削速度達到24m/min,快移速度達到24m/min,進給加速度達到20m/s2。具有微線段的前瞻自適應速度控制功能,微線段最小段長為0.01mm,預讀段數(shù)為100段。應提供內裝式PLC,可使用梯形圖編程,還具有三維動態(tài)仿真顯示功能。
選擇的硬件構件是六軸位置控制板、300Hz CPU板、一塊96輸入/88輸出PLC、遠程操作面板和其他部件。除已開發(fā)基本組件外,還根據(jù)加工中心的要求增加了刀庫管理、五軸加工固定循環(huán)等一些功能組件,將它們進行編譯,放入到組件庫中,為組態(tài)數(shù)控系統(tǒng)控制軟件編寫了配置文件,給出組件間的拓撲結構。

圖8 STH-850型數(shù)控加工中心
所開發(fā)的系統(tǒng)已在蘇州一企業(yè)的五軸數(shù)控加工中心上進行了成功的應用,實際應用的數(shù)控加工中心如圖8所示,已完成了速度、精度測試和實際切削實驗。圖9為開發(fā)的六軸數(shù)控系統(tǒng)主界面圖。按照國家標準對加工精度進行了測試,測試結果如表4所示。實際測試表明,微線段加工時其進給速度可達到10m/min,可實現(xiàn)進給速度的高速平滑銜接。圖10為使用五軸聯(lián)動加工葉輪試件的實際切削圖。數(shù)控系統(tǒng)經(jīng)過持續(xù)不間斷生產(chǎn)加工,結果表明:采用嵌入式柔性框架可增加數(shù)控系統(tǒng)的開放性和可擴展性,控制系統(tǒng)可靠穩(wěn)定,加工過程中速度控制平穩(wěn),精度高。

圖9 六軸數(shù)控系統(tǒng)主界面圖

表4 試件測試結果 mm

圖10 五軸聯(lián)動加工試件實際切削圖
基于PC平臺的開放式數(shù)控系統(tǒng)存體體積大、可靠性差等問題,嵌入式數(shù)控系統(tǒng)是未來數(shù)控系統(tǒng)的發(fā)展趨勢。為解決嵌入式數(shù)控系統(tǒng)的開放性問題,本文提出并實現(xiàn)了基于構件的柔性開放式結構,并開發(fā)出系列的高性能數(shù)控系統(tǒng),這些系統(tǒng)已在工業(yè)上得到了成功的應用,現(xiàn)場測試表明系統(tǒng)性能穩(wěn)定可靠,能滿足開放性要求。
[1] Prischow G,Junghans G.Open System Controllers-a Challenge for the Future of the Machine Tool Industry[J].Annals of CIRP,1993,41(1):449-452.
[2] 陽道善,林奕鴻,朱志紅,等.華中網(wǎng)絡數(shù)控系統(tǒng)的開發(fā)與應用[J].中國機械上程,1999,10(10):1150-1152.
[3] Minhat M,Vyatkin V,Xu X,et al.A Novel Open CNC Architecture Based on STEP-NCData Model and IEC 61499 Function Block[J].Robotics and Computer-Integrated Manufacturing,2009,25:560-569.
[4] Sungsik P,Sun H K,Hyunbo C.Kernel Software for Efficiently Building,Re-configuring,and Distributing an Open CNC Controller[J].International Journal of Advanced Manufacturing Technology,2006,27:788-796.
[5] Liu Y,Wang Y Z,Fu H Y,et al.Open Architecture CNC Software Package and Key Technology[C]//Proceedings of the 2009 International Conference on Information Technology and Computer Science.Kiev Ukraine,2009:225-228.
[6] Hu T L,Zhang C R,Liu R L,et al.Design and Implementation of an Open CNC Core At the Shop Floor Level[J].International Journal of Advanced Manufacturing Technology,2009,40:541-552.
[7] Yu D,Hu Y,Xu XW,et al.An Open CNC System Based on Component Technology[J].IEEE Transactions on Automation Science and Engineering,2009,6(2):302-310.
[8] Wei H X,Duan X M,Chen Y D,et al.Research of Open CNC System Based on CORBA[C]//Proceedings of the 2008 Fifth IEEE International Symposium on Embedded Computing.Beijing,2008:364-369.
[9] 陶耀東,林滸.高性能開放式數(shù)控系統(tǒng)框架設計[J].小型微型計算機系統(tǒng),2009,30(9):1911-1916.
[10] 陳友東,陳五一,王田苗.基于組件的開放結構數(shù)控系統(tǒng)[J].機械工程學報,2006,42(6):188-192.
[11] 董靖川,王太勇,徐躍.基于數(shù)控流水線技術的開放式數(shù)控系統(tǒng)[J].計算機集成制造系統(tǒng),2009,15(6):1130-1139.
[12] 李霞,王永章,梁宏斌,等.有限狀態(tài)機在開放式數(shù)控系統(tǒng)中的應用[J].計算機集成制造系統(tǒng),2005,11(3):428-432.
[13] 杜少華,胡毅,宋桃桃.組件技術在開放式控制系統(tǒng)中的研究[J].小型微型計算機系統(tǒng),2009,30(4):623-627.
[14] 李誠人.嵌入式開放型數(shù)控系統(tǒng)研究[J].計算機應用與軟件,2008,25(1):227-229.