ITPub博客

首页 > 嵌入式/内核开发 > 嵌入式/内核开发 > 《PDxxS1_CANopen协议控制教程_V1.0》第6章

《PDxxS1_CANopen协议控制教程_V1.0》第6章

原创 嵌入式/内核开发 作者:正点原子 时间:2026-07-02 09:59:46 0 删除 编辑

6,运动模式控制


6.1,运动模式使用总规则(必须严格遵守)

使用任何运动模式(位置 / 速度 / 力矩)前,需完成以下核心流程,确保驱动器与电机处于可操作状态:

1. 基础网络激活:发送 NMT 启动指令(ID=0x000,数据 = 01 00),驱动器心跳包回复值从默认 0x7F 变为 0x05(Operational 状态);

2. 电机硬件使能:执行 CiA402 标准三步使能流程(根据第5小节操作),完成电机上电与运行使能;

3. 控制通道选择:

完成上述两步后,可通过 PDO 进行高实时性运动控制(推荐量产 / 实时场景);

完成上述两步后,也可通过 SDO 逐指令控制电机运动(仅适用于调试 / 低频次控制场景,实时性差);

4. 默认上电限制:驱动器上电后默认心跳 = 0x7F(Pre-operational 状态),此时仅可通过 SDO 配置参数(如运动模式、加速度),无法通过任何方式(SDO/PDO)控制电机运动,必须完成 NMT 启动 + 三步使能后,电机才可响应运动指令;

5,注意本文的所有示例均以NodeID = 1,进行讲解。


6.2,位置模式控制

位置模式用于控制电机运动到指定位置,适用于:

自动化定位

精密机械

机械臂关节

控制流程:

① 设置位置模式

② 设置加速度

③ 设置减速度

④ 设置最大速度

⑤ 下发目标位置

 

①  设置位置模式



数据段解析:

a) 第 1 字节(0x2F):SDO 写命令,0x20 表示“写数据”,0x0F 表示数据长度为 1 字节;

b) 第 2~3 字节(0x60 0x60):对象字典索引 0x6060(Mode of Operation,运行模式);

c) 第 4 字节(0x00):子索引 0x00;

d) 第 5~8 字节(0x01 00 00 00):写入的运行模式值为 0x01,对应位置模式;

核心作用:向 0x6060 (Mode of Operation) 写入 01,选择位置模式。

 

② 设置加速度



数据段解析:

a) 第 1 字节(0x23):SDO下载;

b) 第 2~3 字节(0x83 0x60):对象字典索引 0x6083(位置加速度);

c) 第 4 字节(0x00):子索引 0x00;

d) 第 5~8 字节(0XC8 00 00 00):位置加速度值 0x000000C8(小端格式);对应数据为 200相当于200r/s²;

核心作用:设置位置模式下的加速度。

 

③ 设置减速度



数据段解析:

a) 第 1 字节(0x23):SDO下载;

b) 第 2~3 字节(0x84 0x60):对象字典索引 0x6084(位置减速度);

c) 第 4 字节(0x00):子索引 0x00;

d) 第 5~8 字节(0XC8 00 00 00):位置减速度值 0x000000C8(小端格式);对应数据为 200相当于200r/s²;

核心作用:设置位置模式下的减速度。

 

④ 设置最大速度



数据段解析:

a) 第 1 字节(0x23):SDO下载;

b) 第 2~3 字节(0x81 0x60):对象字典索引 0x6081(最大速度);

c) 第 4 字节(0x00):子索引 0x00;

d) 第 5~8 字节(0XB8 0B 00 00):位置减速度值 0x00000BB8(小端格式);对应数据为 3000相当于3000rpm;

核心作用:设置位置模式下的最大速度。

 

⑤ 写入目标位置



CAN ID:0x201 (RPDO1)

数据段解析:

a) 第 1~2 字节(0x1F 00):控制标志位,用于触发位置指令执行,前面操作了使能三步骤,这部分直接填0x1F即可。

b) 第 3 字节(0x01):模式设置,1代表位置模式

c) 第 4~7 字节(0x00 0x90 0x01 0x00):目标位置值 0x00019000(小端格式),对应数据为 102400相当于相对于绝对零点位置正转2 圈(102400 ÷ 51200 = 2圈);

3,补充要点:

a) 目标位置支持正负数,正数表示电机正向运动,负数表示反向运动;

