LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

For adding about 70 shift registers to my VI , will it affect the performance of the project or it depends on my PC ??

I have 70 shift registers to accumulate date from 70 channels to plot it every channel individually , will these shift registers affect the performance of the project or it depends on my PC ??

0 Kudos
Message 1 of 10
(2,692 Views)

HI!

It depends on the amount of data you are going to store in your registers.

 

In any case It will be hard to fit the 70 registers on the block diagram...

Maybe you can find something else (a 2D matrix shift register, with a column per channels or named queues...)

 

Regards,

Marco

 

 

0 Kudos
Message 2 of 10
(2,686 Views)
That sounds like a wiring nightmare. There's no reason for so many separate shift registers. Having that many individual charts/graphs seems unwieldy as well.
0 Kudos
Message 3 of 10
(2,679 Views)

What is the data type of the shift register? 1D or 2D array or just a double. If the acquisition rate is same for all, then consider grouping them into one.

-----

The best solution is the one you find it by yourself
0 Kudos
Message 4 of 10
(2,675 Views)

Try to substitute shift registers with autoindexing where possible (use conditional if needed).. it is more efficient and decrease memory usage.

Marco

0 Kudos
Message 5 of 10
(2,661 Views)

@Marco_Ge wrote:

Try to substitute shift registers with autoindexing where possible (use conditional if needed).. it is more efficient and decrease memory usage.

Marco


I am not sure how an Auto indexing terminal would decrease the memory usage. Do you mean using with a for loop? For data acquisition I don't its a right way.

-----

The best solution is the one you find it by yourself
0 Kudos
Message 6 of 10
(2,651 Views)

Hi,

 

I have experienced that using shift registers in loops leads to a memory allocation increase , expecially if those arrays are not initialized.

Moreover, I noticed that memory were not disallocated after that vi was closed.

Then I tried to substiture it with autoindexing and results were very good: memory was deallocated after vi. closing.

Read this post:

 

http://forums.ni.com/t5/LabVIEW/how-to-deallocate-memory-without-reinitializing-shift-register/td-p/...

 

Hope that was useful.

 

Bye

 

Marco

 

0 Kudos
Message 7 of 10
(2,645 Views)

Why I have mentioned its not a right way is that a data acquisition mostly used inside a while loop and an auto indexing in that case may go uncontrolled. In the same link you have provided it is said that Auto indexing with FOR loop is efficient because its already known how many iterations that its going to execute. But in the case of a while loop its unknown. I agree with you on the usage of USR, I mostly use it only with FGV. In this scenario the OP can initialize the shift register with some size and try replacing the elements (Mean while the data has to be taken out somewhere) and maintain the size.

-----

The best solution is the one you find it by yourself
0 Kudos
Message 8 of 10
(2,631 Views)

Yes i was referring to FOR loops.

For data acquisition, maybe you can use queues and manage colelcted data in another parallel whil loop, using FOR loops to dequeue...Without code i can only imagine.

 

bye

M.

 

0 Kudos
Message 9 of 10
(2,627 Views)

@Osama90 wrote:

I have 70 shift registers to accumulate date from 70 channels to plot it every channel individually , will these shift registers affect the performance of the project or it depends on my PC ??


It will certainly affect your performance and ability to handle/change your code. Change it to an array of plots, either as a 2D array (if using the same sampling rate), or an array of clusters with the channels (1D array?) as data. From a machine perspective 70 SRs should work, but not from a person perspective.

/Y

G# - Award winning reference based OOP for LV, for free! - Qestit VIPM GitHub

Qestit Systems
Certified-LabVIEW-Developer
0 Kudos
Message 10 of 10
(2,621 Views)