![]() |
上海實(shí)潤(rùn)實(shí)業(yè)有限公司
主營(yíng)產(chǎn)品: 精密電子天平,校準(zhǔn)砝碼,鑄鐵砝碼,上海磅秤廠家,稱(chēng)豬電子磅秤 |
會(huì)員.png)
聯(lián)系電話
![]() |
上海實(shí)潤(rùn)實(shí)業(yè)有限公司
主營(yíng)產(chǎn)品: 精密電子天平,校準(zhǔn)砝碼,鑄鐵砝碼,上海磅秤廠家,稱(chēng)豬電子磅秤 |
聯(lián)系電話
2020-8-18 閱讀(1599)
MODBUS RTU詳細(xì)解釋
Modbus一個(gè)工業(yè)上常用的通訊協(xié)議、一種通訊約定,。 Modbus協(xié)議包括RTU,、 ASCII、TP,。其中 MODBUS-RTU
比簡(jiǎn)單,,在單片機(jī)上很容易實(shí)現(xiàn)。雖然RTU比簡(jiǎn)單,,但是看協(xié)議資料、手冊(cè)說(shuō)得太業(yè)了
起初很多內(nèi)容都很難理解
所謂的協(xié)議是什么?就是互相之間的約定嘛,,如果不讓別人知道那就是暗號(hào)?,F(xiàn)在就來(lái)定義一個(gè)新的協(xié)議。例如
協(xié)議:“A”——LED滅
“B”——“報(bào)警”
“C”——“LED亮”
單片機(jī)接收到“A”控制一個(gè)LED滅,,單片機(jī)接收到“B”控制報(bào)警,,單片機(jī)接收到“A”控制一個(gè)LED亮
那么當(dāng)收到對(duì)應(yīng)的信息就執(zhí)行相應(yīng)的動(dòng)作,,這就是協(xié)議,很簡(jiǎn)單吧,。
先來(lái)簡(jiǎn)單分析一條 NODBUS-RTU報(bào)文,,例如:0106000100179804
01 06 0001 017 9804
從機(jī)地址 功能號(hào) 數(shù)據(jù)地址 數(shù)據(jù) CRC校驗(yàn)
這一串?dāng)?shù)據(jù)的意思是:把數(shù)據(jù)0x0017(十制23)寫(xiě)入1號(hào)從機(jī)地址0x0001數(shù)據(jù)地址。
先弄明白下面的東西
1,、報(bào)文
個(gè)報(bào)文就是一幀數(shù)據(jù),,一個(gè)數(shù)據(jù)幀就一個(gè)報(bào)文:指的是一串完整的指令數(shù)據(jù),就像上面的一串?dāng)?shù)據(jù),。
2,、CRC校驗(yàn)
意義:例如上面的9804是它前面的數(shù)據(jù)(010600010017)通過(guò)一算法(見(jiàn)附錄2,很簡(jiǎn)單的計(jì)算出來(lái)的結(jié)果,,其實(shí)就像是計(jì)算累加和那樣,。(累加和:就是010****加起來(lái)的值,然后它的算法就是加法)
作用:在數(shù)據(jù)傳輸過(guò)程中可能數(shù)據(jù)會(huì)發(fā)生錯(cuò)誤,,ORC檢驗(yàn)檢測(cè)接收的數(shù)據(jù)是否正確,。比如主機(jī)發(fā)出010600
100179804,那么從機(jī)接收到后要根據(jù)010600010017再計(jì)算CRC校驗(yàn)值,,從機(jī)判斷自己計(jì)算出
來(lái)的CRC校驗(yàn)是否與接收的CRC校驗(yàn)(9804主機(jī)計(jì)算的)相等,,如果不相等那么說(shuō)明數(shù)據(jù)傳輸有錯(cuò)誤這
些數(shù)據(jù)不能要。
3,、功能號(hào)
意義: modbus定義,。見(jiàn)附錄1作用:指示具體的操作。
ODBUS-RTU
一個(gè)報(bào)文分析
先聲明下我們的目的,,我們是要兩個(gè)設(shè)備通訊,,用的是 MODBUS協(xié)議。上面簡(jiǎn)單介紹了:“報(bào)文”“CRC校驗(yàn)”
功能號(hào)”
在單片機(jī)中掌出一部分內(nèi)存(RAM)行兩個(gè)設(shè)備通訊,,例如