1 緩沖區輔助運動方法:
用戶的主插補運動的插補數據應該放在FIFO0中。
FIFO0的插補運動可以被中斷(通過調用GT_Stop()指令),中斷后可以進行輔助 FIFO1 的插補運動,輔助 FIFO1 的插補運動完成后,需要將坐標系位置恢復到FIFO0 主運動被打斷的位置,之后FIFO0 可從斷點處繼續恢復原來的運動。
由于主緩沖區可以放置插補運動指令(如GT_LnXY)、緩沖區延時指令、緩沖區IO指令等,下面針對不同指令,在指令執行過程中暫停主緩沖區。
//主緩沖區運動
sRtn = GT_CrdClear(1, 0);//清空主緩沖區
sRtn = GT_LnXY(1,5000,5000,10,1,0,0);//第一條插補指令
sRtn = GT_BufDelay(1, 8000, 0);//第一條延時指令
sRtn = GT_BufDelay(1, 3000, 0);//第二條延時指令
sRtn = GT_BufIO(1,MC_GPO,1<<(1-1),0,0);//輸出IO指令
sRtn = GT_BufDelay(1, 3000, 0);//第三條延時指令
sRtn = GT_LnXY(1,10000,10000,10,1,0,0);//第二條插補指令
//輔助緩沖區運動
sRtn = GT_LnXY(1,15000,25000,10,1,0,0);//第一條插補指令
2 當前正在執行插補運動指令
如果當前正在執行插補指令,調用主緩沖區暫停指令后,緩沖區立即停止運動,且可以記錄當前斷點位置,后續執行完輔助緩沖區后,從該斷點位置繼續執行主緩沖區。例如,執行第一條插補指令,在位置為(X=2000,Y=2000)處暫停主緩沖區運動,那么后續恢復主緩沖區運動則繼續從該位置運動。
3 當前正在執行延時指令
如果當前正在執行緩沖區延時指令,調用主緩沖區暫停指令時,這條延時指令將失效。
a 如果這條延時指令后面是插補運動指令,那么啟動輔助緩沖區運動時,直接執行輔助緩沖區運動;
b 如果這條延時指令后面是延時指令,那么啟動輔助緩沖區運動時,會先執行延時指令,再執行輔助緩沖區運動,例如:第一條延時指令執行到(例如3s),暫停主運動,那么8s的延時不再起作用,啟動輔助運動,則第二條延時指令先執行再執行輔助運動;
c 如果第一條延時指令后面是輸出IO指令,當第一條延時指令執行到中間(例如3s),暫停主運動,那么輸出IO指令會被執行,啟動輔助運動后直接進入輔助運動。