Jump to content

How fast can LabVIEW response?


ayumisano

Recommended Posts

Dear all,

I would like to know what factors affect the speed of how fast a vi respond. I am trying to find out the time between sending a digital 5V TTL signal and then writing down the time in a file and after that asking the vi to send out a TTL signal back. (Since my final goal is to make it finish doing everything in the order of nano second) Is the speed of the whole process affected by the I/O card, the computer's speed and any other thing else? I am using PCI-6534. I saw the data sheet on the web that it works at 20MHz. How can I maximize its speed?

Thank you very much for your attention!! :)

Ayumi

Link to comment
Dear all,

I would like to know what factors affect the speed of how fast a vi respond. I am trying to find out the time between sending a digital 5V TTL signal and then writing down the time in a file and after that asking the vi to send out a TTL signal back. (Since my final goal is to make it finish doing everything in the order of nano second) Is the speed of the whole process affected by the I/O card, the computer's speed and any other thing else? I am using PCI-6534. I saw the data sheet on the web that it works at 20MHz. How can I maximize its speed?

Thank you very much for your attention!!  :)

Ayumi

5906[/snapback]

Dear Ayumi,

I don't know what platform you are using, but if its PC running Windows, then forget about deterministic nanosecond timing response.

If you use LabVIEW-RT on a PC or PXI target you should be able to get loop rates of the order of the high kHz or even a MHz.

The fastest and most reliable platform would be the compact-RIO running LV-RT on a FPGA.

Note that writing to file, or displaying data in plots would affect loop speed as well. Best way to do timing tests is to repeat the test about 10,000 times or something like that and then calculate and display (or save to file) the average speed.

See the NI site for some rough timing comparisons.

Neville.

Link to comment
Dear Ayumi,

I don't know what platform you are using, but if its PC running Windows, then forget about deterministic nanosecond timing response.

If you use LabVIEW-RT on a PC or PXI target you should be able to get loop rates of the order of the high kHz or even a MHz.

The fastest and most reliable platform would be the compact-RIO running LV-RT on a FPGA.

Note that writing to file, or displaying data in plots would affect loop speed as well.  Best way to do timing tests is to repeat the test about 10,000 times or something like that and then calculate and display (or save to file) the average speed.

See the NI site for some rough timing comparisons.

Neville.

5910[/snapback]

Thank you for your reply! :)

Now I am trying to make an output signal at highest possible frequency and the result was 125000Hz by the example named Const Pattern Output.vi (available with LabVIEW). Over 125000H it would show the following error message:

"Because of system and/or bus-bandwidth limitations, the driver could not write data fast enough to keep; up with the device throughout; the onboard device reported on underflow error. This error may be returned erroneously wen an overrun has occured"

But the PCI-6534 should have a maximum of 20MHz. Is it limited by Windows?? Will it be better if I use Linux instead?

Thank you for your attention!

Ayumi

Link to comment
Thank you for your reply!  :)

Now I am trying to make an output signal at highest possible frequency and the result was 125000Hz by the example named Const Pattern Output.vi (available with LabVIEW). Over 125000H it would show the following error message:

"Because of system and/or bus-bandwidth limitations, the driver could not write data fast enough to keep; up with the device throughout; the onboard device reported on underflow error. This error may be returned erroneously wen an overrun has occured"

But the PCI-6534 should have a maximum of 20MHz. Is it limited by Windows?? Will it be better if I use Linux instead?

Thank you for your attention!

Ayumi

5919[/snapback]

Ayumi,

can you PLEASE provide more complete information. It is impossible to follow what you are doing with little bits and pieces.

1 Explain your application

2 State your Software Version (including DAQ driver)

3 Describe your hardware & setup (triggering etc.)

3 Post your example code

4 State your exact problem

I cannot find your particular example in my LV version 7.1.1.

Neville.

Link to comment
Ayumi,

can you PLEASE provide more complete information.  It is impossible to follow what you are doing with little bits and pieces.

1  Explain your application

2  State your Software Version (including DAQ driver)

3  Describe your hardware & setup (triggering etc.)

3  Post your example code

4  State your exact problem

I cannot find your particular example in my LV version 7.1.1.

