Digital signal generation in cDAQ- 9477 with 1ms resolution.

I am using cDAQ -9477 Digital card with 9178 chassis (USB) .I have to generate some digital signals for 2 seconds. The signal should be
0 (3ms)  -   1(1ms)  -    1  (2ms)   & repeat the sample 0 (3ms)  -   1(1ms)  …….  upto  2 seconds.
I had generated samples for 2seconds with 1ms duration of each sample.
I am unable to do that with 1ms resolution in cDAQ -9477 Digital card.
Is the above signal generation is possible (each sample -1ms) ?
I am using LabVIEW2009 .I attached the code.
Kindly let me know the suggestions .
Attachments:
Digital Signal.JPG ‏7 KB
Digital.vi ‏40 KB

cDAQ chassis do not currently support hardware timed tasks for digital modules with >8 lines.  The DAQmx help defines these devices as "static digital I/O modules".  The "Digital I/O Consideration for C Series Devices" section in the DAQmx help describes the capabilities of digital modules on different chassis.
Unfortunately this means you are stuck with static (software timed) generation.  Over USB this will affect the accuracy of your signal.  You won't be able to achieve the signal you are trying to generate with the current support.  Static generation will max out at roughly 1kHz, but Windows can introduce a large amount of jitter.  What you really need is a hardware timed task.
This is a feature that could be added in the future.  I recommend submitting a feature request, though I know that doesn't solve your problem now.

