DMC2000脈沖速度初始化故障
示例介紹:
Set_move_speed(3200, 6400 );//設置插補矢量速度
Set_move_accel( 0.1 ); //設置加速時間
Start_move_xy(0, 6400, 6400 );//進行直線插補
If( Motion_done(0) == 0 || // 可以Wait_for_done,Wait_for_all之類函數(shù)
Motion_done(1) == 0 )
{//脈沖在輸出時,做其它事情
… do s.th
}
else
{//脈沖輸出完畢
… next operator//無法執(zhí)行到此處
}
原因分析:
原因是庫函數(shù)故障(BUG), 當?shù)谝淮芜\行時,速度寄存器未填入有效數(shù)據(jù),具體原因未明。
Set_move_speed 設置多軸運動的矢量速度
Set_move_accel 設置多軸運動的矢量加速時間
Start_move_xy 讓指定卡號的第1,2軸以插補方式運動到指定位置
Move_xy 同Start_move_xy,需等待完成
Start_move_zu 讓指定卡號的第3,4軸以插補方式運動到指定位置
Move_zu 同Start_move_zu,需等待完成
Arc_xy 讓指定卡號的第1,2軸作圓弧運動,需等待完成
Arc_zu 讓指定卡號的第3,4軸作圓弧運動,需等待完成
附帶檢測函數(shù):
Wait_for_all 等待指定的多軸并完成
Wait_for_done 等待運動并完成
Motion_done 檢測當前運動狀態(tài)
故障現(xiàn)象:
當程序執(zhí)行到Motion_done等檢測函數(shù)時,發(fā)現(xiàn)它們無法返回完成的狀態(tài),原因不是檢測函數(shù)的故障。而是X,Y無法取得速度值,進而也無法完成指定的脈沖輸出,這就是為什么檢測函數(shù)返回不了脈沖輸出完成的狀態(tài)。此問題是庫函數(shù)的小毛病。
解決方法:
Start_r_move(0,0,3200,6400,0.1);//驅(qū)動X軸,但其輸出脈沖為0個,不會損失位置
Start_move_xy(0, 6400, 6400 );//再次驅(qū)動,問題解決了。
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。