OpenEdv-开源电子网

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

canopen新人解答帖 有什末问题 大家踊跃发言 一起进步

[复制链接]

6

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
479
金钱
479
注册时间
2017-10-31
在线时间
90 小时
发表于 2020-3-4 12:24:28 | 显示全部楼层 |阅读模式
5金钱
Q1:当从机进入can的接收中断 去处理 canDispatch(&TestSlave_Data, &m);//  这个函数的时候,接下来需要我做什么?比如说会不会让我在在里面的 proceedSDO(d,m); 这个函数做一些数据的处理,或者做别的 还是不需要关心canDispatch这个函数的内容?


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
479
金钱
479
注册时间
2017-10-31
在线时间
90 小时
 楼主| 发表于 2020-3-16 15:28:49 | 显示全部楼层
不需要关心canDispatch这个函数
通过SDO配置1个 RPDO映射为 6040h,步骤如下:(假设我们的设备节点ID为10)

60A 2F 00 16 00 00 00 00 00 //RPDO1 stop
60A 23 00 16 01 10 00 40 60 //6040h,长度为16个字节
60A 2F 00 16 00 01 00 00 00 / / RPDO1 enable
设置 PDO 通讯参数
PDO1(发送)为异步周期性类型 ⇒ transmission_type (1800 h:02 h)= FF h
60A 2F 0018 02 FF 00 00 00
禁止时间 2ms(20×100us) ⇒ inhibit_time (1800 h:03 )=14h
60A 2F 00 18 03 14 00 00 00
周期时间 10ms(10×1ms) ⇒ event_time (1800 h:05 h)= 0A h
60A 2F 00 18 05 0A 00 00 00
这样我们就配置完成了一个PDO。
我们还需要为RPDO配置COB_ID映射,要不我们会不知道这一帧数据要发送给哪个节点使用:
60A 23 00 14 01 0A 02.。
PDO 配置完成后,如果要使配置的生效,需要复位通讯(Reset Communication)。NMT 管理:
00 82 0A //使节点号为 A 的驱动器通讯复位;
再启动通讯
00 01 0A // //使能节点A
这样我们就可以通过帧ID为20A的RPDO对电机6040(控制字)进行配置啦。比如使能电机:
601 2B 40 60 00 06 00 00 00 //设置 6040h 为 6
601 2B 40 60 00 07 00 00 00 //设置 6040h 为 7
601 2B 40 60 00 0F 00 00 00 //设置 6040h 为 F,使电机使能;
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2020-3-26
在线时间
2 小时
发表于 2020-3-26 15:01:09 | 显示全部楼层
你好,小白请教:协议栈怎么开发?(可能这个问题很傻),我canopen协议应用的很熟练(包括报文),都是PLC, 伺服,国内外厂家的成熟产品,但是自己开发的是一点都没接触过,所以底层的东西,不知道从哪里着手,尤其是协议栈实现的问题,看有些人用开源的festival点亮Led,这个拿来控制电机可以实现吗?
谢谢!
回复

使用道具 举报

3

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
123
金钱
123
注册时间
2018-12-26
在线时间
49 小时
发表于 2020-3-30 18:28:02 | 显示全部楼层
请问楼主能发一下你的程序吗 我想参考一下 感激不尽
回复

使用道具 举报

6

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
479
金钱
479
注册时间
2017-10-31
在线时间
90 小时
 楼主| 发表于 2020-4-1 15:34:04 | 显示全部楼层
就这个  你也可以参看 http://www.openedv.com/forum.php ... p;page=4#pid1059917  特别好的帖子

CANOPEN.rar

6.12 MB, 下载次数: 83

回复

使用道具 举报

13

主题

257

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5254
金钱
5254
注册时间
2017-8-14
在线时间
225 小时
发表于 2020-4-2 09:33:32 | 显示全部楼层
问问  有 冗余CAN 通信的 案例吗?我们是 弄DCS 开发的,需要冗余CAN通信 案例
详细资料扣扣群204408503自行下载
回复

使用道具 举报

6

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
479
金钱
479
注册时间
2017-10-31
在线时间
90 小时
 楼主| 发表于 2020-4-2 14:56:53 | 显示全部楼层
wha 发表于 2020-3-26 15:01
你好,小白请教:协议栈怎么开发?(可能这个问题很傻),我canopen协议应用的很熟练(包括报文),都是PLC ...

协议是死的,具体怎末用,重点在于你对字典的了解,就比如说点灯,首先你得在字典建立灯的索引地址 比如说是2000  01    默认值0 (灭)   这个时候你发送一个快速sdo报文   去改变这个索引地址的值 比如说你写进去1     那末你判断 这个索引的值由0  变  1   你就可以执行亮灯操作了   
回复

使用道具 举报

6

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
479
金钱
479
注册时间
2017-10-31
在线时间
90 小时
 楼主| 发表于 2020-4-2 14:57:45 | 显示全部楼层
zml13917492379 发表于 2020-4-2 09:33
问问  有 冗余CAN 通信的 案例吗?我们是 弄DCS 开发的,需要冗余CAN通信 案例

不好意思 没有
回复

使用道具 举报

6

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
479
金钱
479
注册时间
2017-10-31
在线时间
90 小时
 楼主| 发表于 2020-4-16 14:34:31 | 显示全部楼层

寻求大家帮助
   有没有关于SDO和PDO具体应用的源码例程  那种参考用的 基本的文献都知道了  就是不知道源码是怎末体现的就想看看 网上都是框架源码 基本上就是实现一个节点上线 心跳上报  
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-6-8 19:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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