LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

I/O Server: How many Modbus addresses are accessible?

Hello,

 

I realize this is more of a Modbus question than an I/O Server question, but I'm finding conflicting info online and I'm hoping someone could clear the fog for me.

 

 

So my questions are: Are there 65535 or 65536 Modbus addresses allowed? If it's the latter, does this mean I/O Server is unable to reach 1 address in the valid range?

 

Thanks!

Certified LabVIEW Developer
0 Kudos
Message 1 of 2
(2,633 Views)

HI JKSH,

 

Good question.

 

I did a local loopback test with the Modbus I/O servers included with the LabVIEW DSC module, and verified that our functional range is from 000001 to 065535. Registers assigned to 000000 or 065536 don't return as valid. See the screenshot below.

 

It looks like some other vendors also limit their range similarly, for example, Kepware and CSI:

http://www.kepware.com/kep_kb/?solution=/_ui/selfservice/pkb/PublicKnowledgeSolution/d?&id=501400000...

 

As a side point, this link also mentions that previously Modbus was limited to 10000 registers, but then was extended to 6-digit addressing.

 

Another factor that makes it more confusing as mentioned is that the low level of the protocol actually transmits a number one less than the register that is being targeted, since it is the offset from the first register.

http://www.chipkin.com/files/liz/MODBUS_2010Nov12.pdf#page=10

This PDF is one of my favorite resources about Modbus communication.

 

So, in summary, I wouldn't worry about it, and would only use registers in the range that seems to be universally supported (1-65535). If this is presenting limitations in the number of registers you can use, you probably need to look into using a different protocol :).

 

DSCModbusRegisterRangeDemo.PNG

Joey S.
Senior Product Manager, Software
National Instruments
Message 2 of 2
(2,609 Views)