Jump to content

PicoSystems

Members
  • Posts

    4
  • Joined

  • Last visited

PicoSystems's Achievements

Newbie

Newbie (1/4)

0

Reputation

  1. We finally figured out the problem. Our system was using a pre- and post-trigger acquisition on one analog input channel. The voltage input was used as the trigger. When the system was working correctly it would keep one full buffer of data before the trigger (pre-trigger buffer), one partially filled buffer that was interrupted by the trigger (trigger buffer), and then two full buffers after the trigger (post-trigger buffers). With the Open Layers library it seems we had two events available to use: PreTrigBufferDone and BufferDone. When a buffer filled up with data before the trigger, the program ran a PreTrigBufferDone subroutine. Similarly, when a buffer filled after the trigger, BufferDone was called. However, the old and new PCs behaved differently when the trigger happened. On the old PC, the trigger generated the BufferDone event, while on the new PC, the trigger generated the PreTrigBufferDone event. We don't know why this changed, and we don't see any way to control this behavior. We decided to modify the associated subroutines so that the data would get recorded correctly on either PC.
  2. Thanks, Fausto. I'm attaching some of the code that seems important to me. I cannot post all of the VB6 code, since it contains proprietary information. It's likely that the snippets do not explain everything for you. Please let me know if there is something else specific that you would be interested in seeing. You are correct that the code hasn't changed. The old PC is running an old version of Windows. The new PC is running Windows 10. We needed to install a PCI slot adapter so that we could plug in the DT3010 card. I feel like the trigger buffer is not being captured, because we aren't getting the changing number of samples that would come from a partially filled buffer (see AD3010_BufferDone). I don't know what would be causing that part of the logic to fail. I suppose where the trigger buffer data should be, the program keeps inserting a buffer that is completely filled with zeroes. Code Snippets for Forum Post.txt
  3. We finally are getting back to diagnosing our data collection problem. We have confirmed that the issue is not with the incoming signal. The issue only appears with the board installed on the new PC. We have two identical DT3010 boards, both of which work on the old PC and both exhibit the same symptoms on the new PC. The same gap in the signal also appears when using other sensors. I have a suspicion that the issue is related to buffering. The original programmer is no longer available, and I am not familiar with every aspect of the program. The test is recording a pressure rise on a single analog channel. The acquisition triggers on the pressure signal (the trigger threshold is set to 0.5 V). A typical data acquisition uses n buffers, each of which is set to hold 4 kSamples. On the legacy PC, a test set up for 4 buffers will collect a bit less than 16 kSamples (the number of samples captured varies from one test to the next). If we change the parameters to include 5 buffers or increase the length of the buffers, the test records more samples. Each data file will contain a number of samples a bit smaller than the size of the buffer times the number of buffers. A comment in the code notes that buffer 0 is the pretrigger buffer, buffer 1 is the trigger buffer, and all subsequent buffers are postrigger. However, when we run a test on the new PC the data file contains an exact number of data points that is equal to (n-1)buffers * buffer size. For example, if the settings call for 6 buffers with 4 kSamples/buffer, we get exactly 20 kSamples (we would expect more samples between 20k and 24k). The worst part is that the second buffer (trigger buffer?) worth of data is all zero. From sample 1-4,000 we have analog input values that seem good. From 4,001-8,000 everything is zero. From 8,001 to the end seems ok. Why would an empty buffer get inserted in the data? Why would the legacy system collect more samples? As far as we can tell, the settings related to data acquisition are the same on both the new and the legacy PC.
  4. We are trying to maintain an old test system using a DT3010 PCI board and a VB6 application. Our requirement is to replace the old PC with a Windows 10 PC. We seem to have everything working, except that there is an issue with the data. We need to capture a pressure change, so just one channel of data. The sampling rate is 40,000 Hz, and we collect 12,000 samples. It is not consistent, but somewhere during the pressure rise, the analog data drops close to zero for a brief time (some noise is collected during this time) and then returns to a level that seems accurate. Essentially a chunk of data is missing. We have tried two DT3010 boards. We have tried two different systems for converting the PCI Express slots on the newer PC to the PCI card. The missing data issue happens consistently on the new PC, but not on the old PC. Has anyone seen anything like this before or have any ideas?
×
×
  • Create New...