對(duì)于工控行業(yè)的朋友來說,Modbus協(xié)議可謂是耳熟聞詳?shù)囊粋€(gè)詞,很多人聽過次協(xié)議,但是不清楚具體是干什么的,是什么意思,今天我們一起來聊一聊什么是Modbus協(xié)議。
首先,我們來看一下三個(gè)問題:
Modbus是一種串行通信協(xié)議,是Modicon公司(現(xiàn)在的施耐德電氣 Schneider Electric)于1979年為使用可編程邏輯控制器(PLC)通信而發(fā)表的一種總線協(xié)議。
Modbus通信協(xié)議已經(jīng)成為工業(yè)領(lǐng)域通信協(xié)議的業(yè)界標(biāo)準(zhǔn)(De facto),并且現(xiàn)在是工業(yè)電子設(shè)備之間常用的連接方式(一種行業(yè)規(guī)范)。此外,還具有三大特點(diǎn):
①公開發(fā)表并且無版權(quán)要求
②易于部署和維護(hù)
③修改移動(dòng)本地的比特或字節(jié)沒有很多限制
概括來講,Modbus協(xié)議就是一種用于工業(yè)控制的協(xié)議,Modbus具有免費(fèi)使用、上手簡(jiǎn)單、需改方便三大特點(diǎn),已經(jīng)被廣泛使用。
Modbus協(xié)議都是用于通信的,就比如我們使用的語言,就可以看做是一種協(xié)議,作用是讓使用這種語言的人都能聽懂。比如我們之間定義了一個(gè)協(xié)議,“1”是向左,“2”是向右,我給你一個(gè)“1”,如果你沒有這個(gè)協(xié)議,就只知道是“1”,而你有這個(gè)協(xié)議就知道是讓你向左。
Modbus協(xié)議主要分為Modbus TCP、Modbus RTU、Modbus ASCII、Modbus Plus四種。
Modbus協(xié)議是主從方式通信,也就是說,不能同步進(jìn)行通信,總線上每次只有一個(gè)數(shù)據(jù)進(jìn)行傳輸,即主機(jī)發(fā)送,從機(jī)應(yīng)答,主機(jī)不發(fā)送,從機(jī)應(yīng)答完畢后,總線上就沒有數(shù)據(jù)通信。
例如,一個(gè)RS485總線上有一個(gè)主機(jī),20個(gè)從機(jī),主機(jī)查詢其中一個(gè)從機(jī),首先必須得給這些從機(jī)分配一個(gè)地址(每個(gè)地址必須唯一),分配好地址后,主機(jī)要查詢一個(gè)從機(jī)狀態(tài)(05),然后數(shù)據(jù)下發(fā)給從機(jī)(5號(hào)),從機(jī)(5號(hào))得到主機(jī)發(fā)送的數(shù)據(jù),然后對(duì)應(yīng)地址的從機(jī)(5號(hào))回復(fù),主機(jī)得到從機(jī)數(shù)據(jù),這樣就是一個(gè)主機(jī)到從機(jī)的通信過程。
Modbus TCP協(xié)議是用于管理和控制自動(dòng)化設(shè)備的,它覆蓋了使用TCP/IP協(xié)議的“Intranet”和“Internet”環(huán)境中Modbus報(bào)文的用途,Modbus RTU協(xié)議運(yùn)行于以太網(wǎng)。
Modbus TCP使用TCP/IP和以太網(wǎng)在站點(diǎn)間傳送Modbus報(bào)文,Modbus TCP結(jié)合了以太網(wǎng)物理網(wǎng)絡(luò)和網(wǎng)絡(luò)標(biāo)準(zhǔn)TCP/IP以及以Modbus作為應(yīng)用協(xié)議標(biāo)準(zhǔn)的數(shù)據(jù)表示方法。Modbus TCP通信報(bào)文被封裝于以太網(wǎng)TCP/IP數(shù)據(jù)包中。與傳統(tǒng)的串口方式,Modbus TCP插入一個(gè)標(biāo)準(zhǔn)Modbus報(bào)文到TCP報(bào)文中,不再帶有數(shù)據(jù)校驗(yàn)和地址。
Modbus協(xié)議是運(yùn)行于設(shè)備間的協(xié)議,或者說設(shè)備間必須要有Modbus RTU協(xié)議!這是Modbus協(xié)議上規(guī)定的,且默認(rèn)模式必須是RTU協(xié)議。幀結(jié)構(gòu)一般由地址、功能碼、數(shù)據(jù)、校驗(yàn)組成。
地址用于區(qū)分設(shè)備,占用一個(gè)字節(jié),范圍0-255,其中有效范圍是1-247,其他有特殊用途,比如255是廣播地址(廣播地址就是應(yīng)答所有地址,正常的需要兩個(gè)設(shè)備的地址一樣才能進(jìn)行查詢和回復(fù))。
功能碼占用一個(gè)字節(jié),意義在于指示這個(gè)指令的功能。
數(shù)據(jù)根據(jù)功能碼確認(rèn),不同的功能碼有不同的數(shù)據(jù)結(jié)構(gòu)。
校驗(yàn)位是為了保證數(shù)據(jù)不出現(xiàn)錯(cuò)誤而增加的。校驗(yàn)位將前面的數(shù)據(jù)進(jìn)行計(jì)算,看數(shù)據(jù)是否一致,如果一致,就說明這幀數(shù)據(jù)是正確的,再進(jìn)行回復(fù);如果不一樣,說明數(shù)據(jù)在傳輸過程中出了問題,數(shù)據(jù)產(chǎn)生錯(cuò)誤。
Modbus ASCII協(xié)議是建立在Modbus RTU協(xié)議上的,是將指令轉(zhuǎn)換為ASCII字符進(jìn)行傳輸?shù)?。比如Modbus RTU協(xié)議需要傳輸“12”,只需要一個(gè)字節(jié);Modbus ASCII協(xié)議需要將“1”轉(zhuǎn)換為“31”,“2”轉(zhuǎn)化為“32”,再進(jìn)行傳輸,需要占用兩個(gè)字節(jié),因此Modbus ASCII效率不高,使用率較低。
總的來看,Modbus RTU協(xié)議和Modbus ACSII協(xié)議都是基于232和485鏈路的,所以其通訊模式半雙工,一般是主機(jī)和從機(jī)的模式。其差別就是其字節(jié)的格式不同,一個(gè)是16進(jìn)制的數(shù)據(jù),一個(gè)是ASCII數(shù)據(jù)。
Modbus PLUS協(xié)議一般被稱為MB+,是一種高速現(xiàn)場(chǎng)總線網(wǎng)絡(luò),也是一種典型的令牌總線網(wǎng),針對(duì)工業(yè)控制應(yīng)用的本地局域網(wǎng)系統(tǒng)。它允許計(jì)算機(jī)、可編程序控制器和其他數(shù)據(jù)源以對(duì)等方式進(jìn)行通信,設(shè)備通過"令牌"的方式實(shí)現(xiàn)數(shù)據(jù)的交換,嚴(yán)格定義了令牌的傳遞方式、數(shù)據(jù)校驗(yàn)以及通信接口等方面的參數(shù)。數(shù)據(jù)傳送速率達(dá)1Mbit/s,傳輸介質(zhì)一般為為雙絞線、同軸電纜或光纖。
今天的分享就到這里啦,EBYTE每一天都致力于更好的助力物聯(lián)化、智能化、自動(dòng)化的發(fā)展,提升資源利用率,更多串口服務(wù)器、數(shù)傳電臺(tái)、lora無線模塊等產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)和企業(yè)公眾號(hào)(微信號(hào):cdebyte)進(jìn)行了解,也可以直接撥打400電話咨詢技術(shù)專員!
7 X 24 銷售服務(wù)熱線
4000-330-990深圳辦事處柯經(jīng)理:18218726658 南京辦事處葛經(jīng)理:17626012283
無錫辦事處劉經(jīng)理:13558641933
成都總部銷售經(jīng)理:
秦 科(無線模塊):18884314654 馮子恒(無線模塊):18828049434
蔡友銀(無線模塊):13882211021 葛宇龍(通信設(shè)備):19138800613
胡兵(外貿(mào)銷售經(jīng)理):18584911141、 sales06@ebyte.com
業(yè)務(wù)郵箱:support@cdebyte.com 全國(guó)銷售投訴電話:19934352316
地址:四川省成都市高新西區(qū)西區(qū)大道199號(hào)B5棟(前臺(tái)座機(jī):028-61543675)
?? 成都億佰特電子科技有限公司【版權(quán)所有】 蜀ICP備13019384號(hào)