LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Sample rate PCI-MIO-16E-4

I'm trying to get a higher scanrate than 1ks/s but the only way to do it
seems to be by raising the no. scans to read to above 2. If I don't increase
that the scan backlog goes trough the roof. By doing this it seems that the
amount of data to excel decreases with 2 or more times and I don't wan't
that to happend. The card should be able to handle up to 250 ks/s.

Please look at the appended jpeg files.

How does Interchannel Delay, Scans to aquire, scans to read and scanrate
influence my setup

Thx

/Peter




[Attachment prog2 (3).jpg, see below]


[Attachment Installning (3).jpg, see below]


[Attachment prog1 (3).jpg, see below]


[See first answer for additional information]
0 Kudos
Message 1 of 3
(2,277 Views)
[Attachment(s) for question]
Download All
0 Kudos
Message 2 of 3
(2,277 Views)
peter wrote in message
news:399cf377@newsgroups.ni.com...
> I'm trying to get a higher scanrate than 1ks/s but the only way to do it
> seems to be by raising the no. scans to read to above 2. If I don't
increase
> that the scan backlog goes trough the roof. By doing this it seems that
the
> amount of data to excel decreases with 2 or more times and I don't wan't
> that to happend. The card should be able to handle up to 250 ks/s.
>
> Please look at the appended jpeg files.
>
> How does Interchannel Delay, Scans to aquire, scans to read and scanrate
> influence my setup

If you're just trying to read a fixed amount of data into Excel then you
don't need to be updating those front panel graph displays on every read-
that's killing your performance.

I suggest getting rid of the graphs, to start with. Also, if you have the
memory, read all your data into one big pre-initialised array (using
"replace array element" and maintaining a pointer to your current position-
NOT "build array"!), and write it out to disk all at once at the end.

In addition, every time you read data from the card, read all the waiting
data- not just one point- and KEEP it all. At present you're wasting
execution time and losing data by explicitly only keeping the first
datapoint in each channel. If the machine is fast enough, you can always
read in your big 2D array, convert it to a spreadsheet string and save it
out as many rows of data appended to your datafile, then go back and get
another big chunk. I have to emphasize that the whole point of giving the
card a memory buffer is so that you *don't* have to get a single datapoint
at a time from it.

Your "High Forces" indicator appears to be fed from a single threshold force
control. You can use the greater than/less than functions on arrays- so you
can in a single step compare all your array values with the constant to see
if you have a value anywhere in there, and then your resulting 2D array of
Booleans can be fed into the "OR Array Elements" function. The less block
diagram steps you can take using the fundamental functions, the faster the
code will run.

And what's that for loop doing there? 🙂
0 Kudos
Message 3 of 3
(2,277 Views)