Was John's question regarding trigger rearming on the 5105 ever answered? The manual states 2.4 us, but the only way I have found to rearm the 5105 trigger (either single or multiple record) is to run the ni-scope initiate.vi in a loop. However this is slow because it's software rearming what is effectively a "single" trigger rather than the hardware running in a "normal" trigger mode...I'm using oscilloscope trigger lingo here. The 5105 can be configured to grab multiple records (equivalent to a storage o-scope), but in order to trigger continuously initiate.vi has to be run again to restart the acquisition. Using this method I've been able to get the card to acquire continuously very quickly, but there is an inherent delay and loss of data while initiat.vi runs.
You are correct in that the 5105 requires a 2.4 us rearm time for triggering. You shouldn't have to run the initiate.vi in a loop to rearm the trigger (this would be very slow). Using a multi-record fetch, you are actually acquiring each record based off of the trigger. The records are stored in the 5105's onboard memory until retrieved with the Fetch vi.
If you are triggering at a fast rate, I would recommend to look at the example: NI-SCOPE Fetch Multiple Records at Once. This will allow you to continuously fetch (fetching multiple records at once will allow your software loop to keep up with the data). Let me know if you have any questions or any problems implementing this example. Thanks for posting!
I just realized that this thread is dealing with the exact problem that I have right now. I also use the 5105 board and are having trouble with getting the system to rearm as fast as the data specifications say it can.
In my applications all my 6 boards (with 8 channels on each) must be synchronized and ready to fetch multiple records up to 1500 times per sec. Each record is 550 us long and has a samling rate of 1MS/s. Hope you get what I mean. I'm not 100% sure about the commonly used terminology here. Anyhow... According to the system specifications this should be possible. It should actually be able to do 1/((550samples+2,4rearm)E-6)=1810 records per second (96 MB/s). In order to synchronize the cards I use the niTClk Initiate.vi to initiate each record and niSCOPE Multi Fetch Cluster.vi to aquire the data from the boards. Unfortunately I can't get the initiation vi to work more than once if it is placed outide the acquisition loop. If it is inside the loop, everything works perfectly except for the quite slow rearm time (maximum 200 records per second).
Here is my question: Is the solution of fast rearm time in the NI-SCOPE Fetch Multiple Records at Once. example possible to use also in my application? Since niTClk Initiate.vi isn't used in that example I just wonder if I should be able to use the same approach also if multiple cards with all channels needs to be synchronized. It would be great to get the niTClk vi outside the loop some how, if that is what slows everything down.
Any help on this topic would be very much appreciated!
Best regards /Josefin
Re-initiating your task inside a loop can take several milliseconds. The Fetch Multiple Records at Once example should work for you since it moves all of the configuration outside of the loop. When using T-Clk, you would also call the T-Clk functions outside of the loop--once T-Clk is configured you should not need to continuously call the functions. I recommend you try the example with a single board to make sure that it works the way you expect, then try adding in the T-Clk functions.
Got it! Thanks a lot!
I followed your advice and the speed is significantly higher now. So far I only tried one channel though. The system can now acquire 986 recordings per second. Maybe it it possible to make it even faster, but I'm not there yet. Just hope that the synchronization of the 6 boards also works with this solution. Thanks again and Merry Christmas!