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

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

步骤一:切换到预操作态

使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 0x81 0x01 0x00 0x80
失能TPDO2(修改参数前需要失能,否侧不能更改参数,COB-ID 0x301)
报文:0x601 0x22 0x01 0x18 0x01 0x81 0x02 0x00 0x80
失能TPDO3(修改参数前需要失能,否侧不能更改参数,COB-ID 0x301)
报文:0x601 0x22 0x02 0x18 0x01 0x81 0x03 0x00 0x80
失能TPDO4(修改参数前需要失能,否侧不能更改参数,COB-ID 0x301)
报文:0x601 0x22 0x03 0x18 0x01 0x81 0x04 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 0x81 0x01 0x00 0x00
使能TPDO2映射参数
报文:0x601 0x22 0x01 0x18 0x01 0x81 0x02 0x00 0x00
使能TPDO3映射参数
报文:0x601 0x22 0x02 0x18 0x01 0x81 0x03 0x00 0x00
使能TPDO4映射参数
报文:0x601 0x22 0x03 0x18 0x01 0x81 0x04 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字节,会多帧发送。

原文使用语雀文档,有颜色标注,更加清晰:
在这里插入图片描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hlpinghcg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值