Modbus技術規範,高手進階

Modbus技術規範組成

主要內容:

1、Modbus應用協議規範

Modbus技術規範,高手進階

Modbus技術規範的關係

Modbus技術規範,高手進階

Modbus通信棧

Modbus是一種簡單客戶機/服務器應用協議

Modbus技術規範,高手進階

客戶機能夠向服務器發送請求

服務器分析請求,處理請求,向客戶機發送應答

通用Modbus幀結構----協議數據單元(PDU)

Modbus是一個可選擇部分使用的協議

a 服務器可執行部分Modbus協議

Modbus由公共功能碼和用戶定義的功能碼組成

Modbus應用協議使用功能碼列表讀或寫數據,或者在遠程服務器上進行遠程處理

b 讀/寫寄存器列表,讀/寫比特列表

c 診斷,標識

Modbus技術規範,高手進階

Modbus事務處理(無差錯)

a 當服務器對客戶機響應時,它使用功能碼域來指示正常(無差錯)響應或者出現某種差錯(稱為異常響應)

b 對於一個正常響應來說,服務器僅複製原始功能碼

Modbus技術規範,高手進階

Modbus事務處理(異常響應)

a 對於異常響應,服務器將原始功能碼的最高有效位設置邏輯1後返回

b 異常碼指示差錯類型

Modbus技術規範,高手進階

Modbus PDU長度

a Modbus最初在串行鏈路上的實現(最大RS485ADU=256字節)限制了Modbus PD的長度

b 因此,對串行鏈路通信來說,Modbus PDU=256-服務器地址(1字節)-CRC(2字節)=253字節。

c 從而:

RS232/RS485 ADU=253字節+服務器地址(1字節)+CRC(2字節)=256字節。

TCP Modbus ADU=253字節+MBAP(7字節)=260字節。

Modbus PDU結構

(1)Modbus請求PDU

mb_req_pdu = { function_code, request_data} ,

function_code - [1字節] Modbus功能碼

request_data - [n字節]

(2)Modbus響應PDU

mb_rsp_pdu = { function_code, response_ data },

function_code - [1字節] Modbus功能碼

response_data - [n字節]

(3)Modbus異常響應PDU

mb_excep_rsp_pdu = { function_code, exception_code },

function_code - [1字節] Modbus功能碼 + 0x80 exception_code – [1字節]

Modbus 數據模型

Modbus的數據模型是以一組具有不同特徵的表為基礎建立的

四個基本表為:

Modbus技術規範,高手進階

Modbus公共功能碼的定義

Modbus技術規範,高手進階

Modbus功能碼應用實例(1)

讀線圈01 (0x01)

Modbus技術規範,高手進階

Modbus功能碼應用實例(2)

寫多個寄存器16(0x10)

Modbus技術規範,高手進階

Modbus技術規範,高手進階

2、Modbus協議在串行鏈路上的實現

主要在RS-485和RS-232等物理接口上實現Modbus協議

Modbus技術規範,高手進階

Modbus技術規範,高手進階

串行鏈路上的Modbus幀結構

a Modbus串行鏈路協議是一個主/從協議

b 網絡上的每一個從站必須有唯一的地址(從1到247)

c 從站地址用於尋址從站設備,由主站發起

d 地址0用於廣播模式,不需要響應

e RS-485和RS-232定義了標準的物理端口,提高可互操作性

Modbus技術規範,高手進階

Modbus串行傳輸模式-RTU模式

a RTU Modbus串行傳輸模式的報文格式,CRC-16差錯校驗

Modbus技術規範,高手進階

b 報文幀的標識

Modbus技術規範,高手進階

c 字符之間的要求

Modbus技術規範,高手進階

Modbus串行傳輸模式-ASCII模式

a 報文必須以“:”開始

b 報文必須以“LF-CR”結束

c 數據用十六進制ASCII碼值表示

d 使用LRC進行差錯校驗

Modbus技術規範,高手進階

3、Modbus協議在TCO/IP上的實現

基於開放TCP/IP 的Modbus協議

(1)Modbus協議是一個開發性協議

IANA已為 Modbus協議指配TCP / UDP 知名端口502

(2)Modbus協議是一個標準協議

IETF組織提議將Modbus協議作為因特網標準

Modbus協議是自動化領域中廣泛使用“實事”標準

(3)以太網 (快速以太網)

使用目前最流行的LAN技術

IEEE 802.3中定義的以太網和以太網II

(4)TCP/IP模型

描述因特網協議的組合

Modbus TCP/IP通信結構

Modbus TCP/IP的通信設備:

連接至TCP/IP網絡的Modbus TCP/IP客戶機和服務器設備、互連設備,如:在TCP/IP網絡和串行鏈路子網之間互連的網橋、 路由器或網關等設備。

Modbus技術規範,高手進階

TCP/IP 上的Modbus 數據幀

(a)通過TCP/IP棧傳輸

(b)支持以太網II和IEEE 802.3幀,默認幀為以太網II幀

(c)以太網II是默認的 TCP/IP 網絡幀格式

Modbus技術規範,高手進階

MBAP 報文頭

Modbus技術規範,高手進階

Modbus報文傳輸服務結構

Modbus技術規範,高手進階

通信應用層

n Modbus客戶機

允許用戶應用顯性地控制與遠程設備的信息交換。Modbus客戶機根據用戶應用向Modbus客戶機接口發送的要求中所包含的參數來建立一個Modbus請求。

n Modbus客戶機接口

Modbus客戶機接口提供一個接口,使得用戶應用能夠生成各類Modbus服務的請求,該服務包括對Modbus應用對象的訪問

n Modbus服務器

在收到一個Modbus請求以後,模塊激活一個本地操作進行讀、寫、或完成其他操作。

TCP管理層

管理通信的建立和結束以及管理在所建立的TCP連接上的數據流 。

n 連接管理

在客戶機和服務器的Modbus模塊之間的通信需要使用TCP連接管理模塊,負責全面管理報文傳輸TCP連接.

n 訪問控制

在某些至關重要的場合,必須禁止無關的主機對設備內部數據的訪問。這既是需要的安全模式,也是在需要時實現安全處理的原因。

TCP/IP棧層

可以對TCP/IP的棧進行參數配置,以適用對產品或系統的不同的特定約束進行數據流控制、地址管理和連接管理。使用BSD套接字接口來管理TCP連接。

Modbus TCP/IP連接建立

n Modbus報文傳輸服務必須在502端口上提供一個監聽套接字,允許接收新的連接和與其他設備交換數據。

n 當報文傳輸服務需要與遠程服務器交換數據時,它必須與遠程502端口建立一個新的客戶機連接,以便於遠距離地交換數據。本地端口必須高於1024,並且對每個客戶機的連接各不相同。

Modbus技術規範,高手進階

Modbus TCP/IP通信棧

TCP/IP棧提供了一個接口,用來管理連接、發送和接收數據,還可以進行某些參數配置,以使得棧的特性適應於設備或系統的限制。

Modbus技術規範,高手進階

享受更多最新實用PLC乾貨知識!


分享到:


相關文章: