硬件环境:

  • 1、树莓派3B打了PREEMPT实时补丁(具体补丁过程网上有)
  • 2、台达ASDA-A2-E伺服驱动器
  • 3、倍福EK1100、EL1008、EL2008标准IO输入输出模块

软件环境:

  • 1、LinuxCNC2.7版本:安装教程参考http://linuxcnc.org/docs/2.7/html/getting-started/getting-linuxcnc.html
  • 2、IghEthercatMaster:安装教程参考https://blog.csdn.net/scyhk/article/details/51672136
  • 3、linuxcnc-ethercat:这个是Linuxcnc下用于驱动Igh的HAL驱动,是国外大神写的。其实驱动也可以自己写comp编译,但是国外这个大神写的非常完善了,很好用。这里主要讲述国外大神这个驱动的使用方式。
  • 该HAL_ihgMaster是用于LinuxCNC的驱动程序,由halcomplier来编译,PREEMPT属于用户态的,编译会生成lcec.so和lcec_conf脚本文件。以台达伺服为例子:会需要制作以下三个文件用于驱动从站模块,命名可以随意,放入Linuxcnc的config文件夹中。

操作步骤

1、硬件连接上Ethercat从站后,启动Igh主站,"/etc/init.d/ethercat start",提示"Starting EtherCAT master 1.5.2 done"后可以看到伺服网口灯开始闪烁,表示运行正常了。

2、终端输入igh的ethercat slaves、ethercat pdos可以查看从站的基本信息及PDO输出信息;需要这些信息结合厂家给的XML描述文件去修改国外大神的xml配置文件配置PDO等实现Ethercat数据交互。

      需要说明下igh与倍福的Ethercat主站的区别;倍福及SOEM查找总线上从站pdo信息是通过厂家的描述文件配置去实现的,而igh则是实时读取从站的信息去路由pdo信息的;所以我这里遇到了一个问题,就是我使用的这台台达ASDA伺服的EEPROM信息是不完整的,导致igh使用ethercat pdos时则没法看到pdo信息,无法驱动,而倍福Twincat则没有问题。后来我重新给这台台达伺服刷了相对完整的EEPROM信息才可以使用igh。

3、以台达伺服为例子:(都是拿的Linuxcnc的Axis界面进行测试的)

     1)、deltapos.xml

这个xml文件格式是由国外这位大神定的,其中各个项的含义如果了解CIA402的话应该也大部分能够理解了。vid及pid指伺服的一些基本信息,厂家的XML文件或者ethercat slaves命令应该都可以看到;还有其中“type="generic"”表示这个模块的定义是通用的方式,需要自己通过SDO去配置PDO分组。当然这个type有其他默认的倍福的一些模块如(EL1008、EL2008、台达的ASDA等等,这里拿通用的来演示可以方便扩展),需要自己将PDO中Cia402用于伺服控制的信息命名一个halpin名称,用于在hal文件中与其他Linuxcnc管脚进行连接(需要了解Linuxcnc的基本工作原理),比如这里配置了6060默认值为8,表示伺服工作模式是CSP同步位置模式,60C2表示扫描周期为2ms,6040则是伺服控制字,607A是目标位置等等,一般CSP模式只要用到这4个即可,如果需要加入速度前馈或者扭矩前馈修正可以自己在1601里面往后添加对应项即可,格式自行参考测试使用。原谅我管脚的命名很随意。。。。。。请忽视。。。

     2)、deltapos.hal

该hal调用了大神的lcec_conf脚本去读取上面的deltapos.xml文件配置ethercat,同时loadrt装载了lcec模块,从站的属性调用方法很有规律,看下就明白了,我将下面的lcec.0.0.pos、poscommand等与linuxcnc的Axis界面一些参数进行了关联,如目标位置、反馈位置。通过位操作将drivecontrol控制字Linuxcnc的Axis的使能按键进行关联,这样点击界面的使能则伺服使能了;其他是基本操作,自己测试下就好了。

3)、axis_deltax.ini

该文件由linuxcnc调用,放入Linuxcnc的config文件夹后,可以在启动项目选择界面上找到axis_deltax选项,选择则可以。我是拿Axis配置文件进行了简单修改;主要是添加hal的调用。

4、以倍福IO模块为例(XML文件及Hal文件)

看,XML文件使用了默认的配置EK1100、EL1008、EL2008,关联起来是不是特别简单,根本不需要自己配置什么,注意下默认的输入输出halpin命名方式,看大神的源码就可以理解他的思路。

5、上述理解纯粹出于个人兴趣玩后的经验总结,如有出入,欢迎指正~~

 

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