b) 若电机未到达目标位置就停止,需检查 Controlword 状态、驱动器使能状态及目标位置参数是否正确。


6.3,速度模式控制

速度模式用于控制电机以恒定速度运行,适用于:

输送带

风机

泵类设备

控制流程:

① 设置速度模式

② 设置加速度

③ 设置减速度

④ 下发目标速度

 

① 设置速度模式



数据段解析:

a) 第 1 字节(0x2F):SDO 写命令,0x20 表示“写数据”,0x0F 表示数据长度为 1 字节;

b) 第 2~3 字节(0x60 0x60):对象字典索引 0x6060(Mode of Operation,运行模式);

c) 第 4 字节(0x00):子索引 0x00;

d) 第 5~8 字节(0x03 00 00 00):写入的运行模式值为 0x03,对应速度模式;

核心作用:向 0x6060 (Mode of Operation) 写入 03,选择速度模式。

 

② 设置加速度



数据段解析:

a) 第 1 字节(0x23):SDO下载,表示写入数据长度为4字节;

b) 第 2~3 字节(0x48 0x60):对象字典索引 0x6048(速度加速度);

c) 第 4 字节(0x00):子索引 0x00;

d) 第 5~8 字节(0XC8 00 00 00):位置加速度值 0x000000C8(小端格式);对应数据为 200相当于200r/s²;

核心作用:设置速度模式下的加速度。

 

③ 设置减速度



l 数据段解析:

a) 第 1 字节(0x23):SDO下载,表示写入数据长度为4字节;

b) 第 2~3 字节(0x49 0x60):对象字典索引 0x6049(速度减速度);

c) 第 4 字节(0x00):子索引 0x00;

d) 第 5~8 字节(0XC8 00 00 00):位置减速度值 0x000000C8(小端格式);对应数据为 200相当于200r/s²;

l 核心作用:设置速度模式下的减速度。

 

④ 下发目标速度



数据段解析:

a) 第 1 字节(0x23):SDO下载;

b) 第 2~3 字节(0xFF 0x60):对象字典索引 0x60FF(设置目标速度);

c) 第 4 字节(0x00):子索引 0x00;

d) 第 5~8 字节(0X58 02 00 00):速度值 0x00000258(小端格式);对应数据为 600相当于600RPM;

核心作用:设置目标速度,单位RPM。


6.4,力矩模式控制

力矩(电流)模式下,驱动器输出相应的扭矩。

控制流程:

① 设置力矩模式

② 设置目标力矩


① 设置力矩模式



数据段解析:

a) 第 1 字节(0x2B):SDO 写命令,表示写入数据长度为1 字节;

b) 第 2~3 字节(0x71 0x60):对象字典索引 0x6071(设置目标力矩);

c) 第 4 字节(0x00):子索引 0x00;

d) 第 5~8 字节(0x04 00 00 00):写入的运行模式值为 0x04,对应力矩模式;

核心作用:向 0x6060 (Mode of Operation) 写入 04,选择力矩模式。

 

② 设置目标力矩



数据段解析:

a) 第 1 字节(0x2B):SDO 写命令, 表示写入数据长度为2 字节;

b) 第 2~3 字节(0x71 0x60):对象字典索引 0x6071(设置目标力矩);

c) 第 4 字节(0x00):子索引 0x00;

d) 第 5~6 字节(0XC8 00):写入的运行模式值为 0x00C8对应数据为 200相当于200mA;

e) 第 7~8 字节(0X00 00):填充字节无意义;

核心作用:设置目标力矩,单位mA。


6.5,循环同步位置模式(CSP)

循环同步位置模式(Cyclic Synchronous Position,CSP)是一种高实时性的位置控制模式。

在该模式下,主站周期性发送目标位置,驱动器根据SYNC同步报文实时更新位置,实现高精度运动控制。

常用于:

多轴同步运动

机械臂

CNC

CANopen高实时控制系统

高精度轨迹跟踪

 

控制流程:

① 设置循环同步模式(CSP)

② 周期发送目标位置

③ 发送SYNC同步帧

 

① 设置循环同步位置模式



数据段解析:

a) 第 1 字节(0x2F):SDO 写命令,SDO写命令,表示写入1字节数据;

b) 第 2~3 字节(0x60 0x60):对象字典索引 0x6060(Mode of Operation,运行模式);

c) 第 4 字节(0x00):子索引 0x00;

