




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Modbus協(xié)議_試驗(yàn)臺(tái)控制設(shè)備基礎(chǔ)協(xié)議2016-10-28更新一、Modbus串行鏈路協(xié)議基本要求物理層RS232 接口或RS485接口:RJ45DB 9連接器與電纜相接數(shù)據(jù)信號(hào)發(fā)送速率:要求 9600bps 波特率,推薦 19200bps 波特率串行鏈路系統(tǒng)上的 Modbus只應(yīng)用于短距離( 20m)點(diǎn)到點(diǎn)的互連Modbus 串行鏈路電纜必須屏蔽。在電纜兩端,其屏蔽必須接到保護(hù)地上(若在這個(gè)端部使用了連接器,該連接器外殼要連在電纜屏蔽上)可視診斷必須用 LED(發(fā)光兩極管)指示通信狀態(tài)和設(shè)備狀態(tài)。Modbus 實(shí)現(xiàn)等級Modbus 串行鏈路上的每個(gè)設(shè)備必須遵守相同實(shí)現(xiàn)等級的所有的強(qiáng)制的要求
2、,常規(guī)等級必須提供可配置能力。二、Modbus串行鏈路幀模式RTU 傳輸模式(建議采用)當(dāng)設(shè)備使用RTU (Remote Terminal Unit) 模式在 Modbus 串行鏈路通信, 報(bào)文中每個(gè)8 位字節(jié)含有兩個(gè)4 位十六進(jìn)制字符。這種模式的主要優(yōu)點(diǎn)是較高的數(shù)據(jù)密度,在相同的波特率下比ASCII 模式有更高的吞吐率。每個(gè)報(bào)文必須以連續(xù)的字符流傳送。RTU模式位序列報(bào)文中每個(gè)8 位字節(jié)含有兩個(gè)4 位十六進(jìn)制字符(09, AF),每個(gè)字符傳送11位。1 起始位8 數(shù)據(jù)位, 首先發(fā)送最低有效位1 位作為奇偶校驗(yàn)(默認(rèn)偶校驗(yàn))1 停止位(注:使用無校驗(yàn)要求2個(gè)停止位。)通用Modbus幀PDU-
3、協(xié)議數(shù)據(jù)單元 ADU-應(yīng)用數(shù)據(jù)單元RS232 / RS485 ADU = 253 字節(jié)+服務(wù)器地址(1 byte) + CRC (2 字節(jié)) = 256 字節(jié)RTU模式幀序列由發(fā)送設(shè)備將Modbus 報(bào)文構(gòu)造為帶有已知起始和結(jié)束標(biāo)記的幀。這使設(shè)備可以在報(bào)文的開始接收新幀,并且知道何時(shí)報(bào)文結(jié)束。不完整的報(bào)文必須能夠被檢測到而錯(cuò)誤標(biāo)志必須作為結(jié)果被設(shè)置。CRC校驗(yàn)在RTU 模式包含一個(gè)對全部報(bào)文內(nèi)容執(zhí)行的,基于循環(huán)冗余校驗(yàn) (CRC - Cyclical RedundancyChecking) 算法的錯(cuò)誤檢驗(yàn)域。CRC 域檢驗(yàn)整個(gè)報(bào)文的內(nèi)容。不管報(bào)文有無奇偶校驗(yàn),均執(zhí)行此檢驗(yàn)。CRC 包含由兩個(gè)8
4、 位字節(jié)組成的一個(gè)16 位值。CRC 域作為報(bào)文的最后的域附加在報(bào)文之后。計(jì)算后,首先附加低字節(jié),然后是高字節(jié)。CRC高字節(jié)為報(bào)文發(fā)送的最后一個(gè)子節(jié)。其實(shí)現(xiàn)的C語言程序附后。unsigned CRC16 (unsigned char *puchMsg,unsigned usDataLen ) unsigned char uchCRCHi = 0xFF ; /* CRC 的高字節(jié)初始化 */unsigned char uchCRCLo = 0xFF ; /* CRC 的低字節(jié)初始化 */unsigned uIndex ; /* CRC 查詢表索引 */while (usDataLen-) /*
5、完成整個(gè)報(bào)文緩沖區(qū) */uIndex = uchCRCLo *puchMsgg+ ; uchCRCLo = uchCRCHi auchCRCHiuIndex;uchCRCHi = auchCRCLouIndex;return (uchCRCHi 8 | uchCRCLo);高字節(jié)表static unsigned char auchCRCHi = 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0x
6、C1, 0x81, 0x40, 0x00, 0xC1, 0x81,0x40, 0x01, 0xC0,0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1,0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x0
7、0, 0xC1, 0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80,0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x01,0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00,0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40
8、, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81,0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40, 0x01, 0xC0,0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1,0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81
9、, 0x40, 0x01,0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x01,0xC0,
10、0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81,0x40 ;低字節(jié)表static char auchCRCLo = 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7,0x05, 0xC5, 0xC4,0x04, 0x
11、CC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB,0x0B, 0xC9, 0x09,0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE,0xDF, 0x1F, 0xDD,0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2,0x12, 0x13, 0xD3,0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0x
12、F1, 0x33, 0xF3, 0xF2, 0x32,0x36, 0xF6, 0xF7,0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E,0xFE, 0xFA, 0x3A,0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B,0x2A, 0xEA, 0xEE,0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27,0xE7, 0xE
13、6, 0x26,0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1,0x63, 0xA3, 0xA2,0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD,0x6D, 0xAF, 0x6F,0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8,0xB9, 0x79, 0xBB,0x7B, 0x7A, 0xBA, 0xBE, 0x7E
14、, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4,0x74, 0x75, 0xB5,0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0,0x50, 0x90, 0x91,0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94,0x54, 0x9C, 0x5C,0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99
15、, 0x59,0x58, 0x98, 0x88,0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D,0x4D, 0x4C, 0x8C,0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83,0x41, 0x81, 0x80,0x40;三、Modbus事務(wù)處理和功能碼Modbus事務(wù)處理(含異常碼生成)通用Modbus幀Modbus數(shù)據(jù)模型常用功能碼(公共功能碼)使用以下組公共碼1讀線圈讀多個(gè)寄存器5寫單個(gè)線圈16寫多個(gè)寄
16、存器43讀設(shè)備識(shí)別碼1讀線圈在一個(gè)遠(yuǎn)程設(shè)備中,使用該功能碼讀取線圈的1 至2000 連續(xù)狀態(tài)。請求PDU 詳細(xì)說明了起始地址(高字節(jié)在前,后同),即指定的第一個(gè)線圈地址和線圈編號(hào),從零開始尋址線圈。線圈數(shù)量(高字節(jié)在前)指示需訪問線圈個(gè)數(shù)。數(shù)據(jù)域每個(gè)比特指示狀態(tài)為1= ON 和0= OFF。第一個(gè)數(shù)據(jù)字節(jié)的LSB(最低有效位)指向起始地址的線圈,其它線圈依次類推,一直到這個(gè)字節(jié)的高位端為止,并在后續(xù)字節(jié)中從低位到高位的順序。如果返回的線圈數(shù)量不是8的倍數(shù),將用零填充最后數(shù)據(jù)字節(jié)中的剩余比特(一直到字節(jié)的高位端)。(異常碼參照Modbus事務(wù)處理機(jī)制,下同)讀多個(gè)寄存器在一個(gè)遠(yuǎn)程設(shè)備中,使用該功
17、能碼讀取保持寄存器連續(xù)塊的內(nèi)容。請求PDU 說明了起始寄存器地址和寄存器數(shù)量。從零開始尋址寄存器。每個(gè)寄存器有兩字節(jié), 高字節(jié)在前。5寫單個(gè)線圈在一個(gè)遠(yuǎn)程設(shè)備上,使用該功能碼寫單個(gè)輸出為ON 或OFF。請求PDU說明了線圈地址,從零開始尋址線圈。線圈值域的常量說明請求的ON/OFF 狀態(tài)。十六進(jìn)制值0XFF00 請求線圈為ON。十六進(jìn)制值0X0000 請求線圈為OFF。其它所有值均為非法的,并且對線圈不起作用。16寫多個(gè)寄存器在一個(gè)遠(yuǎn)程設(shè)備中,使用該功能碼寫連續(xù)寄存器塊(1 至約120 個(gè)寄存器)。在請求數(shù)據(jù)域中說明了請求寫入的值。每個(gè)寄存器將數(shù)據(jù)分成兩字節(jié)(高字節(jié)在前)。43讀設(shè)備識(shí)別碼這個(gè)
18、功能碼允許讀取與遠(yuǎn)程設(shè)備的物理描述和功能描述相關(guān)的識(shí)別碼和附加報(bào)文。將讀設(shè)備識(shí)別碼接口模擬為一個(gè)地址空間,這個(gè)地址空間由一組可尋址數(shù)據(jù)元素組成。數(shù)據(jù)元素是被叫對象,并且對象Id 確定這個(gè)數(shù)據(jù)元素。接口由3 種對象組成:基本設(shè)備識(shí)別碼。所有此種對象都是必備的:廠商名稱、產(chǎn)品代碼和修訂本號(hào)。正常設(shè)備識(shí)別碼。除基本數(shù)據(jù)對象以外,設(shè)備提供了附加的和可選擇的識(shí)別碼以及數(shù)據(jù)對象描述。按標(biāo)準(zhǔn)定義所有種類的對象,但是這種對象的執(zhí)行是可選的。擴(kuò)展設(shè)備識(shí)別碼。除正常數(shù)據(jù)對象以外,設(shè)備提供了附加的和可選的識(shí)別碼以及專用數(shù)據(jù)描述。所有這些數(shù)據(jù)都是與設(shè)備有關(guān)的。可只選設(shè)計(jì)基本設(shè)備識(shí)別碼。MEI類型: 14(0x0E)功
19、能子碼,強(qiáng)制。ReadDevId: 限制為01,02,03,04含義如下01:請求獲得基本設(shè)備識(shí)別碼(流訪問) 02:請求獲得正常設(shè)備識(shí)別碼(流訪問)03:請求獲得擴(kuò)展設(shè)備識(shí)別碼(流訪問)04:請求獲得特定識(shí)別碼對象(單個(gè)訪問)對象Id:一致性等級: 設(shè)備的識(shí)別碼一致性等級和支持訪問的類型01:基本識(shí)別碼(僅流訪問)02:正常識(shí)別碼(僅流訪問)03:擴(kuò)展識(shí)別碼(僅流訪問)81:基本識(shí)別碼(流訪問和單個(gè)訪問)82:正常識(shí)別碼(流訪問和單個(gè)訪問)83:擴(kuò)展識(shí)別碼(流訪問和單個(gè)訪問)隨后更多:在ReadDevId 碼01、02 或03 (流訪問)的情況下,如果識(shí)別碼數(shù)據(jù)超出單個(gè)響應(yīng)(總256字節(jié)),那么需要幾個(gè)請求/響應(yīng)事務(wù)處理。00:可完整響應(yīng);FF:需要更多MODBUS事務(wù)處理下一個(gè)對象Id: 隨后更多=FF,那么請求下一個(gè)對象id隨后更多=00,那么必須設(shè)置為00 (無用的)對象號(hào) 在響應(yīng)中返回的對象id個(gè)數(shù)(對于單個(gè)訪問,對象號(hào)碼= 1)對象id列表第一個(gè)對象id(流訪問)或請求對象的識(shí)別碼(單個(gè)訪問)對象長度 第一個(gè)對象的字節(jié)長度對象值 第一個(gè)對象值直到完成本次MODBUS事務(wù)處理。四、Modbus應(yīng)用層協(xié)議前三
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【培訓(xùn)資料】企業(yè)財(cái)務(wù)管理講解會(huì)課件示例
- 《點(diǎn)擊進(jìn)入退出演示》課件
- 醫(yī)療質(zhì)量持續(xù)改進(jìn)全記錄
- 留置針固定規(guī)范使用率品管圈
- 《生態(tài)系統(tǒng)模擬方法》課件
- 《化工原理》公式總結(jié)模版
- 車輛日常故障培訓(xùn)
- 《課件決定教學(xué)效果》課件
- 質(zhì)數(shù)和合數(shù)教學(xué)設(shè)計(jì)
- 制造部門一季度安全工作總結(jié)模版
- 《刑法學(xué)課件 》課件各章節(jié)內(nèi)容-第十章 共同犯罪
- 2025神農(nóng)科技集團(tuán)有限公司第一批校園招聘17人(山西)筆試參考題庫附帶答案詳解
- 新生兒重度窒息討論制度
- 食堂7s管理標(biāo)準(zhǔn)
- S7-200 PLC和組態(tài)王10層十層電梯控制系統(tǒng)的設(shè)計(jì)
- 中國現(xiàn)代文學(xué)思潮知到課后答案智慧樹章節(jié)測試答案2025年春杭州師范大學(xué)
- 《基于大數(shù)據(jù)的銀行信貸風(fēng)險(xiǎn)管理研究的國內(nèi)外文獻(xiàn)綜述3200字》
- 2025年湖南省長沙市中考適應(yīng)性試卷英語試題(原卷版+解析版)
- 社交媒體用戶行為數(shù)據(jù)表格(新聞報(bào)道)
- 急性闌尾炎課件
- GB/T 45225-2025人工智能深度學(xué)習(xí)算法評估
評論
0/150
提交評論