本發(fā)明涉及通信網(wǎng)絡(luò)領(lǐng)域,尤其涉及一種Modbus通信網(wǎng)絡(luò)的網(wǎng)絡(luò)地址分配方法、從節(jié)點設(shè)備與通信系統(tǒng)。
背景技術(shù):
Modbus是一種串行通訊協(xié)議,以其協(xié)議簡單、實施容易、性價比高、可靠性好等優(yōu)點而獲得了越來越廣發(fā)的應(yīng)用,成為工業(yè)領(lǐng)域通信協(xié)議標(biāo)準(zhǔn),并且是工業(yè)電子設(shè)備之間相對常壓的連接方式。
Modbus網(wǎng)絡(luò)是一個主/從結(jié)構(gòu)的網(wǎng)絡(luò),其中有一個節(jié)點是主節(jié)點,其他使用Modbus協(xié)議參與通信的節(jié)點是從節(jié)點,該網(wǎng)絡(luò)中每一個從節(jié)點設(shè)備都有一個唯一的地址。
在網(wǎng)絡(luò)中,只有被指定為主節(jié)點的節(jié)點可以啟動一個命令,每一個Modbus命令都包含了打算執(zhí)行的節(jié)點的設(shè)備地址并以廣播的方式向網(wǎng)絡(luò)中各從節(jié)點發(fā)布,各從節(jié)點需要根據(jù)命令中包含的設(shè)備地址判斷是否需要執(zhí)行。因此,Modbus網(wǎng)絡(luò)中各從節(jié)點的地址設(shè)定就顯得尤為重要。
現(xiàn)有技術(shù)通過人工手動逐個地設(shè)置從機地址(如設(shè)置每臺從機的拔碼開關(guān)等方式),這樣做會需要專業(yè)人員操作從而增加系統(tǒng)成本且效率低下。
技術(shù)實現(xiàn)要素:
針對上述問題,本發(fā)明的目的在于提供一種Modbus通信網(wǎng)絡(luò)的網(wǎng)絡(luò)地址分配方法、從節(jié)點設(shè)備與通信系統(tǒng),自動化地設(shè)置從機地址,提高設(shè)置從機的網(wǎng)絡(luò)地址的效率,減小系統(tǒng)成本。
為了實現(xiàn)上述目的,本發(fā)明一方面提供了一種Modbus通信網(wǎng)絡(luò)的網(wǎng)絡(luò)地址分配方法,包括:
從節(jié)點設(shè)備接收主節(jié)點設(shè)備發(fā)送的合法地址分配指令,并判斷本設(shè)備的網(wǎng)絡(luò)地址是否合法;其中,任一從節(jié)點設(shè)備的原始網(wǎng)絡(luò)地址屬于非法網(wǎng)絡(luò)地址;
從節(jié)點設(shè)備在判定本設(shè)備的網(wǎng)絡(luò)地址非法時進(jìn)入延時搶占過程;其中,所述延時搶占過程的時長預(yù)先配置,且不同的從節(jié)點設(shè)備所配置的延時搶占過程的時長不同;
當(dāng)在所述延時搶占過程中從節(jié)點設(shè)備沒有接收到其他從節(jié)點設(shè)備發(fā)送的分配成功通知消息時,所述從節(jié)點設(shè)備響應(yīng)于所述延時搶占過程結(jié)束將本設(shè)備的地址設(shè)定為所述合法地址分配指令所記載的網(wǎng)絡(luò)地址,并向所述主節(jié)點設(shè)備以及其他從節(jié)點設(shè)備發(fā)送所述分配成功通知消息。
優(yōu)選地,所述合法地址分配指令包括第一地址分配指令;所述第一地址分配指令為所述主節(jié)點設(shè)備按照一定的時間間隔發(fā)送到各個從節(jié)點設(shè)備,且所述第一地址分配指令所記載的網(wǎng)絡(luò)地址為未被分配的合法網(wǎng)絡(luò)地址。
優(yōu)選地,所述合法地址分配指令還包括第二地址分配指令;所述第二地址分配指令為所述主節(jié)點設(shè)備在檢測到有至少兩個從節(jié)點設(shè)備的網(wǎng)絡(luò)地址沖突時發(fā)送到各個從節(jié)點設(shè)備,且所述第二地址分配指令所記載的網(wǎng)絡(luò)地址為產(chǎn)生沖突的網(wǎng)絡(luò)地址;
所述方法還包括:
從節(jié)點設(shè)備在判定本設(shè)備的網(wǎng)絡(luò)地址合法時,判斷本設(shè)備的網(wǎng)絡(luò)地址與所述合法地址分配指令所記載的網(wǎng)絡(luò)地址是否相同,并在相同時進(jìn)入延時搶占過程;
當(dāng)在所述延時搶占過程中從節(jié)點設(shè)備接收到其他從節(jié)點設(shè)備發(fā)送的分配成功通知消息時,從節(jié)點設(shè)備判斷本設(shè)備的網(wǎng)絡(luò)地址與所述合法地址分配指令所記載的網(wǎng)絡(luò)地址是否相同,并在相同時將本設(shè)備的網(wǎng)絡(luò)地址設(shè)定為非法網(wǎng)絡(luò)地址。
優(yōu)選地,所述方法還包括:
從節(jié)點設(shè)備接收主節(jié)點設(shè)備發(fā)送的地址沖突調(diào)整指令,并判斷本設(shè)備的網(wǎng)絡(luò)地址與產(chǎn)生沖突的網(wǎng)絡(luò)地址是否相同;所述地址沖突調(diào)整指令為所述主節(jié)點設(shè)備在檢測到有至少兩個從節(jié)點設(shè)備的網(wǎng)絡(luò)地址沖突時發(fā)送到各個從節(jié)點設(shè)備;所述地址沖突調(diào)整指令中記載了所述產(chǎn)生沖突的網(wǎng)絡(luò)地址;
從節(jié)點設(shè)備在判定本設(shè)備的網(wǎng)絡(luò)地址與所述產(chǎn)生沖突的網(wǎng)絡(luò)地址相同時,將本設(shè)備的網(wǎng)絡(luò)地址設(shè)定為非法網(wǎng)絡(luò)地址。
優(yōu)選地,所述方法還包括:
從節(jié)點設(shè)備在上電時獲取其唯一物理編號;
從節(jié)點設(shè)備根據(jù)所述唯一物理編號以及預(yù)先配置的統(tǒng)一算法計算所述延時搶占過程的時長并存儲起來。
優(yōu)選地,所述方法還包括:
從節(jié)點設(shè)備獲取用戶輸入的網(wǎng)絡(luò)地址設(shè)定指令;
從節(jié)點設(shè)備將本設(shè)備的網(wǎng)絡(luò)地址設(shè)定為所述網(wǎng)絡(luò)地址設(shè)定指令所要求設(shè)定的網(wǎng)絡(luò)地址。
本發(fā)明實施例另一方面還提供一種Modbus通信網(wǎng)絡(luò)中的從節(jié)點設(shè)備,包括:
分配指令接收模塊,用于接收主節(jié)點設(shè)備發(fā)送的合法地址分配指令,并判斷本設(shè)備的網(wǎng)絡(luò)地址是否合法;其中,任一從節(jié)點設(shè)備的原始網(wǎng)絡(luò)地址屬于非法網(wǎng)絡(luò)地址;
第一判定模塊,用于在判定本設(shè)備的網(wǎng)絡(luò)地址非法時進(jìn)入延時搶占過程;其中,所述延時搶占過程的時長預(yù)先配置,且不同的從節(jié)點設(shè)備所配置的延時搶占過程的時長不同;
第一地址設(shè)定模塊,用于當(dāng)在所述延時搶占過程中從節(jié)點設(shè)備沒有接收到其他從節(jié)點設(shè)備發(fā)送的分配成功通知消息時,所述從節(jié)點設(shè)備響應(yīng)于所述延時搶占過程結(jié)束將本設(shè)備的地址設(shè)定為所述合法地址分配指令所記載的網(wǎng)絡(luò)地址,并向所述主節(jié)點設(shè)備以及其他從節(jié)點設(shè)備發(fā)送所述分配成功通知消息。
優(yōu)選地,所述合法地址分配指令包括第一地址分配指令;所述第一地址分配指令為所述主節(jié)點設(shè)備按照一定的時間間隔發(fā)送到各個從節(jié)點設(shè)備,且所述第一地址分配指令所記載的網(wǎng)絡(luò)地址為未被分配的合法網(wǎng)絡(luò)地址。
優(yōu)選地,所述合法地址分配指令還包括第二地址分配指令;所述第二地址分配指令為所述主節(jié)點設(shè)備在檢測到有至少兩個從節(jié)點設(shè)備的網(wǎng)絡(luò)地址沖突時發(fā)送到各個從節(jié)點設(shè)備,且所述第二地址分配指令所記載的網(wǎng)絡(luò)地址為產(chǎn)生沖突的網(wǎng)絡(luò)地址;
所述從節(jié)點設(shè)備還包括:
第二判定模塊,用于在判定本設(shè)備的網(wǎng)絡(luò)地址合法時,判斷本設(shè)備的網(wǎng)絡(luò)地址與所述合法地址分配指令所記載的網(wǎng)絡(luò)地址是否相同,并在相同時進(jìn)入延時搶占過程;
第二設(shè)定模塊,用于當(dāng)在所述延時搶占過程中接收到其他從節(jié)點設(shè)備發(fā)送的分配成功通知消息時,判斷本設(shè)備的網(wǎng)絡(luò)地址與所述合法地址分配指令所記載的網(wǎng)絡(luò)地址是否相同,并在相同時將本設(shè)備的網(wǎng)絡(luò)地址設(shè)定為非法網(wǎng)絡(luò)地址。
優(yōu)選地,所述從節(jié)點設(shè)備還包括:
調(diào)整指令接收模塊,用于接收主節(jié)點設(shè)備發(fā)送的地址沖突調(diào)整指令,并判斷本設(shè)備的網(wǎng)絡(luò)地址與產(chǎn)生沖突的網(wǎng)絡(luò)地址是否相同;所述地址沖突調(diào)整指令為所述主節(jié)點設(shè)備在檢測到有至少兩個從節(jié)點設(shè)備的網(wǎng)絡(luò)地址沖突時發(fā)送到各個從節(jié)點設(shè)備;所述地址沖突調(diào)整指令中記載了所述產(chǎn)生沖突的網(wǎng)絡(luò)地址;
從節(jié)點設(shè)備在判定本設(shè)備的網(wǎng)絡(luò)地址與所述產(chǎn)生沖突的網(wǎng)絡(luò)地址相同時,將本設(shè)備的網(wǎng)絡(luò)地址設(shè)定為非法網(wǎng)絡(luò)地址。
優(yōu)選地,所述從節(jié)點設(shè)備還包括:
物理編號獲取模塊,用于在上電時獲取其唯一物理編號;
時長計算模塊,用于根據(jù)所述唯一物理編號以及預(yù)先配置的統(tǒng)一算法計算所述延時搶占過程的時長并存儲起來。
優(yōu)選地,所述從節(jié)點設(shè)備還包括:
設(shè)定指令獲取模塊,用于獲取用戶輸入的網(wǎng)絡(luò)地址設(shè)定指令;
第四地址設(shè)定模塊,用于從節(jié)點設(shè)備將本設(shè)備的網(wǎng)絡(luò)地址設(shè)定為所述網(wǎng)絡(luò)地址設(shè)定指令所要求設(shè)定的網(wǎng)絡(luò)地址。
本發(fā)明實施例還提供一種Modbus通信系統(tǒng),包括主節(jié)點設(shè)備以及若干個第一方面所述的從節(jié)點設(shè)備。
相比于現(xiàn)有技術(shù),本發(fā)明實施例的有益效果在于:本發(fā)明實施例提供了一種Modbus通信網(wǎng)絡(luò)的網(wǎng)絡(luò)地址分配方法、從節(jié)點設(shè)備與通信系統(tǒng),其中方法包括:從節(jié)點設(shè)備接收主節(jié)點設(shè)備發(fā)送的合法地址分配指令,并判斷本設(shè)備的網(wǎng)絡(luò)地址是否合法;從節(jié)點設(shè)備在判定本設(shè)備的網(wǎng)絡(luò)地址非法時進(jìn)入延時搶占過程;當(dāng)在所述延時搶占過程中從節(jié)點設(shè)備沒有接收到其他從節(jié)點設(shè)備發(fā)送的分配成功通知消息時,所述從節(jié)點設(shè)備響應(yīng)于所述延時搶占過程結(jié)束將本設(shè)備的地址設(shè)定為所述合法地址分配指令所記載的網(wǎng)絡(luò)地址,并向所述主節(jié)點設(shè)備以及其他從節(jié)點設(shè)備發(fā)送所述分配成功通知消息。在本發(fā)明實施例中,不同的從節(jié)點設(shè)備所配置的延時搶占過程的時長不同,使得延時搶占過程的時長最短的從節(jié)點設(shè)備首先“搶占”所述合法地址分配指令所記載的網(wǎng)絡(luò)地址,將本設(shè)備的地址設(shè)定為所述合法地址分配指令所記載的網(wǎng)絡(luò)地址,并向所述主節(jié)點設(shè)備以及其他從節(jié)點設(shè)備發(fā)送所述分配成功通知消息,使得有且只有一臺從節(jié)點設(shè)備能“搶占”到所述合法地址分配指令所記載的網(wǎng)絡(luò)地址。本發(fā)明實施例能夠自動化地設(shè)置從機地址,無需人工逐一設(shè)置,在有新的從節(jié)點設(shè)備接入時自動分配網(wǎng)絡(luò)地址使從節(jié)點設(shè)備快速加入到總線中,大大地提高設(shè)置從機的網(wǎng)絡(luò)地址的效率,減小系統(tǒng)成本。
附圖說明
為了更清楚地說明本發(fā)明的技術(shù)方案,下面將對實施方式中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施方式,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實施例提供的一種Modbus通信網(wǎng)絡(luò)的網(wǎng)絡(luò)地址分配方法的流程示意圖;
圖2是本發(fā)明實施例提供的一種Modbus通信網(wǎng)絡(luò)中的從節(jié)點設(shè)備10的結(jié)構(gòu)框圖;
圖3是本發(fā)明實施例提供的一種Modbus通信系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
請參閱圖1,其是本發(fā)明實施例提供的一種Modbus通信網(wǎng)絡(luò)的網(wǎng)絡(luò)地址分配方法的流程示意圖。所述Modbus通信網(wǎng)絡(luò)的網(wǎng)絡(luò)地址分配方法包括步驟S11~S13:
S11,從節(jié)點設(shè)備接收主節(jié)點設(shè)備發(fā)送的合法地址分配指令,并判斷本設(shè)備的網(wǎng)絡(luò)地址是否合法;其中,任一從節(jié)點設(shè)備的原始網(wǎng)絡(luò)地址屬于非法網(wǎng)絡(luò)地址;
所述原始網(wǎng)絡(luò)地址是指從節(jié)點設(shè)備的默認(rèn)網(wǎng)絡(luò)地址,即從節(jié)點設(shè)備在第一次接入到Modbus通信網(wǎng)絡(luò)中所具有的網(wǎng)絡(luò)地址。由于任一從節(jié)點設(shè)備的原始網(wǎng)絡(luò)地址屬于非法網(wǎng)絡(luò)地址,即任一從節(jié)點設(shè)備在第一次接入到Modbus通信網(wǎng)絡(luò)中所具有的網(wǎng)絡(luò)地址都是非法的,需要按照本方法重新設(shè)定為合法網(wǎng)絡(luò)地址,因而本方法可以為新接入的從節(jié)點設(shè)備自動地分配網(wǎng)絡(luò)地址使從節(jié)點設(shè)備快速加入到總線中。
需要說明的是,這里所述的網(wǎng)絡(luò)地址的合法與非法是在通信協(xié)議中約定好的。例如,可以約定網(wǎng)絡(luò)地址范圍為【01H,F(xiàn)7H】之間的地址都屬于合法網(wǎng)絡(luò)地址,所有的合法網(wǎng)絡(luò)地址組成合法網(wǎng)絡(luò)地址群,則該范圍以外的地址都屬于非法網(wǎng)絡(luò)地址。主節(jié)點設(shè)備按照上述約定在合法地址分配指令中配置一個合法網(wǎng)絡(luò)地址,從節(jié)點設(shè)備也按照上述約定判斷本設(shè)備的網(wǎng)絡(luò)地址是否合法。
S12,從節(jié)點設(shè)備在判定本設(shè)備的網(wǎng)絡(luò)地址非法時進(jìn)入延時搶占過程;其中,所述延時搶占過程的時長預(yù)先配置,且不同的從節(jié)點設(shè)備所配置的延時搶占過程的時長不同;
其中,所述延時搶占過程的時長配置方法可以是預(yù)先逐一配置的。
為了提高配置效率,在本實施例中所述延時搶占過程的時長配置方法采用以下的方式:
從節(jié)點設(shè)備在上電時獲取其唯一物理編號;
從節(jié)點設(shè)備根據(jù)所述唯一物理編號以及預(yù)先配置的統(tǒng)一算法計算所述延時搶占過程的時長并存儲起來。
由于從節(jié)點設(shè)備能夠很容易就獲取得到本設(shè)備的唯一物理編號,那么只需要在從節(jié)點設(shè)備內(nèi)部寫入統(tǒng)一算法,從節(jié)點設(shè)備就能自動根據(jù)唯一物理編號以及統(tǒng)一算法來計算出本設(shè)備所對應(yīng)的延時搶占過程的時長。此外,不同的從節(jié)點設(shè)備的唯一物理編號是唯一的,不同的從節(jié)點設(shè)備通過統(tǒng)一算法計算出來的延時搶占過程的時長也不同。
S13,當(dāng)在所述延時搶占過程中從節(jié)點設(shè)備沒有接收到其他從節(jié)點設(shè)備發(fā)送的分配成功通知消息時,所述從節(jié)點設(shè)備響應(yīng)于所述延時搶占過程結(jié)束將本設(shè)備的地址設(shè)定為所述合法地址分配指令所記載的網(wǎng)絡(luò)地址,并向所述主節(jié)點設(shè)備以及其他從節(jié)點設(shè)備發(fā)送所述分配成功通知消息。
由于每個從節(jié)點設(shè)備都會經(jīng)歷延時搶占過程,并且不同的從節(jié)點設(shè)備所經(jīng)歷的時長不同,那么延時搶占過程的時長最短的從節(jié)點設(shè)備首先“搶占”所述合法地址分配指令所記載的網(wǎng)絡(luò)地址,將本設(shè)備的地址設(shè)定為所述合法地址分配指令所記載的網(wǎng)絡(luò)地址,并向所述主節(jié)點設(shè)備以及其他從節(jié)點設(shè)備發(fā)送所述分配成功通知消息,使得有且只有一臺從節(jié)點設(shè)備能“搶占”到所述合法地址分配指令所記載的網(wǎng)絡(luò)地址。
優(yōu)選地,所述合法地址分配指令包括第一地址分配指令;所述第一地址分配指令為所述主節(jié)點設(shè)備按照一定的時間間隔發(fā)送到各個從節(jié)點設(shè)備,且所述第一地址分配指令所記載的網(wǎng)絡(luò)地址為未被分配的合法網(wǎng)絡(luò)地址。
需要說明的是,這里所述的未被分配的合法網(wǎng)絡(luò)地址,是指在當(dāng)前沒有任何一臺從節(jié)點設(shè)備占用的網(wǎng)絡(luò)地址。在步驟S13中,主節(jié)點設(shè)備接收到從節(jié)點設(shè)備發(fā)送的分配成功通知消息,并將被分配的網(wǎng)絡(luò)地址記錄下來,從而在合法網(wǎng)絡(luò)地址群中區(qū)分未被分配的合法網(wǎng)絡(luò)地址以及被分配了的合法網(wǎng)絡(luò)地址。為了避免將已被分配了的合法網(wǎng)絡(luò)地址又分配出去從而產(chǎn)生沖突,在本實施例中第一地址分配指令所記載的網(wǎng)絡(luò)地址為未被分配的合法網(wǎng)絡(luò)地址。
由于程序出錯或者人為原因會導(dǎo)致將兩臺從節(jié)點設(shè)備的網(wǎng)絡(luò)地址設(shè)置成相同的,從而產(chǎn)生網(wǎng)絡(luò)地址沖突,Modbus通信網(wǎng)絡(luò)出錯。為了解決網(wǎng)絡(luò)地址沖突的問題,在本發(fā)明的第一種實施方式中將產(chǎn)生沖突的網(wǎng)絡(luò)地址記載在合法地址分配指令中。
具體地,所述合法地址分配指令還包括第二地址分配指令;所述第二地址分配指令為所述主節(jié)點設(shè)備在檢測到有至少兩個從節(jié)點設(shè)備的網(wǎng)絡(luò)地址沖突時發(fā)送到各個從節(jié)點設(shè)備,且所述第二地址分配指令所記載的網(wǎng)絡(luò)地址為產(chǎn)生沖突的網(wǎng)絡(luò)地址;
所述方法還包括:
從節(jié)點設(shè)備在判定本設(shè)備的網(wǎng)絡(luò)地址合法時,判斷本設(shè)備的網(wǎng)絡(luò)地址與所述合法地址分配指令所記載的網(wǎng)絡(luò)地址是否相同,并在相同時進(jìn)入延時搶占過程;
當(dāng)在所述延時搶占過程中從節(jié)點設(shè)備接收到其他從節(jié)點設(shè)備發(fā)送的分配成功通知消息時,從節(jié)點設(shè)備判斷本設(shè)備的網(wǎng)絡(luò)地址與所述合法地址分配指令所記載的網(wǎng)絡(luò)地址是否相同,并在相同時將本設(shè)備的網(wǎng)絡(luò)地址設(shè)定為非法網(wǎng)絡(luò)地址。
此時,會搶占這個產(chǎn)生沖突的網(wǎng)絡(luò)地址的從節(jié)點設(shè)備有兩種:一種是本身的網(wǎng)絡(luò)地址是非法的,另一種是原來使用該產(chǎn)生沖突的網(wǎng)絡(luò)地址的從節(jié)點設(shè)備,并且第二種的從節(jié)點設(shè)備至少是兩臺。
為了更清楚地說明這種實施方式,以下舉例說明:
假設(shè)從節(jié)點設(shè)備1和從節(jié)點設(shè)備2的網(wǎng)絡(luò)地址沖突,共用了網(wǎng)絡(luò)地址X,并且從節(jié)點設(shè)備3的網(wǎng)絡(luò)地址是非法的。主節(jié)點設(shè)備檢測到從節(jié)點設(shè)備1和從節(jié)點設(shè)備2的網(wǎng)絡(luò)地址沖突,將記載了網(wǎng)絡(luò)地址X的合法地址分配指令廣播出去。從節(jié)點設(shè)備3的網(wǎng)絡(luò)地址是非法的所以參與“搶占”,而從節(jié)點設(shè)備1和從節(jié)點設(shè)備2的網(wǎng)絡(luò)地址與網(wǎng)絡(luò)地址X均相同,因而從節(jié)點設(shè)備1和從節(jié)點設(shè)備2也參與搶占。對于從節(jié)點設(shè)備1和從節(jié)點設(shè)備2來說,如果沒有搶占到網(wǎng)絡(luò)地址X,就將本設(shè)備的網(wǎng)絡(luò)地址設(shè)為非法網(wǎng)絡(luò)地址,在下次分配時再參與“搶占”,從而解決了從節(jié)點設(shè)備之間的網(wǎng)絡(luò)地址沖突的問題。
同樣為了解決了從節(jié)點設(shè)備之間的網(wǎng)絡(luò)地址沖突的問題,在第二種實施方式中,本方法還包括:
從節(jié)點設(shè)備接收主節(jié)點設(shè)備發(fā)送的地址沖突調(diào)整指令,并判斷本設(shè)備的網(wǎng)絡(luò)地址與產(chǎn)生沖突的網(wǎng)絡(luò)地址是否相同;所述地址沖突調(diào)整指令為所述主節(jié)點設(shè)備在檢測到有至少兩個從節(jié)點設(shè)備的網(wǎng)絡(luò)地址沖突時發(fā)送到各個從節(jié)點設(shè)備;所述地址沖突調(diào)整指令中記載了所述產(chǎn)生沖突的網(wǎng)絡(luò)地址;
從節(jié)點設(shè)備在判定本設(shè)備的網(wǎng)絡(luò)地址與所述產(chǎn)生沖突的網(wǎng)絡(luò)地址相同時,將本設(shè)備的網(wǎng)絡(luò)地址設(shè)定為非法網(wǎng)絡(luò)地址。
即直接將網(wǎng)絡(luò)地址沖突的從節(jié)點設(shè)備的網(wǎng)絡(luò)地址設(shè)置為非法網(wǎng)絡(luò)地址,在下次分配時再參與“搶占”。與第一種實施方式相比,在第一種實施方式中網(wǎng)絡(luò)地址沖突的從節(jié)點設(shè)備通過“搶占”產(chǎn)生沖突的網(wǎng)絡(luò)地址來解決網(wǎng)絡(luò)地址沖突的問題,而第二種實施方式則是直接將網(wǎng)絡(luò)地址沖突的從節(jié)點設(shè)備的網(wǎng)絡(luò)地址設(shè)置為非法網(wǎng)絡(luò)地址,這兩種實施方式都可以實現(xiàn)。
更優(yōu)選地,所述方法還包括:
從節(jié)點設(shè)備獲取用戶輸入的網(wǎng)絡(luò)地址設(shè)定指令;
從節(jié)點設(shè)備將本設(shè)備的網(wǎng)絡(luò)地址設(shè)定為所述網(wǎng)絡(luò)地址設(shè)定指令所要求設(shè)定的網(wǎng)絡(luò)地址。用戶可以根據(jù)需要為某臺從節(jié)點設(shè)備配置指定的網(wǎng)絡(luò)地址。
為了執(zhí)行上述的Modbus通信網(wǎng)絡(luò)的網(wǎng)絡(luò)地址分配方法,本發(fā)明實施例還提供了一種Modbus通信網(wǎng)絡(luò)中的從節(jié)點設(shè)備。請參閱圖2,其是本發(fā)明實施例提供的一種Modbus通信網(wǎng)絡(luò)中的從節(jié)點設(shè)備10的結(jié)構(gòu)框圖,包括:
分配指令接收模塊11,用于接收主節(jié)點設(shè)備發(fā)送的合法地址分配指令,并判斷本設(shè)備的網(wǎng)絡(luò)地址是否合法;其中,任一從節(jié)點設(shè)備10的原始網(wǎng)絡(luò)地址屬于非法網(wǎng)絡(luò)地址;
第一判定模塊12,用于在判定本設(shè)備的網(wǎng)絡(luò)地址非法時進(jìn)入延時搶占過程;其中,所述延時搶占過程的時長預(yù)先配置,且不同的從節(jié)點設(shè)備10所配置的延時搶占過程的時長不同;
第一地址設(shè)定模塊13,用于當(dāng)在所述延時搶占過程中從節(jié)點設(shè)備10沒有接收到其他從節(jié)點設(shè)備10發(fā)送的分配成功通知消息時,所述從節(jié)點設(shè)備10響應(yīng)于所述延時搶占過程結(jié)束將本設(shè)備的地址設(shè)定為所述合法地址分配指令所記載的網(wǎng)絡(luò)地址,并向所述主節(jié)點設(shè)備以及其他從節(jié)點設(shè)備10發(fā)送所述分配成功通知消息。
優(yōu)選地,所述合法地址分配指令包括第一地址分配指令;所述第一地址分配指令為所述主節(jié)點設(shè)備按照一定的時間間隔發(fā)送到各個從節(jié)點設(shè)備10,且所述第一地址分配指令所記載的網(wǎng)絡(luò)地址為未被分配的合法網(wǎng)絡(luò)地址。
為了解決網(wǎng)絡(luò)地址沖突的問題,在第一種實施方式中,所述合法地址分配指令還包括第二地址分配指令;所述第二地址分配指令為所述主節(jié)點設(shè)備在檢測到有至少兩個從節(jié)點設(shè)備10的網(wǎng)絡(luò)地址沖突時發(fā)送到各個從節(jié)點設(shè)備10,且所述第二地址分配指令所記載的網(wǎng)絡(luò)地址為產(chǎn)生沖突的網(wǎng)絡(luò)地址;
所述從節(jié)點設(shè)備10還包括:
第二判定模塊,用于在判定本設(shè)備的網(wǎng)絡(luò)地址合法時,判斷本設(shè)備的網(wǎng)絡(luò)地址與所述合法地址分配指令所記載的網(wǎng)絡(luò)地址是否相同,并在相同時進(jìn)入延時搶占過程;
第二設(shè)定模塊,用于當(dāng)在所述延時搶占過程中接收到其他從節(jié)點設(shè)備10發(fā)送的分配成功通知消息時,判斷本設(shè)備的網(wǎng)絡(luò)地址與所述合法地址分配指令所記載的網(wǎng)絡(luò)地址是否相同,并在相同時將本設(shè)備的網(wǎng)絡(luò)地址設(shè)定為非法網(wǎng)絡(luò)地址。
為了解決網(wǎng)絡(luò)地址沖突的問題,在第二種實施方式中,所述從節(jié)點設(shè)備10還包括:
調(diào)整指令接收模塊,用于接收主節(jié)點設(shè)備發(fā)送的地址沖突調(diào)整指令,并判斷本設(shè)備的網(wǎng)絡(luò)地址與產(chǎn)生沖突的網(wǎng)絡(luò)地址是否相同;所述地址沖突調(diào)整指令為所述主節(jié)點設(shè)備在檢測到有至少兩個從節(jié)點設(shè)備10的網(wǎng)絡(luò)地址沖突時發(fā)送到各個從節(jié)點設(shè)備10;所述地址沖突調(diào)整指令中記載了所述產(chǎn)生沖突的網(wǎng)絡(luò)地址;
從節(jié)點設(shè)備10在判定本設(shè)備的網(wǎng)絡(luò)地址與所述產(chǎn)生沖突的網(wǎng)絡(luò)地址相同時,將本設(shè)備的網(wǎng)絡(luò)地址設(shè)定為非法網(wǎng)絡(luò)地址。
優(yōu)選地,所述從節(jié)點設(shè)備10還包括:
物理編號獲取模塊,用于在上電時獲取其唯一物理編號;
時長計算模塊,用于根據(jù)所述唯一物理編號以及預(yù)先配置的統(tǒng)一算法計算所述延時搶占過程的時長并存儲起來。
優(yōu)選地,所述從節(jié)點設(shè)備10還包括:
設(shè)定指令獲取模塊,用于獲取用戶輸入的網(wǎng)絡(luò)地址設(shè)定指令;
第四地址設(shè)定模塊,用于從節(jié)點設(shè)備10將本設(shè)備的網(wǎng)絡(luò)地址設(shè)定為所述網(wǎng)絡(luò)地址設(shè)定指令所要求設(shè)定的網(wǎng)絡(luò)地址。
需要說明的是,本發(fā)明實施例提供的一種Modbus通信網(wǎng)絡(luò)中的從節(jié)點設(shè)備10用于執(zhí)行上述的Modbus通信網(wǎng)絡(luò)的網(wǎng)絡(luò)地址分配方法,兩者的工作原理和有益效果一一對應(yīng),因而不再贅述。
請參閱圖3,其是本發(fā)明實施例提供的一種Modbus通信系統(tǒng)的結(jié)構(gòu)示意圖。所述Modbus通信系統(tǒng)包括主節(jié)點設(shè)備20以及若干個圖2實施例所示的從節(jié)點設(shè)備10。所述從節(jié)點設(shè)備10與所述主節(jié)點設(shè)備20之間通過總線連接。在圖3中雖然只用三個從節(jié)點設(shè)備10示意,但實際上從節(jié)點設(shè)備10的數(shù)量是不限制的。
相比于現(xiàn)有技術(shù),本發(fā)明實施例的有益效果在于:本發(fā)明實施例提供了一種Modbus通信網(wǎng)絡(luò)的網(wǎng)絡(luò)地址分配方法、從節(jié)點設(shè)備與通信系統(tǒng),其中方法包括:從節(jié)點設(shè)備接收主節(jié)點設(shè)備發(fā)送的合法地址分配指令,并判斷本設(shè)備的網(wǎng)絡(luò)地址是否合法;從節(jié)點設(shè)備在判定本設(shè)備的網(wǎng)絡(luò)地址非法時進(jìn)入延時搶占過程;當(dāng)在所述延時搶占過程中從節(jié)點設(shè)備沒有接收到其他從節(jié)點設(shè)備發(fā)送的分配成功通知消息時,所述從節(jié)點設(shè)備響應(yīng)于所述延時搶占過程結(jié)束將本設(shè)備的地址設(shè)定為所述合法地址分配指令所記載的網(wǎng)絡(luò)地址,并向所述主節(jié)點設(shè)備以及其他從節(jié)點設(shè)備發(fā)送所述分配成功通知消息。在本發(fā)明實施例中,不同的從節(jié)點設(shè)備所配置的延時搶占過程的時長不同,使得延時搶占過程的時長最短的從節(jié)點設(shè)備首先“搶占”所述合法地址分配指令所記載的網(wǎng)絡(luò)地址,將本設(shè)備的地址設(shè)定為所述合法地址分配指令所記載的網(wǎng)絡(luò)地址,并向所述主節(jié)點設(shè)備以及其他從節(jié)點設(shè)備發(fā)送所述分配成功通知消息,使得有且只有一臺從節(jié)點設(shè)備能“搶占”到所述合法地址分配指令所記載的網(wǎng)絡(luò)地址。本發(fā)明實施例能夠自動化地設(shè)置從機地址,無需人工逐一設(shè)置,在有新的從節(jié)點設(shè)備接入時自動分配網(wǎng)絡(luò)地址使從節(jié)點設(shè)備快速加入到總線中,大大地提高設(shè)置從機的網(wǎng)絡(luò)地址的效率,減小系統(tǒng)成本。
以上所揭露的僅為本發(fā)明一種較佳實施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于發(fā)明所涵蓋的范圍。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(Random Access Memory,RAM)等。