MODBUSTCPIP協(xié)議詳情介紹_第1頁
MODBUSTCPIP協(xié)議詳情介紹_第2頁
MODBUSTCPIP協(xié)議詳情介紹_第3頁
MODBUSTCPIP協(xié)議詳情介紹_第4頁
MODBUSTCPIP協(xié)議詳情介紹_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實用文檔1 .該標準的開展概況原始版本1997年9月3日作為公共評論的草案.再版1999年3月29日,即修訂版1.0.沒有大的技術改動,僅作了補充說明.增加了附錄A和B作為對一些常用執(zhí)行問題的回應.該Modbus/TCP標準在萬維網(wǎng)上公開發(fā)行.它說明開發(fā)者的意愿是把它作為工業(yè)自動化領 域具有互用性的標準.既然MODBUS和MODBUS/TCP 作為事實上的 實際標準,而且很多生產(chǎn)商已經(jīng)實現(xiàn)了它 的功能,此標準主要是闡述在互連網(wǎng)上具有普遍可用性的基于TCP通訊協(xié)議的MODBUS報文的特殊編碼.2 .概述MODBUS/TCP 是簡單的、中立廠商的用于治理和限制自動化設備的MODBUS系列通訊協(xié)議的

2、派生產(chǎn)品.顯而易見,它覆蓋了使用 TCP/IP協(xié)議的“Intranet和 “Internet環(huán)境中MODBUS報文的用途.協(xié)議的最通用用途是為諸如PLC s, I/O模塊,以及連接其它簡單域總線或I/O模塊的網(wǎng)關效勞的.MODBUS/TCP 協(xié)議是作為一種實際的自動化標準發(fā)行的.既然 MODBUS已經(jīng)廣 為人知,該標準只將別處沒有收錄的少量信息列入其中.然而,本規(guī) 范力圖說明MODBU S中哪種功能對于普通自動化設備的互用性有價值,哪些局部是 MODBUS作為可編程的協(xié)議交替用于PLC s的多余局部文案大全實用文檔它通過將配套報文類型 工致性等級,區(qū)別那些普遍適用的和可選的,特別是那些適用于特

3、殊設備如PLC s的報文.2.1 面向連接在MODBUS中,數(shù)據(jù)處理傳統(tǒng)上是無國界的,使它們對由噪音引起的中斷有高的反抗力,而且在任一端只需要最小的維護信息.編程操作,另一方面,期望一種面向連接的方法.這種方法對于簡單變量通過唯一的登錄符號完成,對于 Modbus Plus變量,通過明確的 程序路徑容量來完成,而 程序路徑 容量維持了一種雙向連接直到被徹底擊穿.MODBUS/TCP 處理兩種情況.連接在網(wǎng)絡協(xié)議層很容易被識別,單一的連接可以支持多個獨立的事務.此外,TCP允許很大數(shù)量的并發(fā)連接,因而很多情況下,在請求時重新連接或復用一條長的連接是發(fā)起者的選擇.熟悉MODBUS的開發(fā)者會感到驚訝

4、:為什么面向連接TCP協(xié)議比面向數(shù)據(jù)報的 UDP要應用廣泛.主要原因是通過封裝獨立的事務在一個連接中,此連接 可被識別,治理和取消而無須請求客戶和效勞器采用特別的動作.這就使進程具有對網(wǎng)絡性能變化的適應能力,而且容許平安特色如防火墻和代理可以方便的添加.類似的推理被最初的萬維網(wǎng)的開發(fā)者所采用,他們選用TCP及端口 80去實現(xiàn)一個作為單一事務的最小的環(huán)球網(wǎng)詢問.2.2 數(shù)據(jù)編碼文案大全實用文檔MODBUS采用“bigendian 來表示地址和數(shù)據(jù)對象.這就意味著當一個數(shù)字表示的數(shù)量大于所傳輸?shù)膯我蛔止?jié),最大有效字節(jié)將首先被發(fā)送.例如:16bits0x1234將為0x120x3432bits0x1

