背景介紹
在全球科技快速發展的浪潮下,半導體行業作為關鍵的技術領域,始終處於創新與變革的前言。同時對於實時性的要求也在不斷提高。
例如激光加工技術在半導體行業的應用中,對於激光切割的速度和精度也作出了更高的要求。而運動緩衝則是一個可以快速提高實時性的有效手段。

本文主要通過使用正運動激光振鏡運動控製器ZMC408SCAN-V22介紹運動緩衝相關原理及其在激光加工中的應用。

ZMC408SCAN-V22硬件介紹
ZMC408SCAN-V22是正運動技術推出的高性能雙振鏡運動控製器,集成了2個百兆以太網口,支持EtherCAT、EtherNET、CAN、RS232、RS485、24路通用數字輸入、20路通用數字輸出、2路通用模擬量輸出、2路通用模擬量輸入、4個本地差分脈衝軸接口、1個MPG手輪編碼器接口、2個帶反饋振鏡接口、1個LASER激光專用接口、1個FIBER激光器接口。開放式係統框圖如下所示:

ZMC408SCAN-V22總線控製器支持EtherCAT總線連接,支持最快500μs的刷新周期,支持最多達16軸運動控製,支持直線插補、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、同步跟隨、虛擬軸設置等;采用優化的網絡通訊協議可以實現實時的運動控製。

ZMC408SCAN-V22通過CAN、EtherCAT總線可以連接各個擴展模塊,從而擴展數字量、模擬量或運動軸。可以在Windows,Linux,Mac,Android,Wince各種操作係統下開發,提供vc,c#,vb.net,labview等各種環境的dll庫。上位機軟件編程參考《ZMotion PC函數庫編程手冊》。

運動緩衝原理
zaiyunxingyundongzhilingshi,kongzhiqitigongleyigehuanchongqulaibaocunjinruyundonghuanchongdeyundonghuanchongduilie。yundongzhilingcundaoyundonghuanchongqu,zaihuanchongquliquchuzhilingzaizhixing,shenglvelechengxusaomiaodeshijian,dadatishengleshishixing,tongshiyeshidechengxunengzhengchangxiangxiasaomiao,buhuidusai。
ZMotion運yun動dong控kong製zhi器qi具ju有you多duo級ji的de運yun動dong緩huan衝chong,並bing且qie遵zun循xun先xian進jin先xian出chu原yuan則ze。當dang運yun動dong緩huan衝chong開kai啟qi的de時shi候hou,程cheng序xu在zai掃sao描miao識shi別bie到dao程cheng序xu任ren務wu的de第di一yi條tiao運yun動dong指zhi令ling時shi,將jiang運yun動dong指zhi令ling分fen配pei到dao指zhi定ding軸zhou的de運yun動dong緩huan衝chong區qu,電dian機ji開kai始shi運yun動dong,此ci時shi程cheng序xu繼ji續xu向xiang下xia掃sao描miao到dao第di二er條tiao運yun動dong指zhi令ling時shi,再zai往wang運yun動dong緩huan衝chong區qu中zhong存cun,在zai不bu斷duan掃sao描miao存cun入ru運yun動dong指zhi令ling的de同tong時shi,從cong運yun動dong緩huan衝chong區qu中zhong依yi次ci取qu出chu運yun動dong指zhi令ling執zhi行xing。
運動緩衝原理參考下圖:
1.MTYPE,NTYPE分別是當前運行的運動指令類型和MTYPE後麵的第一條指令類型。
2.任意一段程序的運動指令都可以進入任意軸的運動緩衝區,由軸號指定。
3.每個軸的運動緩衝區都是獨立的,互不幹擾。

如下圖:當運動緩衝區還有空間,運動指令就會進入運動緩衝區。然後可以通過MOVE_MARK設置標識,表示下一條要調用的運動指令的MARKbiaohao,zhegebiaohaohuiheyundongzhilingyiqixieruyundonghuanchong。dengzhilingzhixingwanchenghou,zetuichuyundonghuanchongqu,zhiqiandexiayitiaozhilingbianchengzhengzaiyundongzhiling,xunhuanwangfu,zhidaohuanchongqumeiyouzhilingquzhixing。

