1. 程式人生 > >Modbus關於ASCII模式和RTU模式兩種傳輸方式的區別

Modbus關於ASCII模式和RTU模式兩種傳輸方式的區別

支持 系統 asc 方便 設備 優點 兩種 進制數 應用

常用的MODBUS通訊規約有兩種,一種是MODBUS ASCII,一種是MODBUS RTU。每個設備必須都有相同的傳輸模式。所有設備都支持RTU模式,ASCII傳輸模式是選項。除此之外ASCII模式和RTU模式還有什麽區別呢?

  1、ASCII模式

  當控制器設為在Modbus網絡請添加鏈接描述上以ASCII(美國標準信息交換代碼)模式通信,在消息中的每個8Bit

  字節都作為兩個ASCII字符發送。這種方式的主要優點是字符發送的時間間隔可達到1秒而不產生錯誤。

  代碼系統

  十六進制,ASCII字符0...9,A...F

  消息中的每個ASCII字符都是一個十六進制字符組成

  每個字節的位

  1個起始位

  7個數據位,最小的有效位先發送

  1個奇偶校驗位,無校驗則無

  1個停止位(有校驗時),2個Bit(無校驗時)

  錯誤檢測域

  LRC(縱向冗長檢測)

  2、RTU模式

  當控制器設為在Modbus網絡上以RTU(遠程終端單元)模式通信,在消息中的每個8Bit字節包含兩

  個4Bit的十六進制字符。這種方式的主要優點是:在同樣的波特率下,可比ASCII方式傳送更多的數據。

  代碼系統

  8位二進制,十六進制數0...9,A...F

  消息中的每個8位域都是一個兩個十六進制字符組成

  每個字節的位

  1個起始位

  8個數據位,最小的有效位先發送

  1個奇偶校驗位,無校驗則無

  1個停止位(有校驗時),2個Bit(無校驗時)

  錯誤檢測域

  CRC(循環冗長檢測)

  MODBUS的ASCII協議和RTU協議相比,MODBUS ASCII協議擁有開始和結束標記,而MODBUS RTU卻沒有,所以ASCII協議的程序中對數據包的處理能更加方便。

  MODBUS ASCII協議的DATA域傳輸的都是可見的ASCII字符,因此在調試階段就顯得更加直觀,另外它的LRC校驗程序也比較容易編寫,這些都是MODBUS ASCII的優點。

  MODBUS ASCII的主要缺點是傳輸效率低,因為它傳輸的都是可見的ASCII字符,原來用RTU傳輸的數據每一個字節,用ASCII的話都要把這個字節拆分兩個字節,比如RTU傳輸一個十六進制數0xF9,ASCII就需要傳輸字符‘‘F‘‘和字符‘‘9‘‘,對應的ASCII碼0x46和0x39兩個字節,這樣它的傳輸的效率肯定就比RTU低。

  所以一般來說,如果所需要傳輸的數據量較小可以考慮使用ASCII協議,如果所需傳輸的數據量比較大,最好能使用RTU協議。

  另外,由於ASCII協議有開始標誌和結束標誌,所以一個數據包之間的各字節間的傳輸間隔時間可以大於1秒,而MODBUS RTU方式下,由於沒有規定開始和結束標記,所以協議規定每兩個字節之間發送或者接收的時間間隔不能超過3.5倍字符傳輸時間。如果兩個字符時間間隔超過了3.5倍的字符傳輸時間,就認為一幀數據已經接收,新的一幀數據傳輸開始,所以RTU方式下兩個字節間傳輸間隔有時間要求。

  MODBUS 的ASCII和RTU兩種協議的這一區別可能決定某些應用場合只能選用其中一種協議

Modbus關於ASCII模式和RTU模式兩種傳輸方式的區別