Modbus是一種串行通訊協議,是Modicon公司於1979年爲使用可編程邏輯控制器PLC通訊而發表。Modbus是工業領域通訊協議的業界標準,是工業電子設備之間經常使用的鏈接方式。Modbus在工業控制領域通訊協議中被普遍使用基於如下幾個特色:編程
Modbus協議定義了一個控制器能認識使用的消息結構,而無論它們是通過何種網絡進行通訊的。它描述了一控制器請求訪問其它設備的過程,若是迴應來自其它設備的請求,以及怎樣偵測錯誤並記錄。它制定了消息域格局和內容的公共格式。 服務器
經過此協議,控制器相互之間、或控制器經由網絡(如以太網)能夠和其它設備之間進行通訊。Modbus協議使用的是主從通信技術,即由主設備主動查詢和操做從設備。通常將主控設備方所使用的協議稱爲Modbus Master,從設備方使用的協議稱爲Modbus Slave。典型的主設備包括工控機和工業控制器等;典型的從設備如PLC可編程控制器等。Modbus通信物理接口能夠選用串口(包括RS23二、RS485和RS422),也能夠選擇以太網口。其通訊遵循如下的過程:網絡
當在一Modbus網絡上通訊時,此協議決定了每一個控制器需要知道它們的設備地址,識別按地址發來的消息,決定要產生何種行動。若是須要回應,控制器將生成反饋信息並用Modbus協議發出。在其它網絡上,包含了Modbus協議的消息轉換爲在此網絡上使用的幀或包結構。這種轉換也擴展了根據具體的網絡解決節地址、路由路徑及錯誤檢測的方法。異步
Modbus的工做方式是請求/應答,每次通信都是主站先發送指令,能夠是廣播,或是向特定從站單播,從站響應指令,並按要求應答,或者報告異常;當主站不發送請求時,從站不會本身發出數據,從站和從站之間不能直接通信。測試
Modbus協議可以應用在不一樣類型的總線或者網絡。對應不一樣的總線或網絡,Modbus協議引入一些附加域映射成應用數據單元(ADU),即ADU = 附加域 + PDU。例如:編碼
MODBUS 使用一個‘big-Endian’ 表示地址和數據項。這意味着當發射多個字節時,首先發送最高有效位。 例如:
spa
Register size : 16 - bits |
value: 0x1234 |
the first byte sent is :3d 0x12orm |
then:blog 0x34 |
MODBUS 以一系列具備不一樣特徵表格上的數據模型爲基礎。四個基本表格爲:
有三類Modbus功能碼。分別是:
1.公共功能碼:
2.用戶定義功能碼:
3.保留功能碼:
4.公共功能碼定義以下表所示: