ITPub博客

首页 > 嵌入式/内核开发 > 嵌入式/内核开发 > 《PDxxS1步进电机闭环驱动器用户手册_V1.0》第五章(5.1-5.3)

《PDxxS1步进电机闭环驱动器用户手册_V1.0》第五章(5.1-5.3)

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

5,Modbus-RTU指令使用说明


注意事项:

       1. 协议设置方法

       需要使用modbus协议,方可使用,下面两个方法效果一样:

       l 方法1:屏幕菜单à通信协议设置àmodbus

       l 方法2:使用“设置协议指令”,设置使用mudbus协议

 

       2. 协议通用性说明

       本协议适用于以下两种通信接口版本的设备:

       l 串口TTL 版本

       l RS485 版本

       其中,协议的指令格式与数据内容在2种版本中保持一致,仅在物理层和部分收发规则上存在差异。

 

       3. 串口 TTL 与 RS485 默认通信参数

       l 波特率115200、

       l 停止位1、

       l 数据位8、

       l 检验位None

 

       4. 从机地址

       l 出厂默认从机地址为 01H

       l 文档中示例均以 01H 作为从机地址。

 

       在PDxxS1步进电机闭环驱动器中,会使用到Modbus-rtu协议的04H(读输入寄存器)、06H(写单个寄存器)、10H(写多个寄存器)三个功能码,请看5.1 指令格式说明。


       功能码表:


指令类型

Modbus-rtu 协议功能码

Modbus-rtu 寄存器起始地址(实际对应自定义协议的 功能码 )

功能说明

系统指令(0x00 ~ 0x0F)

06H

0x01

校准编码器

0x02

复位重启

0x0 3

恢复出厂设置

0x0 4

参数保存



读参数指令 (0x20 ~ 0x3F)

04H

0x20

读取软硬件版本

0x21

读取电机磁链

0x22

读取相电阻和相电感

0x23

读取相电流

0x24

读取总线电压

0x25

读取电流环 PID 参数

0x26

读取速度环 PID 参数

0x27

读取位置环 PID 参数

0x28

读取输入累计脉冲值

0x29

读取电机实时转速

0x2A

读取电机实时位置

0x2B

读取电机位置误差

0x2C

读取电机运行状态

0x2D

读取堵转标志

0x2E

读取堵转电流

0x2F

读取使能状态

0x30

读取到位标志

0x31

读取系统参数

0x32

读取驱动参数



设置参数指令 (0x60 ~ 0x7F)

06H

0x60

设置从机地址

0x62

设置工作模式

10H

0x63

设置位置环 PID 参数

06H

0x64

设置位置环最大力矩限制

0x65

设置细分

0x66

设置目标电流

10H

0x67

设置串口波特率

06H

0x69

设置 Modbus 协议

0x6A

设置堵转保护功能

0x6B

设置堵转电流

0x6D

设置 DIR 正转电平

0x6E

设置 EN 脚有效电平

0x70

设置按键锁定

0x71

设置自动熄屏

0x72

设置 IO 启动电平



限位回零指令 (0x90 ~ 0x9F)

10H

0x90

设置回零零点位置

0x91

设置有无限位回零

06H

0x92

触发回零

0x93

强制中断并退出回零操作

04H

0x94

读取回零参数

10H

0x95

修改原点回零超时时间

04H

0x96

读取回零状态

06H

0x97

设置上电自动回零

10H

0x98

设右限位原点位置

06H

0x99

左右限位开关



运动控制指令 (0xF0 ~ 0xFF)

10H

0xE0

开环速度模式控制

0xE1

开环绝对位置模式控制

0xE2

开环相对位置模式控制

06H

0xE3

开环脉冲模式控制

10H

0xE4

IO 启停模式

10H

0xF0

力矩模式控制

0xF1

速度模式控制

0xF2

绝对位置模式控制

0xF3

相对位置模式控制

06H

0xF4

脉冲模式控制

10H

0xF5

脉宽位置模式控制

0xF6

脉宽力矩模式控制

0xF7

脉宽速度模式控制

06H

0xF8

将当前位置角度清零

0xF9

解除堵转保护

0xFA

电机使能控制

0xFB

清除状态(堵转、刹车、失能)

0xFC

立即停止(刹车)


        5.1 指令格式说明

       Modbus-rtu 04H功能码指令格式,如表5.1.1所示: 


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数量

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

addr

04H

00H

00H

00H

00H

CRC16_H

CRC16_L


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

字节数

寄存器 1 数据

寄存器 n 数据

CRC16 校验码

高字节

低字节

高 / 低字节

高字节

低字节

addr

04H

00H

00H

00H

…

CRC16_H

CRC16_L

表5.1.1 Modbus-rtu 04H功能码指令格式说明


       Modbus-rtu 06H功能码指令格式,如表5.1.2所示: 


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

addr

06H