Similar Messages

  • DIGITAL SIGNAL GENERATION

    Hi!
    I want to generate a digital signal (0-5V) in order to turn on and off an hydraulic pump. The time on (high) and time off (low) are specified by a MatLab code, so that once the pulse has finished one cycle, the program should be go again to MatLab code and take two times again. Then it should generate the signal again.
    Thank you for the help.
    Miguel

    Thanks for the reply.
    I have a system with an hydraulic pump, power supply, transistor and computer. I would like to send a digital pulse from my computer (0-5V) to the transistor. The transistor then closes a circuit (power supply and pump), and the pump starts running.
    Then, I would like that each sample (each pulse) has specific width (time on), and also specific time off before it starts with other sample. These times (time on and time off) are computed by a MatLab code.
    I'm working with DAQmx drivers and I also have a BNC 2110.
    I also attach my code in Labview that I am trying to modify.
    Thanks a lot.
    Regards,
    Miguel
    Attachments:
    Gen Dig Pulse Train-Finite_original.vi ‏22 KB

  • Generating a digital signal

    Hello,
    I am trying to  generate a digital signal which can be controlled in terms time i.e. Switching ON for 10 minis off for 5 minutes. I tried to generate a digital signal which is going high but unable to control it. As I am the beginner in labview any kind of help is appreciated.
    Please see the attachment for the developed block diagram
    Attachments:
    digital signal generation.vi ‏17 KB

    It appears that all you posted is one of the shipping examples. Is that all you've tried? You can't control it because you're not actually doing anything inside the loop. You're simply setting the value high before the loop starts, and not changing it in the loop. What kind of device do you have? Is it software controlled? If so, you will need to keep track of the time inside the loop. You can use the Elapsed Time VI to do this. Attached is a simple example to get you started to see how this can be done. I'm sure you can figure out how to integrate what you did and what I've shown you.
    To learn more about LabVIEW it is recommended that you go through the introduction material, tutorial(s), and other material in the NI Developer Zone's Learning Center which provides links to other materials and other tutorials. You can also take the online courses for free.
    Attachments:
    Switching signal.vi ‏29 KB

  • Generate complement​ary digital signals with dead time between each pulse and controlled by duty ratio

    I am to generate  two complementary digital signals using NI 9606 conected by RIO Mezannine Card to NI 9683 (Half Bridge DO).
    I am able to generate the signals but I am not able to put dead time between high and low signal and also, low and high signal.
    Requirement:
    (1) When the first signal goes high and the second signal goes low, there should be a controllable dead time.
    (2) Also when the second signal goes high and the first signal goes low, there should be a controllable dead time.
    I am able to do requirement 1, but I am unable to fulfill requirement 2.
    Please have a look at my VI and let me know how to go about satisfying requirement 2.
    Attachments:
    complementary test 2.vi ‏69 KB

    Hi Frank ,
    I have already taken note of the example Tannerite has provided  and have built my vi ( attached in previous post) surrounding that example.
    Now I require to control the PWM duty cycle as you can see from the vi using a knob and that control refers to both the signal 1 and 2.
    Now the signal 1 end and signal 2 generation requires a controllable dead time. Similarly, signal 2 end and signal 1 geneeration also requires another controllable dead time.
    I am able to do either one dead time at a time using delay but not two dead time simultaneously.
    I feel that I have two put the delays at the appropriate data flow point. I am working on that.
    I would really appreciate if you could give some insight on how to solve this dead time issue and generate two complementary waveform with dead times whose duty cycle can be controlled by a knob controller in fronty panel .
    I have also posted the required timing diagram for reference as suggested by Tannerite.
    Best regards.

  • Measuring digital signals coming from the HSDIO (PXI-6542) with the DMM (PXI-4070)

    Hello,
    in attachment you can find the program I'm using for my measurement: I'm generating and acquiring digital signals with the PXI-6542 and at some trigger point of one of those digital signals I'd like to capture the measured values on a plot with the Digital MultiMeter (PXI-4070).
    It does work if you configure the generation repeat mode as continuous, but if you do have a finite repetition (repeat count is 1) it doesn't react on the trigger, as if it can't find a trigger. On the other hand, if you have a finite repeat count of 30 or more it does react and triggers correctly again.
    First I though it had something to do with autocalibration before the measurement takes place, but If you do a highlight execution (stepping through the program) it looks like it measures before the generation session is initialized.
    Is there a way to measure correctly when the repeat count is only 1?
    Thanks in advance,
    Jürgen

    Hey Jürgen.  I apologize that you haven't gotten an answer yet to your post.  I looked at your code and had some questions.  What is the source of your trigger to your DMM?  I see that you're exporting the data active event to PFI1, and your comments indicate that PFI1 and PFI2 are connected to give you a start trigger for your digital acquisition.  Exporting the data active event with a finite or continuous pulse should only give you a single edge per run, though - you wouldn't get a pulse each time.  Is your trigger coming from a data line?  I didn't see any line in your included data that would indicate a single pulse.
    The other thing that I noticed is that you've got no timing dependency between your HSDIO code and your DMM code - they're in parallel with each other.  Thus you could get different results run-to-run, since it's not deterministic as to which parallel "thread" that LV will start on first.  LV may switch back and forth several times, but let's say that LV reaches the HSDIO Start command before reaching the DMM Start command - in that case, the HSDIO device may finish it's entire operation before the DMM ever starts looking for a trigger, and thus never get the trigger at all.  I'm not sure why this would explain why you're seeing the finite case work and the continuous case not, but I wanted to point it out because it could bite you down the road.
    I hope some of this this helps get you going in the right direction.  I'd also suggest posting HW-centric questions in the appropriate form.  There are Digital forums and DMM forums that might help you reach people that will be more familiar with your particular hardware.
    Chris

  • When using the LabVIEW Simulation Module, how can I start a frequency sweep with the Simulation Chirp signal generation VI at an arbitrary time after the simulation initial time?

    I'm using the Simulation Loop on LV RT when interacting with some hardware (i.e. all I/O is happening in the Sim loop). I'm going to conduct a frequency sweep test on the hardware and want to use the Simulation Chirp function. However, there is no way (that I can see) to trigger the Chirp to start at some event (i.e. I click a boolean on the front panel and enter a case statement). The Chirp is tied to the global time of the Simulation loop and so are it's input parameters. Is there a way to make it relative to some time at which an event happens?

    Craig,
    Your solution will 'cut' the beginning of the signal and only show the signal afterwards.
    To control when the chirp should start, the best option is to use the Chirp Pattern.vi ( in the Signal Generation palette) and use a Lookup table to control when to feed the time. The shipping example (in LabVIEW 2013) shows how to code using a lookup table.
    C:\Program Files (x86)\National Instruments\LabVIEW 2013\examples\Control and Simulation\Simulation\Signal Generation\SimEx Chirp.vi
    Then, to start from a toggled boolean, look at the example:
    C:\Program Files (x86)\National Instruments\LabVIEW 2013\examples\Control and Simulation\Simulation\Signal Generation\SimEx Step.vi
    and Here is the example in 2013 (in attachment):
    Barp - Control and Simulation Group - LabVIEW R&D - National Instruments
    Attachments:
    SimEx Chirp with Delay.vi ‏241 KB

  • Acquire 2 digital signal with custom scaling (Engg Units)

    I am a newbie to DIO world.
    I have write a VI to acquire 2 digital signals. one from a load cell and other for motor rpm (pulses). I need to acquire these two signals and then convert them into engg units using custom scaling and write them to a txt file with time stamp.
    Please suggest best ways to accomplish this task.
    Thanks
    DAQG
    Solved!
    Go to Solution.

    Look at the examples on DAQmx in the example finder.
    You wouldn't actually be acquiring 2 digital signals.  You would be acquiring an analog signal from the load cell.  A digital or counter acquisition is what you would acquire from the motor.  Search for analog measurements and counter measurements in the example finder.  Some of the example should show you how to apply the custom scaling.

  • Sequence 1create output digtal signal- 2 make microsecon​ds delay or less- 3 measure digital signal with board 6023e

    hello
    I need creat a digital signal and for this i use a counter output and then i need creat a delay after  a signal measurment and for this i use again a couter. My problem is how i can make this delay betwen create and measure a signal. this delay must to bethe shortest  possible  and precise. une of my attemps was make  a sequence and for make the delay i create a task for une virtual output with max frequency 5000000hz and just une pulse but i dont know how many time the labview get to go by the first task ( creat a output pulse and ent it) to make tis task before discribed to the last task (measure a digital sinal). Another thing that i dont know is how many time the libview get to create and eliminate une task. Une information beyond the kind of board (6023E) that can be useful to help me  with this problem is the information about my pc in this case i use a pentium4 3Ghz.
    thanks  

    ...My problem is how i can make this delay betwen create and measure a signal.
    ...how many time the labview get to end one task and start another one.
    What I tried to say is, that even if you use the counter of the 6023e-Board
    to create the delay and trigger the measure via LabView under Windows,
    you leave the realtime-path. Executiontime of LabView-code is then not
    determinated.
    One way to solve this, is triggering measurement via hardware and use LabView to read Data from the Buffer of the DAQ-card.
    You can find more info about DAQ in the "measurements manuall" of NI, delivered with your LabView Software.
    Lorand

  • Como puedo instalar ISDB-T/Tb Digital Video Signal Generation Toolkit - MaxEye Technologies en labview 2014

    Hola me gustaria que me ayuden con un problema que tengo, descargue  ISDB-T/Tb Digital Video Signal Generation Toolkit - MaxEye Technologies evaluation pero cuando lo quiero instalar me aparece un mensaje diciendo que primero debo instalar labview 2012 pero yo tengo labview 2014, como puedo instalar esta herramienta sin tener que cambiar la version de mi labview?

    Saludos Mafilu,
    Gracias por utilizar los Foros de Discusión de National Instruments, con respecto a tu consulta creo que lo mejor será que contactes directamente al equipo de soporte de MaxEye Technologies para corroborar si existe alguna necesidad especial, o bien, si tienen alguna alternativa.
    Support Information
    For technical support, contact MaxEye Technologies at:
    Phone: +91-80-2527-0024, +91-94-4806-7717
    Email: [email protected], [email protected]
    Web: maxeyetech.com
    Quedo al pendiente, saludos.
    David P.
    National Instruments
    Applications Engineer
    www.ni.com/soporte

  • How to check 6 digital signals change value at the same time with PCI-6229??

    I am using DAQ card PCI-6229.
    Channel 1 generate a digital signal.
    Channel 2,3,4,5,6,7 acquire digital signals.
    I want to check:
    1. Whether the rising edge of Channel 2,3,4,5,6,7 occures at the same time;
    2. The time delay from the rising edge of Channel 1 to the rising edge of Channel 2,3,4,5,6,7 is within a certain range.
    I know I can use counter to get the two edge seperation time delay. But I only have two counter, it is two time-consuming if I check one by one.
    I don't know how to check the rising edge of 6 different channels occure at the same time.
    Does anyone has any suggestions?
    Thanks

    Hello,
    You can use the DAQ card's digital input change detection circuitry to detect changes in the input, you can then use a counter to measure the relative time between samples. Please read Page 6-9 DI Change Detection Applications for more information. Let me know if this helps
    Christian A
    National Instruments
    Applications Engineer

  • How to convert digital signal to analog

    Hi..
    I am using NI 9375 (DIO module) to read the output from flow sensor.
    The output of the flow sensor is in the digital signal.(Boolean=True/False).
    How can I convert the digital signal to the analog to get the reading of the flow sensor?
    I had tried before to convert the digital signal to the frequency so that I can make the conversion from frequency to the flowsensor reading,
    but it doesn't work.( I am referring to http://www.ni.com/white-paper/14549/en/ ).

    nhan91213 wrote:
    Hi..
    I am using NI 9375 (DIO module) to read the output from flow sensor.
    The output of the flow sensor is in the digital signal.(Boolean=True/False).
    How can I convert the digital signal to the analog to get the reading of the flow sensor?
    I had tried before to convert the digital signal to the frequency so that I can make the conversion from frequency to the flowsensor reading,
    but it doesn't work.( I am referring to http://www.ni.com/white-paper/14549/en/ ).
    FYI - If your flowmeter pulsing frequency is higher than 500Hz then you won't get reliable reading using your algorithm, and it will be very unreliable above 1kHz because fastest that loop runs is 1mS (1kHz).  In that case you could tie the timed loop  to a higher rate (hardware) clock source to go faster than 1mSec loop time.  If no hardware then I think you can use high resolution timer (in LV2014, not sure if it was also available in previous version) and a regular while loop with algorithm modification for a faster timing.
    New Controls & Indicators made using vector graphics & animations? Click below for Pebbles UI

  • MyDAQ - Generating a digital signal and displaying it on an analog waveform graph

    Hi,
    I am using the NI MyDAQ to generate a digital waveform with an adjustable frequnecy. This is being implemented into a program I have already written which generates a TTL "like" pulse out of the sound card. I am displaying the output on an analog waveform graph, and I'd like to be able to display the digital waveform generated by the myDAQ on the same graph. (Not at the same time, either one or the other, toggled by a button). I've been messing with arrays and conversions but I cant seem to really get anywhere with it all.
    This is the vi I have made to generate the adjustable frequency digital signal with MyDAQ. Any suggestions on the proper way to do this if the following is wrong would be great too as I just got the MyDAQ a few days ago. I would think there must be a better way but this is the best I could come up with so far.
    Solved!
    Go to Solution.

    Hi Jonny,
    The general logic you are using to create a digital pulse train is fine. This VI you've written should work and will create the pulse train based on software timing (which is fine because you don't have hardware-timed DIO on the myDAQ anyway). However, it is usually good practice to start the DAQmx task just before your while loop and then clear the task after the while loop when you press stop.
    For reference, there are some pretty good LV examples that I recommend looking at for this application too. If you are just trying to create a digital pulse train, the example Gen Dig Pulse Train-Continuous.vi is a good example that uses a counter to create a digital pulse train of your desired frequency. This is generally the prefered method to create a pulse train if you have the hardware available to do so (the myDAQ does have a counter). Alternatively, there are some DIO examples that continuously write to a digital line/port.
    If you're not familiar, you can find the examples by going to Help >> Find Examples... in LV. Then, navigate to Hardware Input and Output >> DAQmx >> Generating Digital Pulses or Digital Generation.
    Also, here is some additional information about the myDAQ and its counters:
    myDAQ Counters 
    myDAQ Manual 
    Hopefully this helps.
    Chris G
    Applications Engineer
    National Instruments

  • Is there a better way to generate custom timed digital Signals

    I am trying to generate digital output of high and lows with particular delays on different lines. Each daq assistant is activating single line on a port on USB 6501. There more complex high and lows that I need to generate with variable time difference between high and low. There is codebelow which accomplishes what I am trying to achieve but for executing a long pattern of high and low signal is very time consuming to do this way. I am sure there is a better way to do this, I  not a expert on labview so I haven't uncovered its full potential. Can anybody suggest a more effective and a quick way to do this. I would hgihly appreciate. Thanks!
    I have not shown in the code below but through DAQ assistant I have initialized lines to low level logic.
    Solved!
    Go to Solution.

    See the attached file
    Attachments:
    Digital Signal.vi ‏335 KB

  • How to input/output a digital signal and acquire an analog signal at the same time?

    Dasylab, version: 8.0.04
    Acquirement Card: PCI1002L
    When I use DasyLab to acquire the analog signals is no problem without digital inputs and outputs,
    and when I use DasyLab to input or output a digital signal is no problem also, but when I do that at the
     same time, DasyLab tell me the rate is too high and stop.
    so, I searched the manual book1 (user guide) for that, it showed me :
    To internally equalize measurement time and system time in the analog input, digital input and counter
    hardware modules, use the following settings:
       Synchronization: PC Clock
       Sampling rate: <= 5Hz
       Block size: =1
    the problem is, if I set the Sampling rate to 5Hz, the speed of the acquirement datas is not enough for my
    application.
    so, how to improve it? who can give me a example programm for me. thanks!
    by the way, I come from China, my English isn't good, I'm sorry.
    Allen, China.

    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 do I convert analogue 5.1 surround sound into a digital signal? (Pioneer SE-DIR800C headphon

    I understand that my SB Audigy 2 card will only output 5. sound from games through its 3 analogue connectors. How do I convert this analogue signal into a digital one? What hardware do I need to purchase?
    I have read the thread on "Digital Connections, SPDIF and Dolby Digital Info", and also I've thoroughly read the "Creative Speaker Connectivity Guide".
    The reason I ask is that I have just bought a pair of Pioneer SE-DIR800C Surround Sound headphones. This are supposedly fantastic for recreating surround sound on headphones because there is a clever little decoder box. They accept a DTS / Dolby Digital signal via the digital co-axial and optical inputs, and there is a single analogue input which only accepts stereo sound.
    My XBox and PS2 will output true digital 5. sound via an optical cable and I am confident this will work perfectly with these headphones. I'm really looking forward to playing Halo in surround sound! But for gaming on my PC, I'll be limited to just an analogue stereo signal. Well, unless I can find some device that will convert my SoundBlaster's analogue 5. outputs into a digital signal, which I can then plug into the little decoder box for these headphones.
    So, back to my question:
    What hardware do I need to buy to convert an analogue 5. signal (via 6 x RCA or 3 x 3.5mm stereo ) into a true digital signal (via optical or co-axial SP/DIF)? Is it some type of headphone amplifier I need? If possible, please recommend makes & models of equipment.

    Thanks stefan
    OK, basically I have found 3 options for getting digital 5. out of a PC:
    a) Creative DTS-60 (approx $90). This converts the SB's analogue into digital, but it's not available in the UK and it also introduces a noticeable 50ms sound delay. Also, who wants an extra box hanging out of their PC?
    b) Buy a new sound card which has Dolby Digital Li've output. For example, ) BlueGears HDA X Mystique 7., or 2) Turtle Beach Montego DDL, or 3) Terratec Aureon 7. PCI (NOT the Space, FireWire or Uni'verse cards). I couldn't find the first two available in the UK so I have just ordered the Terratec card from Komplett.
    c) Buy a new motherboard that has built-in Dolby Digital Li've output, for example the ABIT Fatalty AA8XE. Unfortunately my PC is only just over year old and I'm not quite ready to replace it.
    I hope this info is useful for people. Maybe Creative will start making a card with DDL output too.Message Edited by NinjaHeretic on 2-22-2005 08:46 AM

Maybe you are looking for