modbus三種通訊方式的字符介紹
Modbus協議分為三種通信方式:Modbus RTU、Modbus ASCII以及Modbus TCP。
首先,Modbus TCP的通信格式和Modbus RTU非常相似,唯一的差別只是Modbus RTU最后帶兩個字節的CRC校驗,而Modbus TCP沒有。
其次,Modbus ASCII的通信格式與Modbus RTU其實“神合貌離”,就是把Modbus RTU的每一個字節(例如:27H)高四位(2)和低四位(7)拆分為兩個字節,并以ASCII碼的方式表現出來(32 37),再給命令幀分別加上起始符和結束符便可以,當然Modbus RTU和Modbus ASCII的校驗的方式不同,這里暫不詳述,所以同一條命令用Modbus RTU方式和Modbus ASCII方式表現出來,雖然在命令長度的上有很大的區別,但其實際表達的意思卻是一樣。
RTU方式
幀定界 :MODBUS RTU方式下,每兩個字符之間發送或者接收的時間間隔不能超過1.5倍 字符傳輸時間。如果兩個字符時間間隔超過了3.5倍的字符傳輸時間,規約就認為一幀數據已經接收,新的一幀數據傳輸開始。
RTU 模式每個字節 ( 11 位 ) 的格式為:
偶校驗是要求的,其它模式 ( 奇校驗, 無校驗 ) 也可以使用。為了保證與其它產品的最大兼容性,同時支持無校驗模式是建議的。默認校驗模式模式 必須為偶校驗。注:使用無校驗要求2 個停止位。
字符的串行傳送方式:
每個字符或字節均由此順序發送(從左到右):最低有效位 (LSB) ……最高有效位 (MSB)
RTU 模式位序列
設備配置為奇校驗、偶校驗或無校驗都可以接受。如果無奇偶校驗,將傳送一個附加的停止位以填充字符幀:
RTU 模式位序列 (無校驗的特殊情況)
ASCII方式
ASCII模式
幀定界:幀起始 “CR LF” 幀結束
ASCII方式用兩個ASCII字符表示一個8位數據,比如16進制的3A用字符“3”和字符“A”表示。
MODBUS TCPMODBUS TCP模式下,由于模塊的地址由IP地址確定,所以不再有地址域內容,考慮到TCP網絡是可靠的數據傳輸網絡,故不再有校驗數據。但是考慮到在IP網上數據到達的順序可能與我們預期的數據不一致,故增加了一個數據序號,考慮到在MODBUS TCP協議上承載MODBUS協議,還在頭部數據中增加了一個地址域。
因為Modbus/TCP是一種應用層的協議,上層為Modbus 協議,下層為TCP協議,它規定了網絡互聯節點間的請求/應答的通信方式。幀格式必須嚴格遵守協議所規定的ADU ( Application Data Unit)格式,才能在以太網上實現數據的傳輸。
MODBUS TCP模式
非常好我支持^.^
(401) 92.8%
不好我反對
(31) 7.2%
相關閱讀:
- [電子說] EtherCAT從站轉modbus RTU協議轉換網關用modbus slave測試的方法 2023-10-24
- [電子說] DLT698轉modbus協議網關把電能數據接到wincc的方法 2023-10-24
- [電子說] 軟啟動器與PLC通過ModbusRTU轉Profinet網關連接的配置案例 2023-10-24
- [電子說] Modbus485轉profinet網關連接伺服主軸驅動器與PLC的具體應用 2023-10-24
- [電子說] 通過MODBUS轉PROFINET(PROFINET轉MODBUS)網關連接EP1C系列通用伺服驅動器 2023-10-24
- [電子說] 軟啟動器與PLC通過ModbusRTU轉Profinet網關連接的配置案例 2023-10-24
- [電子說] Modbus485轉profinet網關連接伺服主軸驅動器與PLC的具體應用 2023-10-24
- [電子說] Python 中的5種隱藏技巧 2023-10-21
( 發表人:李建兵 )