LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Shared network variables RT FIFO versus buffering

Hello,

 

can anybody tell me why I should use network shared variables with buffering and RT FIFO (http://www.ni.com/white-paper/4679/en/)?

 

Only buffering: ok (reader can catch up + I can use fancy none-RT data types).

 

Only RT FIFO: ok (the high-prio reader/writer is time deterministic).

 

FIFO and buffering: why? Isn't a FIFO a buffer already?

 

Thanks!

 

Peter

 

0 Kudos
Message 1 of 5
(3,418 Views)

Hi Peter,

 

If you're using a host - target system combination without an fpga module, this is the right combination , because network shared variables are dependent on the network, the buffer is to ensure that no data gets lost, in case that the network has any kind of error for a few seconds.

 

A faster way of transferring Data, when using the fpga module and fpga cards would be to use DMA FIFOs in both directions.

 

A pretty good guide on that, can be found here:

http://www.ni.com/white-paper/4534/en/

 

Regards,

Frank

0 Kudos
Message 2 of 5
(3,381 Views)

Hi Frank,

 

I'm not sure I fully get your point.

 

This is what NI says about buffers: "With buffering, you can account for temporary fluctuations between read/write rates of a variable." (http://www.ni.com/white-paper/4679/en/).

 

I don't see how network errors come into play here.

 

Again, a FIFO is already a buffer which should tackle those fluctuations. Am I missing something?

 

FPGA DMA is an interesting hint! Do you think it can be used to quickly transfer data between an LVOOP program running on PC and another LVOOP program running on RT cRIO?

 

Thanks!

 

Peter

0 Kudos
Message 3 of 5
(3,350 Views)

Hi Peter,

 

the point of buffering is to buffer another part of the send and receive process, at this point the buffering on TCP IP side.

 

to DMAs: that's exactly for what it is used and for what it was made for.

0 Kudos
Message 4 of 5
(3,342 Views)

DMA: great, I'll have a closer look.

 

Buffer: What do you mean by "buffer another part", and "buffering on the TCP IP side"?

 

Conceptually, the problem is that a writer writes, say, at rate 10 pieces of new data / second, and a reader reads 5 pieces of written data / second. If this discrepancy of rates is temporary, a buffer can be used to "remember" the written data so that the reader doesn't miss data from the writer.

 

Now, the problem can be tackled by a FIFO the same way, a FIFO being a special buffer with a constraint on the orders of written/read data.

 

So, based on the example above: what is the sense in using a FIFO and a buffer? And what does it have to do with network/TCP IT?

 

Thanks!

 

Peter

0 Kudos
Message 5 of 5
(3,337 Views)