Labviewcode wanted to count pulses from analog input

Can somebody help me with the following problem?
I don't have a Data Aquisition board so I use my steppermotor controller, the MID-7604, and it's analog input to read from a
sensor (photointerrupter) which outputs 0 or +5 Volts. I want to count how many times an output of 5 Volts appears.
The problem is that the signal is not a Waveform, so  the Daq functions in Labview won't work. I've tried to generate a waveform
from the signal but also no results.
What I have created now is a counter which counts every signal above an adjusted value. The problem is that it counts on and on
when the signal is above the value, I want it to count one time. (like a trigger which detect a low to high level signal)
In the attachment you see that program and an other I've found (event counter) doing what I want, but I haven't been able to transform it in to
my own problem. Please help me on this because I'm stuck right now.
Thanks in advance
Message Edited by Trabuca on 07-04-2005 02:56 AM
Attachments:
monitor ain pulses with display.vi ‏31 KB
Event_Counter.vi ‏39 KB

Hi,
there are some ways - one is using a shift-register.
Attached is a flank detector - each time "Boolean" changes from 0 to 1 or 1 to 0 the count is increased by one.
I hope that helps
Greez
Stefan
Message Edited by mycroft on 07-05-2005 06:41 AM
Message Edited by mycroft on 07-05-2005 06:41 AM
Attachments:
Change detector_LV.GIF ‏9 KB

