Modbus-RTU協(xié)議是主從交互式協(xié)議,即主機(jī)輪詢、從機(jī)應(yīng)答。在工控自動(dòng)化、樓宇自動(dòng)化行業(yè)中應(yīng)用廣泛。該協(xié)議的報(bào)文結(jié)構(gòu)主要由地址、功能碼、寄存器、數(shù)據(jù)、校驗(yàn)碼等構(gòu)成。下面和大家分享一下Modbus-RTU的基本知識(shí)。
RS485接口在工業(yè)自動(dòng)化中應(yīng)用非常廣泛,該接口為雙總線通信方式,只有RSA和RSB兩根線,可以走MODBUS TCP/IP協(xié)議,也可以走MODBUS-RTU協(xié)議,通訊距離可達(dá)數(shù)公里,是一種標(biāo)準(zhǔn)的通訊接口,而MODBUS-RTU是工業(yè)現(xiàn)場(chǎng)一種標(biāo)準(zhǔn)的通信協(xié)議,大多數(shù)的PLC和組態(tài)屏都支持該通訊協(xié)議。
其數(shù)據(jù)格式是由如下幾部分構(gòu)成的:1)從機(jī)地址;2)功能碼;3)數(shù)據(jù);4)校驗(yàn)碼。采用一問(wèn)一答式通訊方式,主機(jī)定時(shí)查詢從機(jī)狀態(tài),從機(jī)收到主機(jī)的輪詢命令后回復(fù)相應(yīng)的數(shù)據(jù)。常用的功能碼有01讀線圈狀態(tài)、03讀保持寄存器、06預(yù)置單個(gè)寄存器、16預(yù)置多個(gè)寄存器等。
以03功能碼為例,介紹一條具體的數(shù)據(jù)格式,主機(jī)的命令格式為:
01 03 00 04 00 02 85 CA,從機(jī)回復(fù)的數(shù)據(jù)格式為:
01 03 04 00 00 00 00 FA 33。如下圖所示。
主機(jī)要讀取01號(hào)地址的從設(shè)備的寄存器內(nèi)容,讀取從00 04寄存器開(kāi)始往后2個(gè)寄存器的內(nèi)容,即00 04和00 05寄存器中的內(nèi)容。從機(jī)收到命令后,將這兩個(gè)寄存器中的數(shù)據(jù)發(fā)送給主機(jī),每個(gè)寄存器存放兩個(gè)字節(jié)的數(shù)據(jù),兩個(gè)寄存器共存放4個(gè)字節(jié)的數(shù)據(jù),所以返回?cái)?shù)據(jù)字節(jié)的個(gè)數(shù)為4個(gè)。
06功能碼是用來(lái)寫(xiě)從機(jī)寄存器的內(nèi)容的,比如主機(jī)向改寫(xiě)從機(jī)其中一個(gè)寄存器的數(shù)據(jù),就可以通過(guò)06功能碼來(lái)實(shí)現(xiàn)。主機(jī)發(fā)送的數(shù)據(jù)如下:
01 06 00 00 00 0A 09 CD,從機(jī)返回的數(shù)據(jù)如下:
01 06 00 00 00 0A 09 CD。如下圖所示。
該數(shù)據(jù)所代表的含義為:主機(jī)要將01號(hào)從機(jī)的00 00寄存器寫(xiě)入兩個(gè)字節(jié)的數(shù)據(jù),數(shù)據(jù)為00 0A。寫(xiě)入成功后,從機(jī)返回該寄存器的狀態(tài)。
06功能碼只要改寫(xiě)一個(gè)寄存器的內(nèi)容,如果要改寫(xiě)多個(gè)寄存器的內(nèi)容需要用到
16
預(yù)置多個(gè)寄存器功能碼。
Modbus在通訊之前,先要確認(rèn)通信參數(shù),這些通信參數(shù)包括:1)波特率;2)數(shù)據(jù)位數(shù);3)停止位4)校驗(yàn)方式等。
波特率是指每秒所傳送的數(shù)據(jù)的位數(shù),數(shù)值越大通信速度越快,常用的波特率有4800、9600、19200、115200等,兩臺(tái)設(shè)備在通訊時(shí),通訊波特率必須一致,否則通訊無(wú)法建立。
數(shù)據(jù)位數(shù),一般為8位。停止位有1位,2位等,校驗(yàn)方式有奇校驗(yàn)、偶校驗(yàn)和無(wú)校驗(yàn)等。
Modbus-RTU是工控行業(yè)應(yīng)用廣泛的通訊協(xié)議,主流PLC都支持該協(xié)議,在編程時(shí),不需要實(shí)現(xiàn)所有的功能碼,只需要實(shí)現(xiàn)常用的幾個(gè)功能碼就可以,如上述所描述的
03,06,16
等。
RS485是硬件接口,那么他是怎么實(shí)現(xiàn)數(shù)據(jù)通訊的呢?Modbus-RTU協(xié)議解析
EMC抗干擾設(shè)計(jì)——RS485 接口的電磁兼容設(shè)計(jì)
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!