5、2345678L將為0x120x340x560x782.3 參考編號的解釋MODBUS將其數(shù)據(jù)模型建立在一系列具有不同特征的表的根底之上.這四個根本表如下離散輸入單比特,由I/O系統(tǒng)提供,只讀l離散輸出單比特,由應用程序更改,讀寫輸入存放器16比特,數(shù)值,由I/O系統(tǒng)提供,只讀輸出存放器 16比特,數(shù)值,由應用程序更改,讀寫輸入和輸出之間以及可尋址位和可尋址代碼的數(shù)據(jù)對象之間的差異并不意味著任何應用性能的不同.如果這是我們所討論的目標機械的最自然的解釋,那么認為所有的四個根本表是相互覆蓋的看法也是非常普通而完全可以接受的.對于每一個根本表,協(xié)'議允許單獨選擇 65536個數(shù)據(jù)對象中的任

6、何一個,而且對那些對 象的讀寫操作可以跨越多個連續(xù)的數(shù)據(jù)對象, 直到到達基于處理事務功能代碼的數(shù)據(jù)大小限 制.文案大全實用文檔這兒沒有假定數(shù)據(jù)對象代表一種真正鄰接的數(shù)據(jù)陣列,而這是大多數(shù)簡單 PLC s的解釋.讀寫常用參考功能代碼被定義為攜帶 32位的參考值并且能允許在非常大的空間里可以直接訪問數(shù)據(jù)對象.現(xiàn)在沒有可以利用這一特點的PLC設備.一個易造成混亂的潛在來源是用于MODBUS功能的參考值和用于 ModiconPLC s的存放器值之間的關系.由于歷史原因,用戶參考值使用從1開始的十進制數(shù)表示.而 MODBUS采用更普通的從0開始的無符號整數(shù)進行軟件數(shù)據(jù)整理分析.于是,請求從0讀取存放器的

7、 Modbus消息將值返回建立在存放器4: 00001 存儲類型4=輸出存放器,參考值 00001 中的應用程序.2.4 隱含長度根本原那么所有的MODBUS請求和響應都被設計成在此種方法下工作,即接收者可確認消息的完整性.對于請求和響應為固定長度的功能代碼,僅發(fā)送功能代碼就足夠了.對于在請求和響應中 攜帶不定長數(shù)據(jù)的功能代碼,數(shù)據(jù)局部前將加上一個字節(jié)的數(shù)據(jù)統(tǒng)計.當Modbus通過TCP運送,前綴中攜帶附加的長度信息以便接收者識別消息的邊界,甚至消息被分成假設干組進行傳輸.外在的和隱含的長度準那么的存在,以及CRC-32檢錯代碼以太網(wǎng)的使用使請求和響應消息中發(fā)生未被識別的錯誤的機率減至無限小.

8、文案大全實用文檔3 . 一致性等級概述當從草稿開始定義一種新的協(xié)議,有可能增強編碼方式和闡述的一致性.MODBUS由于其先進的特性,已經(jīng)在很多地方得到了實施,必須防止破壞它已經(jīng)存在的實施.因此,已經(jīng)存在的成套的處理類型被劃分出一致性等級:等級0代表普遍使用且總體上一致的功能;等級 2代表有用的功能,但帶有某些特性.現(xiàn)存裝置的不適應于互用性的功能也已確認.必須注意到,將來對該標準的擴充將定義附加的功能代碼來處理現(xiàn)存事實標準不適用的情形.然而,被提議擴充的詳細資料出現(xiàn)在本手冊中將會另人誤解.通過將代碼隨機的發(fā)送或者即便是通過檢查異常響應的類型來確定特別的目標裝置是否支持特別的功能代碼 總是可能的,

9、而且該方法將保證引入這些擴充的現(xiàn)使用的MODBUS設備的連續(xù)的互用性.事實上,這就是當前功能代碼的分級原那么.3.1 等級0這是最小的有用功能,對主站和從站來說.讀乘法存放器fc 3寫乘法存放器 fc 163.2 等級1文案大全實用文檔這是附加的被普遍實現(xiàn)的和能共同使用的成套功能,正如前面介紹過的,許多從站把輸入,輸出,離散值和存放器值作為同等的進行處理.l讀線圈fc 1l讀離散輸入fc 2l讀存放器輸入fc 4l寫線圈fc 5l寫單一存放器fc6l讀異常狀態(tài)字fc7此功能對于每一個從站系列顯然具有不同的含義.3.3 等級2這些是需要HMI和治理等例行操作的數(shù)據(jù)傳送功能.l強制型多路線圈fc