Similar Messages

  • How to get signal from analog input and send it to analog output (real-time​)

    Hi everyone,
    I am doing simple task in Visual C++ and I am using PCI-6221(37 pin).
    Basically, I want to send same signal from 'analog input' to 'analog output'
    at the same time (almost), to make it real-time application.
    Can someone please provide me sample program. 
    I would appreciate if you could provide me with the good tutorial which explains
    step by step everything about programing NI-DAQmx for C/C++.
    Best Regards,
    Khassan
    Solved!
    Go to Solution.

    This is my code in C++, you can optimize it if it looks too messy. This code reads signal from analog input and outputs it through analog output. 
    To make this code work additional  include directories and library directories must be added from NI.
    I hope it helps someone.
    #include <stdio.h>
    #include <conio.h>
    #include "NIDAQmx.h"
    #include <math.h>
    #define DAQmxErrChk(functionCall) { if( DAQmxFailed(error=(functionCall)) ) { goto Error; } }
    int main(int argc, char *argv[])
    int32 error=0;
    TaskHandle taskHandleRead=0,taskHandleWrite=0;
    int32 read=0;
    float64 dataRead[1000];
    char errBuffRead[2048]={'\0'};
    char errBuffWrite[2048]={'\0'};
    bool32 done=0;
    int32 written;
    DAQmxErrChk (DAQmxCreateTask("",&taskHandleRead));
    DAQmxErrChk (DAQmxCreateAIVoltageChan(taskHandleRead,"Dev1/ai0​","",DAQmx_Val_Cfg_Default,-10.0,10.0,DAQmx_Val_Vo​lts,NULL));
    DAQmxErrChk (DAQmxCfgSampClkTiming(taskHandleRead,"",100.0,DAQ​mx_Val_Rising,DAQmx_Val_ContSamps,0));
    DAQmxErrChk (DAQmxCreateTask("",&taskHandleWrite));
    DAQmxErrChk (DAQmxCreateAOVoltageChan(taskHandleWrite,"Dev1/ao​0","",-10.0,10.0,DAQmx_Val_Volts,NULL));
    DAQmxErrChk (DAQmxCfgSampClkTiming(taskHandleWrite,"ai/SampleC​lock",100.0,DAQmx_Val_Rising,DAQmx_Val_ContSamps,1​000));
    DAQmxErrChk (DAQmxStartTask(taskHandleRead));
    DAQmxErrChk (DAQmxStartTask(taskHandleWrite));
    while( !done && !_kbhit() )
    DAQmxErrChk (DAQmxReadAnalogF64(taskHandleRead,1,10,DAQmx_Val_​GroupByScanNumber,dataRead,1000,&read,NULL));
    DAQmxErrChk (DAQmxWriteAnalogF64(taskHandleWrite,read,0,10.0,D​AQmx_Val_GroupByChannel,dataRead,&written,NULL));
    _getch();
    Error:
    if( DAQmxFailed(error) )
    DAQmxGetExtendedErrorInfo(errBuffRead,2048);
    DAQmxGetExtendedErrorInfo(errBuffWrite,2048);
    if( taskHandleRead!=0 )
    DAQmxStopTask(taskHandleRead);
    DAQmxClearTask(taskHandleRead);
    if( taskHandleWrite!=0 )
    DAQmxStopTask(taskHandleWrite);
    DAQmxClearTask(taskHandleWrite);
    if( DAQmxFailed(error) ){
    printf("DAQmx Error: %s\n",errBuffRead);
    printf("DAQmx Error: %s\n",errBuffWrite);
    printf("End of program, press Enter key to quit\n");
    getchar();
    return 0;

  • How to read data from analog input and export it to a file using Components Works

    I've made a simple application (Delphi 5 using the activeX) that read data from analog input channel 0. After I read the data, I want to export it to a file using the Components Works on a 6035E NIDAQ. (I'm not using labview and don't want to use it)
    How can I do that???
    Regards,
    Francis

    Here's a sample code to do this...
    P.S.: If you read only one channel this code won't work.
    function MyFunction: Integer;
    var
    Low, High, i, j, ChannelCount, RowCount: Integer;
    Po: P;
    begin
    //you are reading multiple channel
    ChannelCount := VarArrayHighBound(Buffer, 1);
    RowCount := VarArrayHighBound(Buffer, 2);
    for i := 0 to ChannelCount do begin
    for j := 0 to RowCount do begin
    WriteToDisk(Buffer[i, j]));
    end;
    end;
    end;

  • [newbie] Video import from analog input

    Hi all,
    Is there some device where we can import at higher resolution from analog input?
    http://www.elgato.com/video/video-capture
    Video Capture | elgato.com
    Info: Video resolution: 640×480 (4:3) or 640×360 (16:9)
    Video format Mac Software: H.264 at 1.4 MBit/sec or MPEG-4 at 2.4 MBit/se
    and this is old firewire and s-video.... what about usb 3.0?
    http://www.grassvalley.com/products/advc110

    What higher resolution analogue format are you referring to?
    Russ

  • Counting pulses from an encoder 0-7,5 V

    This is my VI and my signal measurement:
    [IMG]http://i.imgur.com/mfttanz.png[/IMG]
    How can I count the pulses from the encoder with this VI? I want to count it like in this VI:
    [IMG]http://i.imgur.com/xRzz0Lr.jpg[/IMG]
    So that I can measure the angle of a motor-driven frame using a 24 VDc motor.

    You will need some external hardware to clean the signal. The best might be to connect the signal to a comparator with some hysteresis and an output voltage compatible with your counter, typically 0 - 5 V, although some counters only accept 3.3 V.
    The signal you showed in the image on the first post in this thread should NOT be connected to a logic level counter. both the low and high voltages are outside the acceptable range for TTL compatible logic devices and coude damage the counter.
    I just looked at your VI and see that you are using an analog input. That should be fine for digitzing the signal.
    1. I recommend that you switch to a Producer/Consumer architecture for your program. Do the data acquisition in one loop (the Producer) and the calculations and analysis in the other loop (the Consumer). This will let you run the acquisition loop fast enough that you never  miss any pulses.
    2. Your signal is probably clean enough to use a simple comparison to a 2 or 3 V threshold. Then you can count those logical transitions. If you sometimes have more noise than shown in the image you could add some hysteresis to the comparisons or you might need a more sophisticated algoroithm to eliminate spurious counts.
    3. Do you have some means of determining when to start and stop the counting?
    Lynn

  • Please help with C code to synchronize counter output to analog input

    Hi All,
    I am using NI DAQ USB-6353 with text-based C code to control it. I would like to send a continuous pulse train from the DAQ to pulse a power supply, which then activates an electron beam producing current to be read by the analog input port of the same DAQ. I would like to keep only the analog samples during the pulse peak and samples of a couple pulse widths right after. I am successfully to generate a pulse train using the sampled clock from a counter output channel, but fail to use the same clock to synchronize the pulse train with the analog input. DAQmxReadAnalogF64 is not called by the static function EveryNCallback set for the analog input task. Am I doing something wrong with the following codes? It would be great if it turns out only I am using the wrong sampled clock name of the counter ("dev1/PFI8") for the analog input. Or is something more fundamental that a counter cannot be sync. with an analog input?
    Would someone be able to send me a link to an example in C or C++ or visual basic showing how to synchronize a buffered sample clocked digital pulse train from a counter output channel to an analog input? To simplify the post, the below codes do not include the static functions EveryNCallback and DoneCallBack, but I can send them if needed.
    Many thanks in advance for your help,
    Thuc Bui
    //setting operation parameters
    double initDelay = 0.0, freq = 10;
    double dutyCycle = 0.0001;           //thus pulse width is 10 microsec
    unsigned highTicks = 4;   //per period
    unsigned numSamplesPerPeriod = highTicks / dutyCycle;   //40000 samples/period
    unsigned lowTicks = numSamplesPerPeriod - highTicks;      //per period
    unsigned sampleRate = 2*numSamplesPerPeriod*freq;       //800000 samples/s
    //create counter
    TaskHandle counterTask;
    int errCode = DAQmxCreateTask("", & counterTask);
    errCode = DAQmxCreateCOPulseChanFreq(counterTask, "dev1/ctr0", "",
                                     DAQmx_Val_Hz, DAQmx_Val_Low,
                                     initDelay, freq, dutyCycle);
    errCode = DAQmxCfgSampClkTiming(counterTask, "dev1/PFI8", sampleRate, DAQmx_Val_Rising,
                               DAQmx_Val_ContSamp, numSamplesPerPeriod);
    //create analog input
    TaskHandle aiTask;
    double minVolt = 0.0, maxVolt = 1.0;
    errCode = DAQmxCreateAIVoltageChan(aiTask, "dev1/ai0", "", DAQmx_Val_Diff,
                                     minVolt, maxVolt, DAQmx_Val_Volts, "");
    unsigned bufferSize = 10* numSamplesPerPeriod;
    errCode = DAQmxSetBufInputBufSize(aiTask, bufferSize);
    errCode = DAQmxCfgSampClkTiming(aiTask, "dev1/PFI8", sampleRate, DAQmx_Val_Rising, DAQmx_Val_ContSamp, numSamplesPerPeriod);
    errCode = DAQmxRegisterEveryNSamplesEvent(aiTask, DAQmx_Val_Acquired_Into_Buffer,
                                            numSamplesPerPeriod, 0, EveryNCallback, 0);
    errCode = DAQmxRegisterDoneEvent(aiTask, 0, DoneCallBack, 0)
    //start aiTask first
    errCode = DAQmxStartTask(aiTask);
    //then counterTask
    errCode = DAQmxStartTask(counterTask);

    Hi Xavier,
    Thank you very much for getting back to me. I really appreciate it. I followed your advice with the option 2 and simplified my code by using one of the NI C example templates to generate the below codes (also attached). I was able to see the pulses generated with an oscilloscope, and on the same oscilloscope I could see the ouput pulses of the electron beam probe. Unfortunately, the below code via DAQmxReadAnalogF64 reports of no data read from the probe and finally times out. Below is the error message given by this function. I did check the connection of the analog input wires to make sure they were connected to pin 1 (A0+) and 2 (A0-) because I was using the terminal configuration DAQmx_Val_Diff. Do you see any obvious errors I have made in my codes?
    Thanks a lot for your help,
    Thuc Bui
    Task started, waiting for trigger...
    Acquired 0 analog samples DAQmx Error: Some or all of the samples requested have not yet been acquired.
    To wait for the samples to become available use a longer read timeout or read later in your program. To make the samples available sooner, increase the sample rate. If your task uses a start trigger,  make sure that your start trigger is configured correctly. It is also possible that you configured the task for external timing, and no clock was supplied. If this is the case, supply an external clock.
    Property: DAQmx_Read_RelativeTo
    Corresponding Value: DAQmx_Val_CurrReadPos
    Property: DAQmx_Read_Offset
    Corresponding Value: 0
    Task Name: _unnamedTask<1>
    Status Code: -200284
    End of program, press Enter key to quit
    ********************** C Code **************************************************
    #include <stdio.h>
    #include "NIDAQmx.h"
    #include <math.h>
    #define DAQmxErrChk(functionCall) { if( DAQmxFailed(error=(functionCall)) ) { goto Error; } }
    int main(void) {  
    int32 error = 0;  
    char errBuff[2048]={'\0'};
    TaskHandle  taskHandleDig=0;  
    TaskHandle taskHandleAna=0;    
    double  timeout=10;  
    double minVol = -1.0, maxVol = 1.0;
    double initDelay = 0.0;  
    double freq = 10.0;  
    double pulseWidth = 1.0e-5; //10us  
    double dutyCycle = pulseWidth * freq;
    unsigned hiTicks = 4;  
    double sampleRate = hiTicks/pulseWidth; //samples/s  
    unsigned lowTicks = ceil(sampleRate/freq) - hiTicks;  
    unsigned nSpPeriod = hiTicks + lowTicks;
    unsigned numPulses = 1;  
    unsigned nSpCh = numPulses*nSpPeriod;    
    double sampleRate2 = ceil(2.0*sampleRate);  
    unsigned sampleMode = DAQmx_Val_FiniteSamps;
     /*********************************************/  /*/ DAQmx Configure Code  /*********************************************/  
    DAQmxErrChk(DAQmxCreateTask("", &taskHandleDig));  DAQmxErrChk(DAQmxCreateTask("", &taskHandleAna));    
    DAQmxErrChk(DAQmxCreateAIVoltageChan(taskHandleAna, "Dev2/ai0", "", DAQmx_Val_Diff, minVol, maxVol, DAQmx_Val_Volts, ""));  
    DAQmxErrChk(DAQmxCfgSampClkTiming(taskHandleAna, "/Dev2/Ctr0InternalOutput", sampleRate2, DAQmx_Val_Rising, sampleMode, nSpCh));
    DAQmxErrChk(DAQmxCreateCOPulseChanFreq(taskHandleDig, "Dev2/ctr0", "", DAQmx_Val_Hz, DAQmx_Val_Low, initDelay, freq, dutyCycle));  
    DAQmxErrChk(DAQmxCfgSampClkTiming(taskHandleDig, "/Dev2/PFI12", sampleRate2, DAQmx_Val_Rising, sampleMode, nSpCh));    
    unsigned bufferSize = nSpCh;  
    DAQmxErrChk(DAQmxSetBufInputBufSize(taskHandleAna, bufferSize));  
    DAQmxErrChk(DAQmxSetBufOutputBufSize(taskHandleDig, bufferSize));
    /*********************************************/  /*/ DAQmx Write Code  /*********************************************/  
    DAQmxErrChk(DAQmxWriteCtrTicksScalar(taskHandleDig, 0, timeout, hiTicks, lowTicks, NULL));
    /*********************************************/  /*/ DAQmx Start Code  /*********************************************/  
    DAQmxErrChk(DAQmxStartTask(taskHandleAna));  DAQmxErrChk(DAQmxStartTask(taskHandleDig));
    printf("Task started, waiting for trigger...\n");
    /*********************************************/  /*/ DAQmx Read Code  /*********************************************/  
    double* dataAna = new double[nSpCh];  
    int32 numReadAna = 0;  
    int errCode = DAQmxReadAnalogF64(taskHandleAna, -1, timeout, DAQmx_Val_GroupByChannel, dataAna, nSpCh, &numReadAna, NULL);  
    printf("Acquired %d analog samples\n",numReadAna);  
    if (numReadAna) {   
        unsigned nPts = (numReadAna < hiTicks)? numReadAna : hiTicks;  
        for (unsigned n = 0; n < nPts; ++n) {    
             printf("%6.3f ", dataAna[n]);   
        printf("\n");  
    delete [] dataAna;
    DAQmxErrChk(errCode);
    Error:  
    if( DAQmxFailed(error) )   DAQmxGetExtendedErrorInfo(errBuff,2048);  
    if( taskHandleDig!=0 && taskHandleAna!=0 ) {   
    /*********************************************/   /*/ DAQmx Stop Code   /*********************************************/   
        DAQmxStopTask(taskHandleDig);   
        DAQmxClearTask(taskHandleDig);   
        DAQmxStopTask(taskHandleAna);   
        DAQmxClearTask(taskHandleAna);  
    if( DAQmxFailed(error) )   printf("DAQmx Error: %s\n",errBuff);  
    printf("End of program, press Enter key to quit\n");  
    getchar();  
    return 0;
    Attachments:
    Correlated DIO AI_Sample_Clock Dig Start.c ‏6 KB

  • DC pulse output analog input

    I am using a 6221 PCI DAQ card and attempting to put out a DC level for a several different times.  During the output of each DC level I need to sample two DC inputs via the analog input.  Most of my DC levels last for 100s of seconds each and a sample rate of 1S/s on the analog inputs is OK.
    My problem arises when I attempt to place a 30ms pulse into the analog output.  During this 30ms I need to increase the data rate of the analog input.
    I have attempted to use a while loop to control the time between changes but can not get the sampling rates correct to allow for the correct number of samples.
    On suggestion has been to take all data at a fast rate.  The test will last in excess of 3000 seconds and I get way too much data at a fast rate.
    I need to be able to change data rates on the fly as I change the DC levels.
    Does any one have any ideas?
    Thanks,

    John@Saft wrote:
    I know when the pulse is to arrive before it happens.  I have an array of data including voltage outputs, duration of output, and what data rate to sample at.
    My problem is insuring the sampling starts before the pulse arrives and continues for the duration of the pulse.
    One way I'm sure can work uses "Continuous Acquisition.  "See: "Cont Acq&Graph Voltage-Analog SW Trigger.vi" example.
    If the DAQ-rate is known before leading-edge of pulse, then, start the Acquisition at whatever frequency's needed, making the input buffer bigger than required, then when the end-of-pulse arrives, reach-into the input buffer and pull-out the "pulse".  With a little work you may find an example that uses a "stop-trigger"
    There may be a "slick" way to do this without "Continuous Acquisition" using a parameter called "Pre-trigger" scans.  My first LV project (circa- 1990) used this, and I've done it with at least one "E"-series board, but not yet under DAQ-MX - and couldn't find an example with Internal clock, External Trigger.
    Cheers! 
    "Inside every large program is a small program struggling to get out." (attributed to Tony Hoare)

  • How to trigger from analog input channel

    I am using a BNC-2110 into a 6062E card. And I am sure this question has been posted several times but I was unable to find a clear answer. I am trying to use the devices ai0 channel as my trigger source. I tried using a voltage source in the trigger reference, and that almost works but it only works for several loops before coming up with an error. If someone knows what I may be possiblely doing wrong or where to find this information, any assistance would be great.
    - there is always an easy way, but it is always the hardest to find

    Hey Henry,
    The BNC-2110 is just the connector block. What card do you have the is interfacing this block with your computer? (should be a PCI or PCI-express card). Are the GPS receivers outputting digital signals that conform to TTL compatible logic levels (are the signals 5V or 0V with no more than 1.6mA of current)? If they are outputting a digital signal, then you can send these signals into any of the PFI lines to act as a trigger (or to the trigger lines). 
    For example, if you would like to perform an analog acquisition each time the trigger hits and have an X series card, you can open up example finder (help»find examples...) and then open Hardware Input and Output»DAQmx»Analog Measurements»Voltage»Cont Acq&Graph Voltage-Int Clk-Retriggerable.vi. Then make sure your Trigger Source parameter is set to the same PFI line that you are sending your GPS signal to (on the BNC-2110, the trigger connections are really just PFI0 and PFI12, but these are common lines to use for triggers, but any PFI line will work). If you have an M series card, and cannot do retriggerable analog input, you can reference this example for how to use counters to workaround this limitation of our M series cards: https://decibel.ni.com/content/docs/DOC-6801
    If your GPS signal isn't digital, and is some arbitrary analog square wave, you can use an example like this: https://decibel.ni.com/content/docs/DOC-4657 to use the analog value to trigger you're reading (you just need to set the appropriate window for your analog signal in the VI).  I hope this helps!
    -Nathan H
    Software Developer
    National Instruments

  • BPM from analog input

    Hi
    We're currently working on a project and we got some issues finding the BPM when we connect the system to a NI USB-6009 for input.
    The system works fine when we're simulating our signal, but the physical signal from a function generator connected through to the NI USB-6009 doesn't seem to work properly.
    We've attached a little part of our system which describes this.
    We appreciate any help you can give us.
    Attachments:
    NI BPM.vi ‏97 KB

    BPM?  Beats per minute?  I haven't had an opportunity to look at your code, but will say that there is frequently (pardon the pun) a world of difference between passing a simulated signal into a program and what it might actually see when hooked to hardware. Look at the signal using the National Instruments Measurement & Automation explorer (MAX) that installed with your hardware/LabVIEW. It should allow you to see what is coming in and then you can compare it with the "theoretical" signal your simulation generated to see how they differ.
    Putnam
    Certified LabVIEW Developer
    Senior Test Engineer
    Currently using LV 6.1-LabVIEW 2012, RT8.5
    LabVIEW Champion

  • How to count pulses from 2encoders using 6014e

    i need to count the output of 2 encoders simultaneously using 6014E. i dont worry about the direction and i just need the total count.

    nnio,
    Connect phase A of the Quadrature Encoder to the SOURCE of the counter to be used and connect phase B to the corresponding DIO up/down line (DIO 6 if phase A is connected to the source of counter 0, or DIO 7 if phase A is connected to the source of counter 1).
    With this method you can connect phase A and B of your first encoder to counter 0 and phase A and B of your second encoder to counter 1.
    How Do I Use a Quadrature Encoder with My Data Acquisition Board?
    http://digital.ni.com/public.nsf/websearch/C6C6632A54DBA7DD86256275005E18E2?OpenDocument
    Quadrature Encoder with DAQ STC (E-Series Boards)
    http://sine.ni.com/apps/we/niepd_web_display.DISPLAY_EPD4?p_guid=B45EACE3E9AD56A4E034080020E74861&p_node=DZ52326&p_submitted=N&p_rank=&p_answer
    =&p_source=External
    Regards,
    Justin Britten
    Applications Engineer
    National Instruments

  • Synchroniz​e hardware timed buffered counter acquisitio​n with buffered analog input acquisitio​n

    LV7.1
    DAQmx
    PCI-6036E
    SC-2345
    Windows 2000
    Greetings.
    I am simply trying to synchronize AI readings with readings from one Counter.
    I am trying to perform buffered analog input synchronized with buffered counter acquisition.
    I'd like the AI acquistion to trigger the Counter acquistion.
    I'm currently setting the Sample Clock Source for the CI Cnt Edges Task to "Dev1/ai/SampleClock" but when I try and set the source for the "DAQmx Trigger" I can't seem to select one that works. I assumed that the source should be the "Dev1/ai/StartTrigger" but that produces and error as does selecting any of the PFI's.
    I'm new to DAQmx and didn't have any luck with the examples or what's been previously posted.
    Thanks for your help.
    Attachments:
    Initialization.jpg ‏84 KB

    Gentlemen-
    All of your initial help was great. I had some noise on my counter lines so switched from an E-Series card to a PCI-6259 M-series card in order to use the counter digital filters.
    Now I can't get a corellated buffered counter and buffered analog input acquistion to work. This same code worked fine on an E-series card but it doesn't on the M-series.
    I verified that the source and gate of the counter are working properly using the test panel and a external function generator.
    But when I run the attached code I get no data out of the "Counter 1D U32 NSamples", only an error saying that the timeout of the function was reached and no count data became available. Am I missing the specification of a another clock or something?
    The counters also work fine using the M-series example code "Count Digital Events (M-Series DAQmx) but this is not a buffered acquisition.
    Any help would be greatly appreciated.
    Steve
    Attachments:
    Sample_Code.jpg ‏136 KB

  • Triggered and continuous analog input togeather?

    Hi,
    I have a program set up based off a shipped LV example involving digital triggering of the analog inputs. It looks at a pulse and reads in ten points from the rising edge continuously. It appears that we are missing some pulse triggers and only reading in 126 triggers/sec instead of 128. We double checked the pulse and the frequency is correct (128Hz) so it seems as if the LV program is missing some of the pulses. Therefore, I want to use another analog input channel on the same 6062E daq card to continuously read in the waveform and see which pulses are being skipped. Is this possible?

    Lisa,
    I don't believe the E-series architecture will allow triggered and continuous analog input operations to occur in parallel. It is possible to set up different gains/input ranges but I'm 95% sure that the functionality that you are after isn't there.
    If you are looking to keep track of the number of pulse seen by your application you could consider the use of a counter to count the number of rising edges seen by the NI 6062E - basically daisy chain the pulse train to the trigger input and the GP_CTR Source pin of the counter you wish to use. There are a number of examples around that should help with this. Running the counter and analog input operations in parallel shouldn't be a big problem - it might be that you would want to set up a buffered event co
    unt operation for the counter as this will allow you to track and monitor every single trigger event seen by the counter while your analog input operations continue in parallel.
    The other aspect to consider is benchmarking your application with the Profiler. If the problem is that you consistently only see 126 triggers/second, perhaps your acquisition loop is not running fast enough to cope with the data. This can be especially true if any data processing or file storage is taking place inside the acquisition loop. The Profiler will allow you spot bottlenecks and get a better understanding as to the performance of your application.
    I appreciate this is perhaps not a direct answer but hope that it gives some ideas as to how to track down the cause of the problems you are experiencing.
    Jeremy

  • Can I use the 2 digital triggers on the PCI-6023E to trigger 2 seperate Analog inputs on the same board?

    I want to monitor 2 analog DC signals (single point measurements, not a waveform) and I want to use the digital triggers to start the acquisition, 1 trigger for 1 AI. the measurements need to be made at 1Hz, maybe slower. Is this possible with the PCI-6023E?
    If not what hardware should I be looking at? I have a total of 6 triggers and 6 AI.

    Dimentia,
    I would need confirmation on what you want to do:
    1) I want to monitor 2 analog DC signals
    This means that you will have one Analog Input operation monitoring two channels. Please confirm.
    2) single point measurements, not a waveform
    Ok, no buffers.
    3) I want to use the digital triggers to start the acquisition, 1 trigger for 1 AI
    This would mean that a single digital pulse or edge on a single line would start your 2-channel analog input operation. Please confirm.
    4) the measurements need to be made at 1Hz, maybe slower.
    Hardware-timed or software-timed? 1 Hz could be easily implemented with software timing. But the triggering could force you to use hardware timing. It will not be a problem but it would be good to know.
    5) Is
    this possible with the PCI-6023E?
    Everything I mention above is possible with the PCI-6023E.
    6) I have a total of 6 triggers and 6 AI.
    This last phrase is what really confuses me and seems to contradict the previous sentences. Does this mean that you will want to perform 6 independent Analog Input operations, with its own triggers (one each)? Will every Analog Input operation have 2 channels?
    I'll clarify why this is important:
    - Each Analog Input operation can only have one hardware digital start trigger assigned to it.
    - Only one Analog Input operation (multiple channels allowed) can be performed per board at any time.
    Since the rates are so slow I would recommend that you perform sample all channels within a continuous acquisition and then discard the data that does not meet a certain condition. You could sample the triggers as well and discard those channels for which the trigger has not been received.
    These are just some ideas based on my assumptions on the
    problem. Assumptions are never a good thing so please confirm on the point s above and we'll try to help.
    Thanks
    Alejandro Asenjo
    Applications Engineering
    National Instruments

  • How do I acquire multiple signals in the NI cDAQ 9172 using 2 analog input modules?

    Hi everyone,
    Is anyone familiar with using the NI cDAQ 9172?  This is my first time using it and I am not sure what exactly I am doing wrong... Alone with a NI 9233 analog input module, it works great.  I can grab my 4 signals from each channel and go.  However, when I add another analog input module to the mix, it gets an error.  It looks like it is reading only one and not the other.  It bombs at one of the DAQ start task and read task.
    Basically, the block diagram is just a double of the one 9233 working alone.  Is there something needed for input to make the 9172 working?  Any ideas?
    Any help is much appreciated.  Thanks!!

    Hi Jud,
    Both threads are correct.  The cDAQ-9172 has a single analog input timing engine, so both of your analog input modules will need to be in a single task.  The other VI you referenced shows one analog input task (with channels added from two modules) as well as an analog output task.  Analog output has a separate timing engine from analog input, so both of those can run in parallel independent tasks.
    The beginning of this thread is a good example; a single DAQmx Create Task followed by a DAQmx Create Virtual Channel for channels from each module.  Also, Getting Started with NI-DAQmx will give you the fundamentals for data acquisition, though I don't know how many of their examples use CompactDAQ.
    Regards,
    Kyle

  • How to count records from 2 tables and show in RDLC Report

    hi all,
    its being a one day searching for the solution but No Luck.
     I have two SQL tables tblstudetail and tblfeereceiptdetail.
    i just want to count records from both tables and show in RDLC report.
    I tried SQl Query Like This:
    select a.session, a.course,
    Count(CASE a.ADstatus WHEN 'OK' THEN 1 ELSE 0 END ) AS Admission,
    Count(CASE s .I_receiptstatus WHEN 'OK' THEN 1 ELSE 0 END) AS Feeprint
    from
    tblstudetail a
    FULL join
    tblfeereceiptdetail s on s.studentID = a.studentID
    where a.session = '2015' AND s.Fsession = '2015' AND a.adcat = 'Regular'
    GROUP BY a.session,a.course
    ORDER by a.course
    The result Show the Same Value in Both columns
    Session    Course      Admission       FeeDetail
    2015          B.A. I               275              275
    2015          B.A. II              307             307
    2015         B.A. III             255            255
    2015          B.Sc. I             110             110
    2015           B.Sc. II           105            105
    2015          B.Sc. III            64               64
    Actully I want to Count How many ADMISSION have been Taken(FROM tblstudetail) and How many FEE RECEIPT have been Print (From tblfeereceiptdetail).
    please guide me for this as soon as possible.
    thanks in advance...

    I am counting 'OK' in both the table columns I.e 'ADstatus' in tblstudetail and 'feereceiptstatus' in tblfeereceiptdetail
    please suggest me

