MKS SERVO4257D 闭环步进电机_系列8 CAN通讯示例

news2024/12/25 23:20:41

第1部分 产品介绍

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

第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”,如下图所示。
    在这里插入图片描述

  3. 在弹出的Measurement Setup窗口,点击“candle0”,如下图所示
    在这里插入图片描述

  4. 使用默认参数,不做任何修改,点击“ok”,如下图所示
    在这里插入图片描述

  5. Timestamps 选择“absolute”
    不选择“aggregate by ID”
    ,如下图所示
    在这里插入图片描述

  6. 选择菜单“File”->“Save Workspace”,选择保存路径和名称,保存配置。
    在这里插入图片描述

  7. 保存完成后,如下图所示
    在这里插入图片描述

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

4.1 读取参数指令

以“读取累加制多圈编码器值”为例
发送 31 32
返回 31 00 00 00 00 3E 39 A9
即编码器值为 0x000000003E39
如下图所示
在这里插入图片描述

4.2 设置参数指令

以设置电流参数为例(对应屏幕上的“Ma”选项)
发送 83 06 FD 87 设置电流为1789mA (0x6FD = 1789)
返回 83 01 85 表示设置完成
如下图所示
在这里插入图片描述

电机屏幕菜单选项“Ma”,可以查看刚设置的电流值,如下图
在这里插入图片描述

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个端口均为高电平)

如下图所示
在这里插入图片描述

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

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

在这里插入图片描述

电机屏幕显示过程如下图:
在这里插入图片描述

第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所示
在这里插入图片描述

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所示
在这里插入图片描述

6.3 速度模式参数擦除

速度模式参数擦除后,电机不再上电时自动运行。
发送指令: FF CA CA
返回指令: FF 01 01
如下图所示
在这里插入图片描述

第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所示
    在这里插入图片描述

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所示
    在这里插入图片描述

第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所示
    在这里插入图片描述

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所示
    在这里插入图片描述

第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所示
    在这里插入图片描述

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

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

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

相关文章

AD19操作注意事项及信息

直接在PCB编辑界面添加差分对(差分布线) 1.PCB边界界面Panels菜单调出PCB界面 2.选择框中信息,点击添加差分对即可,然后利用交互式差分对布线命令进行布线操作。(前提设置好差分布线规则) 过孔&#xff1a…

7年经验之谈 —— 如何进行渗透测试以提高软件安全性?

