MKS SERVO42&57D 闭环步进电机_系列8 CAN通讯示例

第1部分 产品介绍

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

第2部分 相关资料下载

2.1 Cangaroo

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

第3部分 参数配置

3.1 电机参数配置

  1. 选择控制模式: 菜单 → Mode → SR_vFOC
  2. 设置波特率: 菜单 → CanRate → 500K
  3. 设置从机地址: 菜单 → CanID → 01

3.2 Cangaroo设置

  1. 双击“cangaroo.exe”,运行上位机软件;

  2. 在cangaroo窗口,选择菜单“Measurement”->“Start Measurement”,如下图所示。
    MKS SERVO42&57D 闭环步进电机_系列8 CAN通讯示例_第2张图片

  3. 在弹出的Measurement Setup窗口,点击“candle0”,如下图所示
    MKS SERVO42&57D 闭环步进电机_系列8 CAN通讯示例_第3张图片

  4. 使用默认参数,不做任何修改,点击“ok”,如下图所示
    MKS SERVO42&57D 闭环步进电机_系列8 CAN通讯示例_第4张图片

  5. Timestamps 选择“absolute”
    不选择“aggregate by ID”
    ,如下图所示
    MKS SERVO42&57D 闭环步进电机_系列8 CAN通讯示例_第5张图片

  6. 选择菜单“File”->“Save Workspace”,选择保存路径和名称,保存配置。
    MKS SERVO42&57D 闭环步进电机_系列8 CAN通讯示例_第6张图片

  7. 保存完成后,如下图所示
    MKS SERVO42&57D 闭环步进电机_系列8 CAN通讯示例_第7张图片

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

4.1 读取参数指令

以“读取累加制多圈编码器值”为例
发送 31 32
返回 31 00 00 00 00 3E 39 A9
即编码器值为 0x000000003E39
如下图所示
MKS SERVO42&57D 闭环步进电机_系列8 CAN通讯示例_第8张图片

4.2 设置参数指令

以设置电流参数为例(对应屏幕上的“Ma”选项)
发送 83 06 FD 87 设置电流为1789mA (0x6FD = 1789)
返回 83 01 85 表示设置完成
如下图所示
MKS SERVO42&57D 闭环步进电机_系列8 CAN通讯示例_第9张图片

电机屏幕菜单选项“Ma”,可以查看刚设置的电流值,如下图
MKS SERVO42&57D 闭环步进电机_系列8 CAN通讯示例_第10张图片

4.3 读取IO端口状态

端口状态定义如下:
在这里插入图片描述

(注:28D/35D/42D只能读取到IN_1端口)

发送 34 35读取IN_1,IN_2,OUT_1,OUT_2端口状态
返回 34 0F 44 (0x0F 的低4位对应4个端口的状态,即4个端口均为高电平)

如下图所示
MKS SERVO42&57D 闭环步进电机_系列8 CAN通讯示例_第11张图片

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

57D电机的拨码开关PIN3,PIN2拨到ON状态。
57D电机,建议把电流设置为3200mA
限位触发电平,限位方向,限位速度可通过屏幕菜单“HmTrig、HmDir、HmSpeed”设置,也可通过串行指令设置(功能码0x90)。
本文使用默认参数。
发送 91 92
返回 91 01 93
电机开始归零运行,屏幕显示“Home…”
此时将IN_1端口置低电平(可以用地线触碰IN_1端口)
电机完成归零,屏幕显示“Home Ok”

MKS SERVO42&57D 闭环步进电机_系列8 CAN通讯示例_第12张图片

电机屏幕显示过程如下图:
MKS SERVO42&57D 闭环步进电机_系列8 CAN通讯示例_第13张图片

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

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

6.1 速度模式运行和停止

1. 控制电机以速度300RPM, 加速度2运行

发送指令:F6 01 2C 02 26
返回指令:F6 01 F8
如下图1,2所示

2. 控制电机以加速度200停止

发送指令:F6 00 00 C8 BF
开始停止:F6 01 F8
完成停止:F6 02 F9
如下图3,4,5所示
MKS SERVO42&57D 闭环步进电机_系列8 CAN通讯示例_第14张图片

6.2 速度模式参数保存

速度模式保存,即让电机每次上电时,以保存的速度和加速度自动运行。

1. 控制电机以速度300RPM, 加速度2运行

发送指令:F6 01 2C 02 26
返回指令:F6 01 F8
如下图1,2所示

2. 保存速度模式参数

发送指令: FF C8 C8
返回指令1:FF 01 01 保存成功
返回指令2:F6 02 F9 电机停止
保存成功后,电机会停止运行。
如下图3,4,5所示
MKS SERVO42&57D 闭环步进电机_系列8 CAN通讯示例_第15张图片

6.3 速度模式参数擦除

速度模式参数擦除后,电机不再上电时自动运行。
发送指令: FF CA CA
返回指令: FF 01 01
如下图所示
MKS SERVO42&57D 闭环步进电机_系列8 CAN通讯示例_第16张图片

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

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

7.1 按脉冲数相对运行

注:1.8度电机,16细分时,3200脉冲电机转1圈

  1. 先将当前坐标设置为0,方便观察电机运行
    发送指令:92 93
    返回指令:92 01 94
    此时电机屏幕显示角度值0.0,误差0.00err,脉冲数0clk
    如下图框1所示
  2. 电机以速度100RPM,加速度2,正转一圈(3200脉冲)
    发送指令:FD 80 64 02 00 0C 80 70
    开始运行: FD 01 FF
    完成运行: FD 02 00
    此时电机屏幕显示角度值360.0,误差0.00err,脉冲数3.2Kclk
    如下图框2所示
    MKS SERVO42&57D 闭环步进电机_系列8 CAN通讯示例_第17张图片

7.2 中断电机运行

  1. 电机以速度100RPM,加速度2,正转100圈(320000脉冲)
    发送指令:FD 80 64 02 04 E2 00 CA
    开始运行:FD 01 FF
    如下图框1所示
  2. 电机以加速度200停止
    发送指令:FD 80 00 C8 00 00 00 46
    开始停止: FD 01 FF
    完成停止:FD 02 00
    如下图框2所示
    MKS SERVO42&57D 闭环步进电机_系列8 CAN通讯示例_第18张图片

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

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

8.1 按坐标值相对运行

  1. 先将当前坐标设置为0,方便观察电机运行
    发送指令:92 93
    返回指令:92 01 94
    此时电机屏幕显示角度值0.0,误差0.00err,脉冲数0clk
    如下图1所示

  2. 电机以速度300RPM,加速度200,相对运行坐标0x28000(即转10圈)
    发送指令:F4 01 2C C8 02 80 00 6C
    开始运行:F4 01 F6
    完成运行:F4 02 F7
    此时电机屏幕显示角度值3.6K,误差0.00err,脉冲数32.0Kclk
    如下图2所示

  3. 读取当前坐标值
    发送指令:31 32
    返回指令:31 00 00 00 02 80 00 B4
    即当前坐标值为0x000000028000,和预定目标一致。
    如下图3所示

  4. 再次让电机以速度300RPM,加速度200,相对运行坐标0x28000(即再转10圈)
    发送指令:F4 01 2C C8 02 80 00 6C
    开始运行:F4 01 F6
    完成运行:F4 02 F7
    此时电机屏幕显示角度值7.2K,误差0.00err,脉冲数64.0Kclk
    如下图4所示

  5. 再次读取当前坐标值
    发送指令:31 32
    返回指令:31 00 00 00 05 00 00 37
    即当前坐标值为0x000000050000,和预定目标一致。
    如下图5所示
    MKS SERVO42&57D 闭环步进电机_系列8 CAN通讯示例_第19张图片

8.2 中断电机运行

  1. 让电机以速度300RPM,加速度200,相对运行坐标0x7A0000
    发送指令:F4 01 2C C8 7A 00 00 64
    开始运行:F4 01 F6
    如下图框1所示

  2. 让电机立即停止 (即加速为0)
    发送指令:F4 00 00 00 00 00 00 F5
    开始停止:F4 01 F6
    完成停止:F4 02 F7
    如下图框2所示
    MKS SERVO42&57D 闭环步进电机_系列8 CAN通讯示例_第20张图片

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

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

9.1 按坐标值绝对运行

  1. 先将当前坐标设置为0,方便观察电机运行
    发送指令:92 93
    返回指令:92 01 94

    此时电机屏幕显示角度值0.0,误差0.00err,脉冲数0clk
    如下图1所示

  2. 电机以速度300RPM,加速度200,绝对运行到坐标0x28000
    发送指令:F5 01 2C C8 02 80 00 6D
    开始运行: F5 01 F7
    完成运行:F5 02 F8
    此时电机屏幕显示角度值3.6K,误差0.00err,脉冲数32.0Kclk
    如下图2所示

  3. 读取当前坐标值
    发送指令:31 32
    返回指令:31 00 00 00 02 80 00 B4
    即当前坐标值为0x00000002800,和预定目标一致。
    如下图3所示

  4. 再次让电机以速度300RPM,加速度200,绝对运行到坐标0x28000(因坐标已经是0x28000,所以电机不动)
    发送指令:F5 01 2C C8 02 80 00 6D
    开始运行:F5 01 F7
    完成运行:F5 02 F8
    此时电机屏幕仍显示角度值3.6K,误差0.00err,脉冲数32.0Kclk
    如下图4所示

  5. 再次读取当前坐标值
    发送指令:31 32
    返回指令:31 00 00 00 02 7F FF AD
    当前坐标值为0x000000028001 (误差1),即电机没有运行,和预定目标一致。
    如下图5所示

  6. 再次让电机以速度300RPM,加速度200,绝对运行到坐标0
    发送指令:F5 01 2C C8 00 00 00 EB
    开始运行:F5 01 F7
    完成运行:F5 02 F8
    此时电机屏幕显示角度值0.0,误差0.00err,脉冲数0clk
    即电机回到坐标0点
    如下图6所示

  7. 再次读取当前坐标值
    发送指令:31 32
    返回指令:31 00 00 00 00 00 01 33
    当前坐标为1(误差1),和预定目标一致。
    如下图7所示
    MKS SERVO42&57D 闭环步进电机_系列8 CAN通讯示例_第21张图片

9.2 中断电机运行

  1. 让电机以速度300RPM,加速度200,绝对运行坐标0x7A0000
    发送指令:F5 01 2C C8 7A 00 00 65
    开始运行:F5 01 F7
    如下图框1所示

  2. 让电机立即停止 (即加速为0)
    发送指令:F5 00 00 00 00 00 00 F6
    开始停止:F5 01 F7
    完成停止:F5 02 F8
    如下图框2所示
    MKS SERVO42&57D 闭环步进电机_系列8 CAN通讯示例_第22张图片

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

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