Can analog outputs simulate a 60hz ttl pulse?

The only outputs free on my 6020e are 2 analog. I need to drive a TTL device at 60hz. Can the analog outputs do this?

Paul;
You can do that but keep in mind that will not replace the counter pulse train generation operation. I'm saying that because the counter will execute a hardware operation, and so, will be able to have a completely system independent operation, generating a nice and accurate TTL pulse train.
By doing that trough the analog output, as the data transfer in between the computer memory and the DAQ board is system dependent (since it uses DMA), you might have some glitches at the pulse train because of some delay caused by the data transfer. But that is definitely something to try out.
Hope this helps.
Filipe

Similar Messages

  • How to acquire analog signal and send a TTL pulse at the same time based on PXI 6123

    Hi,
    I am using a PXI-6123 data acquisition card, as the picture show in the attachment ,I want to acquire the analog signal of ai0 through reference analog window and at the same time send a TTL signal to trigger my camera. I have tried two methods, one is using the DAQmx Export signal.vi another is using DAQmx connect terminals, but when the data acquisition card acquire the analog signal, the DAQmx Export signal.vi and the DAQmx connect terminals sometime can send an TTL pulse ,sometime can not.
    I don’t know why?  or some other method that can achieve my arm is appreciated.
    Regards
    chunlei
    Attachments:
    method export signal.vi ‏21 KB
    method connect terminal.vi ‏36 KB
    Send a TTL pulse.JPG ‏288 KB

    Hi,
    Have things changed over the years?
    I need to syncronise a digital output (Modul NI9474) and an analoge input (AI-Modul NI9203) module. I need to measure time intervals from a flank in signal A to a flank in signal B. I would like accuracies of the order of 1 ms. Currently, the signals are not synchronised, with errors of the order of 2 times the block length (block size x sample rate), sometimes much higher. The best I got so far was a block size of around 20 with a sample rate of 1 kHz.
    If I use the master and slave settings on the RTSL settings, my program doesn't run properly.
    If I use digital signals for input and output, I can syncronise them with RTSL settings and everything is good, but I can't always do that.
    Also, if I do anything in the GUI (such as scrollowing something or going to another window), my output gets screwed up properly.
    1. What can be done to synchronise AI with DO?
    2. Is there something that can be done to avoid messing up the output when something happens in the user interface? (I know that I am messing up the outputs as they make some valves switch and that is loud).
    Thanks in advance!

  • How can i deliver a single pulse of varying amplitude using Analog output and USB-6251?

    I am trying to generate an analog output for the following waveform:
    Pulse width: 300 usec, Frequency 40 Hz, Amplitude is following a sine wave with a 2 second period.
    My approach is: Use an async timer with 1/[40 Hz] sec  interval. I set the DAQ output rate at 1 MHz and the approach has been to generate and write 300 samples of the amplitude I need to send out, then wait for the next async interval callback , update amplitude etc etc.  The assumption is that once the 300 samples are written and the task started , a 300 usec pulse would be sent out , task then stopped and then the analog output would be set to 0 waiting for he next pulse.  The reality is that I get a stream of pulses of 300 usec which last the whole timer interval. 
    So , trying to establish whether what I am trying to do is feasible without actually sending a large array to the USB-6251 which would write zeros for the period after 300 usec.
    Here is my timercallback code for review:
        switch (event)
            case EVENT_TIMER_TICK:
                DAQmxErrChk(DAQmxStopTask(TaskAnalog));
    Determine Voltage value algorithm here
                //Generate Waveform and start Task
                //Prepare AO arr
                for (k=0;k<300;k++)
                    AOArr[k] = 0;
                    if (k<G_PulseWidth)
                    AOArr[k] =  VOLTAGE_OUTPUT;
                if (AOArr!=NULL)
                    DAQmxErrChk(DAQmxWriteAnalogF64 (TaskAnalog, (int32) 300 , 0, DAQmx_Val_WaitInfinitely, DAQmx_Val_GroupByChannel , AOArr, &sampsPerChanWritten, NULL));
                DAQmxErrChk(DAQmxStartTask(TaskAnalog));
                break;
    Thanks

    I did resovle the issue I encountered. It was due to bad configuration of the Task.
    My initial configuration was:
    DAQmxErrChk(DAQmxCfgSampClkTiming(TaskAnalog, "",1.0E+06, DAQmx_Val_Rising, DAQmx_Val_FiniteSamps , 300 * 1.0E+06));
    which should be:
    DAQmxErrChk(DAQmxCfgSampClkTiming(TaskAnalog, "",1.0E+06, DAQmx_Val_Rising, DAQmx_Val_FiniteSamps , 300));      
    THis did it. works very well.
    THanks

  • Counting TTL pulses within specified integration time

    Dear all,
    I have a PCI-6014 board, and I use Labview 7.1 and would like to do the following task with DAQmx7.4:
    Analog source:  analog square wave (or = 1Hz TTL pulses) produced by a function generator
    Signal: photon signals from a photomultiplier (random TTL pulses)
    I would like to count the photon signals at 100ms integration time, repetitively. But I don't want cumulative counts, just the number of photons (TTL pulses)  in every 100ms.  I would also like to make sure that I synchronize the counter with the analog source, i.e. to make sure I get exactly 10 data points in each analog cycle. ( I can't use the computer to start the function generator and it just keeps running., so I want to make sure I start counting on the starting edge of the analog wave.)
    I used to do this with the traditional DAQ and connected the analog source to the "GATE" pin of the counter , so i could count "while gate is high" ( or while gate low, or count on rising edge/ falling edge. ) However I found some problems and I think my counter wasn't counting correctly, and I would like to rewrite the task  with DAQmx anyway.  Ideally I would like to separate the signals that occur in the first 1/2 and the second 1/2 of each analog cycle. But if that is not quite achievable, I can do the separation later when I process the data, provided that I know each 10 data points from the counter correspond to each analog cycle.
    I have read several threads on the discussion board, but I still couldn't configure my applications using those examples.
    Also I wonder if the "Arm Start Trigger" function is not available on my PCI-6014 card ? Because I can not find it in the Start Trigger property node.
    Thank you very much for your reply. Any hint or advice would be greatly appreciated.
    Joyce

    ...(Continued from prev post due to 500-char limit)
    Now, here's a proposal for a method that should be able to work, though it'll require more data and more processing.  One key area to watch out for under DAQmx is the property node for "Duplicate Count Prevention."  The behavior changed between 7.1 and 7.3 (on E and/or M series, but not on TIO-based counters), then the defaults changed in 7.4, and something changed yet again in 7.5
    Bottom line: you can set it to True or False.  One setting will allow you to buffer up 0 values for intervals where there are no Source signals (photon events) within a sampling period (10 Hz hw clock).  The other setting will not record anything in the buffer for those intervals.  Clearly, you need the former setting, so you can always experiment to see how it behaves.  I kinda gave up on trying to interpret it, understand it, or keep up with the differences by DAQmx version and DAQ board.
    Ok, here goes:  I'm going to propose that you actually oversample by about 10x and that you capture the Analog square wave in sync with your photon counts.  Then your post-processing can determine for sure which samples correspond to Analog Square High and which to Low.  You'll also be able to adjust for times when you get 1 too many or one too few samples in a square wave cycle, due to having independent un-sync'ed timebases.
    So on one counter you generate a 100 Hz clock.  The other one is programmed for buffered period measurement using the 100 Hz clock as a SampleClock and the photon pulses as the Source signal (this must be set up using a DAQmx Channel property node I believe).  Remeber to be careful also about the DuplicateCountPrevention property.
    You would further setup an AI task using the same 100 Hz clock as a Sample clock.  Be sure that the 100 Hz clock task is started after starting both the other tasks.  Also, be sure to always read the same # of samples from both tasks to keep the counter period and AI data in sync.
    Voila!  You now generate a data record of # of photon pulses for each 10 msec interval along with the voltage of the analog square wave at the end of that interval.  A bit of post-processing and you're covered.  If you're not required to manipulate data while the acq tasks are running, you can surely afford to bump up the oversampling rate considerably.  The main advantage is to gain resolution on the time of transition of the analog square wave.  For any interval ending with a TTL state change, you won't know where within that interval the transition occurred.
    -Kevin P.

  • Single shot analog output: How to pulse this. Probably easy, I'm at a loss.

    Hello.
    I have a piece of machinery that my system is connected to.  Every time it reaches a proximity sensor (It's a reciprocating unit), I need to do a single pulse of 5v out of my analog output.  It has to be fast, it has to stop until the sensor is reached again, and it can't stay 'on' for long.
    I've attached my VI.  I'm using a voltage input via DAQ assistant, routed through some logic to produce a 'true' boolean every time that sensor is reached, and that boolean is connected to a case structure with voltage out tasks created in DAQmx.
    My problem is that the machine won't reverse while the case is still true and there's still the 5v being called by the true case on the case structure.  It has to pulse, then stop, then be allowed to come back when the proximity sensor is reached again.  As it is now, the machine reaches the prox and then the whole system stops, as the 'true' condition on the case structure, and subsequent voltage output, remain high.
    I've attached the VI and heirarchy as well.
    I've tried a few different things here, as well as just using a DAQ assistant with N samples, but that would just retrigger when the loop repeats anyway.
    I'd love to sit and bang my head against this til I get it, but I'm under a time constraint.  Help!
    Still confused after 8 years.
    Solved!
    Go to Solution.
    Attachments:
    using create channel.vi ‏94 KB
    logicsub.vi ‏32 KB

    Ralph, without knowing the exact DAQ card that you are using, it is difficult to give you the best solution. If you want to continue with the solution that you currently have, try adding a shift register to the outer while loop to track the previous value of the boolean. In this way, we can keep multiple values that are above the threshold from causing multiple pulses. Next add a time delay after the DAQmx Write, then add another DAQmx Write to set the output back to your low value. Remove all code from your "false" case. See attached VIs. Please let us know what model of DAQ card you have as we may be able to do something clever like a retriggerable pulse train if your card can support it.
    Charles Chickering
    Charles Chickering
    Architecture is art with rules.
    ...and the rules are more like guidelines
    Attachments:
    using create channel.vi ‏98 KB
    logicsub.vi ‏29 KB

  • Can I send a TTL Pulse in a given rhythm?

    I am new to LabView and using version 8.1.1.
    I am trying to send a series of TTL pulses in a particular rhythm, (a train of 3 pulses at 50Hz repeated every 200ms). Is it possible to do this with accuracy?
    Each pulse need to be accurate to the millisecond.
    Thank you in advance.

    Hello Lanny22,
    Lynn is correct.  If you have hardware timed (correlated) digital lines then you can do this by using the values he suggested.  If you're using a National Instruments multifunction DAQ device with LabVIEW then I would recommend looking at this example program.  Open LabVIEW and go to Help» Find Examples.  Then navigate to Hardware Input and Output» DAQmx» Digital Generation» Cont Write Dig Port-Ext Clk.vi.  This is the example program I would use to generate this pulse train.
    Cheers,
    Brooks

  • What is the best way to Sync Digital Output(TTL) with Analog Output?

    I am trying to generate Analog waveform that synchronize the rising edge of a digital signal(TTL). The ttl will be used as trigger for camera. The board I have is USB-6343X. In my draft,  I used a clock as ttl so I can tune frequency easily. Could any one tell me what's the best way to accomplish such task? My draft seems working, but I hope there's more neat way. Thanks in advance for any help!
    Kind regards,
    Eric

    Hi Econg,
    You should be able to trigger your TTL output with the analog output by using the ao/StartTrigger as your trigger source on the counter task. You wouldn't have to have the extra Get Full Terminal Name.vi in your analog output task.
    Here is an example using your modified code. You will have to change the cDAQ1/ao/StartTigger to *your device*/ao/StartTrigger, but it should then trigger the counter output at the exact time when the analog output starts.

  • Can BioBench be triggered with a 20ns standard TTL pulse?

    I am using a CCD camera system to trigger BioBench to acquire data synchronously with the camera. The camera system sends a standard 20ns 1v TTL pulse every time it takes a frame, the time it takes for BioBench to start taking data varies from experiment run to experiment run. Anyone can help me fix this and get the two systems to synchronize?

    Amiliotis,
    Since the triggering functionality in BioBench uses one of the analog input channels to acquire the trigger signal, the 1 kS/s sample rate limit present in BioBench will impose a minimum limit to the pulse width of a trigger signal, which is guaranteed to be detected. This limit is 1 ms (= 1 / 1k). The fact that your trigger signal has a pulse width of 20 ns definitely explains why your start times are not consistent from run to run. You may want to consider using a development environment, such as LabVIEW, which will allow you to overcome this issue by providing more flexible triggering options.
    Good luck with your application.
    Spencer S.

  • Can I use two FP-AO-210'​s and one FP-1000 to obtain 16 channels of analog output?

    Hello All,
    I'm new to both Fieldpoint and LabVIEW.
    I'm developing a control system that requires at least 9 channels of analog-only output. I have been trying to connect two FP-AO-210's to a single FP-1000 by connecting one FP-AO-210 directly to the FP-1000, and the second FP-AO-210 to the first FP-AO-210. However, Fieldpoint Explorer only detects the network interface and the first analog output module.
    Is this configuration correct? Or, do I need a FP-1001 in order to use a second FP-AO-210?
    Does anyone have any alternate suggestions on how to obtain at least 9 channels of analog output?
    Thanks,
    Eric W

    Eric,
    One FP-1000 (or FP-1001/160X/20XX) can control up to 9 IO modules. If the second FP-AO-210 is not being detected by FieldPoint Explorer there are a couple things to check. First check to make sure that all of the terminal bases and modules are firmly connected to each other.
    Next, check the Power & Ready LED of the FP-AO-210 at address 2. Both LEDs should be lit. If they are not, de-power the system, remove the modules and terminal bases and make sure that you do not have any bent pins. Re-assemble and power up the system. Use FieldPoint Explorer again.
    If the module is still not detected, take a look at the addressing of the detected modules. The system should be detecting the first FP-AO-210 at address 1 (or 1 + a multiple of 10 if you have s
    et the FP-1000 to a different address). If the FP-AO-210 is at a different address, then it is likely a problem with the addressing circuitry either in the network module or the terminal base. Try swapping the positions of the two terminal bases and try again. If it works, then the error is in the addressing circuitry of the terminal base, if not, then it is in the addressing circuitry of the network module. Note: bent pins can also cause this.
    Regards,
    Aaron

  • How can I use two analog output channels simultaneously?

    I am using PCI6110 DAQ card. I want to run two separate VIs on one computer. Each VI output a waveform to one analog output channel. How can I do this simultaneously without interfering each other?
    Thanks

    Hi Stephen,
    This can NOT be done with two seperate VI's.
    The issue is in the hardware/driver.
    Your hardware has a clock that controls how fast updates to the AO occur. That clock can only have one value at a time. I will let your contemplate the complications that come up with two different clock settings being active at the same time (see below).
    So how do you work around this complication?
    You will have to develop a single VI that OWNs both output channels. That VI will have to accept start,stop,configure, etc commands from the two clients (what you will have to convert your existing VI's into). If you decide to place a restriction on the services you provide to the clients along the line of "only one sample rate at a time" you will be making your li
    fe much easier.
    If I was contracted by a customer to do what you have asked, I would try to combine the two existing VI's into one or simply buy a second 6110 and avoid all of the hassles. Both of these approaches would end up saving the customer money in the long run while freeing them of any restrictions that where established in order to develop the "server".
    I hope this helps,
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • I am using an NI PCI 6024 E board device for an analog output application. Can I generate two independent waveforms, one on each analog output channel?

    I am using an NI PCI 6024 E board device for an analog output application. Can I generate two independent waveforms, one on each analog output channel? In attach I send a example of my vi to control one chanel, but i need to control both but with diferent waveforms.
    Is the vi correctly programed to this propose?

    Yes you should be able to do that. look at the signal generation examples shipped with LabView
    You can create a 2 D array, with each row representing a wave form per channel. The number of points of the wave form (per row of the 2 D array) represent the number of points in the output buffer
    The wave forms can have different amplitudes/shapes, and therefore they are independent in this sense.
    However, you need to set the update rate,which is the same for both channels. The update rate together with number of points per buffer determines the frequency of the wave forms. This means the two wave forms will have the same frequency.
    To have different frequencies, you need to have say, on wave form with one cycle per buffer, and the other waveform have 2 cycles
    per buffer. in a case like that the frequency of the second channels is twice that of the first channel, and so on
    The two wave forms are then not truly independent, they may have different amplitudtes/shapes, but related in frequency.

  • Count 4th consecutive pulses from the analog output of the encoder

    Hi
    Iam getting analog output from the encoder and i want to count the 4th peak of the analog signal. Kindly suggest the best method Once 4th pulse is detected counter will increments.
    Pl refer the encoder output .
    Thanks
    Attachments:
    encoder sig.JPG ‏26 KB

    Whatever you've counted using your logic, divide it by 4 and convert it to an integer (towards negative infinity)..!!
    This should work.
    I am not allergic to Kudos, in fact I love Kudos.
     Make your LabVIEW experience more CONVENIENT.

  • How can i synchronize analog output and analog input timings to generate and measure voltage at the same time.

    how can i synchronize analog output and analog input timings to generate and measure voltage at the same time.

    Read this Tutorial
    http://zone.ni.com/devzone/cda/tut/p/id/3615#toc3
    And also refer to this link where You have repeated this question.
    PS: Please stick to one thread. That way, its easier to keep track of your query and answers

  • How can I control 3 stepper motors w/ amplifier by sending TTL pulses from DIO96

    We have NI PCI-DIO-96 board and we have 3 stepper motors with amplifier and encoders. We want to control the motors by sending TTL pulses directly from the DIO-96 board to the amplifiers. Is this possible? What would you recommend if this is not a good approach? Thanks in advance.
    Roman Zeylikovich

    Roman,
    Thank you for contacting National Instruments. While using a motion controller would be the recommended approach for any type of motion application, you may be able to use your DIO board to generate a TTL pulse train to control the step and direction inputs of your drive and motor. You will need to make sure that the current sinking and sourcing specification for the DIO-96 fits your stepper motor. That board is not designed to source very much current at all so this is one issue you will need to verify. Also, this board does not have any counter/timer logic that can handle quadrature encoder inputs.
    Again, this digital device is probably not the best solution to control a stepper motor, but, depending on your hardware, could be configured to work proper
    ly. The PCI-7334 is a low-cost stepper motion controller that can control up to 4 axes and is designed to easily accommodate these types of applications. You can browse through more information on our Motion controller boards at the following website:
    http://sine.ni.com/apps/we/nioc.vp?cid=3809〈=US
    Let us know if you have any more questions or comments.
    Regards,
    Michael
    Applications Engineer
    National Instruments

  • How to avoid delay during analog output generation by changing its frequency?

    Windows XP
    LabVIEW 7.1
    PCI-6036E + BNC-2120
    Hi,
    I am going to create a vi to generate an engine speed sensor signal (a simple square wave with specific missed pulses, in my case 58 pulses “teeth” and 2 missed pulses “missed teeth”) as an analog output but in addition give me the opportunity to control parameters for example frequency online to simulate the engine speed changes during running that vi. For this purpose I have started with “Continuous Generation.vi” which is available in NI Example Finder under the following path:
    Hardware Input and Output > Traditional DAQ > Analog Output > Continuous Generation.vi
    Then I modified it towards above mentioned goal, all related vi s are attached. The main vi is: "Motor Signal Generator_1.12.vi"
    At the first try it looks that it works properly but when have a look on that more accurately with Oscilloscope (fortunately I have a good one: Agilent 54621A – 60 MHz, 200 Ms/s) obviously there is a gap (delay or Jitter) whenever I change the engine speed. It is also attached in Signal generation_problem report.doc file.
    Note: Small gaps are OK and related to predefined missed teeth but the big one is happened during changing engine speed.
    As far as I understand it is related to the time which case structure in AO C-GEN sub-vi needs for AO reconfiguration each time after changing the engine speed (update rate). How can I get rid of this delay or gap during signal generation and generating completely continuous signal?
    I have to mention that obviously I changed the frequency by changing the update rate. The other possibility is to change the number of updates in one period (refer to "generate arb frequency.vi" in NI site: http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=B45EACE3E48F56A4E034080020E74861) which resulted in no delay however then I can not change the frequency continuously but step by step (for example jump from 5Khz to 2.5KHz immediately) and this can not pass to my application.
    Any hint is appreciated.
    regards
    Attachments:
    Signal_generation_NIsupport.zip ‏81 KB

    Hi Roozbeh,
    The following example will allow you to vary the pulse train frequency during run time.
    Thanks,
    Lesley Y.
    Attachments:
    GenDigPulseTrain-ChangingSpecs.vi ‏75 KB

Maybe you are looking for

  • Recording on to my nano

    How can i record my own voice onto my nano, it is an ideal way to study material to be used in exams. Somebody please help as exams are getting closer.

  • 65L7350U tv remote programming

    I have a 65L7350U tv with a ct-90427 remote and would like to program our Dish box to work with the remote cable/sat button, however the user manual only lists the operation of the tv, not programming...thanks

  • How do I get album artwork into itunes when it is not available from itunes

    Previously I could drag an image into the corner of itunes where album artwork is displayed, but it doesn't seem to work in this version of itunes.

  • PSE 9 and MP4 files

    Just thought that I should mention that PSE9 stops running when Elements is importing picture files and comes across an accidental MP4 extension. In Windows 7 it needed the Task Manager to restart. This user is stupid enough not to have checked that

  • PERFORM_PARAMETER_MISSING - continual short dump in BW

    Hi All, I am facing one strange issue. Few days back there was a failure in delta load of CUSTOMER_TEXT. The load was corrected, but since then every 45 minutes or so I am getting a short dump in the system. There is no active job in BW or R/3, but i