1 mbap報文頭(mbap:modbus
分四個域,共7個位元組,見表1。
表1
域長度描述客戶端伺服器端
傳輸標誌 2位元組 標誌某個modbus
詢問/應答的傳輸
由客戶端生成 應答時複製該值
協議標誌 2位元組 0=modbus協議
1=uni-te協議
由客戶端生成 應答時複製該值
長度 2位元組 後續位元組計數 由客戶端生成 應答時由伺服器
端重新生成
單元標誌 1位元組 定義連線於目的
節點的其它裝置
由客戶端生成 應答時複製該值
2modbus功能**
共有三種型別分別為:
·公共功能**已定義好的功能碼,保證其唯一性,由modbus.org認可。
·使用者自定義功能**有兩組,分別為65~72和100~110,不需要認可,但不保證**使用的唯一性,如想變為公共**,需要rfc認可。
·保留的功能**由某些公司使用在某些傳統裝置的**,不可作為公共用途。
常用公共功能**見表2。
表2 常用公共功能**
常用公共功能** 功能碼
十進碼 子碼 十六進製制
位 操
作 開關量輸入 讀輸入點 02 02
內部位或開關量輸出 讀線圈 01 01
寫單個線圈 05 05
寫多個線圈 15 0f
16 位
操 作
模擬量輸入 讀輸入暫存器 04 04
內部暫存器或輸出暫存器(模擬量輸出) 讀多個暫存器 03 03
寫單個暫存器 06 06
寫多個暫存器 16 10
讀/寫多個暫存器 23 17
遮蔽寫暫存器 22 16
檔案記錄 讀檔案記錄 20 6 14
封裝介面 寫檔案記錄 21 6 15
讀裝置標識 43 14 2b
功能**劃按應用深淺分,可分為三個類別:
(1) 類別0,對於客戶機/伺服器最小的可用子集。
· 讀多個保持暫存器(fc.3);
· 寫多個保持暫存器(fc.16)。
(2) 類別1,可實現基本互易操作的常用**。
· 讀線圈(fc.1);
· 讀開關量輸入(fc.2);
· 讀輸入暫存器(fc.4);
· 寫線圈(fc.5);
· 寫單一暫存器(fc.6)。
(3) 類別2,用於人機介面、監控系統的例行操作和資料傳送功能。
· 強制多個線圈(fc.15);
· 讀通用暫存器(fc.20);
· 寫通用暫存器(fc.21);
· 遮蔽寫暫存器(fc.22);
· 讀寫暫存器(fc.23)。
3modbus應用舉例:讀暫存器
請求 功能碼 1位元組 0x03
起始位址 2位元組 0x0000到0xffff
暫存器數 2位元組 1到125(0x7d)
應答 功能碼 1位元組 0x03
位元組數 1位元組 2 x n
暫存器的值 n x 2位元組
(n為暫存器的數量)
出錯 出錯碼 1位元組 0x83
例外碼 1位元組 01或02或03或04
4modbustcp 請求報文舉例,見表3。
表3
描述大小(位元組)示例備註
mbap 傳輸標誌hi 1 0x15 傳輸標誌用於和應答配合使用
傳輸標誌lo 1 0x01 每對傳輸使用唯一的標誌
協議標誌 2 0x0000 該域可用作定址modbus/
modbus+子網路的路由,這
時,此值含有目的裝置的位址
長度 2 0x0006
單元標誌 2 0xff
modbus
請求 功能** 1 0x03 讀暫存器
起始位址 2 0x0005
暫存器數 2 0x0001
本文**
Centos 檢視埠是否開放的三種方式
不同的linux系統檢視埠是否開放的不同,在某些環境下,需要依賴於軟體,如果centos中並沒有裝相關的軟體,這三種不一定能跑通,所以,具體使用哪種方式,取決於環境,不過可以對每一種試試。使用telnet命令,telnet名利在windows上可以直接使用,在linux上使用的話,先安裝 yum i...
整合第三方開放平台
目前國內常見的第三方開放平台有 我們可以通過整合這些第三方平台來實現 二 通過oauth2認證 1.重定向請求,請求授權碼code step 1 重定向到sina微博登入,請求授權碼code baseauthorizeurl為 2.登入 獲取授權碼code step 2 登入 獲取code 3.通過...
2017的中國開放 2023年開放科學如何發展
2017的中國開放 早在計算機出現之前,科學界就開始接受開放性。共享知識並建立在他人工作基礎上的理想是科學發現如何發生的基礎。今年,opensource.com的貢獻者分享了開源軟體和科學合作的一些方式。查閱2017年 上排名前六的科學文章。1.matlab的3種開源替代品 matlab是科學和工程...