使用倍福TwinCAT工具可以生成ENI,先对ENI的cyclic frame数据进行解释说明
需要提前了解EtherCAT报文格式,可参考下面文章
EtherCAT报文格式详解_ethercat listtype 1_EtherCat技术研究的博客-CSDN博客https://blog.csdn.net/gufuguang/article/details/119876404
可以看到ENI中的数据和TwinCAT软件上显示的数据一致
第一条cmd cmd=0,就是NOP 命令 len 4字节
下面解释
<InputOffs>16</InputOffs>
<OutputOffs>16</OutputOffs>
通过 ECAT报文格式我们知道,报文头有16字节,所以第一个命令在报文中的偏移位置是16
第二条命令
<InputOffs>32</InputOffs>
<OutputOffs>32</OutputOffs>
第一条命令起始偏移16,第一条命令长度可根据ECAT CMD格式计算出来 = 10 + Data + 2
Data是4字节所以 第一条命令长度 = 10 + 4 +2 = 16
第二条命令起始地址就是 = 16 + 16 = 32 后面依次类推
ProcessImage中的<BitOffs>752</BitOffs>也是实际数据的bit的偏移量
Inputs 对应cmd 10,可以看到命令偏移是84byte再加上10字节的cmd header = 94
94 x 8 = 752就是pdo数据的偏移bit位置