午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

一種可拓展的Modbus協(xié)議解析方法及裝置的制造方法

文檔序號(hào):9931312閱讀:414來源:國(guó)知局
一種可拓展的Modbus協(xié)議解析方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信協(xié)議解析技術(shù)領(lǐng)域,尤其涉及一種可拓展的Modbus協(xié)議解析方法及裝置。
【背景技術(shù)】
[0002]Modbus是由Modi con (現(xiàn)為施耐德電氣公司的一個(gè)品牌)在1979年發(fā)明的,是全球第一個(gè)真正用于工業(yè)現(xiàn)場(chǎng)的總線協(xié)議,現(xiàn)已經(jīng)成為一種通用的工業(yè)標(biāo)準(zhǔn),廣泛用于控制器之間的通信互聯(lián)。當(dāng)在一 Modbus網(wǎng)絡(luò)上通信時(shí),每個(gè)控制器需要知道該網(wǎng)絡(luò)中與其通信的所有控制器的設(shè)備地址,識(shí)別按地址發(fā)來的消息,決定要產(chǎn)生何種行動(dòng)。如果需要回應(yīng),控制器將生成反饋信息并用Modbus協(xié)議發(fā)出。
[0003]當(dāng)控制器接收到信息幀(如請(qǐng)求幀或回復(fù)幀)時(shí),通過協(xié)議內(nèi)容的軟件邏輯逐幀解析以獲取信息幀中的數(shù)據(jù)信息。以Modbus協(xié)議的04功能碼(讀輸入寄存器)為例,請(qǐng)求方控制器需要發(fā)送多次請(qǐng)求才能獲取到所有的信息,而且每幀回復(fù)幀的數(shù)據(jù)字節(jié)數(shù)可能不同,如有的為4個(gè)字節(jié)、有的為2個(gè)字節(jié),在對(duì)回復(fù)幀進(jìn)行解析時(shí),一般會(huì)通過軟件語句(if…else...)判別字節(jié)數(shù),并根據(jù)協(xié)議內(nèi)容針對(duì)不同的字節(jié)數(shù)將每幀中的數(shù)據(jù)取出,解析成具體數(shù)值。
[0004]然而,在控制器之間通信時(shí),避免不了會(huì)出現(xiàn)有的控制器為新版本協(xié)議、有的控制器為舊版本協(xié)議,而控制器間的通信需在協(xié)議內(nèi)容完全一致的前提下才能通信成功,新舊版本協(xié)議無法兼容,即具有不同版本協(xié)議的控制器之間無法通信。進(jìn)一步,對(duì)于控制器產(chǎn)品中Modbus協(xié)議的升級(jí)需涉及軟件源碼的更改,開發(fā)效率低,并且程序代碼量大,不利于用戶現(xiàn)場(chǎng)的軟件升級(jí),也不利于產(chǎn)品的長(zhǎng)期維護(hù)和發(fā)展。

【發(fā)明內(nèi)容】

