(一)Modbus通信協議簡介

1、簡介

   Modbus是一種串行通訊協議,是Modicon公司於1979年爲使用可編程邏輯控制器PLC通訊而發表。Modbus是工業領域通訊協議的業界標準,是工業電子設備之間經常使用的鏈接方式。Modbus在工業控制領域通訊協議中被普遍使用基於如下幾個特色:編程

  1. 公開發表而且無版權要求;
  2. 易於部署和維護;
  3. 對供應商來講,修改移動本地的比特或字節沒有不少限制。

2、Modbus通信方式

  1. 以太網上的 TCP/IP ;
  2. 各類媒體(有線:EIA/TIA-232-EEIA-422EIA/TIA-485-A ;光纖、無線等)上的異步串行傳輸;Modbus RTU和Modbus ASCII通信既是採用該方式;
  3. Modbus Plus,一種高速令牌傳遞網絡。

 

3、協議描述

  Modbus協議定義了一個控制器能認識使用的消息結構,而無論它們是通過何種網絡進行通訊的。它描述了一控制器請求訪問其它設備的過程,若是迴應來自其它設備的請求,以及怎樣偵測錯誤並記錄。它制定了消息域格局和內容的公共格式。   服務器

  經過此協議,控制器相互之間、或控制器經由網絡(如以太網)能夠和其它設備之間進行通訊。Modbus協議使用的是主從通信技術,即由主設備主動查詢和操做從設備。通常將主控設備方所使用的協議稱爲Modbus Master,從設備方使用的協議稱爲Modbus Slave。典型的主設備包括工控機和工業控制器等;典型的從設備如PLC可編程控制器等。Modbus通信物理接口能夠選用串口(包括RS23二、RS485和RS422),也能夠選擇以太網口。其通訊遵循如下的過程:網絡

  1. 主設備(客戶機)向從設備(服務器)發送請求;
  2. 從設備(服務器)分析並處理主設備(客戶機)的請求,而後向主設備(客戶機)發送結果;
  3. 若是出現任何差錯,從設備(服務器)將返回一個異常功能碼 。

  當在一Modbus網絡上通訊時,此協議決定了每一個控制器需要知道它們的設備地址,識別按地址發來的消息,決定要產生何種行動。若是須要回應,控制器將生成反饋信息並用Modbus協議發出。在其它網絡上,包含了Modbus協議的消息轉換爲在此網絡上使用的幀或包結構。這種轉換也擴展了根據具體的網絡解決節地址、路由路徑及錯誤檢測的方法。異步

  Modbus的工做方式是請求/應答,每次通信都是主站先發送指令,能夠是廣播,或是向特定從站單播,從站響應指令,並按要求應答,或者報告異常;當主站不發送請求時,從站不會本身發出數據,從站和從站之間不能直接通信。測試

  Modbus協議可以應用在不一樣類型的總線或者網絡。對應不一樣的總線或網絡,Modbus協議引入一些附加域映射成應用數據單元(ADU),即ADU = 附加域 + PDU。例如:編碼

  • RS232 / RS485 ADU = 253 字節+服務器地址(1 byte) + CRC (2 字節) = 256 字節 ;
  • TCP MODBUS ADU = 249 字節+ MBAP (7 字節) = 256 字節 。

4、數據編碼

  MODBUS 使用一個‘big-Endian’ 表示地址和數據項。這意味着當發射多個字節時,首先發送最高有效位。 例如:
spa

Register size :
16 - bits
value:
0x1234

the first byte sent is :3d

0x12orm

then:blog

0x34

5、數據模型

  MODBUS 以一系列具備不一樣特徵表格上的數據模型爲基礎。四個基本表格爲:

6、功能碼

  有三類Modbus功能碼。分別是:

  1.公共功能碼:

  • 是較好地被定義的功能碼 ;
  • 保證是惟一的;
  • MODBUS 組織可改變的 ;
  • 公開證實的 ;
  • 具備可用的一致性測試 ;
  • MB IETF RFC 中證實的 ;
  • 包含已被定義的公共指配功能碼和將來使用的未指配保留供功能碼 。

  2.用戶定義功能碼:

  • 有兩個用戶定義功能碼的定義範圍,即 65 72 和十進制 100 110 ;
  • 用戶沒有 MODBUS 組織的任何批准就能夠選擇和實現一個功能碼 ;
  • 不能保證被選功能碼的使用是惟一的 ;
  • 若是用戶要從新設置功能做爲一個公共功能碼,那麼用戶必須啓動 RFC,以便將改變引入公共分類中,而且指配一個新的公共功能碼 。

  3.保留功能碼:

  • 一些公司對傳統產品一般使用的功能碼,而且對公共使用是無效的功能碼 。

  4.公共功能碼定義以下表所示:

相關文章
相關標籤/搜索