磁编码 SMSMB 舵机 - 内存表解析¶
适用于 SMSMB 系列串行舵机,使用 MODBUS-RTU 标准协议。MODBUS 保持寄存器为 16 位,双字节字段按高字节在前传输;「地址PLC」为对应的 MODBUS 保持寄存器地址(4xxxx)。
1 舵机通信协议¶
舵机使用MODBUS-RTU标准协议,出厂时的串口默认配置,波特率默认为115200,数据位 8,无校验,停止位 1;波特率可配置范围9600~256Kbps,默认通信地址(站号)为 1。
完整协议帧格式与指令集见通信协议。
2 舵机内存表定义¶
2.1 版本信息¶
| 地址DEC | 地址HEX | 地址PLC | 功能名称 | 字节数 | 初始值 | 权限 | 取值范围 | 单位 | 说明 |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 0x0 | 40001 | 固件版本号 | 2 | – | 只读 | |||
| 1 | 0x1 | 40002 | 伺服版本号 | 2 | – | 只读 | |||
| 2 | 0x2 | 40003 | 固件发布日期(年) | 2 | – | 只读 | |||
| 3 | 0x3 | 40004 | 固件发布日期(月) | 2 | – | 只读 |
2.2 EPROM配置¶
| 地址DEC | 地址HEX | 地址PLC | 功能名称 | 字节数 | 初始值 | 权限 | 取值范围 | 单位 | 说明 |
|---|---|---|---|---|---|---|---|---|---|
| 10 | 0x0A | 40011 | ID | 2 | 1 | 读写 | 1~247 | 号 | 总线上唯一的身份识别码,同一总线不可出现重复ID,0号(0x00)为广播ID |
| 11 | 0x0B | 40012 | 波特率 | 2 | 2 | 读写 | 0~9 | 无 | 0-9分别代表波特率: 256000(0),128000(1),115200(2),57600(3),56000(4),38400(5),19200(6),14400(7),9600(8),4800(9) |
| 12 | 0x0C | 40013 | 返回延时 | 2 | 500 | 读写 | 0~500 | 1us | 0表示最少返回延时,最大可设置返回延时500us |
| 13 | 0x0D | 40014 | 最小角度限制 | 2 | 0 | 读写 | 0~4095 | 0.0879度 | 设置运动行程最小值限制,取值小于最大角度限制,多圈绝对位置控制时此值为0 |
| 14 | 0x0E | 40015 | 最大角度限制 | 2 | 4095 | 读写 | 0~4095 | 0.0879度 | 设置运动行程最大值限制,取值大于最小角度限制,多圈绝对位置控制时此值为0 |
| 15 | 0x0F | 40016 | 位置校正 | 2 | 0 | 读写 | -2047~2047 | 0.0879度 | 校正表示范围为-2047~2047,故障复位(134)写4自动计算中位(2048)校正值后存储于此地址 |
| 16 | 0x10 | 40017 | 运行模式 | 2 | 0 | 读写 | 0~4 | 无 | 0:伺服模式 1:恒速模式 2:预留 3:特殊模式(到目标位置自动关闭扭矩)4:步进模式 |
| 17 | 0x11 | 40018 | 位置闭环P 比例系数 | 2 | – | 读写 | 0~254 | 无 | 控制电机的比例系数 |
| 18 | 0x12 | 40019 | 位置闭环D 微分系数 | 2 | – | 读写 | 0~254 | 无 | 控制电机的微分系数 |
| 19 | 0x13 | 40020 | 位置闭环I 积分系数 | 2 | 0 | 读写 | 0~254 | 无 | 控制电机的积分系数 |
| 20 | 0x14 | 40021 | 速度闭环P 比例系数 | 2 | – | 读写 | 0~254 | 无 | 电机恒速模式(模式1)下,速度环比例系数 |
| 21 | 0x15 | 40022 | 速度闭环I 积分系数 | 2 | – | 读写 | 0~254 | 无 | 电机恒速模式(模式1)下,速度环积分系数 |
2.3 SRAM控制¶
| 地址DEC | 地址HEX | 地址PLC | 功能名称 | 字节数 | 初始值 | 权限 | 取值范围 | 单位 | 说明 |
|---|---|---|---|---|---|---|---|---|---|
| 128 | 0x80 | 40129 | 目标位置 | 2 | 0 | 读写 | -32768~32767 | 0.0879度 | 绝对位置控制方式,最大对应最大有效角度 |
| 129 | 0x81 | 40130 | 扭矩开关 | 2 | 0 | 读写 | 0~1 | 无 | 写0:关闭扭力输出;写1:打开扭力输出 |
| 130 | 0x82 | 40131 | 加速度 | 2 | 加速度默认值 | 读写 | 0~65535 | 8.79度/秒² | 如设置为0则按舵机最大加速度变速,上电由“加速度默认值(405)”赋值 |
| 131 | 0x83 | 40132 | 运行速度 | 2 | 速度默认值 | 读写 | 0~65535 | 0.732RPM | 上电由“速度默认值(406)”赋值 |
| 132 | 0x84 | 40133 | 扭矩限制 | 2 | 扭矩限制默认值 | 读写 | 0~1000 | 0.1% | 上电初始值会由扭矩限制默认值(0x194)赋值,用户可程序修改此值来控制最大扭矩的输出,注意设置此扭矩限制值会同时影响转动速度,线性比例减小最高空载转速 |
| 133 | 0x85 | 40134 | 锁标志 | 2 | 1 | 读写 | 0~1/128 | 无 | 写0关闭EPROM写入锁,写入EPROM地址的值掉电保存;写1打开写入锁,写入EPROM地址的值掉电不保存;写128关闭出厂参数写入锁 |
| 134 | 0x86 | 40135 | 故障复位 | 2 | 0 | 读写 | 0~65535 | 无 | 对应位被置1复位相应故障,复位成功相应位被置0,详见特殊字节位解析 |
2.4 SRAM反馈¶
| 地址DEC | 地址HEX | 地址PLC | 功能名称 | 字节数 | 初始值 | 权限 | 取值范围 | 单位 | 说明 |
|---|---|---|---|---|---|---|---|---|---|
| 256 | 0x100 | 40257 | 伺服状态 | 2 | 0 | 只读 | – | 无 | 对应位被置1表示相应错误出现,详见特殊字节位解析 |
| 257 | 0x101 | 40258 | 当前位置 | 2 | 0 | 只读 | – | 0.0879度 | 反馈当前所处位置;绝对位置控制方式,最大值对应最大有效角度 |
| 258 | 0x102 | 40259 | 当前速度 | 2 | 0 | 只读 | – | 0.732RPM | 反馈当前电机转动的速度 |
| 259 | 0x103 | 40260 | 输出PWM | 2 | 0 | 只读 | – | 0.1% | 当前控制输出驱动电机的电压占空比 |
| 260 | 0x104 | 40261 | 当前电压 | 2 | 0 | 只读 | – | 0.1V | 当前舵机工作电压 |
| 261 | 0x105 | 40262 | 当前温度 | 2 | 0 | 只读 | – | ℃ | 当前舵机内部工作温度 |
| 262 | 0x106 | 40263 | 移动标志 | 2 | 0 | 只读 | – | 无 | 舵机在运动时标志为1,舵机到达目标并且停止时为0 |
| 263 | 0x107 | 40264 | 当前电流 | 2 | 0 | 只读 | – | 6.5mA | 最大可测量电流为 500 * 6.5mA= 3250mA |
2.5 出厂参数¶
| 地址DEC | 地址HEX | 地址PLC | 功能名称 | 字节数 | 初始值 | 权限 | 取值范围 | 单位 | 说明 |
|---|---|---|---|---|---|---|---|---|---|
| 384 | 0x180 | 40385 | 移动检测阀值 | 2 | – | 默认 | – | 无 | 舵机出厂默认参数 |
| 385 | 0x181 | 40386 | D 控制时间 | 2 | – | 默认 | – | 无 | 舵机出厂默认参数 |
| 386 | 0x182 | 40387 | 最大速度限制 | 2 | – | 默认 | 0~32767 | 0.732RPM | 舵机出厂默认参数 |
| 387 | 0x183 | 40388 | H桥死区时间 | 2 | – | 默认 | 舵机出厂默认参数 | ||
| 388 | 0x184 | 40389 | 加速度限制 | 2 | – | 默认 | 0~65535 | 8.79度/秒² | 舵机出厂默认参数 |
| 389 | 0x185 | 40390 | 启动扭矩 | 2 | – | 默认 | 0~1000 | 0.1% | 设置舵机的最小输出启动扭矩,设1000 = 100% * 堵转扭力 |
| 390 | 0x186 | 40391 | 顺时针不灵敏区 | 2 | – | 默认 | 0~32 | 0.0879度 | |
| 391 | 0x187 | 40392 | 逆时针不灵敏区 | 2 | – | 默认 | 0~32 | 0.0879度 | |
| 392 | 0x188 | 40393 | 相位 | 2 | – | 默认 | 0~255 | 无 | 特殊功能字节,无特别需求不可修改,详见特殊字节位解析 |
| 393 | 0x189 | 40394 | 保护开关 | 2 | – | 默认 | 0~255 | 无 | 对应位设置1为开启相应保护,对应位设置0为关闭相应保护,详见特殊字节位解析 |
| 394 | 0x18A | 40395 | LED报警条件 | 2 | – | 默认 | 0~255 | 无 | 对应位设置1为开启闪灯报警,对应位设置0为关闭闪灯报警,详见特殊字节位解析 |
| 395 | 0x18B | 40396 | 最高温度上限 | 2 | – | 默认 | 0~100 | ℃ | 最高工作温度限制,如设置为70 则最高温度为70摄氏度,设置精度为1摄氏度 |
| 396 | 0x18C | 40397 | 最高输入电压 | 2 | – | 默认 | 最低输入电压~360 | 0.1V | 最高输入电压如设置为80,则最高工作电压限制为8.0V,设置精度为0.1V |
| 397 | 0x18D | 40398 | 最低输入电压 | 2 | – | 默认 | 0~最高输入电压 | 0.1V | 最低输入电压如设置为40,则最低工作电压限制为4.0V,设置精度为0.1V |
| 398 | 0x18E | 40400 | 过载电流 | 2 | – | 默认 | 0~511 | 6.5mA | 舵机工作过载保护电流 |
| 399 | 0x18F | 40401 | 过流保护时间 | 2 | – | 默认 | 0~5000 | 1ms | 工作电流超出过载电流的最长工作时间 |
| 400 | 0x190 | 40402 | 保护扭矩 | 2 | – | 默认 | 0~1000 | 0.1% | 进入过载保护后输出扭矩,如设200表示20%的最大扭矩 |
| 401 | 0x191 | 40403 | 过载扭矩 | 2 | – | 默认 | 0~1000 | 0.1% | 启动过载保护的最大扭力阀值,如设800表示80%的最大扭矩 |
| 402 | 0x192 | 40404 | 过载保护时间 | 2 | – | 默认 | 0~5000 | 1ms | 舵机扭矩超出过载扭矩的最长工作时间 |
| 403 | 0x193 | 40405 | 角度分辨率 | 2 | 1 | 默认 | 1~128 | 无 | 对传感器最小分辨角度的放大系数,修改此值可以扩展控制圈数 |
| 404 | 0x194 | 40406 | 扭矩限制默认值 | 2 | 1000 | 默认 | 0~1000 | 0.1% | 扭矩限制上电默认值 |
| 405 | 0x195 | 40407 | 加速度默认值 | 2 | – | 默认 | 0~65535 | 8.79度/秒² | 加速度上电默认值 |
| 406 | 0x196 | 40408 | 速度默认值 | 2 | – | 默认 | 0~32767 | 0.732RPM | 速度上电默认值 |
3 特殊字节解释¶
3.1 舵机相位¶
位数/位权重:说明
- BIT0(1):驱动方向相位; (0)正向,(1)反向
- BIT1(2):驱动桥模式; (0)无刷,(1)有刷,重启生效
- BIT2(4):扭矩自动开关; (0)自动开启,(1)指令开启,固件>=20.9版本
- BIT3(8):状态自动复位; (0)自动复位,(1)指令复位,固件>=20.9版本
- BIT4(16):角度反馈模式; (0)反馈单圈角度,(1)反馈全角度
- BIT5(32):----
- BIT6(64):PWM频率,(0)24kHz,(1)16kHz
- BIT7(128):位置反馈方向相位,(0)正向,(1)反向
提示
如果同时设置多个位,舵机的相位值为各个位值之和。例如:原相位值为0,舵机运行反向,则相位值为128+1=129;
3.2 舵机状态¶
舵机状态:0表示正常,1表示异常
位数/位权重:说明
- BIT0(1):电压状态
- BIT1(2):磁编码状态
- BIT2(4):温度状态
- BIT3(8):电流状态
- BIT4(16):扭矩状态:0表示扭矩关闭,1表示扭矩打开
- BIT5(32):负载状态
提示
如果同时有多种状态,舵机的状态值为各个位值之和。例如:电压过压/欠压与舵机过热,则舵机状态值为4+1=5;
3.3 保护开关¶
卸载条件:0表示关闭,1表示开启
位数/位权重:说明
- BIT0(1):电压保护
- BIT1(2):磁编码保护
- BIT2(4):过热保护
- BIT3(8):过流保护
- BIT4(16):----
- BIT5(32):负载过载
提示
如果同时设置多个位,舵机的卸载条件值为各位值之和。例如:电压保护与过热保护同时开启,则卸载条件值为4+1=5;
3.4 LED报警条件¶
LED报警条件:0表示关闭,1表示开启
位数/位权重:说明
- BIT0(1):电压报警
- BIT1(2):磁编码报警
- BIT2(4):过热报警
- BIT3(8):过流报警
- BIT4(16):----
- BIT5(32):负载过载报警
提示
如果同时设置多个位,舵机的LED报警条件值为各位值之和。例如:电压报警与过热报警同时开启,则报警条件值为4+1=5;
3.5 故障复位¶
故障复位:0无效,1表示复位
位数/位权重:说明
- BIT0(1):复位过载故障; 自动复位开启,反向目标与关闭扭矩开关可复位故障
- BIT1(2):复位过流故障; 自动复位开启,反向目标与关闭扭矩开关可复位故障
- BIT2(4):中位设置,当前位置设置为2048中位
- BIT3(8):----
- BIT4(16):----
- BIT5(32):复位过压/欠压,电压恢复正常,状态复位写32复位过压/欠压状态;自动复位开启,电压恢复正常自动复位
- BIT6(64):复位过热状态,温度恢复正常,状态复位写64复位过热状态;自动复位开启,温度恢复正常自动复位
- BIT7(128):复位磁编码状态,磁编码连接正常,状态复位写128复位磁编码状态;自动复位开启,磁编码连接正常自动复位
提示
如果同时设置多个位,复位过载故障与复位过流故障的值为各位值之和。例如:复位过载故障同时复位过流故障,则复位故障值为1+2=3;
不要跨系列套用地址
其他系列即使使用相同地址,含义也可能不同(例如 HLS 系列地址 44–45 为目标电流,而 SMSMB 系列地址 132–133 为扭矩限制)。请返回通信协议选择正确的内存表。