00H

00H

00H

00H

CRC16_H

CRC16_L


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

addr

06H

00H

00H

00H

00H

CRC16_H

CRC16_L

表5.1.2 Modbus-rtu 06H功能码指令格式说明


       Modbus-rtu 10H功能码指令格式,如表5.1.3所示: 


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数量

字节数

寄存器 1 数据

寄存器 ...n 数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

高字节

低字节

高字节

低字节

addr

10H

00H

00H

00H

00H

00H

00H

00H

00H

00H

CRC16_H

CRC16_L







上行帧 ( 上位机 <-- 驱动板 )






从机地址

功能码

寄存器起始地址

寄存器数量

CRC16 校验码






高字节

低字节

高字节

低字节

高字节

低字节






addr

10H

00H

00H

00H

00H

CRC16_H

CRC16_L






表5.1.3 Modbus-rtu 10H功能码指令格式说明


       1,从机地址范围:0~255,其中0为广播地址,1~255为从机地址(默认地址为1)

       2,功能码:用到的Modbus-rtu协议功能码有:04H、06H、10H

       3,寄存器起始:对应自定义协议的功能码(高字节没用到,补0即可)

       4,校验码:采用的校验方式是CRC16。

       5,时序要求(单条指令内):主机发送指令时,整帧数据(从 0xC5 到 0x5C)必须 连续输出,字节之间不允许超过 1 个字节周期的延时,否则可能导致从机接收失败。

       6,时序要求(指令间隔):两条完整指令之间应保持 至少 2ms 的时间间隔,以保证从机有足够时间完成上一条指令的解析与处理。

       注意:

       l 使用广播地址发送命令,从机均不应答。

       l 主机发送的从机地址,如果总线上没有匹配的从机,也不应答。

       为了方便大家熟悉和查找相关指令,我们把指令分为了四类:系统类指令、参数类指令、运动类指令、回零类指令。详细的指令描述请看下文。


        5.2 系统类指令说明


       5.2.1 校准编码器指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

01H

00H

01H

19H

CAH


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

01H

00H

01H

19H

CAH


       该指令用于校准编码器。注意:校准编码器前,请确保电机是空载状态!!! 

       寄存器数据没有用到,默认给01H。

       举个例子:

       下行帧数据为:01 06 00 01 00 01 19 CA

       上行帧数据为:01 06 00 01 00 01 19 CA


       5.2.2 复位重启指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

02H

00H

01H

E9H

CAH


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

02H

00H

01H

E9H

CAH


       该指令用于复位重启驱动板,不会修改配置参数。

       寄存器数据没有用到,默认给01H。

       举个例子:

       下行帧数据为:01 06 00 02 00 01 E9 CA

       上行帧数据为:01 06 00 02 00 01 E9 CA


       5.2.3 恢复出厂设置指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

03H

00H

01H

B8H

0AH


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

03H

00H

01H

B8H

0AH


       该指令用于恢复出厂设置,把配置参数修改为出厂默认值。

       寄存器数据没有用到,默认给01H。

       举个例子:

       下行帧数据为:01 06 00 03 00 01 B8 0A

       上行帧数据为:01 06 00 03 00 01 B8 0A


       5.2.4 参数保存指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

04H

00H

01H

09H

CBH


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

04H

00H

01H

09H

CBH


       该指令用于保存所有掉电不丢失的配置参数。

       寄存器数据没有用到,默认给01H。

       举个例子:

       下行帧数据为:01 06 00 04 00 01 09 CB

       上行帧数据为:01 06 00 04 00 01 09 CB


        5.3 参数类指令说明


       5.3.1 读取软硬件版本指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数量

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

04H

00H

20H

00H

01H

30H

00H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

字节数

寄存器 1 数据

CRC16 校验码

高字节

低字节

高字节

低字节

01H

04H

02H

Byte1

Byte2

CRC16_H

CRC16_L


       该指令用于读取驱动器软硬件版本号。

       举个例子:

       下行帧数据为:01 04 00 20 00 01 30 00

       上行帧数据为:01 04 02 0A 0A 3F 97

       Byte1:0AH(即十进制10),表示固件版本号为V1.0

       Byte2:0AH(即十进制10),表示硬件版本号为V1.0


       5.3.2 读取电机磁链指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数量

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

04H

00H

21H

00H

02H

21H

C1H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

字节数

寄存器 1 数据

寄存器 2 数据

CRC16 校验码

高 / 低字节

高 / 低字节

高字节

低字节

01H

04H

04H

Byte1~ Byte4

CRC16_H

CRC16_L


       该指令用于读取电机磁链(单位mWb)。(float → uint8_t[4])

       举个例子:

       下行帧数据为:01 04 00 21 00 02 21 C1

       上行帧数据为:01 04 04 40 97 0A 3D 98 D9

       Byte1~ Byte4:寄存器数据我们做了处理,采用大端序输出。即0x40970A3D表示电机磁链参数为4.72mWb。

       4.3.2小节有介绍:STM32(小端系统)联合体存取float和uint32_t数据简明指南。


       5.3.3 读取相电阻和相电感指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数量

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

