摘要: 由於數控(kòng)機床的絲杠在製造、安裝上(shàng)存在誤差以及長期使用造成的磨損,導致螺距實際移動值與(yǔ)預期設定值之(zhī)間存在差異。提出了螺距誤差的單向補償方法和雙向補償方法。介紹了螺距補償的原理,包括單(dān)向補償方法、雙向(xiàng)補償方法的原理; 提供了一種(zhǒng)實現單向補償、雙向補償的設計方案; 編寫了簡單的零件位置移動程序來測試雙(shuāng)向補(bǔ)償方法是否生效。實驗結果證明,該方案能夠解(jiě)決數控係統中的螺距誤差。
關鍵(jiàn)詞: 數控係統; 螺距補償; 單(dān)向補償; 雙向補償; 補償表
0 引言
數控機床大都采用滾珠絲杠作為機械傳動部件(jiàn),電機帶動(dòng)滾珠絲杠,將電機的旋轉運動轉換(huàn)為絲杠直線運動(dòng)。由於機床(chuáng)絲杠(gàng)在製造、安裝和調整(zhěng)等方麵的誤差,以及磨(mó)損等原因,造成機械實際進給值與預期信號值的不一致(zhì),導致零件加工精度不穩(wěn)定。因此必(bì)須定期對機床坐標精度進行補償。
不同的數控係統對螺距誤(wù)差采(cǎi)取補償的措施是不一樣的。出於機械零件加工的需要,有時不僅要考慮單方向上的螺距誤差補償(cháng),甚至也要考慮雙方向上的螺距誤(wù)差補償[1]。本文提出一種螺(luó)距(jù)誤差補償(cháng)的設計方(fāng)案,包括單(dān)向螺距誤差補償( EEC) 和雙向螺(luó)距誤(wù)差補償( CEC) 。
1 、螺距(jù)誤補償的原理
1. 1 螺距誤差(chà)補償的方法描述
對螺距(jù)誤差(chà)進行補(bǔ)償時,在機床的運行軌道上取若幹點,通過激光幹涉儀[2]測得機床的實際定位位置,與預期設(shè)定的位置進行比較,得出偏移距離,並將其寫入補償文件中。選取的點越多,補償精度越高(gāo)。機床在下(xià)次運行時,將會把補償文件的數據也計算在內,從而達到精度要求。
數控係統中設置螺距誤(wù)差補(bǔ)償需要NCK( numericcontrol kernel) 的支持(chí),目前(qián)可針對某個點把它的補償值寫入NCK 補償文件[3]。機械零件程序運行時自動地讀取相應補償文件中各點的補償數據,並進行相應的調整,隨之產生對應的機械(xiè)位置變化。
1. 2 單向螺距誤差(chà)補償(cháng)( EEC)
EEC 的原理是從起點到終(zhōng)點這個方向,在起點與終點之(zhī)間等份若幹點,如圖1 所示。刀具(jù)在絲杠上的運動軌跡是先從起點運動,依次經過各個等份(fèn)點,到達終點。
EC 補償隻對從(cóng)起點到(dào)終點這個(gè)方向生效。當運動到某一個等份點時,根據(jù)刀具實際移動的距離與預期的距離的偏差,計算出該點的補償值。例如(rú),以圖1 中10 這個點(diǎn)為例。預期希望(wàng)刀具從0 點能夠運動到(dào)10 點,其間移動距離為10mm。但是由於絲杠的誤差,實(shí)際運動的距(jù)離是9mm,偏差為10-9 = 1mm,那麽10 這個點的補償值就(jiù)是1mm; 如果其間實際移動距離為11mm,偏差為10-11 =-1mm,那麽10 這個(gè)點的補償值就(jiù)是-1mm。其(qí)他各點的螺距誤差補償同理實現。
圖1 EEC 原理圖
1. 3 雙向螺距(jù)誤差補償( CEC)
CEC 的原理支持兩個方向,即從起點到終點方向和(hé)從終點返回到起點方向,如圖(tú)2 所(suǒ)示。規定從起(qǐ)點到終點方向為正方向,從終點到起(qǐ)點方向為負方向(xiàng)。刀(dāo)具在絲杠上的運動軌跡是先從起點運動,依次經過各個等份點,到達終點; 然後再從終(zhōng)點按(àn)原路(lù)返回到起點,逆向依次經過各個等份點,直至起點。CEC 補償在兩個方向上生效,分(fèn)別計算每個方向上當運動到某(mǒu)一個等份點(diǎn)時(shí),根據運(yùn)動實際移動的距離與預期的距離的偏差計算出該(gāi)點的補償值。注意正向與(yǔ)負向的方向性。同一個點(diǎn)在兩個方向(xiàng)上補償不同。以圖2 中10 點為例。當(dāng)刀具從起點向終點運(yùn)動即正方向,途中經過10 點; 假如從0 點(diǎn)向10 點實際移動了9mm,與預期移動距(jù)離10 的偏差是10-9 = 1mm,那(nà)麽10 這個點在正(zhèng)方向上的補償是1mm。
當刀(dāo)具(jù)從終點向起點反向(xiàng)運(yùn)動,途中反向地經過10 點;假如從20 點(diǎn)向(xiàng)10 點實際移動了9mm,與(yǔ)預期移動距離10 的偏差是10-9 = 1mm,但是由於從終點到起點是反方向,所(suǒ)以10 點在反方向上的補(bǔ)償是(shì)-1mm; 假如實際移動距離為11mm,與預期移動距離10 的(de)偏差是10-11 = -1mm,但是(shì)由於從終點到起點是反方向,所以10 這個點在反方向上的(de)補償是1mm。其(qí)他各點正方(fāng)向和反方向上的補償依此(cǐ)類推。
圖2 CEC 原理圖
2 、螺距補償的設(shè)計
2. 1 螺(luó)距補償的主界麵
螺距補償主界麵包(bāo)括三部分,如圖3 所(suǒ)示。
圖3 螺距補償主界麵
螺(luó)距誤差補償是按軸進行的。針對每一個軸可以設置每個軸的螺距誤差補償。主軸不設置。如圖3 中第一排左邊方框所示(shì)。這裏可以通過按右上方的“軸+”或“軸-”按鈕選擇要設置補償的軸。圖3 中第一排右邊方框所(suǒ)示內容為用戶提供補償的(de)參考圖示信(xìn)息。圖3 中第二排(pái)顯示了當前(qián)需要進行補償設(shè)置的點位置信息。圖3 中右邊有一個(gè)按鈕“雙向補(bǔ)償”,該按鈕可以在EEC 和CEC 之間切換。
2. 2 單向補(bǔ)償EEC 設計
在設計單(dān)向(xiàng)螺距補償( EEC) 時要用到下列信息:MD38000 表示數控係統(tǒng)中單向補償支持的最大(dà)補償(cháng)點數。MD32700 表示螺距誤差使(shǐ)能: 0 禁止,可以寫補償(cháng)值;1 使能,補償文件寫保護。EEC 在(zài)NCK 中存儲補償數據的文件名是“/_N_COMPLETE_EEC_INI”。
設計單向補償的操作步驟(zhòu):
a) 讀MD38000,獲取係統(tǒng)支(zhī)持的最大補償點數。用戶進行補償設計分配的點數要小於等於這(zhè)個值(zhí)。
b) 輸入補償起點、補償終(zhōng)點、測量間隔,用(yòng)這3 個值到EEC 補償文件中讀取當前(qián)軸各點的(de)數據補償值(zhí)。如果事先沒有寫(xiě)入(rù),則需要寫入各點的(de)補償數(shù)據值,下(xià)次才能讀取成功。操作步驟如下所示:
1) set MD32700[axis] = 0 / /軸axis 的寫補償(cháng)文件功能生效(xiào)
2) 寫下列補償屬性到EEC 補償表:
$ AA_ENC_COMP _STEP[< e >,<AXi >] / /補償(cháng)點之間的
距離
$ AA_ENC_COMP_MIN[<e>,<AXi>] / /開始補償點的位置
$ AA_ENC_COMP_MAX[<e>,<AXi>] / /終結補償點(diǎn)的(de)
位置
$ AA_ENC_COMP_IS_MODULO[<e>,<AXi>] / /補償表(biǎo)
是否支持modulo function,默認為(wéi)0
$ AA_ENC_COMP[<e>,<N>,<AXi>] / /在補償表中每個
補償點的補償值,可以有若幹條記錄。
3) set MD32700[axis] = 1 / / /軸axis 的(de)寫補償文件功(gōng)能失效
c) 第二次即可讀取到上次設置的補償數據。
d) EEC 補償表示例:
$ AA_ENC_COMP[0,0
,AX1] = 2 '3a08
$ AA_ENC_COMP[0,1
,AX1] = 1 '399e
$ AA_ENC_COMP[0,2
,AX1] = 0. 9 '3df2
$ AA_ENC_COMP[0,3
,AX1] = 1. 88 '41fe
$ AA_ENC_COMP[0,4
,AX1] = 1 '38e6
$ AA_ENC_COMP[0,5
,AX1] = 0 '3928
$ AA_ENC_COMP[0,6
,AX1] = 0 '3ae0
$ AA_ENC_COMP[0,7
,AX1] = 0 '3e60
. . . . . .
$ AA_ENC_COMP_STEP[0,AX1] = 10 '4760
$ AA_ENC_COMP_MIN[0,AX1] = 0 '43ae
$ AA_ENC_COMP_MAX[0,AX1] = 300 '4256
$ AA_ENC_COMP_IS_MODULO[0,AX1] = 0 '630a
2. 3 雙向螺距補償(cháng)CEC 設計
在(zài)設計雙向螺距補償時要使用下列信息: MD18342表示CEC 支持的最大補償點數。MD32710 表示CEC 功能是(shì)否生效: 0,表示使CEC 功能不生效; 1,生效。
MD41300 表示某個軸補償表是否生(shēng)效。每一(yī)個軸(zhóu)要寫兩個表,包(bāo)括正向補(bǔ)償表,負向補償表。使相應的補償表生效,包括正向表和負向表。0: 可以寫CEC 補償(cháng)某個特定
表; 1,不能。MD32720 表示CEC 最大補償值。CEC 補償數據寫(xiě)入NCK 補償文件名: /_N_COMPLETE_CEC_INI。實現CEC 操作步驟如下:
a) 讀MD18342,數控係統對CEC 功(gōng)能支持的最大補償點數。用戶配置的補償點數小(xiǎo)於等於這個值。
b) 輸入補償起點、補償終點、測量間隔,用這三個值(zhí)到CEC 補(bǔ)償文件中讀(dú)取(qǔ)當前軸的相(xiàng)應點的(de)補償值。第一次時為空,則需將這些數據寫入CEC 補償表,操作步驟如下:
1) set MD32710[axis] = 0, set 41300[<t>] = 0 / /寫補償文件,設置(zhì)哪個補償表(biǎo)可寫。
2) 寫下列補償屬性到CEC 補償表:
每一(yī)個軸要(yào)寫兩個表,包括正向補償(cháng)表,負向補償表。要建(jiàn)立軸(zhóu)與補償表的對應關係。
寫正向表:
$ AN_CEC_INPUT_AXIS[<t>]( basic axis) / /建立軸(zhóu)與補償
表的(de)輸(shū)入關係。
$ AN_CEC_OUTPUT_AXIS[<t>]( compensation axis) / /建
立軸(zhóu)與補償(cháng)表輸出關(guān)係
$ AN_CEC_STEP[<t>]( interpolation point distance) / /點間
距離
$ AN_CEC_MIN[<t>]( initial position) / /起點位置
$ AN_CEC_MAX[<t>]( end position) / /終點位置
$ AN_CEC_DIRECTION[<t>]( direction) / /方(fāng)向參數(shù): 1 正;
-1 負
$ AN_CEC_MULT_BY_TABLE [<t>]( table multiplication)
/ / 表的多應用功能。默認值0
$ AN_CEC_ IS _MODULO[< t >]( compensation with modulo
function) / /是否支持modulo function,默認為0
$ AN_CEC[<t>,<N>]( compensation value for interpolation
point <N> of compensation table [<t>]) / /在正向補償表中依(yī)次
寫入每個補償點的補償值,可以有若幹條(tiáo)記錄
寫負向表:
$ AN_CEC_INPUT_AXIS[<t>]( basic axis) / /建立軸(zhóu)與(yǔ)補償
表的輸入關(guān)係。
$ AN_CEC_OUTPUT_AXIS[<t>]( compensation axis) / /建
立軸與補償表的輸出關係。
$ AN_CEC_STEP[<t>]( interpolation point distance) / /點間
距離(lí)
$ AN_CEC_MIN[<t>]( initial position) / /起點位置
$ AN_CEC_MAX[<t>]( end position) / /終點位置
$ AN_CEC_DIRECTION[<t>]( direction) / /方向參數(shù): 1 正;
-1 負
$ AN_CEC_MULT_BY_TABLE [<t>]( table multiplication)
/ / 表的多應用(yòng)功能。默認值0
$ AN_CEC_ IS _MODULO[< t >]( compensation with modulo
function) / /是否支持modulo function,默認為0
$ AN_CEC[<t>,<N>]( compensation value for interpolation
point <N> of compensation table [<t>]) / /在負向補償表中依次
寫入每(měi)個補償點的補償值,可以有若幹(gàn)條。
3) 在寫補償(cháng)表之後,將MD32710[axis]寫入1; 設置已經操作的補償表的41300 為1,包括正向表和負(fù)向(xiàng)表(biǎo)。
c) 第二次進入係(xì)統時,就能讀取上次設置的補償數據。
d) CEC 補償表(biǎo)數據示例
1) 正向補償表
$ AN_CEC[0,0
] = 1 '2ac2
$ AN_CEC[0,1
] = 1 '2b58
$ AN_CEC[0,2
] = 1 '2c8a
$ AN_CEC[0,3
] = 1 '2efa
$ AN_CEC[0,4
] = 1 '2ace
$ AN_CEC[0,5
] = 0 '2b0c
$ AN_CEC[0,6
] = 0 '2c56
$ AN_CEC[0,7
] = 0 '2ef6
$ AN_CEC[0,8
] = 0 '2a76
$ AN_CEC[0,9
] = 0. 99 '2f86
. . . . . .
$ AN_CEC_INPUT_NCU[0] = 1 '49fa
$ AN_CEC_INPUT_AXIS[0] = ( AX1) '4b12
$ AN_CEC_OUTPUT_NCU[0] = 1 '4aae
$ AN_CEC_OUTPUT_AXIS[0] = ( AX1) '5444
$ AN_CEC_STEP[0] = 10 '3432
$ AN_CEC_MIN[0] = 0 '3a9c
$ AN_CEC_MAX[0] = 300 '3e0c
$ AN_CEC_DIRECTION[0] = 1 '4760
$ AN_CEC_MULT_BY_TABLE[0] = 0 '4d50
$ AN_CEC_IS_MODULO[0] = 0 '49be
2) 負向(xiàng)補償表
$ AN_CEC[1,0
] = 1 '2af4
$ AN_CEC[1,1
] = 1 '2b8a
$ AN_CEC[1,2
] = 1 '2cbc
$ AN_CEC[1,3
] = 1 '2f2c
$ AN_CEC[1,4
] = 1 '2b00
$ AN_CEC[1,5
] = 0 '2b3e
$ AN_CEC[1,6
] = 0 '2c88
$ AN_CEC[1,7
] = 0 '2f28
$ AN_CEC[1,8
] = 0 '2aa8
$ AN_CEC[1,9
] = 0. 99 '2fb8
. . . . . .
$ AN_CEC_INPUT_NCU[1] = 1 '4a90
$ AN_CEC_INPUT_AXIS[1] = ( AX1) '4bda
$ AN_CEC_OUTPUT_NCU[1] = 1 '4b76
$ AN_CEC_OUTPUT_AXIS[1] = ( AX1) '5476
$ AN_CEC_STEP[1] = 10 '3496
$ AN_CEC_MIN[1] = 0 '3ace
$ AN_CEC_MAX[1] = 300 '3e3e
$ AN_CEC_DIRECTION[1] = -1 '490c
$ AN_CEC_MULT_BY_TABLE[1] = 0 '4de6
$ AN_CEC_IS_MODULO[1] = 0 '4a54
2. 4 補償(cháng)數據的顯(xiǎn)示與編輯
在列表框中顯示出所有補償數據,分別顯示(shì)EEC 和CEC 兩種(zhǒng)數據結果。支持(chí)列表框記錄的KeyUp,KeyDown鼠標上下移(yí)動消息和PageUp,PageDown 屏幕上下翻頁消息,並且當有(yǒu)多條記錄時(shí)滾動條依序滾動。
2. 4. 1 EEC 補償數據的顯示與編輯,如圖4 所示
圖4 EEC 數據顯示
2. 4. 2 CEC 補償數據的顯示與編輯,如圖5 所示
圖5 CEC 數據顯示
2. 5 支持反向數據設置
1) 支持起點位置值大於終點位(wèi)置值,即(jí)從大到小(xiǎo)排列(liè)各個補償點。
2) NCK 中對補償表數據存儲時總是把兩者中最小值放入起點位置項$ AA_ENC_COMP_MIN 或$ AN_CEC_MIN,最大值放入終點位置項$ AA_ENC_COMP_MAX 或$ AN_CEC_MAX。而不能忽略起點位置(zhì)值與終點位置值的大小關係,粗略地把第一個點放入起點位置項(xiàng),把最後(hòu)一個點放入終點位置項。由於目前NCK 還不支持這種功能。如果這樣寫入,雖然能夠(gòu)寫(xiě)入NCK 補償表裏( 偶爾會出現錯誤報警) ,但是在實際運轉機械零件程序時(shí)補償(cháng)值不會生效。
3 、螺距補償的測(cè)試
現以雙向螺距補償為例測試補償(cháng)數據是否生效。雙向螺距補償的測試方法: 使用紮(zhā)帶扣(kòu)在(zài)電(diàn)機上,當刀具(jù)位置移動時觀察電機的轉動,可以(yǐ)驗證補償數(shù)據是否準確。
寫一個小零件(jiàn)程序,執行該零件程(chéng)序,係統會自動調用(yòng)內部已經生效(xiào)的補償進行零(líng)件位置移(yí)動的相應差補。
測試功能點: 針對x 軸進行CEC 螺距補償的測試。測試步驟如下:
1) 數控係統回(huí)參考點。
2) 在螺距補償界麵設(shè)置好CEC 的螺距補償值。
3) 進入數控係統的零(líng)件(jiàn)程序編輯操作模式,使用G 代(dài)碼編寫下列零件程(chéng)序,針對x 軸進行螺距補償(cháng)的測試。
G0X0 / /從起點0 開始運動
G4F4 / /停等4s
G00X10 / /快速運動到10
G4F4 / /停等4s
G00X20 / /快速(sù)運動(dòng)到20
G4F4 / /停等4s
G00X10 / /反向運動到10
G4F4 / /停等4s
G00X0 / /快速運動到起點0
4) 觀察電機上紮帶的(de)初(chū)始位置。電機轉(zhuǎn)動一圈(quān)轉化為絲杠直線移動10 個單(dān)位。紮帶一開始是處於時鍾12點鍾正點方(fāng)向。
5) 運行零件測試(shì)程序,程序執行過程中觀察紮帶轉動角度。如果某點的補償值是在絲杠上1mm,那麽(me)電機轉動略(luè)向左偏於時鍾(zhōng)正點方向1mm; 如果(guǒ)某(mǒu)點的補償是在絲杠上(shàng)-1mm,那麽電(diàn)機轉動略向(xiàng)右偏於時鍾正點方向1mm。
4 、結語
不論單向螺距誤差補償還是雙向螺距誤差(chà)補(bǔ)償都(dōu)是先將各個點的螺距誤差補償值寫(xiě)入補償(cháng)文件。當零件程序運行時自(zì)動讀取各個點的補償值,調整各個點的實際移動位置(zhì)值。經過(guò)在數控機床上充分測試驗(yàn)證,單向螺距誤差補償和雙向螺距誤差(chà)補償能夠準確地彌補絲杠上各(gè)個(gè)點的螺距誤差。
如果(guǒ)您有機(jī)床行業、企業相關(guān)新聞稿件發表,或進行(háng)資訊合作,歡迎聯係本網編輯部, 郵箱:skjcsc@vip.sina.com
- 2024年11月 金屬(shǔ)切削機床產量數據
- 2024年11月 分(fèn)地區金屬切削機(jī)床產量數據(jù)
- 2024年11月(yuè) 軸承出口情況
- 2024年11月 基本型乘用車(轎(jiào)車)產量數據
- 2024年11月 新能源汽車產量數據
- 2024年11月 新能(néng)源汽車銷量情況
- 2024年10月 新能源(yuán)汽車(chē)產量數據
- 2024年10月 軸(zhóu)承出口情況
- 2024年10月 分(fèn)地區(qū)金屬切削機床產量數據
- 2024年10月 金(jīn)屬切削機床產量數據
- 2024年9月 新能源(yuán)汽(qì)車(chē)銷量情況
- 2024年8月(yuè) 新能源汽車產量數據(jù)
- 2028年8月 基本型乘用車(轎車)產(chǎn)量數據(jù)