LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Power supply cycling for Joule heater with thermocouple readouts

Solved!
Go to solution

I am using a NI 9219 DAQ to try to read outputs from 3 thermocouples (2 standard K-types and one IR sensor) during cycling of a Joule heating experiment in LabVIEW. The VI that I currently use (and which is attached) controls the number of cycles and duration of each cycle to turn on and off the power supply (Siglent SDS1305X) to supply the voltage and current that causes the cyclic heating for the temperature measurements. However, I have two problems:

1. Only one cycle seems to be captured by the power cycling and

2. I can't get a continuous readout of the voltage and current.

 

I am unsure if the former is a data acquisition phenomenon, but I am pretty sure that it is because of the way that I have created the VI using a For loop for the power cycling. Any guidance on how to correct the cycle control of the power supply such that I don't have this interference and a way to get continuous "actual" voltage and current readouts would be appreciated.

 

In the attached .zip file I have included the main VI which is called "Power Supply Cycling w Temp Readouts V1" and the power supply drivers/library in the folder "Silgent1305X". The data readouts from the thermocouples and the power supply are shown in "30V_4A_5cyc_14s_032224_2.xlsx" (which shows the graphed power supply multi-cycled readouts and thermocouple single-cycle readout) and "30V_5A_4cyc_10s_IndividTimes.xlsx" (which shows the individual time columns of the temperature and power supply to show that data is not being taken for all cycles of the power supply so I think that it is a VI problem). I am using Windows 11 and LabVIEW 2021 (since it works with the Siglent SDS1305X power supply drivers). Please let me know what you think!

0 Kudos
Message 1 of 3
(396 Views)
Solution
Accepted by q800

I think this is an issue of "asking the wrong question".  It seems (to me) that you have two semi-independent, but related, tasks:

  • Provide a cyclic heating regimen.
  • Provide a continuous monitor of temperature.

These can (and probably should) run in independent While loops.  The "Heating" loop is simple -- you need a Case statement controlled by a Boolean "Heat On/Off" input that gets "flipped" between Off and On (a Shift register with a "Not" in the middle is excellent for this), a suitable "Wait" to control the length of On and Off, a Counter for "number of cycles", and possibly a "Stop Now" button.

 

The Monitor is also simple.  Set up your DAQmx Channel and Timing functions outside the While Loop, and inside the Loop do a DAQmx Read, possibly sending the data directly to a TDMS file (look at the DAQmx examples for Continuous Analog Sampling).  Please don't use the Dreaded DAQ Assistant and its Evil Twin, the Dynamic Data Wire.  You'll want to coordinate stopping the two Loops at the same time -- something like a Tag Channel Wire might do the trick (but there are many ways to coordinate stopping parallel loops ...).

 

Bob Schor

0 Kudos
Message 2 of 3
(332 Views)

Hi Bob,

 

Thanks for your reply! I was able to do both, but the key was the separate while loops. Thanks for your help!

0 Kudos
Message 3 of 3
(314 Views)