少妇被躁爽到高潮无码人狍大战,欧洲亚洲国产精华液,色狠狠色噜噜av天堂一区,人人妻,一区二区三区,色偷偷wwww88888

首頁(yè) - 關(guān)于研博 - 技術(shù)筆記 - Modbus TCP通信協(xié)議介紹及示例詳解
Modbus TCP通信協(xié)議介紹及示例詳解
2024.10.16

  1、相關(guān)概念

  1.1 Modbus

  Modbus是一種廣泛應(yīng)用于工業(yè)自動(dòng)化領(lǐng)域的通信協(xié)議, Modbus提供了通用的語(yǔ)言在設(shè)備之間建立主從式的通信,Modbus協(xié)議簡(jiǎn)單、開(kāi)放、易于實(shí)現(xiàn),且支持多種物理層通信介質(zhì)(RS232、RS485、TCP/IP網(wǎng)絡(luò)等),因此成為了工業(yè)領(lǐng)域通信協(xié)議的業(yè)界標(biāo)準(zhǔn)之一。我們今天要介紹的是一種基于以太網(wǎng)TCP/IP的應(yīng)用層協(xié)議——Modbus TCP/IP協(xié)議。

  1.1 Modbus

  Modbus是一種廣泛應(yīng)用于工業(yè)自動(dòng)化領(lǐng)域的通信協(xié)議, Modbus提供了通用的語(yǔ)言在設(shè)備之間建立主從式的通信,Modbus協(xié)議簡(jiǎn)單、開(kāi)放、易于實(shí)現(xiàn),且支持多種物理層通信介質(zhì)(RS232、RS485、TCP/IP網(wǎng)絡(luò)等),因此成為了工業(yè)領(lǐng)域通信協(xié)議的業(yè)界標(biāo)準(zhǔn)之一。我們今天要介紹的是一種基于以太網(wǎng)TCP/IP的應(yīng)用層協(xié)議——Modbus TCP/IP協(xié)議。

 

  1.2 Modbus TCP

  Modbus TCP是Modbus協(xié)議在以太網(wǎng)上的一種實(shí)現(xiàn),它保留了Modbus協(xié)議的核心功能和數(shù)據(jù)模型,但對(duì)消息封裝進(jìn)行了調(diào)整,使其符合TCP/IP的要求。在進(jìn)行下一步之前我們首先對(duì)Modbus中的一些概念做一個(gè)了解。

  1.3存儲(chǔ)區(qū)

  存儲(chǔ)的數(shù)據(jù)類(lèi)型分為布爾量和寄存器

  1.3.1布爾量

  如水閥的開(kāi)關(guān)、燈的開(kāi)關(guān)等數(shù)據(jù)。

  1.3.2寄存器

  如流速、導(dǎo)電率、溫濕度、空氣濃度等數(shù)據(jù)。

  Modbus規(guī)定了4個(gè)存儲(chǔ)區(qū),分別是0、1、3、4,對(duì)應(yīng)下面表格內(nèi)容,具體為:

  0區(qū):可讀可寫(xiě)的布爾量

  1區(qū):只讀布爾量

  3區(qū):只讀寄存器

  4區(qū):可讀可寫(xiě)的寄存器

  1.4功能碼

  Modbus定義了一系列的功能碼,這些功能碼表示了主站請(qǐng)求從站執(zhí)行的具體操作,下面表格是一些常見(jiàn)的功能碼,具體為:

  1.4.1讀操作

  0x01:讀輸出線(xiàn)圈狀態(tài)。

  0x02:讀輸入線(xiàn)圈狀態(tài)。

  0x03:讀輸出寄存器的值。

  0x04:讀輸入寄存器的值。

  1.4.2寫(xiě)操作

  0x05:寫(xiě)單個(gè)線(xiàn)圈狀態(tài)。

  0x06:寫(xiě)單個(gè)寄存器的值。

  0x0F:寫(xiě)多個(gè)線(xiàn)圈狀態(tài)。

  0x10:寫(xiě)多個(gè)寄存器的值。

 

  1.5 協(xié)議報(bào)文

  Modbus TCP/IP的報(bào)文被封裝在一個(gè)標(biāo)準(zhǔn)的TCP數(shù)據(jù)段內(nèi),而不是像串行通信那樣直接在物理層上發(fā)送。TCP報(bào)文提供了端到端的可靠傳輸,包括數(shù)據(jù)分段、重傳、流量控制和擁塞控制等機(jī)制。

  Modbus TCP/IP的報(bào)文幀主要包括:

  MBAP頭:包含事務(wù)標(biāo)識(shí)符、協(xié)議標(biāo)識(shí)符、消息長(zhǎng)度、設(shè)備地址

  Modbus PDU:原始Modbus協(xié)議的數(shù)據(jù)部分,包括功能碼、數(shù)據(jù)地址和數(shù)據(jù)值。

  

 

  下面我們用一個(gè)表格來(lái)根據(jù)一段報(bào)文解釋這兩部分的具體內(nèi)容:

  主站發(fā)送報(bào)文:

 

  從站響應(yīng)報(bào)文:

 

  從上面的報(bào)文中我們可以知道:

  事務(wù)標(biāo)識(shí)符:占2個(gè)字節(jié),一次通信的過(guò)程中主站和從站的報(bào)文幀的事務(wù)標(biāo)識(shí)符是一致的。

  協(xié)議標(biāo)識(shí)符:占2個(gè)字節(jié),00 00表示Modbus TCP協(xié)議。

  后面報(bào)文的長(zhǎng)度:占2個(gè)字節(jié),表示后面報(bào)文的長(zhǎng)度。

  從站地址:占1個(gè)字節(jié),表示設(shè)備的地址,也就是Salve ID的值。

  功能碼:占1個(gè)字節(jié),例子中的03表示的是讀輸出寄存器的值。

  起始地址:占2個(gè)字節(jié),表示從該設(shè)備的哪個(gè)位置開(kāi)始讀。

  讀取數(shù)量:占2個(gè)字節(jié),表示從起始位置往后讀的數(shù)量。

  長(zhǎng)度:占2個(gè)字節(jié),表示后面還報(bào)文的長(zhǎng)度。

  對(duì)應(yīng)的值:根據(jù)不同的存儲(chǔ)類(lèi)型所占的字節(jié)不同。

  接下來(lái)我們通過(guò)工具來(lái)模擬Modbus TCP通訊。

 

  2、工具使用

  2.1 Modbus Slave

  打開(kāi)軟件之后點(diǎn)擊菜單欄的Connection→Connect,如圖所示:

 

  在彈出的界面選擇協(xié)議類(lèi)型為Modbus TCP/IP,輸入IP,端口號(hào)點(diǎn)擊OK

 

  隨后點(diǎn)擊Setup→Slave Definition...進(jìn)入從站設(shè)置界面

  

 

  下面我們新建四個(gè)不同存儲(chǔ)區(qū)的窗口來(lái)為后面模擬通訊做準(zhǔn)備

 

  根據(jù)圖中任意方式都可以新建窗口。

  可以看到四個(gè)窗口在從站地址為2,功能碼分別為01、02、03、04。

  

 

  需要注意的是01、02表示的是讀輸出線(xiàn)圈和輸入線(xiàn)圈,只有開(kāi)關(guān)量,對(duì)應(yīng)的數(shù)值為1=On,0=Off。

 

  03、04表示的是讀輸出寄存器和輸入寄存器。

 

  好了,接下來(lái)我們?nèi)ナ褂霉ぞ吣M主站來(lái)讀取從站的數(shù)據(jù)。在此之前我們可以勾選Auto increment模擬數(shù)據(jù)處于變化狀態(tài)。

  2.2 Modbus Poll

  使用和從站相同的方法連接之后新建四個(gè)窗口分別讀取,可以看到讀取實(shí)時(shí)數(shù)據(jù)成功。

 

  也可以通過(guò)查看日志確保主機(jī)處于正常讀取狀態(tài)。

 

  下面我們通過(guò)使用modbus-master-tcp模擬一個(gè)主站去和從站之間進(jìn)行通信。

 

  3、Java模擬主站

  3.1使用modbus-master-tcp庫(kù)

  modbus-master-tcp是基于Netty編寫(xiě),支持異步與并發(fā)。

  下面通過(guò)Java模擬主站讀取從站線(xiàn)圈狀態(tài):

 

 

  輸出結(jié)果:

 

  4、總結(jié)

  上述內(nèi)容就是對(duì)Modbus通信協(xié)議的介紹及通過(guò)工具和代碼模擬主站與從站之間進(jìn)行通信的過(guò)程,關(guān)于更多Modbus的實(shí)際應(yīng)用可以訪(fǎng)問(wèn)上海研博數(shù)據(jù)信息技術(shù)有限公司 (yanboot.cn)進(jìn)行查看,關(guān)于文章所涉及到的代碼可以留言獲取,關(guān)于更多后續(xù)請(qǐng)關(guān)注公眾號(hào)了解。

 

獲取相關(guān)資料
下載地址將會(huì)發(fā)送至您填寫(xiě)的郵箱
相關(guān)新聞
IEC104協(xié)議解析
2025-03-07
電動(dòng)汽車(chē)GB/T32960-2016協(xié)議介紹開(kāi)發(fā)
2025-02-21
HJ212環(huán)境監(jiān)測(cè)數(shù)據(jù)傳輸協(xié)議
2025-02-14
  • 在線(xiàn)客服
  • 電話(huà)咨詢(xún)
  • 微信
  • 短視頻