04H

00H

22H

00H

04H

51H

C3H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

字节数

寄存器 1~4 数据

CRC16 校验码

1~4 组高 / 低字节

高字节

低字节

01H

04H

08H

Byte1~ Byte8

CRC16_H

CRC16_L


       该指令用于读取电机相电阻和相电感(含MOS内阻)。(float → uint8_t[4])

       Byte1~ Byte4:表示电机相电阻参数(单位Ω)

       Byte5~ Byte8:表示电机相电感参数(单位mH)

       举个例子:

       下行帧数据为:01 04 00 22 00 04 51 C3

       上行帧数据为:01 04 08 3F DC D7 D3 40 88 02 D4 79 B4

       Byte1~ Byte4:0x3FDCD7D3表示电机相电阻参数为1.725Ω

       Byte5~ Byte8:0x408802D4表示电机相电感参数为4.250mH

       4.3.2小节有介绍:STM32(小端系统)联合体存取float和uint32_t数据简明指南。


       5.3.4 读取相电流指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数量

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

04H

00H

23H

00H

01H

C0H

00H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

字节数

寄存器 1 数据

CRC16 校验码

高字节

低字节

高字节

低字节

01H

04H

02H

Byte1

Byte2

CRC16_H

CRC16_L


       该指令用于读取电机相电流(单位:mA)。(类型:int16_t)

       举个例子:

       下行帧数据为:01 04 00 23 00 01 C0 00

       上行帧数据为:01 04 02 00 6C B9 1D

       Byte1~ Byte2:0x006C表示电机相电流为108mA


       5.3.5 读取总线电压指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数量

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

04H

00H

24H

00H

02H

31H

C0H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

字节数

寄存器 1 数据

寄存器 2 数据

CRC16 校验码

高 / 低字节

高 / 低字节

高字节

低字节

01H

04H

04H

Byte1~ Byte4

CRC16_H

CRC16_L


       该指令用于读取驱动器总线电压(单位:V)。(float → uint8_t[4])

       举个例子:

       下行帧数据为:01 04 00 24 00 02 31 C0

       上行帧数据为:01 04 04 41 BF C7 C0 8C 3C

       Byte1~ Byte4:0x41BFC7C0表示驱动器总线电压为23.97V

       4.3.2小节有介绍:STM32(小端系统)联合体存取float和uint32_t数据简明指南。


       5.3.6 读取电流环PID参数指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数量

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

04H

00H

25H

00H

08H

E0H

07H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

字节数

寄存器 1~8 数据

CRC16 校验码

1~8 组高 / 低字节

高字节

低字节

01H

04H

10H

Byte1~ Byte16

CRC16_H

CRC16_L


       该指令用于读取电流环PID参数。(float → uint8_t[4])

       Byte1~ Byte4:表示Q轴PI参数P

       Byte5~ Byte8:表示Q轴PI参数I

       Byte9~ Byte12:表示D轴PI参数P

       Byte13~ Byte16:表示D轴PI参数I

       举个例子:

       下行帧数据为:01 04 00 25 00 08 E0 07

       上行帧数据为:01 04 10 37 27 C5 AC 35 86 37 BD 37 27 C5 AC 35 86 37 BD BB 15

       Byte1~ Byte4: 0x3727C5AC表示Q轴PI参数p为0.00001

       Byte5~ Byte8:0x358637BD表示Q轴PI参数I为0.000001

       Byte9~ Byte12:0x3727C5AC表示D轴PI参数P为0.00001

       Byte13~ Byte16:0x358637BD表示D轴PI参数I为0.000001

       4.3.2小节有介绍:STM32(小端系统)联合体存取float和uint32_t数据简明指南。


       5.3.7 读取速度环PID参数指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数量

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

04H

00H

26H

00H

06H

91H

C3H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

字节数

寄存器 1~6 数据

CRC16 校验码

1~6 组高 / 低字节

高字节

低字节

01H

04H

0CH

Byte1~ Byte12

CRC16_H

CRC16_L


       该指令用于读取速度环PID参数。(类型:uint32_t)

       Byte1~ Byte4:表示PID参数P

       Byte5~ Byte8:表示PID参数I

       Byte9~ Byte12:表示PID参数D

       举个例子:

       下行帧数据为:01 04 00 26 00 06 91 C3

       上行帧数据为:01 04 0C 00 00 00 03 00 00 00 04 00 00 00 00 70 87

       Byte1~ Byte4:0x00000004表示Q轴PI参数p为3

       Byte5~ Byte8:0x00000004表示Q轴PI参数I为4

       Byte9~ Byte12:0x00000000表示D轴PI参数P为0


       5.3.8 读取位置环PID参数指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数量

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

