Modbus功能碼表_第1頁
Modbus功能碼表_第2頁
Modbus功能碼表_第3頁
Modbus功能碼表_第4頁
Modbus功能碼表_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余2頁可下載查看

下載本文檔

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

文檔簡介

1、Modbus 功能碼一覽Modbus 網(wǎng)絡(luò)是一個(gè)工業(yè)通信系統(tǒng),由帶智能終端的可編程序控制器和計(jì)算機(jī)通過公用線路括軟件。它可應(yīng)用于各種數(shù)據(jù)采或局部專用線路連接而成。其系統(tǒng)結(jié)構(gòu)既包括硬件、亦包集和過程監(jiān)控。下表1 是 ModBus 的功能碼定義。表 1 ModBus 功能碼功能碼 名稱 作用01 讀取線圈狀態(tài)取得一組邏輯線圈的當(dāng)前狀態(tài)( ON/OFF)02 讀取輸入狀態(tài)取得一組開關(guān)輸入的當(dāng)前狀態(tài)( ON/OFF)在一個(gè)或多個(gè)保持寄存器中取得當(dāng)前的二進(jìn)制值在一個(gè)或多個(gè)輸入寄存器中取得當(dāng)前的二進(jìn)制值03 讀取保持寄存器 04 讀取輸入寄存器 05 強(qiáng)置單線圈 強(qiáng)置一個(gè)邏輯線圈的通斷狀態(tài) 06 預(yù)置單寄

2、存器 把具體二進(jìn)值裝入一個(gè)保持寄存器07 讀取異常狀態(tài)取得 8 個(gè)內(nèi)部線圈的通斷狀態(tài), 這 8 個(gè)線圈的地址由控制器決定, 用戶邏輯可以將這些線圈定義,以說明從機(jī)狀態(tài),短報(bào)文適宜于迅速讀取狀態(tài)08 回送診斷校驗(yàn)把診斷校驗(yàn)報(bào)文送從機(jī),以對(duì)通信處理進(jìn)行評(píng)鑒09 編程(只用于484) 使主機(jī)模擬編程器作用,修改 PC 從機(jī)邏輯10 控詢(只用于484) 可使主機(jī)與一臺(tái)正在執(zhí)行長程序任務(wù)從機(jī)通信, 探詢?cè)搹臋C(jī)是否已完成其操作任務(wù),僅在含有功能碼9 的報(bào)文發(fā)送后,本功能碼才發(fā)送11 讀取事件計(jì)數(shù) 可使主機(jī)發(fā)出單詢問, 并隨即判定操作是否成功, 尤其是該命令或其他應(yīng)答產(chǎn)生通信錯(cuò)誤時(shí)12 讀取通信事件記錄可

3、是主機(jī)檢索每臺(tái)從機(jī)的 ModBus 事務(wù)處理通信事件記錄。 如果某項(xiàng)事務(wù)處理完成,記錄會(huì)給出有關(guān)錯(cuò)誤13編程(184/384 484 584)可使主機(jī)模擬編程器功能修改PC從機(jī)邏輯14 探詢( 184/384 484 584 ) 可使主機(jī)與正在執(zhí)行任務(wù)的從機(jī)通信, 定期控詢?cè)搹臋C(jī)是否已完成其程序操作,僅在含有功能13 的報(bào)文發(fā)送后,本功能碼才得發(fā)送15 強(qiáng)置多線圈 強(qiáng)置一串連續(xù)邏輯線圈的通斷16 預(yù)置多寄存器把具體的二進(jìn)制值裝入一串連續(xù)的保持寄存器17 報(bào)告從機(jī)標(biāo)識(shí)可使主機(jī)判斷編址從機(jī)的類型及該從機(jī)運(yùn)行指示燈的狀態(tài)18 (884和MICRO 84)可使主機(jī)模擬編程功能,修改PC狀態(tài)邏輯19重置

4、通信鏈路發(fā)生非可修改錯(cuò)誤后,是從機(jī)復(fù)位于已知狀態(tài),可重置順序字節(jié)20讀取通用參數(shù)(584L )顯示擴(kuò)展存儲(chǔ)器文件中的數(shù)據(jù)信息21寫入通用參數(shù)(584L )把通用參數(shù)寫入擴(kuò)展存儲(chǔ)文件,或修改之2264保留作擴(kuò)展功能備用6572保留以備用戶功能所用留作用戶功能的擴(kuò)展編碼73119非法功能120127保留留作內(nèi)部作用128255保留用于異常應(yīng)答Modbus 網(wǎng)絡(luò)只是一個(gè)主機(jī),所有通信都由他發(fā)出。網(wǎng)絡(luò)可支持247 個(gè)之多的遠(yuǎn)程從屬控制器,但實(shí)際所支持的從機(jī)數(shù)要由所用通信設(shè)備決定。采用這個(gè)系 統(tǒng),各PC 可以和中心主機(jī)交換信息而不影響各PC 執(zhí)行本身的控制任務(wù)。表2 是 ModBus 各功能碼對(duì)應(yīng)的數(shù)據(jù)

