版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、,第5部分Modbus通信協(xié)議簡介5.1Modbus協(xié)議概述5.2Modbus協(xié)議規(guī)范5.3Modbus協(xié)議在串行鏈路的主站/從站通信原理5.4Modbus協(xié)議在串行鏈路尋址原則5.5Modbus幀結構5.6串行鏈路上Modbus幀的兩種傳輸模式5.7Modbus協(xié)議數(shù)據(jù)模型5.8Modbus通信應用實例,5.1Modbus協(xié)議概述,1.Modbus協(xié)議的發(fā)展歷史(1)Modicon公司提出的通信規(guī)約。(2)Modicon公司被施耐德電氣公司收購。(3)施耐德將Modbus協(xié)議的所有權移交給IDA,成立了Modbus-IDA組織。(4)Modbus-RTPS成為實時以太網(wǎng)標準(IEC61784
2、-2)。(5)Modbus協(xié)議已經(jīng)成為國家標準(GB/T19582-2008)。2.Modbus協(xié)議的特點(1)標準、開放用戶可以免費、放心地使用Modbus協(xié)議。(2)靈活支持多種物理層標準,如RS-232、RS-485、以太網(wǎng)等。(3)簡單Modbus的幀格式簡單、緊湊,通俗易懂。(4)使用廣泛它是一種在工業(yè)領域被廣為應用的真正開放、標準的網(wǎng)絡通訊協(xié)議,已經(jīng)成為一種電子控制器的通用語言,通過此協(xié)議控制器之間可以通訊,已成為一種工業(yè)標準。不同廠商生產(chǎn)的控制設備通過Modbus協(xié)議可以連成通訊網(wǎng)絡,在PLC、變頻器、電器設備及自動化儀表等領域都廣泛應用Modbus協(xié)議。,5.2Modbus協(xié)議
3、規(guī)范,1.Modbus技術規(guī)范的關系Modbus是OSI模型第7層上的應用層報文傳輸協(xié)議,它在連接至不同類型總線或網(wǎng)絡的設備之間提供客戶機/服務器通信。Modbus是一個請求/應答協(xié)議,并且提供功能碼規(guī)定的服務。Modbus功能碼是Modbus請求/應答PDU的元素。,5.2Modbus協(xié)議規(guī)范,2.Modbus通信棧Modbus是一種簡單客戶機/服務器應用協(xié)議:客戶機能夠向服務器發(fā)送請求,服務器分析請求,處理請求,向客戶機發(fā)送應答。,5.3Modbus協(xié)議在串行鏈路的主站/從站通信原理,Modbus串行鏈路協(xié)議是一個主/從協(xié)議。在同一時刻,只有一個主節(jié)點連接于總線,一個或多個子節(jié)點(最大編號
4、為247)連接于同一個串行總線。Modbus通信總是由主節(jié)點發(fā)起,子節(jié)點在沒有收到來自主節(jié)點的請求時,從不會發(fā)送數(shù)據(jù)。子節(jié)點之間從不會互相通信,主節(jié)點在同一時刻只會發(fā)起一個Modbus事務處理。主站用兩種模式向從站發(fā)出Modbus請求,分別為單播模式和廣播模式。單播模式工作方式:由主站尋址單個從站,從站接收并處理完請求之后,向主站返回一個報文(一個應答)。在這種模式下,一個Modbus事務處理包含2個報文,一個是主站的請求,另一個是從站的應答。每個從站必須有唯一的地址(1247),這樣才能區(qū)別于其它站而被獨立地尋址。廣播模式工作方式:主站可以向所有的從站發(fā)送請求,對于主站廣播的請求沒有應答的返
5、回,廣播請求必須是寫命令,所有設備必須接收寫功能的廣播,地址0被保留用來識別廣播通信。,單播模式,廣播模式,1.客戶機向服務器發(fā)請求,服務器分析并處理客戶機的請求后返回響應。2.1個主站(客戶機),最多247個從站(服務器)。3.可以采用單播模式和廣播模式(0地址)。4.產(chǎn)生錯誤,服務器返回通信異常碼。,5.3Modbus協(xié)議在串行鏈路的主站/從站通信原理,5.4Modbus協(xié)議在串行鏈路尋址原則,Modbus尋址空間由256個不同地址組成。地址0為廣播地址,所有從站必須識別廣播地址。Modbus主節(jié)點沒有地址,只有子節(jié)點必須有一個地址。該地址必須在Modbus串行總線上唯一的。1.請求-響應
6、周期(1)請求主設備查詢消息中的功能代碼告之被選中的從設備要執(zhí)行何種功能,數(shù)據(jù)段包含了從設備要執(zhí)行功能的任何附加信息。例如:功能代碼03是要求從設備讀保持寄存器并返回它們的內(nèi)容。數(shù)據(jù)段必須包含要告之從設備的信息:從何寄存器開始讀及要讀的寄存器數(shù)量。錯誤檢測域為從設備提供了一種驗證消息內(nèi)容是否正確的方法。(2)響應如果從設備產(chǎn)生一個正常的回應,在回應消息中的功能代碼是在查詢消息中的功能代碼的回應,數(shù)據(jù)段包括了從設備收集的數(shù)據(jù)(例如寄存器值或狀態(tài))。如果有錯誤發(fā)生,功能代碼將被修改以用于指出回應消息是錯誤的,同時數(shù)據(jù)段包含了描述此錯誤信息的代碼。錯誤檢測域允許主設備確認消息內(nèi)容是否可用。,5.5M
7、odbus幀結構,串行鏈路上的Modbus幀結構見下圖:(1)地址域在Modbus串行鏈路,地址域只含有子節(jié)點地址,合法的子節(jié)點地址為十進制0247。每個子設備被賦予1247范圍中的地址。主節(jié)點通過將子節(jié)點的地址放到報文的地址域對子節(jié)點尋址。當子節(jié)點返回應答時,它將自己的地址放到應答報文的地址域以讓主節(jié)點知道哪個子節(jié)點在回答。(2)功能碼Modbus由公共功能碼和用戶定義的功能碼組成,功能碼指明服務器要執(zhí)行的動作。功能碼后面可跟有表示含有請求和響應參數(shù)的數(shù)據(jù)域。(3)錯誤檢驗域錯誤檢驗域是對報文內(nèi)容執(zhí)行冗余校驗的計算結果。根據(jù)不同的傳輸模式(RTUorASCII)使用兩種不同的計算方法。,1.
8、Modbus事務處理(無差錯)當服務器對客戶機響應時,它使用功能碼域來指示正常(無差錯)響應或者出現(xiàn)某種差錯(稱為異常響應)。對于一個正常響應來說,服務器僅復制原始功能碼。,5.5Modbus幀結構,2.Modbus事務處理(異常響應)對于異常響應,服務器將原始功能碼的最高有效位設置邏輯1后返回,異常碼指示差錯類型。3.ModbusPDU(數(shù)據(jù)單元)長度Modbus最初在串行鏈路上的實現(xiàn)(最大RS485ADU=256字節(jié)),限制了ModbusPDU的長度。因此,對串行鏈路通信來說,ModbusPDU=256-服務器地址(1字節(jié))-CRC(2字節(jié))253字節(jié)。因此:RS232/RS485ADU=
9、253字節(jié)+服務器地址(1字節(jié))+CRC(2字節(jié))=256字節(jié)。TCP/IPModbusADU=253字節(jié)+MBAP(7字節(jié))=260字節(jié)。,5.5Modbus幀結構,4.ModbusPDU(數(shù)據(jù)單元)結構(1)Modbus請求PDUmb_req_pdu=function_code,request_data,function_code-1字節(jié)Modbus功能碼,request_data-n字節(jié)。(2)Modbus響應PDUmb_rsp_pdu=function_code,response_data,function_code-1字節(jié)Modbus功能碼,response_data-n字節(jié)。(3)
10、Modbus異常響應PDUmb_excep_rsp_pdu=function_code,exception_code,function_code-1字節(jié)Modbus功能碼+0 x80exception_code1字節(jié)。,5.5Modbus幀結構,5.6串行鏈路上Modbus幀的兩種傳輸模式,Modbus幀的兩種串行傳輸模式有RTU模式和ASCII模式。它定義了報文域的位內(nèi)容在線路上串行的傳送。它確定了信息如何打包為報文和解碼Modbus串行鏈路上所有設備的傳輸模式和串行通信接口的參數(shù)必須相同。盡管在特定的領域ASCII模式是要求的,但達到Modbus備之間的互操作性只有每個設備都有相同的模式。
11、所有設備必須必須實現(xiàn)RTU模式,ASCII傳輸模式是選項。,5.6串行鏈路上Modbus幀的兩種傳輸模式,1.RTU傳輸模式當設備使用RTU模式在Modbus串行鏈路通信,報文中每個8位字節(jié)含有兩個4位十六進制字符。這種模式的主要優(yōu)點是較高的數(shù)據(jù)密度,在相同的波特率下比ASCII模式有更高的吞吐率。每個報文必須以連續(xù)的字符流傳送。(1)RTU模式每個字節(jié)(11位)的格式編碼系統(tǒng):8位二進制;報文中每個8位字節(jié)含有兩個4位十六進制字符(09,AF)。BitsperByte:1個起始位;8數(shù)據(jù)位,首先發(fā)送最低有效位;1位作為奇偶校驗;1位停止位。注意:一般使用偶校驗,其它模式(奇校驗,無校驗)也可
12、以使用。默認校驗模式必須為偶校驗。如果無奇偶校驗,將傳送一個附加的停止位以填充字符幀。見下圖:,有奇偶校驗的RTU模式位序列,無奇偶校驗的RTU模式位序列,5.6串行鏈路上Modbus幀的兩種傳輸模式,(2)Modbus報文RTU幀結構由發(fā)送設備將Modbus報文構造為帶有已知起始和結束標記的幀。這使設備可以在報文的開始接收新幀,并且知道何時報文結束。不完整的報文必須能夠被檢測到而錯誤標志必須作為結果被設置。在RTU模式,報文幀由時長至少為3.5個字符時間的空閑間隔區(qū)分。在后續(xù)的部分,這個時間區(qū)間被稱作t3.5。消息發(fā)送至少要以3.5個字符時間的停頓間隔開始。傳輸?shù)牡谝粋€域是設備地址??梢允褂?/p>
13、的傳輸字符是十六進制的0.9,A.F。網(wǎng)絡設備不斷偵測網(wǎng)絡總線,包括停頓間隔時間內(nèi)。當?shù)谝粋€域(地址域)接收到,每個設備都進行解碼以判斷是否發(fā)往自己的。在最后一個傳輸字符之后,一個至少3.5個字符時間的停頓標定了消息的結束。一個新的消息可在此停頓后開始。,5.6串行鏈路上Modbus幀的兩種傳輸模式,整個報文幀必須以連續(xù)的字符流發(fā)送。如果兩個字符之間的空閑間隔大于1.5個字符時間,則報文幀被認為不完整應該被接收節(jié)點丟棄。見下圖:注意:RTU接收驅動程序的實現(xiàn),由于t1.5和t3.5的定時,隱含著大量的對中斷的管理。在高通信速率下,這導致CPU負擔加重。因此在通信速率等于或低于19200bps時
14、,這兩個定時必須嚴格遵守。對于波特率大于19200bps的情形,應該使用2個定時的固定值:建議的字符間超時時間(t1.5)為750s,幀間的超時時間(t1.5)為1.750ms。,5.6串行鏈路上Modbus幀的兩種傳輸模式,(3)Modbus報文RTU傳輸模式狀態(tài)圖注:主節(jié)點和子節(jié)點的不同角度均在相同的圖中表示。,5.6串行鏈路上Modbus幀的兩種傳輸模式,(4)Modbus報文RTU幀的CRC校驗在RTU模式包含一個對全部報文內(nèi)容執(zhí)行的基于循環(huán)冗余校驗(CRC)算法的錯誤檢驗域。CRC域檢驗整個報文的內(nèi)容。不管報文有無奇偶校驗,均執(zhí)行此檢驗。CRC包含由兩個8位字節(jié)組成的一個16位值。C
15、RC域作為報文的最后的域附加在報文之后。計算后,首先附加低字節(jié),然后是高字節(jié),CRC高字節(jié)為報文發(fā)送的最后一個子節(jié)。附加在報文后面的CRC的值由發(fā)送設備計算。接收設備在接收報文時重新計算CRC的值,并將計算結果于實際接收到的CRC值相比較。如果兩個值不相等,則為錯誤。CRC的計算,開始對一個16位寄存器預裝全,然后將報文中的連續(xù)的8位子節(jié)對其進行后續(xù)的計算。只有字符中的8個數(shù)據(jù)位參與生成CRC的運算,起始位,停止位和校驗位不參與CRC計算。CRC的生成過程中,每個8位字符與寄存器中的值異或。然后結果向最低有效位(LSB)方向移動(Shift)1位,而最高有效位(MSB)位置充零。然后提取并檢查
16、LSB:如果LSB為,1則寄存器中的值與一個固定的預置值異或;如果LSB為0,則不進行異或操作。這個過程將重復直到執(zhí)行完8次移位。完成最后一次(第8次)移位及相關操作后,下一個8位字節(jié)與寄存器的當前值異或,然后又同上面描述過的一樣重復8次。當所有報文中子節(jié)都運算之后得到的寄存器忠的最終值,就是CRC。當CRC附加在報文之后時,首先附加低字節(jié),然后是高字節(jié)。注:CRC生成的詳細示例請參考相關的資料。,5.6串行鏈路上Modbus幀的兩種傳輸模式,2.ASCII傳輸模式當Modbus串行鏈路的設備被配置為使用ASCII模式通信時,報文中的每個8位子節(jié)以兩個ASCII字符發(fā)送,當通信鏈路或者設備無法
17、符合RTU模式的定時管理時使用該模式。由于一個子節(jié)需要兩個字符,此模式比RTU效率低。例如:子節(jié)0 x5B會被編碼為兩個字符,0 x35和0 x42(ASCII編碼0 x35=5,0 x42=B)。(1)ASCII模式每個字節(jié)(10位)的格式編碼系統(tǒng):十六進制,ASCII字符0-9、A-F。報文中每個ASCII字符含有1個十六進制字符。BitsperByte:1起始位;7數(shù)據(jù)位;首先發(fā)送最低有效位;1位作為奇偶校;1停止位。注意:偶校驗是要求的,其它模式(奇校驗,無校驗)也可以使用。為了保證與其它產(chǎn)品的最大兼容性,同時支持無校驗模式是建議的。默認校驗模式必須為偶校驗。使用無校驗要求2個停止位。
18、字符的傳送方式:每個字符或字節(jié)均由此順序發(fā)送(從左到右),最低有效位(LSB).最高有效位(MSB)。,有奇偶校驗的ASCII模式的位序列,無奇偶校驗的ASCII模式的位序列,5.6串行鏈路上Modbus幀的兩種傳輸模式,(2)ModbusASCII報文幀結構由發(fā)送設備將Modbus報文構造為帶有已知起始和結束標記的幀。這使設備可以在報文的開始接收新幀,并且知道何時報文結束。不完整的報文必須能夠被檢測到而錯誤標志必須作為結果被設置。報文幀的地址域含有兩個字符。在ASCII模式,報文用特殊的字符區(qū)分幀起始和幀結束。一個報文必須以一個“冒號”(:)(ASCII十六進制3A)起始,以“回車-換行”(
19、CRLF)對(ASCII十六進制0D和0A)結束。對于所有的域,允許傳送的字符為十六進制09,AF(ASCII編碼)。設備連續(xù)的監(jiān)視總線上的“冒號”字符。當收到這個字符后,每個設備解碼后續(xù)的字符一直到幀結束。下圖顯示了一個典型的報文幀。注:LF字符可以通過特定的Modbus應用命令(參見Modbus應用協(xié)議規(guī)范)改變。每個字符子節(jié)需要用兩個字符編碼。因此,為了確保ASCII模式和RTU模式在Modbus應用級兼容,ASCII數(shù)據(jù)域最大數(shù)據(jù)長度為(2x252)是RTU數(shù)據(jù)域(252)的兩倍。必然的,ModbusASCII幀的最大尺寸為513個字符。報文中字符間的時間間隔可以達到一秒。如果有更大的
20、間隔,則接受設備認為發(fā)生了錯誤。,5.6串行鏈路上Modbus幀的兩種傳輸模式,(3)Modbus報文的ASCII輸模式狀態(tài)圖注:“主節(jié)點和“子節(jié)點”的不同角度均在相同的圖中表示。,5.6串行鏈路上Modbus幀的兩種傳輸模式,(4)Modbus報文ASCII幀的LRC校驗在ASCII模式,包含一個對全部報文內(nèi)容執(zhí)行的,基于縱向冗余校驗(LRC)算法的錯誤檢驗域。LRC域檢驗不包括起始“冒號”和結尾CRLF對的整個報文的內(nèi)容。不管報文有無奇偶校驗,均執(zhí)行此檢驗。LRC域為一個子節(jié),包含一個8位二進制值。LRC值由發(fā)送設備計算,然后將LRC附在報文后面。接收設備在接收報文時重新計算LRC的值,并
21、將計算結果于實際接收到的LRC值相比較。如果兩個值不相等,則為錯誤。LRC的計算,對報文中的所有的連續(xù)8位字節(jié)相加,忽略任何進位,然后求出其二進制補碼。執(zhí)行檢驗針對不包括起始“冒號”和結尾CRLF對的整個ASCII報文域的內(nèi)容。在ASCII模式,LRC的結果被ASCII編碼為兩個字節(jié)并放置于ASCII模式報文幀的結尾,CRLF之前。注:LRC生成的詳細示例請參考相關的資料。,5.6串行鏈路上Modbus幀的兩種傳輸模式,3.Modbus幀的ASCII和RTU傳輸模式的特性,5.7Modbus協(xié)議數(shù)據(jù)模型,Modbus以一系列具有不同特征表格上的數(shù)據(jù)模型為基礎。四個基本表格見下表:對于基本表格中
22、任何一項,協(xié)議都允許單個地選擇65536個數(shù)據(jù)項,而且設計那些項的讀寫操作可以越過多個連續(xù)數(shù)據(jù)項直到數(shù)據(jù)大小規(guī)格限制,這個數(shù)據(jù)大小規(guī)格限制與事務處理功能碼有關。很顯然,必須將通過Modbus處理的所有數(shù)據(jù)放置在設備應用存儲器中。但是,存儲器的物理地址不應該與數(shù)據(jù)參考混淆。要求僅僅是數(shù)據(jù)參考與物理地址的鏈接。Modbus功能碼中使用的Modbus邏輯參考數(shù)字是以0開始的無符號整數(shù)索引。,5.8Modbus通信應用實例,1.主站發(fā)送命令:設備地址命令號01起始寄存器地址高8位起始寄存器地址低8位讀取的寄存器數(shù)高8位讀取的寄存器數(shù)低8位CRC校驗的低8位CRC校驗的高8位。例:110100130025CRC低CRC高。意義如下:(1)設備地址:在一個485總線上可以掛接多個設備,此處的設備地址表示想和哪一個設備通訊。例
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電氣大數(shù)據(jù)技術方法
- 勐海事業(yè)編招聘2022年考試模擬試題及答案解析18
- 渝西高鐵重慶明通牽(一期)220千伏外部供電工程環(huán)境影響報告表
- 深南電路招聘考試題及答案
- 熱處理考試題庫及答案
- 2026年深圳中考語文詩歌鑒賞專項試卷(附答案可下載)
- 2026年深圳中考英語核心素養(yǎng)檢測試卷(附答案可下載)
- 2026年深圳中考物理期末綜合測評試卷(附答案可下載)
- 廣東省汕頭市金平區(qū)2026年九年級上學期期末物理試題附答案
- 2026年深圳中考生物綠色植物的呼吸作用試卷(附答案可下載)
- 工程制藥專業(yè)畢業(yè)論文
- 2025年冷水機組考試題庫及答案
- 超聲科工作總結與計劃
- 旅居養(yǎng)老策劃方案
- T-CRHA 089-2024 成人床旁心電監(jiān)測護理規(guī)程
- DBJ52T 088-2018 貴州省建筑樁基設計與施工技術規(guī)程
- 專題15 物質(zhì)的鑒別、分離、除雜、提純與共存問題 2024年中考化學真題分類匯編
- 小區(qū)房屋維修基金申請范文
- 中職高二家長會課件
- 復方蒲公英注射液在痤瘡中的應用研究
- 淮安市2023-2024學年七年級上學期期末歷史試卷(含答案解析)
評論
0/150
提交評論