LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

read many values from Modbus-baudrate

Hello,

I want to read 100+ registers from Modbus. How does VISA do that? If it was 100 queries at 8 byte each its already 12800 out of 19200 bit ber second? Will VISA update all the valoes in the I/O server with a range query regardless if I later on extract the shared variebles in a different order?

 

Thanks for your replies!

0 Kudos
Message 1 of 6
(2,478 Views)

If they're consecutive in address, then you can probably use something like

 

<device id> 03H (read) <start address> <quantity> <error checking> <termination>

 

and send only one query. You will need to wait for it to send all of the data back though...


GCentral
0 Kudos
Message 2 of 6
(2,451 Views)

there are gaps inbetween and some values I cannot access. How does I/O host deal with that? Does it at least work out how many are grouped? On the Distributes System manager it seems to be ok, they seem to update at least twice per second. Once its in a shared variable, I then its in computer memory.

0 Kudos
Message 3 of 6
(2,433 Views)

Sorry - I have no idea.


GCentral
0 Kudos
Message 4 of 6
(2,430 Views)

If the I/O servers are actually using VISA behind the scenes, you might be able to use I/O trace to see how they are interacting. If this is a concern more than a curiosity, you might want to consider using the Modbus API which will let you define the requests.

Matt J | National Instruments | CLA
0 Kudos
Message 5 of 6
(2,424 Views)

it seems to be a default, but in realyty it uses as much as it needs. Sometimes its set to 9600, which should not get me anywhere>.

I set the distributed systesms manager to 100ms, still working.

0 Kudos
Message 6 of 6
(2,422 Views)