MODBUS ASCII協議和RTU協議
時間:2018-03-24 17:26:18來源:瀏覽次數:
韓國DONG-DO測量儀在于PLC或者其他設備通信時采用的是哪種協議,很多都不明白,
我來告訴大家DONG-DO測量儀通信協議采用的是MODBUS ASCII傳輸方式即傳輸協議
下表是MODBUS ASCII協議和RTU協議的比較:
協議 | 開始標記 | 結束標記 | 校驗 | 傳輸效率 | 程序處理 |
ASCII | :(冒號) | CR,LF | LRC | 低 | 直觀,簡單,易調試 |
RTU | 無 | 無 | 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兩種協議的這一區別可能決定某些應用場合只能選用其中一種協議。
轉自:http://blog.sina.com.cn/s/blog_89f286ad0102uzju.html
MODBUS之ASCII通信方式2009/2/23 17:07:32
字符數據格式和數據代碼
● MODBUS通信之ASCII通信方式的每個字符的數據格式規定如下
·1個起始位
·7個數據位
·1個奇偶校驗位,無校驗則無
·1個停止位(有校驗),2個停止位(無校驗)
● 在MODBUS之ASCII通信方式中,其數據格式中每個字節(8bit)都是一個十六位進制字符組成。發送時每個字節(8bit)都作為兩個ASCII碼字符發送。
ASCII通信方式數據格式
MODBUS的ASCII方式的數據格式如下所示:
起始碼 | 地址碼 | 功能碼 | 數據區 | 校驗碼 | 停止碼 |
各部份內容說明如下:
起始碼:數據格式的幀頭,以“ :”號表示(4位),ASCII碼為(3AH)。
地址碼:從站的地址(8位),01H-FFH。
功能碼:主站發送,告訴從站執行功能(8位),01H-FFH,具體代碼功能見后。
數據區:具體數據內容(n× 8位,)
校驗碼:LRC校驗碼(8位),校驗碼的范圍為由地址碼開始到數據區結束,不包含起始碼。
停止碼:數據格式的幀尾,用 “CR”(0DH),“LF”(0AH)表示(8位)
控制器在MODBUS網絡上以ASCII碼模式通信,在數據格式中每8個bit(1個字節)都轉換成ASCII碼發送,也就是每個16進制字符(0~9),(A~F)都轉換成ASCII碼發送。這種方式的主要優點是字符發送的時間間隔可達1秒,而不產生錯誤。
數據格式的“:”為幀頭,在發送時,網絡上的設備不斷偵測“:”字符,當有一個冒號被收到時,每個設備都會解碼下個字符(地址碼)來判斷是否發給自己。
數據格式中的每個字符發送的時間間隔不能超過1秒,否則,接受設備將認為是傳送錯誤。
功能碼是主站告訴從站要執行的功能。例如運行命令,讀取監控狀態,修改參數,讀取參數等。MODBUS協議制定了相關的功能代碼,數據區為功能碼的內容,執行什么運行命令,正轉,反轉,停止,修改那個參數等等。MODBUS協議對數據區的具體格式與內容沒有作統一的規定,而留給設備生產商去制定。凡是采用MODBUS協議作為設備通信協議的生產商,都會在在這方面作具體說明。
ASCII通信方式的校驗方法是LRC校驗。
ASCII通信方式的數據格式之幀尾為固定的“CR”(回車),“LF”(換行)表示一幀數據傳送的結束。
上面就是ASCII通信方式一幀數據信息幀的內容。在通信中,信息幀的內容必須編成通信程序,由通信指令發送和回傳。