Showing results for 
Search instead for 
Did you mean: 

capacity of shift register

Hi all,
What is the maximum capacity a shift register can handle?
I am trying to develope a system that will continuouly collect and plot data for a long period of time (let's say multi years without stopping).
A while loop will be executed every 10 minutes and everytime this while loop is executed, about 1000 data points will be stored into a shift register (e.g., after 1 hour of monitoring, 6x1000 = 6000 data points; 24x6000 = 144000 data per day; and so on). My concern is that the processing will be delayed or terminated over time because of the capacity that a shift register can handle. 
Can anyone help me with this issue?
0 Kudos
Message 1 of 5

The only limitation is the amount of memory your computer has.  You will see that as more data gets stored in the shift register (like when you start getting into the millions), your computer will slow down (due to virtual memory allocation) and eventually LabVIEW will stop with a "memory is full" error. 

I recommend you do something else (like periodically store data to disk) instead of just keeping every single data point you ever acquired in the same shift register.


Message 2 of 5
You will want to save this data to the hard drive. What happens if the computer gets powered down or rebooted?? You could use the DSC module and Citadel to save the data or the database connectivity toolset and SQL. Or use NI Diadem. There are many options.
Message 3 of 5
It is not the shift register but the type of data that matters. You say 1000 points per iteration, so I presume that you are talking about an array. The array datatype uses I32 for index so the maximum value of an I32 will be one limit. The amount of memory available in the computer may be another. Certainly for large amounts of data you need to follow the recommendations in the Handling Large Datasets paper which is available from NI. At the very least you need to preallocate the memory and use the Replace Array Element function rather than Build array. Also test what happens to the loop after the iteration counter reaches its maximum value.

Second point: There is no need to plot more points than there are pixels in the graph area. The computer cannot display them and the user cannot interpret them. Use some form of data reduction and plot the reduced dataset.

Third point: Can you assure that your computer will never lose power or have a failure for several years? It is better to save the data to file(s) frequently enough that any failure of the system does not cause unacceptable loss of data. Since your loop rate is slow, the files could even be tranfered to a networked computer once a day or something.

Message 4 of 5
Thank you all for the great comments. I think I got an idea what to do about it.
0 Kudos
Message 5 of 5