Modbus TCP幀的格式主要包括以下幾個部分:
事務標識符:用於標識請求和回響的對應關係。它是一個16位的無符號整數,由客戶端生成,並在請求和回響中保持不變。在請求中,客戶端使用一個新的事務標識符,而在回響中,伺服器使用相同的事務標識符,以便客戶端可以將回響與請求進行匹配。事務標識符的範圍是0到65535。
協定標識符:固定為0x0000,表示使用的是Modbus TCP協定。
長度:指示後續數據的位元組數。
單元標識符:用於標識Modbus設備。它是一個8位的無符號整數,通常設定為0xFF,表示廣播地址。如果單元標識符不是廣播地址,則請求將被傳送到指定的設備,並且回響也將返回到該設備。如果單元標識符是廣播地址,則請求將被傳送到所有設備,並且回響只會返回到請求的客戶端。在大多數情況下,單元標識符設定為0xFF。
功能碼:指示請求操作的類型。Modbus TCP支持的功能碼包括但不限於讀取線圈狀態、讀取離散輸入狀態、寫入單個暫存器等。
數據:請求或回響的數據。
以上各部分組成了Modbus TCP幀的基本格式。在實際套用中,還需要考慮乙太網幀的格式,包括目標地址、源地址、類型、數據和CRC等部分。