SignalExpress

cancel
Showing results for 
Search instead for 
Did you mean: 

signal express missing inputs for an analog output

I'm a new user to Signal Express, and I can't seem to get my analog output to work.  I loaded my custom waveform from a .lvm file and then used DAQmx Generate to make a voltage output.  I'm using a USB-6008 and assigned a virtual channel to AO0, but I get a "Missing Inputs" error.  What step do I need to add or what assignment do I need to change to get this to work?

Any help or instruction I can get would be greatly appreciated.  Thanks!
0 Kudos
Message 1 of 10
(9,233 Views)
when you configured the AO Channel did you set the mode to be N-Samples, Continuous, or 1-Sample?  To output a waveform it should be N-Sample or Continuous.
0 Kudos
Message 2 of 10
(9,221 Views)

Kurtruk,

Chris is correct in that a in order to output a waveform we need to do ‘N-Samples’ or ‘Continuous’, but the neither can be done with a 6008, as it can do a maximum analog output of 150S/s software timed (6008 Specifications - http://www.ni.com/pdf/manuals/371303h.pdf, p 22).

 Since this cannot directly be accomplished in signal express, the closest we can get is to bring in the .lvm signal and do a sweep through it, therefore breaking the signal up into small pieces. Inside the sweep, we would do a ‘subset and resample’ of a small number of samples and then get a mean (average) of the samples using the statistics step. This would give us a single point, which we can use as an input to the ‘Analog Output’ step for the 6008 when doing single point output. The sweep will take care of going through the entire waveform.

David L.
Systems Engineering
National Instruments
0 Kudos
Message 3 of 10
(9,203 Views)
David, could you please describe this procedure in detail, say from a generated sine wave signal.
0 Kudos
Message 4 of 10
(9,039 Views)

Hi delmeister,

The USB-6008 does not have a timing engine for analog output, and therefore cannot do hardware timed analog output. I am curious about your application overall, and what is trying to be accomplished. What output sample rate do you need, and how many channels will you need? Does the solution have to be USB? PCI? PXI? What hardware do you already have, or are you investigating into which hardware will suit your application? Knowing this information will best allow me to help with your application.


David L.
Systems Engineering
National Instruments
0 Kudos
Message 5 of 10
(9,012 Views)
I purchased this hardware for automotive related data acquisitions after doing considerable research on the options available.  I am currently trying to become familiar with SE and wanted to use the analogue outputs as signal generators for inserting and testing signals at various inputs.

I do not understand the hardware issue.  In my way of thinking, the software sends the device instructions of what value of voltage to put out at what time on the AO channels.  Otherwise, what is the point of the hardware having a spec of being able to put out 150 samples/s?
0 Kudos
Message 6 of 10
(9,007 Views)

Hi Delm,

I can see how the 150 S/s specification could cause confusion.  The device can in fact update its analog output up to 150 times per second, assuming that the software controlling it can update the value 150 times per second.  The problem that you are facing is that in SignalExpress you have very little control over when the different parts of your routine occur.  In LabVIEW or CVI, it would be relatively simple to:

  1. Generate an array of 150 samples
  2. Initialize your device
  3. Write the device a single sample at a time. 
  4. Repeat step 3 for as long as you like.

With that kind of routine, you would be able to get the max update of your device. 

With Signal Express, however, the method that David described previously would require you to:

  1. Generate a portion of a sine wave.
  2. Calculate the mean of that sine wave portion.
  3. Initialize your device.
  4. Generate the output.
  5. Repeat steps 1-4 for each updated value.

We have tried this method here, and the following is the cleanest sine wave that we could generate.  Note that this waveform has a period of about six seconds.  Increasing the frequency of the waveform will make it look even worse.

The real problem here is that the device has to wait for your processor to deliver a new value each time that it updates.  If you were able to use a different device that is capable of hardware time analog output, you could generate the array as the first step in signal express, write the array to your device, then allow the device to generate all of the samples.

Please let us know if you have any further questions.



Message Edited by Luke G on 01-04-2008 01:54 PM
Luke
Applications Engineer
National Instruments
0 Kudos
Message 7 of 10
(8,997 Views)
Thanks for going throught that effort Luke.  I do have a few questions

- I do not know what you mean by initializing the device.
- From the figure, you generated about 50 steps per cycle.  If the period of the cycle is 6 seconds then the step generation rate is about 8 Hz.  Is that correct?
- The generated signal goes negative, but the analogue output range is 0-5 volts.  Was this signal actually sent to an AO.
- I assume you used a sweep of some sort to generate the signal.  Could you in fact provide the details of what you did?

I tried this using a sweep of the phase in a created sine wave. I used a block size of 2 and followed this with an averaging step.  When I could get the software to work (rarely, see my threat inquiring about possible bugs), I did in fact get a signal that I was able to feed into one of the inputs.  However the best I could do was to generate steps at about 5 Hz.

Thanks again and looking forward to your reply.
0 Kudos
Message 8 of 10
(8,959 Views)

Hi Delmeister,

 

Initializing the device in LabVIEW or CVI consists of creating a task and setting the timing and input ranges. In SignalExpress, this is all taken care of in one step (DAQmx Generate Analog Output Step), which is one example of the extra computations SignalExpress has to do (doing this setup every iteration for our purpose) and why it takes more CPU usage than LabVIEW, therefore running slower.

Regarding the frequency of the waveform output, I am not sure of the exact frequency, but I believe 5-8Hz is a reasonable estimation.

 

>> The generated signal goes negative, but the analogue output range is 0-5 volts.  Was this signal actually sent to an AO.

- Yes, the signal was actually sent to AO, but we were actually testing with a PCI-6221.For the purpose of demonstrating software timed output, which is required for the 6008, the output signal will look the same on any board. You are correct that the USB-6008 can only do analog output 0-5V. Because we were using the 6221 is why we were able to generate -1 to 1v. My apologize in forgetting to mention this before.

The method you used to generate the signal with a sweep sounds like the steps we took as well (small blocks, then average the signal, then output). This correlates to why I previously said that the signal is slow, because of all the necessary computation LabVIEW SignalExpress does. If you need a guaranteed signal at a guaranteed rate, than we will need a card capable of doing hardware timed analog output.

I know you are using this for an automotive application, but I would like to know what other equipment you are interfacing with, what update rates and what tolerances you need.

David L.
Systems Engineering
National Instruments
0 Kudos
Message 9 of 10
(8,935 Views)
David:

I don't really have an AO requirement right now for my specific application.  I simply wanted to use the AOs as a signal generators for feeding the AIs in becoming familiar with the software.   It's been a while since I did any coding, but I am surprised that a $700 piece of software, and a CPU running at a couple of GHz are taxed when asked to calculated the average of two numbers (or why this little game even has to be played since the needed number already exists) and send the result out to a device only once every 6.67 ms.

But I guess this is what it is.  My main concern right now is getting the expected performance from the analog inputs.  Thank you for your time in looking into this AO issue, but would you mind helping me with my analog input issues as described in my thread (or ask someone there to respond to my last post)?

Del
0 Kudos
Message 10 of 10
(8,897 Views)