文章目录
第1部分 产品介绍
MKS SERVO42E/57E 闭环步进电机是创客基地为满足市场需求,按工业级标准自主研发的一款产品。具备脉冲接口、RS485接口以及CAN接口,内置高效FOC矢量算法,采用高精度编码器,通过位置反馈,有效防止电机丢步。适合小型机械臂,3D打印机,雕刻机,写字机,非标自动化产品以及电子竞赛等应用。
第2部分 串行数据格式说明
1.下行帧头FA,上行帧头FB。
2.从机地址(addr)范围00~255,默认地址为01。
其中 00 为广播地址;
地址01~10可在显示屏菜单UartAddr选项设置;
大于10的地址需通过串口指令设置。
3.功能码(code)执行相应指令,例如0x80执行校准指令。
4.指令数据或返回数据,详见《串口指令说明》。
5.CRC校验码为 CHECKSUM 8bit
例如 指令“FA 01 80 00 CRC”
CRC = (0xFA + 0x01 + 0x80 + 0x00) & 0xFF = 0x17B & 0xFF = 0x7B
6.上位机发指令时,单条指令(FA … CRC)字节之间的时序必须连续,不能有超过一个字节延时,否则下位机可能接收指令失败。
注意:使用广播地址或分组地址发送命令,从机不应答。
第3部分 串行指令说明
注意:使用广播地址或分组地址发送命令,从机不应答。
3.1 读取参数指令
1.发送FA 01 30 CRC,读取进位制多圈编码器值。
注:编码器单圈值范围 0~0x4000
返回FB 01 30,int32_t类型进位值,uint16_t类型当前编码器值和校验码CRC。
记录上电后(使能或不使能),编码器记录的电机转动范围。
低16位记录当前编码器值,范围为00x4000,表示0360°。
高32位记录编码器进位值,即圈数。
进位规则:当编码器值大于0x4000,进位值加1
当编码器值小于0,进位值减1
例如:
当前编码器值为0x3FF0,正转一圈后(+0x4000),多圈编码器值为0x13FF0。
当前编码器值为0x3FF0,反转一圈后(-0x4000),多圈编码器值为0xFFFFFFFF3FF0。
2.发送FA 01 31 CRC,读取累加制多圈编码器值。
注:编码器单圈值范围 0~0x4000
返回FB 01 31,int48_t类型多圈编码器值和校验码CRC。
记录上电后(使能或不使能),编码器记录的电机转动范围。
累加规则: 正转一圈,多圈编码器值 +0x4000;
反转一圈,多圈编码器值 -0x4000;
例如:
当前编码器值为0x3FF0,正转一圈后(+0x4000),多圈编码器值为0x000000007FF0。
当前编码器值为0x3FF0,反转一圈后(-0x4000),多圈编码器值为0xFFFFFFFFFFF0。
注:按坐标值相对/绝对运动时,使用该编码器值作为坐标。
3.发送FA 01 32 CRC,读取电机实时转速。
返回FB 01 32, int16_t类型电机实时转速和校验码CRC。
注:转速单位为RPM, 正转时转速大于0,反转时转速小于0。
4.发送FA 01 33 CRC,读取输入累计脉冲数。
返回FB 01 33,int32_t类型的输入累计脉冲数和校验码CRC。
5.发送FA 01 34 CRC,读取IO端口状态。
返回FB 01 34,uint8_t类型的端口状态和校验码CRC。
PEND 1:已到位 0:未到位
ALM 1:未告警 0:已告警
6.发送FA 01 39 CRC,读取位置角度误差。
返回FB 01 39,int32_t类型的位置角度误差和校验码CRC,也就是你想要控制的位置角度减去电机的实时角度位置得到的差值,单位:051200表示0360°,比如误差为1°时,数值为51200/360°= 142.22,以此类推。
7.发送FA 01 3A CRC,读取闭环驱动板的使能状态。
返回FB 01 3A,uint8_t类型的闭环驱动板的使能状态和校验码CRC,也就是En引脚的使能状态。用串口控制时,可以通过该命令获取驱动板的使能状态。
已使能 :返回FB 01 3A 01 37
没使能 :返回FB 01 3A 00 36
8.发送FA 01 3D CRC,解除堵转状态。
当电机发生堵转时,发送该命令可以解除当前堵转状态。
解除堵转后,如果再次发生堵转,仍然会触发堵转保护。
解除成功 :返回 FB 01 3D 01 3A
解除失败 :返回 FB 01 3D 00 39
注:也可通过 “EN电平无效方式”解除堵转状态。
9.发送FA 01 3E CRC,读取堵转标志位。
返回FB 01 3E,uint8_t的堵转标志和校验码CRC,当电机发生堵转,会置位堵转标志,通过该命令可以获取到电机是否发生了堵转。如果使能了堵转保护选项,发生堵转后,驱动板会自动关闭驱动器。
堵转 :返回 FB 01 3E 01 3B
没堵转 :返回 FB 01 3E 00 3A
3.2 设置系统参数指令
1.校准电机
校准仅判断电机转向和编码器关系,即电机顺时针转时,编码器值增加或减少,如电机相线按出厂默认接线,无需校准。
发送FA 01 80 00 CRC校准电机。
比如:
发送FA 01 80 00 7B,校准电机。
校准中…, 返回 FB 01 80 00 7C;
校准成功,返回 FB 01 80 01 7D;
校准失败,返回 FB 01 80 02 7E。
注:校准时电机会转动15度,完成后自动复位重启。
2.设置工作模式
发送FA 01 82 __ CRC,设置工作模式。
X0 脉冲+脉冲 开环FOC模式 (X=0 有编码器 X=1 无编码器)
X1 脉冲+方向 开环FOC模式 (X=0 有编码器 X=1 无编码器)
02 脉冲+脉冲 闭环FOC模式
03 脉冲+方向 闭环FOC模式(默认)
X4 RS485总线 开环FOC模式 (X=0 有编码器 X=1 无编码器)
05 RS485总线 闭环FOC模式
比如:
发送FA 01 82 05 82,RS485总线 闭环模式。
设置成功,返回 FB 01 82 01 7F;
设置失败,返回 FB 01 82 00 7E。
注1:脉冲控制模式,最高输入频率300KHz
总线控制模式,最高转速3000RPM
注2:X=0 有编码器,即电机轴有磁铁,驱动板安装在背后,可以读取编码器值
X=1 无编码器,即电机轴无磁铁,驱动板可任意安装,不能读取编码器值
3.设置工作电流
发送FA 01 83 __ CRC,设置电流值。
SERVO42E 最大工作电流 3000mA (默认1600mA)
SERVO57E 最大工作电流 5200mA (默认3200mA)
比如:
发送FA 01 83 02 30 B0,设置电流560mA。
设置成功,返回 FB 01 83 01 80;
设置失败,返回 FB 01 83 00 7F。
4.设置细分值
发送FA 01 84 MS CRC,设置细分值。(默认16细分)
MS取值范围(10进制)如下:
0,2,4,8,16,32,64,128,
5,10,20,25,40,50,100,200
注:0对应256细分
比如:
发送FA 01 84 10 8F,设置为16细分
发送FA 01 84 0A 89,设置为10细分
发送FA 01 84 00 7F,设置为256细分
以此类推…
设置成功,返回 FB 01 84 01 81
设置失败,返回 FB 01 84 00 80
5.设置En 引脚有效电平
发送FA 01 85 __ CRC,设置En 引脚有效电平。
00 对应低电平使能(L)(默认值)
01 对应高电平使能(H)
02 对应一直使能(Hold)
比如:
发送FA 01 85 00 80,设置为低电平使能。
设置成功,返回 FB 01 85 01 82;
设置失败,返回 FB 01 85 00 81。
注1:设置成功后,延迟100ms才能接收脉冲信号。
注2:仅对脉冲控制模式有效。
6.设置电机旋转方向
发送FA 01 86 __ CRC,设置电机旋转方向。
00 对应顺时针旋转 (默认值)
01 对应逆时针旋转
比如:
发送FA 01 86 00 81,设置为顺时针旋转。
设置成功,返回 FB 01 86 01 83;
设置失败,返回 FB 01 86 00 82。
注:该指令也可改变总线方式控制电机的运行方向。
7.设置脉冲延时
发送FA 01 87 __ CRC,设置脉冲延时。
00 0ms
01 4ms
02 20ms (默认值)
03 40ms
比如:
发送FA 01 87 01 83,设置脉冲延时4ms。
设置成功,返回 FB 01 87 01 84;
设置失败,返回 FB 01 87 00 83。
8.设置堵转保护功能
发送FA 01 88 __ CRC,设置堵转保护功能。
堵转保护后,可以通过使能信号或串口指令解除堵转保护状态。
00关闭堵转保护功能
01使能堵转保护功能 (默认值)
比如:
发送FA 01 88 00 83,设置关闭堵转保护功能。
设置成功,返回 FB 01 88 01 85;
设置失败,返回 FB 01 88 00 84。
注:堵转保护后,可以通过“指令(3D)方式”或“EN电平无效方式”解除堵转状态。
9.设置堵转超差值
发送FA 01 89 __ CRC,设置超差值。
value 默认值 0x64。范围(0-0x7FFF)
当误差超过value值后,触发堵转保护,电机松轴。
value = 0x64 对应角度为180度
value = 0xC8 对应角度为360度
依此类推。
设置成功,返回 FB 01 89 01 86;
设置失败,返回 FB 01 89 00 85。
10.设置串口波特率
发送FA 01 8A __ CRC,设置串口波特率。
01 9600
02 19200
03 25000
04 38400 (默认值)
05 57600
06 115200
07 256000
比如:发送FA 01 8A 06 8B,设置波特率为115200。
设置成功,返回 FB 01 8A 01 87;
设置失败,返回 FB 01 8A 00 86。
11.设置从机地址
发送FA 01 8B __ CRC,设置从机地址。
比如:
发送FA 01 8B 02 88,设置从机地址为0x02。
发送FA 01 8B 50 D7,设置从机地址为0x50。
…
设置成功,返回 FB 01 8B 01 88;
设置失败,返回 FB 01 8B 00 87。
注:地址范围00~0xFF,00为广播地址,01为默认地址。
12.设置从机是否应答 和从机不主动发起数据模式
发送FA 01 8C XX CRC,设置从机是否应答
发送FA 01 8C XX YY CRC,设置从机是否应答 和 不主动发起数据模式
XX = 0 从机无应答 XX = 1 从机有应答 (默认1)
YY = 0 不主动发起数据 YY = 1 主动发起数据 (默认1)
比如:
发送FA 01 8C 00 87,设置从机无应答。
发送FA 01 8C 01 88,设置从机有应答。
发送FA 01 8C 00 00 87,设置从机无应答,不主动发起数据。
发送FA 01 8C 01 01 89,设置从机有应答,主动发起数据。
设置成功,返回 FB 01 8C 01 89;
设置失败,返回 FB 01 8C 00 88。
注:设置从机无应答后,可以通过功能码“F1”查询电机运行状态。
无应答和不主动发起数据区别:
以位置控制模式1为例:
主机发送FA 01 FD 02 80 02 00 00 FA 00 76
a.无应答模式下(XX=0 ,YY=0或1)
从机不返回任何信息
b.不主动发起数据模式下(XX=1,YY=0)
从机立即返回 位置控制开始01或失败00
c.默认模式下(XX=1 ,YY=1)
从机立即返回 位置控制开始01或失败00
等电机运行完成或触碰限位停止后,返回02或03
13.设置MODBUS-RTU通讯协议
发送FA 01 8E __ CRC,设置从机是否使用RTU协议。(默认关闭)
比如:
发送FA 01 8E 00 89,关闭MODBUS-RTU通讯协议。
发送FA 01 8E 01 8A,开启MODBUS-RTU通讯协议。
设置成功,返回 FB 01 8E 01 8B;
设置失败,返回 FB 01 8E 00 8A。
14.设置总线模式启动时是否锁轴
发送FA 01 8F __ CRC,设置总线模式电机启动是否锁轴。(默认锁轴)
比如:
发送FA 01 8F 00 8A,总线模式电机启动时不锁轴。
发送FA 01 8F 01 8B,总线模式电机启动时锁轴。(默认)
设置成功,返回 FB 01 8F 01 8C
设置失败,返回 FB 01 8F 00 8B
15.设置分组地址
发送FA 01 8D __ CRC,设置分组地址。
比如:
发送FA 01 8D 64 EC,设置分组地址为0x64。
…
设置成功,返回 FB 01 8D 01 8A;
设置失败,返回 FB 01 8D 00 89。
假设有6个电机,地址设置如下
发送 FA 01 FD 01 2C 64 00 00 0C 80 15 电机1 转1圈
发送 FA 00 FD 01 2C 64 00 00 0C 80 14 电机1-6 转1圈
发送 FA 50 FD 01 2C 64 00 00 0C 80 64 电机1-3 转1圈
发送 FA 51 FD 01 2C 64 00 00 0C 80 65 电机4-6 转1圈
注意:使用分组地址发送命令,从机不应答。
3.3 写IO端口指令
1.发送FA 01 36 status CRC,写IO端口状态。
alm_mask 0: 不写入ALM IO端口(ALM默认告警信号)
1: 将ALM值写入 ALM IO端口
2: ALM IO端口值保持不变
pend_mask 0: 不写入PEND IO端口(PEND默认到位信号)
1: 将PEND值写入 PEND IO端口
2: PEND IO端口值保持不变
ALM ALM端口 写入值 (0/1)
PEND PEND端口 写入值 (0/1)
写成功,返回 FB 01 36 01 43
写失败,返回 FB 01 36 00 42
注意: ALM IO端口写入1 ,ALM 对应光耦断开
PEND IO端口写入1 ,PEND对应光耦闭合
3.4 设置限位指令
1.设置限位相关参数。
设置限位参数指令如下:
homeTrig 限位开关闭合时的有效电平
0:闭合时低电平 (默认值)
1:闭合时高电平
homeDir 限位归零方向
0: 顺时针(默认值)
1:逆时针
homeSpeed 限位归零速度
0~3000 (RPM) ,数值越大,归零速度越快 (默认值 = 60)
EndLimit 限位使能
0: 关闭限位功能(默认值)
1: 开启限位功能
设置失败,返回 FB 01 90 00 8C。
设置成功,返回 FB 01 90 01 8D;
限位使能说明:
- EndLimit = 1时,总线控制模式下,左限位触发,电机不再往左运行,右限位触发,电机不再往右运行。
- 初次使用限位功能或改变限位参数后,需执行一次限位归零(“91”指令)。
- 限位功能在脉冲控制模式下无效。
2.限位回零参数
设置无限位开关回零参数指令如下:
retValue 范围:0~0xFFFFFFFF (默认值 = 0x2000,返回半圈,180度)
hmMode 0: 有限位开关回零模式 (默认值)
1: 无限位开关回零模式
hmTrig 0: 关闭回零触发功能 (默认值,通过91指令回零)
1: 上电自动回零
2: En信号触发回零(仅脉冲控制模式有效)
脉冲控制模式下,hmTrig = 2时,当En信号线产生200ms 宽度非使能电平,触发电机回零 。(脉冲识别范围150ms~250ms)
当En低电平使能电机时,产生200ms高电平信号,触发电机回零。
当En高电平使能电机时,产生200ms低电平信号,触发电机回零。
设置失败,返回 FB 01 94 00 90;
设置成功,返回 FB 01 94 01 91;
3.设置无限位开关回零电流
设置无限位开关回零电流指令如下:
SERVO42E 最大回零电流3000mA (默认300mA)
SERVO57E 最大回零电流 5200mA (默认600mA)
设置失败,返回 FB 01 93 00 8F;
设置成功,返回 FB 01 93 01 90;
注1:无限位开关回零时,电机以固定扭矩(nullHmMa) 一直运行,直到碰到障碍物停止,然后反向运行一段距离(retValue)后停止,停止点即为零点。
注2: 无限位回零电流值只在无限位回零运行时有效, 应尽量设置为较小电流,避免损坏电机。
4.限位回零指令
该指令可以控制电机以设定的方向,速度回到限位开关位置。
回限位指令如下:
限位回零失败,返回 FB 01 91 00 8D;
限位回零开始,返回 FB 01 91 01 8E;
限位回零完成,返回 FB 01 91 02 8F。
注意:有限位回零时,如果限位开关已经处于闭合状态,电机会往homeDir反方向转动一段距离(94指令设置),然后再回零。
5.直接回零指令
该指令可以直接设置当前位置为零点。
直接回零指令如下:
直接回零失败,返回 FB 01 92 00 8E;
直接回零成功,返回 FB 01 92 01 8F;
6.限位重映射指令
仅对42E有效,将En端口映射为右限位端口, En 引脚有效电平会自动设置为 Hold 模式。当将En端口映射为右限位端口,脉冲控制模式失效,尽可通过总线控制模式控制
设置映射指令如下:
1:右限位映射开启
设置失败,返回 FB 01 9E 00 CRC
设置成功,返回 FB 01 9E 01 CRC
3.5 恢复默认参数和复位重启指令
1.发送FA 01 3F CRC,恢复默认参数。
比如:
发送FA 01 3F 3A,恢复默认参数;
恢复成功,返回 FB 01 3F 01 3C;
恢复失败,返回 FB 01 3F 00 3B。
注1:恢复默认参数后,驱动板自动重启。
2.发送FA 01 41 CRC,复位重启电机。
比如:
发送FA 01 41 3C,复位重启电机;
复位成功,返回 FB 01 41 01 3E;
复位失败,返回 FB 01 41 00 3D。
注:该指令仅复位重启电机,不会修改配置参数。
3.6 读取版本信息和校准状态
1.发送FA 01 40 CRC,读取版本信息。
返回数据格式如下
series = 1 E系列步进电机
series = 0 D系列步进电机
cal = 1 电机顺时针转时,编码器值增加
cal = 2 电机顺时针转时,编码器值减少
固件版本 firmVer[0] = 1 firmVer[1] = 0 firmVer[2] = 0
对应版本V1.0.0
硬件版本对应如下
3.7 多指令数据帧
多指令数据帧,即一帧数据最多包含5条指令,从机根据地址判断执行哪条指令。
多指令数据帧格式如下:
说明:
1.多指令数据帧长度共52字节。
2.每条指令X长度10字节,当不足10字节时,添加0补充。
3.指令X为对应的普通指令,去掉帧头(FA)和校验码。
4.如果指令X,指令Y (X<Y) 的从机地址相同,只执行指令X。
5.多指令数据帧从机不应答。
例如,发送以下多指令数据帧,可以控制5个电机执行不同动作(16细分)
FC
01 F6 00 32 0A 00 00 00 00 00
02 F6 80 64 20 00 00 00 00 00
03 FD 01 2C 02 00 04 E2 00 00
04 F4 02 58 64 00 19 00 00 00
05 F5 04 B0 C8 00 0C 80 00 00
11
电机1 以速度模式(speed=0x32,acc=0x0A)连续正转
电机2 以速度模式(speed=0x64,acc=0x20)连续反转
电机3 以位置模式1(speed=0x12C,acc=0x02)正转100圈
电机4 以位置模式2(speed=0x258,acc=0x64)正转100圈
电机5 以位置模式3(speed=0x4B0,acc=0xC8)运行到坐标0xC8000
3.8 配置/读取所有参数指令
- 发送FA 01 46 XX XX … XX CRC 设置所有配置参数,具体参数格式见下表。
设置失败,返回 FB 01 46 00 42
设置成功,返回 FB 01 46 01 43
配置默认参数指令如下:
FA 01 46 03 FF 0C 80 10 00 00 02 01 04 01 00 01 01 00 00 01 FF 00 00 00 3C 00 FF 00 00 20 00 00 00 02 58 9E
(最后一字节9E 为校验码)
2.发送FA 01 47 42读取所有配置参数。
读取失败,返回 FB 01 47 FF 42
读取成功,返回 FB 01 47 XX XX … XX CRC ,具体参数格式见下表。
注:xx/xx 数据对应 57E/42E 参数
3.发送FA 01 48 43读取所有状态参数。
读取失败,返回 FB 01 48 FF 43
读取成功,返回 FB 01 48 XX XX … XX CRC ,具体参数格式见下表。
读取所有状态参数指令(48)
第4部分 串行控制电机运行说明
注意:本章节指令只在总线控制模式下有效。
4.1 曲线加减速参数说明
转速单位(RPM)说明:Revolutions Per Minute的缩写,即转每分钟。
曲线加减速控制电机运行,涉及到速度(speed)和加速度(acc)两个参数,下面分别说明:
1.速度参数 speed
速度参数speed 取值范围0 – 3000 (RPM),数值越大,电机转速越快。
如果设置的速度超过了控制模式的最大速度,电机以该控制模式的最大速度运行。
注意:速度值以16/32/64细分标定,其他细分的速度需以16细分作为基准计算,
比如设定 speed = 600
8细分时,转速 1200(RPM)
16/32/64细分时,转速 600(RPM)
128细分时,转速 75(RPM)
2.加速度参数 acc
加速度参数acc取值范围0 – 255,数值越大,电机 加/减 速越快。
当acc=0时,电机不做加减速,直接以设定的速度speed运行。
① 加速阶段
假设 t1 时刻,当前速度为Vt1 (Vt1 < speed)
t2 时刻,速度为Vt2
t2 – t1 = (256-acc)* 50 (uS)
则Vt2 计算如下:
Vt2 = Vt1 + 1 (Vt2 <= speed)
例如,设定acc=236,speed=3000,电机从静止开始加速,时间t和电机速度关系如下
即经过3000ms后,电机从静止加速到3000RPM。
当acc=255时,电机从静止加速到3000速,需要150ms。
②减速阶段
假设 t1 时刻,当前速度为Vt1 (Vt1 > speed)
t2 时刻,当前速度为Vt2
t2 – t1 = (256-acc)* 50 (uS)
则Vt2 计算如下:
Vt2 = Vt1 - 1 (Vt2 >= speed)
4.2 电机查询/使能指令
1.发送FA 01 F1 EC 查询串口控制模式下电机运行状态。
查询失败, 返回 FB 01 F1 00 ED;
电机停止运行,返回 FB 01 F1 01 EE;
电机加速运行,返回 FB 01 F1 02 EF;
电机减速运行,返回 FB 01 F1 03 F0;
电机全速运行,返回 FB 01 F1 04 F1;
电机归零运行,返回 FB 01 F1 05 F2;
电机校准运行,返回 FB 01 F1 06 F3;
注1:本指令只在总线控制模式下有效。
注2:本指令在脉冲控制模式下仅可查询电机校准运行。
2.发送FA 01 F3 0_ CRC修改串口控制模式下驱动板的使能状态。
在总线控制模式下,驱动板的使能状态不再受En引脚的电平控制,而是利用该命令进行控制。
发送FA 01 F3 00 CRC,关闭驱动板;
发送FA 01 F3 01 CRC,使能驱动板;
修改成功,返回 FB 01 F3 01 F0;
修改失败,返回 FB 01 F3 00 EF;
注意:本指令只在总线控制模式下有效。
4.3 电机紧急停止指令
发送FA 01 F7 CRC,令电机紧急停止。
例如:发送 FA 01 F7 F2
紧急停止成功,返回 FB 01 F7 01 F4
紧急停止失败,返回 FB 01 F7 00 F3
注意:电机转速超过1000RPM,不建议使用紧急停止指令!
4.4 多电机控制说明
1.使用广播地址,可以控制所有电机执行相同命令。
2.使用分组地址,可以控制A组电机执行动作a,控制B组电机执行动作b。
3.使用多指令数据帧,可以控制电机执行各不相同的动作。
4.5 速度控制模式指令
速度控制模式下,可以控制电机以设定的加速度和速度一直运行。
1.速度控制模式运行指令
运行指令格式如下:
字节4:最高位表示方向,低4位和字节5一起表示速度
字节5:字节5和字节4的低4位一起表示速度
参数说明如下:
addr 从机地址,取值范围0-255
dir 方向,取值范围0/1 (CCW/CW)
speed 速度,取值范围0-3000
acc 加速度,取值范围0-255
比如:
发送FA 01 F6 02 80 02 75,电机以acc=2,speed=640(RPM)速度正转
发送FA 01 F6 82 80 02 F5,电机以acc=2,speed=640(RPM)速度反转
运行成功,返回 FB 01 F6 01 F3
运行失败,返回 FB 01 F6 00 F2
注意:本指令只在总线控制模式下有效。
2.速度控制模式停止指令
指令格式
FA 01 F6 00 00 acc CRC
停止指令可以控制电机减速缓慢停止,也可以控制电机立即停止。
当设定acc ≠ 0 时,电机减速缓慢停止
当设定acc = 0 时,电机立即停止
① 减速缓慢停止指令 (acc ≠ 0)
比如:
发送 FA 01 F6 00 00 02 F3
让电机以减速度acc=2 停止转动
② 立即停止指令 (acc = 0)
比如:
发送 FA 01 F6 00 00 00 F1
让电机立即停止转动
注意:电机转速超过1000RPM,不建议使用立即停止指令!
速度停止失败,返回 FB 01 F6 00 F2
速度停止开始,返回 FB 01 F6 01 F3
速度停止完成,返回 FB 01 F6 02 F3
注意:本指令只在总线控制模式下有效。
3.速度控制模式参数“保存/清除”指令
发送FA 01 FF C8 C2,保存速度控制模式的方向,速度和加速度参数;
发送FA 01 FF CA C4,清除速度控制模式的方向,速度和加速度参数;
注:可以让电机每次上电都直接按照保存的方向,速度和加速度一直转动。
也就是说,如果你想要电机一上电就以一定的速度/加速度运行,你可以先发送速度控制模式运行指令,让电机按想要的方向/速度/加速度运行,接着利用该命令保存参数,重新上电后,电机就会按照保存的参数运行了。
如果不想上电自动运行了,发送清除指令即可。
保存/清除开始,返回 FB 01 FF 01 FC
保存/清除失败,返回 FB 01 FF 00 FB
保存/清除完成,返回 FB 01 FF 02 FD
注意:本指令只在总线控制模式下有效。
4.6 位置控制模式1 按脉冲数相对运动
位置控制模式1,可以控制电机以设定的加速度和速度,根据脉冲数相对运行到指定的位置。
1.位置控制模式1 运行指令
指令格式如下
字节4:最高位表示方向,低4位和字节5一起表示速度
字节5:字节5和字节4的低4位一起表示速度
参数说明如下:
addr 从机地址,取值范围0-255
dir 方向,取值范围0/1 (CCW/CW)
speed 速度,取值范围0 – 3000 (RPM)
acc 加速度,取值范围0 - 255
relPulses 脉冲数,取值范围0 – 0xFFFFFFFF
比如:
发送FA 01 FD 02 80 02 00 00 FA 00 76,电机以acc=2,speed=0x280,正向转动20圈 (16细分);
发送FA 01 FD 82 80 02 00 00 FA 00 F6,电机以acc=2,speed=0x280,反向转动20圈 (16细分);
位置控制失败,返回 FB 01 FD 00 F9
位置控制开始,返回 FB 01 FD 01 FA
位置控制完成,返回 FB 01 FD 02 FB
触碰限位停止,返回 FB 01 FD 03 FC
注:可以通过指令“8C”设置是否返回运行状态。
2.位置控制模式1 停止指令
停止指令格式FA 01 FD 00 00 acc 00 00 00 00 CRC
停止指令可以控制电机减速缓慢停止,也可以控制电机立即停止。
当设定acc ≠ 0 时,电机减速缓慢停止
当设定acc = 0 时,电机立即停止
① 减速缓慢停止指令 (acc ≠ 0)
比如:
发送 FA 01 FD 00 00 02 00 00 00 00 FA
让电机以减速度acc=2 停止转动
② 立即停止指令 (acc = 0)
比如:
发送 FA 01 FD 00 00 00 00 00 00 00 F8
让电机立即停止转动
注意:电机转速超过1000RPM,不建议使用立即停止指令!
位置停止失败,返回 FB 01 FD 00 F9
位置停止开始,返回 FB 01 FD 01 FA
位置停止完成,返回 FB 01 FD 02 FB
位置限位终止,返回 FB 01 FD 03 FB
注意:本指令只在总线控制模式下有效。
4.7 位置控制模式2 按脉冲数绝对运动
位置控制模式2,可以控制电机以设定的加速度和速度,根据脉冲数绝对运行到指定的位置。
注: 使用该指令前,需执行一次归零(指令0x91或0x92)。
1.位置控制模式2 运行指令
指令格式如下
参数说明如下:
addr 从机地址,取值范围0-255
speed 速度,取值范围0 – 3000 (RPM)
acc 加速度,取值范围0 - 255
absPulses 绝对脉冲数,取值范围int32_t(-2147483647,+2147483647)
比如,当前绝对脉冲数为任意值
发送FA 01 FE 02 58 02 00 00 0C 80 CRC
电机以速度600(RPM),加速度2,绝对运行到0x0C80。
即电机运行完成后,当前绝对脉冲数变为0x0C80。
比如,当前绝对脉冲数为任意值
发送FA 01 FE 02 58 02 FF FF F3 80 CRC
电机以速度600(RPM),加速度2,绝对运行到 -0x0C80。
即电机运行完成后,当前绝对脉冲数变为 -0x0C80。
位置控制失败,返回 FB 01 FE 00 FA
位置控制开始,返回 FB 01 FE 01 FB
位置控制完成,返回 FB 01 FE 02 FC
触碰限位停止,返回 FB 01 FE 03 FD
注:可以通过指令“8C”设置是否返回运行状态。
2.位置控制模式2 停止指令
停止指令格式FA 01 FE 00 00 acc 00 00 00 00 CRC
停止指令可以控制电机减速缓慢停止,也可以控制电机立即停止。
当设定acc ≠ 0 时,电机减速缓慢停止
当设定acc = 0 时,电机立即停止
① 减速缓慢停止指令 (acc ≠ 0)
比如:
发送 FA 01 FE 00 00 02 00 00 00 00 EB
让电机以减速度acc=2 停止转动
② 立即停止指令 (acc = 0)
比如:
发送 FA 01 FE 00 00 00 00 00 00 00 E9
让电机立即停止转动
注意:电机转速超过1000RPM,不建议使用立即停止指令!
位置停止失败,返回 FB 01 FE 00 FA
位置停止开始,返回 FB 01 FE 01 FB
位置停止完成,返回 FB 01 FE 02 FC
位置限位终止,返回 FB 01 FE 03 FD
注意:本指令只在总线控制模式下有效。
4.8 位置控制模式3 按坐标值相对运动
位置控制模式3,可以控制电机以设定的加速度和速度,根据坐标值相对运行到指定的位置。
注:坐标值即为累加制多圈编码器值(16384/圈),以指令“31”读取。
1.位置控制模式3 运行指令
指令格式如下
参数说明如下:
addr 从机地址,取值范围0-255
speed 速度,取值范围0 – 3000 (RPM)
acc 加速度,取值范围0 - 255
relAxis 相对坐标值,取值范围int32_t(-2147483647,+2147483647)
比如,当前坐标为0x8000
发送FA 01 F4 02 58 02 00 00 40 00 8B
电机以速度600(RPM),加速度2,相对运行0x4000。
即电机运行完成后,当前坐标变为0xC000。
比如,当前坐标为0x8000
发送FA 01 F4 02 58 02 FF FF C0 00 09
电机以速度600(RPM),加速度2,相对运行 -0x4000。
即电机运行完成后,当前坐标变为0x4000。
注: “31”指令可以读取坐标值
位置控制失败,返回 FB 01 F4 00 F0
位置控制开始,返回 FB 01 F4 01 F1
位置控制完成,返回 FB 01 F4 02 F2
触碰限位停止,返回 FB 01 F4 03 F3
注:可以通过指令“8C”设置是否返回运行状态。
2.位置控制模式3 停止指令
停止指令格式FA 01 F4 00 00 acc 00 00 00 00 CRC
停止指令可以控制电机减速缓慢停止,也可以控制电机立即停止。
当设定acc ≠ 0 时,电机减速缓慢停止
当设定acc = 0 时,电机立即停止
① 减速缓慢停止指令 (acc ≠ 0)
比如:
发送 FA 01 F4 00 00 02 00 00 00 00 E1
让电机以减速度acc=2 停止转动
② 立即停止指令 (acc = 0)
比如:
发送 FA 01 F4 00 00 00 00 00 00 00 DF
让电机立即停止转动
注意:电机转速超过1000RPM,不建议使用立即停止指令!
位置停止失败,返回 FB 01 F4 00 E1
位置停止开始,返回 FB 01 F4 01 E2
位置停止完成,返回 FB 01 F4 02 E3
位置限位终止,返回 FB 01 FD 03 FB
注意:本指令只在总线控制模式下有效。
4.9 位置控制模式4 按坐标值绝对运动
位置控制模式4,可以控制电机以设定的加速度和速度,根据坐标值绝对运行到指定的位置。
注1:坐标值即为累加制多圈编码器值(16384/圈),以指令“31”读取。
注2:支持速度和坐标实时更新,即在上一条指令运行时,可以发新指令改变速度和坐标。
1.位置控制模式4 运行指令
指令格式如下
参数说明如下:
addr 从机地址,取值范围0-255
speed 速度,取值范围0 – 3000 (RPM)
acc 加速度,取值范围0 - 255
absAxis 绝对坐标值,取值范围int32_t(-2147483647,+2147483647)
比如,当前坐标为任意值
发送FA 01 F5 02 58 02 00 00 40 00 CRC
电机以速度600(RPM),加速度2,绝对运行到0x4000。
即电机运行完成后,当前坐标变为0x4000。
比如,当前坐标为任意值
发送FA 01 F5 02 58 02 FF FF C0 00 CRC
电机以速度600(RPM),加速度2,绝对运行到 -0x4000。
即电机运行完成后,当前坐标变为 -0x4000。
位置控制失败,返回 FB 01 F5 00 F1
位置控制开始,返回 FB 01 F5 01 F2
位置控制完成,返回 FB 01 F5 02 F3
触碰限位停止,返回 FB 01 F5 03 F4
注:可以通过指令“8C”设置是否返回运行状态。
2.位置控制模式4 停止指令
停止指令格式FA 01 F5 00 00 acc 00 00 00 00 CRC
停止指令可以控制电机减速缓慢停止,也可以控制电机立即停止。
当设定acc ≠ 0 时,电机减速缓慢停止
当设定acc = 0 时,电机立即停止
③ 减速缓慢停止指令 (acc ≠ 0)
比如:
发送 FA 01 F5 00 00 02 00 00 00 00 E2
让电机以减速度acc=2 停止转动
④ 立即停止指令 (acc = 0)
比如:
发送 FA 01 F5 00 00 00 00 00 00 00 E0
让电机立即停止转动
注意:电机转速超过1000RPM,不建议使用立即停止指令!
位置停止失败,返回 FB 01 F5 00 F1
位置停止开始,返回 FB 01 F5 01 F2
位置停止完成,返回 FB 01 F5 02 F3
位置限位终止,返回 FB 01 FD 03 FB
注意:本指令只在总线控制模式下有效。
下一篇:《MKS SERVO42E&57E 闭环步进电机_MKS SERVO42E&57E 闭环步进电机_系列3 MODBUS指令说明》
欢迎加入MKS 闭环步进电机技术交流 Q群(948665794)
欢迎光临 创客基地 B站:https://space.bilibili.com/393688975
欢迎光临 创客基地 淘宝店:https://makerbase.taobao.com/
网盘资料下载:https://pan.baidu.com/s/1kRJBl8JTGw-hifs0gMLtrQ?pwd=jad9
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明