欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

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

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

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


背景技術(shù):

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

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ù),第一個參數(shù)為s1中的7種服務(wù)狀態(tài),第二個參數(shù)為啟動停止?fàn)顟B(tài),1表示啟動該狀態(tài),0表示停止該狀態(tài);

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

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

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

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

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

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

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

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

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

16、s3_1如果newstate是初始化狀態(tài)initialisation,對于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ù)對不同狀態(tài)進(jìn)行處理;

17、s3_2如果newstate是預(yù)操作狀態(tài)pre_operational,對于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ù)對不同狀態(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,對于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ù)對不同狀態(tài)進(jìn)行處理;將當(dāng)前狀態(tài)nodestate設(shè)置為預(yù)操作狀態(tài)operational;

19、s3_4如果newstate是預(yù)操作狀態(tài)stopped,對于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ù)對不同狀態(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)管理表的方式對服務(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ù)對象狀態(tài)ssdo,緊急報文狀態(tài)semergency,同步狀態(tài)ssync,上線守護(hù)狀態(tài)slifeguard,過程數(shù)據(jù)對象狀態(tài)spdo,層設(shè)置服務(wù)狀態(tài)slss。

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

4.如權(quán)利要求3所述的canopen總線節(jié)點(diǎn)狀態(tài)切換方法,其特征在于,步驟s2中,對于ssdo狀態(tài),啟動時不調(diào)用任何函數(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中,對于semergency狀態(tài),啟動時調(diào)用emergencyinit函數(shù),并調(diào)用registersetodentrycallback函數(shù)啟動緊急狀況管理,停止時調(diào)用emergencystop函數(shù)。

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

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

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

9.如權(quán)利要求8所述的canopen總線節(jié)點(diǎn)狀態(tài)切換方法,其特征在于,步驟s3中,根據(jù)newstate的值對不同狀態(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ù),第一個參數(shù)為S1中的7種服務(wù)狀態(tài),第二個參數(shù)為啟動停止?fàn)顟B(tài),1表示啟動該狀態(tài),0表示停止該狀態(tài);S3:判斷要切換的新節(jié)點(diǎn)狀態(tài)newState不等于當(dāng)前對象字典中存儲的節(jié)點(diǎn)狀態(tài)nodeState,則根據(jù)newState的值對不同狀態(tài)進(jìn)行處理;如果要切換的新狀態(tài)newState等于對象字典中操作狀態(tài)nodeState,則不進(jìn)行任何操作。本發(fā)明通過狀態(tài)管理表的方式對服務(wù)進(jìn)行開啟或者關(guān)閉并進(jìn)行狀態(tài)切換,大大提高了總線的通信效率。

技術(shù)研發(fā)人員:王雨龍
受保護(hù)的技術(shù)使用者:天津津航計(jì)算技術(shù)研究所
技術(shù)研發(fā)日:
技術(shù)公布日:2025/1/6
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
新竹市| 陇西县| 淮北市| 宁津县| 手游| 巩义市| 苏尼特右旗| 揭西县| 丽水市| 思茅市| 嘉峪关市| 永和县| 长泰县| 互助| 乌兰县| 阜新| 肃宁县| 德钦县| 云安县| 遵义县| 炉霍县| 来宾市| 阿坝县| 苍山县| 贡山| 漳浦县| 轮台县| 黄浦区| 密云县| 武定县| 孝昌县| 志丹县| 深水埗区| 金华市| 武乡县| 天长市| 从化市| 莎车县| 修文县| 齐齐哈尔市| 顺义区|