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”设置甚至过小或者过大会怎么样?会有警告吗?
设置过小,会丢包。在双端口内存的偏移地址0x032D,bErrorPDInCnt会有计数。
5../ build_install_driver和图中步骤执行的结果是相同的吗?

一样。
6.每次上电都只能通过./ build_install_dr。iver来安装驱动和加载各种配置文件吗?
驱动安装好了之后,接下去只要运行例子程序就可以了。
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文件。
cifX使用心得的更多相关文章
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- NoSql数据库使用半年后在设计上面的一些心得
NoSql数据库这个概念听闻许久了,也陆续看到很多公司和产品都在使用,优缺点似乎都被分析的清清楚楚.但我心里一直存有一个疑惑,它的出现究竟是为了解决什么问题? 这个疑惑非常大,为此我看了很多分析文章, ...
- 我的MYSQL学习心得(二) 数据类型宽度
我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(三) 查看字段长度
我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(四) 数据类型
我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(五) 运算符
我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...
- 我的MYSQL学习心得(六) 函数
我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...
- 我的MYSQL学习心得(七) 查询
我的MYSQL学习心得(七) 查询 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...
- 我的MYSQL学习心得(八) 插入 更新 删除
我的MYSQL学习心得(八) 插入 更新 删除 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得( ...
随机推荐
- python-原始字符串,长字符串
一 长字符串 在python中要表示跨行多行的字符串,可以使用较为简单粗暴的表达-----三引号.例如: str = ”’那时我们有梦, 关于文学, 关于爱情, 关于穿越世界的旅行. 如今我们深夜饮 ...
- Linux内核数据结构之kfifo详解
本文分析的原代码版本: 2.6.24.4 kfifo的定义文件: kernel/kfifo.c kfifo的头文件: include/linux/kfifo.h kfifo是内核里面的一个First ...
- node.js学习4--------------------- 根据不同路径来响应内容,以及中文乱码的解决
/** * http服务器的搭建,相当于php中的Apache或者java中的tomcat服务器 */ // 导包 const http=require("http"); //创建 ...
- Linux磁盘故障案例
原因:由于另外一块磁盘不存在,但是配置文件/etc/fstab中又有挂载的配置,挂载出问题就导致这样的故障. 输入root密码进去 编辑/etc/fstab文件把箭头指向的这一行注释掉或者删除掉.然后 ...
- P3957 跳房子
题目描述 跳房子,也叫跳飞机,是一种世界性的儿童游戏,也是中国民间传统的体育游戏之一. 跳房子的游戏规则如下: 在地面上确定一个起点,然后在起点右侧画 n 个格子,这些格子都在同一条直线上.每个格子内 ...
- windows10安装anaconda,配置tensorflow
1.安装anaconda 3.5.5 默认安装,注意,把添加到path勾选上,其他默认安装(能搜到这篇文章,相信大家都有过变成经验,这些环境变量的重要性就不要窝在多说了) 2.以管理员身份,打开ana ...
- 使用 ado.net访问数据库
一.ADO.NET :用于连接数据库的技术 1.ADO.NET分为两大组件 DataSet:数据集 .NET FRAMWORK :用于连接到数据库,发送命令,检索结果 2.ADO. ...
- Java探针
使用java代理来实现java字节码注入 使用JavaSsist可以对字节码进行修改 使用ASM可以修改字节码 使用Java代理和ASM字节码技术开发java探针工具可以修改字节码 备注:javass ...
- 闪付卡(QuickPass)隐私泄露原理
0×00 前言 说到闪付卡,首先要从EMV开始,EMV是由Europay,MasterCard和VISA制定的基于IC卡的支付标准规范.目前基于EMV卡的非接触式支付的实现有三个:VISA的payWa ...
- asp.net webapi 生成在线文档--Swagger
第一步:使用nuget包获取Swashbule.swagger.net.ui的包并安装. 安装成功后 打开App_Start->SwaggerNet.cs 注释掉一下两行 //[assembly ...