About arm start trigger

Hello all,
can anybody post an article explaining the "arm start trigger", its relationship with "start trigger", and how to use it under different scienarios, such as for different counter tasks, encoder and edge counting etc?
I just found it's hard to get enough example from labview shipped package.
thanks
feilong

Hi feilong,
What device are you using? If we know that it will be easier to help you better. If you are using one of our digitizers, the NI Digitizers Help file is very useful for this case.  Have a nice day,
Ana P
National Instruments
Applications Engineer

Similar Messages

  • Arm start trigger

    I got two NI 6221 DAQ cards (M-series), each of which has two counters.  I want to take the readings from three counters and sychronize them.
    Here, I attached the vi that I am using.  The problem is that how I can get the arm start trigger? It is stated that the arm start trigger would be better used to sychronize three signals.  Could I use vi to generate start trigger sources? Comments are greatly appreciated! Could I use functino generator to simulate the trigger source?  Thank you very much in advanced!
    Attachments:
    sz.vi ‏180 KB

    Hi Mayasong,
    In this example, the arm start trigger is setup to check for a rising or falling edge on a specified I/O line - labelled trigger source. This will synchronize the counters, and they will start counting when the start trigger condition is met.
    What event exactly do you want to start the counter acquisition on? Something from within software, or a hardware event?
    If you'd like to synchronize from with a VI, you could write code (eg a function generator) to generate this pulse on an output line, then loop that back into the input you select to arm the trigger. Alternatively, you can do this with a RTSI cable connected between the two cards inside your PC.
    This link (below) may help you with synchronization:
    http://zone.ni.com/devzone/conceptd.nsf/webmain/6D​C991028566309886256F990080A720
    Hope this helps!
    Mark
    Applications Engineer
    National Instruments

  • Why is Start Trigger Delay not applicable?

    Hardware: PCI 6602
    Driver: DAQmx 7.4
    Programming Environment: ANSI C
    Hello All,
    I'm setting up a counter output pulse generation task which is to have a start trigger.  To be specific, it is a digital edge start trigger (not an arm start trigger) which I plan to use in retriggerable mode so as to get a single output pulse of specified width for every trigger edge.  Currently I'm baffled as to why the Start Trigger Delay and Start Trigger Delay Units properties do not seem to apply - whenever I try to access them I get an error message saying they're not applicable to the task.  The other properties of interest - Source Terminal, Active Edge, and Retriggerable - can be accessed and modified without any problems.  I don't actually need the delay but am curious to know why it doesn't apply in this case.  Thanks in advance.
    Jeff

    Hey Jeff-
    You will need to make sure that you don't stop the task at any point after the first generation.  Most of the examples use DAQmxWaitUntilTaskDone() to wait for a single iteration, but in your case you want to run through several iterations of the task.  So, you will want to enter a loop after starting to ensure that the task continues to run in the background on the hardware.  I modified the single pulse DAQmx shipping example to include digital retriggerable start triggering.  The empty loop spinning is obviously not ideal, so I'll leave you the choice to implement that as necessary.
    Since you're working with retriggerable single pulses, you may also want to be aware of the information in this KB.
    Hopefully this helps-
    Tom W
    National Instruments
    Attachments:
    DigPulse.c ‏4 KB

  • 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

  • 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

  • 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

  • Analog comparison/start trigger

    Is it possible to use the analog comparison (typ under start trigger) with a continous task that I want to start immediately?  I want to take samples from the get go, but then generate the analogcomparisonevent pulse when the values leave an analog window.  The way it seems so far is that it will only work if I use that as the start trigger, but then I don't recieve samples until that trigger is reached.
    Any help is appreciated.

    Hi again Michael,
    Here's what I'd do in your case:
    1.  Set up the analog input task to be continuous.
    2.  Set up the quadrature position encoder to be hardware timed as well, but use the AI Sample Clock for the clock source.  This way, you will still have one counter left and your AI and CI tasks will be synchronized.
    3.  Set up a "dummy" Counter Output task to generate a single pulse that will be retriggerable.  You should be able to use the analog trigger from the AI channel or you can route the signal externally to the APFI line and use that to do the triggering.  You can use either the analog comparison event or the pulse generated on the Ctr1InternalOutput terminal as you are generating a retriggerable pulse anyway.  Either one should work.
    Let me know if you have questions about this.
    Regards,
    John Bongaarts
    AE Specialist - Test Products

  • Digital start trigger and high speed camera

    Is there any particular option or way available in LabVIEW to initiate the data acquisition and high speed camera using a digital start trigger? If yes, shall I create a task for high speed camera and then synchronize it with the other tasks?
    Kind Regards, 

    Hi Helen19411,
    The way to trigger data acquisition in LabVIEW is to use the 'DAQmx Start Trigger VI'. To set this up I recommend taking a look at this example: 
    http://www.ni.com/example/25282/en/
    Without any information about the high speed camera you are using, I can't give much advice. If the device is viewable in MAX then you may be able to create a task, and so long as you synchronise both channels in your code, the digital trigger should activate both events.
    Kind Regards,
    TomS
    Applications Engineer
    National Instruments

  • When to use Initiate and when Start Trigger?

    Hello I am talking about Scope5122 and DigitalIO6552.
    Im little confuse, what is the relation between Initiate VI to Start Trigger trigger.
    Thanks.

    HaD,
    Basically, the Initialize VI just gives you a session reference to the device where you can modify properties of the device and configure the device (sample rate, number of sample to acquire, channels to use, etc.). These properties all have to be configured before the device begins to acquire or generate. (Note: some properties can be modified or accessed after the device is acquiring or generating, but not all)  The Initiate VI will basically start the acquisition or generation to the device if some sort of trigger is not already configured. The Start Trigger VI allows you to configure a trigger for the device, if you do configure a trigger you will still have to call the Initiate VI, but only once you call this Initiate VI will it begin to wait for a trigger. If you do not configure a trigger the acquisition / generation would begin as soon as the Initiate VI was called. Hope this helps.
    Aaron W.
    National Instruments
    CLA, CTA and CPI

  • Data acquisition from analog start trigger to analog stop trigger

    Hi,
    I'm trying to start and to stop a data aquisition by using an analog input trigger. I'm using NI-USB-6251. At input channel ai0 is a sin-signal connected. At input channel apfi0 is an analog trigger signal connected. I can start the trigger signal by pushing a button on my frequency generator. Here's a part of my code:
    Hi,
    ich versuche eine Messung mit einem analogen Eingangssignal zu starten und zu beenden. Ich benutze die Messkarte NI-USB-6251. An Eingang ai0 ist ein Sinus-Signal angeschlossen. An Eingang apfi0 ist der Triggereingang angeschlossen. Das Triggersignal löse ich immer per Tastendruck auf dem Funktionsgenerator aus. Hier ist ein Teil des Quellcodes:
    TaskHandle taskHandle = 0;
    int32 read;
    float64 *data;
    float64 sampleRate = 1000; //Samples per Channel per Second
    uInt64 sampsPerChan = 4000; //Samples per Channel to read
    int sumOfChan = 1;
    double triggerLevel = 2.0;
    double min = -0.2;
    double max = 0.2;
    double timeOutReadAnalog = 10.0;
    void calculate()
    DAQmxCreateTask("", &taskHandle);
    DAQmxCreateAIVoltageChan(taskHandle, "/dev1/ai0", "", DAQmx_Val_Cfg_Default, min, max, DAQmx_Val_Volts, NULL);
    DAQmxCfgSampClkTiming(taskHandle, "", sampleRate, DAQmx_Val_Rising, DAQmx_Val_FiniteSamps, sampsPerChan);
    DAQmxCfgAnlgEdgeStartTrig (taskHandle, "/dev1/apfi0", DAQmx_Val_RisingSlope, triggerLevel);
    DAQmxCfgAnlgEdgeRefTrig (taskHandle, "/dev1/apfi0", DAQmx_Val_RisingSlope, triggerLevel, 3000);
    DAQmxStartTask(taskHandle);
    if( (data=malloc(sampsPerChan*sumOfChan*sizeof(float64)))==NULL )
    MessagePopup("Error","Not enough memory");
    //set start and stop trigger
    //set breakpoint here
    DAQmxReadAnalogF64 (taskHandle, -1, timeOutReadAnalog, DAQmx_Val_GroupByChannel, data, (sampsPerChan * sumOfChan), &read, NULL);
    I've choosen the sample rate (1000/s) and the samples per channel (4000), that the aquisition needs 4 seconds to be complete. I can start the aquisition by Start-Trigger, but I think I have a problem with the function DAQmxCfgAnlgEdgeRefTrig. Actually the array will always be filled with 4000 values. I thought I can start the aquisition by triggering once and e.g. after two seconds triggering again for stopping aquisition with result of 2000 values in the array. I hope you can help me with this problem.
    Ich habe die Sample Rate (1000/s) und die Samples pro Kanal (4000) so gewählt, dass die Aufzeichnung 4 Sekunden dauert. Ich schaffe es auch die Aufzeichnung über den Trigger zu starten, jedoch funktioniert das Stoppen mit der Funktion DAQmxCfgAnlgEdgeRefTrig nicht. Aktuell ist es so, dass das Array immer mit 4000 Werten gefüllt wird.
    Ich hatte mir erhofft, dass ich durch einmalige Triggerung die Messung starten kann und beispielsweise nach zwei Sekunden erneut triggere und die Messung damit stoppe und dann nur 2000 Werte eingelesen habe.
    Ich hoffe, ihr könnt mir dabei helfen.

    Hi Martin,
    I looked over your code and noticed that you called the function without checking the returnvalue.
    Try to change the line to the following:
    First: define a new int32 value and call it for example: errorcode
    Second: The function returns a status code, wich if it fails, includes an error code so save this code in the new generated value
    errorcode = DAQmxCfgAnlgEdgeRefTrig (taskHandle, "/dev1/apfi0", DAQmx_Val_RisingSlope, triggerLevel, 3000);
    and try to run the programm and read out this value.
    If you got this value, please post it here and I will try to help you if I can.
    Regards
    Philipp

  • With DAQmx, how to use AO start trigger for AO/AI synchronization with finite AI sampling

    I am a new user to DAQmx and I am trying to synchronize AI (finite samples) with AO in LabVIEW 7.1 using a PCI 6229 card. I want to generate a finite waveform (AO) and, subsequently, collect a finite number of voltage samples (AI). I would like to repeat the AO-AI cycles in a while loop.
    Alternatively, I could use an infinite AO generation and collect finite number of voltage samples on AI but always exactly at the same spot of the AO buffer.
    Using traditional DAQ and a 6024E card, I used a counter triggered by AO start trigger signal (example attached). I have problems with translating this example into DAQmx.
    Please help!
    Ruber
    Attachments:
    AIAODelay_traditional_Eseries.vi ‏155 KB

    Lesley,
    Thank you very much for your suggestion. Late last night I actually tried a to use AI start trigger instead of AO start trigger and it worked (since I tried the AI & AO to start simultaneously, it does not matter what triggers what), even in the loop. The devil is in details, as I had to carefully wire the number of data points and what to place inside/outside the loop.
    The problem with shared clock is that I need to sample the AI and AO at different rates but using AO and AI clock separately did not seem to affect the performance.
    I still want to try to use the AO start trigger (as you suggest) because I would like to delay the AI by a few ms from the AO. Is there a simple way to to that?
    I suppose, switching from traditional DAQ to DAQmx requires your brain to be rewired - after playing with it for a couple of days and nights I developed a "feeling" for it. One of the differences was that, in order to use this example in the loop, one has to use 'stop task' inside and 'clear task' outside the loop.
    Thanks again!
    Radek Uberna

  • Question about Rescheduling Start Date of a Task

    Question about Rescheduling Start Date of a Task
    I'm trying to determine whether the 'Reschedule' action is appropriate to my situation...
    I have a service that consists of 4 tasks.  The first 3 tasks will be completed immediately and then the request's 4th task will sit in a queue for about a month so that all of these requests can be grouped together and fulfilled during a few overnight work sessions.
    While the 4th task is waiting to be fulfilled, the technician will be contacting the requestor to schedule the work to be done sometime during a 3 day window.  The technician needs to specify which of the 3 days each request will be worked on.  I'm not sure if I should store the date in a service form field or have the technician reschedule the task so that the start date of the task is set to one of the 3 days.  If I use the reschedule feature, are there any downsides?
    The advantage of using the reschedule feature is that the scheduled start date can be displayed in ServiceManager's task list and can therefore be sorted on and queried.  This wouldn't be possible if I stored the date in a dictionary field on the service form.  In that case, I'd have to use custom reports to group the tasks by start date.
    Please let me know your thoughts...
    Thanks,
    Scott

    This strikes me as a very good use of this feature, since your need to to have the date for this task rescheduled/reflected in ServiceManager. This is the specific effect of using this feature.
    For the benefit of others reading this post, remember: this rescheduled date will not change the due date for the service.

  • I got this message when I click on a song: you are about to start playback. Do you want to clear the 722 songs previously added to up next?

    I got this message when I click on a song: you are about to start playback. Do you want to clear the 722 songs previously added to up next?

    J.danquah wrote:
    "You are about to start playback. Do you want to clear the 312 songs previously added to Up Next?" how do you remove this from your ITunes?
    You can remove "this" (display of the Up Next list) by going to View > Hide Up Next in iTunes' menu.
    J.danquah wrote:
    would it delete 312 songs if you clck clear songs?
    No.  It would simply remove them from the Up Next list.

  • Using a Counter as a start trigger to one or more tasks

    I am using the NI USB-6251. I want to configure a counter (e.g. Dev1/ctr0) at a user-specified frequency and the rising edge on this counter should act as a start trigger for an analog input task and a digital output task. 
    I've tried to do this by creating a task for the counter:
    integStartTriggerTask.COChannels.CreatePulseChanne​lFrequency(
    "Dev1/ctr0",
    "Integration Start Trigger",
    COPulseFrequencyUnits.Hertz,
    COPulseIdleState.Low,
    0,
    integFreqHz,
    0.5);
    and then connecting this to the StartTrigger for the analog input task:
    analogReadTask.Triggers.StartTrigger.ConfigureDigi​talEdgeTrigger("Dev1/ctr0", DigitalEdgeStartTriggerEdge.Rising);
    However running this gives the error: 
    Source terminal to be routed could not be found on the device.
    Make sure the terminal name is valid for the specified device. Refer to Measurement & Automation Explorer for valid terminal names.
    Property: NationalInstruments.DAQmx.DigitalEdgeStartTrigger.​Source
    Property: NationalInstruments.DAQmx.DigitalEdgeStartTrigger.​Edge
    Source Device: Dev1
    Source Terminal: Dev1/ctr0
    Task Name: analogReadTask
    I have also tried "Dev1/ctr0/StartTrigger" instead of "Dev1/ctr0". What am I doing incorrectly? Thanks.

    Hi zkhan.cimtec,
    To use a digital trigger for your start task you need to use a PFI line to read a signal that is coming in. You are setting up a task that outputs a start trigger on your counter line, but you can't read off that same line to start the task since that line is already configured for output. An example of how to setup a start trigger coming into a PFI line can be found in the examples here:
    <National Instruments Public>\NI-DAQ\Examples\DAQmx ANSI C\Analog In\Measure Voltage\Cont Acq-Ext Clk-Dig Start
    Hope this helps,
    Kevin