d) 第 5~8 字节(0x08 00 00 00):写入的运行模式值为 0x08,对应循环同步位置模式;

核心作用:向 0x6060 (Mode of Operation) 写入 08,选择循环同步位置模式。

 

② 发送目标位置



数据段解析:

a) 第 1 字节(0x23):SDO 写命令,SDO写命令,表示写入4字节数据;

b) 第 2~3 字节(0x7A 0x60):对象字典索引 0x607A(Target Position,目标位置);

c) 第 4 字节(0x00):子索引 0x00;

d) 第 5~8 字节(0xE8 03 00 00):目标位置值 = 0x000003E8 = 1000;

核心作用:设置目标位置为1000(51200 = 1圈)。

 

③ 发送SYNC同步帧



核心作用:通知所有从站同步更新控制数据。驱动器通常会在收到SYNC后,立即执行最新目标位置。


6.6,循环同步速度模式(CSV)

循环同步速度模式(Cyclic Synchronous Velocity,CSV)是一种高实时性的速度控制模式。

在该模式下,主站周期性发送目标速度,驱动器在收到SYNC同步帧后实时更新速度输出。

常用于:

AGV小车

轮式机器人

多轴同步速度控制

高实时速度调节场景

闭环伺服控制系统

控制流程:

① 设置CSV模式

② 周期发送目标速度

③ 发送SYNC同步帧

 

① 设置循环同步速度模式



数据段解析:

a) 第 1 字节(0x2F):SDO 写命令,SDO写命令,表示写入1字节数据;

b) 第 2~3 字节(0x60 0x60):对象字典索引 0x6060(Mode of Operation,运行模式);

c) 第 4 字节(0x00):子索引 0x00;

d) 第 5~8 字节(0x09 00 00 00):写入的运行模式值为 0x09,对应循环同步速度模式;

核心作用:向 0x6060 (Mode of Operation) 写入 09,选择循环同步速度模式。

 

② 发送目标速度



数据段解析:

a) 第 1 字节(0x23):SDO 写命令,SDO写命令,表示写入4字节数据;

b) 第 2~3 字节(0xFF 0x60):对象字典索引 0x60FF(Target Velocity,目标速度);

c) 第 4 字节(0x00):子索引 0x00;

d) 第 5~8 字节(0xE8 03 00 00):目标速度值 = 0x000003E8 = 1000;

核心作用:设置目标位置为1000(RPM)。

 

③ 发送SYNC同步帧



核心作用:通知所有从站同步更新控制数据。驱动器通常会在收到SYNC后,立即执行最新目标速度。


6.7,循环同步力矩模式(CST)

循环同步力矩模式(Cyclic Synchronous Torque,CST)是一种高实时性的力矩控制模式。

主站周期性发送目标力矩(电流),驱动器在SYNC同步下实时输出对应扭矩。

常用于:

力控系统

协作机器人

柔性控制

恒张力系统

电流闭环控制

精密压装系统

控制流程:

① 设置CST模式

② 周期发送目标力矩

③ 发送SYNC同步帧

 

①  设置循环同步力矩模式



数据段解析:

a) 第 1 字节(0x2F):SDO 写命令,SDO写命令,表示写入1字节数据;

b) 第 2~3 字节(0x60 0x60):对象字典索引 0x6060(Mode of Operation,运行模式);

c) 第 4 字节(0x00):子索引 0x00;

d) 第 5~8 字节(0x0A 00 00 00):写入的运行模式值为 0x0A,对应循环同步力矩模式;

核心作用:向 0x6060 (Mode of Operation) 写入 0A,选择循环同步力矩模式。

 

② 发送目标力矩



数据段解析:

a) 第 1 字节(0x2B):SDO 写命令,SDO写命令,表示写入2字节数据;

b) 第 2~3 字节(0x71 0x60):对象字典索引 0x6071(Target Torque,目标力矩);

c) 第 4 字节(0x00):子索引 0x00;

d) 第 5~6 字节(0xC8 00):目标力矩值 = 0xC800 = 200;

e) 第 7~8 字节(0x00 00):填充字节,无意义;

核心作用:设置目标力矩为200(mA)。

 

③  发送SYNC同步帧



核心作用:驱动器收到SYNC后立即更新输出力矩。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70040860/viewspace-3175034/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2024-08-30

  • 博文量
    588
  • 访问量
    764684