Signal Conditioning

cancel
Showing results for 
Search instead for 
Did you mean: 

How to input Steinhart coefficients to different type of thermistors?

I have different types of thermistors connected to the SCXI signal conditioning board.  I need to input different group of Steinhart coefficients to each of the thermistors.  The DAQmx Create Channel (AI-Temperature-Thermistor-Iex).vi is used.  How do I assign different Steinhart coefficients to different thermistors connected to the same board?  Any help is appreciated.
0 Kudos
Message 1 of 10
(4,911 Views)
Do your 'Create Virtual channel' step as shown in Pic.
 
Now you can add different Steinhart coefficients ( array of Thermistor parameters) for each corresponding 'Physical Channel' ( from Physical channel array)
 
The rest of DAQmx programming would be as you would have probably coded
 
Any doubts, do get back
 
Dev
0 Kudos
Message 2 of 10
(4,904 Views)

Thank you for the response and example program.

In my application, I put the DAQmx Timeing (Sample Clock).vi and DAQmx Start Task.vi outside the For loop.  Even I set up multiple channle inputs, I only got one channel output.  If I move those two VIs into the For loop, probably multiple channel data will be collected.  But it does not make sense use Start Task.vi for every loop.  Any ideas I can get multiple channel input data?  Thank you very much.

0 Kudos
Message 3 of 10
(4,878 Views)

Go to Find Examples>>Hardware input output>.DAQmx>>Analog measurements>>Temeprature>>Cont Acq Thermistor Samples-Int Clk.vi

Refer to this VI, it will work for multiple channels.

Also in picture attached I have shown how you can select the type of data that you want 'DAQmx read' to give out.

any doubts, do ask

Regards

Dev

0 Kudos
Message 4 of 10
(4,866 Views)

Thank you for your response again.

I used exactly the same diagrom as you mentioned here.  I think my problem is in the For loop.  The DAQmx Create Channel (AI-Temperature-Thermistor-Iex).vi is in the For loop.  The Task out signal is wired to Task in DAQmx Timing.vi through the tunnel.  If I disable the indexing of the tunnel, only the last sensor channel is passed to the next vi block.  If I enable the indexing, there is broken wire.  Hope this clearify my problem.  Thanks for any comments.

0 Kudos
Message 5 of 10
(4,857 Views)

If you replace the tunnel for the DAQmx task with a shift register it will, in effect, remember all of the channels that you are creating.  The DAQmx task will be wired similarly to the way the error cluster is wired in the For Loop, as seen in the Thermistor_create channel.PNG above.

Have a great day,

Brian P.

0 Kudos
Message 6 of 10
(4,841 Views)
I replaced the tunnel with a shift register.  It still does the same thing.  Only one channel of data is collected even I selected multiple channels.  I am really frustrating with this problem.  Any comments?  Thanks.
0 Kudos
Message 7 of 10
(4,834 Views)

Brian: If you replace the tunnel for the DAQmx task with a shift register it will, in effect, remember all of the channels that you are creating.


Brian,

Even without using a shift Register for the Task in/Task out, your task will get updated for the new channel, in each iteration of for loop.

The shift regiser is not required.

Diageng,

looks like so intepretation/understanding of 'DAQmx Read's data by you is incorrect

Do attach a snapshot of your block diagram / post your VI so that we can suggest better.

Regards

Dev

Message Edited by devchander on 09-10-2006 10:50 PM

0 Kudos
Message 8 of 10
(4,812 Views)

Attached is part of my program.  As I mentioned in the past, I only got one channel of data collected in the While loop.

In addition, if I increase my sampling rate, the memory will overflow after running a period of time, since the data cannot be read out before new data come in.  The message suggested to increase the buffer size.  I cannot find a terminal for buffer size.  How do I do that?  Thanks a lot for the help.

0 Kudos
Message 9 of 10
(4,801 Views)
If you run your code in highlight execution you will see that your For Loop only runs one time. If you enable auto-indexing for more than one tunnel the count becomes the smaller of the choices. For example, if two auto-indexed arrays enter the loop, with 10 and 20 elements,
the loop executes 10 times, and the loop indexes only the first 10 elements of the second array. So in your program you need to either make your thermistor characteristics array larger, one entry for each channel, or just tunnel the thermistor data in without it being an array. Then the For Loop will run more than once.

As far as the buffer size there is a nice Knowledgebase article that answers your question. Please look at the link below.

How is the DAQmx Buffer Size Allocated for a Finite or Continuous Acquisition?
http://digital.ni.com/public.nsf/websearch/E1E67695E76BA75B86256DB1004E9B07?OpenDocument

I hope this helps.
Brian P.
0 Kudos
Message 10 of 10
(4,794 Views)