1、Modbus 協議簡介
Modbus 是開放標準的 RTU,該協議被認為是最普遍的通信協議,并且通常可以作為鏈接工程電子設備的一種手段來訪問。詳細地說,這是用于通過串行線路或以太網連接在電子設備之間進行信息傳輸的通信協議。在開放標準條件下,任何人都可以實施。這可能用于連接電源域使用SCADA中的RTU 進行控制的系統。
Modbus 的協議被明確定義為主從協議,這意味著作為主設備的工具將使一個或多個工具作為從設備。只能由主機(PC,HMI等)通過唯一從機地址發起請求,從機(終端設備)根據主機請求進行響應,即半雙工通訊。該協議只允許主機發起請求,從機進行被動響應,因此從機不會主動占用通訊線路造成數據沖突。
2、Modbus 的通訊方式
2.1、Modbus三種通訊方式
Modbus有下列三種通信方式:
(1)、以太網:對應的通信模式是Modbus TCP/IP
(2)、異步串行傳輸(各種介質如有線RS-232-/422/485/;光纖、無線等):對應的通信模式是Modbus RTU或Modbus ASCII
(3)、高速令牌傳遞網絡:對應的通信模式是Modbus PLUS
Modbus RTU和Modbus ASCII協議應用于串口鏈接(RS232、RS485、RS422),Modbus tcp/ip協議應用于以太網鏈接。
2.2、在Modbus網絡上傳輸
標準的Modbus口是使用RS-232C兼容串行接口,它定義了連接口的針腳、電纜、信號位、傳輸波特率、奇偶校驗。控制器能直接或經由Modem組網。
控制器通信使用主/從技術,即僅一設備(主設備)能初始化傳輸(查詢)。其它設備(從設備)根據主設備查詢提供的數據作出相應反應。
典型的主設備:主機和可編程儀表。
典型的從設備:可編程控制器。
主設備可單獨和從設備通信,也能以廣播方式和所有從設備通信。如果單獨通信,從設備返回一消息作為回應,如果是以廣播方式查詢的,則不作任何回應。
Modbus協議建立了主設備查詢的格式:設備(或廣播)地址、功能代碼、所有要發送的數據、一錯誤檢測域。
從設備回應消息也由Modbus協議構成,包括確認要行動的域、任何要返回的數據、和一錯誤檢測域。如果在消息接收過程中發生一錯誤,或從設備不能執行其命令,從設備將建立一錯誤消息并把它作為回應發送出去。
2.3、在其它類型網絡上轉輸
在其它網絡上,控制器使用對等技術通信,故任何控制都能初始和其它控制器的通信。這樣在單獨的通信過程中,控制器既可作為主設備也可作為從設備。提供的多個內部通道可允許同時發生的傳輸進程。
在消息位,Modbus協議仍提供了主/從原則,盡管網絡通信方法是“對等”。如果一控制器發送一消息,它只是作為主設備,并期望從從設備得到回應。同樣,當控制器接收到一消息,它將建立一從設備回應格式并返回給發送的控制器。
3、三種通訊方式的報文格式
Modbus協議的報文(或幀)的基本格式是:表頭 + 功能碼 + 數據區 + 校驗碼
功能碼和數據區在不同類型的網絡都是固定不變的,表頭和校驗碼則因網絡底層的實現方式不同而有所區別。表頭包含了從站的地址,功能碼告訴從站要執行何種功能,數據區是具體的信息。
對于不同類型的網絡,Modbus的協議層實現是一樣的,區別在于下層的實現方式,常見的有TCP/IP和串行通訊兩種。
Modbus TCP基于以太網和TCP/IP協議,Modbus RTU和Modbus ASCII則是使用異步串行傳輸(通常是RS-232/422/485)。
3.1、以太網(modbus tcp/ip)
對于Modbus TCP而言,主站通常稱為Client,從站稱為Server;而對于Modbus RTU和Modbus ASCII來說,主站是Master,從站是Slave。
ModbusTCP的數據幀可分為兩部分:ADU=MBAP+PDU = MBAP + 功能碼 + 數據域,MBAP 7byte,功能碼1byte,數據域不確定,由具體功能決定。
3.2、異步串行傳輸的兩種傳輸方式(modbus RTU和modbus ASCII)
異步串行傳輸時,控制器可以設置為兩種傳輸模式(ASCII或RTU)中的任何一種在標準的Modbus網絡通信。用戶選擇想要的模式,包括串口通信參數(波特率、校驗方式等),在配置每個控制器的時候,在一個Modbus網絡上的所有設備都必須選擇相同的傳輸模式和串口參數。
3.2.1、ASCII模式
當控制器設為在Modbus網絡上以ASCII(美國標準信息交換代碼)模式通信,在消息中的每個8Bit字節都作為兩個ASCII字符發送。這種方式的主要優點是字符發送的時間間隔可達到1秒而不產生錯誤。
代碼系統:
- 十六進制,ASCII字符0...9,A...F
- 消息中的每個ASCII字符都是一個十六進制字符組成
- 每個字節的位:1個起始位、7個數據位(最小的有效位先發送)、1個奇偶校驗位(無校驗則無)、1個停止位(有校驗時)、2個Bit(無校驗時)
- 錯誤檢測域:LRC(縱向冗長檢測)
3.2.2、RTU模式
當控制器設為在Modbus網絡上以RTU(遠程終端單元)模式通信,在消息中的每個8Bit字節包含兩個4Bit的十六進制字符。這種方式的主要優點是:在同樣的波特率下,可比ASCII方式傳送更多的數據。
代碼系統:
- 8位二進制,十六進制數0...9,A...F
- 消息中的每個8位域都是兩個十六進制字符組成
- 每個字節的位:1個起始位、8個數據位(最小的有效位先發送)、1個奇偶校驗位(無校驗則無)、1個停止位(有校驗時),2個Bit(無校驗時)
- 錯誤檢測域:CRC(循環冗長檢測)
3.2.3、RTU和ASCII的區別
(1)、RTU模式下,一個字節的數據,傳輸的就是一個字節。ASCII模式下,同樣一個字節數據用了兩個字節來傳輸。例如,要傳輸數字0x5B,RTU傳輸的是0101 1011(二進制),而ASCII傳輸的是00110101和01000010。可見,ASCII傳輸的速率是RTU的一半。
(2)、ASCII模式采用LRC校驗,RTU模式采用16位CRC校驗。
(3)、ASCII有開始標記和結束標記,RTU沒有。
帝晶串口屏滿足您的所有尺寸需求
-
ModBus協議
+關注
關注
3文章
174瀏覽量
33388 -
串口協議
+關注
關注
0文章
14瀏覽量
8109 -
串口屏
+關注
關注
8文章
530瀏覽量
37323
發布評論請先 登錄
相關推薦
評論