天天看点

CANopen从站伺服配置报文及使用CANopen从站伺服配置报文及使用步骤1:切换到预操作态步骤二:失能PDO(TPDO,RPDO)步骤三:清空PDO映射步骤四:设置PDO映射步骤五:设置PDO传输类型步骤六:参数被映射步骤七:使能映射参数步骤八:切换到操作态步骤九:写入参数(主站)步骤十:读取参数(主站)

CANopen从站伺服配置报文及使用

步骤1:切换到预操作态

使PDO进入预操作态(在预操作状态下才可修改参数,否侧容易报错);

主站发送报文:0x000 0x80 0x01(节点号)

步骤二:失能PDO(TPDO,RPDO)

失能RPDO1(修改参数前需要失能,否侧不能更改参数,COB-ID 0x201)

主站发送报文:0x601 0x22 0x00 0x14 0x01 0x01 0x02 0x00 0x80

失能RPDO2(修改参数前需要失能,否侧不能更改参数,COB-ID 0x301)

主站发送报文:0x601 0x22 0x01 0x14 0x01 0x01 0x03 0x00 0x80

失能RPDO3(修改参数前需要失能,否侧不能更改参数,COB-ID 0x401)

主站发送报文:0x601 0x22 0x02 0x14 0x01 0x01 0x04 0x00 0x80

失能RPDO4(修改参数前需要失能,否侧不能更改参数,COB-ID 0x501)

主站发送报文:0x601 0x22 0x03 0x14 0x01 0x01 0x05 0x00 0x80

失能TPDO1(修改参数前需要失能,否侧不能更改参数,COB-ID 0x201)

报文:0x601 0x22 0x00 0x18 0x01 0x01 0x18 0x00 0x80

失能TPDO2(修改参数前需要失能,否侧不能更改参数,COB-ID 0x301)

报文:0x601 0x22 0x01 0x18 0x01 0x01 0x28 0x00 0x80

失能TPDO3(修改参数前需要失能,否侧不能更改参数,COB-ID 0x301)

报文:0x601 0x22 0x02 0x18 0x01 0x01 0x38 0x00 0x80

失能TPDO4(修改参数前需要失能,否侧不能更改参数,COB-ID 0x301)

报文:0x601 0x22 0x03 0x18 0x01 0x01 0x48 0x00 0x80

步骤三:清空PDO映射

清空RPDO1 Mapping,全部置0

报文:0x601 0x2F 0x00 0x16 0x00 0x00 0x00 0x00 0x00

清空RPDO2 Mapping,全部置0

报文:0x601 0x2F 0x01 0x16 0x00 0x00 0x00 0x00 0x00

清空RPDO3 Mapping,全部置0

报文:0x601 0x2F 0x02 0x16 0x00 0x00 0x00 0x00 0x00

清空RPDO4 Mapping,全部置0

报文:0x601 0x2F 0x03 0x16 0x00 0x00 0x00 0x00 0x00

清空TPDO1 Mapping,全部置0

报文:0x601 0x2F 0x00 0x1A 0x00 0x00 0x00 0x00 0x00

清空TPDO2 Mapping,全部置0

报文:0x601 0x2F 0x01 0x1A 0x00 0x00 0x00 0x00 0x00

清空TPDO3 Mapping,全部置0

报文:0x601 0x2F 0x02 0x1A 0x00 0x00 0x00 0x00 0x00

清空TPDO4 Mapping,全部置0

报文:0x601 0x2F 0x03 0x1A 0x00 0x00 0x00 0x00 0x00

步骤四:设置PDO映射

注意:8bit:0x08

16bit: 0x10

32bit: 0x20

RPDO映射:

PT模式:

设置控制字0x6040(ControlWord 16bit,子索引0)映射到RPDO1子索引1

设置目标力矩0x6071(TargetTorque16bit,子索引0)映射到RPDO1子索引2

报文:0x601 0x22 0x00 0x16 0x01 0x10 0x00 0x40 0x60

报文:0x601 0x22 0x00 0x16 0x02 0x10 0x00 0x71 0x60

设置控制字0x6040(ControlWord 16bit,子索引0)映射到RPDO2子索引1

设置控制模式0x6060(Modes_of_operation 8bit,子索引0)映射到RPDO2子索引2

报文:0x601 0x22 0x01 0x16 0x01 0x10 0x00 0x40 0x60

报文:0x601 0x22 0x01 0x16 0x02 0x08 0x00 0x60 0x60

PP模式

设置控制字0x6040(ControlWord 16bit,子索引0)映射到RPDO3子索引1

