MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例

第1部分 产品介绍

MKS SERVO 28D/35D/42D/57D 系列闭环步进电机是创客基地为满足市场需求而自主研发的一款产品。具备脉冲接口和RS485/CAN串行接口,支持MODBUS-RTU通讯协议,内置高效FOC矢量算法,采用高精度编码器,通过位置反馈,有效防止电机丢步。适合小型机械臂,3D打印机,雕刻机,写字机,自动化产品以及电子竞赛等应用。
硬件开源,性价比高!
MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第1张图片

第2部分 相关资料下载

2.1 MODBUS调试助手

百度网盘:
https://pan.baidu.com/s/1tBCuDIfBAIRMms82FlLdag?pwd=mks1
MKS闭环步进驱动资料 -> 通用工具软件

2.2 Modbus Poll示例

百度网盘:
https://pan.baidu.com/s/1tBCuDIfBAIRMms82FlLdag?pwd=mks1
MKS闭环步进驱动资料 -> Modbus Poll_MKS

第3部分 参数配置

3.1 电机参数配置

  1. 选择控制模式: 菜单 → Mode → SR_vFOC
  2. 设置波特率: 菜单 → UartBaud → 38400
  3. 设置从机地址: 菜单 → UartAddr → 01
  4. 选择RTU模式: 菜单 → MB_RTU → Enable

3.2 MODBUS调试助手设置

  1. 运行MODBUS调试助手;
  2. 点击“设置串口”,如下图红框1所表示;
  3. 在弹出的“串行口设置”中,选择如下参数:
    选择串行口:(COMxx)
    选择波特率:38400
    选择奇偶校验:No parity(无)
    选择数据位:8
    选择停止位:1
    如下图红框2所示
  4. 点击“确定”,如下图红框3所示
  5. 点击“打开串口”,如下图红框4所示
    MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第2张图片

第4部分 读取/设置电机参数

4.1 读取参数指令

以“读取累加制多圈编码器值”为例,指令格式如下
MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第3张图片

  1. 输入485地址1,寄存器地址49,寄存器个数3,如下图红框1所示;
  2. 点击“读取”,如下图红框2所示;
  3. 发送缓冲区数据如下图红框3所示;
  4. 接收缓冲区数据如下图红框4所示;
    读出编码器值为0x000000002189
    MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第4张图片
    Modbus Poll示例见“01_F4(31)读取编码器值(累加制).mbp”

4.2 设置参数指令

以设置电流参数为例(对应屏幕上的“Ma”选项)
指令格式如下:
MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第5张图片

  1. 输入485地址1,寄存器地址131,寄存器值1789,如下图红框1所示;
  2. 点击“发送”,如下图红框2所示;
  3. 发送缓冲区数据如下图红框3所示;
  4. 接收缓冲区数据如下图红框4所示;
  5. 电机屏幕菜单选项“Ma”,可以查看刚设置的电流值1789mA,如下图红框5所示。 MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第6张图片
    Modbus Poll示例见“14_F6(83)设置工作电流.mbp”

4.3 读取IO端口状态

端口状态定义如下:
MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第7张图片
(注:28D/35D/42D只能读取到IN_1端口)
指令格式如下
MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第8张图片

  1. 输入485地址1,寄存器地址52,寄存器个数1,如下图红框1所示;
  2. 点击“读取”,如下图红框2所示;
  3. 发送缓冲区数据如下图红框3所示;
  4. 接收缓冲区数据如下图红框4所示;
    读出编码器值为0x000F,即4个端口均为高电平。
    MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第9张图片

第5部分 电机限位归零运行

(对应屏幕上的“ Go Home ”选项)
57D电机的拨码开关PIN3,PIN2拨到ON状态。
57D电机,建议把电流设置为3200mA
限位触发电平,限位方向,限位速度可通过屏幕菜单“HmTrig、HmDir、HmSpeed”设置,也可通过串行指令设置(功能码0x90)。
这里使用默认参数。
指令格式如下:
MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第10张图片
5. 输入485地址1,寄存器地址145,寄存器值1,如下图红框1所示;
6. 点击“发送”,如下图红框2所示;
7. 电机开始归零运行,屏幕显示“Home…”
8. 此时将IN_1端口置低电平(可以用地线触碰IN_1端口)
9. 电机完成归零,屏幕显示“Home Ok”
10. 发送缓冲区数据如下图红框3所示;
11. 接收缓冲区数据如下图红框4所示;

MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第11张图片
电机屏幕显示过程如下图:
MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第12张图片
Modbus Poll示例见“24_F6(91) 执行限位回零.mbp”

第6部分 电机速度模式运行

注意:57D电机,建议把电流设置为3200mA
速度模式指令格式如下:
MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第13张图片

6.1 速度模式运行和停止

6.1.1速度模式运行

电机以速度300RPM, 加速度2运行

  1. 输入485地址1,寄存器地址246,寄存器值00 02 01 2C,如下图红框1所示;
  2. 点击“发送”,如下图红框2所示;
  3. 电机开始运行;
  4. 发送缓冲区数据如下图红框3所示;
  5. 接收缓冲区数据如下图红框4所示;
    MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第14张图片

Modbus Poll示例见“29_F16(F6) 电机运行_速度模式.mbp”

6.1.2速度模式停止

电机以速加速度200停止

  1. 输入485地址1,寄存器地址246,寄存器值00 C8 00 00,如下图红框1所示;
  2. 点击“发送”,如下图红框2所示;
  3. 电机停止运行;
  4. 发送缓冲区数据如下图红框3所示;
  5. 接收缓冲区数据如下图红框4所示;

MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第15张图片

6.2 速度模式参数保存

速度模式保存,即让电机每次上电时,以保存的速度和加速度自动运行。
首先按6.1.1让电机以速度300RPM, 加速度2运行
保存/清除速度模式参数指令如下:
MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第16张图片

  1. 输入485地址1,寄存器地址255,寄存器值200,如下图红框1所示;
  2. 点击“发送”,如下图红框2所示;
  3. 保存速度模式参数,电机停止运行;
  4. 发送缓冲区数据如下图红框3所示;
  5. 接收缓冲区数据如下图红框4所示;
    MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第17张图片
    Modbus Poll示例见“27_F6(FF) 保存或清除 速度模式参数.mbp”
    此时,断电后再上电,电机会以设定的速度和加速度自动运行。

6.3 速度模式参数擦除

速度模式参数擦除后,电机不再上电时自动运行。

  1. 输入485地址1,寄存器地址255,寄存器值202,如下图红框1所示;
  2. 点击“发送”,如下图红框2所示;
  3. 清除速度模式参数;
  4. 发送缓冲区数据如下图红框3所示;
  5. 接收缓冲区数据如下图红框4所示;
    MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第18张图片
    此时,断电后再上电,电机不会自动运行。

第7部分 电机位置模式1 按脉冲数相对运行

注意:57D电机,建议把电流设置为3200mA

7.1 按脉冲数相对运行

注:1.8度电机,16细分时,3200脉冲电机转1圈
按脉冲数相对运行指令格式如下
MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第19张图片

7.1.1坐标归零

先将当前坐标设置为0,方便观察电机运行。
输入485地址1,寄存器地址246,寄存器值00 02 01 2C,如下图红框1

  1. 输入485地址1,寄存器地址255,寄存器值1,如下图红框1所示;
  2. 点击“发送”,如下图红框2所示;
  3. 此时电机屏幕显示角度值0.0,误差0.00err,脉冲数0clk, 如下图红框3所示
    MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第20张图片
    Modbus Poll示例见“25_F6(92) 直接设置回零点.mbp”

7.1.2位置模式1运行

电机以速度100RPM,加速度2,正转一圈(3200脉冲)

  1. 输入485地址1,寄存器地址253,寄存器值01 02 00 64 00 00 0C 80,如下图红框1所示;
  2. 点击“发送”,如下图红框2所示;
  3. 电机开始运行;
  4. 电机停止后,屏幕显示角度值360.0,误差0.00err,脉冲数3.2Kclk,如下图红框3所示
    MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第21张图片
    Modbus Poll示例见“30_F16(FD) 电机运行_位置模式 1_按脉冲数相对运动.mbp”

