MKS SERVO4257D 闭环步进电机_系列4 MODBUS指令说明

news2025/3/2 4:27:00

第1部分 产品介绍
MKS SERVO 28D/35D/42D/57D 系列闭环步进电机是创客基地为满足市场需求而自主研发的一款产品。具备脉冲接口和RS485/CAN串行接口,支持MODBUS-RTU通讯协议,内置高效FOC矢量算法,采用高精度编码器,通过位置反馈,有效防止电机丢步。适合小型机械臂,3D打印机,雕刻机,写字机,自动化产品以及电子竞赛等应用。
硬件开源,性价比高!
在这里插入图片描述
第2部分 MODBUS-RTU指令说明
注1:需要开启MODBUS-RTU通讯协议
屏幕菜单 -> Mb_RTU -> Enable
或使用串行指令“8E”设置
注2:从站地址默认为01H
注3:默认串行数据格式为“38400,8N1”

2.1 读取参数指令
1. 读取进位制多圈编码器值
注:编码器单圈值范围 0~0x4000
在这里插入图片描述
记录上电后(使能或不使能),编码器记录的电机转动范围。
value记录当前编码器值,范围为00x4000,表示0360°。
carry记录编码器进位值,即圈数。
进位规则:
当value大于0x4000,carry加1
当value小于0,carry减1
例如:
当前编码器值为0x3FF0,正转一圈后(+0x4000),carry=1,value= 3FF0H
当前编码器值为0x3FF0,反转一圈后(-0x4000),carry=-1,value= 3FF0H
示例见“00_F4(30)读取编码器值(进位制).mbp”

2. 读取累加制多圈编码器值
注:编码器单圈值范围 0~0x4000
在这里插入图片描述
记录上电后(使能或不使能),编码器记录的电机转动范围。
累加规则: 正转一圈,多圈编码器值 +0x4000;
反转一圈,多圈编码器值 -0x4000;
例如:
当前编码器值为0x3FF0,正转一圈后(+0x4000),多圈编码器值为0x000000007FF0。
当前编码器值为0x3FF0,反转一圈后(-0x4000),多圈编码器值为0xFFFFFFFFFFF0。
注:按坐标值相对/绝对运动时,使用该编码器值作为坐标。
示例见“01_F4(31)读取编码器值(累加制).mbp”

3. 读取电机实时转速
在这里插入图片描述
注:转速单位为RPM, 正转时转速大于0,反转时转速小于0。
示例见“02_F4(32)读取实时转速.mbp”

4. 读取输入累计脉冲数
在这里插入图片描述
示例见“03_F4(33)读取输入脉冲数.mbp”

5. 读取IO端口状态
在这里插入图片描述
6. 读取位置角度误差
在这里插入图片描述
控制的位置角度减去电机的实时角度位置得到的差值,单位:0 ~ 65536表示0~360°,比如误差为1°时,数值为65536/360°= 182.444,以此类推。
示例见“04_F4(39)读取角度误差.mbp”

7. 读取使能状态
在这里插入图片描述
enable =1 使能
enable =0 未使能
示例见“05_F4(3A)读取使能状态.mbp”

8. 读取单圈上电自动回零状态
在这里插入图片描述
status =0 正在单圈回零.
status =1 单圈回零成功.
status =2 单圈回零失败.
示例见“06_F4(3B)读取回零状态.mbp”

9. 读取堵转状态
在这里插入图片描述
status =0 未堵转.
status =1 已堵转.
示例见“07_F4(3E)读取堵转状态.mbp”

10. 读取版本信息
在这里插入图片描述
示例见“08_F4(40)读取版本信息.mbp”

11. 读取电机状态
在这里插入图片描述
status = 0 查询失败
status = 1 电机停止运行
status = 2 电机加速运行
status = 3 电机减速运行
status = 4 电机全速运行
status = 5 电机归零运行
示例见“09_F4(F1)读取电机状态.mbp”

2.2 配置参数指令
1. 解除堵转保护
在这里插入图片描述
当电机发生堵转时,发送该命令可以解除当前堵转状态。
解除堵转后,如果再次发生堵转,仍然会触发堵转保护。
示例见“10_F6(3D)解除堵转保护.mbp”

2. 恢复默认参数 (对应屏幕上的“Restore”选项)
在这里插入图片描述
注1:恢复默认参数后,驱动板自动重启,需重新校准电机。
注2:先按住“Next”键,再上电,待LED灯亮,也可恢复默认参数。
示例见“11_F6(3F)恢复默认参数.mbp”

3. 校准电机 (对应屏幕上的“Cal”选项)
在这里插入图片描述
校准电机前,请确保电机没带负载!!!建议校准好以后再装进机器。
注:校准完成后,驱动板会自动复位重启。
示例见“12_F6(80)校准电机.mbp”

4. 设置工作模式 (对应屏幕上的“Mode”选项)
在这里插入图片描述
mode = 00 CR_OPEN (脉冲接口开环模式)
mode = 01 CR_CLOSE (脉冲接口闭环模式)
mode = 02 CR_vFOC (脉冲接口FOC模式)
mode = 03 SR_OPEN (串行接口开环模式)
mode = 04 SR_CLOSE (串行接口闭环模式)
mode = 05 SR_vFOC (串行接口FOC模式)
示例见“13_F6(82)设置工作模式.mbp”

5. 设置工作电流 (对应屏幕上的“Ma”选项)
在这里插入图片描述
SERVO42D 最大工作电流 3000mA
SERVO57D 最大工作电流 5200mA
注:
开环模式 工作电流不变,恒定为Currnet
闭环模式 工作电流不变,恒定为Currnet
FOC模式 工作电流可变,最大值为Currnet
示例见“14_F6(83)设置工作电流.mbp”

6. 设置细分 (对应屏幕上的“MStep”选项)
在这里插入图片描述
示例见“15_F6(84)设置细分.mbp”

7. 设置使能 (对应屏幕上的“En”选项)
在这里插入图片描述
enable = 00 对应低电平使能(L)
enable = 01 对应高电平使能(H)
enable = 02 对应一直使能(Hold)
示例见“16_F6(85)设置使能.mbp”

8. 设置方向 (对应屏幕上的“Dir”选项)
在这里插入图片描述
dir = 00 对应顺时针旋转
dir = 01 对应逆时针旋转
示例见“17_F6(86)设置方向.mbp”

9. 设置自动熄屏 (对应屏幕上的“AutoSDD”选项)
在这里插入图片描述
enable = 00 关闭自动熄屏功能
enable = 01 使能自动熄屏功能
示例见“18_F6(87)设置自动息屏.mbp”

10. 设置堵转保护 (对应屏幕上的“Protect”选项)
在这里插入图片描述
enable = 00 关闭堵转保护功能
enable = 01 使能堵转保护功能
示例见“19_F6(88)设置堵转保护.mbp”
注:堵转保护后,可以通过Enter按键或串口指令解除堵转保护状态。

11. 设置细分插补功能 (对应屏幕上的“MPlyer”选项)
在这里插入图片描述
enable = 00关闭内部的 256 细分插补功能
enable = 01使能内部的 256 细分插补功能
示例见“20_F6(89)设置细分插补.mbp”

12. 设置波特率 (对应屏幕上的“UartBaud”选项)
在这里插入图片描述
baud = 01 9600
baud = 02 19200
baud = 03 25000
baud = 04 38400
baud = 05 57600
baud = 06 115200
baud = 07 256000
示例见“21_F6(8A)设置波特率.mbp”

13. 设置从站地址 (对应屏幕上的“UartAddr”选项)
在这里插入图片描述
示例见“22_F6(8B)设置地址.mbp”
注1:地址范围00~0xFF,00为广播地址,01为默认地址。
注2:设置大于10的地址,也会在UartAddr选项末尾显示。

14. 设置MODBUS-RTU通讯协议 (对应屏幕上的“MB_RTU”选项)
在这里插入图片描述
enable = 00关闭MODBUS-RTU通讯协议
enable = 01使能MODBUS-RTU通讯协议
示例见“23_F6(8E)设置MODBUS.mbp”

15. 设置按键锁定功能
在这里插入图片描述
enable = 00关闭按键锁定功能
enable = 01使能按键锁定功能

16. 设置直接回零点
在这里插入图片描述
示例见“25_F6(92) 直接设置回零点.mbp”

17. 设置串行模式电机使能
在这里插入图片描述
enable = 0,关闭驱动板;
enable = 1,使能驱动板
在串行控制模式下,驱动板的使能状态不再受En引脚的电平控制,而是利用该命令进行控制。
示例见“26_F6(F3)设置串行模式电机使能.mbp”
注意:本指令只在“SR_OPEN/SR_CLOSE/SR_vFOC”模式下有效。

18. 设置限位回零参数
(对应屏幕“HmTrigHmDirHmSpeed”选项)
在这里插入图片描述
示例见“28_F16(90)设置限位回零参数.mbp”

19. 设置单圈回零参数
(对应屏幕“0_ModeSet 00_Speed0_Dir”选项)
在这里插入图片描述

2.3 电机运行指令
2.3.1 执行限位归零
(对应屏幕上的“GoHome”选项)
在这里插入图片描述
注意:如果限位开关已经处于闭合状态,电机会往homeDir反方向转动,直到限位开关断开,然后再归零。

2.3.2 速度模式指令
注意:本指令只在“SR_OPEN/SR_CLOSE/SR_vFOC”串行模式下有效。
速度控制模式下,可以控制电机以设定的加速度和速度一直运行。
1. 速度控制模式运行指令
在这里插入图片描述
示例见“29_F16(F6) 电机运行_速度模式.mbp”

2. 速度控制模式停止指令
停止指令可以控制电机减速缓慢停止,也可以控制电机立即停止。
当设定acc ≠ 0 时,电机减速缓慢停止
当设定acc = 0 时,电机立即停止
注意:电机转速超过1000RPM,不建议使用立即停止指令!
在这里插入图片描述
示例见“29_F16(F6) 电机运行_速度模式.mbp”

3. 速度控制模式“保存/清除”指令
在这里插入图片描述
flag = C8H 保存速度模式参数
flag = CAH 清除速度模式参数
示例见“27_F6(FF) 保存或清除 速度模式参数.mbp”
注:可以让电机每次上电都直接按照保存的方向,速度和加速度一直转动。
也就是说,如果你想要电机一上电就以一定的速度/加速度运行,你可以先发送速度控制模式运行指令,让电机按想要的方向/速度/加速度运行,接着利用该命令保存参数,重新上电后,电机就会按照保存的参数运行了。
如果不想上电自动运行了,发送清除指令即可。

2.3.3 位置控制模式1 按脉冲数相对运动
注意:本指令只在“SR_OPEN/SR_CLOSE/SR_vFOC”串行模式下有效。
位置控制模式1,可以控制电机以设定的加速度和速度,根据脉冲数相对运行到指定的位置。
1. 位置控制模式1 运行指令
在这里插入图片描述
示例见“30_F16(FD) 电机运行_位置模式1_按脉冲数相对运动.mbp”

2. 位置控制模式1 停止指令
停止指令可以控制电机减速缓慢停止,也可以控制电机立即停止。
当设定acc ≠ 0 时,电机减速缓慢停止
当设定acc = 0 时,电机立即停止
在这里插入图片描述
示例见“30_F16(FD) 电机运行_位置模式1_按脉冲数相对运动.mbp”
注意:电机转速超过1000RPM,不建议使用立即停止指令!

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

1. 位置控制模式2 运行指令
在这里插入图片描述
示例见“31_F16(F4) 电机运行_位置模式2_按坐标值相对运动.mbp”

2. 位置控制模式2 停止指令
停止指令可以控制电机减速缓慢停止,也可以控制电机立即停止。
当设定acc ≠ 0 时,电机减速缓慢停止
当设定acc = 0 时,电机立即停止
注意:电机转速超过1000RPM,不建议使用立即停止指令!
在这里插入图片描述
示例见“31_F16(F4) 电机运行_位置模式2_按坐标值相对运动.mbp”

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

1. 位置控制模式3 运行指令
在这里插入图片描述
示例见“32_F16(F5) 电机运行_位置模式3_按坐标值绝对运动.mbp”

