Modbus TCP協議及上位機軟件編寫

一、Modbus由MODICON公司於1979年開發,是一種工業現場總線協議標準。Modbus協議是一項應用層報文傳輸協議,包括ASCII、RTU、TCP三種報文類型。前面已經寫過RTU和ASCII的文章,這次寫下基於Modbus TCP協議的上位機軟件編寫。

二、Modbus TCP協議

發送報文格式:ModbusTCP的數據幀可分為兩部分:MBAP+PDU

1、MBAP為報文頭,長度為7字節,組成如下:

Modbus TCP協議及上位機軟件編寫

2、幀結構PDU:

PDU由功能碼+數據組成。功能碼為1字節,數據長度不定,由具體功能決定。

Modbus的操作對象有四種:線圈、離散輸入、輸入寄存器、保持寄存器。根據對象的不同,Modbus的功能碼有:


Modbus TCP協議及上位機軟件編寫

例如0x01:讀線圈

在從站中讀1~2000個連續線圈狀態,ON=1,OFF=0

  • 請求:MBAP 功能碼 起始地址H 起始地址L 數量H 數量L(共12字節)
  • 響應:MBAP 功能碼 數據長度 數據(一個地址的數據為1位)
  • 如:00 01 00 00 00 06 01 01 00 02 00 08 在從站0x01中,讀取開始地址為0x0002的線圈數據,讀0x0008位
  • 回:00 01 00 00 00 04 01 01 01 01數據長度為0x01個字節,數據為0x01,第一個線圈為ON,其餘為OFF

三、上位機編寫:

界面如下:

Modbus TCP協議及上位機軟件編寫

源代碼較長就不在這裡附了,大家可以關注WX公眾號“工控學習”,回覆“Modbus”,即可獲得百度雲鏈接完整代碼。


分享到:


相關文章: