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