Arrive time of start trigger

Dear all NI high speed digitizer experts:
 I am asking how can I read the timestamp of the start trigger? In my measurement I configure my digitizer NI5154 to start a multirecord acquisition by sending a start trigger. Currently I use the timestamp of the first captured waveform as the trigger time. This is not a precise approximation since the time difference between the first waveform and the trigger varies in a few ms range.
Anyone know how to read the trigger timestamp?
thank you.
Lixin 

Hello,
The timestamp that you're looking at is actually the software timestamp returned by the NI-Scope driver VI, so you're right that it will differ from when the start trigger on the digitizer hardware is received and when that first sample is returned in software, especially if you have a very long record length.
There are two properties that can help you determine a relative timestamp between records, but is actually a time value of a constantly running counter onboard the digitizer. The "Absolute Initial X" and "Relative Initial X" values that get returned as part of the "wfm Info" on the Fetch VI, will show you the timestamp of the first sample in each record of a particular acquisition and the time from the trigger to the first sample of the record, respectively. Take a look in the niScope Fetch (poly) detailed help and you can see this explanation.
These values are good for comparison between records, but not a good absolute timestamp, because this counter is constantly running and is only reset on rollover or when the board is reset. So, you can see that the values returned may look a little funny, but keep in mind they are values derived from the counter counting a certain rate. So, what you can do is take the first values returned for AbsoluteInitialX and RelativeInitialX and add/subtract them (depending on your trigger type) and make that value your "0" time, and then for each consecutive record, just extrapolate from there.
Hopefully this helps out.
Chris W