5、類型。表 2 ModBus 功能碼與數(shù)據(jù)類型對(duì)應(yīng)表代碼 功能 數(shù)據(jù)類型01讀位02讀位03讀整型、字符型、狀態(tài)字、浮點(diǎn)型04讀整型、狀態(tài)字、浮點(diǎn)型05寫位06寫整型、字符型、狀態(tài)字、浮點(diǎn)型08N/A重復(fù)“回路反饋”信息15 寫位16 寫整型、字符型、狀態(tài)字、浮點(diǎn)型17 讀字符型1 ) ModBus 的傳輸方式在 ModBus 系統(tǒng)中有 2 種傳輸模式可選擇。這2 種傳輸模式與從機(jī)PC 通信的能力是同等的。選擇時(shí)應(yīng)視所用 ModBus 主機(jī)而定, 每個(gè) ModBus 系統(tǒng)只能使用一種模式,不允許2種模式混用。一種模式是ASCII (美國信息交換碼) ,另一種模式是RTU (遠(yuǎn)程終端設(shè)備)這兩種模

6、式的 定義見表 3表 3 ASCII 和 RTU 傳輸模式的特性特性ASCII(7 位) RTU(8 位)編碼系統(tǒng)十六進(jìn)制(使用 ASCII可打印字符:09, AF) 二進(jìn)制每一個(gè)字符的位數(shù)開始位 1 位 1 位數(shù)據(jù)位(最低有效位第一位) 7 位 8 位奇偶校驗(yàn)(任選) 1 位(此位用于奇偶校驗(yàn),無校應(yīng)則無該位) 1 位(此位用于奇偶校驗(yàn),無校應(yīng)則無該位)停止位 1 或 2 位 1 或 2 位錯(cuò)誤校驗(yàn)LRC (即縱向冗余校驗(yàn)) CRC( 即循環(huán)冗余校驗(yàn))ASCII 可打印字符便于故障檢測,而且對(duì)于用高級(jí)語言(如Fortan )編程的主計(jì)算機(jī)及主 PC 很適宜。 RTU 則適用于機(jī)器語言編程的計(jì)

7、算機(jī)和 PC 主 機(jī)。用 RTU 模式傳輸?shù)臄?shù)據(jù)是8 位二進(jìn)制字符。 如欲轉(zhuǎn)換為 ASCII 模式, 則每個(gè) RTU 字符首先應(yīng)分為高位和低位兩部分,這兩部分各含 4 位,然后轉(zhuǎn)換成十六進(jìn)制等量值。用以構(gòu)成報(bào)文的 ASCII 字符都是十六進(jìn)制字符。 ASCII 模式使用的字符雖是RTU 模式的兩倍,但 ASCII 數(shù)據(jù)的譯瑪和處理更為容易一些, 此外, 用 RTU 模式時(shí)報(bào)文字符必須以連續(xù)數(shù)據(jù)流的形式傳送,用 ASCII 模式,字符之間可產(chǎn)生長達(dá)1s 的間隔,以適應(yīng)速度較快的機(jī)器。表 4 給出了以 RTU 方式讀取整數(shù)據(jù)的例子以 RTU 方式讀取整數(shù)據(jù)的例子主機(jī)請(qǐng)求地址 功能碼 第一個(gè)寄存器的

8、高位地址 第一個(gè)寄存器的低位地址寄存器的數(shù)量的高位 寄存器的數(shù)量的底位錯(cuò)誤校驗(yàn)01 03 00 38 00 01 XX從機(jī)應(yīng)答地址 功能碼 字節(jié)數(shù) 數(shù)據(jù)高字節(jié)數(shù)據(jù)低字節(jié)錯(cuò)誤校驗(yàn)01 03 241 24 XX十六進(jìn)制數(shù)4124 表示的十進(jìn)制整數(shù)為16676 ,錯(cuò)誤校驗(yàn)值要根據(jù)傳輸方式而定。( 2 ) Modbus 的數(shù)據(jù)校驗(yàn)方式CRC-16 (循環(huán)冗余錯(cuò)誤校驗(yàn))CRC-16 錯(cuò)誤校驗(yàn)程序如下:報(bào)文(此處只涉及數(shù)據(jù)位,不指起始位、停止位和任選的奇偶校驗(yàn)位)被看作是一個(gè)連續(xù)的二進(jìn)制,其最高有效位( MSB )首選 發(fā)送。報(bào)文先與X T 16 相乘(左移 16 位),然后看 X T 16+X T 15

9、+X T 2+1 除,X T 16+X T 15+X T 2+1 可以表示為二進(jìn)制數(shù)11000000000000101 。整數(shù)商位忽略不記, 16 位余數(shù)加入該報(bào)文( MSB 先發(fā)送) ,成為 2 個(gè) CRC 校驗(yàn)字節(jié)。余數(shù)中的 1 全部初始化,以免所 有的零成為一條報(bào)文被接收。經(jīng)上述處理而含有CRC 字節(jié)的報(bào)文,若無錯(cuò)誤,到接收設(shè)備后再被同一多項(xiàng)式( XT 16+X T 15+X T 2+1)除,會(huì)得到一個(gè)零余數(shù)(接收設(shè)備核驗(yàn)這個(gè)CRC字節(jié),并將其與被傳送的 CRC 比較) 。全部運(yùn)算以 2 為模(無進(jìn)位) 。習(xí)慣于成串發(fā)送數(shù)據(jù)的設(shè)備會(huì)首選送出字符的最右位( LSB- 最低有效位) 。而在生

10、成CRC 情況下,發(fā)送首位應(yīng)是被除數(shù)的最高有效位MSB 。由于在運(yùn)算中不 用進(jìn)位,為便于操作起見, 計(jì)算 CRC 時(shí)設(shè) MSB 在最右位。 生成多項(xiàng)式的位序也必須反過來, 以保持一致。多項(xiàng)式的 MSB 略去不記,因其只對(duì)商有影響而不影響余數(shù)。生成 CRC-16 校驗(yàn)字節(jié)的步驟如下:裝如一個(gè)16 位寄存器,所有數(shù)位均為 1。該 16 位寄存器的高位字節(jié)與開始 8 位字節(jié)進(jìn)行 “異或” 運(yùn)算。 運(yùn)算結(jié)果放入這個(gè)16 位寄存器。把這個(gè) 16 寄存器向右移一位。若向右(標(biāo)記位)移出的數(shù)位是1,則生成多項(xiàng)式 1010000000000001和這個(gè)寄存器進(jìn)行“異或”運(yùn)算;若向右移出的數(shù)位是0 ,則返回。重

11、復(fù)和,直至移出 8位。另外8 位與該十六位寄存器進(jìn)行“異或”運(yùn)算。重復(fù),直至該報(bào)文所有字節(jié)均與16位寄存器進(jìn)行“異或”運(yùn)算,并移位 8次。這個(gè)16 位寄存器的內(nèi)容即2 字節(jié) CRC 錯(cuò)誤校驗(yàn),被加到報(bào)文的最高有效位。另外,在某些非ModBus 通信協(xié)議中也經(jīng)常使用 CRC16 作為校驗(yàn)手段,而且產(chǎn)生了一些CRC16的變種,他們是使用 CRC16多項(xiàng)式XT 16+ X T 15+X T 2+1,單首次裝入的16 位寄存器為0000;使用CRC16的反序X T 16+X T 14+X T 1 + 1,首次裝入寄存器值為 0000或 FFFFH。LRC (縱向冗余錯(cuò)誤校驗(yàn))LRC 錯(cuò)誤校驗(yàn)用于ASCII 模式。 這個(gè)錯(cuò)誤校驗(yàn)是一個(gè)8位二進(jìn)制數(shù), 可作為 2個(gè) ASCII十六進(jìn)制字節(jié)傳送。把十六進(jìn)制字符轉(zhuǎn)換成二進(jìn)制,加上無循環(huán)進(jìn)位的二進(jìn)制字符和二進(jìn)制補(bǔ)碼結(jié)果生成LRC 錯(cuò)誤校驗(yàn)(參見圖) 。這個(gè) LRC 在接收設(shè)備進(jìn)行核驗(yàn),并與被傳送的LRC 進(jìn)行比較,冒號(hào)(:) 、回車符號(hào)( CR) 、換行字符( LF )和置入的其他任何非ASCII十六進(jìn)制字符在運(yùn)算時(shí)忽略不計(jì)。表 5 LRC 生成范例讀取02 號(hào)從機(jī)的前8 個(gè)線圈十六進(jìn)制 二進(jìn)制地址 02功能碼 01起始地址高位起始地址低位00000000000000100001000000000000000

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論