一.背景
Modbus協(xié)議是一項應用層報文傳輸協(xié)議,包括ASCII、RTU、TCP三種報文類型。標準的Modbus協(xié)議物理層接口有RS232、RS422、RS485和以太網(wǎng)接口,采用master/slave方式通信。本文主要介紹的MODBUS-RTU。
二.MODBUS數(shù)據(jù)幀組成
首先我們要知道一幀正常的MODBUS數(shù)據(jù)幀包含的內(nèi)容有:地址域 + 功能碼 + 數(shù)據(jù) + 差錯校驗。
三.下面逐一解釋MODBUS數(shù)據(jù)幀各部分的具體含義:
(1)地址域:即主站要訪問的從站地址,其范圍0~247
(2)功能碼:即主站想要對從站進行何種操作。從大的方面看分為讀(主站讀取從站數(shù)據(jù)),寫(主站向從站讀取數(shù)據(jù))再往細分就是具體讀取從站哪塊區(qū)域的數(shù)據(jù),以及具體將數(shù)據(jù)寫到從站的哪塊區(qū)域。操作從站不同的數(shù)據(jù)區(qū)對應有不同的功能碼,在文末《MODBUS協(xié)議規(guī)范》文檔中有詳細介紹
(3)數(shù)據(jù):如果主站的請求是讀數(shù)據(jù),那么該“數(shù)據(jù)”要包含的信息有:從哪里開始讀數(shù)據(jù) + 讀多少數(shù)據(jù)。如果主站的請求是向從站寫數(shù)據(jù),那么該“數(shù)據(jù)”要包含的信息有:從哪里開始寫數(shù)據(jù) + 寫多少個字節(jié)數(shù)據(jù) + 要寫的具體數(shù)據(jù)
(4)差錯校驗:為了保證數(shù)據(jù)傳輸?shù)恼_性,Modbus協(xié)議會在數(shù)據(jù)幀最后面加上兩個字節(jié)的差錯校驗
四.舉實例詳細說明主站和從站之間的數(shù)據(jù)幀交互過程
(1) 主站 請求讀 從站數(shù)據(jù):
主站向從站發(fā)送的實際請求數(shù)據(jù)幀:03 04 00 08 00 01 B0 3B (假設從站地址為03),其中:
03:為主站要訪問的域名(即從站地址,范圍0~247)。04:表示功能碼。00 08:從從站08這個地址開始讀取數(shù)據(jù)。00 01:即將讀取數(shù)據(jù)的長度。b0 3b:兩個字節(jié)的校驗數(shù)據(jù)。
從站接收到主站的請求數(shù)據(jù)幀之后實際的響應數(shù)據(jù)幀為:03 04 02 00 0A 40 F7,其中:
03:為從站地址即域名(即從站地址,范圍0~247)。04:表示功能碼。02:被讀取數(shù)據(jù)長度(包含一個字節(jié)高8位數(shù)據(jù),一個字節(jié)低8八位數(shù)據(jù))00 0A:被讀取的具體數(shù)據(jù)40 F7兩個字節(jié)的校驗數(shù)據(jù)
(2) 主站請求寫 從站數(shù)據(jù):
主站向從站發(fā)送的實際請求數(shù)據(jù)幀:03 10 00 01 00 02 04 00 0A 01 02 99 88 (假設從站地址為03),其中:
03:為主站要訪問的域名(即從站地址,范圍0~247)。10:功能碼。00 01:往從站01這個地址開始寫數(shù)據(jù)。00 02:寄存器數(shù)量。04:一共寫4個字節(jié)數(shù)據(jù)。04 00 01 02:具體數(shù)據(jù)。99 88:兩個字節(jié)的校驗數(shù)據(jù)。
從站接收到主站的請求數(shù)據(jù)幀之后實際的響應數(shù)據(jù)幀為:03 10 00 01 00 02 11 EA,其中:
03:為從站地址即域名(即從站地址,范圍0~247)。10:功能碼。00 01:往從站01這個地址開始寫數(shù)據(jù)。(原樣返回/響應)0002:寄存器數(shù)量。(原樣返回/響應)11 EA兩個字節(jié)的校驗數(shù)據(jù)
-
數(shù)據(jù)
+關注
關注
8文章
7256瀏覽量
91893 -
MODBUS
+關注
關注
28文章
2123瀏覽量
79598 -
物理層
+關注
關注
1文章
155瀏覽量
35070
發(fā)布評論請先 登錄
什么是Modbus通訊協(xié)議?Modbus通訊協(xié)議有什么特點?
基于MODBUS的串口通訊軟件(LV實現(xiàn))
Modbus庫開發(fā)筆記之二:Modbus消息幀的生成
modbus rtu通訊協(xié)議格式詳細說明

解讀Modbus通訊協(xié)議
一文詳解Modbus RTU數(shù)據(jù)幀格式

關于Modbus數(shù)據(jù)幀的一些基礎知識

串口通訊時的數(shù)據(jù)幀格式和通訊協(xié)議有什么區(qū)別?
使用MODBUS協(xié)議的時候可以不用設置數(shù)據(jù)幀格式了嗎?
EtherCAT 數(shù)據(jù)幀格式和尋址方式簡介

評論