{}

我們的品牌

Impact-Company-Logo-English Black-01-177x54

歡迎造訪施耐德電機全球網站

歡迎訪問我們的網站
搜尋常見問題
How to decode modbus Scattered Holding Register Read Function
Issue
Troubleshooting modbus TCP communication including scattered read function codes. The scattered holding register read function enables the user to avoid reading a large block of contiguous registers when only few registers are needed and avoid multiple use of functions 3 and 4 in order to read non-contiguous registers

Products
Schneider products that support modbus function code 100 (0x64).

Cause
Function code 100 is not a standard function code so any tools to assist troubleshooting communications will not be able to decode the Modbus request. A scattered read allows reading n non-contiguous registers, where n is between 2 and 100 registers.

Resolution
The data fields inside a modbus TCP client request packet that include a function code 100 are outlined below. The example will request register 29879 (0x74B7) and register 29893 (0x74C5) from modbus device with address 47 (0x2F).
Field nameExample
Modbus Device Address0x2F
Function code0x64
Data length in bytes0x06
Subfunction code0x04
Transmission number(*)0xXX
First register to read (MSB)0x74
First register to read (LSB)0xB7
Second register to read (MSB)0x74
Second register to read (LSB)0xC5
nth register to read (MSB)N/A
nth register to read (LSB)N/A
CRC (MSB)0xXX
CRC (LSB)0xXX


* note Modbus client will create transmission number, modbus server returns the same number in the reply

Scattered read reply example from modbus TCP device with address 47:

Field nameExample
Modbus Device Address0x2F
Function code0x64
Data length in bytes0xXX
Subfunction code0x04
Transmission number(*)0xXX
Value of first register to read (MSB)0xXX
value of first register to read (LSB)0xXX
Value of second register to read (MSB)0xXX
Value of second register to read (LSB)0xXX
nth register to read (MSB)0xXX
nth register to read (LSB)0xXX
CRC (MSB)0xXX
CRC (LSB)0xXX

施耐德電機Taiwan

探索更多
系列:
產品:
可能有幫助的文章
探索更多
系列:
產品: