伺服控制入门 第二章——伺服控制的通信协议基础(二)

参考教程:https://www.bilibili.com/video/BV14q4y147PU?spm_id_from=333.788.videopod.episodes&vd_source=8f8a7bd7765d52551c498d7eaed8acd5

二、CANopen基础(下)

1、CANopen紧急报文

(1)紧急报文是事件触发型报文,仅当设备内部出现的致命错误时触发,以最高优先级发送到其它设备,适用于中断类型的错误报警信号。

(2)一个紧急报文的数据段包含8个字节,报文格式如下:

(3)16进制的应急错误代码如下表所示,应急错误代码中"xx"部分由相应的设备子协议定义。

(4)错误寄存器(Error Register)在设备的对象字典(索引0x1001)中有定义。下表说明了错误寄存器的位定义,设备可以将内部错误映射到这个状态字节中,快速查看当前错误。

2、SDO通讯

(1)SDO(Service Data Object,服务数据对象)概述:

①SDO主要用来在设备之间传输低优先级的对象,典型是用来对从设备进行配置、管理,比如修改速度环、位置环的PID参数,以及修改PDO配置参数等。

②通过使用索引和子索引,SDO使客户机能够访问(读或写)设备对象字典中的对象。

③通常情况下,传输的数据长度不超过4个字节,当数据长度超过4个字节时,需要分拆成几个报文。

④SDO协议是确认服务类型,每个请求消息都需要生成一个应答。SDO请求和应答报文总是包含8个字节。

(2)SDO的通讯对象标识符,使用中具体定义规则如下:

|--------------|------------|-------------|------|
| 对象 | COB_ID | COB_ID范围 | 通讯对象 |
| Tx-SDO(请求报文) | 0x600+节点地址 | 0x601-0x67F | / |
| Rx-SDO(应答报文) | 0x580+节点地址 | 0x581-0x5FF | / |

(3)SDO读报文格式:

①SDO读报文的请求报文格式如下,其中命令字为0x40,Byte4-7为缺省内容,可填充0。

②SDO读报文的应答报文格式如下,Byte4-7为根据索引寻到的数据(最大4字节),根据数据的大小,命令字的选取如下:

如果数据为1字节,则命令字为0x4F

如果数据为2字节,则命令字为0x4B

如果数据为3字节,则命令字为0x47

如果数据为4字节,则命令字为0x43

如果失败,则命令字为0x80

(4)SDO读报文示例:

读取设备站号为0x01的伺服实际位置(Index为6063,Sub_Index为00,数据宽度为20bits),读到的数据是4个字节,CANopen数据低字节在前、高字节在后(小端模式),所以数据为FFFFFD113H(补码形式),转换成10进制即为-12013

请求(发送)报文的命令字为0x40,Bit4-Bit7缺省,以"0"填充;回应的数据长度为4个字节,所以应答(回应)报文的命令字为0x43

(5)SDO写报文格式:

①SDO写报文的请求报文格式如下,Byte4-7为请求写入对象索引指向对象的数据(最大4字节),根据数据的大小,命令字的选取如下:

如果数据为1字节,则命令字为0x2F

如果数据为2字节,则命令字为0x2B

如果数据为3字节,则命令字为0x27

如果数据为4字节,则命令字为0x23

②SDO写报文的请求报文格式如下,Byte4-7为缺省内容,可填充0或者主站请求写入的数据,如果写入成功,命令字为0x60,否则命令字为0x80。

(6)SDO写报文示例:

写设备站号为0x01的伺服目标位置(Index为607A,Sub_Index为00,数据宽度为20bits),请求写入的数据是4个字节,CANopen数据低字节在前、高字节在后(小端模式),所以数据为100000,转换成16进制即为000186A0H(补码形式)

请求的数据长度为4个字节,所以请求(发送)报文的命令字为0x23;应答(回应)报文的命令字为0x60,Bit4-Bit7缺省,以主站请求写入的数据填充

(7)如果SDO通讯失败,从站回复的报文格式如下,命令字为0x80,Bit4-Bit7为4字节的错误代码。

相关推荐
Zevalin爱灰灰2 天前
伺服控制入门 第一章——伺服控制的硬件/物理基础(二)
伺服控制
Zevalin爱灰灰2 天前
伺服控制入门 第一章——伺服控制的硬件/物理基础(三)
伺服控制
Zevalin爱灰灰6 天前
伺服控制入门 第一章——伺服控制的硬件/物理基础(一)
伺服控制
FanXing_zl6 个月前
伺服系统控制原理深度解析
伺服控制·伺服系统
jk_1012 年前
永磁同步电机的磁场定向控制
嵌入式硬件·仿真·伺服控制