2. 位置控制模式3 停止指令
停止指令可以控制电机减速缓慢停止,也可以控制电机立即停止。
当设定acc ≠ 0 时,电机减速缓慢停止
当设定acc = 0 时,电机立即停止
注意:电机转速超过1000RPM,不建议使用立即停止指令!
在这里插入图片描述
注1:本文所有“*.mbp”文件下载网盘:
https://pan.baidu.com/s/1tBCuDIfBAIRMms82FlLdag?pwd=mks1
…\MKS SERVO42D资料\说明书\Modbus Poll_MKS
注2:本文同样适合后续产品MKS SERVO28D/35D闭环步进电机
欢迎加入MKS 闭环步进电机技术交流 Q群(948665794)
下一篇:《MKS SERVO42&57D 闭环步进电机_系列5 CAN指令说明》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/580574.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Android的视频分享平台的设计与实现

基于Android的视频分享平台的设计与实现 摘 要 短视频平台是以特定群众为目标的差异化群体定位工具。其利用自身的便捷性可以实现视频的随时拍摄和随时上传,可以产生亚文化圈的萌芽。这种开放便利的特性在吸引了广大用户的同时,也在一定程度上解决了由…

C#面试题 2

七、AOP如何在代码层面实现? ①静态代理实现AOP,自己写代理对象; ②动态代理实现AOP,运行时动态生成一个代理对象。 静态代理的实现:①装饰器模式(允许向一个现有的对象添加新的功能,同时又不…

Doris----Rollup表分析及案例实现

ROLLUP 在多维分析中是“上卷”的意思,即将数据按某种指定的粒度进行进一步聚合。 之前的聚合模型: 用户id数据插入时间城市年龄性别最后一次访问的时间该用户的总消费额该用户的最大停留时长该用户的最小停留时长100002017/10/2北京1002017/10/02 08:00:00651521…

C++:STL--List

文章目录 一.STL-list的数据结构链表结点模板 二.List的框架与迭代器的实现1.STL中的容器迭代器2.List的迭代器List正向遍历迭代器类模板(对ListNode< T >* 指针的封装)反向遍历迭代器的类模板(对正向迭代器的封装) 3.List的实现框架 三. List的成员接口的实现1.在List类…

GPT-4发布!ChatGPT大升级!太太太太强了!

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 我新建了人工智能中文站https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 一觉醒来&#xff0c;万众期待的GPT-4&#xff0c;它来了&#xff01; OpenAI老板Sam Altman直接开门见山地介绍说&#xff1a…

C语言之数组指针2.0

在 C 语言中&#xff0c;数组指针是一种特殊的指针类型&#xff0c;它是一个指向数组的指针。其声明形式为&#xff1a; <数据类型> (*<指针变量名>)[<数组长度>];例如&#xff0c;下面声明了一个指向整型数组的指针变量 arrPtr&#xff1a; int (*arrPtr)…

数据等级划分

数据大致可以分为定性数据与定量数据&#xff0c;但细分可以分为四类&#xff1a;定类数据、定序数据、定距数据、定比数据 处理数据的流程&#xff1a; 参考&#xff1a; 特征工程入门与实践

如何使用ChatGPT提升自己的“码”力?

如何使用chatGPT提升自己的"码"力? 代码评审(CodeReview)代码优化代码释义提供解决方案代码生成设计模式和架构建议学习新知识总结 ChatGPT是什么&#xff0c;我就不用再多介绍了吧&#xff01;相信大家已经看到了它在文本领域所展现出来的实力&#xff0c;虽然目前…

PAT A1152 Google Recruitment

1152 Google Recruitment 分数 20 作者 陈越 单位 浙江大学 In July 2004, Google posted on a giant billboard along Highway 101 in Silicon Valley (shown in the picture below) for recruitment. The content is super-simple, a URL consisting of the first 10-dig…

2023商家外卖数据

商家列表 外卖商品销量 shop_channel varchar(20) DEFAULT NULL, shop_system varchar(20) DEFAULT NULL, shop_system_no varchar(50) DEFAULT NULL, shop_platform varchar(20) DEFAULT NULL, shop_id varchar(50) NOT NULL, shop_id_str varchar(50) NO…

ChatGPT自动生成思维导图

&#x1f34f;&#x1f350;&#x1f34a;&#x1f351;&#x1f352;&#x1f353;&#x1fad0;&#x1f951;&#x1f34b;&#x1f349; ChatGPT自动生成思维导图 文章目录 &#x1f350;问题引入&#x1f350;具体操作markmapXmind &#x1f433;结语 &#x1f…

【Web】JWT(JSON Web Token)验证是什么?和SWT,SMAL的区别

JWT是什么&#xff1f; JWT&#xff08;JSON Web Token&#xff09;是一种轻量级的安全传输方式&#xff0c;可以用于在不同的系统之间传递安全可靠的信息&#xff0c;例如用户身份验证、授权和信息交换等。JWT采用JSON格式对信息进行编码和传输&#xff0c;用于在各方之间以 …

SpringCloud:分布式缓存之Redis持久化

Redis有两种持久化方案&#xff1a; RDB持久化AOF持久化 1.RDB持久化 RDB全称Redis Database Backup file&#xff08;Redis数据备份文件&#xff09;&#xff0c;也被叫做Redis数据快照。简单来说就是把内存中的所有数据都记录到磁盘中。当Redis实例故障重启后&#xff0c;…

如何安装389目录服务器作为CentOS 8 / RHEL 8机器的LDAP服务器?

LDAP&#xff08;轻量级目录访问协议&#xff09;是一种用于访问和维护分布式目录服务的开放标准协议。 389目录服务器是一个功能强大、高性能的LDAP服务器&#xff0c;它可以用于存储和管理用户、组和其他网络对象的身份验证和授权信息。本文将详细介绍如何在CentOS 8 / RHEL…

学生成绩管理系统

基于springboot vue实现的学生成绩管理系统 主要模块&#xff1a; 1&#xff09;学生模块&#xff1a;我的成绩、成绩统计、申述管理、修改密码 2&#xff09;教师模块&#xff1a;任务管理、对学生班级任务安排、班级学生的成绩查看、申述管理 3&#xff09;管理员模块&…

(可直接使用)在线语音识别APP+阿里云平台+Android Studio 开发项目

目录 所以需要下载软件 (1)Android Studio (2)夜神模拟器 1&#xff1a;在阿里云平台中&#xff0c;登录账号&#xff0c;选择控制台&#xff0c;搜索 智能语音交互 2&#xff1a;智能语音交互 界面 3:创建项目 4&#xff1a;选择项目类别 可以选择 语音识别语…

C++初识仿函数

C初识仿函数 &#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;C &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客主要内容简单介绍了仿函数的概念 文章目录 C初识仿函数…

计算机组成原理-中央处理器-CPU指令和数据执行过程

目录 一、CPU的功能和基本架构 二、指令cpu执行过程 指令周期​编辑 各周期执行过程 指令执行方案 三、数据通路 3.1 cpu内部单总线 3.1.1 寄存器之间传送 3.1.2 主存与cpu之间数据传送 3.1.3 执行算术或逻辑运算的 3.2 cpu内部多总线 3.3 专用数据通路 一、CPU的功能和…

javascript基础九:说说Javascript中的继承?如何实现继承?

一、是什么 继承&#xff08;inheritance&#xff09;是面向对象软件技术当中的一个概念 如果一个类别B“继承自”另一个类别A&#xff0c;就把这个B称为“A的子类”&#xff0c;而把A称为“B的父类别”也可以称“A是B的超类” 继承的优点 继承可以使得子类具有父类别的各种属性…

[LeetCode周赛复盘] 第 105 场双周赛20230528

[LeetCode周赛复盘] 第 105 场双周赛20230528 一、本周周赛总结6395. 购买两块巧克力1. 题目描述2. 思路分析3. 代码实现 6394. 字符串中的额外字符1. 题目描述2. 思路分析3. 代码实现 6393. 一个小组的最大实力值1. 题目描述2. 思路分析3. 代码实现 6464. 最大公约数遍历1. 题…