04H

00H

27H

00H

06H

C0H

03H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

字节数

寄存器 1~6 数据

CRC16 校验码

1~6 组高 / 低字节

高字节

低字节

01H

04H

0CH

Byte1~ Byte12

CRC16_H

CRC16_L


       该指令用于读取位置环PID参数。(类型:uint32_t)

       Byte1~ Byte4:表示PID参数P

       Byte5~ Byte8:表示PID参数I

       Byte9~ Byte12:表示PID参数D

       举个例子:

       下行帧数据为:01 04 00 27 00 06 C0 03

       上行帧数据为:01 04 0C 00 00 01 2C 00 00 00 1E 00 00 01 7C A0 C0

       Byte1~ Byte4:0x0000012C表示Q轴PI参数p为300

       Byte5~ Byte8:0x0000001E表示Q轴PI参数I为30

       Byte9~ Byte12:0x0000017C表示D轴PI参数P为380


       5.3.9 读取输入累计脉冲数指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数量

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

04H

00H

28H

00H

02H

F1H

C3H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

字节数

寄存器 1 数据

寄存器 2 数据

CRC16 校验码

高 / 低字节

高 / 低字节

高字节

低字节

01H

04H

04H

Byte1~ Byte4

CRC16_H

CRC16_L


       该指令用于读取输入累计脉冲数。(类型:uint32_t)

       举个例子:

       下行帧数据为:01 04 00 28 00 02 F1 C3

       上行帧数据为:01 04 04 00 00 C8 00 AC 44

       Byte1~ Byte4:0x0000C800表示输入累计脉冲数为51200


       5.3.10 读取电机实时转速指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数量

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

04H

00H

29H

00H

01H

E0H

02H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

字节数

寄存器 1 数据

CRC16 校验码

高字节

低字节

高字节

低字节

01H

04H

02H

Byte1

Byte2

CRC16_H

CRC16_L


       该指令用于读取电机实时转速(单位:RPM)。(类型:int16_t)

       举个例子:

       下行帧数据为:01 04 00 29 00 01 E0 02

       上行帧数据为:01 04 02 00 1F F8 F8

       Byte1~ Byte2:0x001F表示电机实时转速为31RPM


       5.3.11 读取电机实时位置指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数量

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

04H

00H

2AH

00H

02H

50H

03H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

字节数

寄存器 1 数据

寄存器 2 数据

CRC16 校验码

高 / 低字节

高 / 低字节

高字节

低字节

01H

04H

04H

Byte1~ Byte4

CRC16_H

CRC16_L


       该指令用于读取电机实时位置(51200代表一圈)。(类型:int32_t)

       举个例子:

       下行帧数据为:01 04 00 2A 00 02 50 03

       上行帧数据为:01 04 04 00 07 D0 00 17 85

       Byte1~ Byte4:0x0007D000表示电机实时位置为512000


       4.3.12 读取电机位置误差指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数量

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

04H

00H

2BH

00H

02H

01H

C3H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

字节数

寄存器 1 数据

寄存器 2 数据

CRC16 校验码

高 / 低字节

高 / 低字节

高字节

低字节

01H

04H

04H

Byte1~ Byte4

CRC16_H

CRC16_L


       该指令用于读取电机位置误差(51200代表一圈)。(类型:int32_t)

       举个例子:

       下行帧数据为:01 04 00 2B 00 02 01 C3

       上行帧数据为:01 04 04 00 00 00 00 FB 84

       Byte1~ Byte4:0x00000000表示电机实时位置为0


       5.3.13 读取电机运行状态指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数量

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

04H

00H

2CH

00H

01H

F0H

03H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

字节数

寄存器 1 数据

CRC16 校验码

高字节

低字节

高字节

低字节

01H

04H

02H

Byte1

Byte2

CRC16_H

CRC16_L


       该指令用于读取电机运行状态。(类型:uint8_t)

       Byte1:没用到,补0即可

       Byte2:表示电机运行状态,有以下可能:

       0:停止状态

       1:任务完成状态

       2:正在运行

       3:过载状态

       4:堵转状态

       5:欠压状态

       举个例子:

       下行帧数据为:01 04 00 2C 00 01 F0 03

       上行帧数据为:01 04 02 00 01 78 F0

       Byte2:0x01表示电机在任务完成状态


       5.3.14 读取电机堵转标志指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数量

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

04H

00H

2DH

00H

01H

A1H

C3H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

字节数

寄存器 1 数据

CRC16 校验码

高字节

低字节

高字节

低字节

01H

04H

02H

Byte1

Byte2

CRC16_H