緩衝多條運動指令時,為了判斷當前運動執行到哪一條,提供MOVE_MARK運動標號和MOVE_CURMARK當前運動標號指令。
MOVE_MARK運動標號每掃描一條運動指令+1;
MOVE_CURMARK指令為當前運動的標號,提示當前運動到第幾條運動指令,所有運動完成後為-1。
當前運動完成後會自動執行運動緩衝區內的下一條運動。運動指令全部執行完後,運動緩衝區為空,或者使用CANCEL/RAPIDSTOP指令清空運動緩衝區。
擴展說明
上圖中的FORCE_SPEED、ENDMOVE_SPEED和STRATMOVE_SPEED指令屬於SP運動指令。
SP指令也屬於運動指令,使用SP運動指令(如MOVESP、MOVECIRCSP等直接在運動指令後方加上SP)時,SP速度FORCE_SPEED、ENDMOVE_SPEED和STRATMOVE_SPEED會隨SP運動指令寫入運動緩存區。
SP運動指令與運動指令的區別:
MOVE(100)的速度是SPEED=100,MOVESP(100)的速度是FORCE_SPEED=200。具體見下圖:

運動緩衝在激光加工中的應用
通過上麵的介紹,大家對運動緩衝應該有了基本的認識,下麵我們來介紹運動緩衝在激光加工中的應用。
在激光處理的應用場景中,運動控製係統不僅需要解決機床的軸向運動問題,而且還必須準確控製激光輸出。
lirujiguanggonglv,jiaodian,yundongsudu,fuzhuqiti,cailiaoxishoudeng,douxuyaoyundongkongzhixitongzhixingcaozuoheshuchu。duiyujiguangshudeyundongguijikongzhi,tabixufeichangzhunque。baozhengrenheshujucanshudoubuhuidiushi。fouze,gongjiandechuliwufazhengchangwancheng。gongjiandebianyuanjiangchanshengmaoci,gengyanzhongkenengdaozhigongjiansunhuai。
下圖為模擬激光加工工藝的軌跡,通過運動緩衝可最大程度保證運動到固定點開光、關光的精確性。
正運動激光控製使能、出光等控製都是通過通用的IO輸出指令進行控製。
以開光操作為例:必須等待軸空移到設定的開光位置後才能控製輸出口開光,所以必須使用MOVE_OP運動緩衝輸出指令而不是使用OP普通輸出指令,運動緩衝使得該軸前麵其他運動指令執行完畢同時到達開光點才執行開光操作,保證了運動的時序。

如下圖:開始刻蝕圖形時,執行空移到起點位置、開光、直線、調光等操作,這些指令都會依次放入運動緩衝區,按照先進先出的順序執行。