Maybe you are looking for

  • Adobe flash player won't install, it was poping up and I deleted it

    I am using Internet explorer 8 and I was having a problem on a site I could not log on so they had me delete all cookies and browsing history and restart that solved their problem but now I had the problem of adobe poping up all the time every time I

  • Is there a way to consume REST based pdf web service in PeopleSoft

    We have a requirement to consume an pdf REST based web service in PeopleSoft and display the pdf file on browser. I have configured the Service & Service Operation in PeopleSoft. I have also confirmed the request is making to target server. Also when

  • Smart Form, Data Element and Parameters

    1.- I created an Smart Form with an import parameter. The import's parameter type is a data element. 2.- I create an executable to call the Smart Form, I need to declare a parameter of the type of the same data element. The problem is that when I try

  • Highlight color for Combobox

    I have a JComboBox, when i navigate between the various items inside the Combobox, it gets highlighted by some color. I want to know how to get that color object, i want to use the same color for something else. What would be the RGB combination for

  • Problem wirh cascaded popups in spaces custom taskflow...

    Environmen*t Webcenter PS4 Page 1 raises Popup 1-> Which in turn raises Popup 2. Page 1 -> Popup 1 -> Popup 2 Problem I am having issues with multi-level popups in my ADF taskflow that I have deployed to my Webcenter Spaces environment. When I run th