一種點對多點輪詢通訊方法與流程
2023-05-28 21:06:46 2
本發明屬於通信
技術領域:
,尤其涉及一種點對多點輪詢通訊方法。
背景技術:
:傳統的輪詢問答方式主要採用主控節點依據輪詢列表依次詢問、客戶端收到詢問指令後作出回應的方式,即,主控節點向第一個客戶端發送查詢數據指令→第一個客戶端回應;主控節點向第二個客戶端發送查詢數據指令→第二個客戶端回應……直至,主控節點向第N個客戶端發送查詢數據指令→第N個客戶端回應。申請號02131775.5的發明專利提供了一種設備數據輪詢調度方法,採用如下步驟:A、讀取設備數據,所有設備按其類型和內部模塊分類,並賦予相應的優先級和輪詢間隔,生成輪詢任務列表;B、按輪詢間隔為設備周期輪詢數據,根據輪詢任務列表啟動輪詢調度線程,同時啟動連通狀態檢測線程;C、根據輪詢優先級和輪詢間隔依次對設備的相應模塊進行輪詢。該方法根據預訂輪詢列表對設備進行輪詢,主控節點需要不斷發出輪詢指令,通知相應的客戶端進行應答,完成一次輪詢所需時間很長,輪詢效率低。技術實現要素:為解決現有技術存在的問題,本發明提供一種點對多點輪詢通訊方法,該輪詢通訊方法效率高,對於需要傳送大量相同的重要數據至客戶端且需要客戶端進行回應時效率可大幅度提高。本發明提供的點對多點輪詢通訊方法,包括以下步驟:主控節點向終端設備發出輪詢開始應答指令;終端設備在收到輪詢開始應答指令後,根據事先獲得的被輪詢終端設備列表中規定的應答次序依次應答,即,被輪詢終端設備列表中規定的第一個應答的終端設備首先應答,其餘終端設備在偵聽到排在其前面的終端設備應答完畢後應答;或者,所述輪詢開始應答指令中含第一個應答的終端設備的序號,該序號對應的終端設備首先應答,其餘終端設備根據被輪詢終端設備列表中規定的應答次序、偵聽到排在其前面的終端設備應答完畢後應答。本發明對傳統的輪詢方式作出重大改進,將傳統輪詢方法中的主控節點根據輪詢任務列表依次向各終端設備發出輪詢指令、終端設備根據輪詢指令應答的方式,調整為,由主控節點直接向所有終端設備廣播輪詢開始應答指令,終端設備根據設定好的被輪詢終端設備列表中的應答次序依次應答,或者在輪詢開始應當指令中指定第一個應答的終端設備,由該終端設備首先應答,其餘終端設備根據被輪詢終端設備列表中的應答次序依次應答。本發明減少主控節點與終端設備之間的輪詢通訊次數,使得輪詢效率大幅度提升。為避免後一終端設備偵聽到前一終端設備已經完成應答,但主控節點尚未完成相關數據存儲等工作,導致出現衝突等問題,所述被輪詢終端設備列表中還包括數據保護間隔時長,終端設備在偵聽到排在其前面的終端設備應答完畢,等待數據保護間隔時長規定的時間屆滿後再應答。由於終端設備或通訊存在發生故障的可能,為避免一個或多個終端設備應答超時導致輪詢中斷,本發明採用技術方案進行調整,當一個或多個終端設備未應答,主控節點重新發出輪詢開始應答指令,該輪詢開始應答指令中含有第一個應答的終端設備的序號,該序號對應的終端設備首先應答,其餘終端設備根據被輪詢終端設備列表中規定的應答次序、偵聽到排在其前面的終端設備應答完畢後應答。當各終端設備根據被輪詢終端設備列表中規定的應答次序依次應答時,通過含有第一個應答的終端設備的序號的輪詢開始應答指令進行調整,跳過發生故障的終端設備。當主控節點發出的輪詢開始應答指令含有第一個應答的終端設備的序號時,此時發生終端設備或通訊故障,主控節點再次發送輪詢開始應答指令,相當於本發明點對多點輪詢通訊方法重新啟動。本發明還採用以下方案來避免一個或多個終端設備應答超時導致輪詢中斷,當一個或多個終端設備未應答,排在未應答終端設備後的終端設備自行啟動應答。考慮到通訊效率以及防止通訊死鎖,本發明約定最大可允許的連續故障終端設備的數量,當連續未應答終端設備數量超過預設值時,由主控節點重新發出輪詢開始應答指令,輪詢開始應答指令中含第一個應答的終端設備的序號,該序號對應的終端設備首先應答,其餘終端設備根據被輪詢終端設備列表中規定的應答次序、偵聽到排在其前面的終端設備應答完畢後應答。為實現全部終端設備有序完成應答,當所述輪詢開始應答指令中指定第一個應答的終端設備的序號,自該序號的終端設備、以及所述被輪詢終端設備列表中排在該序號之後其餘終端設備全部應答完畢後,所述被輪詢終端設備列表中排在第一位的終端設備開始應答,直至所述被輪詢終端設備列表中排在該序號前面的終端設備全部應答完畢。終端設備可以通過多種方式獲得被輪詢終端設備列表,如,在主控節點發出輪詢應答指令之前,所述主控節點向終端設備廣播被輪詢終端設備列表;或者,所述被輪詢終端設備列表事先存儲在終端設備中。本發明提供的點對多點輪詢通訊方法,由終端設備自行根據被輪詢終端設備列表中的順序依次應答,避免主控節點單獨給每個終端設備發送輪詢指令,再由終端設備應答,大大提高了輪詢效率,節約了資源。本發明可用於對現有系統的改進,如消防設施、通訊設備輪詢,無需改變硬體環境,改造成本低廉。附圖說明圖1為實施例一流程圖;圖2為實施例二流程圖;圖3為終端設備應答超時流程圖。具體實施方式實施例一:如圖1所示,由主控節點廣播被輪詢終端設備列表(被輪詢終端設備列表也可以事先存儲在終端設備中),該被輪詢終端設備列表中含有各終端設備的應答次序以及數據保護間隔時長;主控節點向所有終端設備廣播輪詢開始應答指令;終端設備根據被輪詢終端設備列表規定的應答次序依次應答,具體的實現是:被輪詢終端設備列表中設定的第一個終端設備總是立即應答,其它終端設備在偵聽到其上一個終端設備數據應答完畢後,延時一段時間(即數據保護間隔時長)後,自動開始應答,直至被輪詢終端設備列表中最後一個終端設備應答完畢後輪詢結束。以下表為例進行說明,:序號12345終端設備號ACBDE表1:被輪詢終端設備列表當收到主控節點發出的輪詢開始應答指令後,A首先應答,C其次應答,B、D、E依次應答。實施例二:如圖2所示,由主控節點廣播被輪詢終端設備列表(被輪詢終端設備列表也可以事先存儲在終端設備中),該被輪詢終端設備列表中含有各終端設備的應答次序以及數據保護間隔時長;主控節點向所有終端設備廣播輪詢開始應答指令,輪詢開始應答指令中含有第一個應答的終端設備的序號;終端設備依次應答,具體的實現是:輪詢開始應答指令中指定的第一個應答的終端設備立即應答,其餘終端設備依據被輪詢終端設備列表中規定的應答次序依次應答,更具體地說,被輪詢終端設備列表中規定的排在輪詢開始應答指令中指定的第一個應答的終端設備後的終端設備,在偵聽到輪詢開始應答指令中指定的第一個應答的終端設備應答完畢,延時一段時間(即數據保護間隔時長)後,自動開始應答,依此類推,直至排在第一個應答的終端設備後的終端設備全部應答完畢,此時,並非所有的終端設備都應答完畢,被輪詢終端設備列表中排在輪詢開始應答指令中指定的第一個應答的終端設備前的終端設備尚未應答,那麼,被輪詢終端設備列表中規定的第一個應答終端設備首先應答,依此類推,直至排在輪詢開始應答指令中指定的第一個應答的終端設備前的終端設備全部應答完畢。以下表為例進行說明:序號12345終端設備號ACDBE表2:被輪詢終端設備列表序號3終端設備號D表3:輪詢開始應答指令中含有的應答序號當收到主控節點發出的輪詢開始應答指令後,終端設備D首先應答,終端設備B偵聽到終端設備D應答完畢後應答,終端設備E偵聽到終端設備B應答完畢後應答,由於仍有終端設備尚未應答,此時,由被輪詢終端設備列表中排在第一位的終端設備A應答,終端設備C偵聽到終端設備A應答完畢後應答。如圖3所示,當發生通訊故障或終端設備故障,一個或多個終端設備應答超時,此時可採用兩種方式解決,避免輪詢終端:其一,由主控節點根據業務邏輯進行判斷處理後重新發送輪詢開始應答指令,輪詢開始應答指令中含有第一個應答的終端設備的序號。以表2為例進行說明,終端設備A應答完畢後,按照次序,應該由終端設備C應答,但終端設備C發生故障,主控節點發出含有表3的輪詢開始應答指令,此時,從終端D開始應答,B、E依次應答。在不同的輪詢環境中,業務邏輯存在不同,例如,在消防噴淋設備輪詢中,部分噴淋設備的優先級較高,則,重新發送的輪詢開始應答指令可以指定優先級最高的終端設備首先應答。其二,被輪詢終端設備列表中,排在應答超時的終端設備後的終端設備自行啟動應答,依次類推,直至終端設備全部應答完畢。以表2為例,終端設備A應答完畢後,按照次序,應該由終端設備C應答,但終端設備C發生故障,終端設備D在系統設定的時間內未偵聽到終端設備C應答完畢的狀態,那麼終端設備D自行啟動應答,依此類推。如果終端設備D也發生故障,那麼終端設備B在系統設定的時間未偵聽到終端設備D應答完畢的狀態,那麼終端設備B自行啟動應答。考慮到系統的通訊效率以及防止通訊死鎖,本發明設計有最大可允許的連續故障終端設備數量,當連續未應答終端數量超出最大可允許的連續故障終端設備數量時,由主控節點重新發送輪詢開始應答指令,輪詢開始應答指令中含有第一個應答的終端設備的序號。以下舉例說明本發明與傳統方式之間的效果差異:代號全稱單位PB物理線路波特率bit/sMDL主控節點發出的指令/數據長度bitsCDL客戶端地址長度bitsSDL客戶端應答數據長度bitsN客戶端數量unitSLOT數據保護間隔時長s表4輪詢效率計算依據以簡單輪詢通訊為例(樓宇溫度探頭輪檢),物理通訊波特率為9600bit/s,主控節點發出的指令長度為16bits,客戶端地址長度為16bits,客戶端應答數據長度為16bits,數據保護間隔時長為1毫秒(0.001秒),並假設對1000個探頭進行輪檢。傳統輪詢方式:主控節點向第一個客戶端發送查詢數據指令→第一個客戶端回應,主控節點向第二個客戶端發送查詢數據指令→第二個客戶端回應,……主控節點向第N個客戶端發送查詢數據指令→第N個客戶端回應。傳統方式對N個客戶端完成一次輪詢通訊時長為:N*((MDL+CDL)/PB+(SDL+CDL)/PB+SLOT)=1000*((16+16)/9600+(16+16)/9600+0.001)=7.667秒。本發明方式:主控節點發送被輪詢客戶端列表及數據保護間隔時長,主控節點發送輪詢開始應答指令,第一個客戶端回應,第二個客戶端回應,……第N個客戶端回應。本發明對N個客戶端完成一次輪詢通訊時長為:MDL/PB+N*((SDL+CDL)/PB+SLOT)=16/9600+1000*((16+16)/9600+0.001)=4.335秒。本發明與傳統輪詢方式相比,輪詢效率提升至原來的1.768倍,對於需要傳送大量相同的重要數據至客戶端且需要客戶端進行回應時效率甚至可成百上千倍地提升。當前第1頁1 2 3