在激光加工應用場景中,采用插補緩衝中控製激光器的方式不僅可以保證運動時序,還可以通過MOVE_PWM或者MOVE_AOUT等運動緩衝指令調節激光器的輸出功率控製激光器出光的強弱,從而滿足更多的工藝需求和提高加工的效果。
運動緩衝在激光加工應用場景示例
使用該例程需選擇帶SCAN的控製器型號。(本文以ZMC408SCAN-V22為例)
正運動SCANxilieyundongkongzhiqibujinkeyiduidianjijinxingkongzhi,tongshihaikeyiduijiguangzhenjingjinxingyundongkongzhi,laiwanchengzhenjingdedingweihechabuyundong,bingqiezaiyundongguochengzhongkeyishixianjiguangqikongzhi、IO控製、DA控製、PWM控製等工藝操作,同時振鏡軸與電機軸之間也可以做插補軌跡運動。(注:帶SCAN的控製器才能設置軸類型為21)
1.MOVESCANABS(pos1[,pos2] [,pos3]…) - 振鏡直線運動指令。
(1)pos1:第一個軸的運動坐標,絕對位置
(2)pos2:下一個軸的運動坐標,絕對位置
2.MSCANCIRCABS(end1,end2,centre1,centre2,direction) - 振鏡圓心畫弧指令。
(1)end1:終點第一個軸運動坐標,絕對位置
(2)end2:終點第二個軸運動坐標,絕對位置
(3)centre1:圓心第一個軸運動坐標,絕對位置
(4)centre2:圓心第二個軸運動坐標,絕對位置
(5)direction:0-逆時針,1-順時針
例程中其他指令介紹見《激光振鏡控製編程手冊》(資料聯係正運動工作人員獲取)
RAPIDSTOP(2) '清除緩衝區
WAIT IDLE
'1,初始部分,設置振鏡軸參數,開啟激光使能等等的初始化操作
BASE(4,5) '選擇振鏡軸,振鏡X軸4,振鏡Y軸5
ATYPE = 21,21 '設置振鏡軸類型
UNITS = 1000,1000 '設置振鏡軸脈衝當量
MERGE = ON '開啟連續插補
AXIS_ZSET = 3 '開啟精準輸出
'拐角延時參數設置
CORNER_MODE = 2 '設置拐角模式
DECEL_ANGLE = 60 * (PI/180) '設置起始弧度0-60不處理60-90等比減速
STOP_ANGLE = 90 * (PI/180) '設置停止弧度大於90延時
LASER_SET(1,1) '設置能量並口
MOVE_OP(49,ON) '打開激光器急停信號(根據實際情況設置)
MOVE_OP(47,ON) '打開使能
'2,功率設置(功率設置可以多次穿插在運動中間,實現不同圖層的操作)
MOVE_OP(46,OFF) '設置拐角延時(單位 us)
ZSMOOTH = 500
MOVE_AOUT(3,128) '設置功率(50% 0 - 255)
MOVE_PWM(11,0.5,60000) '功率鎖存信號(Fiber 激光器處於鎖存模式下使用)
MOVE_OP(46,ON)
'3,標刻圖形
FORCE_SPEED = 1000 '設置空移速度 1000Units/s
MOVESCANABS(50,0) '空移到起點
MOVE_OP(44,ON) '開光
MOVESCANABS(150,0)
MOVE_PWM(11,0.5,50000) '調光(畫圓弧時速度比直線慢,有能量堆積,需要降頻)
MSCANCIRCABS(150,-100,150,-50,1)
MOVE_PWM(11,0.5,60000) '調光(圓弧結束恢複原來的頻率)
MOVESCANABS(100,-100)
MOVE_OP(44,OFF) '關光
'4,結束部分
MOVESCANABS(0,0) '振鏡回零
WAIT IDLE
MOVE_DELAY(0.1,1) '結束延時

位置及輸出波形圖

速度及輸出波形圖

XY模式圖
普通輸出與運動緩衝中輸出
在編寫程序過程中,通常會使用OP指令操作輸出口的打開或者關閉,與此同時也提供了MOVE_OP運動緩衝輸出指令,這兩種指令區別如下:
1.普通輸出指令程序掃描到該行指令便執行輸出。
2.yundonghuanchongzhongshuchuzhilingzaichengxusaomiaozhihou,jiangqicunruyundonghuanchongqu,yundonghuanchongquanxianjinxianchudeshunxuyiciquchuzhilingzhixing,zhidaoquchugaishuchuzhilingshicaihuizhixingshuchu。liruzaijiguangyingyongchangjingzhong,ruguobushiyongyundonghuanchong,dangsaomiaodaoshangyitiaoyundongzhiling,jiuhuichuxianhaimeiyundongwanbi,chengxujiusaomiaodaoshuchuzhiling,zheshijiuhuilikezhixingshuchu,daozhishijikaiguanguangdeweizhibushizaiwomenyuxiangdedianweiweizhizhixing。
下麵通過例子幫助理解兩種輸出的區別。
RAPIDSTOP(2) '停止所有軸
WAIT IDLE(0) '等待軸0停止
BASE(0) '選擇軸0
DPOS=0 '軸0坐標偏移至0
UNITS=100 '脈衝當量
SPEED=100 '速度
ACCEL=1000 '加速度
DECEL=1000 '減速度
TRIGGER '觸發示波器采樣
OP(0,3,$0) '關閉輸出口0-3
DELAY(1000) '延時
MOVE(100) '直線插補相對距離100
MOVE_OP(1,ON) '運動緩衝中輸出
OP(0,ON) '普通輸出
例子運行效果:延時1s後,程序掃描到OP指令,輸出口0立即執行輸出。
MOVE_OP把IO操作指令填入運動緩衝區,所以在運行完MOVE(100)之後,輸出口1才輸出。

