两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種CANOPEN總線節(jié)點(diǎn)狀態(tài)切換方法與流程

文檔序號(hào):40608703發(fā)布日期:2025-01-07 20:49閱讀:8來源:國知局
一種CANOPEN總線節(jié)點(diǎn)狀態(tài)切換方法與流程

本發(fā)明屬于計(jì)算機(jī)控制,涉及一種canopen總線節(jié)點(diǎn)狀態(tài)切換方法。


背景技術(shù):

1、canopen通信是建立在can數(shù)據(jù)鏈路層之上的一種通訊形式,此種通信方式對(duì)應(yīng)用層做出了相關(guān)的規(guī)定。canopen設(shè)備模型包括通信部分、對(duì)象字典和應(yīng)用部分。通訊部分包括pdo對(duì)象、sdo對(duì)象、nmt對(duì)象。對(duì)象字典包括數(shù)據(jù)類型、通訊對(duì)象、和應(yīng)用對(duì)象。

2、canopen協(xié)議的優(yōu)點(diǎn)包括高效性、精確定位、抗干擾性、多功能性、易于配置、數(shù)據(jù)傳輸方式的高效性、靈活的配置和狀態(tài)查詢功能、開放的標(biāo)準(zhǔn)、數(shù)據(jù)安全性高、以及具有安全通信約束等優(yōu)點(diǎn)。


技術(shù)實(shí)現(xiàn)思路

1、(一)要解決的技術(shù)問題

2、canopen總線包括多種總線節(jié)點(diǎn)狀態(tài),包括初始化狀態(tài)、預(yù)操作狀態(tài)、操作狀態(tài)、停止?fàn)顟B(tài)。不同模式下不同總線狀態(tài)下需要不同的服務(wù)操作,本發(fā)明提出了一種canopen總線節(jié)點(diǎn)狀態(tài)切換方法,通過狀態(tài)管理表標(biāo)記在不同模式下不同服務(wù)的開啟或關(guān)閉,并完成總線狀態(tài)的切換。

3、(二)技術(shù)方案

4、為了解決上述技術(shù)問題,本發(fā)明提供一種canopen總線節(jié)點(diǎn)狀態(tài)切換方法,其包括以下步驟:

5、s1:設(shè)置7種服務(wù)狀態(tài)供總線節(jié)點(diǎn)狀態(tài)切換過程中使用;

6、s2:設(shè)置startorstop函數(shù),第一個(gè)參數(shù)為s1中的7種服務(wù)狀態(tài),第二個(gè)參數(shù)為啟動(dòng)停止?fàn)顟B(tài),1表示啟動(dòng)該狀態(tài),0表示停止該狀態(tài);

7、s3:判斷要切換的新節(jié)點(diǎn)狀態(tài)newstate不等于當(dāng)前對(duì)象字典中存儲(chǔ)的節(jié)點(diǎn)狀態(tài)nodestate,則根據(jù)newstate的值對(duì)不同狀態(tài)進(jìn)行處理;如果要切換的新狀態(tài)newstate等于對(duì)象字典中操作狀態(tài)nodestate,則不進(jìn)行任何操作。

8、步驟s1中,7種服務(wù)狀態(tài)包括:上線狀態(tài)sboot_up,服務(wù)數(shù)據(jù)對(duì)象狀態(tài)ssdo,緊急報(bào)文狀態(tài)semergency,同步狀態(tài)ssync,上線守護(hù)狀態(tài)slifeguard,過程數(shù)據(jù)對(duì)象狀態(tài)spdo,層設(shè)置服務(wù)狀態(tài)slss。

9、步驟s2中,對(duì)于sboot_up狀態(tài),啟動(dòng)時(shí)不調(diào)用任何函數(shù),停止時(shí)調(diào)用從機(jī)重啟函數(shù)slavesendbootup。

10、對(duì)于ssdo狀態(tài),啟動(dòng)時(shí)不調(diào)用任何函數(shù),停止時(shí)調(diào)用復(fù)位sdo函數(shù)resetsdo,在resetsdo函數(shù)中使用restsdoline函數(shù)將所有打開的sdo進(jìn)行關(guān)閉操作。

11、對(duì)于semergency狀態(tài),啟動(dòng)時(shí)調(diào)用emergencyinit函數(shù),并調(diào)用registersetodentrycallback函數(shù)啟動(dòng)緊急狀況管理,停止時(shí)調(diào)用emergencystop函數(shù)。

12、對(duì)于ssync狀態(tài),啟動(dòng)時(shí)調(diào)用startsync函數(shù),啟動(dòng)同步幀定時(shí)器,按照同步幀定時(shí)時(shí)間進(jìn)行同步幀發(fā)送;停止時(shí)調(diào)用stopsync函數(shù),關(guān)閉同步幀定時(shí)器,停止同步幀發(fā)送。

