Modbus協(xié)議分析.ppt_第1頁
Modbus協(xié)議分析.ppt_第2頁
Modbus協(xié)議分析.ppt_第3頁
Modbus協(xié)議分析.ppt_第4頁
Modbus協(xié)議分析.ppt_第5頁
免費預(yù)覽已結(jié)束,剩余40頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

MODBUS協(xié)議,主要內(nèi)容,概述Modbus應(yīng)用協(xié)議規(guī)范Modbus協(xié)議在串行鏈路上的實現(xiàn),概述,1979年Modicon公司(現(xiàn)Schneider的一部分)提出的ModbusModbus最初作為工業(yè)串行鏈路的事實標(biāo)準(zhǔn)1997年Schneider電氣在TCP/IP上實現(xiàn)Modbus協(xié)議2004年Modbus作為我國國家標(biāo)準(zhǔn),Modbus技術(shù)規(guī)范組成,Modbus應(yīng)用協(xié)議規(guī)范Modbus協(xié)議在串行鏈路上的實現(xiàn)指南Modbus協(xié)議在TCP/IP上的實現(xiàn)指南Modbus標(biāo)準(zhǔn)技術(shù)規(guī)范由以上三部分組成,本次我們學(xué)習(xí)前面兩個部分。,Modbus技術(shù)規(guī)范的關(guān)系,Modbus應(yīng)用協(xié)議規(guī)范,協(xié)議簡介數(shù)據(jù)幀格式事務(wù)處理數(shù)據(jù)模型功能碼,Modbus通信棧,Modbus應(yīng)用協(xié)議,Modbus是一種簡單客戶機/服務(wù)器應(yīng)用協(xié)議客戶機能夠向服務(wù)器發(fā)送請求服務(wù)器分析請求,處理請求,向客戶機發(fā)送應(yīng)答,通用Modbus幀結(jié)構(gòu)協(xié)議數(shù)據(jù)單元(PDU),Modbus事務(wù)處理(無差錯),當(dāng)服務(wù)器對客戶機響應(yīng)時,它使用功能碼域來指示正常(無差錯)響應(yīng)或者出現(xiàn)某種差錯(稱為異常響應(yīng))對于一個正常響應(yīng)來說,服務(wù)器僅復(fù)制原始功能碼,Modbus事務(wù)處理(異常響應(yīng)),對于異常響應(yīng),服務(wù)器將原始功能碼的最高有效位設(shè)置邏輯1后返回異常碼指示差錯類型,異常碼,Modbus事務(wù)處理,ModbusPDU長度,Modbus最初在串行鏈路上的實現(xiàn)(最大RS485ADU=256字節(jié))限制了ModbusPDU的長度。因此,對串行鏈路通信來說,ModbusPDU=256-服務(wù)器地址(1字節(jié))-CRC(2字節(jié))253字節(jié)。從而:RS232/RS485ADU=253字節(jié)+服務(wù)器地址(1字節(jié))+CRC(2字節(jié))=256字節(jié)。TCPModbusADU=249字節(jié)+MBAP(7字節(jié))=256字節(jié)。,ModbusPDU結(jié)構(gòu),Modbus請求PDUmb_req_pdu=function_code,request_data,function_code-1字節(jié)Modbus功能碼request_data-n字節(jié)Modbus響應(yīng)PDUmb_rsp_pdu=function_code,response_data,function_code-1字節(jié)Modbus功能碼response_data-n字節(jié)Modbus異常響應(yīng)PDUmb_excep_rsp_pdu=function_code,exception_code,function_code-1字節(jié)Modbus功能碼+0 x80exception_code1字節(jié),Modbus數(shù)據(jù)模型,Modbus的數(shù)據(jù)模型是以一組具有不同特征的類型為基礎(chǔ)建立的四個基本類型為:,Modbus功能碼,有三類MODBUS功能碼。它們是:公共功能碼是較好地被定義的功能碼,保證是唯一的,MODBUS組織可改變的,公開證明的,具有可用的一致性測試,MBIETFRFC中證明的其中RFC為RequestforComments首字母的縮寫,它是IETF(互聯(lián)網(wǎng)工程任務(wù)推進(jìn)組織)的一個無限制分發(fā)文檔。RFC被編號并且用編號來標(biāo)識。包含已被定義的公共指配功能碼和未來使用的未指配保留供功能碼。用戶定義功能碼有兩個用戶定義功能碼的定義范圍,即65至72和十進(jìn)制100至110。用戶沒有MODBUS組織的任何批準(zhǔn)就可以選擇和實現(xiàn)一個功能碼不能保證被選功能碼的使用是唯一的。如果用戶要重新設(shè)置功能作為一個公共功能碼,那么用戶必須啟動RFC,以便將改變引入公共分類中,并且指配一個新的公共功能碼。保留功能碼一些公司對傳統(tǒng)產(chǎn)品通常使用的功能碼,并且對公共使用是無效的功能碼。,功能碼分類其中128-255為異常響應(yīng)保留。,Modbus公共功能碼的定義,常用功能碼為0 x01,0 x02、0 x03、0 x04、0 x05、0 x06、0 x0F、0 x10,Modbus功能碼應(yīng)用實例(1),讀線圈(0 x01),響應(yīng),*N寄存器的數(shù)量/8,如果余數(shù)不等于0,那么N=N+1錯誤,讀線圈實例,這是一個請求離散量輸出20-38的實例。將輸出27-20的狀態(tài)表示為十六進(jìn)制字節(jié)值CD,或二進(jìn)制11001101。輸出27是這個字節(jié)的MSB,輸出20是LSB。通常,將一個字節(jié)內(nèi)的比特表示為MSB位于左側(cè),LSB位于右側(cè)。第一字節(jié)的輸出從左至右為27至20。下一個字節(jié)的輸出從左到右為35至28。當(dāng)串行發(fā)射比特時,從LSB向MSB傳輸:20.27、28.35等等。在最后的數(shù)據(jù)字節(jié)中,將輸出狀態(tài)38-36表示為十六進(jìn)制字節(jié)值05,或二進(jìn)制00000101。輸出38是左側(cè)第六個比特位置,輸出36是這個字節(jié)的LSB。用零填充五個剩余高位比特。,Modbus功能碼應(yīng)用實例(2),讀離散量輸入(0 x02),讀離散量輸入實例,這是一個請求讀取離散量輸入197-128的實例。將離散量輸入狀態(tài)204-197表示為十六進(jìn)制字節(jié)值A(chǔ)C,或二進(jìn)制10101100。輸入204是這個字節(jié)的MSB,輸入197是這個字節(jié)的LSB。將離散量輸入狀態(tài)218-213表示為十六進(jìn)制字節(jié)值35,或二進(jìn)制00110101。輸入218位于左側(cè)第3比特,輸入213是LSB這與讀線圈功能是相似的,只是讀取的數(shù)據(jù)類型不同。,Modbus功能碼應(yīng)用實例(3),讀保存寄存器(0 x03),讀保持寄存器實例,Modbus功能碼應(yīng)用實例(4),讀輸入寄存器(0 x04),讀輸入寄存器實例,這與讀保存寄存器功能相似,只是數(shù)據(jù)類型不同。,Modbus功能碼應(yīng)用實例(5),寫多個線圈(0 x0F)其中1代表邏輯ON,0代表邏輯OFF,寫多個線圈實例,Modbus功能碼應(yīng)用實例(6),寫多個寄存器(0 x10),*N寄存器數(shù)量響應(yīng),錯誤,寫多個保持寄存器實例,其他功能碼與以上類似,如有需要詳細(xì)了解,可閱讀MODBUS協(xié)議。,Modbus協(xié)議在串行鏈路上的實現(xiàn),主站/從站協(xié)議原理Modbus串行傳輸模式RTU模式Modbus串行傳輸模式ASCII模式,Modbus協(xié)議在串行鏈路上的實現(xiàn)模型,Modbus串行鏈路協(xié)議是一個主/從協(xié)議。該協(xié)議位于OSI模型的第二層。,位于OSI模型第7層的Modbus應(yīng)用層報文傳輸協(xié)議,供了連接于總線或網(wǎng)絡(luò)的設(shè)備之間的客戶機/服務(wù)器通信。在Modbus串行鏈路上客戶機的功能由主節(jié)點提供而服務(wù)器功能由子節(jié)點實現(xiàn)。,Modbus主站/從站協(xié)議原理,Modbus串行鏈路協(xié)議是一個主-從協(xié)議。在同一時刻,只有一個主節(jié)點連接于總線,一個或多個子節(jié)點(最大編號為247)連接于同一個串行總線。Modbus通信總是由主節(jié)點發(fā)起。子節(jié)點在沒有收到來自主節(jié)點的請求時,從不會發(fā)送數(shù)據(jù)。子節(jié)點之間從不會互相通信。主節(jié)點在同一時刻只會發(fā)起一個Modbus事務(wù)處理。,Modbus通信模式,主節(jié)點以兩種模式對子節(jié)點發(fā)出Modbus請求:在單播模式,主節(jié)點以特定地址訪問某個子節(jié)點,子節(jié)點接到并處理完請求后,子節(jié)點向主節(jié)點返回一個報文(一個應(yīng)答)。在這種模式,一個Modbus事務(wù)處理包含2個報文:一個來自主節(jié)點的請求,一個來自子節(jié)點的應(yīng)答。每個子節(jié)點必須有唯一的地址(1到247),這樣才能區(qū)別于其它節(jié)點被獨立的尋址。在廣播模式,主節(jié)點向所有的子節(jié)點發(fā)送請求。對于主節(jié)點廣播的請求沒有應(yīng)答返回。廣播請求一般用于寫命令。所有設(shè)備必須接受廣播模式的寫功能。地址0是專門用于表示廣播數(shù)據(jù)的。,串行鏈路上的Modbus幀結(jié)構(gòu),地址域只含有子節(jié)點地址,該地址必須在Modbus串行總線上唯一Modbus主節(jié)點沒有地址功能碼指明服務(wù)器要執(zhí)行的動作,遵從Modbus協(xié)議規(guī)范錯誤檢驗域是對報文內(nèi)容執(zhí)行冗余校驗的計算結(jié)果。根據(jù)不同的傳輸模式(RTUorASCII)使用兩種不同的計算方法,CRC或者LRC,串行傳輸模式-RTU模式,當(dāng)設(shè)備使用RTU(RemoteTerminalUnit)模式在Modbus串行鏈路通信,報文中每個8位字節(jié)含有兩個4位十六進(jìn)制字符。這種模式的主要優(yōu)點是較高的數(shù)據(jù)密度,在相同的波特率下比ASCII模式有更高的吞吐率。每個報文必須以連續(xù)的字符流傳送。RTU模式每個字節(jié)(11位)的格式為:編碼系統(tǒng):8位二進(jìn)制報文中每個8位字節(jié)含有兩個4位十六進(jìn)制字符(09,AF)BitsperByte:1起始位8數(shù)據(jù)位,首先發(fā)送最低有效位1位作為奇偶校驗1停止位奇偶校驗中,偶校驗是默認(rèn)的,其它模式(奇校驗,無校驗)也可以使用,在無校驗的模式下,有兩個停止位,串行傳輸模式-RTU模式,在RTU模式,報文幀由時長至少為3.5個字符時間的空閑間隔區(qū)分整個報文幀必須以連續(xù)的字符流發(fā)送。如果兩個字符之間的空閑間隔大于1.5個字符時間,則報文幀被認(rèn)為不完整應(yīng)該被接收節(jié)點丟棄,串行傳輸模式-RTU模式,RTU接收驅(qū)動程序的實現(xiàn),由于t1.5和t3.5的定時,隱含著大量的對中斷的管理。在高通信速率下,這導(dǎo)致CPU負(fù)擔(dān)加重。因此,在通信速率等于或低于19200Bps時,這兩個定時必須嚴(yán)格遵守;對于波特率大于19200Bps的情形,應(yīng)使用2個定時的固定值:建議的字符間超時時間(t1.5)為750s,幀間的超時時間(t1.5)為1.750ms。,串行傳輸模式-RTU模式,在RTU模式包含一個對全部報文內(nèi)容執(zhí)行的,基于循環(huán)冗余校驗(CRC-CyclicalRedundancyChecking)算法的錯誤檢驗域。CRC域檢驗整個報文的內(nèi)容。不管報文有無奇偶校驗,均執(zhí)行此檢驗。CRC包含由兩個8位字節(jié)組成的一個16位值。CRC為常用的CRC-16校驗方式,計算后,首先附加低字節(jié),然后是高字節(jié),串行傳輸模式-ASCII模式,在ASCII模式中,報文中的每個8位子節(jié)以兩個ASCII字符發(fā)送例:子節(jié)0X5B會被編碼為兩個字符:0 x35和0 x42(ASCII編碼0 x35=5,0 x42=B)由于一個子節(jié)需要兩個字符,此模式比RTU效率低ASCII模式每個字節(jié)(10位)的格式為:編碼系統(tǒng):十六進(jìn)制,ASCII字符0-9,A-F。報文中每個ASCII字符含有1個十六進(jìn)制字符BitsperByte:1起始位7數(shù)據(jù)位,首先發(fā)送最低有效位1位作為奇偶校驗1停止位奇偶校驗中,偶校驗是默認(rèn)的,其它模式(奇校驗,無校驗)也可以使用,在無校驗的模式下,有兩個停止位,串行傳輸模式-ASCII模式,ASCII模式下的報文幀格式如下:報文必須以“:”開始報文必須以“LF(0 x0D)CR(0 x0A)”結(jié)束數(shù)據(jù)用十六進(jìn)制ASCII碼值表示使用LRC進(jìn)行差錯校驗每個字符子節(jié)需要用兩個字符編碼。因此,為了確保ASCII模式和RTU模式在Modbus應(yīng)用級兼容,ASCII數(shù)據(jù)域最大數(shù)據(jù)長度為(2x252)是RTU數(shù)據(jù)域(252)的兩

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論