Recommended Posts

I am trying to read register (400xx's) value through a Banner radio connected to a Murphy controller via DAQFactory.

For some reason it is saying the max register number I can read is 25535.

I then connected a transducer to the same Banner radio and I was able to check the 400xx's series register value via DAQFactory.

What can be the error here?

Link to comment
Share on other sites

25535 or 65535?  (65535 is 2 to the 16th - 1 and a number you see often in computers, 25535 is not seen often and looks like a typo of 65535).

It is important to understand that Modbus register addressing style can vary from manufacturer to manufacturer.  Some manufacturers use 40,000 notation, so that 40,001 is the first holding register.  This translates to register 0 in the actual Modbus communication packet (strip the 4 and subtract 1).  It also limits one to 9,999 holding registers.  Other manufacturers use 0 notation, so that 0 is the first holding register and matches with the Modbus communication packet.  In this case, there are 65535 possible holding registers locations.  The problem is that a number of manufacturers just flat out misunderstand all this, and will say that there register is, say, 42,323, which one would read as either 2322 or 42,323 depending on which of the two notations they were using, but the manufacturer will actually subtract one without stripping the 4, so they expect 42,322 in the packet.  This is just wrong, and confusing.

In your case, it is hard to tell.  DAQFactory attempts to automatically figure out which notation you are using.  If you only provide holding and input registers in the 30,000 (input) and 40,000 (holding) range, then it assumes you are using the strip 4, subtract 1 notation, and it will do that, making 40,001 into 0.  If, however, you read a register below 30,000 (or above 50,000) it will assume that all your registers are in 0 notation and send them as is.  It sounds a bit like DAQFactory it is doing this, treating 40,001 as 40,001 and not as 0.  You'd have to look at the actual packet to be sure, or just check and see if you are reading registers below 30,000.  

Link to comment
Share on other sites


This topic is now archived and is closed to further replies.