正運(yùn)動(dòng)技術(shù)運(yùn)動(dòng)控制器如何快速實(shí)現(xiàn)單軸/多軸同步跟隨功能?
正運(yùn)動(dòng)技術(shù)運(yùn)動(dòng)控制器如何快速實(shí)現(xiàn)單軸/多軸同步跟隨功能?
本文主要介紹如何使用MOVESYNC指令快速實(shí)現(xiàn)單軸/多軸同步跟隨功能,適用于XYZ(R)、SCARA、DELTA等常見(jiàn)機(jī)械結(jié)構(gòu),在流水線點(diǎn)膠、流水線產(chǎn)品分揀、流水線產(chǎn)品搬運(yùn)等場(chǎng)景中廣泛應(yīng)用。
閱讀本文,學(xué)習(xí)同步跟隨的原理和實(shí)現(xiàn)方法,提高工作效率!
一、同步跟隨功能介紹
同步跟隨的主要作用是快速控制運(yùn)動(dòng)機(jī)構(gòu),實(shí)現(xiàn)產(chǎn)線上產(chǎn)品的同步和跟隨,再輔助其他運(yùn)動(dòng)指令實(shí)現(xiàn)產(chǎn)線產(chǎn)品的抓取、分揀、點(diǎn)膠等功能需求;
同步跟隨的功能主要由MOVESYNC指令實(shí)現(xiàn),該指令方便用戶通過(guò)程序快速實(shí)現(xiàn)單軸或多軸同步跟隨功能,實(shí)現(xiàn)多皮帶抓取擺放,屬于凸輪指令的一種。
1、常用場(chǎng)景為:流水線點(diǎn)膠、流水線產(chǎn)品分揀、流水線產(chǎn)品搬運(yùn)等。
2、常見(jiàn)機(jī)械結(jié)構(gòu):XYZ (R)、SCARA、DELTA等。
二、MOVESYNC指令說(shuō)明
1、指令介紹
同步跟隨是指點(diǎn)的跟隨,跟隨的是位置,皮帶與跟隨軸的位置之間由算子去協(xié)調(diào)位置關(guān)系,需要處理的僅僅是第一個(gè)跟隨時(shí)刻的位置。
MOVESYNC指令內(nèi)重要參數(shù)是給出皮帶的位置和跟隨軸的位置,只需要把跟隨點(diǎn)跟隨的這個(gè)“時(shí)刻”靜態(tài)化處理就行,即可以想象成當(dāng)皮帶上物體到了傳感器mark位置時(shí)刻皮帶停止了。
跟隨軸這個(gè)時(shí)候移動(dòng)到達(dá)產(chǎn)品mark點(diǎn),這個(gè)時(shí)刻得到了兩組坐標(biāo)位置:
第一組:皮帶的位置syncposition。
第二組:跟隨軸的位置pos1,只需要將這兩個(gè)位置對(duì)應(yīng)填進(jìn)指令內(nèi)即可,算子會(huì)自動(dòng)計(jì)算規(guī)劃兩者位置,保證兩者相對(duì)靜止。
2、指令函數(shù)語(yǔ)法
MOVESYNC(mode,synctime,syncposition,syncaxis,pos1[,pos2, pos3…])
支持單軸或多軸同步跟隨。
3、一般使用形式
base(0,1,2) //指定參與同步跟隨軸號(hào),這里以0,1,2為例
MOVESYNC (mode,加速時(shí)間,syncposition,syncaxis,pos1,pos2, pos3) //加速段
MOVESYNC(mode,同步時(shí)間,syncposition,syncaxis,pos1,pos2, pos3) //同步段
MOVESYNC(mode,減速時(shí)間,syncposition,syncaxis,pos1,pos2, pos3) //減速段(復(fù)位段)
一個(gè)完整的跟隨過(guò)程分為三步,加工頭先加速達(dá)到與皮帶相同的速度,實(shí)現(xiàn)了同步運(yùn)動(dòng),在同步段完成加工操作,然后加工頭再回到等待位置,等待下一次觸發(fā)加工。觸發(fā)條件采用傳感器檢測(cè)來(lái)料,記錄來(lái)料的位置,填入MOVESYNC指令。
4、指令參數(shù)說(shuō)明
(1)mode:模式
加速段和同步段一般使用模式0,一般是在X軸方向跟隨,減速段一般使用模式-2(可以強(qiáng)制結(jié)束前面的跟隨運(yùn)動(dòng))。
特別說(shuō)明:當(dāng)跟隨的產(chǎn)線與機(jī)臺(tái)存在夾角時(shí)使用模式0,并且加上機(jī)臺(tái)與產(chǎn)線的夾角的弧度值實(shí)現(xiàn)跟隨偏斜補(bǔ)償,例:
mode=0+angle,angle:皮帶旋轉(zhuǎn)角度,角度=皮帶與BASE第1/2軸的正向旋轉(zhuǎn)夾角。例如:
① Mode=PI/4,皮帶在45度的方向;
② Mode=PI/2,皮帶在y方向;
③ Mode=PI,皮帶在x負(fù)向;
④ Mode=(PI*1.75),皮帶在-45度的方向;
(2)synctime:同步時(shí)間,時(shí)間單位ms,同步時(shí)間一般分為三段
加速段時(shí)間多久代表機(jī)臺(tái)跟隨軸加速達(dá)到產(chǎn)線速度,并且跟上目標(biāo)產(chǎn)品,0表示根據(jù)運(yùn)動(dòng)軸的速度加速度來(lái)估計(jì)同步時(shí)間,可能不準(zhǔn)確,一般相對(duì)設(shè)置長(zhǎng)點(diǎn),確保能實(shí)現(xiàn)同步;
同步段時(shí)間表示跟隨產(chǎn)品運(yùn)動(dòng)多長(zhǎng)時(shí)間,抓取等動(dòng)作在此期間完成,一般相對(duì)設(shè)置較長(zhǎng),保證動(dòng)作完成;
減速段時(shí)間表示多久回到指定位置,一般減速段時(shí)間和加速段一樣,推薦使用-2模式;
(3)syncposition:皮帶軸物體被感應(yīng)到時(shí)皮帶軸的位置
特別說(shuō)明:此指令支持皮帶軸坐標(biāo)循環(huán),但是在指令被調(diào)用時(shí)確保此參數(shù)位置和當(dāng)前皮帶軸位置之間沒(méi)有發(fā)生坐標(biāo)修改或循環(huán)操作,因此此指令調(diào)用時(shí)不要在坐標(biāo)循環(huán)點(diǎn)附近;
(4)syncaxis:皮帶軸軸號(hào),-1表示沒(méi)有皮帶軸,可以是電機(jī)軸,也可以是編碼器
(5)pos1:皮帶軸物體被感應(yīng)到時(shí)的BASE第1個(gè)軸(一般是跟隨軸)的絕對(duì)位置
(6)posn:皮帶軸物體被感應(yīng)到時(shí)的BASE第n個(gè)軸的絕對(duì)位置
5、指令使用圖解(單軸為例)
movesync指令只需要給出同步跟隨觸發(fā)時(shí)的幾個(gè)軸的位置參數(shù)即可,作為啟動(dòng)同步跟隨的條件,再加速達(dá)到同步之后執(zhí)行加工。
首先構(gòu)思搭建一個(gè)跟隨模型,如下:
假設(shè)當(dāng)產(chǎn)品到傳感器位置時(shí)實(shí)現(xiàn)跟隨;借助傳感器的信號(hào)實(shí)現(xiàn)皮帶位置鎖存,即當(dāng)產(chǎn)品到達(dá)傳感器鎖存的位置時(shí),依靠鎖存記錄下皮帶坐標(biāo)(syncposition參數(shù)),此時(shí)將跟隨軸X軸運(yùn)行到產(chǎn)品鎖存點(diǎn)位置,得到跟隨軸X軸位置為(pos1);
這樣就得到了MOVESYNC指令里面的坐標(biāo)位置,即同步時(shí)刻皮帶的位置(syncposition)、跟隨軸的位置(pos1),再根據(jù)實(shí)際運(yùn)行情況規(guī)劃出加速段的時(shí)間、同步段的時(shí)間和減速段的時(shí)間,指令運(yùn)行即可實(shí)現(xiàn)一次同步跟隨過(guò)程。
三、主代碼
下面示例以單軸跟隨為例子,輔助以感應(yīng)器作為位置記錄條件。
在沒(méi)有機(jī)臺(tái)的情況下,可手動(dòng)給鎖存信號(hào),模擬檢測(cè)到物料,記錄同步運(yùn)動(dòng)指令要填寫(xiě)的位置信息,在HMI界面上點(diǎn)擊啟動(dòng)開(kāi)始執(zhí)行同步運(yùn)動(dòng),程序的主要函數(shù)調(diào)用關(guān)系如下圖。
配置HMI界面便于操作,支持修改軸參數(shù),靈活調(diào)整同步跟隨各階段的時(shí)間,通過(guò)手動(dòng)運(yùn)動(dòng)操作跟隨軸到等待觸發(fā)同步運(yùn)動(dòng)的位置,并記錄下來(lái)跟隨軸的當(dāng)前位置,然后啟動(dòng)皮帶軸的運(yùn)動(dòng),在運(yùn)動(dòng)中手動(dòng)給傳感器信號(hào),觸發(fā)同步運(yùn)動(dòng),跟隨軸在MOVESYNC指令的控制下完成一次同步跟隨動(dòng)作。
界面顯示了皮帶軸和跟隨軸的位置信息,并且方便配置軸的基礎(chǔ)參數(shù),同步運(yùn)動(dòng)加速,同步和減速段的時(shí)間。
HMI操作步驟:
⊙第一次運(yùn)行,需要進(jìn)行對(duì)位操作,確認(rèn)跟隨軸的位置,點(diǎn)擊產(chǎn)品到位,模擬產(chǎn)品放到了傳送帶上開(kāi)始運(yùn)動(dòng),到達(dá)鎖存位置停止,將跟隨軸移動(dòng)到產(chǎn)品位置處停下。記錄下跟隨軸此時(shí)的坐標(biāo),此坐標(biāo)MOVESYNC指令將會(huì)用到。
⊙配置軸號(hào),軸的運(yùn)動(dòng)參數(shù),合理設(shè)置三段運(yùn)動(dòng)的時(shí)間。
⊙點(diǎn)擊啟動(dòng),傳送帶運(yùn)行,通過(guò)模擬信號(hào)給來(lái)料檢測(cè)信號(hào),觸發(fā)鎖存得出皮帶軸坐標(biāo),觸發(fā)同步跟隨開(kāi)始。
注意:此例程因?yàn)橛玫搅擞布i存功能,需要在控制器平臺(tái)運(yùn)行,沒(méi)有傳感器時(shí),可以將OUT口短接到IN口,通過(guò)OP指令模擬傳感器鎖存信號(hào)的輸入,示例將OUT0接入IN0。
鎖存函數(shù):依靠鎖存?zhèn)鞲衅鳈z測(cè)來(lái)料,觸發(fā)同步跟隨運(yùn)動(dòng),鎖存功能記錄開(kāi)始跟隨時(shí),鎖存皮帶軸位置,記錄下當(dāng)前同步軸的位置信息,傳入MOVESYNC指令參數(shù)。
global sub get_mark_pos(mode) '使用3或者4,其他方式修改等待條件和獲取的數(shù)據(jù)寄存器,reg_pos REG_INPUTS(belt_axis) = $0000 '映射皮帶鎖存輸入 reg_count = 0 DMSET mark_flag(0,100,-1) '每次開(kāi)始前清空標(biāo)志,避免誤判 WHILE 1 base(belt_axis)REGIST(mode)axis(belt_axis) wait until mark if reg_count >= 100 then '位置數(shù)組循環(huán)存儲(chǔ)值判斷 reg_count = 0 endif mark_pos(reg_count) = REG_POS ?REG_POS mark_flag(reg_count) = 1 reg_count = reg_count + 1 wend endsub
同步跟隨函數(shù):依靠鎖存函數(shù)給的參數(shù),設(shè)置跟隨時(shí)間,執(zhí)行同步跟隨動(dòng)作,分為加速、同步和減速回原位置三個(gè)階段,注意每個(gè)階段的時(shí)間規(guī)劃合理,完成一個(gè)跟隨步驟之后等待觸發(fā)下一次跟隨。
global sub run_sync() base(sync_axis) move_count = 0 '運(yùn)動(dòng)計(jì)數(shù)清0 TABLE(10) = -1 '以table 10 的值,作為同步結(jié)束標(biāo)志 WHILE 1 if move_count >= 100 then '循環(huán) move_count = 0 endif if mark_flag(move_count) = 1 then '判斷是否有產(chǎn)品觸發(fā) if abs(sync_star_dis + mark_pos(move_count)) >= abs(mpos(belt_axis)) then '尚在有效觸發(fā)距離內(nèi),即可以跟隨 '開(kāi)始跟隨 '第一段:加速段(追趕段) 跟隨模式看機(jī)構(gòu)具體而定,一般皮帶編碼器方向與跟隨軸運(yùn)動(dòng)方向一致就用0 反方向就用 0 + pi/2 MOVESYNC(0, accel_time, mark_pos(move_count), belt_axis, sync_pos) '第二段:同步段與加速段唯一不同是時(shí)間 MOVESYNC(0, sync_time, mark_pos(move_count), belt_axis, sync_pos) '此處可以開(kāi)啟線程去操作其他動(dòng)作 '使用 move_task 指令操作 '用table 10 的值來(lái)作為其他運(yùn)動(dòng)的結(jié)束標(biāo)志,這里使用move_table,是為了使同步完全結(jié)束,后面開(kāi)發(fā)時(shí)可以將MOVE_TABLE放在其他運(yùn)動(dòng)的線程里面使用 MOVE_TABLE(10,10) elseif abs(sync_star_dis + mark_pos(move_count)) < abs(mpos(belt_axis)) then '超出范圍,直接跳過(guò), TABLE(10) = 10 ?"跳過(guò)" '?abs(sync_star_dis + mark_pos(move_count)) , abs(mpos(belt_axis)) endif '判斷結(jié)束 wait UNTIL table(10) = 10 '第三段:復(fù)位段 以當(dāng)前位置為停止位置,可以添加變量設(shè)置待機(jī)位。 MOVESYNC(-1, decel_time, mark_pos(move_count),-1, sync_pos) move_table(10,-1) '結(jié)束標(biāo)志復(fù)位 mark_flag(move_count) = -1 '同步條件標(biāo)志復(fù)位 move_count = move_count + 1 '計(jì)數(shù)+ 1 endif wend endsub
四、運(yùn)行效果
跟隨軸(軸0)跟隨皮帶(軸2)運(yùn)動(dòng)的速度曲線:加速段,同步段,減速回起點(diǎn)。
跟隨軸(軸0)跟隨皮帶(軸2)運(yùn)動(dòng)的位置曲線。
本次,正運(yùn)動(dòng)技術(shù)運(yùn)動(dòng)控制器如何快速實(shí)現(xiàn)單軸/多軸同步跟隨功能?就分享到這里。
更多精彩內(nèi)容請(qǐng)關(guān)注“正運(yùn)動(dòng)小助手”公眾號(hào),需要相關(guān)開(kāi)發(fā)環(huán)境與例程代碼,請(qǐng)咨詢正運(yùn)動(dòng)技術(shù)銷(xiāo)售工程師:400-089-8936。
本文由正運(yùn)動(dòng)技術(shù)原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國(guó)智能制造水平。文章版權(quán)歸正運(yùn)動(dòng)技術(shù)所有,如有轉(zhuǎn)載請(qǐng)注明文章來(lái)源。
正運(yùn)動(dòng)技術(shù)專注于運(yùn)動(dòng)控制技術(shù)研究和通用運(yùn)動(dòng)控制軟硬件產(chǎn)品的研發(fā),是國(guó)家級(jí)高新技術(shù)企業(yè)。正運(yùn)動(dòng)技術(shù)匯集了來(lái)自華為、中興等公司的優(yōu)秀人才,在堅(jiān)持自主創(chuàng)新的同時(shí),積極聯(lián)合各大高校協(xié)同運(yùn)動(dòng)控制基礎(chǔ)技術(shù)的研究,是國(guó)內(nèi)工控領(lǐng)域發(fā)展最快的企業(yè)之一,也是國(guó)內(nèi)少有、完整掌握運(yùn)動(dòng)控制核心技術(shù)和實(shí)時(shí)工控軟件平臺(tái)技術(shù)的企業(yè)。主要業(yè)務(wù)有:運(yùn)動(dòng)控制卡_運(yùn)動(dòng)控制器_EtherCAT運(yùn)動(dòng)控制卡_EtherCAT控制器_運(yùn)動(dòng)控制系統(tǒng)_視覺(jué)控制器__運(yùn)動(dòng)控制PLC_運(yùn)動(dòng)控制_機(jī)器人控制器_視覺(jué)定位_XPCIe/XPCI系列運(yùn)動(dòng)控制卡等等。
提交
正運(yùn)動(dòng)全國(guó)產(chǎn)EtherCAT運(yùn)動(dòng)控制器ZMC432H用戶手冊(cè)
正運(yùn)動(dòng)全國(guó)產(chǎn)EtherCAT運(yùn)動(dòng)控制器ZMC432H
正運(yùn)動(dòng)ECI1408運(yùn)動(dòng)控制卡用戶手冊(cè)
正運(yùn)動(dòng)機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)VPLC710
正運(yùn)動(dòng)技術(shù)運(yùn)動(dòng)控制卡XPCIE1032