DOCA0132ZH-01

使用 SDO

简介

SDO 电报用于通过请求编程来不定期地访问任何 CANopen 对象。SDO 服务包括请求电报和响应电报。

请求 SDO 电报

从客户端发送至 LTMR 控制器的请求信息:

COB-ID

字节 0

字节 1

字节 2

字节 3

字节 4

字节 5

字节 6

字节 7

0x600 + 节点 ID

请求代码

对象索引

对象子索引

请求数据

LSB

MSB

位 7-0

位 15-8

位 23-16

位 31-24

响应 SDO 电报

从客户端发送至 LTMR 控制器的请求信息:

COB-ID

字节 0

字节 1

字节 2

字节 3

字节 4

字节 5

字节 6

字节 7

0x580 + 节点 ID

响应代码

对象索引

对象子索引

响应数据

LSB

MSB

位 7-0

位 15-8

位 23-16

位 31-24

请求和响应代码

请求数据和响应数据可能会因请求代码和响应代码的不同而有所不同。下表显示了每个不同请求代码的请求数据:

响应代码

命令描述

字节 4

字节 5

字节 6

字节 7

0x23

写入 4 位数据

位 7-0

位 15-8

位 23-16

位 31-24

0x2B

写入 2 位数据

位 7-0

位 15-8

0x00

0x00

0x2F

写入 1 位数据

位 7-0

0x00

0x00

0x00

0x40

读取数据

0x00

0x00

0x00

0x00

0x80

中止当前的 SDO 命令* 1

位 7-0

位 15-8

位 23-16

位 31-24

下表显示了每个不同响应代码的响应数据:

请求代码

命令描述

字节 4

字节 5

字节 6

字节 7

0x23

读取数据:4 字节数据

位 7-0

位 15-8

位 23-16

位 31-24

0x2B

读取数据:2 字节数据

位 7-0

位 15-8

0x00

0x00

0x2F

读取数据:1 字节数据

位 7-0

0x00

0x00

0x00

0x40

写入一条 1/2/4 位数据响应

0x00

0x00

0x00

0x00

0x80

检测到错误响应:返回中止代码*列出了所有支持的中止代码

0x00

0x00

0x00

0x00

SDO 中止代码

支持以下中止代码:

中止代码

描述

0x 0503 0000

分段传输:切换位未发生改变

0x 0504 0000

SDO 协议超时

0x 0504 0001

请求代码无效或未知

0x 0601 0000

访问参数时发生访问脱扣(例如,针对某个只读参数的写入请求)

0x 0601 0001

尝试对具有只写访问权限的参数执行读取请求

0x 0601 0002

尝试对具有只读访问权限的参数执行写入请求

0x 0602 0000

在请求中发送的索引引用了对象词典中不存在的对象

0x 0604 0041

PDO 对象映射:不能将参数映射至 PDO;当写入至 0x1600、0x1A00、0x1605 和 0x1A05 参数(PDO 映射)时发生此检测到的错误

0x 0604 0042

PDO 对象映射:要映射的参数的编号或长度将超出最大 PDO 长度。

0x 0609 0011

在请求中发送的子索引不存在

0x 0609 0030

超出了参数的取值范围(仅限写访问)

0x 0609 0031

写入的参数值过高

0x 0609 0032

写入的参数值过低

0x 0609 0036

参数的最大值小于其最小值

0x 0800 0000

发生常规检测到的错误

写入 SDO 示例

以下为使用结构化文本语言编写的 Premium PLC 写入 SDO 编程示例。

读取 SDO 示例

以下为使用结构化文本语言编写的 Premium PLC 读取 SDO 编程示例。

QR Code is a registered trademark of DENSO WAVE INCORPORATED in Japan and other countries.

这有帮助吗?