Modbus communication data problems
    9 views (last 30 days)
  
       Show older comments
    
I am working on using modbus TCP to remotely read data. Each data value is obtained in the form of 4 registers. However, while running the code, instead of getting one value in the 4 registers, I seem to be getting the value of the next data as well. How can I rectify this? I am including a copy of the code:
test=read(t,'inputregs',1,4,'uint32')
test =
     1.0e+09 *
      1.0454         0    1.0446         0
>> test1=uint32(test)
test1 =
    1×4 uint32 row vector
     1045374906            0   1044558328            0
>> typecast(test1,'single')
ans =
    1×4 single row vector
      0.2023         0    0.1901         0
0 Comments
Answers (1)
  Nagarjuna Manchineni
    
 on 17 Jul 2017
        
      Edited: Walter Roberson
      
      
 on 17 Jul 2017
  
      The command
 test=read(t,'inputregs',1,4,'uint32')
reads 4 registers starting from 1 in 'uint32' format. I believe you would like to read a single register value in 'single' precision. For achieving the same you can use the following command:
 test = read(t, 'inputregs', 1, 1, 'single'); % If you want to read second register value update the third argument (address from where the value is being read) with value 2
Refer the following link for more information:
I hope this helps!
0 Comments
See Also
Categories
				Find more on Modbus Communication in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
