推广 热搜: 西门子PLC  危化品安全,爆炸  变送器  培训  触摸屏  阀门  PLC  电机  变频器  服务机器人 

DMC2000脉冲速度初始化故障

   日期:2013-03-23     来源:工控之家网    作者:工控之家    浏览:54    评论:0    

示例介绍:
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之类函数
Motion_done(1) == 0 )
{//脉冲在输出时,做其它事情
… do s.th
}
else
{//脉冲输出完毕
… next operator//无法执行到此处
}

原因分析:
原因是库函数故障(BUG), 当第一次运行时,速度寄存器未填入有效数据,具体原因未明。
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轴作圆弧运动,需等待完成

附带检测函数:
Wait_for_all 等待指定的多轴并完成
Wait_for_done 等待运动并完成
Motion_done 检测当前运动状态

故障现象:
当程序执行到Motion_done等检测函数时,发现它们无法返回完成的状态,原因不是检测函数的故障。而是X,Y无法取得速度值,进而也无法完成指定的脉冲输出,这就是为什么检测函数返回不了脉冲输出完成的状态。此问题是库函数的小毛病。

解决方法:
Start_r_move(0,0,3200,6400,0.1);//驱动X轴,但其输出脉冲为0个,不会损失位置
Start_move_xy(0, 6400, 6400 );//再次驱动,问题解决了。

 
打赏
 
更多>同类技术
0相关评论

推荐图文
推荐技术
点击排行
网站首页  |  免责声明  |  联系我们  |  关于我们  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅  |  违规举报  |  鲁ICP备12015736号-1
Powered By DESTOON