I am pretty sure there's something wrong either with the way you're reading/writing
the registers or with the way your device is reporting values.
I just verified this behaviour with our Modbus Object connecting to the ModbusSlave
Object (using a null-modem cable). You can check this out too..
I have two Pots -- Pot1 and Pot2 -- writing to 30001 and 30002 respectively
on my ModbusSlave. I inserted expressions on 30001, 30002, and D30001 on
my Modbus object.
Keeping Pot1 at 0, changing the value of Pot2 (i.e., 30002 register), I get
the right values in my D30001. Of course the max number we can write is
65535.
Now, make Pot2 as 0 and change Pot1 to 1 (i.e., 30001 register). You'll
now correctly see 65536 in D30001.
For a detailed description of the work
ing principle of the D registers in
Modbus, please refer to the following KB article:
http://digital.ni.com/public.nsf/3efedde4322fef19862567740067f3cc/4ef459f549fcc7028625660a000a7629?OpenDocument
Hope this lil test helps you in troubleshooting your problem.
Rgds,
Khalid
---------------------------------------
"Manikantan" wrote:
We have 90 Modbus RTU Devices connected to Lookout 4.0.
1. Reading Double long integer (32 Bit) has some problems. For example,
we have to read a 2 word (32 Bit)unsigned long integer from input registers
30001 and 30002.We tried with data members D30001 and D300001 in lookout.
In both cases changes in register 30002 was having no effect, ie. not read
by Lookout. But when value of 30001 changed, lookout read it (32 bit)correctly.
How the problem can be solved ?
2. Problem same as above faced with Read/Write Holding registers when 2
word (32 bit) information was to be written to the registers.
3. We have 3 word ASCII
data to be read from Modbus RTU device. How this>can
be done ?