Sinusoidal generator

Hello,
I want to apply sinusoidal input to a control setup via serial port. I am passing commands and input to the setup in string format.
The data type of the LabVIEW sinusoidal generator does not match with the required one and I am unable to type cast also. Please guide. Thanks.

It's hard to guide without knowing the two different datatypes.
Maybe you can post your VI.

Similar Messages

  • DDS Compiler (Xilinx Coregen IP) maximum achievable clock rate

    Hi,
    I am using labview FPGA2011 and FlexRIO 7965R (i.e. Virtex5 SX95T). I have compiled a sinusoid generater using the built in Xilinx Coregen IP named 'DDS Compiler'. The output of DDS Compiler is sent to the host VI using DMA FIFO. My SCTL runs at 346MHz, as the largest clock that can be provided is 346.666MHz. The code according to DDS Compiler data sheet (DS558) with the configuration settings that i have used, should burn at 450MHz (mentioned in cloumn 4  of Table8 on page 28). But my code gives a maximum achievable clock rate of 350.63MHz. I have attached my code and images of the compilation results. Can somebody check and tell me why am i not getting the 450MHz rate? Is there any limitation on the clock rate due to the VI scoped or DMA FIFOs?
    Thanks
    Attachments:
    DDS Compiler.zip ‏858 KB
    images.zip ‏53 KB

    Hi Sandee, 
    What are you planning on doing with this sine wave?  Are you using a FlexRIO Adapater Module(FAM)?  
    The reason you can't get anything higher than 346.66MHz is because the clock that is being generated from is a 40 MHz clock.  Once you multiply it up that high, the accuracy of the frequency is not reliable.  
    The beauty of the FlexRIO is that you are able to bring in external clocks with several of our FAMs.  These external clocks are piped directly to the FPGA.  On top of that, if you're using the 6587 FAM, for example, you're able to generate up to a 500 MHz clock on the FAM, and provide that to the FPGA.  
    To do that, you first add your adapter module to the project
    Right click on your fpga target -> select new FPGA Base clock - > IO Module clock 0 from the drop down.  
    Then specify your frequency to be 450 or 500, whatever you want it to be. 
    Then on your block diagram, you'll provide your single cycle timed loop with the IO Module Clock 0 as the source. 
    I'm going to compile it now and I'll update with the results. 
    National Instruments
    FlexRIO & R-Series Product Support Engineer

  • How to generate digital pulses to run stepper motor in a sinusoidal motion profile using NI DAQ 6229 card

    Hi,
             I need to make a stepper motor undergo rotary oscillation with a sinusoidal motion profile. As it nears the extreme points it should decelerate and finally slow down to zero velocity and then it should reverse direction and accelerate until it reaches the other extremity where it should slow down and stop and reverse direction and repeat this motion.
            The hardware is NI DAQ 6229 and the stepper motor can be controlled using digital Hi-Low (1,0) pulses. For each high pulse(1's) the motor turns 1 step. I am able to generate a analog sine wave and convert it to digital data using Analog-to-Digital.vi  But i am not able to convert the digital data to a stream of 1's and 0's in the correct sequence to get the sinusoidal profile with the amplitude and frequency i require.
            The direction of rotation can be changed by giving a pulse to another input of the stepper motor. So only half cycle of sine wave needs to be generated and it can be replayed after changing the direction to get the full sinusoidal profile.
    Any ways of making this approach work or any new approaches to this problem would be helpful. Thank You.
    Regards,
    Prabu.
    Solved!
    Go to Solution.

    Hi,
             I finally figured out a way to do it. The analog sine wave is converted to digital and sampled. Consecutive values are compared and if the least significant bit(LSB) changes then a pulse is sent to the stepper motor to turn one step.
    I have included the sub-VI's that accomplish it for the particular stepper motor and connector block i have. The front panel of both sub-VI's are quite messy but the block diagrams should be much clearer. The sub-VI's get their inputs from a third VI which i have not included. So take a look at the VI connector panel to figure it out. Hope this helps. Kinda messy but worked out fine in the end for my application. 
    Thanks again for all the help. I appreciate it very much.
    Regards,
    Prabu Sellappan
    Graduate Student
    Aerospace and Mechanical Enggineering
    University of Southern California
    Attachments:
    start motor test waveform dtest.vi ‏73 KB
    sine profile generation subVI.vi ‏41 KB

  • How do I generate a sinusoidal waveform for frequency 0,05Hz?

    Hi everyone,
    I  generate a sinusoidal waveform for different amplitude and frequencies. However, I can not obtain a waveform for frequency<0,05 Hz. For the frequency values under freq=0,05 Hz, the vi gives an error as can be seen from the attachment picture. I have changed the "buffer size", "scan rate", "total scan to acquire" and "count", but it failed again and gave the same error. Is there anyone who can deal with or experienced with something like this problem? Also, could you please the exact meaning of
    scan rate=
    total scan to acquire=
    buffer size=
    In order to prevent the aliasing, what should be these values? What kind of relations are there between them? Because, for different selected frequencies, I have to change these values, otherwise I detect wrong frequency value using "Tone Measurements.vi" that is located at the LabView library.
    Also, could you please make a comment on filtering? I want to filter very small vibrations from the signal using express vi of "Filter.vi". Should I have to use lowpass filter, or highpass filter, or bandpass or, smoothing etc. and what value of "cuttoff frequency" should I use? Thanks a lot...
    Attachments:
    front.jpg ‏333 KB
    Unsteady Pipe Flow Analysis.zip ‏126 KB

    Hi,
    I have also attached two files. One is related with f=1 Hz. When I adjust the frequency to 1 Hz, I can obtain and detect the true frequency response. However, as can be seen the waveform graph in the 1 Hz.jpg, I do not want to save or analyse the data which I circled in green colour. Because, the hotwire begins from the zero value and there is a peak at the top.After the first period, the waveform comes through the periodic one. Start of period from zero and make a bit peak at the top will change my statistic analysisi of signal. So I want to omit the first period.
    In the second attachement, (f=10Hz.jpg), ı changed the frequency of the signal from 1 Hz to 10 Hz. Now, the vi detected the wrong frequency as can be seen from the picture "Detected Frequency=0,1". Also, the waveform graph does not show the right periodic signal.
    So, what is the wrong? The filtering? or the scan rate? , total scan to acquire?, buffer size????? or what?? I have tried many different combinations of these control values, but the vi always detected the wrong frequency and the waveform graph was always like that.
    Attachments:
    f=1 Hz.jpg ‏307 KB
    f=10Hz.jpg ‏311 KB

  • Motion Assistant - Generating Sinusoidal Velocity Profile

    Hi,
    I am currently working on a project where I need to create a sinusoidal velocity program for the pump that I am controlling. It is believed that the person previously working on the project used a LabVIEW VI to generate an XML file to control the pump's velocity. Do you have any idea what VI in the motion suite would be able to do this?
    Alternatively, is there an easy way to create the sinusoidal velocity profile using an EXCEL spreadsheet? And would it be better to use a position profile or a position-velocity-time profile in Motion Assistant?
    Thanks!

    Hi UW-AC-1,
    There is no VI in our Motion drivers that will allow you to do this. However, it sounds like the previous person may have generated an array and then used a Write to XML File.VI (this can be found under Programming->File I/O->XML->LabVIEW Schema). 
    From your post, it sounds like you may want to use a position-velocity-time profile in Motion Assistant. We have some examples of how to do this as well as a Discussion Forum here that discusses where these profiles are located. Hope this helps!
    Mychal F
    Applications Engineer
    National Instruments

  • Motion Assistant - Generating Sinusoidal Velocity Profile Options

    Hi,
    I am currently working on a project where I need to create a sinusoidal velocity program for the pump that I am controlling. It is believed that the person previously working on the project used a LabVIEW VI to generate an XML file to control the pump's velocity. Do you have any idea what VI in the motion suite would be able to do this?
    Alternatively, is there an easy way to create the sinusoidal velocity profile using an EXCEL spreadsheet? And would it be better to use a position profile or a position-velocity-time profile in Motion Assistant?
    Thanks!

    Hi UW-AC-1,
    There is no VI in our Motion drivers that will allow you to do this. However, it sounds like the previous person may have generated an array and then used a Write to XML File.VI (this can be found under Programming->File I/O->XML->LabVIEW Schema). 
    From your post, it sounds like you may want to use a position-velocity-time profile in Motion Assistant. We have some examples of how to do this as well as a Discussion Forum here that discusses where these profiles are located. Hope this helps!
    Mychal F
    Applications Engineer
    National Instruments

  • How to generate an in-sync sinusoid?

    I want to generate a sinusoid which will track (with a fixed phase shift) an externally monitored sinusoid.  The signal of interest is a sinusoid of less than 10kHz.  I've heard rumblings of FFTs, PLLs, measuring zero-crossings, etc.  Has anyone done something like this sucessfully? 
    The important thing is that my generated signal does not become out of sync with my input signal - as would be the case if there were a delta-f in my approximation of frequency.  I need to somehow adjust - in realtime - my sinusoid's parameters such that the two remain synced (again, plus or minus some desired fixed phase shift)
    I'm just hoping for some informed advice on a direction to take so that I don't go down the rabbit hole in the wrong direction.  I want the rabbit hole to lead me towards the right answer if possible ;-)
    Thanks!

    You need to provide more information.
    How quickly does the frequency of the external sine change? Is it fixed but only approximately known? Is it a constantly changing signal (a.g. audio)
    How are you measuring it (rate, etc.)?
    What kind of hardware do you have? Is this supposed to be running on an FPGA or some plain old PC?
    Do you have a simple VI that simulates the instrument?
    LabVIEW Champion . Do more with less code and in less time .

  • Sinusoidal Signal Generator

    Hi everyone,
    I want to make a program in LabView, in which the output from the VI will be of the type Analogue Waveform and be capable of being displayed on an appropriate Waveform Graph. The Analogue waveform will represent a continuously adjustable sinusoidal function.
    The inputs to the VI will perform the following functions:
    1) Set the frequency (1Hz to 1KHz). Default 1 Hz.
    2) Set the Phase Shift (-180 to 180). Default 0.
    3) Set the Amplitude (0 to 20). Default 1.
    4) Set the Offset (-5 to 5). Default 0.
    5) Set the number of samples per cycle (20 to 1000). Default 100.
    6) Set the number of waves (1 to 50). Default 1
    7) Set the start time t0. Default 0.
    I want to use Sine trig function.
    I would greatly appreciate any advice or hint that would help me doing this program.
    Thank you,
    pontios
    [email protected]

    OK. So you need help, but YOU have to write the program.
    Let's do that in several steps.
    1/ analyse the example program given. It is a rather poor triangular curve generator. I say poor because it only generates the max and min points, and the rest is simply interpolated. There should be additionnal points in between, if the plot has to be generated using an IO card for instance.
    The only reusable things here are :
    1a/ the idea of using a loop that runs the proper number of times to generate an array of Y data
    1b/ the setup of the waveform from the Y array.
    2/ the only thing to be done is therefore to generate a table of Y values that correspond to the equation y = amplitude . sin(t/(2.PI.frequency) + phase)+ offset
    That should be straight forward, using the basic math functions. If not, I'm afraid that you'll have to do some personnal preliminar work. There are a number of tutorials available around. See for instance http://cnx.rice.edu/content/col10241/latest/
    The only tricky part here is to generate the t values.
    There are two possible solution :
    2a/generate one t value and calculate the corresponding y. Put everything in the loop to generate the Y array
    2b/ generate an array of t values, and calculate the corresponding Y array.
    Solution b is better because it allows to replace easily the function, without being obliged to dig into the diagram. And since the mathematical functions in LabVIEW are mostly polymorphics (they accept either single values as input as well as arrays...), it is as easy to calculate the sin of the t array.
    Accordingly, you should use the loop to create a t array. Remove the stuff inside the loop, use delta t time (required in the build waveform) and multiply it by the loop index. That's all.
    Hope this helps. Good luck
    CC
    Chilly Charly    (aka CC)
             E-List Master - Kudos glutton - Press the yellow button on the left...        

  • Can i connect an external signal generator to the NI7344 to...

    Can i connect an external signal generator to the NI7344 to use its
    PID characteristics to precisely control the output
    I am using the flex motion board (NI7344) to control the force output
    of a linear motor. Using contouring and buffer operations i have
    successfully created a system which can output a controlled force
    which sinusoidal in form. I can achieve a reasonable output for
    waveforms of 10Hz, the use of higher frequencies is limited by the
    contouring operation ( a frequency of 10 Hz means i can only describe
    one period of a sine wave with 10 points ( 10ms between each point =
    10Hz). Can i therfore connect an external anologue wave generator to
    the NI7344 use and use its PID characteristics to output wave
    forms of
    higher frequency ??? .....could i output an anolgue wave form from an
    E-series DAQ via the RTSI cable to the NI7344 and control this ???.any
    ideas or advice would be much appreciated.

    Duncan,
    You can use a DAQ card to output an analog waveform, but it will be a software call not part of an onboard program. RTSI can be used to pass clocks and trigger signals, so if you want to route a clock signal to do the control you could.
    A. Talley

  • How to use labview to drive a New Focus Picomotor sinusoidally

    Hello,
    I am currently trying to use Labview to control a NewFocus Picomotor (Model# 8302)using the inteligent driver model 8753:
    http://www.newfocus.com/products/?navid=3&theView=modelDetail&productLineId=6&productGroupId=195&mod...
    http://www.newfocus.com/index.cfm?navId=97   (Using MCL with Labview)
    Ideally I would like to modify a preexisting driver to drive the motor sinusoidally in the 30-70 Hz range with control over the amplitude.  At this point, I am completely daunted by the complexity of the example files and have no clue where to start.  Any assistance with this matter is GREATLY appreciated.
    Best Regards, 
    BRox

    BRox,
    I had a look at the examples and obviously all it does is to communicate to the drive through RS232 with a proprietary protocol. With the documentation in the block diagram and the documentation of the protocol it shouldn't be too hard to understand what's going on, but on the other side NewFocus has obviously missed a chance to provide a high level and easy to use API for their product...
    I can't dive too deeply into the features of this drive, but before you spend too much time on understanding their command language, you should check with NewFocus, if it is possible at all to meet your requirements with their hardware. The main reason why I doubt that is the slow communication speed provided by RS232. The only way to reach a sinusoidal motion profile of 30 to 70 Hz with this type of communication is running the complete trajectory generation and interpolation onboard. If you have planned to generate the motion profile in LabVIEW and send setpoint commands to the drive this will probably not work.
    If the drive provides another command input (e. g. an analog +/- 10 V input for torque or velocity command signals), we can talk about alternative approaches.
    Regards,
    Jochen Klier
    National Instruments

  • Derivate a waveform from a Function generator

    I want to use the derivate of a waveform from a Function generator in a Formula node,  but unfortunatelly I dont no how can i do this. I need the exact value of the derivate ("qpg" input variable) to use in the equation in the Formula Node.
    I found a Derivate sub VI, but it gives me the derivate as a vector so i cant wire it as an input to the Formula node.
    I attached pictures about my VI.

    As I understand it, you are using a Waveform Generator VI, and want (in addition to the Waveform) an additional output that is (an estimate of) the derivative of the Waveform.
    If you consider the Waveform Generator as a "black box", something whose internals you don't know, but something that produces a new output every delta-t time increment (I'm going to call this "dt"), then you really do need to estimate the derivative.  Note that since you cannot "predict the future", to estimate the derivative, you need the current data and previous data.  One very common estimate for the derivative x'(t) at time t is (x(t) - x(t-dt))/dt, that is, the difference between the current point and the previous point, divided by the time increment.  For a waveform generator, this will probably be a pretty good estimate, as the data should be relatively "smooth" and noise-free.  Do note, however, that this estimate is really over the time interval t-dt and t, so you could consider it shifted backward in time by dt/2.
    If you want a more accurate estimate of the derivative, one "centered" on the current time, t, then your formula needs to take into account not only the current value and past values but also future values.  This is the reason many "derivative functions" use vectors, as this contains past and present values (with some worry about what to do at the beginning and end of the data).
    On the other hand, if you are generating the data yourself (that is, if you have a VI that you input t and it outputs f(t)) and you have a "nice" function f (say a sinusoid or other non-random function), you can get the "exact" derivative just by programming it.  For example, if f(t) = sin (omega * t), then f'(t) = omega * cos (omega * t).
    Bob Schor

  • Example: Code to generate audio tone

    This code shows how to generate and play a simple sinusoidal audio tone using the javax.sound.sampled API (see the generateTone() method for the details).
    This can be particularly useful for checking a PCs sound system, as well as testing/debugging other sound related applications (such as an audio trace app.).
    The latest version should be available at..
    <http://www.physci.org/test/sound/Tone.java>
    You can launch it directly from..
    <http://www.physci.org/test/oscilloscope/tone.jar>
    Hoping it may be of use.
    package org.physci.sound;
    import javax.sound.sampled.AudioFormat;
    import javax.sound.sampled.AudioSystem;
    import javax.sound.sampled.SourceDataLine;
    import javax.sound.sampled.LineUnavailableException;
    import java.awt.BorderLayout;
    import java.awt.Toolkit;
    import java.awt.Image;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JButton;
    import javax.swing.JSlider;
    import javax.swing.JCheckBox;
    import javax.swing.SwingUtilities;
    import javax.swing.UIManager;
    import javax.swing.border.TitledBorder;
    import java.net.URL;
    Audio tone generator, using the Java sampled sound API.
    @author andrew Thompson
    @version 2007/12/6
    public class Tone extends JFrame {
      static AudioFormat af;
      static SourceDataLine sdl;
      public Tone() {
        super("Audio Tone");
        // Use current OS look and feel.
            try {
                UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                SwingUtilities.updateComponentTreeUI(this);
            } catch (Exception e) {
                System.err.println("Internal Look And Feel Setting Error.");
                System.err.println(e);
        JPanel pMain=new JPanel(new BorderLayout());
        final JSlider sTone=new JSlider(JSlider.VERTICAL,200,2000,441);
        sTone.setPaintLabels(true);
        sTone.setPaintTicks(true);
        sTone.setMajorTickSpacing(200);
        sTone.setMinorTickSpacing(100);
        sTone.setToolTipText(
          "Tone (in Hertz or cycles per second - middle C is 441 Hz)");
        sTone.setBorder(new TitledBorder("Frequency"));
        pMain.add(sTone,BorderLayout.CENTER);
        final JSlider sDuration=new JSlider(JSlider.VERTICAL,0,2000,1000);
        sDuration.setPaintLabels(true);
        sDuration.setPaintTicks(true);
        sDuration.setMajorTickSpacing(200);
        sDuration.setMinorTickSpacing(100);
        sDuration.setToolTipText("Duration in milliseconds");
        sDuration.setBorder(new TitledBorder("Length"));
        pMain.add(sDuration,BorderLayout.EAST);
        final JSlider sVolume=new JSlider(JSlider.VERTICAL,0,100,20);
        sVolume.setPaintLabels(true);
        sVolume.setPaintTicks(true);
        sVolume.setSnapToTicks(false);
        sVolume.setMajorTickSpacing(20);
        sVolume.setMinorTickSpacing(10);
        sVolume.setToolTipText("Volume 0 - none, 100 - full");
        sVolume.setBorder(new TitledBorder("Volume"));
        pMain.add(sVolume,BorderLayout.WEST);
        final JCheckBox cbHarmonic  = new JCheckBox( "Add Harmonic", true );
        cbHarmonic.setToolTipText("..else pure sine tone");
        JButton bGenerate = new JButton("Generate Tone");
        bGenerate.addActionListener( new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
              try{
                generateTone(sTone.getValue(),
                  sDuration.getValue(),
                  (int)(sVolume.getValue()*1.28),
                  cbHarmonic.isSelected());
              }catch(LineUnavailableException lue){
                System.out.println(lue);
        JPanel pNorth = new JPanel(new BorderLayout());
        pNorth.add(bGenerate,BorderLayout.WEST);
        pNorth.add( cbHarmonic, BorderLayout.EAST );
        pMain.add(pNorth, BorderLayout.NORTH);
        pMain.setBorder( new javax.swing.border.EmptyBorder(5,3,5,3) );
        getContentPane().add(pMain);
        pack();
        setLocation(0,20);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        String address = "/image/tone32x32.png";
        URL url = getClass().getResource(address);
        if (url!=null) {
          Image icon = Toolkit.getDefaultToolkit().getImage(url);
          setIconImage(icon);
      /** Generates a tone.
      @param hz Base frequency (neglecting harmonic) of the tone in cycles per second
      @param msecs The number of milliseconds to play the tone.
      @param volume Volume, form 0 (mute) to 100 (max).
      @param addHarmonic Whether to add an harmonic, one octave up. */
      public static void generateTone(int hz,int msecs, int volume, boolean addHarmonic)
        throws LineUnavailableException {
        float frequency = 44100;
        byte[] buf;
        AudioFormat af;
        if (addHarmonic) {
          buf = new byte[2];
          af = new AudioFormat(frequency,8,2,true,false);
        } else {
          buf = new byte[1];
          af = new AudioFormat(frequency,8,1,true,false);
        SourceDataLine sdl = AudioSystem.getSourceDataLine(af);
        sdl = AudioSystem.getSourceDataLine(af);
        sdl.open(af);
        sdl.start();
        for(int i=0; i<msecs*frequency/1000; i++){
          double angle = i/(frequency/hz)*2.0*Math.PI;
          buf[0]=(byte)(Math.sin(angle)*volume);
          if(addHarmonic) {
            double angle2 = (i)/(frequency/hz)*2.0*Math.PI;
            buf[1]=(byte)(Math.sin(2*angle2)*volume*0.6);
            sdl.write(buf,0,2);
          } else {
            sdl.write(buf,0,1);
        sdl.drain();
        sdl.stop();
        sdl.close();
      public static void main(String[] args){
        Runnable r = new Runnable() {
          public void run() {
            Tone t = new Tone();
            t.setVisible(true);
        SwingUtilities.invokeLater(r);
    }

    JLudwig wrote:
    Any reason why you call getSourceDataLine() twice? ..Oh wait, I know this one (..snaps fingers. yes) it is because I am a mor0n, and forgot the class level (static) attribute declared earlier in the source when I (re)declared the local attribute and called getSourceDatLine (which was redundant, given the next line, which as you point out also called getSourceDataLine).
    There are (at least) two ways to correct this problem.
    1) Remove the class level attribute and the second call.
    2) Remove the local attribute as well as the first call (all on the same code line).
    Method 1 makes more sense, unless you intend to refactor the code to only instantiate a single SDL for however many times the user presses (what was it? Oh yeah..) 'Generate Tone'.
    My 'excuse' for my odd programming is that this was 'hacked down' from a longer program to form an SSCCE. I should have paid more attention to the fine details (and perhaps run a lint checker on it).
    Thanks for pointing that out. I guess from the fact you spotted it, that you have already corrected the problem. That you thought to report it, gives me confidence that you 'will go far (and be well thought of, besides)' in the open source community.
    ..This is quite handy, thank you.You're welcome. Thanks for letting us know about the error (OK - the pointless redundancy). Thanks to your report, other people who see this code later, will not have to wonder what (the heck) I was thinking when I did that.
    Another thing I noted, now I run the source on a 400MHz laptop (it's hard times, here) is that the logic could be improved. At the speeds that my laptop can feed data into the SDL, the sound that comes out the speakers approximates the sound of flatulence (with embedded static, as a free bonus!).
    Edit 1: Changed one descriptive word so that it might get by the net-nanny.
    Edited by: AndrewThompson64 on Mar 27, 2008 11:09 PM

  • How to generate an impulse to test the short circuit in an inductor

    Hello,
    Im new to labview and i'm in need to perform SURG - SURGE STRESS TEST
    The purpose of this test is to detect an inter-turn short by applying a number of high
    voltage impulses (or surges) to the selected winding.
    Each impulse should produce a sinusoidal transient which eventually decays to zero.
    How to generate impulse using labview.
    Solved!
    Go to Solution.

    Hi Swathi,
    Please see the function "impulse pattern.vi" in signal processing --> Signal generation pallettes.
    Else you can browse through the examples in LabVIEW.
    Regards,
    Srikrishna.J

  • 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

  • Subtracting two waveforms, one aquired using DAQ analog voltage input, and the other one being internally generated

    Hello NI Community,
    I am new to LabView and was hoping someone might be able to help with a question I have. Right now, I am using a DAQ unit to sample an externally generated sinusoid and I would like to alter that signal by adding to it another signal that I could control using the front panel. Whenever I try to just connect the input with something like the sine waveform vi and put a subtraction sign between them it doesn't work (I get an empty waveform graph). To get around this, I have resorted to sending out a signal (through an analog output) and then reading the signal on the Daq, and then finally I add the two together. Doing it that way works, but it wastes two channels and I imagine there is a better way. I have attached my VI, and I labelled the location of interest  "Where the Signals Get Subtracted", which is currently shown using the two inputs.
    Thanks,
    Leo

    What a mess.  I have no idea where you are trying to do the subtraction.  Can you make a very small VI (one whose Block Diagram fits on a single screen) that shows what you are trying to do?  Include the Sine Wave Generator, and you can include a "Black Box" that says "From DAQ".  But thank you, at least, for posting code, not a picture.
    Here's a suggestion that may help make things less messy -- do you know about the Diagram Cleanup tool?  See the icons at the top?  The right-most one looks like a broom next to a VI.  Save your VI first (in case you don't like what it does), Select All (Ctrl-A), then click this button -- you may like the result.
    Bob Schor

Maybe you are looking for

  • How to populate field on page with Primary Key value from previous page

    I am trying to create a patient tracking system for a group of doctors. There is an add patient form based on the Patient table (which has Patient_Id as its primary key) which branches to a pre-operative assessment form. I would like to populate the

  • No menus, buttons, address bar after installing Firefox4=unusable browser

    After upgrading to Firefox 4, my previously open tabs open, my bookmark tab is displayed (in the wrong order: first tabs then bookmarks is not the work sequence). But I don't have any buttons, menu bar, address bar, or search bar. There is a Firefox

  • Bridge icon missing in systray

    The Bridge Icon in the windows system tray isn't visible anymore, even if Bridge.exe seems to run after I closed the Bridge window. I cannot start or re-open Bridge from the system tray - even in the extended version of the tray where all icons are s

  • Smartform barcode problem

    I have designed a smartform prints barcode. On the left hand side there is barcode window and right hand side another window that holds some text for printing. Both windows are same level ( same line horizontally) . When i try to print, barcode print

  • Are there any limitations in the Student Edition

    Hi, I just purchased the Student Adobe Creative Cloud. Are there any limitations? Also, can I put this on both of my personal computers, or just one? Thanks!