專利名稱:在Modbus通信網(wǎng)絡(luò)中為從節(jié)點設(shè)備分配網(wǎng)絡(luò)地址的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種分配地址的方法,尤其是一種在Modbus通信網(wǎng)絡(luò)中為從節(jié)點設(shè)備分配地址的方法。
背景技術(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)重復(fù)地址或者遺漏地址,就會導(dǎo)致通信網(wǎng)絡(luò)沖突,系統(tǒng)無法正常使用。傳統(tǒng)采用人工手動設(shè)定來設(shè)定通信網(wǎng)絡(luò)從節(jié)點的網(wǎng)絡(luò)地址,這種方法不僅工作量大,而且還可能導(dǎo)致重復(fù)設(shè)定地址值得情況,引入人工錯誤。中國專利CN101309306公開了一種在Modbus通信網(wǎng)絡(luò)中為從節(jié)點設(shè)備分配地址的方法,由主節(jié)點設(shè)備周期性的向從節(jié)點設(shè)備發(fā)送地址輪詢報文,一旦網(wǎng)絡(luò)中存在該輪詢報文中包含的地址則回應(yīng)該輪詢報文, 并設(shè)定該從節(jié)點設(shè)備的地址。使用該方法需要首先在主節(jié)點設(shè)備中設(shè)定網(wǎng)絡(luò)中從節(jié)點設(shè)備的地址與設(shè)備總量并依次詢問,顯得設(shè)定繁瑣,并且設(shè)定網(wǎng)絡(luò)地址需要很長的時間。中國專利CN1019694^公開了一種在RS-485總線上電能表的自動識別方法,采用主節(jié)點與從節(jié)點之間的通信來識別從節(jié)點,但在接收到亂碼應(yīng)答的情況下,主節(jié)點需要進(jìn)行最多100次循環(huán)來測試網(wǎng)絡(luò)中從節(jié)點設(shè)備地址,耗時依然很長。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)的不足,本發(fā)明的目的是要提供一種在Modbus網(wǎng)絡(luò)中效率高、時間短的為從節(jié)點設(shè)備份分配地址的方法。為實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下一種在Modbus通信網(wǎng)絡(luò)中為從節(jié)點設(shè)備分配地址的方法,其包括以下步驟1)初始化主節(jié)點設(shè)備和從節(jié)點設(shè)備,設(shè)置從節(jié)點設(shè)備的設(shè)備地址的最小值IDs和最大值IDe,所述最小值IDs和最大值IDe均為自然數(shù);2)主節(jié)點設(shè)備根據(jù)最小值IDs和最大值IDe計算出一大于或等于最小值IDs,小于或等于最大值IDe的中間值IDt,所述中間值IDt為自然數(shù),并向各從節(jié)點設(shè)備發(fā)送包含有所述中間值IDt的地址報文;3)從節(jié)點設(shè)備接收到該地址報文后進(jìn)行解析,將自身的設(shè)備地址與所述中間值 IDt進(jìn)行比較,如果自身設(shè)備地址小于所述中間值IDt,則向主節(jié)點設(shè)備發(fā)送包含該從節(jié)點設(shè)備的設(shè)備地址的應(yīng)答報文,否則不回應(yīng)該地址報文;4)如果主節(jié)點設(shè)備收到一應(yīng)答報文,則向該從應(yīng)答報文中的設(shè)備地址對應(yīng)的節(jié)點設(shè)備發(fā)送包含Modbus網(wǎng)絡(luò)地址的設(shè)定報文,如果在等待時間內(nèi)收到該節(jié)點設(shè)備的確認(rèn)報文,則該從節(jié)點設(shè)備的Modbus網(wǎng)絡(luò)地址已經(jīng)被確定,該從節(jié)點設(shè)備將不再對主節(jié)點設(shè)備發(fā)送的信息進(jìn)行回應(yīng),并返回步驟1);否則主節(jié)點設(shè)備將中間值IDt賦給最大值IDe,返回步驟2);5)如果主節(jié)點設(shè)備收到至少兩個應(yīng)答報文,則將中間值IDt賦給最大值IDe,返回步驟2);6)如果主節(jié)點設(shè)備沒有收到應(yīng)答報文,則將中間值IDt賦給最小值IDs,返回步驟 2);當(dāng)主節(jié)點設(shè)備判斷最大值IDe與最小值IDs之差小于2時,所有的從節(jié)點設(shè)備都被確認(rèn)并設(shè)定地址值,流程結(jié)束。進(jìn)一步,所述最小值IDt設(shè)為1,所述最大值IDe設(shè)為232_1。進(jìn)一步,所述中間值IDt的計算公式為
Γ ^ IDs+ IDe
權(quán)利要求
1.一種在Modbus通信網(wǎng)絡(luò)中為從節(jié)點設(shè)備分配網(wǎng)絡(luò)地址的方法,其特征在于,其包括以下步驟1)初始化主節(jié)點設(shè)備和從節(jié)點設(shè)備,設(shè)置從節(jié)點設(shè)備的設(shè)備地址的最小值IDs和最大值IDe,所述最小值IDs和最大值IDe均為自然數(shù);2)主節(jié)點設(shè)備根據(jù)最小值IDs和最大值IDe計算出一大于或等于最小值IDs,小于或等于最大值IDe的中間值IDt,所述中間值IDt為自然數(shù),并向各從節(jié)點設(shè)備發(fā)送包含有所述中間值IDt的地址報文;3)從節(jié)點設(shè)備接收到該地址報文后進(jìn)行解析,將自身的設(shè)備地址與所述中間值IDt進(jìn)行比較,如果自身設(shè)備地址小于所述中間值IDt,則向主節(jié)點設(shè)備發(fā)送包含該從節(jié)點設(shè)備的設(shè)備地址的應(yīng)答報文,否則不回應(yīng)該地址報文;4)如果主節(jié)點設(shè)備收到一應(yīng)答報文,則向該從應(yīng)答報文中的設(shè)備地址對應(yīng)的節(jié)點設(shè)備發(fā)送包含Modbus網(wǎng)絡(luò)地址的設(shè)定報文,如果在等待時間內(nèi)收到該節(jié)點設(shè)備的確認(rèn)報文, 則該從節(jié)點設(shè)備的Modbus網(wǎng)絡(luò)地址已經(jīng)被確定,該從節(jié)點設(shè)備將不再對主節(jié)點設(shè)備發(fā)送的信息進(jìn)行回應(yīng),并返回步驟1);否則主節(jié)點設(shè)備將中間值IDt賦給最大值IDe,返回步驟 2);5)如果主節(jié)點設(shè)備收到至少兩個應(yīng)答報文,則將中間值IDt賦給最大值IDe,返回步驟2);6)如果主節(jié)點設(shè)備沒有收到應(yīng)答報文,則將中間值IDt賦給最小值IDs,返回步驟2); 當(dāng)主節(jié)點設(shè)備判斷最大值IDe與最小值IDs之差小于2時,所有的從節(jié)點設(shè)備都被確認(rèn)并設(shè)定地址值,流程結(jié)束。
2.如權(quán)利要求1所述的方法,其特征在于,所述最小值IDt設(shè)為1,所述最大值IDe設(shè)為滬2-1。
3.如權(quán)利要求1或2所述的方法,其特征在于,所述中間值IDt的計算公式為
全文摘要
本發(fā)明所述的一種在Modbus網(wǎng)絡(luò)中為從節(jié)點設(shè)備分配地址的方法屬于通信領(lǐng)域,實現(xiàn)了由主節(jié)點設(shè)備自動對Modbus網(wǎng)絡(luò)中的各從節(jié)點設(shè)備的自動識別并分配Modbus地址的方法。相對于現(xiàn)有技術(shù),本發(fā)明能夠在較短的時間內(nèi)確定Modbus網(wǎng)絡(luò)中從節(jié)點設(shè)備的Mosbus地址,并且能根據(jù)從節(jié)點地址的大小來設(shè)定從節(jié)點設(shè)備的響應(yīng)延遲時間,加快從節(jié)點設(shè)備地址的設(shè)定速度。
文檔編號H04L29/12GK102325201SQ20111033146
公開日2012年1月18日 申請日期2011年10月27日 優(yōu)先權(quán)日2011年10月27日
發(fā)明者劉玉明, 古雄文, 吳蕩儒 申請人:珠海派諾科技股份有限公司