[0005]本申請(qǐng)通過提供一種可拓展的Modbus協(xié)議解析方法及裝置,解決了現(xiàn)有技術(shù)中控制器之間由于Modbus協(xié)議版本不同而無法通信,以及Modbus協(xié)議升級(jí)涉及軟件源碼的更改、牽涉程序代碼量大且開發(fā)效率低的技術(shù)問題,實(shí)現(xiàn)了控制器之間兼容不同版本的Modbus協(xié)議,減少維護(hù)產(chǎn)品軟件匹配的成本,協(xié)議升級(jí)無需對(duì)原程序代碼進(jìn)行改動(dòng),提高了協(xié)議升級(jí)效率,并且有利于產(chǎn)品的長(zhǎng)期維護(hù)和發(fā)展。
[000?] —方面,本發(fā)明提供了一種可拓展的Modbus協(xié)議解析方法,用于基于Modbus協(xié)議的控制器之間進(jìn)行通信,所述Modbus協(xié)議解析方法包括以下步驟:
[0007]S1、根據(jù)控制器之間的通信需求,生成協(xié)議解析配置文件;其中,所述協(xié)議解析配置文件用于統(tǒng)一管理控制器之間通信的信息屬性集合;
[0008]S2、通過Modbus協(xié)議固有的邏輯處理程序?qū)λ鰠f(xié)議解析配置文件進(jìn)行處理,以基于所述信息屬性集合對(duì)控制器之間的通信信息進(jìn)行解析。
[0009]可選的,所述信息屬性集合包括:請(qǐng)求幀信息的屬性、回復(fù)幀單元信息的屬性和參數(shù)設(shè)置屬性;其中,
[0010]所述請(qǐng)求幀信息的屬性包括:請(qǐng)求幀的總數(shù)量,以及各請(qǐng)求幀的幀序號(hào)、功能碼、起始地址和地址量;
[0011]所述回復(fù)幀單元信息的屬性包括:回復(fù)幀單元信息的總數(shù)量,以及各回復(fù)幀單元信息的名稱、起始地址和數(shù)據(jù)屬性;
[0012]所述參數(shù)設(shè)置屬性包括:設(shè)置單元的總數(shù)量,以及各設(shè)置單元的序號(hào)、名稱和起始地址。
[0013]可選的,所述步驟S2具體包括子步驟:
[0014]S21、向Modbus協(xié)議固有的邏輯處理程序中導(dǎo)入所述協(xié)議解析配置文件,并通過所述邏輯處理程序?qū)λ鰠f(xié)議解析配置文件進(jìn)行處理,以獲取所述信息屬性集合中信息屬性的關(guān)聯(lián)性;
[0015]S22、創(chuàng)建并啟動(dòng)控制器之間的通信解析線程;
[0016]S23、基于所述信息屬性集合中信息屬性的關(guān)聯(lián)性發(fā)送一請(qǐng)求幀,并接收對(duì)應(yīng)所述請(qǐng)求幀的回復(fù)幀;
[0017]S24、通過比較所述請(qǐng)求幀請(qǐng)求獲得的信息量和所述回復(fù)幀的信息量,判斷所述回復(fù)幀的協(xié)議版本是否高于或等于所述請(qǐng)求幀的協(xié)議版本,在所述回復(fù)幀的協(xié)議版本高于或等于所述請(qǐng)求幀的協(xié)議版本時(shí),跳轉(zhuǎn)執(zhí)行子步驟S25,或在所述回復(fù)幀的協(xié)議版本低于所述請(qǐng)求幀的協(xié)議版本時(shí),跳轉(zhuǎn)執(zhí)行子步驟S26;
[0018]S25、基于所述協(xié)議解析配置文件中定義的通信需求解析所述回復(fù)幀,解析完成后跳轉(zhuǎn)執(zhí)行子步驟S27;
[0019]S26、按低版本協(xié)議解析所述回復(fù)幀,解析完成后跳轉(zhuǎn)執(zhí)行子步驟S27;
[0020]S27、進(jìn)入下一請(qǐng)求幀的處理線程中。
[0021 ] 可選的,在所述子步驟S22之后,且在所述子步驟S23之前,所述步驟S2還包括子步驟:
[0022]S28、判斷是否存在參數(shù)設(shè)置事件,當(dāng)存在參數(shù)設(shè)置事件時(shí),跳轉(zhuǎn)執(zhí)行子步驟S29,當(dāng)不存在參數(shù)設(shè)置事件時(shí),跳轉(zhuǎn)執(zhí)行子步驟S23;
[0023]S29、執(zhí)行參數(shù)設(shè)置操作,更新所述參數(shù)設(shè)置屬性,并在完成所述參數(shù)設(shè)置操作后,跳轉(zhuǎn)執(zhí)行子步驟S28。
[0024]可選的,在所述子步驟S23之后,且在所述子步驟S24之前,所述步驟S2還包括子步驟:
[0025]S210、對(duì)所述回復(fù)幀進(jìn)行校驗(yàn),并判斷所述回復(fù)幀是否校驗(yàn)成功,在校驗(yàn)成功時(shí),跳轉(zhuǎn)執(zhí)行子步驟S24,或在校驗(yàn)失敗時(shí),跳轉(zhuǎn)執(zhí)行子步驟S27。
[0026]另一方面,本發(fā)明還提供了一種可拓展的Modbus協(xié)議解析裝置,用于基于Modbus協(xié)議的控制器之間進(jìn)行通信,所述Modbus協(xié)議解析裝置包括:
[0027]配置文件生成單元,用于根據(jù)控制器之間的通信需求,生成協(xié)議解析配置文件;其中,所述協(xié)議解析配置文件用于統(tǒng)一管理控制器之間通信的信息屬性集合;
[0028]信息解析處理單元,用于通過Modbus協(xié)議固有的邏輯處理程序?qū)λ鰠f(xié)議解析配置文件進(jìn)行處理,以基于所述信息屬性集合對(duì)控制器之間的通信信息進(jìn)行解析。
[0029]可選的,所述信息屬性集合包括:請(qǐng)求幀信息的屬性、回復(fù)幀單元信息的屬性和參數(shù)設(shè)置屬性;其中,
[0030]所述請(qǐng)求幀信息的屬性包括:請(qǐng)求幀的總數(shù)量,以及各請(qǐng)求幀的幀序號(hào)、功能碼、起始地址和地址量;
[0031]所述回復(fù)幀單元信息的屬性包括:回復(fù)幀單元信息的總數(shù)量,以及各回復(fù)幀單元信息的名稱、起始地址和數(shù)據(jù)屬性;
[0032]所述參數(shù)設(shè)置屬性包括:設(shè)置單元的總數(shù)量,以及各設(shè)置單元的序號(hào)、名稱和起始地址。
[0033]可選的,所述信息解析處理單元具體包括:
[0034]信息屬性獲取模塊,用于向Modbus協(xié)議固有的邏輯處理程序中導(dǎo)入所述協(xié)議解析配置文件,并通過所述邏輯處理程序?qū)λ鰠f(xié)議解析配置文件進(jìn)行處理,以獲取所述信息屬性集合中信息屬性的關(guān)聯(lián)性;
[0035]線程創(chuàng)建啟動(dòng)模塊,用于創(chuàng)建并啟動(dòng)控制器之間的通信解析線程;
[0036]幀信息收發(fā)模塊,用于基于所述信息屬性集合中信息屬性的關(guān)聯(lián)性發(fā)送一請(qǐng)求幀,并接收對(duì)應(yīng)所述請(qǐng)求幀的回復(fù)幀;
[0037]協(xié)議版本比較判斷模塊,用于通過比較所述請(qǐng)求幀請(qǐng)求獲得的信息量和所述回復(fù)幀的信息量,判斷所述回復(fù)幀的協(xié)議版本是否高于或等于所述請(qǐng)求幀的協(xié)議版本;
[0038]第一回復(fù)幀解析模塊,用于在所述回復(fù)幀的協(xié)議版本高于或等于所述請(qǐng)求幀的協(xié)議版本時(shí),基于所述協(xié)議解析配置文件中定義的通信需求解析所述回復(fù)幀;
[0039]第二回復(fù)幀解析模塊,用于在所述回復(fù)幀的協(xié)議版本低于所述請(qǐng)求幀的協(xié)議版本時(shí),按低版本協(xié)議解析所述回復(fù)幀;
[0040]下一請(qǐng)求幀處理模塊,用于在所述第一回復(fù)幀解析模塊或所述第二回復(fù)幀解析模塊完成對(duì)所述回復(fù)幀的解析后,進(jìn)入下一請(qǐng)求幀的處理線程中。
[0041 ]可選的,所述信息解析處理單元還包括:
[0042]參數(shù)設(shè)置事件判斷模塊,用于在所述線程創(chuàng)建啟動(dòng)模塊創(chuàng)建并啟動(dòng)控制器之間的通信解析線程之后,且在所述幀信息收發(fā)模塊發(fā)送一請(qǐng)求幀之前,判斷是否存在參數(shù)設(shè)置事件;
[0043]參數(shù)設(shè)置執(zhí)行模塊,用于當(dāng)存在參數(shù)設(shè)置事件時(shí),執(zhí)行參數(shù)設(shè)置操作,更新所述參數(shù)設(shè)置屬性;
[0044]第一執(zhí)行模塊,用于當(dāng)不存在參數(shù)設(shè)置事件時(shí),通過所述幀信息收發(fā)模塊發(fā)送一請(qǐng)求幀,并接收對(duì)應(yīng)所述請(qǐng)求幀的回復(fù)幀;
[0045]第二執(zhí)行模塊,用于在所述參數(shù)設(shè)置執(zhí)行模塊完成所述參數(shù)設(shè)置操作后,通過所述參數(shù)設(shè)置事件判斷模塊繼續(xù)判斷是否存在參數(shù)設(shè)置事件。
[0046]可選的,所述信息解析處理單元還包括:
[0047]回復(fù)幀校驗(yàn)?zāi)K,用于在所述幀信息收發(fā)模塊接收所述回復(fù)幀之后,且在所述協(xié)議版本比較判斷模塊判斷所述回復(fù)幀的協(xié)議版本是否高于或等于所述請(qǐng)求幀的協(xié)議版本之前,對(duì)所述回復(fù)幀進(jìn)行校驗(yàn),并判斷所述回復(fù)幀是否校驗(yàn)成功;<
當(dāng)前第1頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1