Part Number:TMS320F28388D
如上图所示,为例程中402对象字典对象的默认值
以CSV模式RxPDO中的1602对象为例
第一个数值3,表示这个对象中有3个entry
第一个entry的数值是0x60400010,6040是控制字的Index数值;因为控制字是一个16bit的数值,所以它的subindex0为00;最后的10,即0x10 = 16(十进制)代表控制字的数据位宽为16bit
第二个entry的含义是类似,只不过对象的index和数据位宽不一样
我现在不太理解第三个entry的含义,就是最后的这个0x00000010,
上图为et9300文档中index的定义
index 0x0000看起来位于数据类型区
按照这个理解 0x00000010中最后的0x10,应该是指数据位宽是16个bit
不过这个数据位宽指的什么数据的宽度呢?
这个帖子发在C2000论坛可能不太合适,不过我没有EtherCAT官方论坛的账号,所以麻烦C2000论坛有经验的工程师指点一下
谢谢
user78960159:
刚刚注册了ETG官方论坛 已经在那边提问了 回复应该会比较慢 有消息我会发到论坛里
,
Yale Li:
您好,您看一下这个链接:
https://doc.synapticon.com/software/40/object_dict/index.html
,
user78960159:
您好 感谢帮助 这家公司的这份文档 比ETG官方讲402框架的文档要细致
我看下能不能找到答案
,
Yale Li:
好的
,
user78960159:
您好 看了下您提供的文档 我没有找到这个问题的答案
在ETG论坛发帖一周 目前没有回复 我在ETG的文档中目前还没有找到答案
不过调试过程中感觉每个PDO通道最后的"0x0000 00yy",很像是在进行字节对齐操作
以RxPDO 1600为例
这个结构中有5个数据,数据最宽为32bit 如果最后的8个bit看作是padding,即Entry 5,那么bit位加在一起就是32bit的整数倍
以RxPDO 1601为例
最后的16bit在XML文件中的Comment中写的就是padding,在这个结构中,数据最宽为32bit,算上最后的16bit padding 那么总的bit数也是32bit的整数倍
以我自己增加的cst模式的RxPDO 1603为例
在这个新增加的结构中,数据都是16bit宽的,所以应该不需要增加entry进行补位
从以上举例理解,我现在认为,最后的0x0000 0008,0x0000 0010这样的entry应该是类似结构体中有不同数据宽度时的字节对齐处理