Similar Messages

  • How to calculate the time between start trigger,first scan and first A/D in DAQ

    Environment: Labview 6.1, N6052E DAQ board(max scan rate=333KHz, max channel rate=333KHz, settling time=3.5usec+1LSB)
    I am using external scan clock 10K scan/s collecting data on 16 AI channels, and external channel clock 200KHz.
    Could show me how to calculate the time betweent he start trigger, the first scan and the first A/D conversion?
    Thanks

    I read the one you give to me. still cannot work out. I am using Labview 6.1 DAQ vi, including AI config.vi. clock config.vi, AI control.vi, AI read.vi, working on colect data on 16 AI channels. So I belong to SCAN function and external scan and sampling timing, right?
    But it says the T1 and T2 are determined by external signals. How can I calculate that?
    T1=1/10KHz or T1=1/160Khz?
    T2=1/200KHz?
    Is the above correct?

  • Producer Consumer Start Trigger

    Short Explanation: I'm using a 3rd party device to send a TTL signal to use as my start trigger in my VI. My cDAQ and modules appear to have the ability to send a start trigger independantly but I have been unable to hunt down how to do this in a producer/consumer system.  I do have an idea at the bottom of the long explanation.
    Long Explanation:
    I'm running a test system that monitors the pressure wave from a hydrogen/oxygen ignition. Components are a cDAQ-9188 with modules 9222 (x3 high speed AI), 9481 (x2 relay), 9402  (x1 I/O Module), 9221 ("Low" Speed AI). 
    Based upon recommendations in this forum I've placed my DAQ in a producer/consumer architecture. 
    At this point the system mostly works, I still have a few more things to add for all the information I want to collect. However, it records at high speed and the 9221 and the 9222 modules are synchronized. It has successfully collected good data as of this writing.
    When the system starts it will monitor, but not record. I need to fill the test structure with gas to a specific concentration before I ignite/record. When I press the record button I send a TTL signal from the 9402 to my high speed camera and I close a relay on a 9481 which engages a spark system. The spark system takes a variable amount of time to charge and fire so I have a timer that leaves the TTL and the relay active for a half second.
    My problem, and it's a small one, comes in with the monitoring system and the synchronization. In order to get the system to synchronize properly I had to generate an external pulse into PFI0 to use as a trigger. I attempted to assign the various clocks available as a start trigger but I ended up with unsynchronized data.  
    Is there a way to generate a pulse on my 9402 to use as a trigger? It feels silly to me to use an external device when I have something that can generate the signal I need.
    In thinking about this post I might have solved my problem, at least in my head. I'm thinking I can move the TTL output VI (which I will eventually change to DAQmx) into the producer loop and move my true/false statements to the consumer loop as a 1D array within my queue to start the record. Probably more to it than that but I can only learn by experimentation right?
    Thoughts? Recommendations?
    VI attached. 
    Solved!
    Go to Solution.
    Attachments:
    HUCTA Controls.vi ‏186 KB

    You can't generate a pulse with the 9402 itself. The pulse would actually be generated by the 9188. You should create a Counter Output task to generate a pulse train. Try the attached example as a start point to experiment with the counter.
    This Vi is for LabVIEW 2013, if you have an older version let me know and I will try to convert it.
    Camilo V.
    Applications Engineer
    National Instruments
    www.ni.com/support
    Attachments:
    Pulse Train Generator.vi ‏18 KB

  • Timer fires during trigger processing on web

    I was looking for a way to augment the default behaviour
    of a hierarchical tree. The trouble is clicking in a tree can fire various combinations of WHEN-MOUSE-CLICK, WHEN-TREE-NODE-SELECTED, WHEN-TREE-NODE-EXPANDED,
    WHEN-TREE-NODE-ACTIVATED, WHEN-MOUSE-DOUBLE-CLICKED. I wanted to trigger some action after they had finished firing but as I didn't know which would fire last, where to put the code ?
    The solution I found was to start a 1 ms timer in WHEN-MOUSE-CLICK (which always fires first), gather information from the other triggers into a variable, and do my processing in WHEN-TIMER-EXPIRED. This worked fine on client/server but when I deployed it on the web I found the timer expired between WHEN-MOUSE-CLICK and WHEN-TREE-NODE-SELECTED (triggered by a single click).
    My understanding of timers is that, however short their duration, they should not expire during trigger processing. Have I got this wrong or is this a bug ?
    It seems to work OK with 5 ms but I would like to know what is going on.
    (f6i patch 7)

    All,
    as promised, here's an answer from development. Duncan said it already, but here's the long version
    1). Regarding timers in general. 1ms timers fire on the server (effectively,
    at the time the timer is created in a trigger, we put a timer macro on the
    stack so that that next time we go for input (after we've processed all
    of the events we've already gotten at that point), it will act as if the timer
    has expired. This, as you know, prevents us from doing round-trips to the
    client when people are simply creating a timer to get around some of the
    restricted built-in/trigger issues. Any timer of longer than 1ms will get
    created on the client and thus cause round-trips. We have no plans to
    bump that threshhold up, so people could use 2ms timers if they wanted...
    2). Regarding timers expiring during trigger processing. It is true in both
    client/server and web that we will not expire a timer while a trigger is
    firing. However, the order in which the user will see events (and thus
    which triggers will fire in) can vary. In the example that was given,
    the user (double)clicks on a node in the tree on the client. The first
    mouse click causes a message/event to be sent immediately to the
    server, which ends up causing the when-mouse-clicked trigger to fire.
    As soon as that message is sent, the server starts processing that
    trigger. In the meantime, the client may decide that it needs to send
    other messages (such as when-node-selected, etc.). However, until
    the server sends a return-message to the client asking for more input,
    this won't get sent. Now, the server fires the when-mouse-click trigger,
    and as part of it a timer gets created. There are two possible scenarios
    here.
    In the first scenario, the timer is 1ms, and thus is handled on the
    server. Thus, when the trigger ends, the server sees if there is any more
    input to be processed, and sees that the timer has expired (because, as
    I explained above, this gets put directly onto the macro stack). Thus, the
    timer expired trigger fires. After that trigger fires, the server sees that it
    has no more input waiting, and sends a message to the client telling it to
    send more input. At that point, the client can send whatever other events
    it has queued up (such as the when-node-selected) and we carry on.
    In the second scenario, the timer is more than 1ms long. In this case, when
    the trigger says to create a timer, the server queues up a message to send
    to the client telling it to create a timer. When the rest of the trigger is complete
    and the server sees that it has no more events to process, it sends this timer
    creation message to the client at the same time it asks the client to give it
    more events. The client sends the when-node-selected event, the server
    processes it, and eventually asks the client for more input. By then, the
    timer has expired and then the timer message gets sent to the server.
    In neither of these cases does the timer trigger fire in the middle of
    another trigger that is already firing, it is simply that the separate triggers
    might fire in a different order because of the order that the underlying
    events are processed. In client/server, the process is effectively the same
    as the 2nd scenario above, because the timer is handled by the toolkit, just
    like the other events, and thus the message for the timer expiring will get
    sent to Forms after any of the events related to the mouse click. But again,
    the rule about timers firing during trigger processing is not violated, it is just
    that there is a break between triggers that can allow a 1ms timer to fire
    'sooner' on the web than in client/server.
    Fran

  • Using DAQ occurrence to wait for start trigger

    Hi,
    I'm trying to use digital triggers to start and stop datalogging. Every time start trigger appears, new file is created and data is acquired to file until stop trigger occurs. Now I'm using set DAQ occurrence and wait for occurrence functions to wait for start trigger before creating a new file. The problem is that after first stop trigger this occurrence method doesn't work. I believe it's because AI is not cleared and configured before calling DAQ occurrence again. Number of scans acquired is not zero, if I don't clear and configure AI again? Am I right?
    Do I have to clear and init AI everytime before occurrence config or is there a better way to make program wait for start trigger?
    Thanks in advance,
    Jakke

    Hi Matt99eo,
    Have you configured your device for triggering?  Although you have not mentioned your device specifically, the M series user manual provides a great explanation of digital triggering.  Using the DAQ Assistant, this can be configured from the triggering tab.  Hopefully this helps!
    Regards,
    h_baker
    National Instruments
    Applications Engineer
    Digital Multimeter Resources

  • Working of start trigger

    i want to know how a start trigger starts the acquisition of data.please give me any example

    Hello Christian,
    Thank you and Best Regards,
    I implemented a advance Measurement and Control system using cRIO-9074
    with c-Series I/O cards( NI 9217, 9411, 9264)
    I have some questions about it,
    (1)- Data rate from FPGA targate to host vi is too low. how can I increase
    it, when I run my host VI, sometimes all temperature sensor update at
    same time and sometimes one by one, can you please give me some hint, how
    can I correct it, I used two FIFOs for NI-9411 digital pulses, I put all
    Digital input and all analog output and input in a seperate while loop in
    FPGA targate VI.
    (2)- I have to write that data to analyse for further result. I tried all
    possible way to write data including wite to spreadsheet.vi, write to
    text.vi, Data storage.vi, Write to measurement.vi. All this VI work
    efficientlywhen it run individualy, But when I connect this VI to
    writedata from FPGA host VI. than it always give empty file.
    I saw your post in NI discussion forum about how to write data from
    Host.vi, But still I am confuse that how can I creat a protocol between
    host VI and Fpga target vi. to write the data in a file. I have nearabout
    38 channel to write data.
    (3)- I have to measure time difference between two digital pulses, to find
    a flow rate. I am using counter for it with risisng edge shot.vi, but when
    i get a timestemp when there is risisng edge for the second rising edge
    how can I get timestemp. Its like i have to measure time between two
    pulses, I triend waveform measurement.vi to find cycle period. but it not
    worked. any other was to measure it.
    I am stuck in this question since from last one month. I already followed
    NI-discussion forum solution but it doesnt work. I think the way I applied
    is may be wrong. 
    Looking forward to hear from you soon.
    Plese send an additional email copy to [email protected]

  • CTR start trigger error - USB6343

    Hi-
    A digital pulse from a device in my system is connected to the gate of CTR0 (PFI9).
    CTR0 is used as a quadrature encoder. My code routes PFI9 to the gate of CTR1 (PFI4)
    and also defines PFI9 as a start trigger for CTR3. CTR3 is set to generate a finite
    retriggerable pulse train for each digital pulse on PFI9.
    My code returns error -89137 indicating that Specified route cannot be satisfied,
    because it requires resources that are currently in use by another route.
    Not sure what this means?
    Screenshots of relevant code and error message are attached.
    I am using LV2010 and a USB-6343.
    Your help is appreciated !
    Dar
    Solved!
    Go to Solution.
    Attachments:
    CTR3 start trigger code.jpg ‏89 KB
    External trigger pulse route and CTR1 setup code.jpg ‏129 KB
    Error.jpg ‏163 KB

    Hey Dar,
    As long as you're careful about managing your hardware resources then you shouldn't face persistent problems. It's just a matter of knowing which lines you are using at what time, and being conscious of how your signals are physically re-routed in your hardware (as I said, this is something you can check in Measurement & Automation Explorer). There are lots of great DAQ resources online through NI KnowledgeBase articles, Developer Zone articles, and community examples (found at ni.com/support). For resource related conflicts, this KnowledgeBase article is particularly good:
    http://digital.ni.com/public.nsf/allkb/485201B647950BF886257537006CEB89?OpenDocument
    I hope this helps! If you encounter future problems, the forums are a great way to get peer input &/or response from NI engineers.
    Courtney L.
    Applications Engineer
    National Instruments

  • PXI question: four analog ouput cards to start-trigger simultaneously

    Hi all,
    Here's the situation:
    We have built a system that ouputs 24 analog signals using a PXIE-1073 chassis.  It has 5 slots:
    Slot 1:          Internal
    Slot 2:          Empty
    Slot 3:          Empty
    Slot 4 (Hybrid): PXI-6733
    Slot 5 (Hybrid): PXI-6733
    Slot 6 (Hybrid): PXI-6733
    As you can see, it has three analog output cards, which occupy all three of the hybrid slots.  And we have two empty slots. 
    Our LabVIEW code is designed to output analog signals on all three cards (at the same rate) using three DAQmx tasks which start-trigger simultaneously.  To do the triggering, we setup two of the tasks to start-trigger off of the first task (master-slaves style).  In this manner, we can get all outputs to start at the same time.  Its actually quite simple.
    My question:  I want to add another output card.  But I am fairly I can only use hybrid slots for my application.  I remember working with NI and they told me I had to use the hybrid slots to be able to get the triggers routed automatically along the backplane.  Our code actually failed (error) when we used the non-hybrid slots (I forgot the error code).
    Is there any way to add another PXI-6733 and have it trigger with the other cards?

    I can't speak to the chassis, but I'd warn you that if you want your tasks sync'ed, you'd better share a sample clock too and not just a start trigger.  The onboard clocks will have a tolerance (often ~50 ppm, dunno for your 6733's)  and their sampling instants will drift apart from one another over time.  In fact, I rarely both with triggers at all for syncing tasks & boards.  I'll usually *only* share a sample clock, and then make sure I start all the slave tasks before the master whose sample clock is being shared.
    Good luck on your real question though...
    -Kevin P

  • Start trigger 6608

    Program works in CVI 8.0
    I use several 6225 for analog acquisition and one 6608 for time metering.
    For simultaneous start of all devices start trigger must be set up.
    DAQmxCfgDigEdgeStartTrig function allows me to connect ai\StatrTrigger of "master" 6225 with PXI_Trig0 and to connect ai\StartTrigger of other 6225 with DevN\PXI_Trig0.
    So, one of 6225 defines strarting others devices 6225. For complete syncronization I must tune up start of 6608. This mean, that I shall connect PXI_Trig0 with DevN\Ctr0StartArmTrigger, where DevN - name of device 6608 in system.
    What function must be applied for it? Maybe I need fundamentally other method of syncronization?
    Best regards, Alexander

    Hi Alexander,
    To define the source terminal of the Arm Start Trigger in LabVIEW, use the DAQmx Trigger Property Node (see attached image).  The C function for the same operation would be DAQmxSetDigEdgeArmStartTrigSrc().  Is this what you're trying to configure?
    Regards,
    Andrew W
    National Instruments
    Attachments:
    trigpropnode.JPG ‏25 KB

  • Set time at start of DAQ to 0

    I am using 'DAQ Assistant' (subVI) to measure some AI's I am then storing this data using 'write LVM'(subVI). I acquire for a length of time when a trigger is received, it then stores and waits for the next trigger where the process is repeated. When I look at the LVM file I see that the time axis doesn't start at 0 seconds. I think the time actually starts when I start the program running because as you look at the files sequentially the start time always gets bigger, although I am not sure as I am only using express vi's so it all quite elusive and clever and not in my control. In order for my time axis to start at 0 seconds what do I need to reset.
    Nice

    Hello,
    I have had this post in my inbox for a few days and have been checking to see if you have posted further questions or if the posts from other users helped you out enough to get moving again with your project.
    If you have sorted out your problems then that is great, if you are still having the problems then please feel free to post to this thread again and I will monitor the thread for your response. I can then look into this further for you. I'm still not quite clear on exactly what you are trying to do though, so maybe if you could post a piece of example code which shows the problem then I will be in a better position to advise you.
    Best regards,
    Peter H
    Applications Engineer
    National Instruments UK

  • Every time I start iTunes I get the message: "iTunes exec has been set to run in compatability mode for an older version of Windows. Turn off compatability mode for iTunes before you open it." How do I turn off the compatability mode?

    Every time I start iTunes I get the message: "iTunes exec has been set to run in compatability mode for an older version of Windows. Turn off compatability mode for iTunes before you open it." How do I turn off the compatability mode? Particularly when I have to do it before I turn on iTunes.

    Try the following document, only be sure that none of the boxes in the compatibility mode tab are checked (not just the compatibility mode box itself):
    iTunes for Windows: How to turn off Compatibility Mode

  • Macbook Pro, bought 2012, takes a very long time to start up/restart (5 mins). How do I fix this?

    My Macbook Pro, bought 2012, takes a very long time to start up/restart (5 mins) every single time I have shut it down.  I try not to shut it down at all now because once or twice, I have got a grey screen, and then nothing. I've held down the power button to shut down again and restart  How do I fix all this?

    Start up with your built-in Recovery disk by holding down the Command and R keys when starting. Open Disk Utility from there and use it to REPAIR your disk (you've already verified it and it came up with errors).
    With any luck, your problems will be solved. While I was there, I would also repair  permissions.
    Good luck,
    Clinton

  • Installation of Yosemite 10.10.1 has severely slowed the performance of my Mac.  Takes a long time to start-up and to load any apps.  Any suggestions?

    Installation of Yosemite 10.10.1 has severely slowed performance of my Mac Mini.  Tales a long time to start, and a very long time to start any apps.

    Open Activity Monitor and kill this process - rapportd.
    Reinstalling OS X Without Erasing the Drive
    Boot to the Recovery HD: Restart the computer and after the chime press and hold down the COMMAND and R keys until the menu screen appears. Alternatively, restart the computer and after the chime press and hold down the OPTION key until the boot manager screen appears. Select the Recovery HD and click on the downward pointing arrow button.
    Reinstalling OS X Without Erasing the Drive
    Repair the Hard Drive and Permissions: Upon startup select Disk Utility from the main menu. Repair the Hard Drive and Permissions as follows.
    When the recovery menu appears select Disk Utility and press the Continue button. After Disk Utility loads select the Macintosh HD entry from the the left side list.  Click on the First Aid tab, then click on the Repair Disk button. If Disk Utility reports any errors that have been fixed, then re-run Repair Disk until no errors are reported. If no errors are reported click on the Repair Permissions button. Wait until the operation completes, then quit Disk Utility and return to the main menu.
    Reinstall OS X: Select Reinstall OS X and click on the Continue button.
    Note: You will need an active Internet connection. I suggest using Ethernet if possible because it is three times faster than wireless.
    Alternatively, see:
    Reinstall OS X Without Erasing the Drive
    Choose the version you have installed now:
    OS X Yosemite- Reinstall OS X
    OS X Mavericks- Reinstall OS X
    OS X Mountain Lion- Reinstall OS X
    OS X Lion- Reinstall Mac OS X
         Note: You will need an active Internet connection. I suggest using Ethernet
                     if possible because it is three times faster than wireless.

  • When i turn it on it takes a long time to start up and it freezes in some of the apps so I had to turn it off

    Recently when I turn on my mac it takes a long time to start up and at first and in the beginning it appears with a grey screen and at the end it turns blue.
    Also it freezes in some of the Apps, so it make me to turn of.
    Please be kind enough to guide me to solve these problems.
    I thank you in advance for your cooperation and quick response.
    Best Regards
    Ahmad Emami

    What SP are you on?  We had a similar issue w/SP6 but it was resoloved with SP7.
    Michael

  • Lenovo Services/P​rogram takes a long time to start after bootup

    It seems like Lenovo services take a long time to start after boot up is completely done.
    My Bootup time is less than a minute (0:51s), but my lenovo services (Power Manager Gauage, Lenovo Services in the Sidebar, have th ThinkVanatage Button work, and most annoying of all is having access to my network card to change networks) takes about 2 minutes.
    Is there a reason why this is taking so long?
    I've uninstalled and installed the lastest Lenovo Interface Driver, and a lot of ThinkVantage/Lenovo software and drivers.
    Any ideas?

    No response?
    Anyone else on T400 notice this?

Maybe you are looking for

  • Exception currencies TCURX table, R3 - BW loading issue

    Hello Friends, I am facing issue in report values for amount in local currency key field. Its value not matching with R3 values. Decimal places are shifted in report. We are on BI7 (RSDS data source). There is data coming from R3 into one DSO from di

  • Can't save a word document in pages

    hello all, hopefully someone can help me because i am very frustrated with pages. I recently bought my 2011 macbook pro for school this fall. I transferred all my data from old macbook to this macbook. I needed a new word processing program, so I dec

  • Return Delivery - MBRL

    Hallo , While creating return delivery using transaction MBRL the following error occurs. Could anyone help me out? Please let me know the required customizing settings in this regard. Data for creating a delivery is incomplete (Shp.Cond.) Message no

  • Database Resource Manager

    Hello, We're on Oracle 10.2.0.3. I want the Resource Manager to map a specific machine in de 'LOW_GROUP'. Therefore I've used the value of 'machine' from the following query select sid, serial#, username, machine, resource_consumer_group from gv$sess

  • Roles for DTR

    Hi all, which roles do we need to view or access the Design Time Repository. We have been assigned to the NWDI.Developper group but it seems it not enough. Thanks.