潘建峰,方映,吳勝旗,張素穎
(杭州職業(yè)技術(shù)學(xué)院,浙江杭州310018)
基于運(yùn)動(dòng)控制的開放式數(shù)控系統(tǒng)在3個(gè)層面體現(xiàn)了開放性。在硬件層面,系統(tǒng)硬件的接口采用統(tǒng)一標(biāo)準(zhǔn),各模塊可以根據(jù)實(shí)際生產(chǎn)需求組配伺服驅(qū)動(dòng)器、伺服電機(jī)、主軸單元;在操作系統(tǒng)層面,系統(tǒng)的構(gòu)建都基于標(biāo)準(zhǔn)的操作系統(tǒng)及其提供的API 標(biāo)準(zhǔn)接口函數(shù)。當(dāng)硬件模塊改變后只需更新相應(yīng)驅(qū)動(dòng)就可以在操作系統(tǒng)上運(yùn)行;最后是數(shù)控功能軟件層面上,用戶可以在上位機(jī)上使用高級(jí)語(yǔ)言編制所需的人機(jī)交互、系統(tǒng)管理等非實(shí)時(shí)性功能模塊,在下位機(jī)利用其自帶語(yǔ)言編寫速度預(yù)處理、插補(bǔ)計(jì)算等強(qiáng)實(shí)時(shí)性模塊。在開放式數(shù)控雕刻機(jī)系統(tǒng)上,3個(gè)層面的內(nèi)容無(wú)論如何變化,其信息流都是從雕刻圖像到最后執(zhí)行伺服加工的。而信息流的預(yù)處理對(duì)于數(shù)控系統(tǒng)的運(yùn)行速度、加工精度等關(guān)鍵指標(biāo)有著決定性影響。文中以基于GE-400-SV 運(yùn)動(dòng)控制器的開放式雕刻機(jī)數(shù)控系統(tǒng)為對(duì)象,研究了數(shù)控加工代碼信息流預(yù)處理技術(shù)。
基于GE-400-SV 運(yùn)動(dòng)控制器的開放式數(shù)控雕刻機(jī)系統(tǒng),以工控機(jī)為上位機(jī),以運(yùn)動(dòng)控制器為下位機(jī),通過(guò)PCI總線完成數(shù)據(jù)通訊。數(shù)控系統(tǒng)的任務(wù)就是對(duì)數(shù)控加工程序進(jìn)行處理,以便使其轉(zhuǎn)化為伺服執(zhí)行機(jī)構(gòu)可以識(shí)別的相應(yīng)控制指令。在該系統(tǒng)中,利用工控機(jī)海量計(jì)算能力來(lái)完成零件程序生成、代碼識(shí)別、功能碼譯碼、半徑補(bǔ)償?shù)确菑?qiáng)實(shí)時(shí)性功能。利用運(yùn)動(dòng)控制器實(shí)時(shí)控制能力來(lái)完成速度預(yù)處理、插補(bǔ)計(jì)算、反饋控制等強(qiáng)實(shí)時(shí)性任務(wù)。零件加工程序信息在數(shù)控系統(tǒng)中處理過(guò)程見圖1。
圖1 數(shù)控程序信息流預(yù)處理模塊流程圖
數(shù)控雕刻機(jī)加工對(duì)象往往是具有物體特征的二維或三維數(shù)字圖像,上位機(jī)預(yù)處理模塊主要任務(wù)是將雕刻圖紙中的數(shù)控加工程序要素提取出來(lái),形成程序?qū)嶓w段。將加工程序段按約定規(guī)則編譯成計(jì)算機(jī)能識(shí)別的數(shù)據(jù)形式,并按內(nèi)碼格式存放在譯碼結(jié)果緩沖器中。上位機(jī)從零件程序輸入緩沖器內(nèi)將加工信息以字符的形式逐個(gè)讀入,識(shí)別出其中的文字碼,編譯出文字碼所代表的功能,映射到相應(yīng)譯碼結(jié)果緩沖器中。然后識(shí)別數(shù)字碼,將其送到相應(yīng)文字碼的緩沖器單元中。因此,上位機(jī)預(yù)處理模塊處理過(guò)程可以分為雕刻圖形加工程序提取、代碼識(shí)別和功能代碼的譯碼三大部分。
數(shù)控雕刻圖像一般都比較復(fù)雜,基本都是通過(guò)AutoCAD或Pro/E 等雕刻造型軟件生成的。在該模塊中,原始NC程序提取分為二維和三維兩個(gè)部分。
(1)二維圖形往往以AutoCAD 格式存在。Auto-CAD 提供一種數(shù)據(jù)交換文件DXF,它包含了對(duì)應(yīng)的DWG文件所有信息,是一種ASCII 文本格式文件,可讀性強(qiáng),易于被其他程序處理,其實(shí)體段記錄了圖形中所有幾何實(shí)體的幾何信息。在上位機(jī)上,用Visual C++語(yǔ)言面向AutoCAD 進(jìn)行DXF文件中實(shí)體段的讀取,這些信息被提取出來(lái)后進(jìn)行路徑設(shè)置就形成了加工原始代碼,其流程如圖2所示。
圖2 二維雕刻圖像原始NC程序提取流程圖
(2)三維零件的加工由于數(shù)據(jù)量大,加工路徑復(fù)雜,可以充分利用上位機(jī)強(qiáng)大的運(yùn)算能力進(jìn)行三維造型和路徑生成,在操作平臺(tái)上配裝三維軟件專用后處理模塊即可生成加工原始代碼。
代碼識(shí)別就是通過(guò)軟件將取出的字符與NC代碼字相比較,若相等則說(shuō)明輸入了該字符,并設(shè)置相應(yīng)標(biāo)志或轉(zhuǎn)相應(yīng)處理。所以首先要在上位機(jī)上建立一個(gè)NC代碼字庫(kù)。數(shù)控加工程序由多個(gè)程序段組成,程序段由一組程序字組成,而程序字則由地址符和數(shù)字符號(hào)組成。地址符和數(shù)字符號(hào)在計(jì)算機(jī)內(nèi)一般是以ISO代碼存儲(chǔ),但是ISO代碼的排列規(guī)律不明顯,不利于后面的譯碼處理。所以在設(shè)計(jì)時(shí),先將ISO代碼轉(zhuǎn)換成具有一定規(guī)律的數(shù)控內(nèi)部代碼,形成一個(gè)內(nèi)碼集。這樣識(shí)別代碼時(shí),首先將代碼轉(zhuǎn)化為內(nèi)碼,然后再到內(nèi)碼集中比較識(shí)別。在設(shè)計(jì)內(nèi)碼集時(shí),先根據(jù)平時(shí)的經(jīng)驗(yàn)將字符出現(xiàn)頻率大致排個(gè)序,在比較時(shí)可按出現(xiàn)頻率高低的順序進(jìn)行。同時(shí)將文字碼與數(shù)字碼分開處理,這樣可以利用數(shù)字碼內(nèi)碼在數(shù)值上等于該數(shù)字的BCD 碼值的這個(gè)特性來(lái)提高識(shí)別速度。另外,在雕刻機(jī)系統(tǒng)中,都是采用CAD/CAM 后處理技術(shù)來(lái)形成數(shù)控加工程序的,其基本插補(bǔ)指令都是通過(guò)直線插補(bǔ)G01 來(lái)完成。所以在保留G01指令和手工編程下的圓弧插補(bǔ)G02、G03 基礎(chǔ)上,可以省去大量的循環(huán)加工指令代碼。通過(guò)這種處理,識(shí)別速度得到很大提高。代碼識(shí)別部分的流程圖如圖3所示。
圖3 數(shù)控加工代碼識(shí)別流程圖
2.3.1 譯碼結(jié)果緩沖區(qū)設(shè)計(jì)
數(shù)控程序字符經(jīng)過(guò)代碼識(shí)別建立了各功能代碼的標(biāo)志后,通過(guò)譯碼模塊對(duì)各功能碼進(jìn)行編譯處理。譯碼程序采用串行譯碼法逐個(gè)編譯,而規(guī)定在數(shù)控系統(tǒng)運(yùn)行前必須要預(yù)讀兩段加工程序才能正式加工,尤其在半徑補(bǔ)償方面,否則將導(dǎo)致加工零件直接報(bào)廢。所以首先要在上位機(jī)上建立一個(gè)與數(shù)控加工程序緩沖器相對(duì)應(yīng)的譯碼結(jié)果緩沖器。任何數(shù)控系統(tǒng)對(duì)各自的編程格式都有規(guī)定,并不是每個(gè)數(shù)控系統(tǒng)都具有ISO 標(biāo)準(zhǔn)給出的所有命令,一般情況下只具有其中的一個(gè)子集。該雕刻機(jī)數(shù)控系統(tǒng)中,由于數(shù)控雕刻本身加工特性,平面選擇指令、螺紋加工指令、固定循環(huán)指令等都沒必要設(shè)置緩沖區(qū)。同時(shí),某些G代碼不可能同時(shí)出現(xiàn)在一個(gè)數(shù)控加工程序段中,沒有必要在譯碼結(jié)果緩沖器中同時(shí)為那些互相排斥的G代碼設(shè)置單獨(dú)的內(nèi)存單元,可將它們進(jìn)行合并,然后依不同的特征字來(lái)以區(qū)分。通過(guò)這樣分組整理后,可以進(jìn)一步縮小緩沖器的容量。在該系統(tǒng)中,將常用G代碼分組為GA、GB、GC 三組,常用M代碼分組為MX、MY 兩組,在譯碼結(jié)果緩區(qū)中只要為每一組定義一個(gè)內(nèi)存單元即可。這樣,在后續(xù)處理過(guò)程中,只需到相對(duì)應(yīng)的內(nèi)存單元中取出數(shù)控加工程序信息就可以執(zhí)行。
2.3.2 功能碼譯碼與診斷
在譯碼過(guò)程中,要對(duì)數(shù)控加工程序進(jìn)行集中檢查診斷,只允許合法的程序段進(jìn)入后續(xù)處理過(guò)程。診斷主要包括語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤兩方面。其中語(yǔ)法錯(cuò)誤主要指某個(gè)功能代碼的錯(cuò)誤,如N代碼后數(shù)值超過(guò)CNC系統(tǒng)所規(guī)定的范圍、F代碼設(shè)定的進(jìn)給速度越界等。而邏輯錯(cuò)誤主要指一個(gè)數(shù)控加工程序段或者整個(gè)數(shù)控加工程序內(nèi)功能代碼之間互相矛盾的錯(cuò)誤,如在同一個(gè)數(shù)控加工程序段中先后編入了互相矛盾的零件尺寸代碼。在設(shè)計(jì)錯(cuò)誤庫(kù)時(shí),一般先將常規(guī)錯(cuò)誤預(yù)先寫入,同時(shí)在實(shí)現(xiàn)過(guò)程中還會(huì)遇到許許多多的錯(cuò)誤現(xiàn)象,這時(shí)要及時(shí)歸類存庫(kù)。在譯碼結(jié)果緩沖區(qū)和譯碼診斷庫(kù)的基礎(chǔ)上設(shè)計(jì)出診斷模塊。在診斷過(guò)程中,通過(guò)變址方式完成各個(gè)內(nèi)存單元的尋址。同時(shí)在ROM區(qū)中對(duì)應(yīng)設(shè)置了一個(gè)格式字表,表中規(guī)定了譯碼結(jié)果緩沖器中各個(gè)地址碼對(duì)應(yīng)的地址偏移量、字節(jié)數(shù)和數(shù)據(jù)位數(shù)等,以此來(lái)提高尋址速度。
由于刀具總有一定的半徑,在進(jìn)行外輪廓加工時(shí),要使刀具中心偏移零件的外輪廓表面一個(gè)刀具半徑值,這就要在上位機(jī)開發(fā)出半徑補(bǔ)償功能。通常來(lái)說(shuō)半徑補(bǔ)償有B功能刀具補(bǔ)償法和C功能刀具補(bǔ)償法兩種。該系統(tǒng)采用補(bǔ)償機(jī)能較高的C功能刀具補(bǔ)償。
CNC系統(tǒng)所處理補(bǔ)償方向有左補(bǔ)償和右補(bǔ)償兩種,處理的基本輪廓線型是直線、順時(shí)針圓弧和逆時(shí)針圓弧,各自組合后有共有9類程編軌跡的連接方式。同時(shí),根據(jù)輪廓線型轉(zhuǎn)接角α的不同,可以將C刀補(bǔ)的各種轉(zhuǎn)接過(guò)渡形式劃分為縮短型、伸長(zhǎng)型和插入型。所以上位機(jī)半徑補(bǔ)償模塊總共有54種刀具中心軌跡轉(zhuǎn)接類型的判斷和計(jì)算。
在切削過(guò)程中,刀具半徑補(bǔ)償?shù)膱?zhí)行過(guò)程分為刀補(bǔ)建立、刀補(bǔ)進(jìn)行、刀補(bǔ)撤消3個(gè)步驟。在刀補(bǔ)執(zhí)行過(guò)程中,需要提取上一段代碼和當(dāng)前段代碼的加工狀態(tài),以判斷出目前所處的補(bǔ)償階段。同時(shí)需要預(yù)讀后兩段程序以便判斷加工平面內(nèi)的補(bǔ)償方向,從而對(duì)當(dāng)前段的刀具中心軌跡作出及時(shí)的修正。所以在C功能刀補(bǔ)處理過(guò)程中,設(shè)置兩組刀補(bǔ)數(shù)據(jù)緩沖器,以便讓至少兩個(gè)數(shù)控加工程序段的信息同時(shí)在系統(tǒng)內(nèi)部被處理。因此,在刀補(bǔ)時(shí)需要掌握3段代碼的加工信息才可以進(jìn)行刀補(bǔ),半徑補(bǔ)償流程如圖4所示。
圖4 C功能刀具半徑補(bǔ)償流程圖
在傳統(tǒng)數(shù)控系統(tǒng)中,對(duì)每一段零件程序的加工都需要經(jīng)歷加速和減速兩個(gè)過(guò)程,若加工的路徑較短,其進(jìn)給速度難以達(dá)到指令速度。在雕刻加工領(lǐng)域中,由于曲面形狀復(fù)雜,頻繁變化的進(jìn)給速度必將導(dǎo)致機(jī)床各軸進(jìn)給速度的不斷變化,當(dāng)由此引起的各進(jìn)給軸速度變化過(guò)大時(shí),將產(chǎn)生較大的幾何軌跡誤差。同時(shí),由于機(jī)械運(yùn)動(dòng)部件存在慣性,速度頻繁變化產(chǎn)生運(yùn)動(dòng)沖擊將嚴(yán)重影響加工精度,并縮短機(jī)床和刀具的壽命。為解決此矛盾,GE-400-SV 運(yùn)動(dòng)控制器提供基于前瞻預(yù)處理的速度規(guī)劃策略,在從上位機(jī)模塊得到零件輪廓信息、刀具軌跡及加工信息的基礎(chǔ)上,實(shí)時(shí)修正進(jìn)給速度。圖5所示為使用前瞻預(yù)處理功能模塊規(guī)劃速度前后的速度對(duì)比,可以看出:在同樣加工精度的情況下,使用加減速前瞻性處理模塊后執(zhí)行速度有了較大的提高。
圖5 加減速前瞻處理技術(shù)對(duì)加工速度提升效果示意圖
通過(guò)設(shè)定機(jī)床的工藝特征參數(shù),主要包括進(jìn)給速度、最大加速度、允許拐彎時(shí)間等,結(jié)合GE-400-SV運(yùn)動(dòng)控制器速度規(guī)劃預(yù)處理功能,可實(shí)現(xiàn)小線段連續(xù)軌跡加工。運(yùn)動(dòng)控制器前瞻預(yù)處理功能主要分以下3個(gè)子模塊:
(1)參數(shù)初始化模塊。調(diào)用GT_InitLookAhead函數(shù),設(shè)置前瞻預(yù)處理功能模塊的初始化參數(shù),在該模塊中,允許拐彎時(shí)間的設(shè)定是關(guān)鍵。時(shí)間常數(shù)越大,計(jì)算出來(lái)的終點(diǎn)速度越大,但會(huì)降低加工精度,在確保加工精度的情況下盡量減小允許拐彎時(shí)間。
(2)軌跡特征數(shù)據(jù)預(yù)處理模塊。在該模塊中,通過(guò)調(diào)用GT_AddLookData函數(shù)將軌跡特征數(shù)據(jù)載入預(yù)處理緩沖區(qū),主要包括快速進(jìn)給指令、直線插補(bǔ)指令、圓弧插補(bǔ)指令的終點(diǎn)坐標(biāo)位置信息和圓心坐標(biāo)位置信息,以及當(dāng)前段所允許的進(jìn)給速度值。
(3)終點(diǎn)速度計(jì)算模塊。GE-400-SV 從預(yù)處理緩沖區(qū)提取軌跡特征數(shù)據(jù)后,依據(jù)參數(shù)設(shè)定要求,通過(guò)調(diào)用GT_Calvel 計(jì)算當(dāng)前軌跡段的終點(diǎn)速度。該速度值經(jīng)插補(bǔ)模塊進(jìn)一步處理后將輸出給伺服驅(qū)動(dòng)模塊。
對(duì)于雕刻機(jī)數(shù)控系統(tǒng)而言,插補(bǔ)功能是其關(guān)鍵功能,控制系統(tǒng)其他任務(wù)大多都是圍繞著插補(bǔ)進(jìn)行的。GE-400-SV 內(nèi)部已經(jīng)封裝了直線插補(bǔ)和圓弧插補(bǔ)算法,這些算法允許被外部高級(jí)語(yǔ)言調(diào)用。通過(guò)變量參數(shù)的傳遞使插補(bǔ)得到執(zhí)行,這使得所設(shè)計(jì)的系統(tǒng)在易用性和實(shí)時(shí)控制等級(jí)兩方面得到提高。
GE-400-SV 提供了多維直線插補(bǔ)指令、二維圓弧插補(bǔ)指令各6個(gè),這些指令都封裝在基于Windows的動(dòng)態(tài)鏈接庫(kù)ges.dll 內(nèi),該鏈接庫(kù)可用C 語(yǔ)言調(diào)用。在開發(fā)上位機(jī)程序時(shí),將ges.dll 頭文件、ges.h 庫(kù)文件復(fù)制到工程文件夾中,并添加庫(kù)文件到工程中。同時(shí)在應(yīng)用程序中加入函數(shù)庫(kù)頭文件的聲明#include“ges.h”,便可將這些插補(bǔ)函數(shù)與數(shù)控系統(tǒng)標(biāo)準(zhǔn)插補(bǔ)指令G01、G02、G03功能一一對(duì)應(yīng)。在該雕刻機(jī)數(shù)控系統(tǒng)中,調(diào)用GT_LnXYG0 執(zhí)行二維直線插補(bǔ),調(diào)用GT_LnXYZG0 執(zhí)行三維直線插補(bǔ),調(diào)用GT_ArcXY執(zhí)行xy 平面內(nèi)以圓心位置和角度為輸入?yún)?shù)的圓弧插補(bǔ),調(diào)用GT_ArcXYP 執(zhí)行xy 平面內(nèi)以終點(diǎn)位置和半徑為輸入?yún)?shù)的圓弧插補(bǔ)。
基于運(yùn)動(dòng)控制器的開放式數(shù)控雕刻機(jī)系統(tǒng)采用上、下位機(jī)分別實(shí)現(xiàn)原始NC程序提取、代碼的識(shí)別和譯碼、半徑補(bǔ)償、加減速前瞻性處理、插補(bǔ)計(jì)算等功能,將操作系統(tǒng)的智能化和伺服加工的實(shí)時(shí)性有效結(jié)合在一起。在文中研究的基礎(chǔ)上,可以根據(jù)雕刻需求的變化增加相應(yīng)的信息預(yù)處理模塊,如上位機(jī)可以再增加粗插補(bǔ)模塊、下位機(jī)增加S 加減速模塊等。
【1】鄭華林,馬建祿,潘盛湖,等.基于PC 運(yùn)動(dòng)控制卡的數(shù)控系統(tǒng)NC代碼編譯技術(shù)研究[J].機(jī)床與液壓,2011,39(10):94-96.
【2】陳嬋娟,劉海超.開放式數(shù)控系統(tǒng)軟件譯碼模塊的研究及實(shí)際開發(fā)[J].機(jī)床與液壓,2010,38(1):47-50.
【3】羅青.數(shù)控代碼光順預(yù)處理方法研究[D].廣州:廣東工業(yè)大學(xué),2007.
【4】鄒小剛.高速數(shù)控系統(tǒng)研究平臺(tái)構(gòu)建及其預(yù)處理技術(shù)研究[D].揚(yáng)州:揚(yáng)州大學(xué),2005.
【5】沙智華,張生芳,葛研軍.通用數(shù)控代碼編譯系統(tǒng)研究與實(shí)現(xiàn)[J].中國(guó)機(jī)械工程,2003(5):763-766.
【6】固高GE系列運(yùn)動(dòng)控制器用戶手冊(cè)[M],2010.