日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CANopen | 对象字典OD 02 - 修改CANopen节点的心跳报文发送间隔

發(fā)布時間:2025/3/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CANopen | 对象字典OD 02 - 修改CANopen节点的心跳报文发送间隔 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 一、前言
  • 二、實(shí)驗(yàn)的目的
  • 三、對象字典OD
    • 3.1、Slave.od
    • 3.2、Slave1.c
  • 四、CAN盒子(收發(fā)器)
  • 五、細(xì)節(jié)補(bǔ)充
    • 5.1、Slave1.od文件的作用

一、前言


通過修改CANopen節(jié)點(diǎn)的對象字典,改變它發(fā)送心跳報文的頻率。

測試硬件如下:

STM32工程文件:
鏈接:https://pan.baidu.com/s/13UsIJYrBbGjtSrTnlg5GdA
提取碼:jntw

二、實(shí)驗(yàn)的目的


當(dāng)前的CANopen節(jié)點(diǎn)0x05是每1秒時間往CAN總線發(fā)送一次心跳報文。

板子上電后,通過CAN盒子可以監(jiān)控如下CAN報文:
1、從時間戳上看到,報文是每1秒發(fā)送1次。
2、從CANID = 0x705得到,這個是Node_ID = 0x05的CANopen節(jié)點(diǎn)發(fā)出來的心跳報文。
3、報文的數(shù)據(jù)段只有1個字節(jié)(7F),表示該CANopen節(jié)點(diǎn)處于預(yù)操作狀態(tài)。(在該狀態(tài)下,PDO功能是關(guān)閉的)

通過下面的步驟,CANopen節(jié)點(diǎn)0x05將每2秒時間往CAN總線發(fā)送一次心跳報文。

三、對象字典OD


3.1、Slave.od

使用對象字典軟件Objdictedit打開工程上的對象字典文件Slave1.od(在我這個演示工程上的命名)。

接著,找到對象字典0x1000 ~ 0x1029 Communication Parameters里,地址0x1017的Producer Heartbeat Time。此時,Producer Heartbeat Time的值等于0x03E8(十進(jìn)制:1000)。

0x1017 Producer Heartbeat Time是什么意思呢?它的單位是什么?查看《CANopen_meno.pdf》的1.13 General communication objects,找到0x1017 Producer Heartbeat。原來0x1017是生產(chǎn)者心跳時間間隔(單位ms)。

最后,將0x1017 Producer Heartbeat Time從1000ms改為2000ms,即十六進(jìn)制的0x7D0。

修改它,改為0x7D0。

最后記得生成詞典,即Slave1.c代碼文件。

替換原來的Slave1.c文件。

3.2、Slave1.c

剛才在Slave1.od文件上修改了0x1017 Producer Heartbeat Time,然后生成了Slave1.c文件。看看工程上的Slave1.c里的0x1017是不是被修改了。

接著,編譯新的代碼,燒寫到STM32單片機(jī)里。

四、CAN盒子(收發(fā)器)


從CAN盒子收到的CAN報文看來,CANopen節(jié)點(diǎn)變成每2S時間發(fā)送1次心跳報文,實(shí)驗(yàn)成功。

五、細(xì)節(jié)補(bǔ)充


5.1、Slave1.od文件的作用

Canfestival提供Objdictedit軟件修改.od文件(對象字典文件),Objdictedit軟件可以將.od文件轉(zhuǎn)換為.c代碼文件(單片機(jī)的程序),還可以轉(zhuǎn)換為.eds文件(CANopen的設(shè)備描述文件)。
.eds文件有什么用?例如,我最近開發(fā)完一個CANopen節(jié)點(diǎn),準(zhǔn)備將它加入機(jī)器人的CAN網(wǎng)絡(luò)上。進(jìn)行電氣連線之前,需要先生成.eds文件給PLC工程師,PLC工程師將我提供的.eds文件導(dǎo)入到PLC控制器里,讓PLC(機(jī)器人的主控,同時也是CANopen主站)可以在CAN網(wǎng)絡(luò)上識別出我設(shè)計的CANopen節(jié)點(diǎn)。

總結(jié)

以上是生活随笔為你收集整理的CANopen | 对象字典OD 02 - 修改CANopen节点的心跳报文发送间隔的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。