07-29-2013 09:53 AM
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_Rising,DAQmx_Val_FiniteSamps,N);
DAQmxCfgSampClkTiming(task2,"",1000.0,DAQmx_Val_Rising,DAQmx_Val_FiniteSamps,N);
DAQmxCfgSampClkTiming(task3,"",1000.0,DAQmx_Val_Rising,DAQmx_Val_FiniteSamps,N);
DAQmxCfgSampClkTiming(task4,"",1000.0,DAQmx_Val_Rising,DAQmx_Val_FiniteSamps,N);
DAQmxCfgSampClkTiming(task5,"",1000.0,DAQmx_Val_Rising,DAQmx_Val_FiniteSamps,N);
DAQmxCfgSampClkTiming(task6,"",1000.0,DAQmx_Val_Rising,DAQmx_Val_FiniteSamps,N);
DAQmxStartTask(task1);
DAQmxStartTask(task2);
DAQmxStartTask(task3);
DAQmxStartTask(task4);
DAQmxStartTask(task5);
DAQmxStartTask(task6);
DAQmxReadAnalogF64(task1,-1,10.0,DAQmx_Val_GroupByChannel,OriginData1,N,&read1,NULL);
DAQmxReadAnalogF64(task2,-1,10.0,DAQmx_Val_GroupByChannel,OriginData2,N,&read2,NULL);
DAQmxReadAnalogF64(task3,-1,10.0,DAQmx_Val_GroupByChannel,OriginData3,N,&read3,NULL);
DAQmxReadAnalogF64(task4,-1,10.0,DAQmx_Val_GroupByChannel,OriginData4,N,&read4,NULL);
DAQmxReadAnalogF64(task5,-1,10.0,DAQmx_Val_GroupByChannel,OriginData5,N,&read5,NULL);
DAQmxReadAnalogF64(task6,-1,10.0,DAQmx_Val_GroupByChannel,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!
07-29-2013 10:49 AM - edited 07-29-2013 10:56 AM
DAQmxCreateTask("",&task1);
DAQmxCreateAIVoltageChan(task1,"Dev1/ai0:ai5","",DAQmx_Val_Cfg_Default,-5.0,5.0,DAQmx_Val_Volts,NULL);
DAQmxStartTask(task1);
DAQmxReadAnalogNChanF64(task1,-1,10.0,DAQmx_Val_GroupByChannel,OriginData1,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
07-30-2013 02:51 AM
I am very thank you for your reply, and I'm happy to tell you that I make it. The code I use is appended below. But now, there are some new problems about simultaneity. I'm very thanks if you read the problem appended.
http://forums.ni.com/t5/LabVIEW/How-to-read-mutiple-channels-simultaneously-in-vc/m-p/2507216