Modbus communication data problems
    9 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
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 Commenti
Risposte (1)
  Nagarjuna Manchineni
    
 il 17 Lug 2017
        
      Modificato: Walter Roberson
      
      
 il 17 Lug 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 Commenti
Vedere anche
Categorie
				Scopri di più su Modbus Communication in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!