RTSI Trigger (DAQmx & C++)

Dear Reader
I tried to Synchronize the Starting of the output of two NI cards using the RTSI bus.
I wrote the following code - but the slave-device doesn't start.
Could anyone please tell me what's maybe missing?
Pascal
//PCIe 6259 (Dev1): AO master, export StartTrigger to RTSI0
    error = DAQmxCreateTask("",&ao6259TaskHandle);
    error = DAQmxCreateAOVoltageChan(ao6259TaskHandle, "Dev1/ao0", "", -5.0, 5.0, DAQmx_Val_Volts, "");
    error = DAQmxCfgSampClkTiming(ao6259TaskHandle, "OnboardClock", 1000.0, DAQmx_Val_Rising, DAQmx_Val_FiniteSamps, 10000);
    error = DAQmxExportSignal(ao6259TaskHandle, DAQmx_Val_StartTrigger, "RTSI0");
    error = DAQmxWriteRaw(ao6259TaskHandle, 10000, false, 10.0, dataBuffer, NULL, NULL);
//PCI 6733 (Dev2): Slave device (only triggered)
    error = DAQmxCreateTask("", &ao6733TaskHandle);
    error = DAQmxCreateAOVoltageChan(ao6733TaskHandle, "Dev2/ao0", "", -5.0, 5.0, DAQmx_Val_Volts, "");
    error = DAQmxCfgSampClkTiming(ao6733TaskHandle, "OnboardClock", 1000.0, DAQmx_Val_Rising, DAQmx_Val_FiniteSamps, 10000);
    error = DAQmxCfgDigEdgeStartTrig(ao6733TaskHandle, "RTSI0", DAQmx_Val_Rising);
    error = DAQmxWriteRaw(ao6733TaskHandle, 10000, false, 10.0, dataBuffer, NULL, NULL);
    error = DAQmxStartTask(ao6259TaskHandle);

Hello Pascal,
I took a look at your code and it ran perfectly on my machine. As I already told you: You need to start the slave task in advance!
I just added the red line of code.
#include <ansi_c.h>
//#include "stdafx.h"
//#include "windows.h"
#include <NIDAQmx.h>
#include <math.h>
#define false 0
#define true 1
int main(int argc, char* argv[])
    // PCI 6251 master, PCI 6733 as slave
    int32 error = 0;
    TaskHandle  ao6251TaskHandle = 0;
    TaskHandle  triggerHandle = 0;
    TaskHandle  aiTaskHandle = 0;
    TaskHandle  ao6733TaskHandle = 0;
    char errBuff[2048]={'\0'};
    const int32 nPoints = 10000;
    short dataBuffer[10000];
    float64 dummyBuffer[10];
    uInt32 digiData[10]={0xFFFFFFFF,2,4,8,16,32,64,128,256,0xFFFFFFFF};
    // Init analog dataBuffer 
    int i=0;
    for (i=0; i<nPoints; i++) {
        dataBuffer[i] = floor(15000.0*sin(((double)i)/707.0)+15001.0);
    //PCI 6251 (Dev4): AO master, export StartTrigger to RTSI0
    error = DAQmxCreateTask("",&ao6733TaskHandle);
    error = DAQmxCreateTask("",&ao6251TaskHandle);
    error = DAQmxCreateAOVoltageChan(ao6251TaskHandle, "Dev4/ao0", "", -5.0, 5.0, DAQmx_Val_Volts, "");
    error = DAQmxCfgSampClkTiming(ao6251TaskHandle, "OnboardClock", 1000.0, DAQmx_Val_Rising, DAQmx_Val_FiniteSamps, 10000);
    error = DAQmxExportSignal (ao6251TaskHandle, DAQmx_Val_StartTrigger, "RTSI0");
    error = DAQmxWriteRaw(ao6251TaskHandle, 10000, false, 10.0, dataBuffer, NULL, NULL);
 //PCI 6733 (Dev1): Slave device (only triggered)
 error = DAQmxCreateAOVoltageChan(ao6733TaskHandle, "Dev1/ao0", "", -5.0, 5.0, DAQmx_Val_Volts, "");
 error = DAQmxCfgSampClkTiming (ao6733TaskHandle, "OnboardClock", 1000.0, DAQmx_Val_Rising, DAQmx_Val_FiniteSamps, 10000);
 error = DAQmxCfgDigEdgeStartTrig (ao6733TaskHandle, "RTSI0", DAQmx_Val_Rising);
 error = DAQmxWriteRaw (ao6733TaskHandle, 10000, false, 10.0, dataBuffer, NULL, NULL);
 DAQmxGetExtendedErrorInfo(errBuff,2048);
 error = DAQmxStartTask(ao6733TaskHandle);
 error = DAQmxStartTask(ao6251TaskHandle);
  getchar();
    DAQmxClearTask(ao6733TaskHandle);
    DAQmxClearTask(ao6251TaskHandle);
    return 0;
Hope this helps, regards, C.L.

Similar Messages

  • 6602 register level settings to latch encoder on RTSI trigger

    Greetings,
    I am currently using the
    6602, comedi driver, and  real time linux to read 6 quadrature
    encoders.  I would like to add some functionality to the comedi driver
    that would latch the encoder values from a RTSI trigger.  I have the
    register programming manual for the 6602; However, I am not quite sure
    how I should set up the registers for this task.  If someone could help me figure out what bits need to be set in the 6602 registers, it would be
    greatly appreciated.
    Thanks,
    Greg

    Hi Greg -
    I won't be able to help you with the Comedi driver, but I did find this KnowledgeBase article about it: KB 31GGUUBG
    Among the things mentioned in the article are these:
        - The driver doesn't support counters
        - NI-DAQmx Base for Linux is a recommended, fully NI-supported alternative driver
    If you need to continue using Comedi anyway, you might want to post your question in the MHDDK forum.  If anybody can help you, they're the most likely.
    David Staab, CLA
    Staff Systems Engineer
    National Instruments

  • Use of Impact Test with SW Trigger(DAQmx) vi

    Hello,
    I working on modal analysis (with hammer) and so I am trying to use Impact Test with SW Trigger(DAQmx) vi but I don't get signal of the acceleration (should be acquire as voltage), whereas I get the impact. And when I impact the beam I have an error message which says the sampling frequency should be more than 0.
    thanks for your help

    Hi,
    Can you check the "physical channels (stimulus and response)" input to ensure that you have at least 2 signals? I get this error when I am selecting only one channel.
    Hope this helps,
    Charlotte F. | CLAD
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    >> "Du 11 octobre au 17 novembre, 2 sessions en parallèle : bien démarrer - approfondir vos connais...

  • Where is RTSI trigger lines in 6711 card

    Hi there,
      I have a PCI-6711 card. The manual said it supports the RTSI trigger line to connect the external clock as the timing source. I try to find the pin associate with the RTSI in the layout for PCI 6711 but I didn't see any. I only see PFI8/GPCTR0_SOURCE. Is it the same thing? I am pretty confusing how to use external clock to replace the internal software-based clock. Thanks.
    Solved!
    Go to Solution.

    TheRealMichaelJordan wrote:
    Hi dragondriver,
    Refer to this KnowledgeBase article for information on the RTSI trigger lines on PCI cards. The RTSI bus will allow allow synchronization between DAQ devices on the computer.
    Regards,
    Jordan G.
    Thanks you. I didn't realize that there are some pin on the top of the card. But then cause my doubts. I have a 6711 card. Many posts said that it only support softwared based clock, I cannot use the external or hardware clock to drive the digital output. Ok, so my question is, can I connect the external clock to the RTSI pin so as a hardware clock and use it to drive the analog ouput and counter output? The manual said I can use the external clock connected to the PFI or RTSI, so are they the same. It is so confusing since I don't see any example to do that on 6711 card and I don't know which PFI pin I should go to ?

  • Setting 6602 registers to latch encoder values on RTSI trigger

    Greetings,
    I am currently using the 6602, comedi driver, and  real time linux to read 6 quadrature encoders.  I would like to add some functionality to the comedi driver that would latch the encoder values from a RTSI trigger.  I have the register programming manual for the 6602; However, I am not quite sure how I should set up the registers for this task.  Any help would be greatly appreciated.
    Thanks,
    Greg

    Thanks Tom and David for your help.
    I have looked over the examples that Tom listed and I think I understand the necessary register settings.  Just in case I missed something I have includded an example configuration and read function for your review.  The configuration is a combination of gpct_ex7.cpp and gpct_ex8.cpp.  Also, am I correct in assuming that if using a RTSI signal to latch the encoder values that the encoder index can not be used to reset the counter?  It seems they would both need access to the gate.   Thanks again for your help,
    Greg
    // configuring 6602...
    void test(iBus *bus)
        tAddressSpace  cardSpace;
        tTIO *board;
        cardSpace = bus->createAddressSpace(kPCI_BAR1);
        board = new tTIO(cardSpace);
        //Reset
        board->G01_Joint_Reset_Register.writeG0_Reset(1);
        //Disarm
        board->G0_Command_Register.writeG0_Disarm(1);
        //load initial value of 0
        board->G0_Load_A_Registers.writeG0_Load_A(0x00000000);
        board->G0_Command_Register.writeG0_Load(1);
        //set the counting mode to quadrature encoding X4
        board->G0_Counting_Mode_Register.setG0_Encoder_Counting_Mode(3);
        //set source to the internal timebase (20 MHz)
        board->G0_Input_Select_Register.writeG0_Source_Select(0);
        //set gate to latch encoder value on rising edge of RTSI 0
        board->G0_Input_Select_Register.writeG0_Gate_Select(11);
        board->G0_Mode_Register.writeG0_Gate_Polarity(0);
        board->G0_Mode_Register.writeG0_Gating_Mode(2);
        board->G0_Mode_Register.writeG0_Trigger_Mode_For_Edge_Gate(3);
        //set counting direction to Gate IO connector
        board->G0_Command_Register.writeG0_Up_Down(2);
        //use the DMA registers as a two element FIFO
        //The TIO will alternate save locations between the HW save and SW
        //save registers.
        board->G0_DMA_Config_Register.writeG0_DMA_Enable(1);
        board->G0_DMA_Config_Register.writeG0_DMA_Int_Enable(1);
        //arm counter
        board->G0_Command_Register.writeG0_Arm(1);
    // reading the counter value would go something like this...
    void generic_read(tTIO *board)
        int HWsaveOrSWsave;
        //the DMA Read register tells us where the most recent sample was saved:
        // 1 for SW save register, 0 for the HW save register
        HWsaveOrSWsave = board->G0_DMA_Status_Register.readG0_DMA_Read_Register();
        if(HWsaveOrSWsave == 1)
            printf("SW Save Register is 0x%08lx\n",
                board->G0_Save_Registers.readRegister());
        else
            printf("HW Save Register is 0x%08lx\n",
                board->G0_HW_Save_Registers.readRegister());

  • System Wide RTSI Trigger - Multiple Instrument​s

    Hello,
    The application design requires a group of VIs whose job is to select a test point, look up what device and channel it is connected to, and then assign it as a trigger on the RTSI bus. The four instruments will then use this RTSI channel as a system wide trigger.
    For example, can a VI assign Channel 3 on Device 1 as a trigger on RTSI Channel 0; then a completely separate VI that contains the driver for Device 1 (and is responsible for data acquisition) utilizes RTSI 0 as it's trigger (the same trigger that it is supplying)? There are four instruments, and the trigger can be selected from any channel on any of these instruments.
    Or, does the trigger have to be set at the time of acquisition, t
    herefore, amidst initializing the driver?
    Thanks for your help!
    Mark Roberto
    MD Robotics

    Mark,
    Here is how you can setup were to look for triggers. When we set a DAQ board to trigger we use Trigger Config VI which can be found in the advanced pallettes for Analog Input, Analog Output, and Digital I/O.
    When we want to route the trigger setup in Trigger Config to the RTSI bus to make the signal available to other DAQ boards then we use Route Signal for E-series and Analog output boards or RTSI Connect for 653x boards.
    Regarding he question about assigning channel 3 on Device 1 as a trigger on the RTSI channel, this is not directly possible.
    The RTSI bus only takes digital signals and therefore you can not route an Analog signal on channel 3 to the RTSI bus. However you can setup Device 1 to trigger off an analog trigger (if the DAQ board supports Anal
    og Triggering) and then pass the digital trigger that is set over the RTSI bus.
    When you set up analog triggering you can only specify the first channel in your channel string as the analog trigger source. In this case you can not monitor 4 channels and trigger when either of the 4 channels reach a trigger condition. You can only monitor one channel for the trigger condition.

  • Simultaneous updation of sine wave using 2 PXI-6711 cards using RTSI Trigger

    Hi ,
    How to generate continuous sine wave using two pxi-6711 cards at same time without any phase shift using traditional nidaq functions.
    Regards,
    satya

    In LabVIEW, go to Help>>Find Examples. Navigate to Hardware Input and Output>>Traditional DAQ>>Multiple Device. There is an example there called "Two E Series Shared Scan Clock". That example is for analog input, but you should be able to modify it to be for analog output. Basically you will just have to share the scan clock from one board(master) and use it as an 'external' clock for the other board(slave).
    -Alan A.

  • RTSI cable configuration with PCIe 1433 card

    Hi All:
    I tried to trigger my line camera with RTSI signal.
    The layout is: trigerr signal  is generated from one PCI card 6259 (Dev2/ctr0). The line camera is connected with one PCIe 1433 card, and the two cards were connected with RTSI cable.
    The problem is that how to register or configure PCIe 1433 with RTSI cable in MAX, it seems I can only configure PCI card within RTSI cable ......
    If it is true, how should I do to rout the trigger signal to the camera, such as "route Dev2/ctr0 to Trigger line 0"?
    Below is printscreen of MAX Configuration. Attached is my VI.
    thanks a lot.
    Bob
    Attachments:
    Triggered with RTSI from DAQ.vi ‏63 KB
    camera configuration.jpg ‏218 KB

    Thanks a lot, the post helped.
    But I am still confused with the details:
    To camera and PCIe 1433 configruaration, as the attached pictures shows: RTSI is configurerd as Camera Control Line as number "2"; the exposure control of camera is defined as "triggered".
    In previous attached VI, you may find that the IMAQ configurer trigger is applied to define trigger  type as "RTSI", trigger number as "2".
    About ttrigger signal from PCI 6259 (Dev2), digital pulse is generated and output terminal is defined as ctr0 ( seems only ctr0 or ctr1 is option).
    So I still do not know how to route signal from "Dev2/ctr0" to "Imag0 CCL 2" in labview.
    By the way, I read  the online example "LL Triggered Ring using DAQmx Pulse Train", http://www.ni.com/example/29476/en/.  Within this VI,  the DAQmx Connect Terminals VI is applied to route the counter's output to a RTSI pin so the signal can be used by the IMAQ device. However Dev2/ctro is not recognized as scour terminal, only other items such as PFI, APFI or RTSI are avaible, and output signal source is also limited with similar things, sounds like just internal connectrion with Dev2.
    thanks a lot.

  • 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

  • How to generate sequence of pulse trains with DAQmx?

    I need to generate a sequence of pulse trains with DAQmx (the card I have is a PXI-6229 card). As an example:
    - 10'000 pulses at 20kHz every 5 seconds with an initial offset of 2 seconds (let's say 10 pulse trains in total).
    If I use the CreateVirtualChannel.vi in "CO pulse ticks" mode, I can only specificy offset, high ticks and low ticks, but not that the sequence of pulses should be repeated after some time. 
    Now I thought that I could solve this problem if it were possible to multiply two counter outputs: the first counter would generate the pulses (continuously) whereas the second one would switch between low and high on a slower timescale in order to gate the first counter, thereby providing an initial offset and the "off" phases between the pulse trains.
    Is it somehow possible to multiply two outputs with DAQmx and the card I have? Or is there another solution to the problem?
    Thanks a lot in advance for any hints!

    Hi dlanger,
    what you want to do requires a little bit more work. 
    First look at the example "Gen Dig Pulse Train-Continuous.vi" from the LV example finder.
    This example generates a continuous* pulse train. As you see, you need a sample clock VI for setting the sample mode. 
    * NOTE: Generating a finite pulse train with a M-series card requires 2 counter.
    With a pause trigger (DAQmx trigger property node) you can gate the output of that counter.
    Now you have to generate a gate-signal with the the 2nd counter. That means, only if  Ctr1-out is high Ctr0-out outputs the 20 kHz-signal. 
    Maybe you have to adjust the times in my example a bit. 
    Unfortunately there is just one "small" problem: "let's say 10 pulse trains in total" 
    This is not possible, because a 3rd counter would be necessary (*). 
    As a workaround you can modify the while-loop that both tasks are cleared after 50s. This is not brilliant, but should work fine for you. 
    A more sophisticated way is to perform a correlated DIO. So you can generate custom pattern for multiple outputs. 
    A good example can you find here: 
    Retrigger and Repeat Finite Digital Pulse Train in LabVIEW
    http://decibel.ni.com/content/docs/DOC-8473 
    or here:  
    Generating More Than 2 Pulse Trains Using CompactDAQ
    http://decibel.ni.com/content/docs/DOC-2167 
    Hope this helps.
    With best wishes,
    Ralf N. 
    Attachments:
    Gen Gated Dig Pulse Train-Continuous.vi ‏38 KB

  • CAN input buffer overflow due to RTSI frame?

    Hello,
    I'm reading a continuous stream of CAN-messages with a CAN-Object. I'm creating occurences and reading multiple samples in a while loop.
    A second (asynchronuous) task generates a RTSI trigger at specified intervals. I use this trigger to write a RTSI fram to the CAN buffer. However, I get buffer overrun errors frequently. I've set the read queue to 100 and I read 20 frames each time (on occurrence). I only seem to get these overrun errors when using RTSI!
    Does someone know what my problem might be?
    Thanks a lot!

    Hi Koektrommel
    If “…and generating a RSTI time stamp every 1 ms” means that you have a 1 kHz signal on the RTSI port and you want to timestamp this, then it could be very tight. Every RTSI pulse generates an interrupt on the CAN card that the processor needs to execute in addition to the interrupts coming from the CAN controller and the communication with the Windows OS.
    Two things I can think of, that potentially could make things a little faster:
    Do not use any CAN Objects. Due to their own queues, the CPU needs more processing time to handle to additional queues compared to just using the Network Interface Object.
    Use the CAN controllers filters to filter out as many (unwanted) frames as possible. If you have a Series 1 card, you would use the regular Mask/Comparator settings for ncConfig, for Series 2 hardware you need to use the Series 2 specific filter attributes.
    -B2k

  • Need advise for processing DAQmx waveform array

    Hello All,
    I am using following code to continuously acquire data from 2 channels, then export to a text file for analysis with Execel or Origin. The data file should contain four columns:
    t1   Y1    t2   Y2
    I know it is convenient to use Write Measurement File express VI, but since this express VI open and close file in each loop execution, I prefer to use low-level File I/O functions to save computer resources (I need to reserve resources for image acquisition and analyses).
    The following attached VI just show the overall frame of the code, but is not executable now. I hope to get some suggestions from this forum to finish it.
    Here, I have two main questions, thank you in advance if you can provide hints to any of them.
    (1) How to get correct t0 and dt values for the waveform data
     I am using 25Hz pulse signal to externally trigger DAQmx  through PFI0.  I set 100Hz for the rate input of the DAQmx timing VI  since  LabVIEW help  says "If you use an external source for the Sample Clock, set this input to the
    maximum expected rate of that clock. " .
     When I use Write Measurement File express VI,  I found in the resulting text file, the dt is 0.01 instead of 0.04, i.e., the value of dt in the waveform data is not determined by external PFI0 signal, but by the rate input for the DAQmx timing VI.  Also, I found t0 does not always start from  zero.  However, from the display of data plot, I am sure the acquisition is at 25Hz.
    Some people in this forum ever told me to use Get Waveform Component and Build waveform functions to manually rebuild the waveform data in order to get correct t0 and dt. I tried and no luck to succeed.  Anyone can give me more detailed hints?
    (2) How to write data of 'NChan NSample' at one time in a loop
    I have two channel DAQmx, and for each channel there are several data points.  I plan to use following method to export data:
    Suppose in one loop DAQmx Read VI read 10 samples from each channel, so I assume I will get four arrays of 10 elements:
    t_channel_1, Y_channel_1, t_channel_2, Y_channel_2.
    Then I use a loop structure of N=10 to concatenate t1, tab,Y1,tab, t2,tab, Y2,return in 'element by element' mode, i.e., do 10 times of string concatenate and write to text file.
    I don't know whether above method is effective. Anyone can advise a better one?
    (3) Convert from timestamp to elapsed time in milisecond
    In the final text file, the time column should be the values of elapsed time in milisecond since the start of acquisition. So, I think I need to get the timestamp of the first data point so that for later data points I can use Elapsed Time express VI  to extract elapsed time in milisecond. However, I don't know how to get the timestamp at the starting of acquisition. Please advise if you know it.
    Sincerely,
    Dejun
    Message Edited by Dejun on 08-30-2007 10:34 AM
    Attachments:
    code.jpg ‏86 KB
    code.vi ‏49 KB

    tbob wrote:
    Ravens Fan:
    Read his post again:
    "I am using 25Hz pulse signal to externally trigger DAQmx  through PFI0.  I set 100Hz for the rate input of the DAQmx timing VI  since  LabVIEW help  says "If you use an external source for the Sample Clock, set this input to the maximum expected rate of that clock. " .
     When I use Write Measurement File express VI,  I found in the resulting text file, the dt is 0.01 instead of 0.04, i.e., the value of dt in the waveform data is not determined by external PFI0 signal, but by the rate input for the DAQmx timing VI.  Also, I found t0 does not always start from  zero.  However, from the display of data plot, I am sure the acquisition is at 25Hz."
    He says in the 1st paragraph that he sets theDAQmx timing to 100Hz because that is his maximum expected clock rate.  In the 2nd paragraph he says that in his measurement file dt is 0.01 instead of 0.04.  This indicates that the dt value is determined by the DAQmx timing rate, not the PFI0 clock rate.  I am thinking that he should set the DAQmx timing to match the PFI0 timing, 25Hz.
    Maybe this would work.
    You're right, I did misread what he said. But, I still have questions about what he said.  " I set 100Hz for the rate input of the DAQmx timing VI  ".  The code shows a rate input of 25 to the timing VI.  And nowhere else do I see a setting of 100Hz.  I ran his code (used a simulated device) and put an indicator on the to dt's in the clusters.  The came up as .04 which is what i would expect.  It is hard to comment what is going on in the file since there is nothing being send to the write text file VI.
    Message Edited by Ravens Fan on 08-31-2007 12:18 PM

  • Daqmx read.vi timestamp incorrect problem (storing the timestamp from start task)

    Hello,
    I have a state machine with 1st state: configure DAQ where i have [daqmx create channel.vi --> daqmx timing sample clock--> DAQmx start trigger--> daqmx start trigger] connected in order
    sample clock in continuous mode, 10000 samples to read and sample rate 1000 Hz ,
    start trigger has rising edge selected with a dev1/PFI0 from a daq board.
    next state of SM is read channels which has daqmx read.vi set to 1d waveform  Nchan Nsamp.
    and the program first configures and goes to read channels state and is just waiting for the true value on PFI0,
    but the time stamp is not updated to current time/ when daqmx read starts instead it is getting the initial t0 from the time when it was in configure DAQ state of my SM in other words it stores the starting time when strart task.vi was run and then updates from then on.
    so in effect i am not getting the exact time stamp values while i am running the vi.
    i tried to build waveform by inputting the actual current time but the chart doesnot scroll and shows only few values each reading, when i tried to input the t0 from the waveform given out by read daqmx. vi, it then behaves normally..
    option #1 from this link says
    http://forums.ni.com/ni/board/message?board.id=250&thread.id=47648&view=by_date_ascending&page=2
    Try and do exactly what the driver does.  This
    will require you to do exactly what you are doing in the posted
    example.  Call the current system time immediately prior to calling the
    DAQmx Read and subtract dt * x where x is the number of samples already
    acquired.  This will require you to know exactly how many samples have
    been acquired.  This can be found by calling the Total Samples Per
    Channel Acquired property immediately prior to the DAQmx Read.  This
    introduces some points of innaccuracy.  For example, you're system time
    is already innaccurate to some amount.  In addition, it takes some time
    between calling system time, calling the total samples acquired, and
    calling the DAQmx read.  If 2 samples are acquired between calling the
    system time and total samples acquired, you could be off by a few
    samples.  For slower clock rates, you will have more accuracy. 
    but there are no samples that are acquired until the rising edge, so the number of samples is always zero before the read operation
    http://digital.ni.com/public.nsf/allkb/5D42CCB17A70A06686256DBA007C5EEA 
    this link says that
    and the number of samples in my waveform is constantly changing around 20-40, so i cannot really input the current time to build the waveform, thats what i can figure out for now..
    can somebody tell me why this is happening or is there any fix around this, how to get the current time into my daqmx read.viso it displays the currect time on my waveform chart
    Thanks,

    thanks,
    im using LV 8.6, daqmx driver 8.9.5.
    yes the program u posted get the currect time. but see attached program thats what i have in my program exactly
    if you took out the time to using the get waveform components using the waveform  from daqmx read. i still have the timestamp as the application start time. plz see attached code 8.2v and FP
    the waveform time x axis is not current, it is starting from the application start time.
    PS: samples to read = 10,000 and sample rate = 1000
    plz help..
    Attachments:
    daqmx read problemp.png ‏8 KB
    daqmx read problem.vi ‏36 KB

  • Using RTSI on the PCI-7811R FPGA

    I have created a FPGA vi that outputs a certain signal that I want to go out a DIO and the RTSI.  It goes out the DIO ok.  But there seems to be nothing going out the RTSI line.  I've added the RTSI resourse to the project, and all I do in the FPGA VI is configure the RTSI as Write, and then simply run a boolean value into it, just like I do with the DIO.
    What are the exact steps I need to take to configure the RTSI trigger to be outputed?  Do I need to go through Measurement and Automation explorer and configure the RTSI cable somehow?  I saw something about this in the Help, but was a little unsure exactly what to do. 
    Thanks for your help,
    Rick

    Hi Zbsbdjhd,
    You have to first define the RTSI line as an input or output depending on what you are trying to do. If you want to output a signal or value, set it to output using the Set Output Enable Method. You can then use an I/O node to write data to the line.
    Out of curiosity, what card are you using?
    Eli S.
    National Instruments
    Applications Engineer

  • Check RTSI functionality?

    Being new to Labview and data acquisition, I've changed a simple RTSI example VI for 2 E-series boards. I cannot see any difference in VI execution if I wire the RTSI triggering to the second device (AI start) or not.How can I be certain that device 2 is really triggered by RTSI0?
    Current setup is as follows:
    1) AI config board #1
    2) Route signal to as
    3) AI config board #2
    4) AI start board #2, trigger type Digital A, Analog channel&Level:
    5) AI start board #1
    As mentioned, I see no difference if step 4) gets triggering or not. So, how can I verificy RTSI functionality and confirm signal reception over RTSI?

    The example I downloaded did not terminate the RTSI connections by routing the RTSI line used to after VI completion (Another example had both master and slave board waiting for a digital trigger leading to time outs, leading to cross-wired example confusion). Apparently RTSI connections remain open until the boards are reset, feeding the module a trigger on all RTSI lines I had tried to call today (and yesterday...).
    Now I can determine RTSI trigger reception per channel by verifying a time out in . If a time out occurs, no trigger has been received.
    I'm sure it's written somewhere, but it should be clearer in the RTSI help file that lines must be closed upon VI completion!

Maybe you are looking for

  • ITunes on iphone/ipod -- Artists no longer in Alphabetical Order(!)

    Help! I recently updated my itunes library on both my iphone and my ipad.  I used seperate itunes libraries (hosted on the same Windows computer) in order to have  a larger "master" library on my ipad since it has more memory.  I did this via using t

  • Slow moving stock

    Hi Guys, I am wondering if there is any standard report or a table in SAP to look for 'Slow moving stock' ? I am trying to find out the usage/consumption of particular materials or when they are last moved? Thanks for your suggestions, Regards, Kelly

  • HT6446 My Health Data is showing my total steps for Daily average....

    specs: Using Apple Health App, with the Withings Health Mate and My Fitness Pal as the only 2 sources. Using an iPhone 5s with  26.7 GB capacity 4.2 GB available Model Number NE299LL/A OS Version 8.1 (12B411) I Updated all my Apps. I have gone into t

  • Custom sort disabled

    hi i have created a report with 3 queries, where i had month object in it and that one is unsorted, so i have used custom sort option for sorting the month from JAN to DEC while adding first query. when i started to add the second and third query, th

  • Can not get my notebook to go wireless - CODE 22

    I am trying to get my comp to go wireless but when I try this it shows the pro/wireless connection as being disabled. It also says when I try to enable it "The device is disabled Code 22". In the box below this with the heading "Device useage", it sa