How to freeze analog output ?
Hi,
In my LabVIEW program, I need to freeze analog outputs (keep the last value) when appears for example an emergency stop.
In this program, sometimes I use "simples" values to write outputs and other times I use waveforms.
Is there an easy way to freeze outputs in both cases ? (a better solution than modifying all the VIs using analog outputs )
Thaks for your help !
Hi cpit,
when you need an emergancy behaviour in your output VIs you have to program it...
An easy way would be: IF emergency condition is met THEN don't output values.
So a simple case structure will do the trick...
Best regards,
GerdW
CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
Kudos are welcome
Similar Messages
-
How to switch analog output between two waveform frequencie​s
Hello,
I'm using a fairly simple VI to generate a square wave at our analog output board. I have the square wave controls in one panel of a sequence structure, and a "release" function in the other panel of the sequence. Currently the VI is programmed to switch from the original square wave to -10V when the Boolean control is switched.
What I'd like to do now is to modify the VI so that I can swtich between a square wave of a given frequency, say 100 kHz, to a square wave of a different frequency, say 10 kHz, or to DC -10V. But I'd like to be able to vary each frequency and amplitude independently.
Could anyone give me some programming pointers?
Thanks,
MichelleThanks to the three of you for the suggestions. I started trying a few of them, and then realized that what I had already built will work pretty well to update the frequency. I didn't realize that it would update the waveform in "run" mode -- I thought it would only do that in "run continuously" -- so I've found that I can change the frequency of the waveform by doing that. This doesn't allow me to change the frequency and the amplitude simultaneously, but I'm not sure yet whether or not I will need to do that -- I so will probably go ahead with the experiments I need to do with this set-up, then modify it if I find that I need to control both frequency and amplitude simultaneously.
Thanks for your help!
M. -
PICe-6259 with DasyLAB 9 - How to do Analog Output
Hi,
I'm trying to get a small project working in DasyLAB 9.0.2 and I need some serious help.
I'm working with a PCIe-6259 and NiDAQmx 8 is installed. I simply want to create a program that uses a slider to adjust the analog output on 4 channels and read the slider value on a meter. This is a fresh installation of DasyLAB.
Here's the program that I setup and the errors that I get.
I select: Modules -> Input/Output -> NIDAQ -> Analog Output.
I adjust the properties of the DAC module to include channels 0,1,2,3 and select OK. (I don't adjust any of the other properties)
I then select: Modules -> Control -> Slider
I adjust the properties of the slider to include the same channels as above.
I then select: Modules -> Display -> Analog Meter
I adjust the properties of the meter to include the same channes.
The meters and Analog output are wired in parallel.
I get the following errors:
NI-DAQmx: Error Message
Driver: Task DA00, Version: 0.15
Possibly Reason:
-> The module can process the number of "values to be written".
File: ProcessData_KONTINUIERLICH.H, Line: 39
When I press OK I get:
NI-DAQmx: Error Message
Driver: Task DA00, Version: 0.15
Possibly Reason:
-> The driver does not use all NI-DAQmx task channel names. This is not valid, reconfigure the module to use all task channels.
Note: A NI-DAQmx task for analog / digital / frequency output must not have more than 16 channels. If you need more than 16 channels for the output, you must use more NI-DAQmx tasks.
File: MODUL_DA.C, Line: 2131
Any help to point me in the right direction would be greatly appreciated.
The next part of my program will include acquiring data from the analog channels, but I need to get the AO working first. I've run into some issues with Analog Input as well, but I thought I should start with AO first.
Thanks in advance!
ChrisHere's what I did using the NI-DAQmx simulation mode:
- create two tasks
Analog Output - 4 channels, 1k output rate, 100 samples to write, Continuous
Analog Input - 4 channels, 1k input rate, 100 samples to read, Continuous
Save them. Start up or synchronize DASYLab (Under Measurement Boards Settings - NI-DAQmx - Synchronize with... in earlier versions, it's under Hardware Setup)
- Create Slider. Open Slider properties, click on Options, Synchronize to the AO task that you created. This step is really important - it ensures that the data rate matches what NI-DAQmx is expecting.
- Connect Slider to NI-DAQmx AO module, configured for 4 channels.
- Create AI module. Connect to the AI task that you created.
Press Start. It should run. I can't verify absolute accuracy in simulation mode, but, I received no errors.
Your first error is probably the result of the timing being wrong - the Slider defaults to the "Driver" timebase. The rest of the errors seem to be a cascade off the first.
Note - my simulation did not work without the Analog Input. It generated no data. That may be an artifact of the simulator, but, once I put an Analog Input on the worksheet, it ran okay.
I hope this helps.
- cj
Measurement Computing (MCC) has free technical support. Visit www.mccdaq.com and click on the "Support" tab for all support options, including DASYLab. -
How to store the output of a analog to digital converter into an 2D array
Hi
I am doing my M.Tech Thesis in Image reconstruction and I am using labview for simulation and I want to know how to store the output of a analog to digital converter into an 2D labview array.nitinkajay wrote:
I want to know how to store the output of a analog to digital converter into an 2D labview array.
How exactly are you performing 'Analog to Digital'???
Grabbing image using camera OR performing data acquisition using DAQ card OR some other way????
I am not allergic to Kudos, in fact I love Kudos.
Make your LabVIEW experience more CONVENIENT. -
How to avoid delay during analog output generation by changing its frequency?
Windows XP
LabVIEW 7.1
PCI-6036E + BNC-2120
Hi,
I am going to create a vi to generate an engine speed sensor signal (a simple square wave with specific missed pulses, in my case 58 pulses “teeth” and 2 missed pulses “missed teeth”) as an analog output but in addition give me the opportunity to control parameters for example frequency online to simulate the engine speed changes during running that vi. For this purpose I have started with “Continuous Generation.vi” which is available in NI Example Finder under the following path:
Hardware Input and Output > Traditional DAQ > Analog Output > Continuous Generation.vi
Then I modified it towards above mentioned goal, all related vi s are attached. The main vi is: "Motor Signal Generator_1.12.vi"
At the first try it looks that it works properly but when have a look on that more accurately with Oscilloscope (fortunately I have a good one: Agilent 54621A – 60 MHz, 200 Ms/s) obviously there is a gap (delay or Jitter) whenever I change the engine speed. It is also attached in Signal generation_problem report.doc file.
Note: Small gaps are OK and related to predefined missed teeth but the big one is happened during changing engine speed.
As far as I understand it is related to the time which case structure in AO C-GEN sub-vi needs for AO reconfiguration each time after changing the engine speed (update rate). How can I get rid of this delay or gap during signal generation and generating completely continuous signal?
I have to mention that obviously I changed the frequency by changing the update rate. The other possibility is to change the number of updates in one period (refer to "generate arb frequency.vi" in NI site: http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=B45EACE3E48F56A4E034080020E74861) which resulted in no delay however then I can not change the frequency continuously but step by step (for example jump from 5Khz to 2.5KHz immediately) and this can not pass to my application.
Any hint is appreciated.
regards
Attachments:
Signal_generation_NIsupport.zip 81 KBHi Roozbeh,
The following example will allow you to vary the pulse train frequency during run time.
Thanks,
Lesley Y.
Attachments:
GenDigPulseTrain-ChangingSpecs.vi 75 KB -
How to synchronize analog input and output from two different USB daq boards
Hi all,
I have two very differnt USB boards the NI USB 6008, which I am using to acquire the data (Analog Input) and a NI USB 9263, it is an Analog Output only board that I am using to deliver a signal (in this case a square pulse). The reason why I am not using the 6008 Analog Ouputs is because I need to deliver negative voltages and need the full +/-10V range.
Looking at similar posts I am pretty sure that I can't use an external trigger or a shared clock, I also tried to use the synchronization of timed structures but no cigar.
I am including a quick vi that I whipped out showing how the signal jitters due to the lack of synchronization. The AO from the 9263 connects to the AI in the 6008 in this example.
Solved!
Go to Solution.
Attachments:
Test Pulse.vi 117 KBI talked to a specialist in the phone and tols me that it is not possible.
-
How do I get an analog output signal from my PCI-MIO-16E-4 card?
I need an analog output from 0-10 V to control the mass range on a mass spectrometer. Do I use the DAC0out channel to do this? The manual only talks about analog out (ao) channels. Is this the same as DAC0out and DAC1out? How do I set up the DAQ assistant for this process? I do not need a waveform, only a constant signal.
Yes indeeded. The DAC0out and DAC1out are the analog output channels (ao0 and ao1).
Simply follow the examples that ship with LabVIEW. You can also easily create code with DAQ assistant. -
Hello!
I have a PCI 6251 card, and using DAQmx C function to generate a wavwform. (single channel ).
But, how to creating a multi-channels analog output task, and had a different frequence in each channels?
Thanks.This is getting to be a common question!
The answer is, you can't.
If the rates have common factors, you can use a higher overall rate. The slower waveform will simply have extra points in it to make up for the higher update rate.
John Weeks
WaveMetrics, Inc.
Phone (503) 620-3001
Fax (503) 620-6754
www.wavemetrics.com -
How can I use two analog output channels simultaneously?
I am using PCI6110 DAQ card. I want to run two separate VIs on one computer. Each VI output a waveform to one analog output channel. How can I do this simultaneously without interfering each other?
ThanksHi Stephen,
This can NOT be done with two seperate VI's.
The issue is in the hardware/driver.
Your hardware has a clock that controls how fast updates to the AO occur. That clock can only have one value at a time. I will let your contemplate the complications that come up with two different clock settings being active at the same time (see below).
So how do you work around this complication?
You will have to develop a single VI that OWNs both output channels. That VI will have to accept start,stop,configure, etc commands from the two clients (what you will have to convert your existing VI's into). If you decide to place a restriction on the services you provide to the clients along the line of "only one sample rate at a time" you will be making your li
fe much easier.
If I was contracted by a customer to do what you have asked, I would try to combine the two existing VI's into one or simply buy a second 6110 and avoid all of the hassles. Both of these approaches would end up saving the customer money in the long run while freeing them of any restrictions that where established in order to develop the "server".
I hope this helps,
Ben
Ben Rayner
I am currently active on.. MainStream Preppers
Rayner's Ridge is under construction -
How to change the update rate of an Analog output in a loop
I have to generate a ramp at a decreasing frequency. I use a shift register in a "for" loop to decrease the rate of the analog output. Unfortunately, the loop or the analog output initialisation take a too long time delay..
How can I solve this problem?
Any help is greatly appreciated
Thank youHello;
I'm attaching an example VI that shows how to change the output rate on the fly.
Hope this helps.
Filipe
Applications Engineer
National Instruments
Attachments:
aochangeonthefly.zip 47 KB -
How to reset buffer pointer for analog output generation?
I am doing a finite analog output generation on a USB-6216
Sequence of events:
DAQmx Create Task
DAQmx Timing (finite samples, 1000Hz)
Use DAQmx timing property SampQuantamples per channel to set buffer size
Write buffer with DAQmx Write
Repeat
DAQmx Start Task
DAQmx Wait until done
DAQmx Stop Task
Until finished
DAQmx Clear Task
I get a full waveform output on the first iteration of the loop. On subsequent iterations I get only a small section of the waveform, but no error. It seems that it is regenerating the waveform, because when I switch off regeneration I get an error at Start Task, but before it can regenerate all the data Wait Until Done.vi decides that the generation is done and exits, stopping the generation.
I have done this with a PCI device and it works fine; every call to Start Task generates the whole waveform again.
OK, so it looks like after every waveform generation completes I need to reset the pointer to the start of the buffer, so that the Wait Until Done vi does not think the generation is done. Or - maybe there is a way to reset the "Generation Done" state?
I'm sure there's an easy way to do this....?Hi CDancer,
Many thanks for contacting National Instruments. If I can start by giving some general advice, it would be well worth posting your actual VI. This helps others on this forum in helping you with your application.
From the sounds of things, you want to do continuous analog output generation. I have had a look at the examples that come with LabVIEW and I think you should look at the one below.
I would have a look at some of the DAQmx examples that come installed with LabVIEW. The following example would be particularly relevant I feel
Cont Gen Voltage Wfm-Int Clk-non Regeneration.vi
Please let me know how you get on.
Many thanks,
Andrew McLennan
Applications Engineer
National Instruments -
How to synchroniz​e two analog output with USB-6353 sharing a trigger
I'm have the need to synchronize two analog output on the same device (USB 6353) sharing a trigger signal on PFI0.
The programming environement is Visual C++ , and the code I wrote is as following:
DAQmxCreateTask ("", &Ao0TaskHandle); // is the task handle for the analog output Ao0
DAQmxCreateVoltageChan((Ao0taskHandle,"Dev1/Ao0","",-5.0,5.0,DAQmx_Val_Volts,NULL);
DAQmxCfgSampClkTiming(Ao0taskHandle,5000.0,DAQmx_Val_Rising,DAQmx_Val_ContSamps,1000);
DAQmxCfgDigEdgeStartTrig(Ao0taskHandle,"/Dev1/PFI0",DAQmx_Val_Rising);
DAQmxCreateTask ("", &Ao1TaskHandle); // is the task handle for the analog output Ao1
DAQmxCreateVoltageChan((Ao1taskHandle,"Dev1/Ao1","",-5.0,5.0,DAQmx_Val_Volts,NULL);
DAQmxCfgSampClkTiming(Ao1taskHandle,5000.0,DAQmx_Val_Rising,DAQmx_Val_ContSamps,1000);
DAQmxCfgDigEdgeStartTrig(Ao1taskHandle,"/Dev1/PFI0",DAQmx_Val_Rising);
DAQmxWriteAnalgF64(Ao0taskHandle,1000,FALSE,10.0,DAQmx_Val_GroupByChannel,AOdata,NULL,NULL); AOdata is a buffer containing a sinwave
DAQmxWriteAnalgF64(Ao1taskHandle,1000,FALSE,10.0,DAQmx_Val_GroupByChannel,AOdata,NULL,NULL);
DAQmxStartTask(Ao0taskHandle);
DAQmxStartTask(Ao1taskHandle);
What happen as result of the code is that only the Ao0 channel get the sinwave output , but not the Ao1 . It seems the two channels are not synchronized.
What is wrong in my code?
Please any help non referred to a LabView soloution , first because I'm not a LavView programmder and secondly the project impose C++ as the unique environement.
Thanks
EnkyIt will depend on what you are programming the NI 5112 device with.
If you are using LabVIEW, you can use the example program attached below. In it, it will show you how this is done.
If you are using VB, VC++ or CVI, you can look at one of the NI 5112 shipping examples that are installed on your computer. These are located in the VXIPNP folder. For example, the VC++ example would be located here:
C:\VXIpnp\WinNT\NISCOPE\Examples\c\MStudioC++\5112Sync
These examples will show you how to synchronize the two digitizers.
Let me know if you have any questions about these examples.
Brian
Attachments:
Multiple_NI_PXI-5112_Synchronization_Demo.llb 151 KB -
How to combine the analog input and analog output vi's
Hi !
I have a perfectly running triggered analog input acquisition vi. I have a seperate vi for analog output that's running perfectly too. Can someone tell me how to combine these two operations so that I could get a vi that does simulataneous AI and AO without missing triggers. I have tried all the different kinds of configurations suggested by NI support but nothing seems to work. Can someone help ?
thanks,
Shiva
Attachments:
dac_good.vi 77 KB
adc_good_fw.vi 124 KBShiva;
I'm attaching a good Application Notes that shows how to synchronize multiple DAQ tasks, in Labview.
Hope this helps.
Filipe
Attachments:
Advanced_Sync_Techniques_for_DAQ.zip 166 KB -
How to equalize an analog output by a known frequency response?
I'd like the analog output of my system have a flat response. What I'm going to do is first measure the stimulus signal, then using a filter to compensate the frequency response to make the following output signal flat. The difficulty is how to build a filter according to the frequency response. I know it's easy to do by using digital filter design of signal processing toolkit. But I need to do it by LabVIEW and the response is changed frequently. Any suggestions?
BillThe filter does the signal "adjusting." Filters are typically characterized in the frequency domain, but the work on the signal fed them, which usually occurs sequentially in time. The lookup table is just to select the appropriate filter so you do not have to do a lot of calculations at run time. As an example, suppose you have just treble and bass and only one cut and one boost setting for each. You measure the stimulus and find the bass is too high and the treble too low. You select the bass cut and the treble boost filters for this run. If this is expanded to octave (or third octave) filters and 16 gain/attenuation settings in each band the lookup table approach saves time and may also provide a compact means of recording the equalization settings with your test data (rather than filter coefficients which do not actually indicate the response without characterizing the filter).
Lynn -
how can i synchronize analog output and analog input timings to generate and measure voltage at the same time.
Read this Tutorial
http://zone.ni.com/devzone/cda/tut/p/id/3615#toc3
And also refer to this link where You have repeated this question.
PS: Please stick to one thread. That way, its easier to keep track of your query and answers
Maybe you are looking for
-
HELP! I have a fully functioning imac running snow leopard fine (recently upgraded to it) because of flash and java issues on browsers seemed I needed to get on to Lion or Mountain Lion so I upgraded the RAM to 2.5GB and now it will not let me upgrad
-
Reconcilation accounts in vendor account group
Hi All, How check which reconciliation GL accounts are assigned to vendor account groups. Ex: Domestic vendor account group and foreign vendor account group, i want see what are reconciliation GL Account are using Domestic vendor account group and f
-
What Happened to My Avatar?
My Community avatar has been a url to a photo for some time. Suddenly, it grew so large that it completely covered my posts. I removed it and tried a url with an alternative photo. Same result, so I've switched to a standard avatar. Is it just me, or
-
i downloaded a new one and i keep getting this. ive downloaded photoshop and it keep saying i cant import video inport video frames to layers and that i need to get dynamiclink so i downloaded it and did everything they said and it still doesnt work
-
Hi, Hope someone could help to resolve my problem! The thing is that I have script which installs application, but in first action script check if there is any previous version installed and if is then it give prompt for users to remove that version