Neville.

5928[/snapback]

Neville,

Thank you for your reply! :)

1. I am trying to send out pulses at highest frequency possible. (5V TTL)

2. I am using LabVIEW 6.1

3. PCI-6534 and I use electric cable to connect the I/O board and the CRO to read the signal

4. As seen in the attached vi, you can change the frequency of the signal output, the highest frequency which can be acheived is 1.25MHz with this vi. I would like to know whether it is because of the speed of my computer or it is because of other factors.

Thank you very much for your attention! :)

Ayumi

Download File:post-2711-1125844859.vi

Link to comment
Neville,

Thank you for your reply!  :)

1. I am trying to send out pulses at highest frequency possible. (5V TTL)

2. I am using LabVIEW 6.1

3. PCI-6534 and I use electric cable to connect the I/O board and the CRO to read the signal

4. As seen in the attached vi, you can change the frequency of the signal output, the highest frequency which can be acheived is 1.25MHz with this vi. I would like to know whether it is because of the speed of my computer or it is because of other factors.

Thank you very much for your attention!  :)

Ayumi

5988[/snapback]

Hi Ayumi,

After digging around in the NI Knowledge Base (www.ni.com/kb), I found some answers. Check out these links:

http://digital.ni.com/public.nsf/allkb/4FC...6256D8900563E45

http://digital.ni.com/public.nsf/websearch...6256b3a0062bff6

http://digital.ni.com/public.nsf/allkb/7DF...6256DF900785211

http://digital.ni.com/public.nsf/allkb/560...6256C5500711C2B

http://digital.ni.com/public.nsf/allkb/D41...6256FE8000F28FD

http://digital.ni.com/public.nsf/allkb/CE8...6256AE600663BD3

http://digital.ni.com/public.nsf/allkb/AB4...6256C010061EA7B

http://digital.ni.com/public.nsf/allkb/5D2...62565D7005DEA42

http://digital.ni.com/public.nsf/allkb/23F...6256CD70055095E

Bottom line is the speed of your computer is also an issue when trying to do high-speed DIO. Another thing is the speed and efficiency of the DAQ driver. Looks like you are using the "traditional NI-DAQ". DAQ-Mx the new driver is far faster & it uses a multi-threaded architecture. This might buy you further speed as well. But it can't be used with LV 6.1 You would have to upgrade to LV 7.0 or later (7.1.1 is the latest version).

Take a look at the speed benchmarks in the above links.

Hope this helps.

Neville.

Link to comment

Thank you for your reply!! :)

I will try burst mode to see if it can give a 20MHz pulse.

At the same time, I am thinking about creating an executable file instead of running a vi. I would like to know whether running an executable file will be faster than running a vi. (I mean increasing MHz now to the order of 10MHz. It is said that because the exe file does not need compilation anymore but the vi does, is it true?)

Ayumi

Link to comment
Thank you for your reply!!  :)

At the same time, I am thinking about creating an executable file instead of running a vi. I would like to know whether running an executable file will be faster than running a vi. (I mean increasing MHz now to the order of 10MHz. It is said that because the exe file does not need compilation anymore but the vi does, is it true?)

Ayumi

6066[/snapback]

Yes, the executable will run slightly faster, since diagrams are not saved, and Front panels of lower level VI's are not saved, and debugging functions are disabled.

I doubt if you will get an order of magnitude speed improvement though...

The VI is also "compiled". Every time you save a VI, it does a quick compile.. you will see the compile message only if you have a large number of VI's you are saving at the same time.

N.

Link to comment
Yes, the executable will run slightly faster, since diagrams are not saved, and Front panels of lower level VI's are not saved, and debugging functions are disabled.

I doubt if you will get an order of magnitude speed improvement though...

The VI is also "compiled".  Every time you save a VI, it does a quick compile.. you will see the compile message only if you have a large number of VI's you are saving at the same time.

N.

6112[/snapback]

I have tried both burst mode and executable file.

The executable file of Cont Pattern Output did not give an incrase of frequency of 1 order. It was still around 1.5MHz.

And for the burst mode, I don't know why there was no signal seen when I connected one of the line with a CRO. (I used PCI-6534) :headbang:

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.