CRC16_L


       该指令用于读取电机堵转标志。(类型:uint8_t)

       Byte1:没用到,补0即可

       Byte2:表示电机堵转标志,有以下可能:

       0:未堵转     1:堵转

       举个例子:

       下行帧数据为:01 04 00 2D 00 01 A1 C3

       上行帧数据为:01 04 02 00 00 B9 30

       Byte2:0x00表示电机未堵转


       5.3.15 读取堵转电流指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数量

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

04H

00H

2EH

00H

01H

51H

C3H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

字节数

寄存器 1 数据

CRC16 校验码

高字节

低字节

高字节

低字节

01H

04H

02H

Byte1

Byte2

CRC16_H

CRC16_L


       该指令用于读取堵转电流(单位:mA)。(类型:int16_t)

       举个例子:

       下行帧数据为:01 04 00 2E 00 01 51 C3

       上行帧数据为:01 04 02 05 DC BB F9

       Byte1~ Byte2:0x05DC表示堵转电流1500mA


       5.3.16 读取电机使能状态指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数量

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

04H

00H

2FH

00H

01H

00H

03H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

字节数

寄存器 1 数据

CRC16 校验码

高字节

低字节

高字节

低字节

01H

04H

02H

Byte1

Byte2

CRC16_H

CRC16_L


       该指令用于读取电机使能状态。(类型:uint8_t)

       Byte1:没用到,补0

       Byte2:表示电机使能状态,有以下可能:

       0:使能电机

       1:失能电机

       举个例子:

       下行帧数据为:01 04 00 2F 00 01 00 03

       上行帧数据为:01 04 02 00 00 B9 30

       Byte2:0x00表示失能电机


       5.3.17 读取电机到位标志指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数量

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

04H

00H

30H

00H

01H

31H

C5H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

字节数

寄存器 1 数据

CRC16 校验码

高字节

低字节

高字节

低字节

01H

04H

02H

Byte1

Byte2

CRC16_H

CRC16_L


       该指令用于读取电机到位标志。(类型:uint8_t)

       Byte1:没用到,补0

       Byte2:表示电机到位标志,有以下可能:

       0:未到位

       1:到位

       举个例子:

       下行帧数据为:01 04 00 30 00 01 31 C5 

       上行帧数据为:01 04 02 00 01 78 F0

       Byte2:0x01表示电机到位


       5.3.18 读取系统参数指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数量

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

04H

00H

31H

00H

14H

A1H

CAH


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

字节数

寄存器 1~20 数据

CRC16 校验码

1~20 组高 / 低字节

高字节

低字节

01H

04H

28H

Byte1~ Byte40

CRC16_H

CRC16_L


       该指令用于读取系统参数,这部分参数都是只读属性。

       上行帧的指令数据:

       Byte1~ Byte4:电机总线电压(单位V)(float → uint8_t[4])

       Byte5~ Byte6:读取相电流(单位mA)(类型int16_t)

       Byte7~ Byte10:电机磁链参数(单位mWb)(float → uint8_t[4])

       Byte11~ Byte14:电机相电阻参数(单位Ω)(float → uint8_t[4])

       Byte15~ Byte18:电机相电感参数(单位mH)(float → uint8_t[4])

       Byte19~ Byte20:读取实时转速(单位RPM)(类型int16_t)

       Byte21~ Byte24:读取目标位置(51200代表一圈)(类型int32_t)

       Byte25~ Byte28:读取实时位置(51200代表一圈)(类型int32_t)

       Byte29~ Byte32:读取位置误差(51200代表一圈)(类型int32_t)

       Byte33~ Byte36:读取脉冲数(类型uint32_t)

       Byte37:电机使能状态

       0:电机使能

       1:电机失能

       Byte38:电机到位标志,有以下可能:

       0:未到位

       1:到位

       Byte39:电机堵转标志,有以下可能:

       0:未堵转

       1:堵转

       Byte40:地址模式,有以下可能:

       0:从机地址模式

       1:分组地址模式

 

       举个例子:

       下行帧数据为:01 04 00 31 00 14 A1 CA

       上行帧数据为:01 04 28 41 C0 00 00 00 0F 40 88 5D 39 3F ED EB 28 40 8D 27 10 00 00 00 07 D0 00 00 07 D0 00 00 00 00 00 00 00 7D 02 00 01 00 00 B6 0E

       Byte1~ Byte4:电机总线电压 24.0V

       Byte5~ Byte6:读取相电流 15mA

       Byte7~ Byte10:电机磁链 4.26mWb

       Byte11~ Byte14:电机相电阻 1.86Ω

       Byte15~ Byte18:电机相电感 4.41mH

       Byte19~ Byte20:读取实时转速 0RPM 

       Byte21~ Byte24:读取目标位置(51200代表一圈)512000

       Byte25~ Byte28:读取实时位置(51200代表一圈)512000

       Byte29~ Byte32:读取位置误差(51200代表一圈)0

       Byte33~ Byte36:读取脉冲数 32002

       Byte37:0:电机使能

       Byte38:1:到位

       Byte39:0:未堵转

       Byte40:0:从机地址模式

       4.3.2小节有介绍:STM32(小端系统)联合体存取float和uint32_t数据简明指南。


       5.3.19 读取驱动参数指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数量

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

