在工業互聯網領域,大家一定對Modbus協議並不陌生。前段時間”知識科普小能手”宇泰科技也為大家推送過一篇《幾分鐘帶你吃透Modbus協議》的文章,主要是從工作原理、通訊方式、特點等對Modbus協議進行了一個簡單的介紹。今天小編就接着上回和大家繼續聊一聊Modbus協議下的兩種模式–RTU和ASCII兩種模式。
Modbus協議在串行總線通信中的協議有RTU和ASCII兩種模式。RTU是Remote Terminal Unit的縮寫,意思是遠程終端單元。ASCII是American Standard Code for Information Interchanged的縮寫,意思是美國信息交換標準代碼,是將文字編輯符號、大小寫字母、數字和一些不可見的控制字符進行編碼的一種字符表示形式,除了空字符外,共127個字符編碼。
了解其含義之後,二者到底有哪些區別呢?小編從以下幾個方面進行了對比:
1 二者作用不同
兩種協議的不同之處,最簡單的講就是RTU是直接發送數據,二進制代碼,其表示的物理意義,需要發送端和接收端進行約定;ASCII發送的數據是用於表示字符的二進制代碼。
2 二者傳輸方式不同
在ASCII模式下,每個8位的位元組被拆分成兩個ASCII字符進行發送,比如十六進制數0Xaf,會被分解成ASCII字符”A”和”F”進行發送,發送的字符量比RTU增加一倍;在RTU模式下,每個位元組可以傳輸兩個十六進制字符,比如十六進制數0XAF,直接以十六進制0XAF(二進制:10101111)進行發送,因此它的發送密度比ASCII高一倍。

表一:RTU模式傳輸

表二:ASCII模式傳輸
3 兩者的數據幀校驗方式不同。
從上面兩個表格中也可看出:RTU使用CRC校驗,即循環冗餘檢驗;ASCII使用的是LRC,即縱向冗餘校驗。
4 兩者的數據域的長度不同。
RTU數據域的長度為252字符,而ASCII的是其兩倍。
⑤RTU是必須,ASCII是可選項
在Modbus協議標準中,RTU是必須要求的,而ASCII是可選項,即作為一個Modbus通信設備可以只支持RTU,也可以同時支持RTU和ASCII,但不能只支持ASCII。

ASCII模式和RTU模式分別有什麼優缺點呢?小編為大家做了一個表格,方便進行比較:

從上表的比較我們可以看到,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秒,而RTU協議由於沒有規定開始和結束標記,所以協議規定每兩個位元組之間發送或者接收的時間間隔不能超過3.5倍字符傳輸時間,如果兩個字符時間間隔超過了3.5倍的字符傳輸時間,就認為一幀數據已經接收,新的一幀數據傳輸開始,所以RTU協議下兩個位元組間傳輸間隔有時間要求。這一區別也決定某些應用場合只能選用其中一種協議。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/281423.html
微信掃一掃
支付寶掃一掃