10、15l讀一般參考值 fc 20該功能可以處理并發(fā)的多個請求,而且能接收32位的參考數(shù)值.當前的 584和984PLC'權使用此功能接收類型6的參考值擴展的存放器文件.該功能最適于擴充以處理大的存放器空間和缺少諸如朱定位變量的參考值的數(shù)據(jù)對象.l 寫一般參考值 fc 21文案大全實用文檔此功能可以處理并發(fā)的多個請求,也可接收32位的參考數(shù)值.當前的 584和984PLes僅使用此功能接收類型6的參考值擴展的存放器文件.該功能最適于擴充以處理大的存放器空間和缺少諸如朱定位變量的參考值的數(shù)據(jù)對象.l掩膜寫存放器fc 22l讀/寫存放器fc 23此功能把一定范圍的存放器輸入和輸出當作單一的處理

11、事務.使用MODBUS是執(zhí)行規(guī)那么的帶有I/O模塊的狀態(tài)影象交換的最好方法.如此,高性能的通用的數(shù)據(jù)采集裝置可以執(zhí)行功能3, 16和23,從而把快捷的數(shù)據(jù)規(guī)那么交換23和執(zhí)行特殊數(shù)據(jù)對象的需求詢問或更新的水平結合起來3和16.l 讀 FIFO 隊列fc 24一個有點專用的功能,打算將表結構的數(shù)據(jù)象FIFO 用到584/984上的FIN和FOUT功能模塊一樣傳送到主機.對于某種事件錄入軟件很有用.3.4 機器/廠家/網(wǎng)絡的特殊功能以下所有的功能,雖然在 MODBUS協(xié)議手冊中提到,但由于它們有很強的機器依賴性, 因而不適于互用性的目的.l診斷fc 8l編程484 fc 9文案大全實用文檔l輪詢(

12、484) (fc 10)l獲取通訊事件計數(shù)器值(Modbus)(fc11)l獲取通訊事件記錄(Modbus) (fc12)l編程(584/984) (fc 13)l輪詢(584/984) (fc 14)l通告從站ID (fc 17)l編程(884/u84) (fc 18)l恢復通訊連接 (884/u84)(fc19)l編程(原理)(fc 40)l固件置換(fc 125)l編程(584/984) (fc 126)l通告本地地址 (Modbus)(fc127)4 .協(xié)議結構本局部闡述了通過 MODBUS/TCP網(wǎng)絡攜帶的MODBUS請求和或響應封裝的一般格式.必須注意到請求和響應本體(從功能代碼到

13、數(shù)據(jù)局部的末尾)的結構和其它MODBUS變量具有完全相同的版面格式和含義,如:MODBUS 串行端口 - ASCII編碼MODBUS 串行端口 - RTU (二進制)編碼MODBUS PLUS網(wǎng)絡-數(shù)據(jù)通道文案大全實用文檔這些其它案例僅在組幀次序,檢錯模式和地址描述等格式有所不同.所有的請求通過TCP從存放器端口 502發(fā)出.請求通常是在給定的連接以半雙工的方 式發(fā)送.也就是說,當單一連接被響應所占用,就不能發(fā)送其它的請求.有些裝置采用多條 TCP連接來維持高的傳輸速率.然而一些客戶端設備嘗試流水線式的請求.允許效勞器以這種方式工作的技術在附錄A中闡述.MODBUS 從站地址字段被單字節(jié)的 單

14、元標識符替換,從而用于通過網(wǎng)橋和網(wǎng)關等設備的通訊,這些設備用單一IP地址來支持多個獨立的終接單元.請求和響應帶有六個字節(jié)的前綴,如下:byte0:事務處理標識符汕效勞器復制通常為0byte1:事務處理標識符汕效勞器復制通常為0byte2:協(xié)議標識符=0byte3:協(xié)議標識符=0byte 4: 長度字段上半局部字節(jié)=0 所有的消息長度小于 256byte 5:長度字段下半局部字節(jié)=后面字節(jié)的數(shù)量byte 6:單元標識符原從站地址byte 7:MODBUS 功能代碼byte 8 on: 所需的數(shù)據(jù)因而處理例如 以4的偏移從UI 9讀1存放器返回5的值將是請求:00 00 00 00 00 06 0