13、對(duì)于slifeguard狀態(tài),啟動(dòng)時(shí)調(diào)用lifeguardinit函數(shù),在此函數(shù)中調(diào)用heartbeatinit函數(shù)進(jìn)行心跳初始化,調(diào)用nodeguardinit函數(shù);停止調(diào)用時(shí)調(diào)用lifeguardstop函數(shù),調(diào)用heartbeatstop函數(shù)。

14、對(duì)于spdo狀態(tài),啟動(dòng)時(shí)調(diào)用pdoinit初始化函數(shù),將主站對(duì)象字典中的數(shù)據(jù)映射,停止時(shí)調(diào)用pdostop停止函數(shù)。

15、步驟s3中,根據(jù)newstate的值對(duì)不同狀態(tài)進(jìn)行處理的過程包括:

16、s3_1如果newstate是初始化狀態(tài)initialisation,對(duì)于sboot_up狀態(tài)設(shè)置為1,ssdo狀態(tài)設(shè)置為0,semergency狀態(tài)設(shè)置為0,ssync狀態(tài)設(shè)置為0,slifeguard狀態(tài)設(shè)置為0,spdo狀態(tài)設(shè)置為0,通過startorstop函數(shù)對(duì)不同狀態(tài)進(jìn)行處理;

17、s3_2如果newstate是預(yù)操作狀態(tài)pre_operational,對(duì)于sboot_up狀態(tài)設(shè)置為0,ssdo狀態(tài)設(shè)置為1,semergency狀態(tài)設(shè)置為1,ssync狀態(tài)設(shè)置為1,slifeguard狀態(tài)設(shè)置為1,spdo狀態(tài)設(shè)置為0,通過startorstop函數(shù)對(duì)不同狀態(tài)進(jìn)行處理;將當(dāng)前狀態(tài)nodestate設(shè)置為預(yù)操作狀態(tài)pre_operational,調(diào)用mastersendnmtstatechange函數(shù)將子節(jié)點(diǎn)進(jìn)行復(fù)位;

18、s3_3如果newstate是操作狀態(tài)operational,對(duì)于sboot_up狀態(tài)設(shè)置為0,ssdo狀態(tài)設(shè)置為1,semergency狀態(tài)設(shè)置為1,ssync狀態(tài)設(shè)置為1,slifeguard狀態(tài)設(shè)置為1,spdo狀態(tài)設(shè)置為1,通過startorstop函數(shù)對(duì)不同狀態(tài)進(jìn)行處理;將當(dāng)前狀態(tài)nodestate設(shè)置為預(yù)操作狀態(tài)operational;

19、s3_4如果newstate是預(yù)操作狀態(tài)stopped,對(duì)于sboot_up狀態(tài)設(shè)置為0,ssdo狀態(tài)設(shè)置為0,semergency狀態(tài)設(shè)置為0,ssync狀態(tài)設(shè)置為0,slifeguard狀態(tài)設(shè)置為1,spdo狀態(tài)設(shè)置為0,通過startorstop函數(shù)對(duì)不同狀態(tài)進(jìn)行處理;將當(dāng)前狀態(tài)nodestate設(shè)置為預(yù)操作狀態(tài)stopped。

20、(三)有益效果

21、上述技術(shù)方案所提供的canopen總線節(jié)點(diǎn)狀態(tài)切換方法,通過狀態(tài)管理表的方式對(duì)服務(wù)進(jìn)行開啟或者關(guān)閉并進(jìn)行狀態(tài)切換,大大提高了總線的通信效率。



技術(shù)特征:

1.一種canopen總線節(jié)點(diǎn)狀態(tài)切換方法,其特征在于,包括以下步驟:

2.如權(quán)利要求1所述的canopen總線節(jié)點(diǎn)狀態(tài)切換方法,其特征在于,步驟s1中,7種服務(wù)狀態(tài)包括:上線狀態(tài)sboot_up,服務(wù)數(shù)據(jù)對(duì)象狀態(tài)ssdo,緊急報(bào)文狀態(tài)semergency,同步狀態(tài)ssync,上線守護(hù)狀態(tài)slifeguard,過程數(shù)據(jù)對(duì)象狀態(tài)spdo,層設(shè)置服務(wù)狀態(tài)slss。

3.如權(quán)利要求2所述的canopen總線節(jié)點(diǎn)狀態(tài)切換方法,其特征在于,步驟s2中,對(duì)于sboot_up狀態(tài),啟動(dòng)時(shí)不調(diào)用任何函數(shù),停止時(shí)調(diào)用從機(jī)重啟函數(shù)slavesendbootup。

