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

一種基于CANOPEN的主從站同步方法與流程

文檔序號(hào):40615059發(fā)布日期:2025-01-07 21:03閱讀:10來源:國(guó)知局
一種基于CANOPEN的主從站同步方法與流程

本發(fā)明屬于計(jì)算機(jī)控制,涉及一種基于canopen的主從站同步方法。


背景技術(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協(xié)議根據(jù)對(duì)象字典管理的數(shù)據(jù)進(jìn)行參數(shù)管理,對(duì)于主站和從站均需要管理一份對(duì)象字典,主從站對(duì)象字典參數(shù)區(qū)數(shù)據(jù)應(yīng)該保持一致,而對(duì)于pdo參數(shù)區(qū)和數(shù)據(jù)區(qū)則交叉映射,傳統(tǒng)的同步方法是手動(dòng)處理對(duì)象字典各個(gè)索引的數(shù)據(jù),人工確認(rèn)主從站數(shù)據(jù)一致,這樣處理易出錯(cuò),且不能動(dòng)態(tài)修改。

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

4、為了解決上述技術(shù)問題,本發(fā)明提供一種基于canopen的主從站同步方法,其包括以下步驟:

5、s1:將主站對(duì)象字典的參數(shù)同步到從站;

6、s2:將主站對(duì)象字典tpdo映射參數(shù)同步到從站對(duì)象字典rpdo映射參數(shù),將主站對(duì)象字典rpdo映射參數(shù)同步到從站對(duì)象字典tpdo映射參數(shù);

7、s3:將主站配置映射區(qū)同步到從站。

8、其中,步驟s1包括以下子步驟:

9、s1_1使用canopen標(biāo)準(zhǔn)庫(kù)中讀取本地對(duì)象字典函數(shù)readlocaldict讀取對(duì)象字典參數(shù);

10、s1_2判斷節(jié)點(diǎn)號(hào)的范圍在1和節(jié)點(diǎn)最大數(shù)量max_node_count-1之間,否則直接返回錯(cuò)誤;

11、s1_3使用信號(hào)量初始化函數(shù)rt_sem_init對(duì)信號(hào)量finish_sem進(jìn)行初始化操作;

12、s1_4循環(huán)調(diào)用獲取主站寫入從站對(duì)象字典結(jié)果函數(shù)getwriteresultnetworkdict,寫入成功后,使用關(guān)閉sdo傳輸函數(shù)closesdotransfer關(guān)閉此次數(shù)據(jù)傳輸;

13、s1_5使用信號(hào)量卸載函數(shù)rt_sem_detach,將信號(hào)量finish_sem進(jìn)行卸載。

14、步驟s1_1中,傳入數(shù)據(jù)分別為本地對(duì)象字典指針master402_od、本地對(duì)象字典索引master_index和本地對(duì)象字典子索引master_subindex;讀取到值所存入的指針pdata,值的大小size以及參數(shù)類型type。

15、步驟s1_3中,使用節(jié)點(diǎn)數(shù)據(jù)寫入函數(shù)writenetworkdictcallback寫入從站對(duì)象字典參數(shù),傳入數(shù)據(jù)分別為本地對(duì)象字典指針master402_od、節(jié)點(diǎn)號(hào)node_id、從站對(duì)象字典索引slave_index、本地對(duì)象字典子索引slave_subindex、值的大小size以及參數(shù)類型type,并將指針pdata所指向的數(shù)據(jù)寫入。

16、其中,步驟s2包括以下子步驟:

17、s2_1根據(jù)所需要同步數(shù)據(jù)的主站索引號(hào)master_index來設(shè)置從站索引號(hào)slave_master值;

18、s2_2使用canopen標(biāo)準(zhǔn)庫(kù)中讀取本地對(duì)象字典函數(shù)readlocaldict讀取對(duì)象字典參數(shù);

19、s2_3判斷節(jié)點(diǎn)號(hào)的范圍在1和節(jié)點(diǎn)最大數(shù)量max_node_count-1之間,否則直接返回錯(cuò)誤;

20、s2_4使用信號(hào)量初始化函數(shù)rt_sem_init對(duì)信號(hào)量finish_sem進(jìn)行初始化操作;

21、s2_5循環(huán)調(diào)用獲取主站寫入從站對(duì)象字典結(jié)果函數(shù)getwriteresultnetworkdict,寫入成功后,使用關(guān)閉sdo傳輸函數(shù)closesdotransfer關(guān)閉此次數(shù)據(jù)傳輸;

22、s2_6使用信號(hào)量卸載函數(shù)rt_sem_detach,將信號(hào)量finish_sem進(jìn)行卸載。

23、步驟s2_1中,如果master_index的數(shù)值范圍為大于等于0x1600且小于等于0x17ff,則設(shè)置從站索引號(hào)slave_master值為master_index+0x400;如果master_index的數(shù)值范圍為大于等于0x1a00且小于等于0x1bff,則設(shè)置從站索引號(hào)slave_master值為master_index-0x400;如果master_index不在大于等于0x1600且小于等于0x17ff和大于等于0x1600且小于等于0x17ff的范圍內(nèi),則slave_index的值和master_index的值相同。

24、步驟s2_2中,傳入數(shù)據(jù)分別為本地對(duì)象字典指針master402_od、本地對(duì)象字典索引master_index、本地對(duì)象字典子索引master_subindex,讀取到值所存入的指針pdata、值的大小size以及參數(shù)類型type。

25、步驟s2_4中,使用節(jié)點(diǎn)數(shù)據(jù)寫入函數(shù)writenetworkdictcallback寫入從站對(duì)象字典參數(shù),傳入數(shù)據(jù)分別為本地對(duì)象字典指針master402_od、節(jié)點(diǎn)號(hào)node_id、從站對(duì)象字典索引slave_index、本地對(duì)象字典子索引slave_subindex、值的大小size以及參數(shù)類型type,并將指針pdata所指向的數(shù)據(jù)寫入。

26、其中,步驟s3包括以下子步驟:

27、s3_1使用canopen標(biāo)準(zhǔn)庫(kù)中讀取本地對(duì)象字典函數(shù)readlocaldict讀取對(duì)象字典參數(shù),傳入數(shù)據(jù)分別為本地對(duì)象字典指針master402_od、本地對(duì)象字典索引master_index、本地對(duì)象字典子索引master_subindex,讀取到值所存入的指針pdata、值的大小size以及參數(shù)類型type判斷讀取成功,轉(zhuǎn)到s3_2;

28、s3_2計(jì)算配置過程中的sdo_data數(shù)據(jù),計(jì)算方法為master_index的值左移16位加上master_subindex值左移8位,加上s3_1中獲取到的size值乘以8最后計(jì)算后的值為sdo_data的值;

29、s3_3對(duì)s3_1中數(shù)據(jù)指針pdata指向的值、大小size的值和類型type的值進(jìn)行清零操作;

30、s3_4使用讀取本地對(duì)象字典函數(shù)readlocaldict讀取對(duì)象字典參數(shù),傳入數(shù)據(jù)分別為本地對(duì)象字典指針master402_od、從站對(duì)象字典索引slave_index、從站對(duì)象字典子索引slave_subindex,讀取到值所存入的指針pdata、值的大小size以及參數(shù)類型type寫入成功后,轉(zhuǎn)入s3_5進(jìn)行從站寫入操作;

31、s3_5判斷寫入節(jié)點(diǎn)號(hào)的范圍在1和節(jié)點(diǎn)最大數(shù)量max_node_count-1之間,否則直接返回錯(cuò)誤;

32、s3_6使用信號(hào)量初始化函數(shù)rt_sem_init對(duì)信號(hào)量finish_sem進(jìn)行初始化操作;

33、s3_7循環(huán)調(diào)用獲取主站寫入從站對(duì)象字典結(jié)果函數(shù)getwriteresultnetworkdict,寫入成功后,使用關(guān)閉sdo傳輸函數(shù)closesdotransfer關(guān)閉此次數(shù)據(jù)傳輸;

34、s3_8使用信號(hào)量卸載函數(shù)rt_sem_detach,將信號(hào)量finish_sem進(jìn)行卸載。

35、步驟s3_6中,使用節(jié)點(diǎn)數(shù)據(jù)寫入函數(shù)writenetworkdictcallback寫入從站對(duì)象字典參數(shù),傳入數(shù)據(jù)分別為本地對(duì)象字典指針master402_od、節(jié)點(diǎn)號(hào)node_id、從站對(duì)象字典索引slave_index、本地對(duì)象字典子索引slave_subindex、值的大小size以及參數(shù)類型type,并將指針pdata所指向的數(shù)據(jù)寫入。

36、(三)有益效果

37、上述技術(shù)方案所提供的基于canopen的主從站同步方法,將根據(jù)對(duì)象字典索引號(hào),對(duì)主站對(duì)象字典數(shù)據(jù)進(jìn)行讀取操作,通過sdo報(bào)文寫操作寫入到對(duì)應(yīng)的從站中,對(duì)于不同的映射方法進(jìn)行分類處理,提高了同步的可靠性以及同步的效率。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
西华县| 堆龙德庆县| 东乡| 通州市| 城市| 梅州市| 滦南县| 枝江市| 灯塔市| 应城市| 泽州县| 东港市| 英吉沙县| 高尔夫| 新余市| 曲麻莱县| 潮州市| 姜堰市| 柳州市| 开化县| 罗江县| 永兴县| 修水县| 常德市| 商河县| 莒南县| 莱芜市| 永靖县| 西充县| 色达县| 自贡市| 睢宁县| 绵阳市| 当雄县| 盘山县| 夏津县| 六安市| 黑山县| 汝城县| 长寿区| 合水县|