The value of Zmotion is to bring customers more success!
今天,正运动小助手给大家分享一下运动控制卡之ECI3808如何使用C++指令来实现螺距补偿和反向间隙补偿。
在实际应用中会碰到导轨的螺距分部不够均匀,使运动位置不准确和螺距比较大的换向时轴旋转不能立马带动机台移动的现象,这时候我们可以通过螺距补偿和反向间隙补偿功能对以上问题进行解决。
那么接下来我们就来看一下如何通过C++指令来实现螺距补偿和反向间隙补偿的功能。
一、ECI3808硬件介绍
1.功能介绍
ECI3808系列控制卡支持最多达12轴直线插补、任意圆弧插补、空间圆弧、螺旋插补、电子凸轮、电子齿轮、同步跟随、虚拟轴、机械手指令等;采用优化的网络通讯协议可以实现实时的运动控制。
ECI3808系列运动控制卡支持以太网,RS232 通讯接口和电脑相连,接收电脑的指令运行,可以通过CAN总线去连接各个扩展模块,从而扩展输入输出点数或运动轴。
ECI3808系列运动控制卡的应用程序可以使用 VC,VB,VS,C++,C#等软件来开发,程序运行时需要动态库 zmotion.dll。调试时可以把ZDevelop软件同时连接到控制器,从而方便调试和观察。
2.硬件接口
通用输入口电路
通用输出口电路
AD/DA接口说明
本地脉冲轴说明
辅助编码器 CN15
3.控制器基本信息
二、C++进行运动控制开发
1.新建MFC项目并添加函数库
(1)在VS2015菜单“文件”→“新建”→ “项目”,启动创建项目向导。
(2)选择开发语言为“Visual C++”和程序类型“MFC应用程序”。
(3)点击下一步即可。
(4)选择类型为“基于对话框”,下一步或者完成。
(5)找到厂家提供的光盘资料,路径如下(64位库为例)。
A.进入厂商提供的光盘资料找到“8.PC函数”文件夹,并点击进入。
B.选择“函数库2.1”文件夹。
C.选择“Windows平台”文件夹。
D.根据需要选择对应的函数库这里选择64位库。
E.解压C++的压缩包,里面有C++对应的函数库。
F.函数库具体路径如下。
(6)将厂商提供的C++的库文件和相关头文件复制到新建的项目里面。
(7)在项目中添加静态库和相关头文件。
A.先右击项目文件,接着依次选择:“添加”→“现有项”。
B.在弹出的窗口中依次添加静态库和相关头文件。
(8)声明用到的头文件和定义控制器连接句柄。
至此项目新建完成,可进行MFC项目开发。
2.查看PC函数手册,熟悉相关函数接口
(1)PC函数手册也在光盘资料里面,具体路径如下:“光盘资料\8.PC函数\函数库2.1\ZMotion函数库编程手册 V2.1.pdf”
(2)链接控制器,获取链接句柄。
ZAux_OpenEth()接口说明:
(3)螺距补偿功能实现。
因为PC函数库里面还没有螺距补偿功能相关的接口,所以这里我们可以通过在线命令的方式发送对应的Basic指令来实现螺距补偿功能。
→螺距补偿功能Basic指令介绍:注意补偿的是脉冲数
(3)反向间隙补偿功能实现。
因为PC函数库里面也还没有反向间隙补偿功能相关的接口,所以这里我们可以通过在线命令的方式发送对应的Basic指令来实现反向间隙补偿功能。
→反向间隙补偿功能Basic指令介绍:注意补偿的单位是units
3.MFC开发螺距补偿和反向间隙补偿的例程。
(1)例程界面如下。
(2)链接按钮的事件处理函数中调用链接控制器的接口函数ZAux_OpenEth(),与控制器进行链接,链接成功后启动定时器1监控控制器状态。
(3)通过定时器监控控制器状态。
(4)发送在线命令,实现螺距补偿功能的开启和关闭。
(5)发送在线命令,实现反向间隙补偿功能的开启和关闭。
完整代码获取地址
▼
三、调试与监控
先将轴0的脉冲输出反馈给编码器轴6,然后对比轴0的目标位置(DPOS)和轴6的实际位置(MPOS)的情况分析螺距补偿和反向间隙补偿功能的实际效果。
1.螺距补偿
2.反向间隙补偿
3.ZDevelop软件调试视频可点击→简单易用的运动控制卡(十六):螺距补偿和反向间隙补偿查看。
本次,正运动技术简单易用的运动控制卡(十六):螺距补偿和反向间隙补偿,就分享到这里。更多精彩内容请关注“正运动小助手”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师:400-089-8936。
本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。