设置目标位置0x607A(Target_position 32bit,子索引0)映射到RPDO3子索引2

报文:0x601 0x22 0x02 0x16 0x01 0x10 0x00 0x40 0x60

报文:0x601 0x22 0x02 0x16 0x02 0x20 0x00 0x7A 0x60

PV模式

设置控制字0x6040(ControlWord 16bit,子索引0)映射到RPDO4子索引1

设置目标速度0x60FF(Target_velocity 32bit,子索引0)映射到RPDO4子索引2

报文:0x601 0x22 0x03 0x16 0x01 0x10 0x00 0x40 0x60

报文:0x601 0x22 0x03 0x16 0x02 0x20 0x00 0xFF 0x60

TPDO映射:

设置状态字0x6041(StatusWord 16bit,子索引0)映射到TPDO1子索引1

设置实际电流0x6078(Current_actual_value 16bit,子索引0)映射到TPDO1子索引2

报文:0x601 0x22 0x00 0x1A 0x01 0x10 0x00 0x41 0x60

报文:0x601 0x22 0x00 0x1A 0x02 0x10 0x00 0x78 0x60

设置状态字0x6041(StatusWord 16bit,子索引0)映射到TPDO2子索引1

设置实际电流0x6061(Modes_of_operation_display 8bit,子索引0)映射到TPDO2子索引2

报文:0x601 0x22 0x01 0x1A 0x01 0x10 0x00 0x41 0x60

报文:0x601 0x22 0x01 0x1A 0x02 0x08 0x00 0x61 0x60

设置状态字0x6041(StatusWord 16bit,子索引0)映射到TPDO3子索引1

设置实际电流0x6064(Modes_of_operation_display 32bit,子索引0)映射到TPDO3子索引2

设置实际电流0x6077(ActualTorque 16bit,子索引0)映射到TPDO3子索引3

报文:0x601 0x22 0x02 0x1A 0x01 0x10 0x00 0x41 0x60

报文:0x601 0x22 0x02 0x1A 0x02 0x20 0x00 0x64 0x60

报文:0x601 0x22 0x02 0x1A 0x03 0x10 0x00 0x77 0x60

设置状态字0x6041(StatusWord 16bit,子索引0)映射到TPDO4子索引1

设置实际电流0x606C(Velocity_actual_value 32bit,子索引0)映射到TPDO4子索引2

报文:0x601 0x22 0x03 0x1A 0x01 0x10 0x00 0x41 0x60

报文:0x601 0x22 0x03 0x1A 0x02 0x20 0x00 0x6C 0x60

步骤五:设置PDO传输类型

同步非周期模式(0x00):收到同步报文之后,启动pdo事件。

同步周期模式(0x01-0xFB):收到指定个同步报文后,启动pdo事件。

同步远程模式(0xFC):收到同步报文后准备好pdo报文,等待接收到远程请求帧时发送报文。

异步远程模式(0xFD):收到远程请求帧时,构建pdo报文并发送。

异步特殊模式(0xFF):pdo报文初始化或接收到远程请求帧时,启动pdo事件。特殊事件无视直接禁止时间,直接取消禁止然后构建pdo报文并发送。

一般选择0xFF就可。

设置RPDO1传输类型(类型FFh);异步

报文:0x601 0x2F 0x00 0x14 0x02 0xFF 0x00 0x00 0x00

设置RPDO2传输类型(类型FFh);

报文:0x601 0x2F 0x01 0x14 0x02 0xFF 0x00 0x00 0x00

设置RPDO3传输类型(类型FFh);

报文:0x601 0x2F 0x02 0x14 0x02 0xFF 0x00 0x00 0x00

设置RPDO4传输类型(类型FFh);

报文:0x601 0x2F 0x03 0x14 0x02 0xFF 0x00 0x00 0x00

设置TPDO1传输类型(类型01h);同步循环模式

报文:0x601 0x2F 0x00 0x18 0x02 0x01 0x00 0x00 0x00

设置TPDO2传输类型(类型FFh);

报文:0x601 0x2F 0x01 0x18 0x02 0x01 0x00 0x00 0x00

设置TPDO3传输类型(类型FFh);

报文:0x601 0x2F 0x02 0x18 0x02 0x01 0x00 0x00 0x00

设置TPDO4传输类型(类型FFh);

报文:0x601 0x2F 0x03 0x18 0x02 0x01 0x01 0x00 0x00

设置TPDO1禁止约束时间(1/10ms);

报文:0x601 0x2B 0x00 0x18 0x03 0x2C 0x01 0x00 0x00

