Sending waveform to function generator?

Hello all,
I am using an agilent 33205A function generator and require it to use a
special driving waveform.  Currently I load the waveform using
this HP Benchlink software.  I would like to automate this in the
startup of my vi.  Is there a way to download a "home-grown"
waveform to the function generator using labview? 
Thanks,
Azazal
Azazel
Pentium 4, 3.6GHz, 2 GB Ram, Labview 8.5, Windows XP, PXI-5122, PCI-6259, PCI-6115

If you're using the driver from here, then use the function called ag33xxx - Arbitrary Wfm Ops. You will have to create the waveform in the form of a 1D array. Look at the high level example called ag33xxx - Arb - Application. I don't see a function in the driver that allows you to output a defined waveform so you may want to look in the instrument manual to see if there is such a function. If there is, then it should be a simple matter to read it and then place the values into LabVIEW as a constant or something you read from file.

Similar Messages

  • Acquire waveforms from function generator to oscilloscope

    I have a problem. We constructed a virtual function generator and a virtual oscilloscope. It's working well, the oscilloscope is displaying the (almost) correct data. My problem is that the waveform displayed in the oscilloscope vi is always sine, although the selected waveform in the function generator is already different.
    I should replace the constant 'zero' with something so that the cases will change in order for my oscilloscope to display different waveforms. Is there a way to acquire the values of the constant enum, for instance, from another vi to this vi?

    Yes, you would need to replace the constant with a control. Once you do this, in the main VI you simply do a right click on the subVI's terminal and select Create Control/Constant that but you cannot change it as the subVI runs.

  • Sending .arb files to function generator

    Hi
     i am  very  fresh to labview  programming.
     I have  created some  waveforms  using  HP BenchLink software(and saved in .arb file  format).  Can i send  these  wave forms  to  a  function generater  through Labview  program . if  possible   how  can i do that
    Thanks
    jith

    Hi
     Yes  i have  downloaded the driver ag3xxx and  installed .  and   also got  some  advise from [email protected]
      Their  comments  follows .
                    Yes you can read the values from the .arb file into LabVIEW and store
    the values in 1D array or text file and then send it to the function
    generator you are using.
         Basically you would have to use APIs such as read from binary
    file(there are examples present in LABVIEW example finder which shows an
    example of how you could read a binary file.) After reading from the file
    you could store its values in an array or a text file and the read from
    this array and send the data to the function generator you are using. If
    you are using a function generator which is not made by National
    instruments you have to install the device drivers for that instrument fro
    LABVIEW, you could install them from www.ni.com/idnet.
                 i have  used  some  eg:  programmes   given in LV to read binary files .
                 The  function name is  "read binary files vi " .  the  out  put  of "read binary files vi "
                 is  data .  I am trying  to store this  data  in an array  , but   got  stucked  ,  in finding
                 a sutable  function to send  this  array valuse  to  the  function generator. Can  i send
                  the  array out  put  directly to a  FG  ?
     Thanks
     jith

  • I want to use the Function Generator VI to send command signals through the NI 7344 motion controller. This will be a closed loop servo valve system. I want to be able to change from say a square wave to a sine wave on the fly. Idea's?

    I am going to run tests that require an actuator to move using various types of arbitrary waveforms such as sine or square. The NI 7344 is hooked to the UMI that is going through a driver for a servo valve. The loop is analog and it is closed. I have played with some of the examples but can't get it to work. I have used the function generator VI to generate a signal but I think I am using the wrong input VI to the motion control board. When I use what I have it moves the servo and then stops. It doesn't continually generate the signal.
    I would love to use the controls on the function generator vi to control frequency and amplitude ect. Any help or pointer would be helpful. Thank you in advance.

    Hello,
    I'm not clear on exactly how you want to use the generated data but I'm assuming they will be used as your target points.
    There's a built-in example for motion called 'One-Axis Contour Move.vi'. This example demonstrates how to provide your target points as 1-D array. All you need to do is to replace the input array with the output of the function generator. In order to have it run continuously, use a while loop. You can further program your application so that it'll change the waveform on the fly by monitoring the user interface but this might be little little tricky as you will need to reset the move and load the new generated points while keeping track of your current position.
    I hope this helps. Let me know if you have further questions regarding this
    application.
    Best regards,
    Yusuf C.
    Applications Engineering
    National Instruments

  • How to read data from a GPIB when sending a function generator command

    I'm using Visual C++ with the ComponentWork ActiveX and I'm tring to plot a
    CWGraph using the data coming from a GPIB device. When I write command such
    as "*IDN?" to the GPIB device, everythings if fine and I can read what the
    GPIB device return me. But when I send a command like "SOUR:FUNC SIN;SENS
    DATA?", the writing seems to be okay, but when I try to read the data, I
    alway get a "Timeout expired before operation completed" error message. I
    have tried with the CWGPIB and with the CWVISA but the result are the same
    with both.
    My reading code looks like this:
    COleVariant vReadBuffer;
    vReadBuffer = m_VISA.Read( COleVariant( (short) 2000 ) );
    and it work fi
    ne for "*IDN?" or for multimeters command.
    I want to know how I must read the data for function generator commands.
    Thank alot

    It sounds like your device is not accepting that command string as valid. The string you listed above is probably missing a colon between SENS and DATA. "SOUR:FUNC SIN;SENSATA" Try sending this string in Measurement & Automation Explorer to the instrument first to make sure it is working.
    Best Regards,
    Chris Matthews
    Measurement Studio Support Manager

  • 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

  • Send data using exel file to function generator

    Hi all,
    I have one function generator which I controll with LabVIEW, I attached here the simple code.
    I would like that code read some data from exel file .
    May you please help me?
    Thanks
    Attachments:
    DG4000General.vi ‏43 KB

    I used different example like the one that I attached but I can not connect with m device.
    Now I can read my datas from Exel but how can I send to generator?
    I really confused.
    thanks in advance
    Attachments:
    Untitled 1.vi ‏34 KB

  • Oscillioscope and function generator

    Hello,
    How difficult is it too create a virtual oscillioscope and a function generator that outputs through ethernet or usb to some NI module (Chassis, analog, digital etc) that will send signals to a circuit? So, basically instead of having an oscillioscope or a function generator, you create a virtual one on labview and can send signals to the circuit in the real world. Is that even possible? And if it is how hard do you think the task would be? 
    Thanks in advance for all the input!

    So I happen to have a myDAQ at home and I thought I would try to use it as a scope.  Checkout this video after a 1:30 for a demo of some of this software.  The software it comes with has all the test panels for various instruments for scopes, DMM, function generator, aritrary waveform generator and several others.  The hardware also appears as a normal DAQmx device if you so choose to write your own software.
    Honestly it isn't half bad.  Maybe it's because the software mirrors normal scope functionality but I was able to see my signal and understand it, when I had no other hardware that was capable.  It won't replace a desktop scope but it's what I had on hand.
    Unofficial Forum Rules and Guidelines - Hooovahh - LabVIEW Overlord
    If 10 out of 10 experts in any field say something is bad, you should probably take their opinion seriously.

  • USRP as a function generator

    Is it possible to use USRP as a function generator ? If yes can any one please provide me the sample VI. I want to generate Sine wave, Square wave, Triangular wave etc. Also I need the option to vary Frequency and Voltage. Is it possible to implement Function Generator mechanism on USRP using LabView? Please guide.  

    Hello josephkirmani,
    When you say you want to use the USRP as a function generator, do you mean you want to be able to output and send a function over a certain RF carrier frequency? If so, I think you might find the example below helpful, it uses frequency modulation (must have the modulation toolkit installed) in order to embed a signal of your choosing (square, sine, triangle…) into a FM modulated waveform to be transmitted over a specified carrier frequency. Just switch out the Basic Multi Tone.vi for your preferred function from the Waveform Generation Palette. If that’s not what you are trying to do, please clarify. 
    Example: https://decibel.ni.com/content/docs/DOC-24206
    Matthew R.
    Applications Engineer
    National Instruments

  • I am using the function generator example

    i am using the function generator example to send sine, triangular, sawtooth waves to oscilloscope.
    I would like to send not only the symmetric but also unsymmetric amplitude of each wave.for example the upper peak of the amplitude, i could adjust as 2 volts and the lower peak as 3 volts or vice versa.how it works in function genartor example.Please note the i am using data acquisition card AT- MIO-16XE-50 for this purpose.please tell me with some example.

    To add a terminal to the connector pane, right click on vi icon and select show connector. Notice that the mouse pointer turns to a wiring tool when over the connector. Click on a small box inside the pane and then click on a front panel control or indicator to connect that box to the control/indicator. Then repeat for the next control/indicator. Do this until all the inputs (controls) and outputs (indicators) you need are defined. Normally, all inputs are on the left half and all outputs are on the right half, and Error In is connected to the bottom left box, and Error Out is connected to the bottom right box. You can change the terminal pattern by right clicking on the connector pane and pointing to pa
    ttern and then selecting a pattern. To make the graph as an output, click on the top right box then click on the waveform graph.
    As for continuous update, put the graph inside a loop where you generate your waveform and wire the output to the graph. As long as the loop is running, you will get a continuous update. The Y axis can be configured for amplitude and the X axis for time. Right click on the graph and select properties. Play with this to become familiar with all aspects.
    - tbob
    Inventor of the WORM Global

  • How can i add one wave in in our Function generator example?

    how can i add one anotehr wave in our function generator example. i want to use superposition and add one more wave to our first wave in function generator and see the result.thanks

    Hi hood1,
    2 options:
    1) You can add many waveforms by combining them into one Array.
    2) Use the Waveforms tools, that give you many option for adding waveforms. one after the seconed or adding the Y array of a waveform to other Y array of second wave form, and so on...
    Hope it Helps...

  • Create a melody with Labview/ Function Generator

    Hi (first sorry for poor english, not my native language)
    I have a project at school which is creating a melody using Labview and a function generator. I've worked on it for hours now and i still can't get through it.
    I joined the vi file with my post so you can get a look at what i've done so far.
    First, i do'nt know which loop i have to use (u'll understand soon enough if u just take a look at the vi file), the problem is that i want to create 4 arrays using 2 text files.
    The first one is used as a reference : exemple the frequency to play an A is 440Hz, so my first text file looks like that :
    A 440
    B 493
    the second one is my melody, which includes the notes and the tempo (in ms)
     , so it's like :
    B 1000
    C 1500
    I used the first two loops to seperate each string lines of my files so I have at the end 4 different arrays. One containing the note's references, one containing the frequency, one containing my melody's notes and one containing the duration of each notes.
    The problem is that when I use a while loop, it seems that my arrays are not containing every elements it should, it only has the last one. Just try to run the vi file.
    Could anyone give me some help ? Don't hesitate to ask more questions if u didn't fully understand my problem !
    Thx
    Attachments:
    PR.vi ‏19 KB

    Hi claudeuntel,
    Your array contains just the last note because at each for loop iteration a new table is created.
    You have to send the table you created at one iteration to the next one.
    To do this you can use shift register.
    I didn't have tested the VI below but it should looks like that.
    Valentin
    Valentin
    Certified TestStand Architect
    Certified LabVIEW Developer
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Travaux Pratiques d'initiation à LabVIEW et à la mesure
    Du 2 au 23 octobre, partout en France

  • DC offset problems in NI-5401 function generator card

    When i give a Dc offset of 1 Volt the output of my function generator reads 1.97v. what is the reason behind this,why is it so what setting have to be made so as to get the dc ofset only when no ac signal is given.

    Hi. The NI 5401?s output voltage is specified in terms of 50 ohms. This means for a 50 ohm load, you should see 1.0 Volts for a 1.0 Volt setting when the load is 50 ohms. For an other than 50 ohm load, there is a voltage divider action that takes place, where the voltage will vary up to double the size for a high impedance load, such as most default oscilloscope settings. The Connecting Signals>>ARB Connector section of Chapter 1 of the NI 5401 user manual describes this in further detail.
    To generate just a DC voltage level, there is an option for DC as the Waveform to use when programming the device. The LabVIEW niFgen Function Generator Example shows this on the front panel. If you are using the Sources Soft Front Panel, when the Standard Function Output is se
    lected, there is a DC Voltage level selection button available to be selected to generate a DC voltage.

  • Problems with the Stanford Reseach Systems DS345 Function Generator

    I'm writing a labview program that will allow operation of the Stanford Reseach Systems DS345 Function Generator. The problem that I'm having is in the amplitude calculation. The way the driver finds the amplitude is by recieving an array of what are essentially y-coordiantes (on a cartesian graph system), finding the max and min of the array, and subtracting them.
    This is where the problem lies. I've designed my program so I can type in an equation, see the graph of this equation, and send the y values into a the subvi provided by the driver. This subvi is the one that finds the amplitude...etc and sends it to the oscilliscope. However, when I use a formula for something as simple as sin(x), it caclulates the amplitude as 2. This is because the max/min values of sin(x) are 1 and -1. So the function generator reads in an amplitude of 2. This amplitude of 2 results in a sine wave that oscillates between 2 and -2. Obviously, this is not what I'm looking for. I know by dividing the sine wave coordiantes by 2, or just using the max/min value to be sent to the function generator as the amplitude will work in this case, but not for all cases (ex: sin(x)*e^(-3x). I'd appreciate any suggestions on how to fix this amplitude problem for all cases.
    In addition to having this sine function, I wrote a subvi that essentially generates a series of pulses depending on the user preferences. It's relativly complicated to explain how it works, but it just sends an array of y-coordinates (similar to above, and they are sent to the same subvi to be sent to the function generator). This array is the one that truly puzzles me.
    For example, I have a single pulse, with height 5. The y array is 10 places big. At index 0 to 3, the y value is 0. At 4 to 6, the value is 5. And from index 7 to 9, the index is zero again (Imagine a pulse "_|-|_" , it may help understand this).
    I send this array of 10 places to the same subvi as the one described in the sine function earlier. I would expect the amplitude to go in as five (max - min), and it does. However, when determining the actual value from the oscilliscope, it turns out to be 10.8 peak to peak voltage. The values range from -.8 volts to 10 volts. I can't imagine why they do not range from 0 to five as specified in the array which is sent.
    If anyone has any answers, suggestions or questions concering this description, I would greatly appreciate it. Feel free to post answers or email me at: [email protected]
    I'll be more than happy to post the files if someone wants to look at them.
    Thanks again,
    Jim Dalton
    North American Lighting
    [email protected]

    I am taking these measurments using the measurment and automation explorer test function. I set my range on all channels to 0-8khz and Have been inputing no more than 8khz. What leads me to believe I have a software or config problem is that I sent in a module to NI for repair and this is the brand new one they sent me back. While testing this module, I also have a 1102 module and 1124 module on the scxi-1000 chasis and both of those are working as specified. I also moved the 1126 module to slot 1 and ran it that way as well when I replaced the chasis.

  • Hp 3311 A function generator GPIB

    Hi, I've a Hp 3311 A function generator and I'd like to control it by GPIB. I'd tested with the example in labview "GPIB.vi" but when i send it a command, pej "APPLIN 1.0E+3, 3.0, -2.5" it doesn't work (It makes only a sound "Bip" ).
    Does anyone knows why the function generator doesn't generate the signal?
    Note: When i send it the command IND?, the instrument returns the name "Hp 3311A", but when i send another command it doesn't work.
    Thanks. Regards, peliasrojo.

    Hi. I don't use the drivers, I'm using the example GPIB-VISA. I'm be able to change the type of function (sin, square, etc) but when i try change the frequency or the others parameters it doesn't work.
    I've attached the program (v2011). The program only tries to apply a square signal with visa commands.
    The manual shows an example of a sine function: "APPLIN 5.0E+3, 3.0, -2.5" that generates a sine function of 5kHz, 3Vpp and an offset of -2.5V.
    Thanks, regards Peliasrojo
    Attachments:
    GPIB-VISA (modificada).vi ‏11 KB

Maybe you are looking for