From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Modbus RTU Master IO Server - incorrectly polling for 20 holding registers

I have a LabVIEW Modbus RTU master, using an IO-server.
I have four registers in the S400001 ++ range (signed int-16) that I want to read/write to.
The master-application runs on one pc and the slave-simulator runs on a different pc.
They are connected using RS485 via USB/RS485 adapters.
The slave-simulator is WinModbus which has always received/transmitted expected results.

 

The problem (or issue) now is the amount of registers beeing polled by the master. I am polling four individual registers each second, but the slave responds with

  • "polling for 20 registers"
  • "polling for 1 register"
  • "polling for 1 register"
  • "polling for 1 register"

each second...

Does anybody know if this behaviour is expected ? 

Has anyone experienced the same behaviour ?

0 Kudos
Message 1 of 3
(2,031 Views)

 Hello Ron,

 

This might be expected behavior, however it's hard to tell without more information. Can you provide a screenshot of WinModbus showing what the exact requests are that you find suspicious? Please note that there are different types of requests, e.g. checking for component indices, "new data" flags, and actual data.

 

With four registers once per second from here:


The problem (or issue) now is the amount of registers beeing polled by the master. I am polling four individual registers each second,


Do you refer to the way you configured your I/O server? Or is that how you connect to the I/O server from your LabVIEW application?

 


Ingo – LabVIEW 2013, 2014, 2015, 2016, 2017, 2018, NXG 2.0, 2.1, 3.0
CLADMSD
0 Kudos
Message 2 of 3
(1,996 Views)

Hi ikaiser.

My first two registers have addresses 44097 and 44116, and hence they are within the "poll for 20" range. I guess LabVIEW decides the more efficient way of reading both these in one call.

Thanks for responding


 

0 Kudos
Message 3 of 3
(1,987 Views)