前面2期我們學習了,第一篇MODBUS協議基本介紹,第二篇MODBUS RTU傳輸模式介紹,今天我們來研究第三篇MODBUS ASCII傳輸模式介紹。
第三篇 MODBUS ASCII傳輸模式介紹
當 Modbus 串行鏈路的設備被配置為使用 ASCII(American Standard Code For Information Interchange)模式通信時,報文中的每個 8 位字節以兩個 ASCII 字符發送。當通信鏈路或者設備無法符合 RTU 模式的定時管理時使用該模式。
注:由于一個字節需要兩個字符,此模式比 RTU 效率低。
例:字節 0x5B 會被編碼為兩個字符:0x35 和 0x42(ASCII 編碼 0x35=”5”,0x42=”B”)。
ASCII模式每個字節(10位)的格式
1.編碼系統:十六進制,ASCII字符 0-9,A-F,報文中每個 ASCII 字符含有 1 個十六進制字符。
2.每字節 bit 流:1 起始位、7 數據位,首先發送最低有效位、1 位奇偶檢驗、1 停止位。
奇偶校驗是要求的,其它模式(奇校驗,無校驗)也可以使用。為了保證與其它產品最大的兼容性,同時支持無校驗模式是建議的。默認校驗模式必須為偶校驗。
字符是如何串行傳送的:
每個字符或字節均由此順序發送(從左到右):最低有效位(LSB)…最高有效位(MSB)。
ASCII模式位序列
設備配置為奇校驗、偶校驗或無校驗都可以接受。如果是無奇偶校驗,將傳送一個附加的停止位以填充字符幀:
ASCII模式位序列(無校驗的特殊情況)
幀檢驗域:
縱向冗余校驗(LRC-Longitudinal Redundancy Checking)。
Modbus ASCII報文幀
由發送設備將 Modbus 報文構造為帶有已知起始和結束標記的幀。這使設備可以在報文的開始接收新幀,并且知道何時報文結束。不完整的報文必須能夠被檢測到而錯誤標志必須作為結果被設置。
報文幀的地址域含有兩個字符。
在ASCII模式,報文用特殊的字符區分幀起始和幀結束。一個報文必須以一個‘冒號’(:)(ASCII 十六進制 3A)起始,以‘回車-換行’(CR LF)對(ASCII十六進制0D和0A)結束。
注:LF 字符可以通過特定的 Modbus 應用命令改變。
對于所有的域,允許傳送的字符為十六進制 0-9,A-F(ASCII 編碼)。設備連續的監視總線上‘冒號’字符。當收到這個字符后,每個設備解碼后續的字符一直到幀結束。
報文中字符間的時間間隔可以達1秒。如果有更大的間隔,則接收設備認為發生了錯誤。
ASCII報文幀
注:每個字符字節需要用兩個字符編碼。因此,為了確保ASCII 模式和 RTU模式在 Modbus 應用級兼容,ASCII 數據域最大長度為(2x252)是 RTU 數據域(252)的兩倍。
必然的,Modbus ASCII 幀的最大尺寸為 513 個字符。
ASCII 報文幀的要求在下面的狀態圖中綜合。“主設備”和“從設備”的不同角度均在相同的圖中表示。
ASCII傳輸模式狀態圖
1.“空閑”態是沒有發送和接收報文要處理的正常狀態。
2.每次接收到“:”字符表示新的報文的開始。如果在一個報文的接收過程中收到該字符。則當前地報文被認為不完整并被丟棄。而一個新的接收緩沖區被重新分配。
3.檢測到幀結束后,完成LRC 計算和校驗,然后分析地址域以確定幀是否發往此設備,如果不是,則丟棄此幀。為了減少接收處理時間,地址域可以在一接到就分析,而不需要等到整個幀結束。
LRC校驗
在 ASCII 模式,包含一對全部報文內容執行的,基于縱向冗余校驗(LRC-Longitudinal Redundancy Checking)算法的錯誤檢驗域。LRC 域檢驗不包括起始“冒號”和結尾 CRLF 對的整個報文的內容。不關報文有無奇偶校驗,均執行此檢驗。
LRC 域為一個字節,包含一個8 位二進制值。LRC 值由發送設備計算,然后將 LRC 附在報文后面。接收設備在接收報文時重新計算 LRC 的值,并將計算結果于實際接收到的 LRC 值相比較,如果兩個值不相等,則為錯誤。
LRC 的計算,對報文中的所有的連續 8 位字節相加,忽略任何進位,然后求出其二進制補碼。執行檢驗針對不包括起始“冒號”和結尾 CRLF 對的整個 ASCII報文域的內容。在 ASCII 模式,LRC 的結果被ASCII 編碼為兩個字節并放置于 ASCII模式報文幀的結尾,CRLF 之前。
簡單代碼如下:
-
MODBUS
+關注
關注
28文章
1998瀏覽量
78945 -
編碼
+關注
關注
6文章
967瀏覽量
55487 -
ASCII
+關注
關注
5文章
172瀏覽量
35664 -
RTU
+關注
關注
0文章
432瀏覽量
29254 -
傳輸模式
+關注
關注
0文章
9瀏覽量
7068
發布評論請先 登錄
Modbus ASCII的設計與實現

modbus三種通訊方式的字符介紹
Modbus-RTU協議模式學習下載
Modbus協議的理解
modbus常用功能碼解讀

評論