Canopen的cia402协议下通过SDO报文控制步进电机

本文详细介绍了如何使用Canopen的cia402协议控制步进电机,包括硬件选择、波特率设定、SDO报文格式(写入和读取)以及速度模式的基本操作步骤。特别关注了0x27、0x22等控制字的含义和使用技巧。
摘要由CSDN通过智能技术生成

硬件搭建

在某宝上随便买个支持CANopen协议的驱动,主打的是性价比高,之后用我的周立功CAN通讯工具。
在这里插入图片描述

在这里插入图片描述

确定步进电机驱动器和上位机的通讯波特率,如果不匹配就无法进行连接。如果懒得去查,那就不断去切换波特率,什么时候有数据返回,就可以了。

软件使用

发送写SDO报文格式如下

在这里插入图片描述

红色:代表ID 因为是写入1号驱动器,所以用ds301中规定好的0x601。
橘色:代表功能,可以用22代替。

0x2F: 一个字节长度 // 1 byte data length
0x2B: 两个字节长度 // 2 byte data length
0x27: 三个字节长度 // 3 byte data length
0x23: 四个字节长度 // 4 byte data length
0x22: 未指定字节长度

绿色:代表索引(注意是小端模式,例如 40 60 实际上是 0x 6040)查询字典或者驱动器ds402可以知道具体含义。
蓝色:子索引 查询字典或者驱动器ds402可以知道具体含义。
紫色:数据 (注意数据的类型,长度) 。

对于0x27、0x22、0x23、0x27、0x2B、0x2F解释

在这里插入图片描述

简单的驱动器相关参数

在这里插入图片描述

通常速度模式控制步骤如下

1、先设置工作模式(6060h-00)为 3,然后监控工作模式(6061h-00)也为 3,表示处于速度模式;
2、写入目标速度(60FFh-00),加速时间(6083h-00),减速时间(6084h-00);
3、往控制字中依次写入 6、7、15,中间间隔 10ms 左右,写入完成后,电机使能, 电机开始运行。

就简简单单的三个步骤,最终例子如下:
在这里插入图片描述

如果需要停下来发送:
在这里插入图片描述
配置模式的时候需要注意下,我发现其他驱动器不支持0x22,必须要0x2F才能成功控制电机启动。具体需要查看手册。

发送数据和驱动器返回数据如下图

在这里插入图片描述
如果此时电机转动了,说明我们的硬件环境没有问题。
为什么电机会转动,是因为我们写入了速度。
我们把速度写入了 60ff 里面。

发送读SDO报文格式如下

在这里插入图片描述
返回数据中的CMD数据则不同,会根据查询索引的长度有所变化。
读取SDO时,CMD统一为0x40。
如果读取成功,反馈回以下格式数据
在这里插入图片描述
返回数据中的CMD数据则不同,会根据查询索引的长度有所变化。

0x4F: 一个字节长度 // 1 byte data length
0x4B: 两个字节长度 // 2 byte data length
0x47: 三个字节长度 // 3 byte data length
0x43: 四个字节长度 // 4 byte data length

举例:查询1号站点的当前状态,对象为6041,发送如下:
在这里插入图片描述

如果读取失败,则返回读取失败命令:
在这里插入图片描述

  • 28
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
CanFestival是一种开源的CANopen协议栈,用于CAN总线通信。基于CanFestival的CANopen主站开发意味着我们可以使用CanFestival提供的功能和API来开发一个CANopen的主站设备。 CanFestival提供了丰富的功能,包括CAN帧的发送和接收、节点的管理、网络管理、PDO(Process Data Object)的管理等。通过CanFestival,我们可以轻松地实现CANopen网络中的主站功能。 而CIA402则是CANopen协议的一个重要组成部分,用于控制伺服电机。CIA402定义了各种类型的伺服电机控制的标准。通过CanFestival的CANopen主站,我们可以实现CIA402标准的伺服电机控制。 在开发过程中,我们首先需要将CanFestival的代码集成到我们的项目中,并根据项目需求进行配置。然后,我们需要实现必要的功能,例如CAN帧的发送和接收、网络管理、节点管理等。 对于CIA402伺服电机控制,我们需要编写特定的代码来实现它的功能,例如设置伺服电机的工作模式、设定电机的加速度和速度参数、读取电机的状态信息等。 开发完成后,我们可以将软件部署到我们的目标设备上,并与CIA402兼容的伺服电机连接。通过CanFestival的CANopen主站,我们可以通过发送CAN帧来控制伺服电机,如设定目标位置、启动电机、改变工作模式等。 总的来说,基于CanFestival的CANopen主站开发可以实现CIA402标准的伺服电机控制。通过CanFestival提供的功能和API,我们可以轻松地进行CANopen网络的管理和控制,实现伺服电机的各种操作和控制

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谢谢~谢先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值