首页 新闻 工控搜 论坛 厂商论坛 产品 方案 厂商 人才 文摘 下载 展览
中华工控网首页
  P L C | 变频器与传动 | 传感器 | 现场检测仪表 | 工控软件 | 人机界面 | 运动控制
  D C S | 工业以太网 | 现场总线 | 显示调节仪表 | 数据采集 | 数传测控 | 工业安全
  电 源 | 嵌入式系统 | PC based | 机柜箱体壳体 | 低压电器 | 机器视觉
如何正确计算及设置DMC1000插补的矢量速度
深圳市雷赛智能控制股份有限公司
收藏本文     查看收藏
一、问题现象
用户通过以下编程:

# define XCH 0
# define YCH 1

double fUnit[]={ 3200/5.0, 3200/5.0}; //
脉冲当量,每毫米脉冲数
//
每转脉冲数为3200,每转毫米数为5.0

short axisArray[]={ XCH, YCH };//
选择XY两轴
long distArray[]={ x * fUnit[XCH], y*fUnit[YCH] }; //x
y为毫米单位的绝对位置

d1000_start_ta_line( 2, axisArray, distArray, 10, 10, 0.0);//
匀速插补


通过实际运动发现以下情况:
No.1
X=100,Y=0,即水平方向,所花时间为10.002
No.2
X=0,Y=100,即垂直方向,所花时间为10.003
No.3
X=100Y=100,即45度斜线,所花时间为10.005

即三种情况下的运行时间几乎相当(当中的微小时间差可能由系统的多任务特性引起的),而实质上当走45度斜线时,其距离等于100*sqrt(2) = 100*1.414=141.4毫米,由此可见距离长了许多,故其速度也快了许多。此种情况在速度慢的情况下表现不明显,但是在激光切割时,速度不稳定,同样的能量切割出来的效果就不一致,质量也就不能过关。

二、原因分析
DMC1000
的开发较早,对于直线插补的算法是采用三角函数进行合成,故以上设定的10,10,0.0的速度是对距离长的运动轴有效(即长轴),不是一个矢量的速度,由此可见,同样的速度设定会因为直线的斜率不同而快慢不一致。

三、解决方法
解决此问题也很简单,每次需要重新计算长轴的速度,以用于作为插补速度,下面给出原代码,以对上面的代码进行补充:

double fP1 = distArray[XCH] - (double)d1000_get_command_pos(XCH);
double fP2 = distArray[YCH] - (double)d1000_get_command_pos(YCH);
double fLen= sqrt( fP1*fP1 + fP2*fP2 );
if( fLen < 1 )//0
脉个不要
return nAxises;
long nStart,nSpeed; //
计算出新的速度
if( fabs(fP1)>fabs(fP2) )
{
double kx = fP1 / fLen;
double AP = kx * fP1;
kx = AP / fP1;
nStart = long(fUnit[XCH] * speed.start * kx );
nSpeed = long(fUnit[XCH] * speed.speed * kx );
}
else{
double ky = fP2 / fLen;
double AP = ky * fP2;
ky = AP/ fP2;
nStart = long(fUnit[YCH]*ky);
nSpeed = long(fUnit[YCH]*ky);
}

nStart
nSpeed是计算出来的最后设定的速度。
关于speed是一个速度结构,大致如下(单位:毫米/秒)

typedef struct tag_SPEED
{
double start;
double speed;
double accel;
};


四、附带声明
DMC1000以后的系列控制卡,如:DMC2000,DMC3000,DMC5000,对矢量速度的设定都已进行充分的考虑,不再需要用户添加额外的代码进行计算了。
 

状 态: 离线

公司简介
产品目录

公司名称: 深圳市雷赛智能控制股份有限公司
联 系 人: 梁邦敏
电  话: 755-26401178
传  真:
地  址: 深圳市南山区登良路天安南油工业区2栋3楼
邮  编: 518000
主  页:
 
该厂商相关技术文摘:
CNC解释库调用接口详述
DMC1000控制卡不能响应系统消息
DMC2000脉冲速度初始化故障
DMC2000运动控制卡常见软件问题的解决方案
DMC2200驱动程序特殊安装方法
DMC3000控制卡,与CNC之G代码的邦定关系
DMC3000控制卡的多任务编程
多类型运动控制卡编程方法探讨
多线程与控制卡编程
发现步进电机定位不准怎么办
过程控制编程之简要探讨
控制卡应用编程技巧几招(2)
更多文摘...
立即发送询问信息在线联系该技术文摘厂商:
用户名: 密码: 免费注册为中华工控网会员
请留下您的有效联系方式,以方便我们及时与您联络

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 不良信息举报
工控网客服热线:0755-86369299
版权所有 中华工控网 Copyright©2022 Gkong.com, All Rights Reserved