04H

00H

32H

00H

10H

50H

09H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

字节数

寄存器 1~16 数据

CRC16 校验码

1~16 组高 / 低字节

高字节

低字节

01H

04H

20H

Byte1~ Byte32

CRC16_H

CRC16_L


       该指令用于读取全部配置参数。

       上行帧的指令数据:

       Byte1:电机工作模式,有以下可能:(类型uint8_t)

       0:通信位置模式

       1:通信速度模式

       2:通信力矩模式

       3:脉冲模式

       4:脉宽位置模式

       5:脉宽速度模式

       6:脉宽力矩模式

       7:回零模式

       Byte2:指令回响状态,有以下可能:

       0:正常回响

       1:不回响

       Byte3~ Byte6 串口波特率(单位bps)(类型uint32_t)

       Byte7~ Byte8:CAN波特率(单位Kbps)(类型uint16_t)

       Byte9:DIR正转电平,有以下可能:

       0:高电平正转

       1:低电平正转

       Byte10:EN脚有效电平,有以下可能:

       0:EN引脚低电平使能

       1:EN引脚高电平使能

       2:EN引脚保持有效

       Byte11~ Byte12:设置的细分(类型uint16_t)

       Byte13~ Byte14:位置环最大力矩(单位:mA)(类型int32_t)

       Byte15~ Byte18:位置环PID参数P(类型uint32_t)

       Byte19~ Byte22:位置环PID参数I(类型uint32_t)

       Byte23~ Byte26:位置环PID参数D(类型uint32_t)

       Byte27~ Byte28:堵转电流(单位:mA)(类型int16_t)

       Byte29:电机堵转保护功能标志

       0:关闭堵转保护功能

       1:开启堵转保护功能

       Byte30:按键上锁状态,有以下可能:

       0:解锁

       1:上锁

       Byte31~ Byte34:速度环PID参数P(类型uint32_t)

       Byte35~ Byte38:速度环PID参数I(类型uint32_t)

       Byte39~ Byte42:速度环PID参数D(类型uint32_t)

       Byte43:自动熄屏状态,有以下可能:

       0:关闭自动熄屏

       1:开启自动熄屏

       Byte44:IO启停电平,有以下可能:

       0:低电平启动

       1:高电平启动

       举个例子:

       下行帧数据为:01 04 00 32 00 10 50 09

       上行帧数据为:01 04 20 03 00 00 01 C2 00 01 F4 00 01 00 10 0B B8 00 00 01 2C 00 00 00 1E 00 00 01 7C 05 DC 01 00 00 EB A3

       Byte1:3:脉冲模式

       Byte2:0:正常回响

       Byte3~ Byte4:串口波特率为:115200

       Byte7~ Byte8:CAN速率为:500K

       Byte9:0:高电平正转

       Byte10:1:EN引脚高电平使能

       Byte11~ Byte12:细分为:16

       Byte13~ Byte14:位置环最大力矩:3000

       Byte15~ Byte18:PID参数P为300

       Byte19~ Byte22:PID参数I为30

       Byte23~ Byte26:PID参数D为380

       Byte27~ Byte28:堵转电流1500 mA

       Byte29:1:开启堵转保护功能

       Byte30:0:按键解锁

       Byte31:保留(未用到补0)

       Byte32:0:关闭自动熄屏

       4.3.2小节有介绍:STM32(小端系统)联合体存取float和uint32_t数据简明指南。


       5.3.20 设置从机地址指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

60H

00H

02H

08H

15H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

60H

00H

02H

08H

15H


       该指令用于设置从机地址(范围:1~255)。注意:总线上不能设置两个一样的从机地址,应答会冲突。        寄存器数据高字节没有用到,默认补00H(后续不再赘述)。

       举个例子:

       下行帧数据为:01 06 00 60 00 02 08 15

       上行帧数据为:01 06 00 60 00 02 08 15

       注意:下次再想跟这个从机通信,注意从机地址要改成2了!!!


       5.3.21 设置工作模式指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

62H

00H

01H

E9H

D4H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

62H

00H

01H

E9H

D4H


       该指令用于设置工作模式,有以下可能:

       0x00:通信位置模式

       0x01:通信速度模式

       0x02:通信力矩模式

       0x03:脉冲模式

       0x04:脉宽位置模式

       0x05:脉宽速度模式

       0x06:脉宽力矩模式

       0x07:回零模式

       举个例子:

       下行帧数据为:01 06 00 62 00 01 E9 D4

       上行帧数据为:01 06 00 62 00 01 E9 D4

       新的工作模式为0x01:通信速度模式


       5.3.22 设置位置环PID参数指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数量