7.2 位置模式1停止

  1. 参考7.1.2章节,发送寄存器值01 02 00 64 00 04 E2 00,让电机以速度100RPM, 加速度2,运行100圈;
  2. 电机未运行完时,发送寄存器值01 C8 00 00 00 00 00 00,电机以加速度200停止,如下图红框1所示;
  3. 发送缓冲区数据如下图红框2所示;
  4. 接收缓冲区数据如下图红框3所示;
    MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第22张图片

第8部分 电机位置模式2 按坐标值相对运行

注1:1.8度电机,16细分时,3200脉冲电机转1圈
注2:电机转1圈,坐标值变化0x4000,即16384
注3:坐标值会有正负15左右误差
注意:57D电机,建议把电流设置为3200mA

8.1 按坐标值相对运行

按坐标值相对运行指令格式如下
MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第23张图片

8.1.1 坐标归零

先将当前坐标设置为0,方便观察电机运行
参考7.1.1章节操作。

8.1.2 位置模式2运行

电机以速度300RPM,加速度200,相对运行坐标0x28000(即转10圈)

  1. 输入485地址1,寄存器地址244,寄存器值00 C8 01 2C 00 02 80 00 ,如下图红框1所示;
  2. 点击发送,电机开始运行;
  3. 电机运行完成后,屏幕显示角度值3.6K,误差0.00err,脉冲数32.0Kclk,如下图红框2所示;
    MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第24张图片
    Modbus Poll示例见“31_F16(F4) 电机运行_位置模式 2_按坐标值相对运动.mbp”

8.2 位置模式2停止

  1. 参考8.1.2章节,发送寄存器值00 C8 01 2C 02 80 00 00,让电机以速度300RPM, 加速度200,相对运行坐标0x2800000(即转1000圈);
  2. 电机未运行完时,发送寄存器值00 00 00 00 00 00 00 00,让电机立即停止(加速度0),如下图红框1所示;
  3. 发送缓冲区数据如下图红框2所示;
  4. 接收缓冲区数据如下图红框3所示;
    MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第25张图片

第9部分 电机位置模式3 按坐标值绝对运行

注1:1.8度电机,16细分时,3200脉冲电机转1圈
注2:电机转1圈,坐标值变化0x4000,即16384
注3:坐标值会有正负15左右误差
注意:57D电机,建议把电流设置为3200mA

9.1 按坐标值绝对运行

按坐标值绝对运行指令格式如下
MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第26张图片

9.1.1 坐标归零

先将当前坐标设置为0,方便观察电机运行
参考7.1.1章节操作。

9.1.2速度模式3运行

电机以速度300RPM,加速度200,绝对运行到坐标0x28000。

  1. 输入485地址1,寄存器地址245,寄存器值00 C8 01 2C 00 02 80 00 ,如下图红框1所示;
  2. 点击发送,电机开始运行;
  3. 电机运行完成后,屏幕显示角度值3.6K,误差0.00err,脉冲数32.0Kclk,如下图红框2所示;
    MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第27张图片

Modbus Poll示例见“32_F16(F5) 电机运行_位置模式 3_按坐标值绝对运动.mbp”

9.2 位置模式3停止

  1. 参考9.1.2章节,发送寄存器值00 C8 01 2C 02 80 00 00,让电机以速度300RPM, 加速度200,绝对运行到坐标0x2800000;
  2. 电机未运行完时,发送寄存器值00 00 00 00 00 00 00 00,让电机立即停止(加速度0),如下图红框1所示;
  3. 发送缓冲区数据如下图红框2所示;
  4. 接收缓冲区数据如下图红框3所示;
    MKS SERVO42&57D 闭环步进电机_系列7 MODBUS-RTU通讯示例_第28张图片

注:本文同样适合后续产品MKS SERVO28D/35D闭环步进电机
下一篇:《MKS SERVO42&57D 闭环步进电机_系列8 CAN通讯示例》
欢迎加入MKS 闭环步进电机技术交流 Q群(948665794)
欢迎光临 创客基地 B站:https://space.bilibili.com/393688975
欢迎光临 创客基地 淘宝店:https://makerbase.taobao.com/
网盘资料下载 https://pan.baidu.com/s/1tBCuDIfBAIRMms82FlLdag?pwd=mks1

你可能感兴趣的:(闭环步进,课程设计,经验分享)