Changes

Jump to navigation Jump to search
Line 32: Line 32:  
The initialization of the DAQ section leads directly into the temperature conversion and storage section. Here the voltage readings are converted to temperature in Fahrenheit with an equation block. The temperature values are then all merged into one wire connected to a waveform chart, which displays the temperatures separately on a line graph (waveform chart) on the front panel. The combined signals are also sent to a user defined VI named TemperatureSpread, which stores the highest temperature out of all the signals in a variable called Highest Temperature. Each individual temperature value in fahrenheit is converted to celsius and displayed (in both fahrenheit and celsius) on the front panel. Additionally, each temperature in Fahrenheit is stored as a variable named after the location of its respective thermistor. These variables are combined and stored as one variable called WriteToFile (this section of the code is above the Initialization of the DAQ section at the time of this documentation). WriteToFile connects to a "save to measurement file" block, which itself is in a case structure that skips saving the data if there are zero or not a number (NaN) values coming from the DAQ.
 
The initialization of the DAQ section leads directly into the temperature conversion and storage section. Here the voltage readings are converted to temperature in Fahrenheit with an equation block. The temperature values are then all merged into one wire connected to a waveform chart, which displays the temperatures separately on a line graph (waveform chart) on the front panel. The combined signals are also sent to a user defined VI named TemperatureSpread, which stores the highest temperature out of all the signals in a variable called Highest Temperature. Each individual temperature value in fahrenheit is converted to celsius and displayed (in both fahrenheit and celsius) on the front panel. Additionally, each temperature in Fahrenheit is stored as a variable named after the location of its respective thermistor. These variables are combined and stored as one variable called WriteToFile (this section of the code is above the Initialization of the DAQ section at the time of this documentation). WriteToFile connects to a "save to measurement file" block, which itself is in a case structure that skips saving the data if there are zero or not a number (NaN) values coming from the DAQ.
 
<br/><br/>
 
<br/><br/>
      
[[File:GoUnlessTooHot2.jpg|200px|thumb|right|upright|GoUnlessTooHot2 VI, with the automatic option of manual controls showing.]]
 
[[File:GoUnlessTooHot2.jpg|200px|thumb|right|upright|GoUnlessTooHot2 VI, with the automatic option of manual controls showing.]]
The temperature regulation section serves to keep the box at a prescribed temperature. Here the code is centered around a user defined VI named GoUnlessTooHot2, which reads the user indicated target temperature and turns the hotplate on if the highest measured temperature is more than one degree fahrenheit below that value and turns it off if the highest measured temperature is more than one degree higher than that value. GoUnlessTooHot2 also has failsafes that check if there are zero and NaN values reported from the variable Highest temperature and if the box temperature exceeds 190 degrees Fahrenheit. If either of these conditions are met the VI will shut the hotplate off with the use of the VI HP 1 Outlet 1 OFF. GoUnlessTooHot2 is contained in the true state of a case structure that is controlled by a connected timer, which returns true once every ten seconds; the result is that GoUnlessTooHot2 only reads values from the variable Highest Temperature every ten seconds. Therefore, the hotplate state can only change at a maximum frequency of once every ten seconds. Having both a time constraint and a temperature range is redundant so the time dependence of the case structure should be removed, but the case structure itself should be left in tact as it has another function related to stop conditions.<br/><br/>
+
The temperature regulation section serves to keep the box at a prescribed temperature. Here the code is centered around a user defined VI named GoUnlessTooHot2, which reads the user indicated target temperature and turns the hotplate on if the highest measured temperature is more than one degree fahrenheit below that value and turns it off if the highest measured temperature is more than one degree higher than that value. GoUnlessTooHot2 also has failsafes that check if there are zero and NaN values reported from the variable Highest temperature and if the box temperature exceeds 190 degrees Fahrenheit. If either of these conditions are met the VI will shut the hotplate off with the use of the VI HP 1 Outlet 1 OFF. GoUnlessTooHot2 is contained in the true state of a case structure that is controlled by a connected timer, which returns true once every ten seconds; the result is that GoUnlessTooHot2 only reads values from the variable Highest Temperature every ten seconds. Therefore, the hotplate state can only change at a maximum frequency of once every ten seconds. Having both a time constraint and a temperature range is redundant so the time dependence of the case structure should be removed, but the case structure itself should be left in tact as it has another function related to stop conditions. [[File:Timer.jpg|200px|thumb|right|upright|Timed stop case structure.]]
 +
<br/><br/>
 
The stop condition section is not as localized as the the other sections because the three ways to manually stop the hotplate are independent of each other. The first method of stopping the hot plate is the STOP button, which is the stop condition for the overarching while loop in the first frame; this terminates the while loop and ends the first frame of the sequence structure. The second frame of the sequence structure will then begin and shut off the hotplate and the program will end. The second method is in the manual controls. These controls determine the state of a case structure in the VI GoUnlessTooHot2, which can automatically regulate the temperature, turn the hotplate on, or turn the hotplate off all without ending the program.  The final method is a timed stop. The timer is an "elapsed time" block in the true state of a case structure, which is controlled by a boolean button. When the button is pressed the case structure is set to a true state and the timer runs until a user indicated amount of time passes. At this point the VI HP 1 Outlet 1 OFF is run and the temperature regulation section subverted to turn off the hotplate for the rest of the run.
 
The stop condition section is not as localized as the the other sections because the three ways to manually stop the hotplate are independent of each other. The first method of stopping the hot plate is the STOP button, which is the stop condition for the overarching while loop in the first frame; this terminates the while loop and ends the first frame of the sequence structure. The second frame of the sequence structure will then begin and shut off the hotplate and the program will end. The second method is in the manual controls. These controls determine the state of a case structure in the VI GoUnlessTooHot2, which can automatically regulate the temperature, turn the hotplate on, or turn the hotplate off all without ending the program.  The final method is a timed stop. The timer is an "elapsed time" block in the true state of a case structure, which is controlled by a boolean button. When the button is pressed the case structure is set to a true state and the timer runs until a user indicated amount of time passes. At this point the VI HP 1 Outlet 1 OFF is run and the temperature regulation section subverted to turn off the hotplate for the rest of the run.
179

edits

Navigation menu