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