Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

簡介

Modbus簡介

張惠富 (Eric) 2012.05.09

http://bacnet.webnode.tw
什麼是 Modbus

 Modbus是由Modicon公司(現為Schneider的
一個品牌)在1978年提出的
 Modbus由於易學易用,耗費系統資源極低,
因此儼然是工業控制領域的一個通訊標準
 Modbus 被廣泛應用在 PLC 與 多功能電表等
設備中
 1998年Schneider又推出了TCP/IP乙太網路的
ModbusTCP,使 MODBUS 應用更推向網際
網路。
MODBUS 的網路特性

 按電氣特性可分為RS-232、RS-422與RS-
485。
 按照資料流程的方向可分成兩種基本的傳送方
式:全雙工、半雙工。
 RS-485 半雙工通訊由於只需要兩條通訊線,
且通訊距離長,被廣泛用在分散式的控制網路
架構。
MODBUS 協定

 Modbus協定是主(Master)/僕(Slave)通訊協定;
 網路上的每個 Slave 設備必須有唯一的位址
(範圍從1到247)
 Slave 位址用於定址 Slave 設備,由Master發
起;
 位址0用於廣播模式,不需要回應;
 傳輸模式 依照編碼方式可以分為 RTU 與
ASCII模式
MODBUS RTU 模式

 使用 16 進制編碼
 使用兩個 Byte 的 CRC 校驗碼
 相較於 ASCII 節省一半的通訊量
 CRC校驗遠較LRC運算嚴謹

Slave 地址 功能碼
功能碼 資料 CRC

1 byte 1 byte 0 ~252 bytes 2 bytes


MODBUS ASCII 模式

 封包必須以“ : ”開始,以“CR -LF”結束;


 資料用十六進位 ASCII 碼值表示;
 使用LRC進行錯誤校驗;
 相較於 RTU 模式可以直接由文字通訊程式進行
傳輸

起始 Slave 地址 功能碼
功能碼 資料 LRC 结束

1 byte ‘:’ 2 byte 2 bytes 0 ~ 2*252 bytes 2 bytes 2 bytes ‘CR LF’
常用功能碼

功能碼 名稱 說明
01 Read Coil Status 取得一組數位輸出的目前狀態

02 Read Input Status 取得一組數位量輸入的目前狀態

03 Read Holding Registers 取得一組類比輸出的目前狀態

04 Read Input Registers 取得一組類比輸入的目前狀態

05 Force Single Coil 強制設定單個數位輸出的值

06 Preset Single Register 強制設定單個類比輸出的值

15 Force Multiple Coils 強制設定多個數位輸出的值

16 Preset Multiple Regs 強制設定多個類比輸出的值


MODBUS RTU 的問答範例

Master 詢問 RTU封包(Query)

Slave 地址 功能碼 起始地址高位 起始地址低位 暫存器高位 暫存器低位 CRC

11H 03H 00H 6BH 00H 03H 76H 87H

Slave 回答RTU 封包(Response)

Slave 地址 功能碼 資料 Byte 數 資料 CRC

11H 03H 06H 02H 2BH 00H 00H 00H 64H 20H 18H
MODBUS RTU 的錯誤回報範例

Master 詢問 RTU封包(Query)

Slave 地址 功能碼 起始地址高位 起始地址低位 暫存器高位 暫存器低位 CRC

11H 03H 00H 6BH 00H 03H 76H 87H

Slave 回答RTU 封包(Response)

Slave 地址 功能碼 異常碼 CRC

11H 83H 02H C1H 34H


異常代碼(Exception
異常代碼(Exception Codes)

功能碼 名稱 說明
01 ILLEGAL FUNCTION 不支援的功能

02 LLEGAL DATA ADDRESS 不合法的地址

03 ILLEGAL DATA VALUE 不合法的數值

04 SLAVE DEVICE FAILURE Slave 設備失效

05 ACKNOWLEDGE 確認(命令執行中)

06 SLAVE DEVICE BUSY Slave 設備忙碌


MODBUS TCP

 IANA (Internet Assigned Numbers Authority:網際網


路編號分配管理機構)已為 Modbus協議指配TCP /
UDP埠502
 Modbus TCP資料封包包含了MBAP標頭,功能碼和
資料三部分
 MBAP Modbus Application Protocol
Modbus TCP/IP PDU
MBAP 標頭 功能碼 資料

PDU
MBAP 標頭

名稱 長度 描述 Client 端 Server 端

傳送識別碼
Transaction 用以辨識傳送與接 回覆收到相同的識別
2 Bytes Client 產生
Identifier 收封包對應 碼

協議識別碼
Client 產生(固定 回覆收到相同的識別
Protocol 2 Bytes MODBUS固定為 0
為 0) 碼(固定為 0)
Identifier
長度 Client 依照本身 Server依照本身封包
2 Bytes 後續資料長度
Length 封包產生 產生

單元識別碼 遠端Slave設備辨 回覆收到相同的識別


1 Byte Client 產生
Unit Identifier 識碼 碼
MODBUS 的優勢與劣勢(
的優勢與劣勢(相對於BACnet)
相對於BACnet)

 優勢
– 簡易-易於實現+耗資源低
– 通行-易於整合
 缺點
– 功能較陽春
– 未定義浮點數、文字等數值格式
– 點的概念非物件概念
– 無公證單位認證
– Slave 間無法自行資料共享
問題討論
問題討論

謝謝指教!!

參考資料來源:
Modicon Modbus Protocol Reference Guide PI–MBUS–
300 Rev. J
MODBUS MESSAGING ON TCP/IP IMPLEMENTATION
GUIDE Rev 1.0 8May02

You might also like