Modbus的地址規(guī)則 Modbus的通信模式
時間:2023-08-31 02:11:21
首先我們要清楚:Modbus是一種串行鏈路上的主從協(xié)議,在通信線路上只能有一個主機存在,不會有多主機存在的情況。雖然主機只有一個,但是從機是可以有多個的。
Modbus的通信過程都是由主機發(fā)起的,從機在接收到主機的請求后再進行響應,從機不會主動進行數(shù)據(jù)的發(fā)送。并且從機之間也不會互相發(fā)送數(shù)據(jù)。
1、Modbus的地址規(guī)則
Modbus中的每個從機為了能在通信時被主機識別,都會有一個地址,也稱為從節(jié)點地址。
 (資料圖片)
(資料圖片)
從節(jié)點地址對從設備而言必須是唯一的,在總線上也只能有唯一的一個設備地址,即從機設備的地址在總線上也不能沖突。
從機是有唯一的設備地址的,而主機本身是沒有地址的。
Modbus支持的尋址空間為256個,如下:
從上圖中可以看到,給子節(jié)點使用的地址范圍是1 ~ 247,248 ~255是被保留著的。非常重要的一點,0是廣播地址,所有的子節(jié)點都必須要能夠識別廣播地址。
2、Modbus的通信模式
Modbus的通信模式有兩種:單播模式和廣播模式。
(1)單播模式
單播模式:主機要訪問某個子節(jié)點的時候,是通過子節(jié)點的地址進行的一對一的訪問方式。子節(jié)點在收到主節(jié)點發(fā)過來的請求以后,根據(jù)請求的類型完成相應處理后,子節(jié)點會向主節(jié)點返回一個報文,也就是我們常說的“應答”。示意圖如下:
從上圖中是可以看到的:主節(jié)點通過發(fā)送請求命令到從節(jié)點,從節(jié)點會從總線上接收到來自主節(jié)點的請求,然后解析主節(jié)點的請求指令,根據(jù)指令完成相應的動作,然后再給主節(jié)點的請求作出一個回應,便完成了一次單播通信的過程。
其實大家應該也能看到:在單播模式下,一個Modbus的事務它包含了兩個報文,一個是由主機主動發(fā)出的“請求”報文,另一個是由從機返回的“應答”報文。
并且主機能準備訪問到某個從機是通過從機的唯一地址實現(xiàn)的,從機識別主機發(fā)出的指令是否是發(fā)送到自己這邊的,也是通過從機的唯一地址進行甄別的。
(2)廣播模式
廣播模式是主機用于向總線上的所有的從機發(fā)送請求的指令。
主機的廣播指令一般都是用于寫命令的,對于來自于主機的廣播指令,從機是不需要進行應答的。廣播模式的示意圖如下:
從圖中可以看出,廣播模式時單向的,主機發(fā)送出廣播指令,而從機不再對廣播指令進行應答,數(shù)據(jù)流只在一個方向上流動。
注意:總線上所有的從機都必須要能夠識別主機的廣播指令,并且地址0是用于廣播的,不能作為從機的地址。
3、主從機的狀態(tài)特征
既然Modbus是主從機的通信模式,那么在通信過程中就需要清楚主從機之間的狀態(tài),通過狀態(tài)去理解Modbus的通信流程。
(1)主機的狀態(tài)特征
如下圖:
根據(jù)上圖可以分析得到主機的通信過程的一些信息:
1)"空閑" = 無等待的請求。 這一般是在初始上電之后所處的狀態(tài)。 主機只有在"空閑"狀態(tài)才能發(fā)送請求。發(fā)送一個請求后,主機會離開"空閑"狀態(tài), 進入“忙”的狀態(tài),此時不能再發(fā)送其他的請求。
2)當單播請求發(fā)送到一個從機上,主機將進入"等待應答" 狀態(tài), 同時一個臨界超時定時計數(shù)器會啟動。這個超時稱為 "響應超時"。 它避免主節(jié)點永遠處于"等待應答" 狀態(tài)。 響應超時的時間依賴于實際的應用場景。
3)當收到一個應答時,主節(jié)點在處理數(shù)據(jù)之前檢驗應答。在某些情況下,檢驗的結果可能為錯誤。如收到來自非期望的子節(jié)點的應答,或接收的幀錯誤,響應超時繼續(xù)計時;當檢測到幀錯時,可以執(zhí)行一個重試。
4)響應超時但沒有收到應答時,則產生一個錯誤。那么主節(jié)點會重新進入”空閑” 狀態(tài), 并發(fā)出一個重試請求。重試的最大次數(shù)取決于主節(jié)點 的設置。
5)當廣播請求發(fā)送到串行總線上,沒有響應從子節(jié)點返回。然而主節(jié)點需要進行延遲以便使子節(jié)點在發(fā)送新的請求處理完當前請求。該延遲被稱作 "轉換延遲"。因此,主節(jié)點會在返回能夠發(fā)送另一個請求的“空閑”狀態(tài)之前,到" 等待轉換延遲"狀態(tài)。
6)在單播方式,響應超時必須設置到足夠的長度以使任何子節(jié)點都能處理完請求并返回響應。而廣播轉換延遲必須有足夠的長度以使任何子節(jié)點都能只處理完請求而可以接收新的請求。 因此,轉換延遲應該比響應超時要短。
幀錯誤常見的有:對每個字符的奇偶校驗、 對整個幀的冗余校驗。
(2)從機的狀態(tài)特征
如下圖:
從上圖中可以知道:
1)“空閑” = 沒有等待的請求。 這一般是初始上電后的狀態(tài)。
2)當收到一個請求時,子節(jié)點在處理請求中要求的動作前要先檢驗報文包。當檢測到錯誤時,必須向主節(jié)點發(fā)送應答告知錯誤。(錯誤包含:請求的格式錯誤、非法動作、非法的訪問地址......)。
3)當要求的動作完成后,單播報文要求必須按格式應答主節(jié)點。
4)如果子節(jié)點在接收到的幀中檢測到錯誤, 則沒有響應返回到主節(jié)點。
5)任何子節(jié)點均應該定義并管理 Modbus 診斷計數(shù)器以提供診斷信息。通過使用 Modbus 診斷功能碼,可以得到這些計數(shù)值。
最后再補充一個主從機的通信時序圖:
上面的時序圖中描述的就是上面所說的主從機狀態(tài)特征,對比來看就能看明白是什么意思了。
相關稿件
凱恩:巴伐利亞傳統(tǒng)皮褲穿著有些緊 拜仁的球隊實力足以贏得歐冠
多方面加強財稅支持政策落實 促進中小企業(yè)高質量發(fā)展
外媒:中國積極應對挑戰(zhàn) 經(jīng)濟發(fā)展顯韌性
停車請規(guī)范!鄭州49套違停抓拍系統(tǒng)即將投用(附位置)
工大科雅2023年上半年凈利818.37萬 同比減少39.09%
富德生命“掌心保全”新體驗:在線預約預審,助力臨柜辦理“零等待”
中國貿促會:上半年全球經(jīng)貿摩擦指數(shù)各月均處高位
東華軟件2023年上半年凈利4.41億 同比增加12.66%
成長在絲路軟件城丨科技創(chuàng)新強勢動能,點燃絲路軟件城高質量發(fā)展引擎!
朗特智能(300916)8月29日主力資金凈賣出127.24萬元
深桑達A(000032)8月29日主力資金凈買入2681.90萬元
國家衛(wèi)生健康委印發(fā)《手術質量安全提升行動方案(2023-2025年)》 進一步完善手術質量安全管理體系
教育頻道
富德生命“掌心保全”新體驗:在線預約預審,助力臨柜辦理“零等待”
摩托羅拉官宣9月5日發(fā)布moto g54手機,標配“奢感臻皮”
百聯(lián)股份:上半年凈利潤3.28億元 同比扭虧為盈

招聯(lián)金融可以協(xié)商還款嗎 招聯(lián)能協(xié)商還款嗎
8月28日外匯市場行情走勢分析:歐元/美元比2014年以來最長的虧損時間少一周。
龍虎榜丨九安醫(yī)療今日漲停 機構合計凈買入1452.28萬元



