SDO修改参数的命令字是怎么定义的
- 首先我们确定e的值:因为我们正常的SDO通讯都是使用的加速传送(最多传输4字节数据),所以e = 1
- 然后我们确定s的值:如果我们不指定数据长度,则s=0,否则s=1
- 然后我们确定n的值:根据e和s的值,如果我们不指定数据长度,则n无意义,n=0,那么命令字就等于
00100010
b,即0x22
如果指定数据长度,则s=1,这时候n有效,n表示数据部分无意义数据的字节数,注意是无意义的字节数。
如果我们只使用1个字节,则无意义字节数为3 (BYTE6-8)。n=11
b,那么命令字就等于00101111
,即0x2F(这里要注意SDO的数据格式,八个字节依次是:命令字(BYTE1),索引(BYTE2-3),子索引(BYTE4),数据(BYTE5-8))
同理,如果我们使用两个字节,则无意义字节数为2,(BYTE7-8),n=10
b。那么命令字就等于00101011
,即0x2B。
三个字节的0x27和四个字节的0x23,想必你一定能算出来吧。
不一传说: 现在有图了吧。修复了
我的老子姓彭: 你的图片,都不行了
helloworlddexiaobai: 我去,碉堡了
weixin_44135330: 很系统,不愧是做过底层链路的
日落悬崖: 给你评论一下,顺便看看十五个字是不是真有积分