Holding Register Address


Thread Starter

savino pepe

Someone can help me understand what values can assume the field address for the holdings registers. In some documents I read that the admitted values are 4xxxx while in others I read that can assume values between 0 and 0xffff. In the first case the space of addressing would be only of 9999 registers (from 40000 to 49999) while in the second it would be of 65535.

Savino Pepe

Bob Peterson

Presumably you are refering to Modbus regsiter addresses.

5 digit addresses are used in processors that do not support more then 9999 registers. 6 digit addresses are used in those that support more than 9999 registers.

In the modbus packet hex 0000 refers to 40001 (or 400001 depending on the processor register capacity). You can indeed get 65535 registers, 400001 through 465536 if your processor supports that many.

Bob Peterson

Bradley Hite

Hello Savino,

It depends on the Device. Older Modicon PLCs only supported 5 digit addressing. So the range of possible 4xxxx addresses was 40001-49999. Newer Modicon devices support 6 digit addresses. So the range of possible addresses is now from 400001-465535.

If memory serves me correctly the changeover occurred with the 984-685E controllers. The 685E controller was the first controller to support 6 digit addressing. Any Controller previous to that vintage only supported 5 digit addressing.

Hope this helped, Bradley G. Hite Intertech Inc mailto:[email protected] Teaching Practical Skills for a Technological World

( Complete thread: http://www.control.com/1026174717/index_html )
Dear Savino,

It all depends on how many 4XXXXX registers the machine you attempt to communicate with has in its address space. Theoretically (from the top of my head) the MODBUS functions in question support 16 bit addressing (0 to 65535 in decimal notation). Meir Saggie

Pete Phillips

What kind of device? If this is a Modbus protocol communication or a Modicon PLC, the number of registers accessible depends on the device. Typically, Modbus 4XXXX registers can either have the range of 40001 - 49999 (where XXXX is a decimal number 0000 - 9999) or 400001 - 465535 (where XXXX is a hexidecimal number 0000 - FFFF)depending on the device you are talking to. The same applies to 0XXXX (Discrete Ouputs), 1XXXX (Dicrete Inputs) or 3XXXX (Input [Read Only] Registers).

Alex Pavloff

Hello Bradley & Savino...

The 5 or 6 digit addressing scheme always to me seemed to be a natural outgrowth of using Modbus RTU rather than Modbus ASCII. Modbus ASCII used 4 digits for the address for holding/input coils/registers, so they could start at 0000 and go to 9999. Modbus RTU went to a 16 bit word for the address, and this allowed 0 to 65535. You still can't read any address over 10000 with Modbus ASCII, and well, from the perspective of someone that's done a lot of work with the Modbus protocol -- there's absolutely no difference between 5 and 6 digit addressing.

Alex Pavloff -- [email protected]
Eason Technology --- www.eason.com
--- Linux-based industrial HMI ---
-------- www.eason.com/5k --------