07-07-2022 04:19 PM
Hello All,
PXI category seems the best fit but there are many pieces to this puzzle. I am using a PXIe-5122 ADC and a PXIe-5442 AWG to generate what is essentially a stimulus response to a device under test (DUT). There are other cards (NI and other vendors) involved with the control system but the crowning jewels of the data produced by this data station are the AWG and the ADC.
In this control experiment, we set the AWG and ADC conditions for the first run. For an additional 301 runs, we reset the cards without significant changes and then repeat the experiment. In the past, I remember that the setup overhead to be roughly 300ms. Overhead has become more important for recent experiments and we noted that total overhead seemed to be closer to 1.3s. The software has undergone changes that were meant to improve performance but it seems the opposite is now true.
In this AWG and ADC arrangement, the AWG is triggered by an external source through PFI0. The ADC is triggered by an AWG event marker that is encoded to the last 4 samples of the waveform and routed across the PXIe backplane. The requested is rounded off to the nearest number of ADC samples and is programmed as a pre-trigger delay.
Just for clarification, NI Tclk is required for the data to be collected in manner that allows the ADC data to be processed in absorption mode frequency where the phase relationship is derived from the characteristics of the AWG waveform and the duration of the external differential pre-amplifier for the ADC ring down delay between AWG final data point and the initial ADC data point are mathematically accounted for.
I re-educated myself on the use of CVI Execution Profile Tool and note that nearly 323s are devoted to running 301 and one instances of niTclk_Synchronize. This 1.07s per execution of niTclk_Synchronize is the smoking gun. This CVIP file is included but I had to zip the file to get this file past the automated file filter. (Please allow your own filetypes in the future.)
I am not sure what other bits of information are relative. I should note that the call to niTclk_synchronize occurs in separate thread from the main thread. (The main thread runs the GUI.)
Question 1: Should it take over a second to synchronize a PXIe-5122 and a PXIe-5442 in PXIe-1092 chassis?
Question 2: Is it necessary (as I believe it is) to run niTclk_Synchronize for each run even when the configuration does not change? (same AWG waveform table, same AWG output rate, same ADC sample rate, same ADC ADC sample number.)
OS Windows 10 Education 64 bit (Version 21H2)
Dev Software NI LabWindows CVI 2020 Build 64 bit
Driver software versions - See attached NI-MAX report
System Description - See Attached NI-MAX Report basically Dell Precision T7910 running dual Intel Xeon (8 core each) with 144 GB Ram with 4 of 512GB NVME and then a NI PXIe 24 Drive RAID 10 array