cifX使用心得

一、注意事项:

1.xChannelIORead()第一次读取到数据是空的。
2.系统安装cifX驱动之前一定先安装有uio模块和libpciaccess库;建议系统内核为3.X.X版本,测试版本为3.13.5;GCC为4.X.X,测试版本为4.6.3。
3.SYCON.net选择从站设备描述文件时建议通过扫描功能添加,因为手动配置的文件版本可能不匹配,导致网络通信无法开启。
4.默认的配置文件存储目录为"/opt/cifx",再运行应用程序或者demo时,可以通过"/opt/cifx/cifXn.log"文件查看硬件加载配置文件的结果,n为硬件流水号。
5.三种配置文件名字不可更改,设备描述文件为“device.conf”,协议栈文件(EtherCAT)为"cifxecm.nxf",网络配置文件为“config.nxd“。
6.SYCON.net扫描出的从站需要更换别名,格式:从站型号_从站类型_同类从站的序号_所有从站的序号  如: EL1004_DI_0_0。
7.首次安装好uio_netx模块,系统下一次开机并不会自动加载uio_netx模块,建议在"/etc/modules"中添加一行"uio_netx"使系统每次重启自动加载uio_netx模块。
8.EtherCAT主站协议栈是支持Hot Connect这个功能的,但是目前版本的SYCON.net不能支持Hot Connect的配置,需要使用ENI文件(该文件也是配置文件,是由EtherCAT Configurator生成,这个软件不是赫优讯的,是Beckhoff公司的)。也就是 使用ENI文件替换SYCON.net生成的config.nxd文件。
9.EL模块不支持热插拔的。

更多关于安装cifX驱动的问题可以查看“cifX Device Driver - Linux DRV 08 EN.pdf”手册的第7章节。

二、应用问题:

1.第一次read必须过滤掉吗?

  不要。

2.报文是从第一次读取才开始吗?之后报文才会不停的发送吗(既然我不read)

   EtherCAT主站协议栈会根据设定的Freerun cycle时间,自动发送数据应用程序写了什么数据,那么主站协议栈就会发送什么数据。如果应用程序没有写数据,那么主站协议栈就发送上个周期的数据。比如,当前周期,应用程序写了0x11,那么主站协议栈就发送0x11。如果隔了5周期,应用程序才写新的数据0x22那么在间隔的这5周期,主站协议栈还是发送0x11

 

3.循环周期可控吗?图中的”Freerun cycle”指的是当前循环周期吗?如果不是它指的是最大循环周期还是最小循环周期?

  

  这个是总线循环周期,设定好之后,应用程序无法更改。赫优讯提供的EtherCAT主站的最小循环周期是250us。最大周期不要超过5000us

  简单理解,总线循环周期,就是EtherCAT主站协议栈每次发送IO数据的数据间隔。

  

  

4.如果从站数量不变,”Freerun cycle”设置甚至过小或者过大会怎么样?会有警告吗?

  设置过小,会丢包。双端口内存的偏移地址0x032DbErrorPDInCnt会有计数。

5../ build_install_driver和图中步骤执行的结果是相同的吗?

   

  一样。

 6.每次上电都只能通过./ build_install_driver来安装驱动和加载各种配置文件吗?

  驱动安装了之后,接下去只要运行例子程序就可以了。

 7.目前是否支持热插拔?支持的话如何实现?(貌似最新版本的SYCON.net已经支持,有待确认)

  参看 文档EtherCAT Master V4 Protocol API 05 EN.pdf

  赫优讯提供的EtherCAT主站协议栈是支持Hot Connect这个功能的,但是目前版本SYCON.net不能支持Hot Connect配置,需要使用ENI文件(该文件也是配置文件,EtherCAT Configurator生成,这个软件是Beckhoff公司的)。也就是使用ENI文件替换SYCON.net生成config.nxd文件

原文地址:https://www.cnblogs.com/jiangyibo/p/10372833.html