Generating square wave with variable duty cycle

We like to generate a square wave with variable duty cycle using LabView 6.1 and SCB-68 and this duty cycle comes from some PID controller programmed by LabView by reading a voltage and feeding back this square wave

the story begins with some one called separately excited DC motor
this thing sometimes changes its speed
so we are trying to keep a constant speed
irrespective of the load no matter how it changes
this comes by reading the voltage out from
the tackometer which represents the speed as voltage
then comparing this with a reference set by the labview program
the labview program will send a control signal to some chopper circuit
which is connected to the field of the motor which controls the speed
we are tending to make the labview program as pid controller
that will generate our beatiful square wave with some duty cycle
which will vary to increase or decrease the voltage across the field
we tried "Real-Time PID Control.vi" example and other examples
and we are discussing different solutions for this duty cycle thing
but till now no output
this is our whole story with this DC motor thing

Similar Messages

  • Sine, Square & Sawtooth sweep generation with variable duty cycle/rise time & fall time

    Dear All !
    I request and need some candid advices on the subject issue keeping in view the following notes:
    1) I am a novice in LabView.
    2) I was an average Electronics Engineering graduate who graduated about 9 years ago and since then I have not been involved in Electronics Engineering.
    I have undertaken a task or generation of Sine, Square and Saw Tooth wave forms. All these waveforms are to be frequency swept form 1 Hz to 100 kHz. The amplitude of all these waveforms should be able to be adjusted. The duty cycle of Square Wave should also be adjustable (or better be able to be swept). Likewise the rise time and fall time of sawtooth wave should also be adjustable (or better be able to be swept).
    I am considering  other options as well but wanna try it on LabView.
    I wish to ask that is it possible to execute this task in Labview 7.0? If possible then considering the para 1 & 2 above, is it possible for me to finish this task in 15-20 days if I work on this for about 3 hours a day? If not then what can be reasonable estimate?
    I will be extremely grateful if you people can offer advice on whole project or part(s) of it.
    Thanking you in advance and requesting urgent response(s).
    Solved!
    Go to Solution.

    Check this thread.
    I did some similar coding, it might be usefull to you.
    http://forums.ni.com/ni/board/message?board.id=170​&thread.id=493477&view=by_date_ascending&page=1
    I am using ver 9.0 though.
    If you work 3hr /day for 2 weeks you might as well finish book basics 1& 2 and than can do whan you need in a breeze, couple of hours.
    Good luck

  • Can I generate sine and square waves with NI PCI-MIO-16XE-50 card??

    Can I generate sine and square waves with NI PCI-MIO-16XE-50 card??
    How Do I generate those signals?

    Hello;
    You certainly can do that. The way to go about that is to use one of the Analog Output channels your board have available.
    If you are using Labview to program the board, you can find good examples at Search Examples->I/O Interfaces->Data Acquisition->Analog Output->Multiple Point (buffered) Analog Output.
    If you are using other Software language to program the board, you can fing examples at C:\Program Files\National Instruments\NI-DAQ\example\VisualC\AO.
    Hope this helps.
    Filipe

  • Why do i get ringing when i am generating Square Wave using PCI 4461 DSA Card

    Hi,
    when i generate square wave form DSA card PCI 4461 i am getting ringing effect as per my observation of waveform generated in CRO.Can anybody tell me why is this effect seen and how can it be rectified and removed from the signal in LabVIEW.
    Regards,
    Sneha

    The analog outputs on the 4461 (and the analog inputs, for that matter) are band-limited by digital lowpass filters. These low-pass filters have a brick-wall response in the frequency domain, which results in Gibbs-phenomenon ringing in the time domain. See this discussion, among others:
    http://en.wikipedia.org/wiki/Gibbs_phenomenon
    The ringing will be excited whenever there is significant signal power near the abrupt band edge, because the abrupt cutoff will result in signal power being located just below an absence of power in the spectrum. Whenever signal power appears in spectral isolation like that, you can expect ringing in the time domain response. Your square wave consists of a series of harmonics at frequencies below, near, and well beyond the digital filter's cutoff. When the digital filter cuts off the higher harmonics, the ringing is created.
    To prevent the ringing, you must create a waveform mathematically that is bandlimited already. The result will be a square wave with slower rise and fall times, but no ringing.
    Hope this helps,
    Ed

  • Generate Square Waves to SCXI 1161 Module

    Hello,
    I am a new user to Signal Express and I wanted to use signal express to generate two Square waves which I will ouput to my SCXI 1161 Relays
    Any quick ideas would be appriciated.
    Tim

    Hey there smoothdurban,
    Typically when you want to generate an output signal in SignalExpress you have to first create the analog/digital signal and then generate it. How this is done in SignalExpress is by first adding a step for "Create Analog/Digital Signal" and then adding a step for "Generate Signals". 
    I attached some pictures to help simulate this. The first picture "creategenerateunbound" shows how an unconfigured generate step does not link with the create signal. The second image "creategeneratebound" shows that after you specify the channel for the generate task, the create and generate will wrap up together and the square wave will match with the channel.
    Also, here is some additional information on why you have to first create and then generate and the SignalExpress Help file about creating signals,
    http://digital.ni.com/public.nsf/allkb/94AC3A0662C8388586256F4700721739
    http://zone.ni.com/reference/en-XX/help/371268J-01/expresswb/create_signal/
    Hope this helps!
    Tim A.
    National Instruments
    Attachments:
    creategenerateunbound.PNG ‏8 KB
    creategeneratebind.PNG ‏7 KB

  • Biphasic square wave with interpulsation intervals

    So I'm trying to get my graph to look like the copy and pasted image however I already have knobs and buttons to control duty cycle, amplitude, and frequncy.  Basically I just have created the square wave, I just need a way to insert an interval and display it on a waveform graph since there is no option when simulating the signal.  Thanks!

    It would be helpful to see your code. But if I were doing it I would define the waveform as a repeating series of three time intervals: a high time, a low time and an off time.
    Mike...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

  • How do I set up analog 0-10 VDC output pulses with varying duty cycles?

    I am trying to control a 400 watt laser so that it can pulse on and off within a few milliseconds. The laser controller reads a 0-10 VDC signal, with 0V being 0 watts and 10V being 400 watts. I am using a PCI-6221 DAQ and LabVIEW 8.0.
    It seems that all of the examples have square waves that are symmetric about the 0 volt range. I need a square wave that goes from 0-10VDC with different on/off timespans. I would like to have something as follows:
    1) 0 seconds = laser off
    2) .001 to .002 seconds = laser on at full power
    3) .002 to .009 seconds = laser off
    4) Repeat steps 2-3 500 times
    Any ideas?
    Michael Fidler

    Michael, 
    I ran your code, but was unable to reproduce the problem you are
    seeing. I measured the signal in two fashions’. I brought the signal back into
    the card (LabVIEW_Square Wave.JPG) and into a benchtop scope (Benchtop
    scope_Square Wave.jpg).
    I would like to ask that you run the attached code twice. The
    first time, please run it with the analog input as ‘Dev1/_ao0_vs_aognd’. This
    take the analog output and compares it with the cards AO ground, therefore eliminating
    the need for external connections and simply doing internal routing. The second
    time, please run it with the analog input as “Dev1/ai1”, and wire your AO
    channel to an AI channel. These tests are to ensure that there is not a stray
    capacitance in your scope, the probe, etc. Let me know the results (pictures
    are always great)
    David L.
    Systems Engineering
    National Instruments
    Attachments:
    Cont Gen Voltage Wfm-Int Clk_Test VI (8.2).vi ‏64 KB
    Benchtop scope_Square Wave.jpg ‏38 KB
    LabVIEW_Square Wave.JPG ‏36 KB

  • Minimum sample rate for 10KHz square wave with MIO

    Need to display a 10KHz square wave input to a 16E MIO. Presently sampling 1 channel at 400KS/s. Gives me 2.5uS/sample. Even at 800KS/s-same thing. How come I can't get a decent picture of the waveform. Presently I see a ramp up-down akin to an RC time constant. At 1KHz I get a decent waveform. I'm wondering if I have something set wrong in my program. Did I miss something in determining the proper sample rate?

    Hi Steve,
    Are you sure you are sampling at 400 and 800 KS/s?
    I thought those boards only go up to about 100KS/s.
    (show your point on your plot. Are you getting 40 samples per period?)
    If you really are sampling that fast, then you have partially answered your own question. There is a small capacitance at teh input to the board. A high impeadance source will combine the input capacitance of the board to give you the charge ramp you mentioned. Only solution to this situation is ussing a low impeadance output buffer between your signal source and the AI.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • How to output square wave with pci 6110 from digital output

    and the frequency of the wave should be variable and quite precise.

    "from digital output" is not possible if
    your timing req's are less than a second
    and
    you are not running Real-Time.
    It can be done from the analog output port.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Test Bench generating sine wave with noise when simulating Compact Rio on Dev Computer

    How do I create a simulated IO vi. I have tried to follow the tutorial but it didn't work. Do I need a pre filled array with data for the running case or can I generate it with an express vi? My IO vi doesn't seem to enter Running case ever. What is the process of executing this VI? is it run once or every time the main vi tries to sample some data?

    Hello I've a similar problem. I want ot simulate a sinusoidal input for my cRIO and I followed the example about the Dynamic IO generation but when I launch my VI with the light bulb on for every iteration I get the same value for my Module.
    Here are my VIs

  • PLSQL-generated SQL report with variable number of columns

    I created an app to track college football bowl picks:
    http://apex.oracle.com/pls/otn/f?p=21723
    The main report region includes columns for the various games as well as a column for each participant. In order not to hard code the number of participants, I used PLSQL to generate the SQL so that new columns could be added on the fly.
    However, whenever I add a new user I get this result -
    report error:
    ORA-01403: no data found
    If I copy and paste the PLSQL into a new report region and then delete the old one, however, all is well.
    Is there something I can do to overcome this?
    Thanks.
    Bill

    Roberto
    <br><br>
    Here are the tables:
    <br><br>
    BOWL_GAMES<br>
    ID     NUMBER<br>
    NAME     VARCHAR2(30)<br>
    FAV     VARCHAR2(20)<br>
    DOG     VARCHAR2(20)<br>
    BDATE     DATE<br>
    LINE     NUMBER(3,1)<br>
    FAV_SCORE     NUMBER(4,0)<br>
    DOG_SCORE     NUMBER(4,0)<br>
    <br>
    BOWL_USERS<br>
    ID     NUMBER<br>
    USERNAME     VARCHAR2(20)<br>
    PW     VARCHAR2(20)<br>
    NAME     VARCHAR2(20)<br>
    EMAIL     VARCHAR2(50)<br>
    <br>
    BOWL_PICKS<br>
    ID     NUMBER(5,0)<br>
    USERID     NUMBER(10,0)<br>
    GAMEID     NUMBER(10,0)<br>
    PICK     NUMBER(1,0)<br>
    <br>
    <br>
    Below is my PLSQL. Feel free to try out the app. Thanks.
    <br><br>
    Bill<br><br>
    declare<br>
    p_sql varchar2(32767);<br>
    cursor c1 is select * from bowl_users order by id;<br>
    begin<br>
    p_sql := q'! select to_char(b.bdate, 'Mon FMdd') "Date", b.name, '< a href="javascript$pickEm(''' || b.fav || ''')">' || b.fav || '</ a> -' || b.line || ' < a href="javascript$pickEm(''' || b.dog || ''')">' || b.dog || '</ a>' "Line" !';<br>
    for a1 in c1 loop<br>
    p_sql := p_sql || q'! , bowl_strike(b.id, !' || a1.id || q'! , 0) || (select decode(p.pick, 0, substr(b.dog,1,4), 1, substr(b.fav,1,4), 'No pick') from bowl_picks p where p.userid = !' || a1.id || q'! and p.gameid = b.id) || bowl_strike(b.id, !' || a1.id || q'! , 1) "!' || upper(a1.name) || q'!" !';<br>
    end loop;<br>
    p_sql := p_sql || q'! , bowl_score(b.id) "SCORE" from bowl_games b order by b.bdate !';<br>
    return replace(p_sql,'$',':');<br>
    end;
    <br><br>
    Message was edited by:
    [email protected]

  • Creating Digital Square Wave with DAQ

    Hi,
    I am a new LabView user and need some help in creating digital squarewaves using simulated DAQ, and output physical channel.
    Since I am only able to create a sine analog waveform using DAQ, I really need your kind help regarding this topic.
    Thank you very much.

    First: How strickt is your timing?
    Will software timing (delay of maybe up to 20ms) be good enough?
    Or do you need hardware clock based timing using the hardware timer of your 6251?
    I add a event structure based version, timing will lag the executiontime of the write to output
    Greetings from Germany
    Henrik
    LV since v3.1
    “ground” is a convenient fantasy
    '˙˙˙˙uıɐƃɐ lɐıp puɐ °06 ǝuoɥd ɹnoʎ uɹnʇ ǝsɐǝld 'ʎɹɐuıƃɐɯı sı pǝlɐıp ǝʌɐɥ noʎ ɹǝqɯnu ǝɥʇ'
    Attachments:
    onofftimer2.vi ‏16 KB

  • Custom square wave duty cycle in signal express

    Hey everyone,
      I am using an USB X Series Multifunctional DAQ Model 6361, with labview signal express 11 on windows7 (version 9.3.5) and I am trying to figure out if i can change the duty cycle of a square wave.  I need to have one period be at 75% duty cycle and another 25% or something along these lines.
    thanks!
    Adam 

    Hi Adam,
    I believe another Applications Engineer has corresponded with you concerning this issue already. If you are looking to generate a truly custom square wave where the duty cycle changes from one period to the next then you will need LabVIEW as this functionality is not supported in SignalExpress. 
    Using the Analog Output along with the Create Analog Signals options will allow you to specify one fixed duty cycle for your square wave, but this will remain constant throughout the generation. 
    Regards,
    James D.
    Applications Engineer
    National Instruments

  • Calculate Square wave Duty Cycle

    Hello everyone,
    I'm acquiring (with USB-6212) a square wave, "100Hz" with variable duty cycle - which can be 20%, 50% or 80% - for matters of decodification; the acquisition frequency is set to 4k. Actually, I said the frequency is 100Hz, because I get a rising edge every 10ms, but the length of the high level is defined by the communication protocol and that is what I called duty cycle (even though this does not match the exact definition of this property)
    Since I need to decode the information contained by the wave, it's necessary for me to be able to tell what the duty cycle is. I've acomplished this so far by taking the derivative of the signal, then calculating peaks and valleys index in the waveform and finally subtracting them, as shown below.
    It works ok almost the whole opeartion, however, the acquisition is not 100% exact. Sometimes I get the signal in the picture A, that is ideal for what I intended.
    Other times, the signal is like B and the derivative amplitude does not cross my threshold, even though there is a rising edge there. I could lower my threshold to 2, for instance, but then I'd get vulnerable to the signal in picture C, which would accuse 2 peaks, instead of just one.
    Anyone have an idea on how to work around this or any other method more reliable than taking the derivative of the signal?
    Solved!
    Go to Solution.

    Well, we can only answer question based on the information supplied!  The LabVIEW Mind Reading Toolkit is still in development.
    Your application is one where parallel loops may be valuable.  In the acquisition loop you read data from the data acquistion device at a rate which optimizes the DAQ perfomance (the >= 2k points you mentioned).  The data is transferred to an analysis loop via a queue. In the anaylsis loop you can put the data into a shift register.  When more data is available from the Acquisition loop, dequeue it and append it to the data in the shift register.  The Duty Cycle section will find two consecutive rising edges and the falling edge between them ( the 10 ms segment).  It calculates the duty cycle for that segment. Then it uses the second of the rising edges as the first rising edge for the next segment.  Repeat until duty cycles have been determined for all segments.
    There are a lot of details which can be imprortant in a process like this. Many of them are dependent on other things you have not specified.  What will be done with the duty cycle values? Is the raw data to be displayed? Saved to file? Discarded after the duty cycle is measured?  How long will the process continue?  How much data can accumulate?
    Lynn

  • Duty Cycle

    how to generate a waveform with the duty cycle?
    Pls reply soon
    Thanks,
     Jinal

    Hi Jinal,
    Look in the examples folder, there is a function generator example with a square wave function that allows you to change the duty cycle.
    labview\examples\measure\maxmpl.llb - Function Waveform Generator.vi
    ssk

Maybe you are looking for