• MKS SERVO42&57D 闭环步进电机_系列3 串口(RS485)指令说明


    第1部分 产品介绍
    MKS SERVO 28D/35D/42D/57D 系列闭环步进电机是创客基地为满足市场需求而自主研发的一款产品。具备脉冲接口和RS485/CAN串行接口,支持MODBUS-RTU通讯协议,内置高效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
      注意:使用广播地址发送命令,从机不应答。

    第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。
    在这里插入图片描述
    6. 发送FA 01 39 CRC,读取位置角度误差。
    返回FB 01 39,int16_t类型的位置角度误差和校验码CRC,也就是你想要控制的位置角度减去电机的实时角度位置得到的差值,单位:065535表示0360°,比如误差为1°时,数值为65536/360°= 182.444,以此类推。

    7. 发送FA 01 3A CRC,读取闭环驱动板的使能状态。
    返回FB 01 3A,uint8_t类型的闭环驱动板的使能状态和校验码CRC,也就是En引脚的使能状态。用串口控制时,可以通过该命令获取驱动板的使能状态。
    已使能 :返回FA 01 3A 01 37
    没使能 :返回FA 01 3A 00 36

    8. 发送FA 01 3B CRC,读取单圈上电自动回零状态。
    返回FB 01 3B,uint8_t类型的回零状态值和校验码CRC。
    执行回零中: 返回FB 01 3B 00 37
    回零成功: 返回FB 01 3B 01 37
    回零失败: 返回FB 01 3B 02 37

    9. 发送FA 01 3D CRC,解除堵转状态。
    当电机发生堵转时,发送该命令可以解除当前堵转状态。
    解除堵转后,如果再次发生堵转,仍然会触发堵转保护。
    解除成功 :返回 FB 01 3D 01 3A
    解除失败 :返回 FB 01 3D 00 39

    10. 发送FA 01 3E CRC,读取堵转标志位。
    返回FB 01 3E,uint8_t的堵转标志和校验码CRC,当电机发生堵转,会置位堵转标志,通过该命令可以获取到电机是否发生了堵转。如果使能了堵转保护选项,发生堵转后,驱动板会自动关闭驱动器。
    堵转 :返回 FB 01 3E 01 3B
    没堵转 :返回 FB 01 3E 00 3A

    11. 发送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;
    注意:本指令只在“SR_OPEN/SR_CLOSE/SR_vFOC”模式下有效。

    3.2 设置参数指令
    1. 校准编码器 (对应屏幕上的“Cal”选项)
    发送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。
    校准编码器前,请确保电机没带负载!!!建议校准好以后再装进机器。
    注:校准完成后,驱动板会自动复位重启。

    2. 设置工作模式 (对应屏幕上的“Mode”选项)
    发送FA 01 82 __ CRC,设置工作模式。
    00 CR_OPEN (脉冲接口开环模式)
    01 CR_CLOSE (脉冲接口闭环模式)
    02 CR_vFOC (脉冲接口FOC模式)
    03 SR_OPEN (串行接口开环模式)
    04 SR_CLOSE (串行接口闭环模式)
    05 SR_vFOC (串行接口FOC模式)
    比如:
    发送FA 01 82 02 7F,设置CR_vFOC模式。
    设置成功,返回 FB 01 82 01 7F;
    设置失败,返回 FB 01 82 00 7E。

    3. 设置电流档位Ma (对应屏幕上的“Ma”选项)
    发送FA 01 83 __ __ CRC,设置电流值。
    在这里插入图片描述
    SERVO42D 最大工作电流 3000mA
    SERVO57D 最大工作电流 5200mA
    比如:
    发送FA 01 83 02 30 B0,设置电流560mA。
    设置成功,返回 FB 01 83 01 80;
    设置失败,返回 FB 01 83 00 7F。
    注: 开环模式 工作电流不变,恒定为Ma
    闭环模式 工作电流不变,恒定为Ma
    FOC模式 工作电流可变,最大值为Ma

    4. 设置任意细分 (对应屏幕上的“MStep”选项)
    发送FA 01 84 MS CRC,设置1~256任意细分。
    可以在MStep选项看到设置的细分。
    比如:
    发送FA 01 84 07 86,修改为7细分;
    发送FA 01 84 4E CD,修改为78细分;
    发送FA 01 84 00 7F,修改为256细分。
    以此类推…
    设置成功,返回 FB 01 84 01 81;
    设置失败,返回 FB 01 84 00 80。

    5. 设置En 引脚有效电平 (对应屏幕上的“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。

    6. 设置电机旋转正方向 (对应屏幕上的“Dir”选项)
    发送FA 01 86 __ CRC,设置电机旋转正方向。
    00 对应顺时针旋转
    01 对应逆时针旋转
    比如:
    发送FA 01 86 00 81,设置为顺时针旋转。
    设置成功,返回 FB 01 86 01 83;
    设置失败,返回 FB 01 86 00 82。
    注:此参数只对脉冲接口有效,串行接口电机转向由指令确定。

    7. 设置自动熄屏功能 (对应屏幕上的“AutoSDD”选项)
    发送FA 01 87 __ CRC,设置自动熄屏功能。
    00 关闭自动熄屏功能
    01 使能自动熄屏功能
    比如:
    发送FA 01 87 01 83,使能自动熄屏功能。
    设置成功,返回 FB 01 87 01 84;
    设置失败,返回 FB 01 87 00 83。

    8. 设置堵转保护功能 (对应屏幕上的“Protect”选项)
    发送FA 01 88 __ CRC,设置堵转保护功能。
    堵转保护后,可以通过Enter按键或串口指令解除堵转保护状态。
    00关闭堵转保护功能
    01使能堵转保护功能
    比如:
    发送FA 01 88 00 83,设置关闭堵转保护功能。
    设置成功,返回 FB 01 88 01 85;
    设置失败,返回 FB 01 88 00 84。
    注:堵转保护后,可以通过Enter按键或指令解除堵转保护状态。

    9. 设置细分插补功能 (对应屏幕上的“MPlyer”选项)
    发送FA 01 89 __ CRC,设置细分插补功能。
    00关闭内部的 256 细分插补功能
    01使能内部的 256 细分插补功能
    比如:
    发送FA 01 89 00 84,设置关闭细分插补功能。
    设置成功,返回 FB 01 89 01 86;
    设置失败,返回 FB 01 89 00 85。

    10. 设置串口波特率 (对应屏幕上的“UartBaud”选项)
    发送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. 设置从机地址 (对应屏幕上的“UartAddr”选项)
    发送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。
    注1:地址范围00~0xFF,00为广播地址,01为默认地址。
    注2:设置大于10的地址,也会在UartAddr选项末尾显示。

    12. 设置从机是否应答 (对应屏幕上的“UartRSP”选项)
    发送FA 01 8C __ CRC,设置从机是否应答。
    比如:
    发送FA 01 8C 00 87,设置从机无应答。
    发送FA 01 8C 01 88,设置从机有应答。
    设置成功,返回 FB 01 8C 01 89;
    设置失败,返回 FB 01 8C 00 88。
    注:设置从机无应答后,可以通过功能码“F1”查询电机运行状态。

    13. 设置MODBUS-RTU通讯协议 (对应屏幕上的“MB_RTU”选项)
    发送FA 01 8E __ CRC,设置从机是否应答。
    比如:
    发送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圈
    注意:使用分组地址发送命令,从机不应答。

    16. 发送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;
    注意:本指令只在“SR_OPEN/SR_CLOSE/SR_vFOC”模式下有效。

    3.3 设置限位指令
    1. 设置限位相关参数。(对应屏幕“HmTrigHmDirHmSpeed”选项)
    设置限位参数指令如下:
    在这里插入图片描述
    homeTrig 限位开关闭合时的有效电平
    0:闭合时低电平
    1:闭合时高电平
    homeDir 限位归零方向
    0: 顺时针
    1:逆时针
    homeSpeed 限位归零速度
    0~3000 (RPM) ,数值越大,归零速度越快
    设置失败,返回 FB 01 90 00 8C。
    设置成功,返回 FB 01 90 01 8D;

    2. 限位归零指令
    该指令可以控制电机以设定的方向,速度回到限位开关位置。
    回限位指令如下:
    在这里插入图片描述
    限位归零失败,返回 FB 01 91 00 8D;
    限位归零开始,返回 FB 01 91 01 8E;
    限位归零完成,返回 FB 01 91 02 8F。
    注意:如果限位开关已经处于闭合状态,电机会往homeDir反方向转动,直到限位开关断开,然后再归零。

    3. 直接归零指令
    该指令可以直接设置当前位置为零点。
    直接归零指令如下:
    在这里插入图片描述
    直接归零失败,返回 FB 01 92 00 8E;
    直接归零成功,返回 FB 01 92 01 8F;

    3.4 设置单圈回零参数指令
    **1. 设置单圈回零相关参数。(对应屏幕“0_Mode、Set 0、0_Speed、0_Dir”选项)
    设置单圈回零参数指令如下:

    在这里插入图片描述
    mode: 回零模式
    0:Disable
    1:DirMode
    2: NearMode
    enable: 设置0点
    0: 清除0点
    1: 设置0点
    speed: 回零速度
    0 ~ 4 (数值越大,速度越快)
    dir: 回零方向
    0: CW
    1: CCW
    设置失败,返回 FB 01 9A 00 CRC
    设置成功,返回 FB 01 9A 01 CRC

    3.5 恢复默认参数指令
    1. 发送FA 01 3F CRC,恢复默认参数。(对应屏幕上的“Restore”选项;)
    比如:
    发送FA 01 3F 3A,恢复默认参数;
    恢复成功,返回 FB 01 3F 01 3C;
    恢复失败,返回 FB 01 3F 00 3B。
    注1:恢复默认参数后,驱动板自动重启,需重新校准电机。
    注2:先按住“Next”键,再上电,待LED灯亮,也可恢复默认参数。

    3.6 读取版本信息
    1. 发送FA 01 40 CRC,读取版本信息。(对应屏幕上的“About”选项)
    在这里插入图片描述
    3.7 多指令数据帧
    多指令数据帧,即一帧数据最多包含5条指令,从机根据地址判断执行哪条指令。
    多指令数据帧格式如下:
    在这里插入图片描述
    说明:
    1.多指令数据帧长度共52字节。
    2.每条指令X长度10字节,当不足10字节时,添加0补充。
    3.指令X为对应的普通指令,去掉帧头(FA)和校验码。
    4.如果指令X,指令Y (X 5.多指令数据帧从机不应答。
    例如,发送以下多指令数据帧,可以控制5个电机执行不同动作(16细分)
    在这里插入图片描述
    电机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

    第4部分 串行控制电机运行说明
    注:本章节指令只在“SR_OPEN/SR_CLOSE/SR_vFOC”模式下有效。
    4.1 曲线加减速参数说明
    转速单位(RPM)说明:Revolutions Per Minute的缩写,即转每分钟。
    曲线加减速控制电机运行,涉及到速度(speed)和加速度(acc)两个参数,下面分别说明:

    1. 速度参数 speed
    速度参数speed 取值范围0 – 3000 (RPM),数值越大,电机转速越快。
    控制模式和最大速度如下表:
    在这里插入图片描述
    如果设置的速度超过了控制模式的最大速度,电机以该控制模式的最大速度运行。
    注意:速度值以16/32/64细分标定,其他细分的速度需以16细分作为基准计算,
    比如设定 speed = 1200
    8细分时,转速 2400(RPM)
    16/32/64细分时,转速 1200(RPM)
    128细分时,转速 150(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. 速度控制模式运行指令
    运行指令格式如下:
    在这里插入图片描述
    字节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
    注意:本指令只在“SR_OPEN/SR_CLOSE/SR_vFOC”模式下有效。

    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
    注意:本指令只在“SR_OPEN/SR_CLOSE/SR_vFOC”模式下有效。

    3. 速度控制模式参数“保存/清除”指令
    发送FA 01 FF C8 C2,保存速度控制模式的方向,速度和加速度参数;
    发送FA 01 FF CA C4,清除速度控制模式的方向,速度和加速度参数;
    注:可以让电机每次上电都直接按照保存的方向,速度和加速度一直转动。
    也就是说,如果你想要电机一上电就以一定的速度/加速度运行,你可以先发送速度控制模式运行指令,让电机按想要的方向/速度/加速度运行,接着利用该命令保存参数,重新上电后,电机就会按照保存的参数运行了。
    如果不想上电自动运行了,发送清除指令即可。
    保存/清除成功,返回 FB 01 FF 01 FC;
    保存/清除失败,返回 FB 01 FF 00 FB;
    注意:本指令只在“SR_OPEN/SR_CLOSE/SR_vFOC”模式下有效。

    4.3 位置控制模式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
    pulses 脉冲数,取值范围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
    注:可以通过菜单 “UartRSP”或指令“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
    注意:本指令只在“SR_OPEN/SR_CLOSE/SR_vFOC”模式下有效。

    4.4 位置控制模式2 按坐标值相对运动
    注1:坐标值即为累加制多圈编码器值(16384/圈),以指令“31”读取。
    注2:该控制模式下,坐标值会有+15左右误差!建议以 “64细分”运行,以减小误差。
    位置控制模式2,可以控制电机以设定的加速度和速度,根据坐标值相对运行到指定的位置。

    1. 位置控制模式2 运行指令
    指令格式如下:
    在这里插入图片描述
    参数说明如下:
    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
    注:可以通过菜单 “UartRSP”或指令“8C”设置是否返回运行状态。

    2. 位置控制模式2 停止指令
    停止指令格式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
    注意:本指令只在“SR_OPEN/SR_CLOSE/SR_vFOC”模式下有效。

    4.5 位置控制模式3 按坐标值绝对运动
    注1:坐标值即为累加制多圈编码器值(16384/圈),以指令“31”读取。
    注2:该控制模式下,坐标值会有+15左右误差!建议以 “64细分”运行,以减小误差。
    位置控制模式3,可以控制电机以设定的加速度和速度,根据坐标值绝对运行到指定的位置。

    1. 位置控制模式3 运行指令
    指令格式如下:
    在这里插入图片描述
    参数说明如下:
    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
    注:可以通过菜单 “UartRSP”或指令“8C”设置是否返回运行状态。

    2. 位置控制模式3 停止指令
    停止指令格式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
    注意:本指令只在“SR_OPEN/SR_CLOSE/SR_VFOC”模式下有效。

    第5部分 多电机同步工作说明
    1. 使用广播地址,可以控制所有电机执行相同命令。
    2. 使用分组地址,可以控制A组电机执行动作a,控制B组电机执行动作b。
    3. 使用多指令数据帧,可以控制电机执行各不相同的动作。

    注:本文同样适合后续产品MKS SERVO28D/35D闭环步进电机
    欢迎加入MKS 闭环步进电机技术交流 Q群(948665794)
    下一篇:《MKS SERVO42&57D 闭环步进电机_系列4 MODBUS指令说明》

  • 相关阅读:
    【问题解决】发现Web应用程序源代码泄露模式
    Redis五种基本数据类型-String
    openEuler 22.03 安装及配置Gitlab容器
    长连接和短连接
    【 C++ 】红黑树
    C# 集合(四) —— Set类
    HTML仿腾讯微博首页(Dreamweaver网页作业)
    内核定时器
    JVM类加载双亲委派机制在漏洞利用时的使用
    这个项目,荣获“绽放杯”一等奖!
  • 原文地址:https://blog.csdn.net/gjy_skyblue/article/details/130914334