15、9 03 00 04 00 01文案大全實用文檔響應:00 00 00 00 00 05 09 03 02 00 05致性等級0-2的功能代碼的應用的例子見后續(xù)局部熟悉MODBUS的設計師將注意到 MODBUS/TCP 中不需要“CRG16或“LRO查字段.而是采用TCP/IP和鏈路層以太網(wǎng)校驗和機制來校驗分組交換的準確性.5 . 一致性等級的協(xié)議參考值注意到在例子中,請求和響應列在功能代碼字節(jié)的前面.如前所述,在 MODBUS/TCP案例中有一個依賴傳輸?shù)陌?個字節(jié)的前綴.ref ref 00 00 00 len unit前面兩個字節(jié)的 "refref在效勞器中沒有具體的值,只是

16、為方便客戶端而從請求和響應中逐字的復制過來.單客戶機通常將該值置為0.在這個例子中,請求和響應的格式如下例子是讀存放器請求,詳述見后面局部.03 00 00 00 01 => 03 02 12 34這表示給前綴加上一個十六進制的串聯(lián)的字節(jié),這樣,TCP連接上的整個消息將是假設單元標識符還是 09文案大全實用文檔請求: 00 00 00 00 00 06 09 03 00 00 00 01響應: 00 00 00 00 00 05 09 03 02 12 34(所有的這些請求和響應通過查詢Modicon Quantum PLC標準采用自開工具來進行校驗.5.1 等級0指令詳述5.1.1 讀

17、乘法存放器(FC 3)請求Byte 0:FC = 03Byte 1-2:參考數(shù)值Byte 3-4:指令數(shù)(1-125)響應Byte 0:FC = 03Byte 1:響應的字節(jié)數(shù)(B=2 x指令數(shù))Byte 2-(B+1):Register values異常Byte 0:FC = 83 (hex)Byte 1:異常代碼=01 or 02文案大全實用文檔例如:1234讀參考值為0 Modicon 984中為40001時的1存放器得到十六進制的值03 00 00 00 01 => 03 02 12 345.1.2 寫乘法存放器(FC 16)請求Byte 0:FC = 10 (hex)Byte

18、1-2:參考數(shù)值Byte 3-4:指令數(shù)(1-100)Byte 5:字節(jié)數(shù)(B=2 x word count)Byte 6-(B+5):存放器值響應Byte 0:FC = 10 (hex)Byte 1-2:參考數(shù)值Byte 3-4:指令數(shù)文案大全實用文檔異常Byte 0:FC = 90 (hex)Byte 1:異常代碼=01 or 02例如:1234讀參考值為0(Modicon 984中為40001)時的1存放器得到十六進制的值10 00 00 00 01 02 12 34 => 10 00 00 00 015.2 等級1指令詳述5.2.1 讀線圈(FC 1)請求Byte0:FC = 0

19、1Byte1-2:參考數(shù)值Byte3-4:比特數(shù)(1-2000)響應Byte0:FC = 01Byte1:響應的字節(jié)數(shù) (B=(比特數(shù)+7)/8)Byte 2-(B+1):比特值(最小意義位首先繞線圈!)異常Byte 0:FC = 81 (hex)文案大全實用文檔Byte 1:exception code = 01 or 02例如讀參考值為0 Modicon 984中為00001時的1線圈得到的值101 00 00 00 01 => 01 01 01注意到返回的數(shù)據(jù)的格式和big-endian體系結構不同.而且此請求如果調(diào)用乘法指令字且這些指令不以16位為界排列,那么該請求將在從站得到計

20、算強化.5.2.2 讀離散輸入 FC 2請求Byte0:FC = 02Byte1-2:參考數(shù)值Byte3-4:比特數(shù)1-2000響應Byte0:FC = 02Byte1:響應的字節(jié)數(shù)B=比特數(shù)+7/8Byte 2-B+1:比特值最小意義位首先繞線圈!異常文案大全實用文檔Byte 0:FC = 82 (16 進制)Byte 1:異常代碼=01 or 02例如讀參考值為0 (Modicon 984中為10001)時的1離散輸入得到的值 102 00 00 00 01 => 02 01 01注意到返回的數(shù)據(jù)的格式和big-endian體系結構不同.而且此請求如果調(diào)用乘法指令字且這些指令不以16位為界排列,那么該請求將在從站得到計算強化.5.2.3 讀輸入存放器(FC 4)請求Byte0:FC = 04Byte1-2:參考數(shù)值Byte3-4:指令數(shù)(1-12

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論