我是靠谱客的博主 任性枫叶,最近开发中收集的这篇文章主要介绍CANopen | 对象字典OD 02 - 修改CANopen节点的心跳报文发送间隔一、前言二、实验的目的三、对象字典OD四、CAN盒子(收发器)五、细节补充,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 一、前言
  • 二、实验的目的
  • 三、对象字典OD
    • 3.1、Slave.od
    • 3.2、Slave1.c
  • 四、CAN盒子(收发器)
  • 五、细节补充
    • 5.1、Slave1.od文件的作用

一、前言


通过修改CANopen节点的对象字典,改变它发送心跳报文的频率。

测试硬件如下:
在这里插入图片描述
STM32工程文件:
链接:https://pan.baidu.com/s/13UsIJYrBbGjtSrTnlg5GdA
提取码:jntw

二、实验的目的


当前的CANopen节点0x05是每1秒时间往CAN总线发送一次心跳报文。
在这里插入图片描述
板子上电后,通过CAN盒子可以监控如下CAN报文:
1、从时间戳上看到,报文是每1秒发送1次。
2、从CANID = 0x705得到,这个是Node_ID = 0x05的CANopen节点发出来的心跳报文。
3、报文的数据段只有1个字节(7F),表示该CANopen节点处于预操作状态。(在该状态下,PDO功能是关闭的)
在这里插入图片描述
通过下面的步骤,CANopen节点0x05将每2秒时间往CAN总线发送一次心跳报文。
在这里插入图片描述

三、对象字典OD


3.1、Slave.od

使用对象字典软件Objdictedit打开工程上的对象字典文件Slave1.od(在我这个演示工程上的命名)。
在这里插入图片描述
接着,找到对象字典0x1000 ~ 0x1029 Communication Parameters里,地址0x1017的Producer Heartbeat Time。此时,Producer Heartbeat Time的值等于0x03E8(十进制:1000)。
在这里插入图片描述
0x1017 Producer Heartbeat Time是什么意思呢?它的单位是什么?查看《CANopen_meno.pdf》的1.13 General communication objects,找到0x1017 Producer Heartbeat。原来0x1017是生产者心跳时间间隔(单位ms)。
在这里插入图片描述
最后,将0x1017 Producer Heartbeat Time从1000ms改为2000ms,即十六进制的0x7D0。
在这里插入图片描述
修改它,改为0x7D0。
在这里插入图片描述
最后记得生成词典,即Slave1.c代码文件。
在这里插入图片描述
替换原来的Slave1.c文件。
在这里插入图片描述

3.2、Slave1.c

刚才在Slave1.od文件上修改了0x1017 Producer Heartbeat Time,然后生成了Slave1.c文件。看看工程上的Slave1.c里的0x1017是不是被修改了。
在这里插入图片描述
接着,编译新的代码,烧写到STM32单片机里。
在这里插入图片描述

四、CAN盒子(收发器)


从CAN盒子收到的CAN报文看来,CANopen节点变成每2S时间发送1次心跳报文,实验成功。
在这里插入图片描述

五、细节补充


5.1、Slave1.od文件的作用

Canfestival提供Objdictedit软件修改.od文件(对象字典文件),Objdictedit软件可以将.od文件转换为.c代码文件(单片机的程序),还可以转换为.eds文件(CANopen的设备描述文件)。
.eds文件有什么用?例如,我最近开发完一个CANopen节点,准备将它加入机器人的CAN网络上。进行电气连线之前,需要先生成.eds文件给PLC工程师,PLC工程师将我提供的.eds文件导入到PLC控制器里,让PLC(机器人的主控,同时也是CANopen主站)可以在CAN网络上识别出我设计的CANopen节点。
在这里插入图片描述

最后

以上就是任性枫叶为你收集整理的CANopen | 对象字典OD 02 - 修改CANopen节点的心跳报文发送间隔一、前言二、实验的目的三、对象字典OD四、CAN盒子(收发器)五、细节补充的全部内容,希望文章能够帮你解决CANopen | 对象字典OD 02 - 修改CANopen节点的心跳报文发送间隔一、前言二、实验的目的三、对象字典OD四、CAN盒子(收发器)五、细节补充所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部