Analog pulse, external trigger and TDMS logging

I am working on a VI that will output an analog pulse, then log data when it receives an external trigger.  I have both parts working separately: I can output the pulse and read data when an external trigger is received (Pulse&Acq.jpg), and I can log data when an external trigger is received (TDMS Logging.jpg).  However, when I try to combine them I cannot import the resulting TDMS file (Pulse&Log.jpg).  I get the following error: USI encountered an exception: (326): Bulk:: GetValues failed for attribute.  Additionally, the importer opens two workbooks, which appear to be identical, and both have the USI error.
Any ideas?  Thanks!
Attachments:
Pulse&Acq.jpg ‏138 KB
TDMS Logging.jpg ‏39 KB
Pulse&Log.jpg ‏130 KB

Hello,
For the bottom part (Analog Input triggered by digital pulse and saved in TDMS) you start the task AFTER the pulse is sent (by the top part), if you place the start for the analog task before the while loop I think it will work fine.
EDIT : The thing that surprises me a bit is that the Pulse&Acq example works... maybe I'm just all wrong...
Hope this helps
When my feet touch the ground each morning the devil thinks "bloody hell... He's up again!"

Similar Messages

  • How can I detect an external trigger and then generate an event or occurance

    I have a PXIe-1065 chassis with a PXIe8030 controller, PXI-6653 timing module, PXI-6542 Digital IO, and PXI-6259 DAQ board, running LabView 8.5. I need to detect a trigger (100 ns TTL pulse) from an external device then start a process on a GPIB device. Is there a way for me to detect this trigger and then generate an event, or an occurance ? Can I do this without polling a device? Can any of this hardware generate an interrupt that LabView can detect?

    My screenshot was only an example how you can approach the issue. I wasnt saying that you should try it with AI....
    Just take a closer look into the DAQmx Events and you will discover something like this:
    hope this helps,
    NorbertMessage Edited by Norbert B on 10-05-2007 02:35 AM
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.
    Attachments:
    DAQmxEvent.PNG ‏11 KB

  • How do I auire data at every third pulse of an external trigger?

    I need to aquire 2048 data points where each one is triggered by the third pulse of an external trigger (TTL). Currently I can aquire 2048 data points where each is triggered by every pulse of an external trigger but I need to be able to do this at every third trigger pulse. It seems that I can't do this simply by entering "2" into the "skip count" input of the "Additional Trig Parameters' input of the "AI Start" VI. My attempt is in the VI titled TriggerScanA.
    Further more I will need to know the actual trigger scan rate for data analysis. This is also prooving difficult since even when I am triggering off every external trigger pulse the actual scan rate only returns zeros. My attempt is i
    n the VI entitled TriggerScanB.
    Thankyou.
    Attachments:
    Trigger_Scan_VI's.llb ‏211 KB

    Greetings,
    This sounds like an interesting application. I would suggest that you use your external pulse train as a scan clock, not as a start trigger. Furthermore, since you want to acquire data every third pulse, you will need to use one of your device's counters to divide-down this signal. To accomplish this task, you will need to configure the counter for pulse train generation with an external source - your external pulse train. You will then need to choose the correct "raw counts" to generate a pulse train with a frequency that is 1/3 of that of your external signal. I would suggest that you examine the example Generate Pulse Train (DAQ-STC).vi for this purpose. Now, you can perform a finite analog input acquisition of 2048 data points u
    sing this pulse train as your scan clock. Finally, to determine the frequency of your scan clock, you will need to us your device's other counter to perform a frequency measurement of either pulse train.
    I believe that this will be your best approach to accomplishing this task. Good luck with your application.
    Spencer S.

  • How to externally trigger the execution of TestStand with a start and abort button through a digital interface?

    Hello,
    I'm Currently evaluating TestStand as an alternative for an in-house developed Test Sequencer.
    To start our own Test Sequencer we use a small box, connected to a DIO board. The box has a start button and an abort button. The box also has a pass, a fail and a running led.
    The interface with this box is made via some digital lines of a PCI-DIO-96.
    In our own Test Sequencer we have groups named Init, Run, Abort, Exit.
    The Init group is executed at startup (only once). It is used to initialize all the HW and SW. -> I guess this is the Pre UUT Loop callback in TestStand.
    The Exit group is only executed once at the end of the day when the application is terminated. It is used to free all the used hardware and cleanup all the resources. This probably is the Post UUT Loop Callback in TS.
    When a product needs to be tested, the operator presses the "start" button which triggers our own Test Sequencer and the run and abort group are being executed (first the run group, afterwards the abort group).
    When the product is being tested the "running led" of the little box lights up to indicate to the operator that the application is running. (only when the run and abort group are running)
    The Run group has all the functional tests in it. (MainSequence)
    The abort group is used to put everything back in it's original state after the test on this single product is done. (Post UUT)
    When executing the tests and something goes wrong (operator gets stuck in a clamper, ...) the operator can still press the abort button and then the execution immediately jumps from the currently executing step in the run group to the first step of the abort group. So, when something goes wrong, immediately the abort group is called.
    At the end of the run and abort group, if no errors occured, the "pass led" lights up. If one or more steps went wrong the "fail" led lights up.
    This setup can also be used to test multiple product in parallel. At that time all the different parallel testers have such a small box which contains a "start" and "abort" button and a pass, fail and running led. (it is possible that they are all connected to the same PCI-DIO-96 board. )
    My question:
    Is it possible to do something similar like this in Teststand? If yes, is there an example available that shows me how to do this in TestStand? (externally trigger the execution of TestStand)
    Typically, in the Init group (Pre UUT Loop) the digital interface box gets initialised.
    In the Close group (Post UUT Loop) the digital interface box is taken out of scope.
    Note: The PCI-DIO-96 board to which the digital interface box is connected will also be used in the rest of the developed application (MainSequence, ...)
    What's really important for me is that I can create a process model that all the application developers in our organisation can use. I really don't want any of the application developers (limited software experience) to mess around in all the features of TestStand.
    For them it's important that they just add the function DigitalInterfaceBoxInit () in the Pre UUT Loop Callback and the DigitalInterfaceBoxClose () in the Post UUT Loop Callback, and then everything works!
    It is important that the appliation developers do not have to create any global variables, other functions, synchronisations, parallel sequences, ... in TestStand. All this needs to be done with a simple call to the DigitalInterfaceBoxInit function.
    Thanks in advance for all the help!
    Best Regards,
    Dennis Vanotterdijk
    [email protected]

    Dennis-
    Your application sounds very well suited to TestStand's abilities. I am also quite impressed with your knowledge of how TestStand's architecture is arranged when you are still just considering whether or not to use it.
    I think that TestStand would work really well for you in this application. Like you mentioned it will provide you with a form of standardization for your application developers to work from. It also provides the flexibility for you to add your custom routines in many different places. TestStand also makes parallel and batch testing much easier in TS 2.0 so that you could develop one test for your product and execute different instances of it in parallel to test multiple products at once.
    As for your specific question about how to c
    ontrol TestStand using a DIO board. I think this is very feasible and should not be too difficult. Since TestStand provides you the ability to create a custom operator interface your operator interface could monitor the status of your DIO board and launch/abort executions based on the read values. Usually the executions are launched/aborted when a button on the GUI is pressed however, I do not see any thing different about basing the action on a DI signal vs a mouse click. I am sure your application is more involved than this high level description but from the sounds of it I think it is very possible to do with TestStand.
    Based on my experience of building test systems with TestStand and your description of the application, I would feel very confident in using TestStand to achieve all the goals you mentioned. If you have further detailed questions on how one of your features might be implemented, feel free to contact one of our Application Engineers or email us at www.ni.com/ask
    and we would be glad to help you.
    Best regards,
    Richard McDonell
    National Instruments

  • Data-acquisition with NI 6036E DAQ card & GPIB using an external trigger

    Hi all,
    I hope somebody could give me some help with the following and answer some questions:
    Simple system description:
    Labview 6.1
    PCI-GPIB card
    6036E DAQ card
    In my system, I am using an external analog trigger signal (A) for continuous data-acquisition. Characteristics of the analog trigger signal (A) are: ~40 Hz, signal height +1.48V, triggered by rising edge (the analog trigger signal (A) could be changed to a TTL signal). Each data-acquisition is done within ~1.0 ms after the rising edge of the trigger pulse. The timing of the data-acquisition and analyzing procedure is controlled by execution in a sequence structure placed in a loop.
    Now, I connected a power meter to the system, to measure the laser power during the data-acquisition. The power meter has two options to provide the laser power data:
    a) via analog signal output (voltage corresponds to laser power in watts)
    b) via GPIB (direct output reading of laser power in watts).
    Problem:
    During a certain point in my data-acquisition sequence structure (defined by a frame), I want to use the next occuring analog trigger signal (A) to acquire 1 value from the power meter.
    How do I do this in Labview programming for the following two situations?
    a) If I connect the analog output from the power meter to an analog input channel of the 6036E DAQ card. The analog trigger (A) would be connected to a second analog input channel (In case the analog trigger signal (A) is changed to a TTL signal it would be connected to the PFI0/Trig input pin on the DAQ card).
    b) If I use the GPIB connection of the power meter. The analog trigger (A) would be connected to a second analog input channel (In case the analog trigger signal (A) is changed to a TTL signal it would be connected to the PFI0/Trig input pin on the DAQ card).
    An other possibility would be to trigger the power meter directly, so it outputs constantly power meter values at ~40 Hz. How could I than acquire 1 power meter value (at a certain time im my sequence structure) via analog input at DAQ card or GPIB?
    Additional questions:
    How do I configure the PFI0/Trig pin on the 6036E DAQ board individually as an INPUT?
    How do I use an analog trigger signal (A) as counting signal for a loop, or as an activation signal for a sequence structure which includes GPIB commands?
    It would be very nice if somebody could give me some help.
    Kind regards,
    beam

    Hi beam,
    I just want to verify that I understand your situation correctly:
    An external trigger signal (A) is wired to one of your input channels (e.g. CH0) to trigger data acquisition of a second channel (e.g. CH1). Your power meter is connected to an analog input channel, which you would like to trigger with a certain rising edge at some of your sequence structure.
    Problem:
    During a certain point in my data-acquisition sequence structure (defined by a frame), I want to use the next occuring analog trigger signal (A) to acquire 1 value from the power meter.
    How do I do this in Labview programming for the following two situations?
    a) If I connect the analog output from the power meter to an analog input channel of the 6036E DAQ card. The analog trigger (A) would be connected to a second analog input channel (In case the analog trigger signal (A) is changed to a TTL signal it would be connected to the PFI0/Trig input pin on the DAQ card).
    If a task has been configured to acquire signal from one analog channel, it's not possible to run a second analog input task or to add a second channel on the fly. You had mentioned that it's possible to read from the instrument through GPIB. Is it possible to perform a software trigger such that at a certain frame of your structure, when the trigger signal A reaches voltage "x", a GPIB command is written to your power meter to query a measurement reading?
    Additional questions:
    How do I configure the PFI0/Trig pin on the 6036E DAQ board individually as an INPUT?
    You do not need to explicitly configure the PFI0 line as an input. If you want to use it as an input such that it acts as an analog trigger, simply wire the trigger signal to this pin. When configuring the trigger in your software, specify PFI0 as the trigger source.
    How do I use an analog trigger signal (A) as counting signal for a loop, or as an activation signal for a sequence structure which includes GPIB commands?
    You can try using the Limit VI to find out when the trigger signal reaches a certain level, and count how many times this level is reached. Similarly, you can use this as the condition to execute GPIB commands.
    Hope this helps,
    Lesley

  • Retriggerable gated counter or analog pulse trains

    Hi all,
    I have a problem I could not resolve in the last days. It might be even a question of creativity of how to come up with a solution.
    I have an external pulse train 1 at ca. 8 kHz (frequency not fully stable). With this pulse train, I want to trigger with each pulse an analog waveform. Using X-series boards, this works perfectly.
    But now I want to gate this analog signal with another pulse train 2 that is much slower than the other one (pausetrig option). Theoretically, this works nicely, too. But in reality, the analog signal simply ends at the point where it is stopped by the pause trigger, whereas I want it to stop at the end point of the waveform.
    Please have a look at the drawing attached
    I would be really glad about any ideas on how to solve this problem.
    Best regards,
    Peter

    I don't think I've ever defined both a start trigger and a pause trigger defined for the same task.  Good to know it's allowed.
    Given what you've already found, the solution is to control the timing of the end of the pause trigger pulse's active state (shown here as high). 
    Here's one approach:
    1. Create the pause trigger pulse with a retriggerable single pulse task.  Use a minimal "low time" and "initial delay".  Set the high (active) time to be approximately (N+1) periods of your AO sample clock.  Technically, N+1 periods is a bit more than necessary, but it's sure to be enough and doesn't require research into deep details of AO timing.
    2. Configure the AO task to use the pulse as *both* its start trigger (rising edge) and its pause trigger (pause when low).
    Comments: this makes for a different timing diagram than you've drawn.  Each external 8 kHz pulse causes a minimally-delayed pause trigger pulse which lasts long enough to generate the full AO waveform but ends before the next 8 kHz pulse.  The choice of when to start and stop this trigger pulse will be up to your own logic and will be governed by software timing. 
       Oh dang!  That still leaves you susceptible to a partial waveform since you can't sync the software timing to occur during the desired small fraction of the 8 kHz interval with no AO waveform.
    Second approach:
    1. Similar to #1 above, but set the high (active) time to cover multiple 8 kHz periods and *don't* make the task retriggerable.  To get the timing right in hardware, you'll need to generate a pulse that's *approximately* the requested length, but you'll reserve the right to tweak it so the edges fall in the right place.   You'll also define your pulse in terms of the external 8 kHz signal rather than in terms of internal board time.
         Specifically, configure to generate a pulse based on units of "Ticks" using the rising edges of the external 8 kHz signal as the "source of ticks."  Set a minimal value (probably 2) for both the "low ticks" and "initial delay" inputs.  The "high ticks" setting is where you do your tweaking.
        Suppose the desired pause trigger time is 10.3 msec.  Nominally, that's 82.4 intervals of the 8 kHz external signal.  Well, just round up or down as you see fit and wire this integer # into the "high ticks" input. 
    2. AO task is configured to retrigger off the external 8 kHz signal and be pause triggered by #1's counter pulse.
    Comments: When you start the pause trigger pulse task, it will remain in its low idle state for the first two 8 kHz pulses.  It will go high on the 3rd pulse and then revert low on the 82nd subsequent pulse.
       Because this pulse *also* acts as a pause trigger for the AO task, you're now synced such that the AO task is paused exactly as it is being retriggered, meaning that the previous waveform must have been allowed to complete.  (The deep details of timing will prevent the AO task from generating 1 sample at this instant.)
    -Kevin P

  • Externally trigger binned counting

    Hi,
    I have a PCI-6221 and am trying to achieve the following.  I've tried searching and found similar questions, but nothing exactly the same, so apologies if I have overlooked a previous answer.
    What I would like to do is count total pulses per 100 µs for some fixed period of time, say 100 ms.  The start of the 100 ms total measurement period should be triggered by an external signal which is much slower, e.g. 1Hz  This is as I need to sum multiple mesurement events as follows, where the time bins given are times after the trigger signal and each measurement is triggered by the external signal.
    Measurement     0-100µs  100-200µs    200-300µs   etc.
           1                    2                1                0
           2                    1                2                1
           3                    2                1                1
           4                    0                1                0
        total                  5                5                2
    If I could get the rolling total for each measurement that would also be fine, I can subtract each time bin from the previous in software.  The previous example using this method would therefore be:
    Measurement     0-100µs  100-200µs    200-300µs   etc.
           1                    2                3                3
           2                    1                3                4
           3                    2                3                4
           4                    0                1                1
        total                  5                10              12
    I have looked at previous answers such as http://forums.ni.com/ni/board/message?board.id=40&​message.id=2056&query.id=1096458#M2056 and whilst I converted that to a finite number of measurements OK, I couldn't work out how to set it to digitally trigger without errors.  I'm using LabView 7.1.
    Thanks very much, I hope that this was clear.
    Alex

    I haven't fully fleshed out this idea, but here it is in a think-out-loud form.
    I'm assuming you don't have clocked analog output in your app, and will lean on using an AO task solely for its clock.
    Here's the idea:
    1. One of your counters is set as a retriggerable single pulse generator.  Let's say it's CTR0.  Use the external ~1Hz signal as its trigger, and set it up to generate a single pulse with a 100 msec high time and a minimal low time.  You'll need a DAQmx property node to make it retriggerable.
    2. Configure an AO task to generate at 10 kHz, corresponding to your 100 microsec bins.  Configure it to be pause triggered by the output of CTR0.  Thus, the AO generates samples at 10 kHz, but only while CTR0 output is high (for 100 msec).  You'll have to write a buffer of analog values to generate, but it can just be an array full of 0 voltage, and you don't have to wire that output to anything either.
    3. Configure your other counter, CTR1, for period measurement.  This may be tricky to configure with DAQmx property nodes, but ultimately you'll need to treat your pulses of interest as the timebase for the measurement while using the AO sample clock as the signal to be measured.   That sounds backwards, but the effect will be to store the number of your pulses of interest that occur between AO clock edges.  You will need to research "duplicate count prevention" to make sure that 0 values get buffered properly.
    I *think* that sort of arrangement could work.  About every second, you get an external trigger.  That trigger causes CTR0 to generate a single pulse with a 100 msec high time.  Your AO task generates a clock pulse every 100 microsec, but only during the 100 msec when CTR0 is high.  Each of those AO clock pulses buffers a value for your CTR1 period measurement.  This should produce a measurement buffer like the first one you listed.
    4. (Simpler Alternative) Configure CTR1 for simple counting.  Use DAQmx Timing.vi to specify the use of the AO Sample clock, and specify your external pulses of interest as the signal to measure.  By default, LabVIEW will expect to see those pulses at CTR1's default SOURCE pin.  This arrangement should produce a measurement buffer like the second one you listed, though you may still need to research "duplicate count prevention" to make sure that gets set up right.
    5. I can't help but think there's another way to do this without the AO stuff, but nothing's coming to me now.
    -Kevin P
    Message Edited by Kevin Price on 02-01-2010 02:19 PM

  • Ai acquisition external trigger rate in windows 2000/xp

    I'm doing repetitive measurements of the type described in the nidaq example DAQsingleBufExtTrig.C:
    iStatus = DAQ_Rate(dSampRate, iUnits, &iSampTB, &uSampInt);
    iStatus = DAQ_Start(iDevice, iChan, iGain, piBuffer, ulCount, iSampTB, uSampInt);
    while ((iDAQstopped != 1) && (iStatus == 0))
    iStatus = DAQ_Check(iDevice, &iDAQstopped, &ulRetrieved);
    When using a 100 Hz external trigger, the above code can be repeated at nearly 100 Hz on our various ni hardware (PCI E-series and a DAQCard-1200) under windows 95/98/me, using appropriate parameters. Under Windows 2000 but otherwise identical conditions, the best rep rate I can do is in the low 40s. I wouldn't have been too surprised if the roles of (2000/xp)
    and (9x/me) were switched, but as it is I don't know why this is happening. Any ideas are welcome.

    Hello;
    As you are reconfigure the hardware at each end of the buffer, you will become system dependent. The maximum speed that you can go will vary from machine to machine even.
    The way to go about that, is to set up a retriggerable Analog Input operation, which is hardware controlled. By doing that, you will become completely system independent, and will be able to run your application in any sort of machine/OS.
    I'm attaching a ANSI C example that does the trick.
    Hope this helps.
    Filipe A.
    Applications Engineer
    National Instruments
    Attachments:
    SimulateRetriggerScan_Eseries.zip ‏5 KB

  • How to connect external trigger PCIe-1433?

    I am having an issue getting the external trigger to work using a cameralink camera, a PCIe-1433 card and a signal generator.  The signal generator is connected to the SMB connector on the 1433 card and is providing a 20 Hz signal with a 20ms pulse width at TTL voltages (0-4V).  From memory, we are using the MAX software and under the Acquisition tab I have CC1 set to external, however the camera is not receiving this external trigger.
    I've attached a rough diagram of our setup.
    What could my issues be?  My thoughts are:
    1) Are there other settings in MAX I need to ensure?  I know the SMB connector can be an input or an output.  How can I make sure this is set to input?
    2) My input signal is 0-4V which is TTL, but does the signal need to be 0-5V?
    Any thoughts would be greatly appreciated.  Thank you.
    Attachments:
    ExternalTrigger.jpg ‏29 KB

    Hello tuckturn
    Thank you very much for getting in touch with us. 
    1)  In Measurement and Automation Explorer, the default is an input.  You would need to use LabVIEW to change the SMB connector to be an output. Can you please show me a screenshot of your camera attributes in Measurement and Automation Explorer.
    2)  Where does this input signal come from?  Do you have a 5V TTL compliant output to test this?  Can you please provide me the specification for whatever device is outputting the voltage?
    Thanks again.
    Sincerely,
    Greg S.

  • How to connect external trigger PCI-1433

    Hi all:
    I met the same problem as this old post: https://forums.ni.com/t5/Machine-Vision/How-to-connect-external-trigger-PCIe-1433/m-p/1677560/highli...
    however the post did not give solution.
    I am having an issue getting the external trigger( from PCI 6259) to work with a cameralink camera, a PCIe-1433 card . The PCI 6259 is connected to BNC 2111, the output trigger signal from CTR0 is connected to the SMB connector on the 1433 card and is providing pulse train at TTL voltages (0-5V).  Using the MAX SOFTWARE and under the Acquisition tab I have CC1 set to external 0, however the camera is not receiving this external trigger. The camera is Basler 4096-140km.
    I measured the ouiput signal from CTL0, the sigal seems good.
    I tried RTSI trigger before, failded. I thought SMB should be more straight forward, seems I was wrong.
    Looking forward to reply!
    Attachments:
    camera configuration.jpg ‏168 KB
    External Camera Trigger(SMB).vi ‏57 KB

    Bobjojo,
    You will actually need to affect the properties of both the camera and the frame grabber to take advantage of this triggering mode. I found a document that contains a good run down of the process to acquire in this mode (linked below). As far as the programming for the acquisition is concerned, the frames will be built at the driver level for the specified frame height. This means that the IMAQ driver will composite the line scans for you, and any simple acquisition (the document shows using the Vision Acquisition Express VI) will be able to pull the image into LabVIEW.
    www.ni.com/white-paper/13786/en/pdf
    Karl G.
    Applications Engineer
    ni.com/support

  • Using PFI0 as a trigger and PFI1 as an input on PCI-5114

    Hi,
    I have a NI-5114, and I'm currently using PFI0 as the trigger, and reading out the two analog channels.  I'd like to add a second digital input through the other PFI so I can simply test if something is on or off (already a digital signal).  So, when PFI0 triggers, it digitizes the two inputs and reads whether or not PFI1 is on or off (no timing necessary).  Is there a trick to get this done?
    Thanks,
    Karl 

    Hello Karl,
    Since the PFI lines are generally used as triggers, we cannot read a PFI line unless you are specifically triggering off it. What you could do is as soon as you receive a trigger you can export a trigger of PFI1 which you could connect to one input of an external AND gate and second one is the signal you want to monitor. or can use another DIO DAQ device like USB-6501 to monitor the status of external digital signal. 
    Good Luck
    NI-khil

  • How to use an external trigger on an electrometer (KEITHLEY 6517A)

    I'm really new using LABVIEW, so please, be patient with me...
    I'm using a KEITHLEY electrometer to acquire data from a dosimeter. We are going to do some measurements on a pulsed source and before the pulse there's a trigger signal. I don't know the size of the trigger, I'll just know that when I start my measurements (in another lab) So I would like to implement a case were the user can decide the value of the external trigger, so this information goes to the eqipment before starting the measurement.
    What I would like to know is... Someone can give me a hint on how to do that? I'm using GPIB and LABVIEW 7.1.  and I already took all the 6517A libraries for labview.
    Thank you all

    The external trigger on a 6517 is a TTL signal. Any pulse higher than 3.4V will trigger it. You cannot program the threshold level.
    You can set the delay programmatically with TRIG: DEL <n> command.
    ref: page 2-81 and following of User Manual
    Message Edited by normandinf on 10-21-2008 03:55 PM

  • Trigger and Gate Only Returns One Channel

    Hello all,
    I am trying to write a VI that will run in the background and start writing some data to a file when it detects a signal. For detecting the signal, the VI uses the "Trigger and Gate" express VI to see when the input voltage goes above a treshhold. Then I plan to write whatever data comes out of the "Triggered Signal" output.
    There are 8 channels, with the 6th one being the channel that is being checked for a signal. I have configured the "Trigger and Gate" express VI to trigger when that channel reaches 0.01 V and it does trigger when that happens. However the problem is that the "Triggered Signal" output only contains data for the first channel, and I want it to contain all of the channels.
    I don't have access to the device that will be sending the data right now, so I am testing the VI using the "Read From Measurements File" express VI. It reads from a file that contains data that I saved from the device previously. When I set the the "Retrieve segments of specified size" for the express VI, so I can see how it progresses, I get the error I mentioned above. When I set it to "Retrieve segments of original size" (the file contains only 1 segment, so it reads all data), everything works as expected.
    Any ideas as to what I am doing wrong?
    I attached the VI with some sample data.
    Attachments:
    data.csv ‏4834 KB
    trigger-and-gate.vi ‏112 KB

    Hi krizka,
    There are two really good examples that can be found using the NI Example Finder (help -> find examples). These are under Hardware Input and Output -> Analog Measurements -> Voltage  
    Cont Acq&Graph Voltage-Int Clk-Analog Start.vi
    Cont Acq&Graph Voltage-Write Data to File (TDMS).vi 
    These will give you a good start point. Please feel free to ask if you have any questions
    Joe Daily
    National Instruments
    Applications Engineer
    may the G be with you ....

  • [Question] PCI-6220: digital level at the pause of a continuous impuls train with external trigger

    Hallo,
    I'm trying to use a PCI-6220 card to generate a continuous impuls train which will be paused at an external trigger. I've used the example code in the example library to generate the impuls train. The idle state of the impuls train is set to be high. But I figure that die digital level at the pause is sometimes high and sometimes low. I suppose that the level stays at the exact time when the pause begins?
    Is my assumption correct? Is there any way to let the impuls always pause at the idle state, like it will then be paused after a full impuls is finished? Any tips or links will help. Thanks in advance.
    Wei

    Yes your assumption is right. The output is latched to the last set value.
    If you are generating the pulse through the counter,  setting the Idle state in Create Virtual Channel.vi   doesnt help?

  • DAQ board for acquiring analog pulses

    Hi.  I'm using the USB-6251 DAQ board, and I'm trying to record analog Gaussian curve-ish pulses into LabVIEW.  Except when there is a pulse, the analog input channel is at 0V.  Right now, I've got the trigger working to start acquisition at the beginning of the pulse, but I can't figure out how to stop acquisition when the pulse is over.  I've been using the DAQ Assistant, with an Analog Window start trigger, set at the range 10m to 10 V.  Is that the right way to do it?  I can't get any reference trigger to work to stop the acquisition however.  It's set to acquire 5k inputs at 1 kHz and always goes for the full 5 seconds instead of stopping.
    Thanks in advance for helping!

    Not exactly.  It's still picking up pulses separately, but it's including the empty space afterwards (as in, if the pulse lasts only 10 ms, it still acquires data for the full 1 second).  Preferably, it would stop acquiring data when the voltage is outside the analog window.
    I attached the VI as it is right now, with just a start trigger and no reference trigger.  I'm unsure how to configure the reference trigger to have it stop the acquision once the voltage is outside the window again.
    Thanks for your help!
    Jeremy
    Attachments:
    DAQ integration.vi ‏90 KB

Maybe you are looking for