字节数

寄存器 1~6 数据

CRC16 校验码

高字节

低字节

高字节

低字节

1~6 组高 / 低字节

高字节

低字节

01H

10H

00H

63H

00H

06H

0CH

Byte1~ Byte12

CRC16_H

CRC16_L







上行帧 ( 上位机 <-- 驱动板 )






从机地址

功能码

寄存器起始地址

寄存器数量

CRC16 校验码






高字节

低字节

高字节

低字节

高字节

低字节






01H

10H

00H

63H

00H

06H

B0H

15H







       该指令用于设置位置环PID参数。

       下行帧的寄存器1~6数据:

       Byte1~ Byte4:PID参数P(类型uint32_t)

       Byte5~ Byte8:PID参数I(类型uint32_t)

       Byte9~ Byte12:PID参数D(类型uint32_t)

       举个例子:

       下行帧数据为:01 10 00 63 00 06 0C 00 00 01 2C 00 00 00 1E 00 00 01 7C 57 79

       上行帧数据为:01 10 00 63 00 06 B0 15

       设置的位置PID参数为:

       Byte1~ Byte4:0x0000012C表示Q轴PI参数p为300

       Byte5~ Byte8:0x0000001E表示Q轴PI参数I为30

       Byte9~ Byte12:0x0000017C表示D轴PI参数P为380


       5.3.23 设置速度/位置环最大力矩限制指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

64H

05H

DCH

CAH

DCH


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

64H

05H

DCH

CAH

DCH


       该指令用于设置速度/位置环最大力矩限制(范围:0~3000)(单位:mA)。

       举个例子:

       下行帧数据为:01 06 00 64 05 DC CA DC

       上行帧数据为:01 06 00 64 05 DC CA DC

       设置位置环最大力矩限制为0x05DC(即1500mA)


       5.3.24 设置细分指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

65H

00H

10H

98H

19H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

65H

00H

10H

98H

19H


       该指令用于设置细分(范围:1~256)。

       举个例子:

       下行帧数据为:01 06 00 65 00 10 98 19

       上行帧数据为:01 06 00 65 00 10 98 19

       设置细分为16


       5.3.25 设置目标电流指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

66H

05H

DCH

6BH

1CH


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

66H

05H

DCH

6BH

1CH


       该指令用于设置目标电流(范围:-3000~3000)(单位:mA)。

       举个例子:

       下行帧数据为:01 06 00 66 05 DC 6B 1C

       上行帧数据为:01 06 00 66 05 DC 6B 1C

       设置目标电流为0x05DC(即1500mA)


       5.3.26 设置串口波特率指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数量

字节数

寄存器 1~2 数据

CRC16 校验码

高字节

低字节

高字节

低字节

1~2 组高 / 低字节

高字节

低字节

01H

10H

00H

67H

00H

02H

04H

Byte1~ Byte4

CRC16_H

CRC16_L







上行帧 ( 上位机 <-- 驱动板 )






从机地址

功能码

寄存器起始地址

寄存器数量

CRC16 校验码






高字节

低字节

高字节

低字节

高字节

低字节






01H

10H

00H

67H

00H

02H

F0H

17H







       该指令用于设置串口波特率(范围:0~3000000)(默认:115200)(单位bps)。

       下行帧的寄存器1~2数据:

       Byte1~ Byte4:串口波特率

       举个例子:

       下行帧数据为:01 10 00 67 00 02 04 00 01 C2 00 B4 C1

       上行帧数据为:01 10 00 67 00 02 F0 17

       设置串口波特率为115200 bps


       5.3.27 设置协议指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

69H

00H

01H

98H

16H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

69H

00H

01H

98H

16H


       该指令用于设置使用正点原子自定义协议(默认)、modbus-rtu协议、canopen协议,有以下可能:

       0:使用正点原子自定义协议    1:使用modbus-rtu协议  2:使用canopen协议

       举个例子:

       下行帧数据为:01 06 00 69 00 01 98 16

       上行帧数据为:01 06 00 69 00 01 98 16

       寄存器数据为1:使用modbus-rtu协议

       注意:如果设置为0,那么modbus-rtu协议马上就不能通信了,需要通过屏幕菜单栏设置协议选择modbus;或者用正点原子自定义协议指令设置回来!!!


       5.3.28 设置堵转保护功能指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

6AH

00H

01H

68H

16H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

6AH

00H

01H

68H

16H


       该指令用于设置堵转保护功能,有以下可能:

       0:关闭堵转保护功能

       1:开启堵转保护功能

       举个例子:

       下行帧数据为:01 06 00 6A 00 01 68 16

       上行帧数据为:01 06 00 6A 00 01 68 16

       寄存器数据为1:开启堵转保护功能


       5.3.29 设置堵转电流指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

6BH

0BH

B8H

FFH

54H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

6BH

