OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5773|回复: 12

小白有一个关于canopen的问题想请教大佬们

[复制链接]

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2019-7-23
在线时间
9 小时
发表于 2019-7-23 17:00:32 | 显示全部楼层 |阅读模式
2金钱
我实验室老师要我用一个STM32F103ZET6的板子去用canopen协议驱动雷赛dm556-can电机驱动器驱动步进电机以每分钟一百转运行。网上看了一堆东西都一头雾水,只能说萌新对canopen有了大致的理解。具体用STM32驱动电机要从哪里入手,希望各位路过的大神指点下方向,谢谢

最佳答案

查看完整内容[请看2#楼]

协议多看看就懂了。 比如你的电机的节点地址是0x05,需要发给电机的命令SDO 的cob_id就是0x600+0x05,即0x605. 数据域8个字节,第一个字节是CS命令符,第二三两个字节是索引,即对象字典,第四个字节是子索引,第五到八字节为数据。CS命令符指示要写几个字节,对应关系是 0x2F -- 写一个字节 0x2B -- 写两个字节 0x27 -- 写三个字节 0x23 -- 写四个字节 假设你的子索引是0,要写入3,是一个字节,那么命令就是 ID ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

106

帖子

0

精华

高级会员

Rank: 4

积分
714
金钱
714
注册时间
2011-5-15
在线时间
147 小时
发表于 2019-7-23 17:00:33 | 显示全部楼层
人畜无害 发表于 2019-7-24 12:08
大佬能讲的简单点吗第一次接触canopen很多地方不是很懂,比如那个设置6060h值为3要怎么操作 ...

协议多看看就懂了。
比如你的电机的节点地址是0x05,需要发给电机的命令SDO 的cob_id就是0x600+0x05,即0x605. 数据域8个字节,第一个字节是CS命令符,第二三两个字节是索引,即对象字典,第四个字节是子索引,第五到八字节为数据。CS命令符指示要写几个字节,对应关系是
0x2F -- 写一个字节
0x2B -- 写两个字节
0x27 -- 写三个字节
0x23 -- 写四个字节

假设你的子索引是0,要写入3,是一个字节,那么命令就是

  ID           Data   
0x605      0x2F  0x60  0x60  0x00  0x03  0x00  0x00  0x00
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10569
金钱
10569
注册时间
2017-2-18
在线时间
1913 小时
发表于 2019-7-23 18:23:34 | 显示全部楼层
帮顶~~
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2019-7-4
在线时间
12 小时
发表于 2019-7-24 08:54:38 | 显示全部楼层
我最近也在学习这个

can入门教程.pdf

1.82 MB, 下载次数: 76

回复

使用道具 举报

2

主题

106

帖子

0

精华

高级会员

Rank: 4

积分
714
金钱
714
注册时间
2011-5-15
在线时间
147 小时
发表于 2019-7-24 09:00:25 | 显示全部楼层
开源的canopen协议栈,有CanFestival,PIC早期也有一个较精简的canopen协议栈,代码简单上手更快。
回复

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2019-7-23
在线时间
9 小时
 楼主| 发表于 2019-7-24 11:54:36 | 显示全部楼层
chunglin 发表于 2019-7-24 09:00
开源的canopen协议栈,有CanFestival,PIC早期也有一个较精简的canopen协议栈,代码简单上手更快。

我昨天发消息问了下,老师说直接拿can输出canopen手册上数据对应二进制也行,能帮我看看,这个要怎么实现吗,谢谢了
3.2 协议速度模式
3.2.1 运动设置
☆ 设置操作模式(6060H)为协议速度模式(值为 3)。
☆设置协议速度(60FFH) (单位 pulse/s)。
☆ 设置协议加速度(6083H) (单位为 pulse/s2)。
☆ 设置协议减速度(6084H) (单位为 pulse/s2)。
☆ 设置控制字(6040H)为相应的值来改变设备控制状态机并执行运动。
提示:各操作模式下控制字(6040H)操作及变化过程可参见附录 A。
3.2.2 查询设置
▲ 可设置查询查询状态字(6041H)来获取运动状态。
▲ 可设置查询速度反馈(606CH)来获得实时速度反馈信息
回复

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2019-7-23
在线时间
9 小时
 楼主| 发表于 2019-7-24 11:55:04 | 显示全部楼层
TUNEZP 发表于 2019-7-24 08:54
我最近也在学习这个

一起努力吧
回复

使用道具 举报

2

主题

106

帖子

0

精华

高级会员

Rank: 4

积分
714
金钱
714
注册时间
2011-5-15
在线时间
147 小时
发表于 2019-7-24 12:02:09 | 显示全部楼层
人畜无害 发表于 2019-7-24 11:54
我昨天发消息问了下,老师说直接拿can输出canopen手册上数据对应二进制也行,能帮我看看,这个要怎么实现 ...

直接用can输出命令就简单了,按你的说明用SDO命令,像6060H、6083H这些是对象字典,根据手册向对象字典写数据或者从对象字典读数据就可以
实时的速度反馈可以通过PDO获取
回复

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2019-7-23
在线时间
9 小时
 楼主| 发表于 2019-7-24 12:08:19 | 显示全部楼层
chunglin 发表于 2019-7-24 12:02
直接用can输出命令就简单了,按你的说明用SDO命令,像6060H、6083H这些是对象字典,根据手册向对象字典写 ...

大佬能讲的简单点吗第一次接触canopen很多地方不是很懂,比如那个设置6060h值为3要怎么操作,谢谢
回复

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2019-7-23
在线时间
9 小时
 楼主| 发表于 2019-7-24 14:25:21 | 显示全部楼层
chunglin 发表于 2019-7-23 17:00
协议多看看就懂了。
比如你的电机的节点地址是0x05,需要发给电机的命令SDO 的cob_id就是0x600+0x05,即 ...

谢谢大佬
回复

使用道具 举报

4

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2019-8-3
在线时间
16 小时
发表于 2019-11-6 11:05:04 | 显示全部楼层
大佬 加个WX聊聊   学习下 可以不  xpz19910211
回复

使用道具 举报

0

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2019-11-13
在线时间
16 小时
发表于 2019-11-13 13:13:28 | 显示全部楼层
好好好学习一下
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2021-6-30
在线时间
8 小时
发表于 2021-7-1 21:14:25 | 显示全部楼层
你好,请问你怎么移植协议栈的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-23 07:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表