12-19-2011 09:34 AM
I have nodified a NI labview example using software trigger to start PXI-5105. After I send the "start trigger" signal, there still have a error information: -200284: maximum time exceeded before the operation completed. I don't know how to remove this error. The block vi is shown as follow, Thank You!
12-20-2011 09:50 AM
Hi g_l_g_s,
Just so that we are on the same page here, can you please direct me to the exact example you are using as a template?
Jason L.
12-20-2011 12:35 PM
Jason,
Thank you for your reply. The template I used is "niScope_PXI5152_binary_with_trigger_out.vi", this example can work smoothly on my PXI5105 before modification. But when I modified it with software trigger, the error occured. Thank you!
Please find the attached example before modification.
12-20-2011 01:49 PM
Hi g_l_g_s,
Thanks for providing that information. I have found a KnowledgeBase that may help here. You may want to double check your settings to make sure that your read is not timing out.
But let's actually take a step back and look at your program. From what you are saying it seems like what you want to do is to just acquire data when you hit your true button. There is a much better way in doing this and I'm not convinced that you are using the software trigger correctly. When you configure your software trigger ref on the NIScope Configure Trigger Edge.vi you are setting it up to look for a reference software trigger, not a start trigger. When you call NiScope Initiate Acquisition, you are already starting the acquisition of pre-trigger samples. In other words, calling the Initiate Acquisition is basically calling the Start Trigger (because the default is immediate) and adding in a Send SW Trigger wired with a Start Trigger input is redundant.
Also I'm not quite sure where you got the example from because I was not able to find it under Help-> Example Finder. I think what you could do to achieve what you are trying to do is to throw everything into an event structure that will run the NI-Scope Vi's when you hit the button. You should really only have the fetch and data acquireing VI's in the while loop. In the current example you are initiateing acquisition every time the while loop iterates, when what you really neeed to be doing is to just call that VI once outside the whileloop. If you throw everything into the event structure, you probably don't even need a NI Scope Configure Trigger Edge.vi and let it default to the immediate trigger.
Jason L
12-20-2011 01:57 PM
I forgot to mention another fact. So what is the point in having the Send SW Trigger.vi to send a Start Trigger at all? Well by calling this .vi instead of the Initiate vi, you have more control over the flow of your program by forcing your acquisition to be in a certain state. Look at the page "SMC-Based Digitizers Acquisition Engine State Diagram" in the NI High Speed Digitizers Detailed Help for more details about this. This VI is also useful in deterministic systems.
As a side note, "Software Triggers" in the NI High Speed Digitizers Detailed Help will give you more details about what the Send SW Trigger does when you set up software triggers and "niScope Configure Trigger (poly)" will give you more details about triggering in general.
Jason L
12-20-2011 04:04 PM
Jason, Thank you for your kind help. I will read carefully the knowledeg you recommanded.