设置TPDO2禁止约束时间(1/10ms);

报文:0x601 0x2B 0x01 0x18 0x03 0x2C 0x01 0x00 0x00

设置TPDO3禁止约束时间(1/10ms);

报文:0x601 0x2B 0x02 0x18 0x03 0x2C 0x01 0x00 0x00

设置TPDO4禁止约束时间(1/10ms);

报文:0x601 0x2B 0x03 0x18 0x04 0x2C 0x01 0x00 0x00

步骤六:参数被映射

设置索引0为映射的参数个数

使能RPDO1映射参数

报文:0x601 0x2F 0x00 0x16 0x00 0x02 0x00 0x00 0x00

使能RPDO2映射参数

报文:0x601 0x2F 0x01 0x16 0x00 0x02 0x00 0x00 0x00

使能RPDO3映射参数

报文:0x601 0x2F 0x02 0x16 0x00 0x02 0x00 0x00 0x00

使能RPDO4映射参数

报文:0x601 0x2F 0x03 0x16 0x00 0x02 0x00 0x00 0x00

使能TPDO1映射参数

报文:0x601 0x2F 0x00 0x1A 0x00 0x02 0x00 0x00 0x00

使能TPDO2映射参数

报文:0x601 0x2F 0x01 0x1A 0x00 0x02 0x00 0x00 0x00

使能TPDO3映射参数

报文:0x601 0x2F 0x02 0x1A 0x00 0x03 0x00 0x00 0x00

使能TPDO4映射参数

报文:0x601 0x2F 0x03 0x1A 0x00 0x02 0x00 0x00 0x00

步骤七:使能映射参数

使能RPDO1映射参数

报文:0x601 0x22 0x00 0x14 0x01 0x01 0x02 0x00 0x00

使能RPDO2映射参数

报文:0x601 0x22 0x01 0x14 0x01 0x01 0x03 0x00 0x00

使能RPDO3映射参数

报文:0x601 0x22 0x02 0x14 0x01 0x01 0x04 0x00 0x00

使能RPDO4映射参数

报文:0x601 0x22 0x03 0x14 0x01 0x01 0x05 0x00 0x00

使能TPDO1映射参数

报文:0x601 0x22 0x00 0x18 0x01 0x01 0x18 0x00 0x00

使能TPDO2映射参数

报文:0x601 0x22 0x01 0x18 0x01 0x01 0x28 0x00 0x00

使能TPDO3映射参数

报文:0x601 0x22 0x02 0x18 0x01 0x01 0x38 0x00 0x00

使能TPDO4映射参数

报文:0x601 0x22 0x03 0x18 0x01 0x01 0x48 0x00 0x00

步骤八:切换到操作态

报文:0x000 0x01 0x01(节点)

步骤九:写入参数(主站)

主站发出报文:0x201 0x0F 0x00 0xE8 0x03(16bit控制字,16bit 目标力矩 1000)

主站发出报文:0x301 0x0F 0x00 0x03(16bit控制字,8bit 控制模式)

主站发出报文:0x401 0x0F 0x00 0xE8 0x03 0x00 0x00 (16bit控制字,32bit 目标位置 1000)

主站发出报文:0x501 0x0F 0x00 0xE8 0x03 0x00 0x00 (16bit控制字,32bit 目标速度 1000)

步骤十:读取参数(主站)

从站发出报文:0x181 0x00 0x00 0xE8 0x03(16bit状态字,16bit 实际电流 1000)

从站发出报文:0x281 0x00 0x00 0x03(16bit状态字,8bit 运行模式)

从站发出报文:0x381 0x00 0x00 0xE8 0x03 0x00 0x00 0xE8 0x03(16bit状态字,32bit 实际位置 1000,16bit 实际力矩 1000)

从站发出报文:0x481 0x00 0x00 0xE8 0x03 0x00 0x00(16bit状态字,32bit 实际速度 1000)

注:若参数超过8字节,会多帧发送。

原文使用语雀文档,有颜色标注,更加清晰:

CANopen从站伺服配置报文及使用CANopen从站伺服配置报文及使用步骤1:切换到预操作态步骤二:失能PDO(TPDO,RPDO)步骤三:清空PDO映射步骤四:设置PDO映射步骤五:设置PDO传输类型步骤六:参数被映射步骤七:使能映射参数步骤八:切换到操作态步骤九:写入参数(主站)步骤十:读取参数(主站)

下载链接:https://download.csdn.net/download/qq_28149763/87287922

继续阅读