2018年12月26日 星期三

什麼是 Modbus?


什麼是 Modbus?
  • Modbus是由Modicon公司(現為Schneider的 一個品牌)在1978年提出的
  • Modbus由於易學易用,耗費系統資源極低, 是工業控制領域的一個通訊標準  
  • Modbus 被廣泛應用在 PLC 與 多功能電表等 設備中  
  • 1998年Schneider又推出了TCP/IP乙太網路的 ModbusTCP,使 MODBUS 應用更推向網際 網路。
  • Modbus 是一種需求-回應協定,採用主從架構實作而成。 
  • Modbus允許多個 (大約240個) 裝置連接在同一個網路上進行通訊
    • 舉個例子,一個由測量溫度和濕度的裝置,並且將結果傳送給電腦。在資料採集與監視控制系統(SCADA)中,Modbus通常用來連接監控電腦和遠端終端控制系統(RTU)

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

MODBUS 協定
  • Modbus協定是主(Master)/僕(Slave)通訊協定; 網路上的每個 Slave 設備必須有唯一的位址(範圍從1到247)
  • 主從架構的通訊作業會成雙成對的出現,必須有個裝置啟動需求並等候回應,也就是說,這個啟動需求的裝置 (主要裝置) 會負責啟動每一次互動。
  • Slave 位址用於定址 Slave 設備,由Master發 起; 位址0用於廣播模式,不需要回應;  
  • 傳輸模式 依照編碼方式可以分為 RTU 與 ASCII模式


MODBUS RTU 模式




  • 使用 16 進制編碼  
  • 使用兩個 Byte 的 CRC 校驗碼  
  • 相較於 ASCII 節省一半的通訊量  
  • CRC校驗遠較LRC運算嚴謹
    • CRC為校驗和的一種,是兩個位元組資料流採用二進制除法(沒有進位,使用XOR來代替減法)相除所得到的餘數。

MODBUS ASCII 模式


  • 封包必須以“ : ”開始,以“CR -LF”結束;  
  • 資料用十六進位 ASCII 碼值表示;  
  • 使用LRC進行錯誤校驗;
    • 將所有位元組相加,捨去進位,然後取2的補數,即為 LRC 的演算法
  • 相較於 RTU 模式可以直接由文字通訊程式進行傳輸

MODBUS TCP
  • IANA (Internet Assigned Numbers Authority:網際網路編號分配管理機構)已為 Modbus協議指配TCP / UDP埠502  
  • Modbus TCP 資料封包包含了MBAP標頭,功能碼和資料三部分
  • MBAP Modbus Application Protocol

Modbus 模擬情境:
  • 像是一個部隊,有一位連長(Master),跟一群大頭兵(slave)
    (Master只有一個.其他都是slave)  
  • 操練中,只有連長(Master)可以說話,大頭兵(slave)不能主動說話,但可以回應。
    (資料的傳送必須由Master開始,slave只是回應。)  
  • 連長可傳送資訊給大頭兵,也可以問大頭兵的狀況
     (Master可以送給slave資料,或是詢問slave的資料) 
  • 大頭兵人多,每個人都有兵籍編號
    (slave 是以站號來區別)  
  • 連長在連集合場講話,或是大頭兵回話,不管連長或大頭兵都聽得到。
    (Master 或Slave 通訊時,每一站都收得到。)

reference:

沒有留言:

張貼留言