4.如權(quán)利要求3所述的canopen總線節(jié)點(diǎn)狀態(tài)切換方法,其特征在于,步驟s2中,對(duì)于ssdo狀態(tài),啟動(dòng)時(shí)不調(diào)用任何函數(shù),停止時(shí)調(diào)用復(fù)位sdo函數(shù)resetsdo,在resetsdo函數(shù)中使用restsdoline函數(shù)將所有打開的sdo進(jìn)行關(guān)閉操作。

5.如權(quán)利要求4所述的canopen總線節(jié)點(diǎn)狀態(tài)切換方法,其特征在于,步驟s2中,對(duì)于semergency狀態(tài),啟動(dòng)時(shí)調(diào)用emergencyinit函數(shù),并調(diào)用registersetodentrycallback函數(shù)啟動(dòng)緊急狀況管理,停止時(shí)調(diào)用emergencystop函數(shù)。

6.如權(quán)利要求5所述的canopen總線節(jié)點(diǎn)狀態(tài)切換方法,其特征在于,步驟s2中,對(duì)于ssync狀態(tài),啟動(dòng)時(shí)調(diào)用startsync函數(shù),啟動(dòng)同步幀定時(shí)器,按照同步幀定時(shí)時(shí)間進(jìn)行同步幀發(fā)送;停止時(shí)調(diào)用stopsync函數(shù),關(guān)閉同步幀定時(shí)器,停止同步幀發(fā)送。

7.如權(quán)利要求6所述的canopen總線節(jié)點(diǎn)狀態(tài)切換方法,其特征在于,步驟s2中,對(duì)于slifeguard狀態(tài),啟動(dòng)時(shí)調(diào)用lifeguardinit函數(shù),在此函數(shù)中調(diào)用heartbeatinit函數(shù)進(jìn)行心跳初始化,調(diào)用nodeguardinit函數(shù);停止調(diào)用時(shí)調(diào)用lifeguardstop函數(shù),調(diào)用heartbeatstop函數(shù)。

8.如權(quán)利要求7所述的canopen總線節(jié)點(diǎn)狀態(tài)切換方法,其特征在于,步驟s2中,對(duì)于spdo狀態(tài),啟動(dòng)時(shí)調(diào)用pdoinit初始化函數(shù),將主站對(duì)象字典中的數(shù)據(jù)映射,停止時(shí)調(diào)用pdostop停止函數(shù)。

9.如權(quán)利要求8所述的canopen總線節(jié)點(diǎn)狀態(tài)切換方法,其特征在于,步驟s3中,根據(jù)newstate的值對(duì)不同狀態(tài)進(jìn)行處理的過程包括:

10.一種基于權(quán)利要求1-9中任一項(xiàng)所述的canopen總線節(jié)點(diǎn)狀態(tài)切換方法在計(jì)算機(jī)控制技術(shù)領(lǐng)域中的應(yīng)用。


技術(shù)總結(jié)
本發(fā)明公開了一種CANOPEN總線節(jié)點(diǎn)狀態(tài)切換方法,包括以下步驟:S1:設(shè)置7種服務(wù)狀態(tài)供總線節(jié)點(diǎn)狀態(tài)切換過程中使用;S2:設(shè)置StartorStop函數(shù),第一個(gè)參數(shù)為S1中的7種服務(wù)狀態(tài),第二個(gè)參數(shù)為啟動(dòng)停止?fàn)顟B(tài),1表示啟動(dòng)該狀態(tài),0表示停止該狀態(tài);S3:判斷要切換的新節(jié)點(diǎn)狀態(tài)newState不等于當(dāng)前對(duì)象字典中存儲(chǔ)的節(jié)點(diǎn)狀態(tài)nodeState,則根據(jù)newState的值對(duì)不同狀態(tài)進(jìn)行處理;如果要切換的新狀態(tài)newState等于對(duì)象字典中操作狀態(tài)nodeState,則不進(jìn)行任何操作。本發(fā)明通過狀態(tài)管理表的方式對(duì)服務(wù)進(jìn)行開啟或者關(guān)閉并進(jìn)行狀態(tài)切換,大大提高了總線的通信效率。

技術(shù)研發(fā)人員:王雨龍
受保護(hù)的技術(shù)使用者:天津津航計(jì)算技術(shù)研究所
技術(shù)研發(fā)日:
技術(shù)公布日:2025/1/6
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
瓦房店市| 商河县| 佛教| 阿拉善右旗| 沙坪坝区| 鹤壁市| 兴化市| 石狮市| 高密市| 文登市| 泰来县| 富蕴县| 沙坪坝区| 娱乐| 韩城市| 福安市| 开原市| 泽州县| 鲁山县| 河西区| 囊谦县| 丹东市| 兰州市| 黄骅市| 田东县| 久治县| 平远县| 千阳县| 隆德县| 河东区| 酒泉市| 景宁| 涿鹿县| 清原| 石柱| 丰宁| 西青区| 临武县| 鹰潭市| 翁牛特旗| 宝山区|