Maybe you are looking for

  • VPN clients can connect via SSTP but not IKEv2 due to error 808

    I have a Windows Server 2012 R2 with RRAS configured to allow SSTP / IKEv2 VPN connections. I'm using an external certificate for server authentication and the client authentication is done via domain username/password (Protected EAP). The clients ca

  • Message not seen in SXMB_MONI

    Hello Experts, We are sending MATMAS IDoc from ECC system through PI 7.1 to third party using HTTP. When Material is sent using  transaction BD10 an IDoc gets triggered and is visible in transaction WE02 in green status.The Port used to send the IDoc

  • Buffer(sort) operator

    Hi, i'm trying to understand what "buffer sort" operation is in the following explain plan: 0 SELECT STATEMENT -1 MERGE JOIN CARTESIAN --2 TABLE ACCESS FULL PLAYS --3 BUFFER SORT ---4 TABLE ACCESS FULL MOVIE In Oracle 9i DataBase Performance Guide an

  • High Sea Purchase

    Dear Experts I want to map high sea purchase cycle in the system.this is basically a typical indian procurement scenario where vendor A procures imported material on behalf of myself from imported vendor and sells it to me.Here condition is all the c

  • Guide on how to use a self programmed BAPI in Visual Composer

    Hi all, I am absolutely new to modelling with the Visual Composer, so probably this is a fairly easy question for most of you, but it's driving ME nuts. I have a BAPI in my ERP6 system. This BAPI was programmed by some other guy (not working here any