為機床工具企業提供深度(dù)市場分(fèn)析(xī)                     

用戶名:   密碼:         免費注冊  |   申請VIP  |  

English  |   German  |   Japanese  |   添加收藏  |  
廣州數控
數控係統

車床 銑床 鑽床 數(shù)控(kòng)係統 加工中心 鍛壓機床 刨插拉床 螺紋加工機床 齒輪加工機床
磨床 鏜床 刀具 功能部件 配(pèi)件附件 檢驗(yàn)測量 機床電器 特種加工 機器人

數控(kòng)係(xì)統

電工電力 工程機(jī)械 航空航天 汽車(chē) 模具
儀器儀表 通用機械 軌道交通 船舶

搜索
熱門關鍵字(zì):

數控機床

 | 數控車床 | 數控係統 | 滾齒機(jī) | 數控銑床 | 銑刀 | 主軸 | 立式(shì)加工中心 | 機器人
您(nín)現在的位置(zhì):數控係統網> 技術前沿>數控係統中螺距補償(cháng)的原(yuán)理與設計
數控係統中螺距補償的原理與設計
2016-8-1  來(lái)源: 西門子數控( 南京) 有限公司 等  作者:陳剛 羌鈴鈴


       摘要: 由於數控(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è)點的螺距誤差。

    投稿(gǎo)箱:
        如果(guǒ)您有機(jī)床行業、企業相關(guān)新聞稿件發表,或進行(háng)資訊合作,歡迎聯係本網編輯部, 郵箱:skjcsc@vip.sina.com
国产999精品2卡3卡4卡丨日韩欧美视频一区二区在线观看丨一区二区三区日韩免费播放丨九色91精品国产网站丨XX性欧美肥妇精品久久久久久丨久久久久国产精品嫩草影院丨成人免费a级毛片丨五月婷婷六月丁香综合