Multiple channel waveform output using a 6711 board

Hi,
I am writing a driver for VxWorks RTOS based on the DDK for a NI6711
analog output board.  I cannot find an example for timed waveform
output on  more than one channel. I adopted aoex3.cpp (which works
fine under VxWorks for one channel) to operate also multiple channels.
I set all DACs to timed and wrote to the waveform generation register
once for each channel. I tried several settings  for the number
of  channels:
    theSTC->AO_Mode_1.writeAO_Multiple_Channels(1);
    theSTC->AO_Output_Control.writeAO_Number_Of_Channe​ls(iNumChans);
None of the settings of  iNumChans results in the correct output  on all selected channels.
The comedi driver uses the settings
   theSTC->AO_Mode_1.writeAO_Multiple_Channels(0);
    theSTC->AO_Output_Control.writeAO_Number_Of_Channe​ls(0); But that does not work either
Any help would be very much appreciated.
Heike
Attachments:
aoex7.cpp ‏20 KB

Soory , here is the attached example
Attachments:
aoex7.cpp ‏20 KB

Similar Messages

  • Multiple inputs and outputs using DAQmx VIs

    Hello,
    I am fairly new with the LabView programming language.  I have a few training books that I have been reading, and I have been following online tutorials and reading the forums.  However, I have come to a problem where I don’t see a clear solution.  I am using LabView 2009 (9.0f3) and DAQmx VIs.
    I am using a NI 9172 chassis PLC, with two 9201 AI cards, 9217 AI RTD card, 9472 DO card, 9263 AO card, and two 9237 AI Bridge cards.
    I am reading eight analog inputs with the 9201 cards, two analog RTD inputs with the 9217 card, three digital outputs with the 9472 card, three analog outputs with the 9263, and eight analog inputs with the 9237 cards.
    I wrote a simple program to test one digital output task, two of the analog output tasks, and a single analog input task.  I put all of them in the same while loop, and it worked perfectly.  However, when I add analog input tasks to the same loop, I get an error 200022.    So I tested each sensor individually by changing the channel before each run.  I searched error 200022 and found that this is because I cannot start another analog input task until the previous one ends.  With this said, I don’t know how to acquire an analog voltage in the same task as an analog RTD voltage.  Both inputs take different constants in the start task DAQmx icon.
    Attached is my test program.  It is titled “Test All”. This is the program I used to test the various sensors.  I tested the input sensors one at a time, and it worked fine.  A few tasks are written just to test functionality, and will be added to later.  The data is only displayed on the screen.  I will add triggers and data write to disk functions later.  This program works now, but if I add more analog inputs, it will generate the 200022 error.
    Can someone show me how to correctly write the code for multiple inputs and outputs using DAQmx?  All training materials and tutorials I can find all show a single input or single output, not multiples of each.  Thanks for looking.
    -Randy
    Attachments:
    TestAll-NI.vi ‏32 KB

    Hi RandyC,
    The Knowledge Base article Using Different Types of DAQmx Global Channels in the Same Task goes into a little more depth of what Bryan is talking about, and it also includes some example code to help show what to do.
    Hope that helps,

  • Need advice on best way to acquire multiple vibration waveforms from a PXI-4472 board

    I'm using a PXI-4472 board to acquire vibration data from 8 proximity probes, each with different scaling. Confused as to best approach to achieve this given all the options with MAX, LabView and its Sound & Vibration toolset scaling. Reading other posts, it appears that 24 bit acquisition also requires some special treatment.
    This acquisition needs to be done continuously.
    As an additional side note, I will eventually need to synchronize these channels with the channels on 2 other 4472 boards.
    Any advice on how to use MAX in combination with LabView's AI CONFIG, START, READ, CLEAR and scaling
    for this application would be greatly appreciated.
    All the best,
    Hunter

    Hello Hunter --
    In regards to your questions...
    For scaling, I would recommend using either MAX or the Sound and Vibration Toolset (SVT) scaling, but not both together. The SVT is a bit more flexible, and in general I prefer that. One other thing to keep in mind about MAX is that virtual channels for accelerometers and microphones provide an option to control IEPE excitation, but in fact this can only be set from LabVIEW for the 4472.
    24 bit acquisition does not require any special treatment if you are only reading the scaled (i.e. voltage or engineering unit) data. If you use the binary array option for AI read, you will only receive the top 16 bits.
    If you use the SVT scaling, you should not worry about MAX at all. If you you do define virt
    ual channels in MAX for scaling, you should simply wire a channel array with those channel names into AI Config. Other than this, what you do in MAX should not change how you write the LabVIEW code.
    Please see the attached example for synchronizing PXI-4472s.
    Hope this helps!
    Bryan
    Attachments:
    PXI_4472_Continuous_Synchronized_AI.vi ‏156 KB

  • How to acquire data through multiple channels in parallel using PXI 6070 E, PXI 4071 and LabVIEW?

    Hi,
    I am using NI LabVIEW, NI PXI 4071, and NI PXI 6070E to measure current through a variable resistance. Now, I am using one channel from SCB-68, but I want to add another channel in parallel so that I can have two resistors instead of one that I cam measure current through them.
    I have attached a Pdf file showing the setup for hardware in use and LabVIEW code also.
    Can anyone look at these files and give me guide lines or ideas that can help me resolving this issue, please.
    Thanks in advance.
    Best Regards,
    Shaheen.
    Solved!
    Go to Solution.
    Attachments:
    IV copy for HS.vi ‏55 KB
    Layout of NI Cards.pdf ‏248 KB

    Your 4071 can only do one measurement at a time. Your DAQ cannot measure resistance either nor has it got any analogue inputs.
    However, you could use a multiplexer and multiplex your 4071 DMM. This wont give you simultaneous measurements but can acquire data one after the other, the speed is obviously dependent on the multiplexer you choose!
    Hope this helps.
    Beginner? Try LabVIEW Basics
    Sharing bits of code? Try Snippets or LAVA Code Capture Tool
    Have you tried Quick Drop?, Visit QD Community.

  • Continuous aquisition​of multiple channels to output file

    i am using the DAQ PCI 6254 along with the SCB-68. i am trying to sample 9 different voltages. i want to be able to start the acqisition and then have it run until i stop it a few minutes later with a button or switch because i dont know how long i will need to aquire. after it is stopped, i want to be able to save this to a .txt file.  i have tried using different loops but i can not get all the data into the file. i am new to labveiw so i sure there is a simple way to do this. any help would be great. thanks

    When are you sampling do you want to save the values in a tabulated form?
    How do want to save it?
    If your measuraments are real numbers you could use the VI Format into file along with the VI open file and closed file with a for or while loop to save in a tabulated form.
    For DAQ using SCB68 check the examples since there are some that show how to acquire voltage measuraments. You only have to add the saving part.
    I have a VI to give you an idea.
    Attachments:
    Temperature logger.vi ‏51 KB

  • Steps to create a VI to read multiple channels

    This is the first time I've used LabView.  I want to create a VI to be able to read viltages from multiple channels and output the value of each channel to individual numeric indicators in the VI.  I know how to read a single channel and I've created a task in DAQmax with multiple channels but how would I put that into a VI that will do what I need.
    Thanks,
    Albert

    Assuming you are using the DAQ Assistant and getting one sample per scan, then you just use the Split Signal and wire the outputs to your indicators.
    Message Edited by Dennis Knutson on 04-30-2007 09:49 PM
    Attachments:
    Split Signals.PNG ‏4 KB

  • Acquiring Analog Input from Multiple Channels in Labview

    Hello,
    i am working on a VI where i need to acquire signals from multiple channels in Labview using NI-9129.Initially i want to acquire contineous input signals (voltage and current) and display it on the graph.
    Having looked at forum and Labview examples i tried to make an initail VI but i am not sure if the setup i made needs any modification to serve my purpose.I am fairly new to Labview software.
    All i want is
    1.To acquire conteneously current and voltage 
    2.Display current and voltage individually on the graph.
    3.Perform some basic calculations like MAXIMUM,MINIMUM and AVERAGE values of voltage and current.
    4.Log the data into  excel file
    I have attached the VI i made so far.i need abit of advice if i am moving in the right direction or not.
    Thank You for having a look at my question.
    Attachments:
    Voltage-Current VI.vi ‏81 KB

    Engr_tech wrote:
    i think i already have the tdms for  data logging.as far as the tdms data logging is concerned,when i enable the logging mode to "read and log" the data logged inside the excel sheet would be seperate for current and voltage.?
    Is it practically possible to acquire data from 4 different channels and plot them.if yes,then am i right to assume that all i need is to modify the current VI for four channels having all of them in parallel.
    Yes, you are logging directly to a TDMS file.  This is definately the best route for data logging from a DAQ.  The currents and voltages will show up as different channels in the same group.
    To add more channels, just add them to your DAQmx task.  The logging will handle it with no issue.  Your calculations will also a little work to add the extra channels.  Same for the graphs, since you are using seperate charts.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • 6733 multiple frequency waveforms

    I am working with the PCI-6733 DAQ card in the DIAQMX C environment (Not Labview).
    I need the card to perform two separate (but not simultaneously on the same card) functions
    I need to be able to generate 8 sine waves of independently varying frequencies (from 50 to 70 Hz).
    I need to be able to generate 8 square wave of independently varying frquencies (from 1 to 10KHz).
    Any examples out there?
    Thanks,
    A Hancock

    A. Hancock,
    There is a handy example that illustrates waveform output using the onboard clock located in the DAQmx example folder. Assuming you installing DAQmx to it's default location, it would be located:
    C:\Program Files\National Instruments\NI-DAQ\Examples\DAQmx ANSI C\Analog Out\Generate Voltage\Cont Gen Volt Wfm-Int Clk
    Simply load a regular waveform into this example.  It defaults to a sin wave, you could easily adapt it for a square wave.
    Changing the frequency is relatively straightforward, simply make a call to the DAQmxSetSampClkRate function before or while the task is running.  This and all of the other functions are detailed in the DAQmx API located here:
    "C:\Program Files\National Instruments\NI-DAQ\Docs\cdaqmx.chm"
    or under Start > Programs > National Instruments > NI-DAQ > NI-DAQ C Reference Help.
    Good luck,
    --Paul
    Applications Engineering
    National Instruments, Inc
    http://www.ni.com/support
    --Paul Mandeltort
    Automotive and Industrial Communications Product Marketing

  • Help! data manipulation for high speed streaming to disk from multiple boards and multiple channels

    I am using Labview 7.1 and have been trying to capture data from 12 channels simutaneously sampled at 2MS/s each and streaming to disk for up to a minute or more.  The hardware I am using is 2 x PXI 6133 S series boards with a MXI4 link to a Pentium D 2.8 Ghz machine with 2Gb ram.   I have 2 sata drives set up in a raid 0 configuration which should give me hard disk write speed faster or equal to the MXI-4 transfer speed. 
    I have first started off by using the example code "multi device sync - analog input- cont acquisition" which has enabled me to sync the two boards and sample at the required speed. 
    To stream the data to disk, I have first merged the data from each board  together to save it to one file.  I have tried using the storage vi's but I end up with a Daqmx read error (trying to read data that is no longer available).  I have played around with the read data size to the point that I either get a insufficient memory error, or I get the "trying to read data that is no longer available"  error.  I have also tried using the file IO blocks with some success and have found that I have been able to stream to disk only if I configure the daqmx read block to output the data in "raw 1D I16" format and plugging it into the file-write block.  In doing this, I have noticed that using  multiple channels on one daqmx read task, I will get all the channels in one 1D array rather than a 2D array organized by channels.  This makes it messy to read at the end of this, and I also don't want to write another vi to separate the channels, due to the high chance of getting the data mixed or messed up if I happen to change the number of channels on a board
    Is there a cleaner way of streaming this data to disk and keeping the channel data separated from each other?, and/or is there a better way to capture and handle the data I need? 
    I have attached the vi which I have got to consistantly work streaming to disk using the raw 1D I16 format.
    Thanks in advance to anyone who can help.
    Attachments:
    multidevicesync_analoginput_streamtodisk.vi ‏197 KB

    Hi,
    i can suggest following
    Refer to an example VI called as "High speed data logger.VI"  in conjunction with "High Speed data logger reader.vi" in Labview examples. Alhrough the logger might be in Tradiditional Daq format, it can be quite easily converted to Daq Mx format to store data in Binary (I32 format) . I have used this for many of my applications and i have found that the data retrieved does not have any "messups".
    Why not keep a seperate file for each card? This way, you do not have to load your application with extra process. You only have to acquire and save. After saving in Binbary format, you can retrive it offline, convert it to ascii format and merge the data files of various cards to get one consolidated ascii data file.
    hope this helps
    Regards
    Dev

  • How to use a multiple boards (6321/6323) analogical acquisition task with simultaneous analogical generation task using the same boards (Labwindows CVI10)

    Subject : it seems impossible to run a multiple boards analogical acquisition task with one or several analogical generation task using the same boards.
    NI Configuration : Dev1 = Dev2 = 6321 boards
    Development environnement : LabWindows CVI 10
    Source code for analogical acquisitino task :
           DAQmxCreateTask("",&AIRecordingtaskHandle);
           DAQmxCreateAIVoltageChan(AIRecordingtaskHandle,chan,"",DAQmx_Val_NRSE,min,max,DAQmx_Val_Volts,NULL);
           DAQmxCfgSampClkTiming (AIRecordingtaskHandle, "", rate, DAQmx_Val_Rising, DAQmx_Val_FiniteSamps, sampsPerChan);
           DAQmxGetTaskAttribute(AIRecordingtaskHandle,DAQmx_Task_NumChans,&gNumChannels);
    Chan = "Dev1/ai0, Dev1/ai1, Dev1/ai2, Dev2/ai1"
    Source code for analogical generation taskS :
           DAQmxErrChk (DAQmxCreateTask("",&AOtaskHandle_C1_DAC0));
           DAQmxErrChk (DAQmxCreateAOVoltageChan (AOtaskHandle_C1_DAC0, chan, "", min, max,DAQmx_Val_Volts, ""));  // chan vaut Dev1/ao0
           DAQmxErrChk (DAQmxCreateTask("",&AOtaskHandle_C1_DAC1));
           DAQmxErrChk (DAQmxCreateAOVoltageChan (AOtaskHandle_C1_DAC1, chan, "", min, max,DAQmx_Val_Volts, "")); // chan vaut Dev1/ao1
           DAQmxErrChk (DAQmxCreateTask("",&AOtaskHandle_C2_DAC0));
           DAQmxErrChk (DAQmxCreateAOVoltageChan (AOtaskHandle_C2_DAC0, chan, "", min, max,DAQmx_Val_Volts, "")); // chan vaut Dev2/ao0
    At the first DAQmxReadBinary call attempt, the system shows an error (see attached document) 
    What we understand about that error : it is impossible to run the two set of tasks (ai and ao) using ressources from both Dev1 and Dev2 in the set of tasks because it is not allowed to use the same Reference Clock for that.
    The question is : is there a way to to that without having that kind of message?
    We tried different combinations :
    - Using only one ao task (on Dev1/Dac0) : same error
    - Not using any ao task (only the ai task) : no error
    - configuring the ai task with only channel from Dev1 : no error 
    - Using "/Dev1/ai/SampleClock" as internal clock for the ai task and "/Devk/ao/SampleClock" for each ao task (k standing for "1" or "2" depending of the ao task we consider) : error
    Thanks a lot.
    Pièces jointes :
    MsgErreur NIDAQmx.JPG ‏38 KB

    doublon
    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

  • How to I connect Sourcing digital output from My Interface Board to NI USB 6501 channel configured as Digital input

    When I connect an input to DI channel of USB 6501 card  from my board which has sourcing Output t, iIn the Off state it is not pulled down properly. The volatge on the port in is 2.1V -2.5V based on the pull down resistor on my board. I suspect that  it acts as a voltage divider.
    The state on the card is still show as "HIGH "state, even my sourcing output driver has a pull down  resister.  when I use this interface board for PCI mseries devices it works fine. Do the pull down resister on my sourcing output is not worth. Is this because of pull up resister 4.7k inside USB card 6501.
    USB 6501 specifications shows the Digital input accepts both source and sink modes. By default the card is in sourcing digital input mode. How do we can convert this in Sinkind digital input mode.
    Could anyone Please give your suggestions to overcome this issue .
    Thanks you.

    You really should not have both a pull up and pull down on the same line.  Really weird things can happen.  If you insist on having a pull down on your board, then I highly recommend putting a digital buffer chip between the DAQ and your board.
    Some boards with DIO have a pull up, while others have pull down.  You just have to watch the specs.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • How to filter Multiple channels without losing outputs

    Hello all, this really is my last hope. I'm having a real big issue in Logic, it's been that way since I started and I'm hoping someone help me. The issue is the same with every track I create, and is as follows:
    An example I will use is the main 'drop' of a track. I want to have most elements gradually filtering out, to allow an emphasis when the beat kicks back in at the drop. At the same time, I want to leave some elements playing, such as reverse cymbal, rise/swoosh/sweep sounds etc. The problem I have is how to select multiple items to filter out, using ONE filter (eg. Beats & bass) and not have to put a filter on EVERY individual track and automate them individually.
    I know one option would be to send all of these items to a bus, and then filter that bus, but then that means that the elements are playing from TWO sound sources - their original channel strip AND the bus that they are now assigned to.
    I know this problem can be alleviated by removing the output from the original channel strips, and only have their sound coming from the BUS, but then this causes the problem of loss of impact/volume because I'm losing the original sound source.
    Lots of my sounds are sent together to busses, eg. BeatsBus. BassBus etc. where they all gather and are compressed together creating extra volume and compression effect.
    Hopefully I have explained myself well enough here, it's not the easiest problem to articulate over a message.
    But to recap, I want to filter multiple sounds (beats, bass and everything else) with one filter, without losing my MULTIPLE sound sources, ie their original channel strip output.
    Please please help.
    Steven.

    Dont use a send to get the tracks to the bus. Assign the tracks OUTPUTS (should say "stereo out" before you change it)  directly to the busses.

  • Display multiple channels on waveform graph

    Hello,
    I would like to display multiple channels of acoustic data on one waveform graph. I currently have them separated and controlled by tabs inside a case Structure. I sometimes have run into DAQ error because I'm looking at 10 channels of 1/3 Octave data real-time. I woundering if I display all the channels on one waveform graph would I elimnate this error.
    can anyone help?

    Philip,
    I'm acquiring data at 44KHz sample rate and my frequency range is 0-20kHz (2 ni-4472 DAQ cards). Since I been using LV (off and on now for about a year) my application is still in the development stage. I tried including pics but could only include 1 at a time, so heres a copy of my vi for you. There is several things I'd like to figure out, I'm viewing data real-time and writing data to file. However, as I'm writing data to file I don't want the data to display in real-time (I think this is where my problem is). The other issued is when I've stopped writing data to file, the case structure outside the while loop opens the file and processed the data, however I'd like to see the data in the same display (waveform graph in while loop). Take look and give me thoughts.
    R/Scott
    Attachments:
    Submarine DAQ_writing reading OFFLINE_Rev2.vi ‏829 KB

  • Displaying real-time data using gui meter from multiple channels.

    I am using DAQ USB-6009 for my assignment. Part of my task is to display real-data from multiple channels in the form of gui meters.  eg. irradiance and voltage...
    I used a split signal to separate the signals from different channels coming out of the data output terminal of the DAQ assistant. The problem is that I do not know which vi to connect in between the split signal and the gui meter. I am looking for one vi that is capable of handling signals (measurement)  and outputting the data to the gui meters simultaneously and individually based on the channel they are coming from.

    Thnx for your tip, Dennis.
    However, I have another problem that just occurred to me when my VI manages to execute as I wanted.
    I noticed that the needle on my gui meter will only "appears" to be responding to every changes to its input when I have set it to run continuously and the only way to stop it is via abortion which might leave the resources (eg. external hardware) in unknown state. Is there any safer and workable ways to organise the VIs using while loop?
    I have placed my DAQ assistant, write to measurement file (vi), add function, split signal and gui meters all in 1 single while loop.
        DAQ-------> write to measurement file
                 |
                 |                                                 ​                   |--------------------------------> add function----> gui meters
                 ---------------------------------------------> split signals ---|--------------------------------> add function----> gui meters
                                                      ​                                |--------------------------------> add function----> gui meters
    If I do the following steps,
    1. press run continuously to start the VI
    2. click the same button to disable continuous run when the VI has completed its task.
    3. click the stop button in the front panel to stop the while loop
    Does doing these steps ensure that I will not leave resources in unknown state? Is it a safer way to stop a VI which is running continuously?
    Pardon me for I am new to LabView. Even though, I have read the user's
    manual and tried out all the execises, there are some concepts that I
    need clarification on and mistakes that I need to discover through more hands-on.

  • How to send job postings to multiple third party sites using the XML output

    Dear Friends,
    We are Implementing Irecruitment for our client, Client requirement is how can we send job postings to multiple third party sites using the XML output from i-Recruitment
    With regards
    Surya
    .

    Can you be more specific about your Requirement. In General, Please navigate to iRecruitment Recruiter Responisbility.
    Then Select, Setup > Recruiting Sites. Here, you can configure your Third Party Websites information and attach stylesheets. The default mode oracle sends the vacancy information is HR-XML Format.
    If you would like to select more sites information select "Add Another Row".
    Then, you can see this information while "New Vacancy Creation Process".
    iRecruiter.
    Edited by: iRecruiter on Oct 18, 2009 7:43 AM

Maybe you are looking for