第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 __