LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Data Socket Update rate?

What is the maximum update rate using DataSockets?  I am writing a cluster of (176 bytes) and that cluster flattened to a string (always 40 bytes)  to a Datasocket at 10ms intervals.  The Datasocket server is on the same machine as the writing vi. 

 On another machine is the reading vi, I am reading those variables from the DataSocket with a timeout of 50ms (this is an Labview Executable).  With this configuration I get 1 timeout per 9.2 reads.  This doesn't seem to be a crazy amount of bandwidth for the DataSocket server. 

 

The two machines are on a wireless G network with 54Mbps connection, there are no other computers on this network.  I know that DataSocket bandwidth is dependent on the network,  with Labview using TCP functions I can transfer data at over 10 Mbps on this network.

 

Is there some way I can optimize the server to update more frequently, so I don't get any timeouts?

 

 

Download All
0 Kudos
Message 1 of 3
(2,715 Views)

Hi npro76,

 

There is some information about how fast you can transfer data here

For your VI that reads the data, you have two loops reading the data. Was that done just to show the true and false cases of the Case Structure or there actually two Datasocket Read VI's trying to access the same piece of data?

0 Kudos
Message 2 of 3
(2,695 Views)

Olivia,

Thanks for the reply.  I found that link earlier and looked at it.  It really doesn't have any information about how fast the DataSocket really is.  That link is pretty useless.

It claims preliminary benchmarks of 320 KB/s on a 10BaseT ethernet connections.  This is 2.56 Mbs.  This may be the best you can get on 10BaseT network with multiple computers and collisions happening, but if the two computers are the only ones on the network you should get better than 30% of the total bandwidth.  There is no information on the size of the variables versus the rate at which they are written or read.

 

For my vi's:

I have two loops because I am reading two different variables from the data socket.  One is a cluster, and the other is the same cluster flattened to a string.  I write them in the same loop and read them with two different loops.  I used two different loops to see if reading a string was faster than reading a cluster.

 

The true/false cases were used to determine if I got a timeout, so I could measure the rate of DataSocket Reads per Timeout.  I am really concerned about the timeouts.

 

0 Kudos
Message 3 of 3
(2,675 Views)