色猫咪av在线网址_91精品国产福利在线观看雪梨还会玩转热点_丁香花的视频免费观看_国产手机在线A∨免费视频_十八禁av无码免费网站APP_综合色一区二区亚洲_日韩精品小电影_漂亮人妻熟睡中被公侵犯_全新成人高清无码片_高级厕所偷窥白领美女嘘嘘

當(dāng)前位置: 首頁 >應(yīng)用方案 >科普視頻 >

【物聯(lián)科普】Modbus協(xié)議系列之Modbus數(shù)據(jù)格式解析



modbus協(xié)議分享第二集之Modbus數(shù)據(jù)格式解析

上周我們簡(jiǎn)要概述了什么是modbus,這周我們將要講解modbus協(xié)議的數(shù)據(jù)格式和通訊規(guī)則。

Modbus通訊格式有三種,這是根據(jù)物理層/傳輸層而做的適配。根據(jù)TCP等傳輸層協(xié)議的特點(diǎn),modbus搖身一變,就成為了modbus TCP,使用RS485、RS232等串行物理層協(xié)議,modbus就形成了modbus RTU和modbus ASCII。

modbus ASCII格式解析

Modbus RTU和modbus ASCII都是應(yīng)用在串行物理層的modbus協(xié)議,ASCII與RTU不同的是,modbus ASCII使用ASCII字符表示數(shù)據(jù),兩個(gè)ASCII字符表示一個(gè)字節(jié)(數(shù)據(jù)傳輸量為兩個(gè)字節(jié)),而modbus RTU使用的是二進(jìn)制字符(一般轉(zhuǎn)換為16進(jìn)制表示)表示數(shù)據(jù),傳輸數(shù)據(jù)量較少。因此,相對(duì)于modbus ASCII,modbus RTU更加常見。

Modbus RTU數(shù)據(jù)格式解析

Modbus RTU的數(shù)據(jù)包中一般包含從站設(shè)備地址、功能碼、數(shù)據(jù)和差錯(cuò)校驗(yàn)。舉個(gè)例子,這是一個(gè)來自主機(jī)的16進(jìn)制數(shù)據(jù)請(qǐng)求包,其中06是從站設(shè)備的地址,代表這個(gè)數(shù)據(jù)包是發(fā)送給地址為06的從站設(shè)備而不是網(wǎng)絡(luò)中的其他設(shè)備,03代表的是功能碼,表示主站對(duì)從站進(jìn)行的操作,03功能碼是讀取保持寄存器中的數(shù)據(jù),00 50代表的是開始讀取的初始寄存器地址,00 04則是代表需要從寄存器中讀取4個(gè)字節(jié)長(zhǎng)度的數(shù)據(jù)。45 AF是差錯(cuò)校驗(yàn),一般使用的是CRC校驗(yàn),用來檢驗(yàn)傳輸?shù)臄?shù)據(jù)是否受損。

Modbus ASCII和modbus RTU的數(shù)據(jù)內(nèi)容大同小異,但是和modbus RTU不同的是,modbus ASCII在每個(gè)消息開始時(shí)會(huì)附加冒號(hào),以回車換行結(jié)尾。同樣的,還是以一個(gè)實(shí)際的數(shù)據(jù)消息為例,在這個(gè)例子中“:”表示消息的開頭,06是從站地址,03是功能碼,00 50是初始寄存器的地址,00 04是讀取的數(shù)據(jù)長(zhǎng)度,A3則是差錯(cuò)校驗(yàn),一般使用LRC校驗(yàn)。

modbus TCP格式解析

最后是modbus TCP協(xié)議格式了。modbus TCP協(xié)議的數(shù)據(jù)格式為三段式,即MBAP +功能碼+數(shù)據(jù)。MBAP分為四個(gè)部分,分別是事務(wù)處理標(biāo)識(shí)符,協(xié)議標(biāo)識(shí)符、長(zhǎng)度以及單元標(biāo)識(shí)符,事務(wù)處理標(biāo)識(shí)讀占用2個(gè)字節(jié),用來表示本次數(shù)據(jù)的序號(hào),原則上每發(fā)一次數(shù)據(jù),事務(wù)處理標(biāo)識(shí)符就需要加一,也可以保持不變。協(xié)議標(biāo)識(shí)符占兩個(gè)字節(jié),為固定值00,長(zhǎng)度占用兩個(gè)字節(jié),代表長(zhǎng)度后的數(shù)據(jù)的長(zhǎng)度,單元標(biāo)識(shí)符,簡(jiǎn)單來說就是串行從機(jī)設(shè)備地址。還是以一個(gè)實(shí)際的例子來說明,以下是一個(gè)modbus TCP從機(jī)返回的響應(yīng)數(shù)據(jù),其中00 01表示消息的序號(hào),00 00是表示使用modbus TCP,00 05是后面數(shù)據(jù)的長(zhǎng)度,為5個(gè)字節(jié),03是單元標(biāo)識(shí)符,04是功能碼,02表示讀取到的數(shù)據(jù)的長(zhǎng)度,為2個(gè)字節(jié),00 06是寄存器中的數(shù)據(jù)。

下周我們介紹Modbus協(xié)議的傳輸方式,我們下周不見不散!

今天的分享就到這里啦,EBYTE每一天都致力于更好的助力物聯(lián)化、智能化、自動(dòng)化的發(fā)展,提升資源利用率,更多串口服務(wù)器、數(shù)傳電臺(tái)、lora模塊等無線數(shù)傳模塊產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)和企業(yè)公眾號(hào)(微信號(hào):cdebyte進(jìn)行了解,也可以直接撥打400電話咨詢技術(shù)專員!


MODBUS協(xié)議相關(guān)文章推薦:

ModBus通信中RTU、ASCII、TCP協(xié)議有什么區(qū)別?

ModBus通信中RTU/ASCII/TCP協(xié)議選哪種模式更好

ModBus協(xié)議入門級(jí)講解,想不懂都難!

Modbus協(xié)議調(diào)試軟件工具仿真演示教程


4000-330-990

https://www.wjx.cn/jq/84863372.aspx