0BH

B8H

FFH

54H


       该指令用于设置堵转电流(范围:0~3000)(单位:mA)。

       举个例子:

       下行帧数据为:01 06 00 6B 0B B8 FF 54

       上行帧数据为:01 06 00 6B 0B B8 FF 54

       设置堵转电流为3000mA


       5.3.30 电机正反转DIR控制指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

6DH

00H

01H

D9H

D7H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

6DH

00H

01H

D9H

D7H


       该指令用于设置DIR引脚控制电机正反转的有效电平(仅用于脉冲模式),有以下可能:

       0:DIR引脚高电平正转

       1:DIR引脚低电平正转

       举个例子:

       下行帧数据为:01 06 00 6D 00 01 D9 D7

       上行帧数据为:01 06 00 6D 00 01 D9 D7

       寄存器数据为1:DIR引脚低电平正转


       5.3.31 设置EN引脚有效电平指令

 

下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

6EH

00H

01H

D9H

D7H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

6DH

00H

01H

D9H

D7H


       该指令设置EN引脚有效电平(仅用于脉冲模式),有以下可能:

       0:EN引脚低电平使能

       1:EN引脚高电平使能

       2:EN引脚保持有效

       举个例子:

       下行帧数据为:01 06 00 6E 00 01 29 D7

       上行帧数据为:01 06 00 6E 00 01 29 D7

       寄存器数据为1:EN引脚高电平使能


       5.3.32 设置按键锁定指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

70H

00H

01H

49H

D1H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

6DH

00H

01H

49H

D1H


       该指令用于设置按键锁定,有以下可能:

       0:按键解锁

       1:按键上锁

       举个例子:

       下行帧数据为:01 06 00 70 00 01 49 D1

       上行帧数据为:01 06 00 70 00 01 49 D1

       寄存器数据为1:按键上锁

       注意:如果设置为1,那么按键功能马上失效,需要通过屏幕菜单栏选择恢复出厂设置或者发送设置按键解锁指令,方可恢复按键功能!!!


       5.3.33 设置自动熄屏指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

71H

00H

01H

18H

11H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

71H

00H

01H

18H

11H


       该指令用于设置自动熄屏,长时间无操作会自动熄屏,有以下可能:

       0:关闭自动熄屏

       1:开启自动熄屏

       举个例子:

       下行帧数据为:01 06 00 71 00 01 18 11

       上行帧数据为:01 06 00 71 00 01 18 11

       寄存器数据为1:开启自动熄屏

       注意:如果设置为1,那么长时间无操作时会自动熄屏,可通过屏幕菜单栏自动熄屏或恢复出厂设置,也可发送关闭自动熄屏指令,恢复屏幕常亮!!!


       5.3.34 设置IO启动电平


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

72H

00H

01H

E8H

11H


上行帧 ( 上位机 <-- 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数据

CRC16 校验码

高字节

低字节

高字节

低字节

高字节

低字节

01H

06H

00H

72H

00H

01H

E8H

11H


       该指令用于设置IO启动电平,有以下可能:

       0:低电平启动

       1:高电平启动

       举个例子:

       下行帧数据为:01 06 00 72 00 01 E8 11

       上行帧数据为:01 06 00 72 00 01 E8 11

       寄存器数据为1:高电平启动


       5.3.35 设置速度环PID参数指令


下行帧 ( 上位机 --> 驱动板 )

从机地址

功能码

寄存器起始地址

寄存器数量

字节数

寄存器 1~6 数据

CRC16 校验码

高字节

低字节

高字节

低字节

1~6 组高 / 低字节

高字节

低字节

01H

10H

00H

73H

00H

06H

0CH

Byte1~ Byte12

CRC16_H

CRC16_L







上行帧 ( 上位机 <-- 驱动板 )






从机地址

功能码

寄存器起始地址

寄存器数量

CRC16 校验码






高字节

低字节

高字节

低字节

高字节

低字节






01H

10H

00H

63H

00H

06H

B0H

15H







       该指令用于设置位置环PID参数。

       下行帧的寄存器1~6数据:

       Byte1~ Byte4:PID参数P(类型uint32_t)

       Byte5~ Byte8:PID参数I(类型uint32_t)

       Byte9~ Byte12:PID参数D(类型uint32_t)

       举个例子:

       下行帧数据为:01 10 00 73 00 06 0C 00 00 01 2C 00 00 00 1E 00 00 01 7C 5A B5

       上行帧数据为:01 10 00 73 00 06 B1 D0

       设置的位置PID参数为:

       Byte1~ Byte4:0x0000012C表示Q轴PI参数p为300

       Byte5~ Byte8:0x0000001E表示Q轴PI参数I为30

       Byte9~ Byte12:0x0000017C表示D轴PI参数P为380


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

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

注册时间:2024-08-30

  • 博文量
    588
  • 访问量
    763897