Multiple channels in one task with ch to ch config

Hi,
Normally the way I acquire sample from more than one channel on a cDAQ system is like this:
1, I create virtual channels for my AIs in MAX
2, in LabVIEW I use channel constants and merging them using comma as a separator (eg. with the concatenate string node).
3, the I configure the sample clock using the comma separted channels as an input
4, start the task
5, acquire samples
6, stop and clear the task
This worked just fine so far as I acquired samples from my cDAQ modules with the same speed and all of them were simple analog inputs. But I have to implement a strain gage measurement (NI 9237) now and I'd like to use the bridge offset nulling calibration VI to get rid of the offset I have. That complicates my structure.
It seems the VI I have created runs just fine but I am wondering if this is a legit solution as I used the sample clock twice. (the VI uses simulated channels for now)
Attached the VI (LV2012) and its block diagram image as well.
Please advise. Thanks!
i-
Attachments:
Strain_test.gif ‏14 KB
Strain_test.vi ‏36 KB

I have failed to realize that the offset nulling VI has another input called "skip unsupported channels". This is false by default, but setting it true resolves the problem without changing my structure at all.
Well done, kudos to myself
Attachments:
Strain_test2.gif ‏8 KB

Similar Messages

  • Shunt Calibrate Multiple Channels in One Task - Error 201398

    Having created a task with multiple AI Strain Gage channels (each set with same bridge properties and quarter bridge config.), I recieve an error when passing the task to the "DAQmx Perform Shunt Calibration (Strain).vi"
    My VI works fine if only a single channel is contained in the task, but more than one channel causes the error.  Do I have to loop through each channel manually?
    The "possible reason(s)" varies depending on my approach, but often indicates the AI.Bridge.ShuntCal.GainAdjust being requested is "-Inf"

    You can start a new thread even if you have the same issue. What exactly you aregetting and show us the code for better understanding.
    The best solution is the one you find it by yourself

  • Select multiple channels for one task - control and shift keys don't work

    Hi,
    Following advice from several other posts, I'm trying to select multiple physical channels  from the dropdown list so that I can then use the "unflatten channel string" function later on. It looks like if I hold down either shift or cntrl I should be able to select multiple channels from the list, however, this doesn't work for me. I tried going into the "key navigations" property for the task channel control but it doesn't have any associations listed. Has anyone else come across this and found a fix?  I have previously got around this by stating multiple channels with a colon (eg. ai1:3) but this doesn't work for the unflatten function.
    Thanks, 
    Claire.
    Solved!
    Go to Solution.

    Thanks for your reply Dennis, I see what you mean, unfortunately that doesn't solve my problem so I'm missing something else. I've attached my VIs. I expected that the output from the unflattenstring block would be an array of either the channel references or the names I had given them, and that therefore the "array size" in the 4th pane would be "9" (equal to the number of channels).  Instead the output is a an "unnamed task#(some number)" when I look at it with a probe. Perhaps I'm misunderstanding how the task naming works?
    THanks, 
    Claire.
    Attachments:
    Analog SW Trigger_v3.vi ‏33 KB
    Cont Acq&Graph Voltage-Analog SW Trigger_cfjv3.vi ‏64 KB

  • Reading multiple channels in one task

    Hi i am trying to read three voltage inputs in one task. I have configured the task and used generate code to get the example. But i am now getting the data from all three channels in one waveform, but i would like to work independantly on the three channels. What should i do.

    Hi vamy,
    If you read all channels with AI Read, it should return an array of waveforms (not just a single waveform). You can use "Index Array" to get the waveform from each individual channel, or use "Index Waveform Array", which is basically the same operation.
    Dan

  • How to write to one channel of a task with multiple channels? (plus other things...)

    So I have a USB-6009 DAQ.  It has 12 digital output lines.  I want one channel that is "Dev0\line0:10" which represents an address bus in my application.  And a second channel "Dev0\line11" which represents a program enable line in my application.
    I have tried creating two different tasks and adding one channel to one task and the other channel to the other task.  The only task that worked was the task with "Dev0\line0:10".  It was always the task containing that channel, regardless of the order of creation.  So then I moved on to a different method.  (I read somewhere that I should only create one task of each type.  like only 1 DO task only 1 AO task etc...  However I am also using the two analog ouputs to and have a task for each AO and they work just fine.)
    I tried add both channels to one task.  But when I needed to control only the address bus, I had to have some information for the other channel as well.  This was a little trying, but I could configure it that way.  But it turned out to be easier for me to just make one channel with all the lines and OR in the data for line11 with each write.
    I just wondered if it was possible to write to one particular channel of a task and not the other channel?  That would really be the ideal solution for me.  especially if I could write multiple samples to the one channel while I left the other channel alone.  Which brings up another complaint... Why does WriteMultiSamplePort only work if I use a DigitalMultiChannelWriter, and not if I use a DigitalSingleChannel writer even though my task only has one channel (and by the way I set up the channel as one channel for all lines)?  A perplexing issue to be sure.
    And no I can't just load all my samples into an array and write them all at once because I also have to manipulate the two analog outputs in between the various digital writes.
    I am using NI DAQmx 7.5 and C#.  I am trying to use the DAQ to program a digital switch, which has proven to be a real challenge.  In push-pull mode there is too much ringing for the switches programming port to tolerate.  But the switches interface is LVTTL, so I needed the 3.3V.  When I changed to open-collector I had to use voltage dividers to drop down to 3.3V.  But the rise time using open-collector is too slow for me the program the switch in serial mode, so I had to change to parallel.  The switch has an 11 bit multi-plexed ADDR/DATA bus.  So the DAQ I had chosen to use which had plenty of lines for the serial programming, now is strained to it's absolute limits by the parrallel interface.   ARGH.  The only output I am not currently using is the counter, and I'm going to need it if I ever want to read back from the switch.  But first I have to seperate the ADDR/DATA bus from the CS line on the DIO lines of the DAQ.  And I don't know for sure what I'm going to do about the voltage level translation when I have to go bi-directional.  Maybe I can filter out the ringing in push-pull mode?  Any thoughts on that?

    Hi Saikey,
    In most cases, you are exactly right: you can only use one task for one type of operation (i.e. only one analog input task in the same program). With the USB 6009, you can have multiple digital output tasks running at the same time. I was able to run a digital output program with two different digital output tasks configured for a USB-6009.
    However, you stated that it would be better if you had everything in a single task for your application and write data to only some of the channels. The easiest way to do this is to modify your array of output data so that only the data to that one channel is changing. So, for example, if you keep writing a 0 to the channels that do not need new data nothing will change.
    If you have to change your analog outputs during this program, you could create an event structure that would stop and restart the analog output tasks without changing the digital output data. I hope that you find this information helpful.
    Regards,
    Hal L.

  • Assigning Multiple channels to one Camapign

    Hi Gurus.
    We have a requirement for our business where the marketing user would like to assign multiple channels to a campaign. Is this possible.
    Ex. Marketing dept creates a campaign would like to target all existing customer. Now they want to execute this campaign through, telephone, e-mail, etc.
    My question is it possible and if so how can we assign multiple channel for one campaign execution.
    Unfortunately this a urgent requirement and i need to come up with a solution by very quickly.
    Your help ment awould be really appreciated.
    Thanks
    Rao

    Hi Rao
    it is pretty easy,just you have to define the communication channel for all the BPs which you want to use for your segmentation cause.
    within those BPs go to the identification tab and therein you just mention all those communication channels details which you want to use for assigning the BP to target group
    after you are done with it just assign target group and do the segmenation.
    do revert back in case of any doubt
    best regards
    ashish

  • Two Counter channels in one task ID with DAQmx?

    I am writing a program which will control the movement of a gimble on the X and Y axis with servo motors while recieving
    position feed back from two encoders on those axis. I am using a 6251M series card's AO to control the movement
    of the gimble, while running the encoders into a 6602 for position. When setting up my task ID in MAX I noticed I could add
    both ctr0 and ctr1 to the task ID, but  when I tried read the counters with that task I got an error in Labview and with the
    test function in MAX  saying I need to use a multichannel read. I can not find a multichannel read under the counter
    section of my DAQmx read, and was wondering if this is even possible. I am used to programming with Traditional DAQ
    and know you have to keep separate counter task ID's, but having bought an M series card and having to use DAQmx I
    was wanting to know if I could combine them.
    Thanks

    You can have multiple channels in a single task, but those channels all
    have to be of the same type.  You can have analog inputs together
    with other analog inputs, but cannot combine digital inputs/outputs,
    analog outputs or counter tasks with that analog input task.
    Once you pair only like tasks together then you shouldn't run into any more issues like this.
    Best of luck,
    Otis
    Training and Certification
    Product Support Engineer
    National Instruments

  • How do I read multiple channels at one time using labview with the Fluke Hydra Data Bucket 2620a using serial port?

    I need to take a reading of 15 channels about once a second. I can read one value at a time using the monitor function on the read values.vi driver, but this takes forever to read all the channels.

    I don't have this instrument but I took a look at the instrument driver and it appears that you can only configure one channel at a time to read from. You might want to take a look at the command set for this instrument and see if it allows for configuration of multiple channels. It could be that the instrument driver just doesn't have that built in.
    J.R. Allen

  • DAQmx multichann​el read error. DAQmx believes there are multiple channels in my task.

    Hello,
    I recieve the appended error message when attempting to use DAQmx Read in my VI.  LabVIEW is telling me that I am attempting to read a single channel when my task is configured for multiple channels.  However, as you can see in the task configuration pane, that is not the case!  If I attempt to use DAQmx Read to generate a waveform with multiple channels, the VI executes without error but I do not want a 1D waveform array..  Any tips?
    Regards,
    Steve
    Solved!
    Go to Solution.
    Attachments:
    multi_chan_errr.JPG ‏42 KB
    channel_Vin.JPG ‏108 KB

    This is exactly why I ALLWAYS hide my DAQ Tasks inside a "Resource Module" 
    As I use the term a "Resource Module" is a special case Action Engine tha exposes only that subset of functionality that a specific project needs to take on a given resource external to LabVIEW.  And, it provides a single point of entry to access that resource by keeping private data private.  Had you used the technique here you would have had one vi to look at.  and, there likely would have been no "Reconfigure to add channel" method available to cause trouble.
    Jeff

  • 2 AI channels on one DAQ, with different sensitivity range

    This vi is based on the State Machine from "new project" on the splash screen at LV startup.
    A while loop is in parallel to the main while loop of the state machine, shown in picture. 
    It runs continuously until the Exit button is pressed.
    The problem seems to be in the ..............start>read>stop..........start>read>stop.......... part along the error line. 
    The reason for this clunky start/stop arrangement is that the voltages measured are in two different sensitivity ranges. 
    The shunt voltage is small and needs the -.2 to .2 V range. The load voltage is larger and -10 to 10 V range is good. 
    In the initialize state, two separate "create channel" vi's were used to specify the voltage range for the physical channel. The corresponding tasks are sent over via local variables.
    The DAQmx errors happen randomly, sometimes the first iteration, sometimes the 50th. 
    I tried disabling one or the other    start>read>stop    for the shunt or load voltage. 
    I tried replacing them with DAQ assistant. 
    I tried various DAQmx vi's:   "wait" and  "control task with unreserve resource selected". 
    But error -50103 "specified resource is reserved" keeps popping up. 
    Is it possible to create two tasks on the same device when they are not used simultaneously? 
    The only reason is to measure in two voltage ranges. 
    Win 7 Pro, 64 bit
    LV 2014 Base
    DAQ hardware: USB 6210
    Thank you.
     

    This has been discussed numerous times. Do NOT use separate tasks. You can use different ranges for different channels with one single task. Just wire the task out of one create channel to the task in of another create channel.
    You are also using local variables where they are almost certainly not needed.

  • Multiple channel simultaneous data aquisition with 6601 counter

    Not concerning my primary question, I would like to point out to an N.I. Rep. that there is a typo in the help section concerning "posting a message".
    I have built a large format, two axis digitizer using linear encoders, a 6601 counter/timer, and labview 8. In building my application program, I  initially am using two daq assistants, with each set up to accomplish  the task of reading two encoders (2 channels) simultaneously. In doing some research, It has come to my attention, that with my current configuration, errors may result, due to one daq assistant attempting to access the cards driver while the other is acquiring data.  All attempts to get two channels working through a single daq assistant have resulted in an error message informing me that I can only have one task per counter.Thus far, I have not seen any noticeable errors, thought I would like to have this device "rock solid", as it will be used extensively.
    How can I get two channels working through one daq assistant?
    Is it possible, that I should have purchased  an "S" series board instead?
    Any help on this, is welcome!

    If you are using different counter channels for each assistant task, then you should not receive any errors.  It's not possible to get two counters working through the same assistant task.  This restriction would also apply to S Series boards as well, so you should be fine with your application.
    Please post again if you have any problems with this.
    gus....

  • Scanning multiple pages into one document with an automatic document feeder

    when using automatic document feeder to scan in multiple pages - using the Image Capture app, this process does not work for more than 2 pages. However works perfectly in PC environment.
    Using a MacBook Pro with 10.8.4 and a Lexmark Interpret 405S All In One Scanner.
    Is there any other all in one device that can perform this function in a Mac environment?
    Please advise.

    Hi @FentyFly ,
    I see by your post that you would like to know how to scan multiple pages into one file. I would like to help you out today.
    From the HP Scan Software, click on the link for Advanced Settings, then uncheck Create a separate file for each scanned page.
    Here is a URL for how to scan and change the settings. Just select your operating system.
    Scan.
    What operating system are you using? How to Find the Windows Edition and Version on Your Computer.
    If you need further assistance, just let me know.
    Have a great day!
    Thank You.
    Please click “Accept as Solution ” if you feel my post solved your issue, it will help others find the solution.
    Click the “Kudos Thumbs Up" on the right to say “Thanks” for helping!
    Gemini02
    I work on behalf of HP

  • How can I scan multiple pages to one file with MG 7120

    My printer does not have ADF. How can I scan multiple pages to one file on my MG 7120?

    Hi albabynyr,
    There is a program that comes with the printer called the IJ Scan Utility that can assist you with scanning multiple pages into a single file.  To scan using the IJ Scan Utility, please follow these steps:
    1. Start IJ Scan Utility by going to your Start menu, then selecting All Programs, then Canon Utilities, then  IJ Scan Utility (folder), then IJ Scan Utility (program).
    2. In the Canon IJ Scan Utility window that opens, click SETTINGS.... in the bottom right of the window. The Settings dialog box appears.
    3. Click the DOCUMENT SCAN option on the left pane of the window.
    4. In the right pane of the window, locate the SELECT SOURCE field and select the DOCUMENT option.
    5. Set the color mode, document size, and scanning resolution as required in the rest of the fields shown in the window. Click DOCUMENT SCAN ORIENTATION SETTINGS... to specify the orientation of the documents to be scanned.
    6. In the SAVE SETTINGS section of the window, you will select the save format and location of the document you are about to scan.
    a.) In the FILE NAME field, specify the name you would like to give the file. By default the filename will begin with IMG; you can remove IMG and change it to whatever you would like to name the file.
    b.) In the DATA FORMAT field, use the drop-down arrow to select the PDF (Multiple Pages) option.
    c.) In the SAVE IN field, please navigate to the area where you would like the file to be saved once it is scanned in. By default, the file will be saved in the DOCUMENTS folder.
    7. Once all settings have been selected, click the OK button at the bottom of the SETTINGS (DOCUMENT SCAN) window. The IJ Scan Utility main screen appears.
    8. Click the DOCUMENT button. Scanning starts. After a page has scanned, the screen to continue or end scanning appears. If you have more pages to scan, place the next page on the platen and click Scan.  Do this each time a page has completed scanning.  After the last page has been scanned, click Exit. Scanned images are saved in previously selected folder location specified in the SETTINGS... window. Click the CANCEL button to cancel scanning if needed during scanning.
    Hope this helps!
    This didn't answer your question or issue? Please call or email us at one of the methods on the Contact Us page for further assistance.
    Did this answer your question? Please click the Accept as Solution button so that others may find the answer as well.

  • How to Read All Channels in one task in vc

    I want to read 6 channals' datas in VC. Now I create 6 task, and read it sperately.
    I know that it can read from one task, but how??
    DAQmxCreateTask("",&task1);
    DAQmxCreateTask("",&task2);
    DAQmxCreateTask("",&task3);
    DAQmxCreateTask("",&task4);
    DAQmxCreateTask("",&task5);
    DAQmxCreateTask("",&task6);
    DAQmxCreateAIVoltageChan(task1,"Dev1/ai0","",DAQmx​_Val_Cfg_Default,-5.0,5.0,DAQmx_Val_Volts,NULL);
    DAQmxCreateAIVoltageChan(task2,"Dev1/ai1","",DAQmx​_Val_Cfg_Default,-5.0,5.0,DAQmx_Val_Volts,NULL);
    DAQmxCreateAIVoltageChan(task3,"Dev1/ai2","",DAQmx​_Val_Cfg_Default,-5.0,5.0,DAQmx_Val_Volts,NULL);
    DAQmxCreateAIVoltageChan(task4,"Dev1/ai3","",DAQmx​_Val_Cfg_Default,-5.0,5.0,DAQmx_Val_Volts,NULL);
    DAQmxCreateAIVoltageChan(task5,"Dev1/ai4","",DAQmx​_Val_Cfg_Default,-5.0,5.0,DAQmx_Val_Volts,NULL);
    DAQmxCreateAIVoltageChan(task6,"Dev1/ai5","",DAQmx​_Val_Cfg_Default,-5.0,5.0,DAQmx_Val_Volts,NULL);
    DAQmxCfgSampClkTiming(task1,"",1000.0,DAQmx_Val_Ri​sing,DAQmx_Val_FiniteSamps,N);
    DAQmxCfgSampClkTiming(task2,"",1000.0,DAQmx_Val_Ri​sing,DAQmx_Val_FiniteSamps,N);
    DAQmxCfgSampClkTiming(task3,"",1000.0,DAQmx_Val_Ri​sing,DAQmx_Val_FiniteSamps,N);
    DAQmxCfgSampClkTiming(task4,"",1000.0,DAQmx_Val_Ri​sing,DAQmx_Val_FiniteSamps,N);
    DAQmxCfgSampClkTiming(task5,"",1000.0,DAQmx_Val_Ri​sing,DAQmx_Val_FiniteSamps,N);
    DAQmxCfgSampClkTiming(task6,"",1000.0,DAQmx_Val_Ri​sing,DAQmx_Val_FiniteSamps,N);
    DAQmxStartTask(task1);
    DAQmxStartTask(task2);
    DAQmxStartTask(task3);
    DAQmxStartTask(task4);
    DAQmxStartTask(task5);
    DAQmxStartTask(task6);
    DAQmxReadAnalogF64(task1,-1,10.0,DAQmx_Val_GroupBy​Channel,OriginData1,N,&read1,NULL);
    DAQmxReadAnalogF64(task2,-1,10.0,DAQmx_Val_GroupBy​Channel,OriginData2,N,&read2,NULL);
    DAQmxReadAnalogF64(task3,-1,10.0,DAQmx_Val_GroupBy​Channel,OriginData3,N,&read3,NULL);
    DAQmxReadAnalogF64(task4,-1,10.0,DAQmx_Val_GroupBy​Channel,OriginData4,N,&read4,NULL);
    DAQmxReadAnalogF64(task5,-1,10.0,DAQmx_Val_GroupBy​Channel,OriginData5,N,&read5,NULL);
    DAQmxReadAnalogF64(task6,-1,10.0,DAQmx_Val_GroupBy​Channel,OriginData6,N,&read6,NULL);
    DAQmxStopTask(task1);
    DAQmxStopTask(task2);
    DAQmxStopTask(task3);
    DAQmxStopTask(task4);
    DAQmxStopTask(task5);
    DAQmxStopTask(task6);
    DAQmxClearTask(task1);
    DAQmxClearTask(task2);
    DAQmxClearTask(task3);
    DAQmxClearTask(task4);
    DAQmxClearTask(task5);
    DAQmxClearTask(task6);
    thank you!

    DAQmxCreateTask("",&task1);
    DAQmxCreateAIVoltageChan(task1,"Dev1/ai0:ai5","",DAQmx_Val_Cfg_Default,-5.0,5.0,DAQmx_Val_Volt​s,NULL);
    DAQmxStartTask(task1);
    DAQmxReadAnalogNChanF64(task1,-1,10.0,DAQmx_Val_GroupByChannel,OriginD​ata1,N,&read1,NULL);//This proto changes fo DAQmxNch1sample.... I do not have it in front of me
    DAQmxStopTask(task1);
    DAQmxClearTask(task1);
    int32_t DAQReadNChan1Samp1DF64_130(uintptr_t taskID, double timeout, int32_t incomingStatus, Array1DDouble **data, LStrHandle extendedErrorInfo);// is the C version
    Jeff

  • Multiple iPad on one account with iCloud

    I would like to update some business iPad (all over the US) from our office (in CA). Is there a way to sync multiple iPads to one iCloud account? However, I would only like to update certain apps (Keynote, movies and some documents). Is there a way to push data to their devices without them pushing anything back to me.
    Thanks!

    iPods are sync'd to iTunes libraries (what you see on your computer), not iTunes accounts (which are used to purchase items).
    tracyfromohio wrote:
    He is now old enough to have his own iTunes account on his own computer.  Is there a way to create an AppleID for him and transfer his info from my iTunes account into his new one?
    No. Anything purchased is always purchased by that same account and cannot be changed.
    He can copy these items to his computer and use them in his iTunes library.
    If you authorize his cmputer for your iTunes acoount (iTunes menu Store > Authorize computer)  when he plugs in his iPod, select it in iTunes and select File > Transfer purchases.

Maybe you are looking for

  • My printer display screen is unreadable so i can't connect to my network. is there another way?

    Deskjet 3050 Was previously connected to network but won't connect again.  Since I can't read the screen to choose the correct options all I can do is print a test page. thanks!! This question was solved. View Solution.

  • Page isn't displaying in design view

    I just recently upgraded from Dreamweaver 2004 to CS3. Everything in 2004 looked just great, I could see everything on the page, all my tables, everything. When I open the exact same page in CS3, there is almost nothing there. All the HTML code is th

  • IP Resource Errors While Building a Windows Failover Cluster on Azure

    I have setup a failover cluster in Microsoft Azure on four VMs. I have two nodes in one subnet/region, one node in another subnet/region and a final node in a third subnet/region. The cluster passed the validation wizard and was successfully built, b

  • Oracle Database to Oracle Mobile Server

    Hi, How can I share existente table to Oracle Mobile Server. I read something about publish, but I couldn't undertand how It really works. Can someone help me?

  • Oracle 10g and Datawarehousing

    Hi, I have come across a concept of real-time datawarehousing and learnt that there is a feature in Oracle 10g database which supports it.What are those features of Oracle 10g which support the real-time datawarehousing? Thanks