運動緩衝區堵塞
meigezhoudeyundonghuanchongkongjianshiyouxiande,dangsaomiaotaiduoyundongzhilingfangruyundonghuanchongqushi,duojiyundonghuanchongququanbubeisaiman,ruguochengxujixusaomiaodaogengduodeyundongzhiling,chengxuyehuibeidusai,zhidaoyundongzhilingyiciwanchengbingtuichu,yundonghuanchongquyoulekongwei,yundongzhilingcaihuijixujinruyundonghuanchongqu。
例:以ZMC408CE控製器為例,默認為4096個運動緩衝,下圖例程中顯示該控製器的運動緩衝區最多能存493條圓弧插補指令,下載程序後打印i的值為492,表示當前FOR循環並未執行完,程序堵塞了。

下圖中,當從運動緩衝區取出部分運動指令執行之後,緩衝區有了空間,FOR循(xun)環(huan)繼(ji)續(xu)執(zhi)行(xing),並(bing)存(cun)入(ru)運(yun)動(dong)指(zhi)令(ling)到(dao)運(yun)動(dong)緩(huan)衝(chong)區(qu)。指(zhi)令(ling)執(zhi)行(xing)退(tui)出(chu)運(yun)動(dong)緩(huan)衝(chong)區(qu)後(hou),隻(zhi)要(yao)運(yun)動(dong)緩(huan)衝(chong)區(qu)的(de)空(kong)間(jian)足(zu)夠(gou),新(xin)的(de)運(yun)動(dong)指(zhi)令(ling)則(ze)會(hui)繼(ji)續(xu)一(yi)條(tiao)一(yi)條(tiao)往(wang)運(yun)動(dong)緩(huan)衝(chong)區(qu)中(zhong)存(cun)入(ru)。

每個軸的運動緩衝都是獨立的,互不幹擾,且緩衝區大小相同,通過指令REMAIN_BUFFER(MTYPE) AXIS(n)查看某個軸的剩餘可用緩衝區的個數。
ZMC4係列運動控製器每個軸可支持多達4096段運動緩衝(不同型號的控製器緩衝個數有區別,具體情況參見控製器《用戶手冊》說明或使用?*max打印查看),可以手動設置LIMIT_BUFFERED運動緩衝限製。
不同的運動指令占用的緩衝空間是不同的,越複雜的運動占用的運動緩衝空間越多。
如下表所示:MTYPE為1表示MOVE直線插補指令,MTYPE為2表示MOVEABS直線插補指令(絕對)。MTYPE為3表示MHELICAL螺旋插補指令,MTYPE為4表示MOVECIRC圓弧插補指令。

例如:ZMC408CE控製器,運動緩衝區大小為4096,緩衝區一次性可緩衝的MOVE直線插補指令和MOVECIRC圓弧插補指令個數是不同的。可參考下圖:
注:插補運動緩衝在主軸的運動緩衝區。