对于各种规模的企业和组织来说,软件安全是一个至关重要的问题。随着网络攻击越来越复杂,软件中的漏洞越来越多,确保你的软件安全比以往任何时候都更重要。提高软件安全性的一个有效方法是渗透测试(penetration testing&#xff09…

6月9号软件资讯更新合集....

Vivaldi 6.1 发布,可绕过微软限制使用 Bing Chat 最新版本的 Vivaldi 可在桌面端伪装成 Edge,使其用户受益,并为工作空间和标签增加了更多的功能。 支持微软 Bing Chat Vivaldi 是建立在 Chromium 开源项目之上的。它与 Edge 和 Chrome 使用…

Android kotlin序列化之Parcelable详解与使用(二)

一、介绍 注解序列化篇:Android kotlin序列化之Parcelize详解与使用_蜗牛、Z的博客-CSDN博客 通过上一篇注解序列化,我们已了解的kotlin的序列化比Java复杂了很多。而且有好多问题,注解虽好,但是存在一些问题。 一般在大型商业…

【Flutter】如何更改 Flutter 应用的启动图标

文章目录 一、前言二、什么是启动图标三、为什么我们需要更改启动图标四、如何更改启动图标五、注意事项六、总结 一、前言 欢迎来到 Flutter 的世界!在这篇文章中,我们将探索 Flutter 的一些基础知识。但是,你知道吗?这只是冰山…

爬虫一般怎么解决加密问题?

① 对于网页端来说通常加密的算法是写在 js 代码里的,所以首先你要对 js 语言有所了解。 至少知道 js 基础的内容,其次找到对应 js 加密代码,然后找出关键的函数。 把 js 代码在 node.js 环境进行调试,最后在 Python 环境下利用…

Goby 漏洞发布|maxView Storage Manager 系统 dynamiccontent.properties.xhtml 远程代码执行漏洞

漏洞名称:maxView Storage Manager 系统 dynamiccontent.properties.xhtml 远程代码执行漏洞 English Name:maxView Storage Manager dynamiccontent.properties.xhtml RCE CVSS core: 9.8 影响资产数:1465 漏洞描述: maxVie…

C++debug-centos-ubuntu-vscode

1.centos下安装VSCODE 在linux系统(centOS7)中安装VSCode(Visual Studio Code)_centos vscode安装_沈醉不知的博客-CSDN博客 pacman -S code2.ubuntu下安装VSCODE 与windows下一样。 3.windows 调试 下载安装vscode cmake https://cmake.org/download GDB:UNIX及UNIX-…

php7.4生产环境压力测试CPU占用100%解决方案

最近开发了一个项目,客户要求压力测试,测试时发现并发量大时php-fpm占用cpu一直100%,调整了php的最大进程数pm.max_children,优化了程序效果不明显。后面使用了opcache,cpu使用率一下降到20%左右。 什么是opcache?下面…

网络渗透攻击与加固

目录 一、内网渗透模拟攻击 1.1 综合扫描工具 1.1.1 X-scan 1.1.2 Zenmap 1.2 内网渗透模拟流程 二、Net命令 2.1 net user 2.1.1 功能 2.1.2 用法 2.2 net localgroup 2.2.1 功能 2.2.2 用法 2.3 net share 2.3.1 功能 2.3.2 用法 2.4 net use 2.4.1 功能 2…

Lecture 20 Topic Modelling

目录 Topic ModellingA Brief History of Topic ModelsLDAEvaluationConclusion Topic Modelling makeingsense of text English Wikipedia: 6M articlesTwitter: 500M tweets per dayNew York Times: 15M articlesarXiv: 1M articlesWhat can we do if we want to learn somet…

8寸Windows 10/Android 4.4系统三防平板电脑

8寸Windows 10/Android 4.4系统三防平板电脑是一款功能强大的工业平板电脑,能够在恶劣的工业环境中工作,并能够满足各种生产应用需求。该平板电脑采用了三防设计,能够防护尘土、水等物质的侵入,同时也能够抵抗震动,保证…

openGauss社区五月运作报告

前言 五月,openGauss社区在北京举办了一年一度的开发者大会,汇报社区最新的技术创新进展、生态进展与商业实践成果,同期社区开展了多个闭门会议,SIG工作组会议,规划未来社区工作治理方向,社区工作事项分…

实战案例|黑灰产肆虐,腾讯ACE一键打造清朗游戏世界

随着游戏行业的快速发展,相关黑色产业链的问题日益严重,各种外挂、违规内容、非法交易现象的出现破坏着游戏的生态,为行业带来诸多安全挑战,也影响着玩家们的游戏体验。越来越多游戏厂商开始重视游戏安全问题,并探索全…

RocketMQ5.x版本延迟消息被重放问题调查

一、问题 由于目标计划是将集群从4.9.x逐步升级至5.x,故目前先对一些不重要的集群进行升级测试。 但是在4.x的broker陆续升级至5.x的过程中,发现了延迟消息被重放的问题。 具体如下: 在升级时刷新后台监控,发现竟然有写入量: 即…

日撸java三百行day61-62

文章目录 说明Day61 决策树1.什么是决策树2.什么是熵3.什么是信息增益4.详细例子1. weather样本2.第一次决策3.第二次决策4.最终决策树 4. 代码理解4.1 变量理解4.2 代码中主要方法理解 说明 闵老师的文章链接: 日撸 Java 三百行(总述)_minf…

深入源码分析RecyclerView缓存复用原理

文章目录 前言四级缓存 源码分析缓存一级缓存(mChangedScrap和mChangedScrap)二级缓存(mCachedViews)三级缓存四级缓存(mRecyclerPool)缓存池mRecyclerPool结构理解四级缓存简单小结 缓存流程图 复用复用流…

分布式项目15 用户注册,单点登陆dubbo来实现

分析:当用户填写完成注册信息之后,将请求发送给前台服务器.之后前台消费者利用dubbo框架实现RPC调用。之后将用户信息传递给jt-sso服务提供者.之后完成数据的入库操作。 01.页面url分析 02.查看页面JS $.ajax({ type : "POST", url : "/user/doRe…

MMPose安装及推理验证

MMPose安装 依赖环境 1.创建虚拟环境并激活 conda create --name openmmlab python3.8 -y conda activate openmmlab2.安装pytorch conda install pytorch torchvision torchaudio pytorch-cuda11.7 -c pytorch -c nvidia报错: InvalidArchiveError(‘Error wit…

quartus下联合modelsim_Altera仿真

vivado工程转换到quartus下联合modelsim仿真_内有小猪卖的博客-CSDN博客 这个博客是用单独的modelsim仿真,而下面的流程是使用quartus自带的modelsim-altera仿真。 版本为:quartus ii 13.1 64-bit 以fpga实现数码管和流水灯编码为例。数码管为1时&#x…