Modbus協(xié)議詳解
掃描二維碼
隨時(shí)隨地手機(jī)看文章
Modbus是OSI模型第7層上的應(yīng)用層報(bào)文傳輸協(xié)議,它在連接至不同類(lèi)型總線(xiàn)或網(wǎng)絡(luò)的設(shè)備之間提供客戶(hù)機(jī)/服務(wù)器通信。目前,可以通過(guò)下列三種方式實(shí)現(xiàn)Modbus通信:
以太網(wǎng)上的TCP/IP;
各種介質(zhì)(有線(xiàn):EIA/TIA-232-F、EIA-422、EIA/TIA-485-A;光纖、無(wú)線(xiàn)等)上的異步串行傳輸;
Modbus PLUS,一種高速令牌傳遞網(wǎng)絡(luò)。
作為中國(guó)國(guó)家標(biāo)準(zhǔn)的“基于Modbus協(xié)議的工業(yè)自動(dòng)化網(wǎng)絡(luò)規(guī)范”在描述Modbus應(yīng)用協(xié)議的基礎(chǔ)上,提供了Modbus應(yīng)用協(xié)議在串行鏈路和TCP/IP上的實(shí)現(xiàn)指南。
Modbus 通信線(xiàn)
Modbus數(shù)據(jù)單元
Modbus協(xié)議定義了一個(gè)與基礎(chǔ)通信層無(wú)關(guān)的簡(jiǎn)單協(xié)議數(shù)據(jù)單元(PDU),特定總線(xiàn)或網(wǎng)絡(luò)上的Modbus協(xié)議映射能夠在應(yīng)用數(shù)據(jù)單元(ADU)上引入一些附加域。啟動(dòng)Modbus事務(wù)處理的客戶(hù)機(jī)創(chuàng)建Modbus PDU,其中的功能碼向服務(wù)器指示將執(zhí)行哪種操作,功能碼后面是含有請(qǐng)求和響應(yīng)參數(shù)的數(shù)據(jù)域。
通用Modbus幀
當(dāng)Modbus應(yīng)用在串行鏈路上時(shí),Modbus ADU的地址域只含有從站地址,而差錯(cuò)校驗(yàn)碼是根據(jù)報(bào)文內(nèi)容執(zhí)行“冗余校驗(yàn)”計(jì)算的結(jié)果,根據(jù)使用的傳輸模式(RTU或ASCII)采用不同的計(jì)算方法。
串行鏈路上的Modbus幀
當(dāng)Modbus應(yīng)用在TCP/IP上時(shí),將使用一種專(zhuān)用報(bào)文頭——MBAP報(bào)文頭(Modbus應(yīng)用協(xié)議報(bào)文頭)來(lái)識(shí)別Modbus應(yīng)用數(shù)據(jù)單元。
TCP/IP上的Modbus幀
Modbus標(biāo)準(zhǔn)功能碼
Modbus協(xié)議定義了三種功能碼:
公共功能碼:被確切定義的、唯一的功能碼,由Modbus-IDA組織確認(rèn)、可進(jìn)行一致性測(cè)試且已在MB IETF RFC中歸檔
用戶(hù)定義的功能碼:用戶(hù)無(wú)需Modbus-IDA組織的任何批準(zhǔn)就可以選擇和實(shí)現(xiàn)的功能碼,但是不能保證被選功能碼的使用是唯一的
保留功能碼:某些公司在傳統(tǒng)產(chǎn)品上現(xiàn)行使用的功能碼,不作為公共使用。
公共功能碼定義如下表所示。
Modbus通信原理
Modbus是一種簡(jiǎn)單的客戶(hù)機(jī)/服務(wù)器型應(yīng)用協(xié)議,其通信遵循以下的過(guò)程:
客戶(hù)端準(zhǔn)備請(qǐng)求并向服務(wù)器發(fā)送請(qǐng)求;
服務(wù)器分析并處理客戶(hù)端的請(qǐng)求,然后向客戶(hù)端發(fā)送結(jié)果;
如果出現(xiàn)任何差錯(cuò),服務(wù)器將返回一個(gè)異常功能碼。
Modbus事務(wù)處理
統(tǒng)一的標(biāo)準(zhǔn)
Modbus串行鏈路、Modbus PLUS和Modbus TCP/IP使用的是一種統(tǒng)一的應(yīng)用協(xié)議,因而使得信息從一個(gè)網(wǎng)絡(luò)傳輸?shù)搅硪粋€(gè)網(wǎng)絡(luò)而不需改變通訊協(xié)議成為了可能。
當(dāng)Modbus在TCP/IP上實(shí)施時(shí),用戶(hù)還可以從IP路由功能中得益,使得分布于世界任何地方的設(shè)備之間都可以進(jìn)行通訊。施耐德電氣還提供了全套的網(wǎng)關(guān),用于實(shí)現(xiàn)Modbus TCP/IP網(wǎng)絡(luò)與現(xiàn)有的Modbus PLUS 或Modbus串行鏈路網(wǎng)絡(luò)之間的互連。
IANA委員會(huì)給施耐德電氣公司分配了已為大家熟知的TCP 502端口,以專(zhuān)為Modbus協(xié)議保留。由此可見(jiàn),Modbus協(xié)議現(xiàn)在已經(jīng)成為Internet標(biāo)準(zhǔn)。Modbus和Modbus TCP/IP也被IEC 61158國(guó)際標(biāo)準(zhǔn)承認(rèn)為一種現(xiàn)場(chǎng)總線(xiàn),同時(shí)它們還是由ITEI管理的中國(guó)國(guó)家標(biāo)準(zhǔn)。
Modbus擁有著名的TCP端口502
Modbus TCP/IP是唯一個(gè)被分配到互聯(lián)網(wǎng)端口的工業(yè)以太網(wǎng)專(zhuān)題">工業(yè)以太網(wǎng)協(xié)議!
23 -Telnet 遠(yuǎn)程登錄協(xié)議
21 -FTP 文件傳輸協(xié)議
161 -SNMP 簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議
25 -SMTP 簡(jiǎn)單郵件傳輸協(xié)議
53 -DNS 域名解析服務(wù)
110 -POP3 郵局協(xié)議
80 -HTTP 超文本傳輸協(xié)議
67 -BOOTPS 引導(dǎo)程序協(xié)議服務(wù)器
502 -Modbus MODBUS TCP端口
簡(jiǎn)單而且開(kāi)放
Modbus應(yīng)用協(xié)議非常簡(jiǎn)單并且已經(jīng)得到普遍的認(rèn)可,很多制造商都開(kāi)發(fā)了對(duì)Modbus TCP/IP連接的支持。Modbus TCP/IP的簡(jiǎn)單性使得任何小型的現(xiàn)場(chǎng)設(shè)備,例如I/O組件,都可以通過(guò)以太網(wǎng)進(jìn)行通訊,而不需要配備功能強(qiáng)大的微處理器或大容量的內(nèi)存。
Modbus TCP/IP —— 高性能
由于結(jié)合了Modbus協(xié)議的簡(jiǎn)單性和100 M 以太網(wǎng)的高速度,Modbus TCP/IP展現(xiàn)了卓越的性能,這意味著將這種網(wǎng)絡(luò)應(yīng)用在實(shí)時(shí)性要求很高的場(chǎng)合,如I/O掃描,是可行的。
Modbus通信透明性
Modbus協(xié)議可以方便地在各種網(wǎng)絡(luò)體系結(jié)構(gòu)內(nèi)進(jìn)行通信,每種設(shè)備(PLC、HMI、控制面板、變頻器、運(yùn)動(dòng)控制、I/O設(shè)備等)都能使用Modbus協(xié)議來(lái)啟動(dòng)遠(yuǎn)程操作,同樣的通信能夠在串行鏈路和TCP/IP以太網(wǎng)網(wǎng)絡(luò)上進(jìn)行,而網(wǎng)關(guān)則能夠?qū)崿F(xiàn)各種使用Modbus協(xié)議的總線(xiàn)或網(wǎng)絡(luò)之間的通信。由此可見(jiàn),Modbus協(xié)議實(shí)現(xiàn)了全方位的通信透明。
Modbus通信全透明