為了讓大家更好理解運動緩衝區的概念,本例將軸的運動緩衝區可緩衝運動指令個數限製為3(LIMIT_BUFFERED=3)。LIMIT_BUFFERED的作用是限定運動緩衝個數,不能超過控製器的最大值。(可通過?*max查看控製器運動緩衝個數最大值)
如下例:例子中共有四條MOVE運動指令,但是運動緩衝區最多隻能裝3條直線插補指令。MOVE(60,40)占用軸0的MTYPE,軸0還能緩衝2個運動指令,軸0剩餘緩衝數為0。此時運動緩衝區滿,那麼在MOVE(60,40)執行完之前MOVE(60,50)是無法進入運動緩衝區的。
RAPIDSTOP(2) '停止所有軸
WAIT IDLE(0) '等待軸0停止
WAIT IDLE(1) '等待軸1停止
BASE(0,1) '選擇軸0,軸1
ATYPE=1,1 '設置軸類型
DPOS=0,0 '軸0軸1坐標偏移至0
UNITS=100,100 '設置脈衝當量
SPEED=100,100 '設置速度
ACCEL=1000,1000 '設置加速度
DECEL=1000,1000 '設置減速度
MERGE=ON '開啟連續插補
TRIGGER '觸發示波器采樣
LIMIT_BUFFERED=3 '軸0/1運動緩衝區可緩衝運動指令個數設置為3
MOVE(60,40) '進入MTYPE,Buffer0
MOVE(70,50) '進入NTYPE,Buffer1
MOVE(50,40) 'Buffer2
MOVE(60,50) '緩衝區滿,暫不進入
?"軸0當前緩衝指令個數="MOVES_BUFFERED(0) '結果2
?"軸0剩餘緩衝區個數="REMAIN_BUFFER(1) AXIS(0) '結果0
?"軸1剩餘緩衝區個數="REMAIN_BUFFER(1) AXIS(1) '結果3
END
如下圖:等MOVE(60,40)運動完成,MOVE(60,50)才能進軸0的運動緩衝區。

插補運動緩衝在主軸軸0裏,故軸1的運動緩衝區是沒有指令的,軸1剩餘緩衝大小為3。每條MOVE指令占用一個緩衝空間。
示波器波形如下:

其他運動緩衝指令
下表為部分常見的運動緩衝指令,如需了解更多可參考《RTBasic編程手冊》。

教學視頻可點擊→“運動緩存在精密激光加工中的應用”查看。
本次,正運動技術運動緩衝在精密加工中的應用,就分享到這裏。
更多精彩內容請關注“正運動小助手”公眾號,需要相關開發環境與例程代碼,請谘詢正運動技術銷售工程師:400-089-8936。
本(ben)文(wen)由(you)正(zheng)運(yun)動(dong)技(ji)術(shu)原(yuan)創(chuang),歡(huan)迎(ying)大(da)家(jia)轉(zhuan)載(zai),共(gong)同(tong)學(xue)習(xi),一(yi)起(qi)提(ti)高(gao)中(zhong)國(guo)智(zhi)能(neng)製(zhi)造(zao)水(shui)平(ping)。文(wen)章(zhang)版(ban)權(quan)歸(gui)正(zheng)運(yun)動(dong)技(ji)術(shu)所(suo)有(you),如(ru)有(you)轉(zhuan)載(zai)請(qing)注(zhu)明(ming)文(wen)章(zhang)來(lai)源(yuan)。

正運動技術專注於運動控製技術研究和通用運動控製軟硬件產品的研發,是國家級高新技術企業。正運動技術彙集了來自華為、中(zhong)興(xing)等(deng)公(gong)司(si)的(de)優(you)秀(xiu)人(ren)才(cai),在(zai)堅(jian)持(chi)自(zi)主(zhu)創(chuang)新(xin)的(de)同(tong)時(shi),積(ji)極(ji)聯(lian)合(he)各(ge)大(da)高(gao)校(xiao)協(xie)同(tong)運(yun)動(dong)控(kong)製(zhi)基(ji)礎(chu)技(ji)術(shu)的(de)研(yan)究(jiu),是(shi)國(guo)內(nei)工(gong)控(kong)領(ling)域(yu)發(fa)展(zhan)最(zui)快(kuai)的(de)企(qi)業(ye)之(zhi)一(yi),也(ye)是(shi)國(guo)內(nei)少(shao)有(you)、完整掌握運動控製核心技術和實時工控軟件平台技術的企業。主要業務有:運動控製卡_運動控製器_EtherCAT運動控製卡_EtherCAT控製器_運動控製係統_視覺控製器__運動控製PLC_運動控製_機器人控製器_視覺定位_XPCIe/XPCI係列運動控製卡等。
|