首页 | 供应信息 | 求购信息  | 下载系统 | 技术资讯 | 企业信息 | 产品信息 | 论文信息 | 展会信息 | 在线工具
作者: 发布时间:2017-06-20 来源:深圳市研控自动化科技有限公司 繁体版
  研控MCC系列运动控制卡使用方便,功能可靠,一般来说是不会在使用过程中产生位置偏差的。但是在长期客户服务的过程中我们也遇到了一些因使用不当造成的位置偏差,如果没有丰富的经验,往往会判断为运动控制卡的问题,而实
  研控MCC系列运动控制卡使用方便,功能可靠,一般来说是不会在使用过程中产生位置偏差的。但是在长期客户服务的过程中我们也遇到了一些因使用不当造成的位置偏差,如果没有丰富的经验,往往会判断为运动控制卡的问题,而实际上真正的原因是在使用过程中有一些软硬件问题未加以注意造成的。不管使用运动控制卡或其他类别的运动控制产品,如果对这些问题不加注意,它往往会在不经意间出现,引起机械运动误差,造成损失。而当你在实验室中针对它进行测试时,又因为参数和使用环境的变化,问题却不能重现,所以非常难以捕捉。本文主要针对这几个最常见的疑难问题进行描述、分析、并提出一定的解决方法。





第一节 首先应该做什么

  在客户提出使用控制卡出现了位置偏差的时候,首先应该做的就是定位偏差来源,也就是定位“究竟是控制卡的问题,还是电机和机械的问题”?这是非常关键的定位思路。









图1.最关键的测试点




  原因在于,“软件和控制卡的问题”的寻找定位和“电机和机械的问题”的寻找定位是完全不同的方式,如果首先不区分好是哪一个模块的问题就直接深入到细节上,往往会找错方向。

  最常见的定位工具是伺服驱动器的“显示指令位置”功能,如果问题轴所用电机正好是伺服电机,那就非常方便了。如果使用的是步进电机,则可能需要外接一个伺服电机进行测试。其他如示波器、逻辑分析仪也可以进行测试,但是不如伺服电机方便。

  测试方法非常简单,就是首先计算出某一工位处,控制卡“按理应该发送多少个脉冲”,然后观察伺服驱动器的显示,是否“接受到了同样数量的脉冲”。如果两个数量一致,并且长期工作后(过程中没有借助传感器的复位动作,如果有复位动作则是另一回事,后文有详述),还是精确一致的话,就说明软件和运动控制卡没有问题,需要在电机和机械上找问题。相反,如果运行一段时间后,到达指定工位时,控制卡“理应发送的脉冲数”与“伺服电机接受的脉冲数”不相同了,并且有误差越来越大或者误差大小随机变化的情况,则可以判断是下文中提到的“疑难问题”之一。




第二节 取整误差累计

  取整误差累计是因为上位机控制软件在设计时,全部采用“相对位置运动”功能,在计算相对位置脉冲数时,由于取整误差造成的小数位脉冲数丢弃,而当正向丢弃数和反向丢弃数不一至时就会造成微小的位置偏差,经过长期运行反复积累后,此偏差逐渐会发展到肉眼可见的程度。举例如下:

  某客户在数控平面钻孔机上采用了运动控制卡,工位和运动方式如下:









  如图所示,钻头从原点出发,到达工位A开始钻第一个孔,然后向右逐个钻孔,孔之间横向间距10mm,钻到工位B后,X方向横向平移,同时Y方向移动,到达工位C。

程序员是这样设计程序的:

float ValueX = 500.19;    //脉冲当量,500.19个脉冲机械走1mm

float MMTargetX=0;       //运行目标相对位置

long PulseTargetX=0;     //运行目标相对位置




MMTargetX=10;         //横向运行距离10mm

PulseTargetX= (long) (MMTargetX * ValueX);  //得到运行脉冲数5001

YK_start_s_move(XAxisNum, PulseTargetX);   //发指令让X轴正向走5001个脉冲

//等待运行结束




MMTargetX=10;                    //横向运行距离10mm

PulseTargetX= (long) (MMTargetX * ValueX); //得到运行脉冲数5001

YK_start_s_move(XAxisNum, PulseTargetX);  //发指令让X轴正向走5001个脉冲

//等待运行结束




……运行10次




MMTargetX=-100;                  //横向运行距离-100mm

PulseTargetX= (long) (MMTargetX * ValueX); //得到运行脉冲数-50019

YK_start_s_move(XAxisNum, PulseTargetX);  //发指令让X轴反向走50019个脉冲

//等待运行结束

  从上面的程序很容易看出来,正向运行时,总共走了5001x10=50010个脉冲,而反向运行时,走了50019个脉冲。虽然看起来每次正向运行了10mm,运行10次后,反向运行了100mm,所以在工位C处X轴坐标应该跟工位A一致,但是实际上由于正向运行时取整误差舍去了10次0.9个脉冲,而反向运行时则没有因为取整误差而舍去脉冲,所以一来一回就会有9个脉冲的累计。

  对于一般的机械设备来说,9个脉冲可能还看不出来位置的偏差,但是随着反复的加工,如果没有借助传感器的复位动作的话,这个误差会逐渐随机积累,位置会越来越偏,最终导致加工失败。

  这个问题的出现纯属软件工程师经验不足。如果想要在程序设计时避免此问题,有以下方法可以解决。

运动控制卡应用常见位置偏差来源分析与解决
评论】【加入收藏夹】【 】【关闭
※ 相关信息
无相关信息
※ 其他信息
访问数: | 共有条评论
发表评论
用户名:
密码:
验证码: 看不清楚,点击刷新
匿名发表

 搜索新闻
[提交投稿]  [管理投稿]
 最新新闻
 热点新闻
数据加载中..

网站地图
Autooo.Net 版权所有
Copyright © 2007--2017 All rights reserved