【产品应用】三个步骤,让你的EtherCAT电机转起来

ethercat是自动化控制最好的实时环形控制总线之一,本文以最简单的方式带你实际操作zmc300e的ethercat总线,让你的ethercat电机转起来。
前言
当一个鼠标插入到电脑时,发生了什么?
首先电脑会检测到有usb插入;
然后,电脑会提示安装驱动;
最后,就可以通过鼠标来移动光标、单击、双击等操作了。
这有问题么?当前没有问题,但作为程序猿,有两个地方值得深挖一下。1、电脑安装的驱动,是什么驱动?当然是鼠标驱动,因为我们接入的是鼠标。但电脑是如何知道呢?原来usb规范中,要求每个usb设备都要有自己的设备描述符,电脑通过分析该描述符,才知道接入的是什么设备。2、为什么能通过鼠标来移动光标?这是双方共同合作的结果。首先鼠标提供光标位置的数据,然后电脑收到鼠标的数据后,将数据作用到光标的位置上产生移动效果。这需要有个前提,即鼠标数据的格式,电脑需要先知道其格式,才能解释这份数据。这份数据格式的定义,在usb的接口描述符规范中进行了定义。
说了这么多,这和ethercat有关系么?当然有,对于ethercat或者任意一个总线来说,都需要知道接入设备的类型及数据格式,否则是无法解释数据的,通常有两种方式:
事先约定:通过事先约定的来确定工作如何进行。这就像发个信息说“我们晚上8点一起看电影吧“一样简单,这是小编喜欢它的原因。但这个约定有时就像友谊的小船说翻就翻,对方招呼也不打,只剩你一个人还傻傻地站在的电影院门口;
协议规范:定义一套完整的规范,大家一起遵循它。规范通常都很多很杂,学习成本较高,按规范开发就像是你去做的基金定投,短期收益低,但稳定可靠。
ehtercat和usb一样都采用了协议规范这种方式,这里简单介绍一下ethercat的相关规范及用途:
esi(ethercat slave information):这个是从站提供的标准描述规范文件,该文件描述了设备的类型、数据格式及一些“特殊癖好”,这就相当于usb的设备描述符+接口描述符。
eni(ethercat network information):这个是用于给主站启动时,加载的标准配置规范文件,用于初始化所有的从站。这个文件描述了从站的数量、每个从站的类型及数据格式、dc等配置信息。
esi还理解,为啥还多了个eni呢?ethercat规范为了满足工业控制的复杂性,esi中提供了非常强大的可配置功能,相对的使用起来也变得困难了。因此ethercat采用静态化配置,即由pc使用可视化工具进行对应的配置工作,配置完成后导出不可变的eni配置,给到具体的主站设备来执行。所谓静态化配置,即ethercat网络设备发生变化时,需要重新执行配置工作,相比于usb的全自动配置,功能强大了,但使用也麻烦了。有得必有失,这是ethercat的选择。简单总结一下ethercat开发,可分三步走:生成eni,加载eni,解释输入输出数据。
准备工作
开始ethercat测试前,需要准备以下硬件:一台电脑、一台 zmc300e运动控制器、一台ethercat伺服驱动器、2根网线,然后使用网线将设备按如下示意图进行连接。
生成eni文件
1. 启动ethercat服务
打开putty.exe软件,输入运动控制器net1的默认ip地址:192.168.1.136,账号和密码为root。
2. 连接设备
启动zlgethercatstudio上位机配置软件,输入运动控制器net1的默认ip地址:192.168.1.136,点击回车。
3. 扫描网络
通过扫描ethercat总线,来识别接入了多少个设备,并将其网络拓扑添加到本地主站树节点。
4. 导入esi
如果该从站无法正确识别,可手动导入从站esi(ethercat slave information)文件。
5. 配置fmmu
一般应用不需配置从站fmmu/sm,使用从站默认配置即可。当需要改变输入输出变量时,可通过本配置项配置。
6. 生成eni文件
导出eni,取名为text_eni。
加载eni文件1. 将上一步生成的test_eni.xml文件,通过winscp工具上传到运动控制器的目录/opt中。
2. 使用控制器加载eni配置/文件在putty.exe工具,先输入ctrl+c结束当前主站程序,输入以下命令启动主站并加载eni配置文件:/opt/ecat_test/master /opt/test_eni.xml,看到输出ethercat start success即代表成功。
解释输入输出数据
在cia402规范中,定义了伺服类设备的数据格式,这里给大家介绍一下最常用的位置控制模式的数据格式。
1. 输出数据
controlword:控制字,16bit,主要用于控制电机上下电,抱闸等;
target position:目标位置,32bit,用于控制电机转到指定的位置。
2. 输入数据(相对于设备)
statusword:控制字,16bit,主要用于控制电机上电、下电、抱闸等操作;
position actual value:实际位置,用于反馈电机当前所在位置。我们要做的就是周期性解释以上4个数据,然后执行对应的操作即可,可参考如下代码:
电机测试
在putty.exe工具中,可使用以下命令,对电机进行简易测试,这些命令是基于cia402规范进行实现的。
1. move_test 命令
angle表示电机转动角度,输入该命令后,电机会一直重复执行输出:先正转angle度,然后反转angle度。
输入move_test 90,仔细观察电机的转动,如果发现转动的角度比90度小,则说明脉冲当量偏小,应适当增加。推荐10倍住上递增进行测试,该值默认为1。
2、units 命令unit表示脉冲当量,units 1000命令用于将轴0的脉冲当量设置成1000。使用units?查看所有轴的脉冲当量。
 其它补充
1. 关于脉冲当量
在实际应用中,脉冲当量的准备值,是如何计算出来的?这个应根据实际的场景及所需要单位来确定,这里给出一个常见的,以角度为单位的脉冲当量计算公式。
编码器的分辨率,可以从伺服驱动器的手册得到。
2. 关于ethercat主站
zmc300e提供的ethercat主站,采用的是kpa master主站,商业授权,其主要特点是高效、稳定、支持通过硬件来消除帧抖动(zmc300e可做到±15us的抖动),我司已购买其版权,用户可免费自由使用。

曾经的情怀神器,诺基亚N73:蔡司镜头+三喇叭,如今仅两百
由于Covid-19停工和转向家庭工作,FWA设备出货量的全球增长
豆浆早餐会的谈话 七个产业界的重量级人物
三星电子打造移动智能终端新品类
荣耀20PRO上手 拍摄效果几乎达到了顶级旗舰的拍照水平
【产品应用】三个步骤,让你的EtherCAT电机转起来
新型成像技术显示单个的硼原子
华为荣耀v9:5.7英寸2K屏,双摄像头+麒麟960,售价2599元起
EDA行业2020年第三季度收入同比大幅增长两位数
如何用耳机判断小电容器质量
智能眼镜看俏 成科技巨头下一竞技场
全桥PFC AC/DC变换器实验原理
Apollo 2.5推出了基于动态的实时相对地图的解决方案
高通发布三款平台,入门级PC也能实现高速蜂窝网络连接了
短路和断路有什么区别_短路和断路的区别口诀
仓库管理系统大幅提升企业效率
电源的“整体分类”及“常见电源”简单介绍
PYNQ移植ZCU102详细流程分析
MR25HxxxDF的2.0mm裸露底垫新封装已获Everspin批准生产
苹果砍断“泰坦”计划,主要是核心技术不过关