LabVIEW
Paper details:
, no physically report only the labview file has to be made. Can everything be done according to the mark scheme and aim for atleast 70%. Can everything be done from scratch. If any other details are needed just email me
University of Central Lancashire School of Engineering
EL1311 Software Development Assignment 2015/16
Page 1 of 7
University of Central Lancashire School of Engineering
Module EL1311: Software Development 1
Coursework Assignment: LabVIEW temperature VI
Publication date: Monday 8
th February 2016
Submission date: Friday 18th March 2016 at 12 p.m.
1. Aims
This assignment is designed to assess your ability to develop and document a modular program to meet
a simple requirement.
2. Assignment Learning Outcomes
On successful completion of this assignment students will be able to:
1. Demonstrate skill to interpret and implement detailed specifications.
2. Write working software to perform a given task.
3. Write software which interfaces with analogue and digital IO devices.
4. Demonstrate basic competence in standard pattern of file IO operations.
5. Test a system to demonstrate its validity against a specification.
3. System Specification
You are required to design a LabVIEW based data acquisition system which is capable of monitoring
temperature and replicates the behaviour of a simple thermostat. The system is connected to a sensor
which outputs a temperature dependent voltage. Your system must convert the voltage to a meaningful
temperature measurement. Whilst running the system outputs a graph of the temperature history plus
summary statistics. Measurements should also be logged to file. Additionally the system should indicate
status (too hot/too cold/just right) by lighting indicator LEDs.
3.1. The inputs to the system
The physical inputs to the system are:
i. A temperature sensing circuit. Specifically a 4.7kO Vishay NTCLE100E3 negative
temperature coefficient (NTC) thermistor connected in a potential divider with a 4.7kO
resistor. The voltage across the thermistor is measured and the temperature derived from this.
The virtual inputs to the system are:
ii. Two front panel controls to set high and low bounds for the acceptable temperature range.
iii. A front panel control to set the sampling rate (number of measurements taken per second).
iv. A Stop button on the front panel to gracefully terminate the application.
3.2. The outputs from the system
The physical outputs from the system are:
University of Central Lancashire School of Engineering
EL1311 Software Development Assignment 2015/16
Page 2 of 7
i. Three LED indicators, red, green and blue. The appropriate output is as follows:
Temperature within bounds green LED on
Temperature > high bound red warning LED on
Temperature < low bound blue warning LED on
The virtual outputs from the system are:
ii. Numeric indicators recording the maximum, minimum and mean temperature values
observed in the measurements.
iii. A graph plotting recent history of temperature measurements. The time base (x-axis) should
be set to give measurements in actual units of time.
iv. An error cluster to report any issues in executing the application.
v. A plain text data file logging the measurement history over the application run.
4. Requirements
Your task is to produce a custom VI with the following structure:
Fig. 1. System block diagram
Notes on functionality:
1. Most of the processing should be contained inside a while loop and executed repeatedly. Ensure
your stop button functions correctly.
2. Sample the voltage across the thermistor element in the potential divider and convert this into a
temperature measurement.
a. Use the DAQ Assistant to interface with the myDAQ and acquire the voltage readings.
b. Use a subVI or formula node to convert the voltage reading into a temperature in Kelvin.
c. And another subVI or formula node to convert from Kelvin to degrees Centigrade.
3. Data should be collected at the rate set on the front panel. The simplest method is to configure
the input DAQ Assistant to collect one sample on demand, then control the loop timing to match
the required timing with either the Wait (ms) or Wait until Next functions.
4. Parse the measurements as they arrive and keep running track of the maximum, minimum and
mean temperatures recorded:
5. Outputs should be updated on each iteration of the while loop:
a. The max, min, mean and graph outputs on screen should all be updated.
b. External status LEDs should be lit according to the current temperature. You are advised to
make use of a single DAQ Assistant express VI driving all three LEDs for this purpose.
6. Additionally the data logged must also be written to text data-file:
Open data
file
Write
temp. to
file
Close
data file
Acquire
voltage
Write to
screen
Set alert
LEDs
Convert
voltage to
temp.
Write stats
to file
Calculate
summary
stats
University of Central Lancashire School of Engineering
EL1311 Software Development Assignment 2015/16
Page 3 of 7
a. At start-up the user should be prompted with a dialog to select file name and directory.
b. The file should start with a timestamp, indicating when data acquisition began (t0), then
tabulate temperature measurements along with the relative time these were recorded.
c. At the end of acquisition the maximum, minimum and mean temperatures recorded, along
with the total number of measurements made should all be written to the file.
Use the intermediate level file I/O VIs to implement the required functionality.
7. Marks will be awarded for error handling. Wire an eror cluster through any standard VIs you use
which accept one. Output result to an error cluster on the front panel. You may also find it useful
to attach a simple error handler VI to the output for debugging purposes.
You must write your program in LabVIEW 2014 such that it will run on the University network.
5. Documentation
No external documentation (e.g. a report) is required. However you must take steps to properly document
the code you submit. The style guidelines given in appendix B should be followed explicitly.
6. Submission
This assignment is to be submitted via Blackboard Turnitin by 12 noon on Friday, 18th March 2016. The
deliverable item is a .zip archive file containing your LabVIEW project. The archive should contain your
main VI plus any other self-written VIs you have used to complete the work.
7. Marking scheme
This assignment is worth 33% of the overall module mark. Marks will be allocated in accordance with
the marking scheme given below. You may be asked to demonstrate your program in the laboratory.
Component Weight (%)
Capturing input voltage from thermistor:
? Configuration of VI to read voltage input.
20
Modules for handling the data processing:
? Conversion from voltage to temperature
? Calculating summary statistics
20
Updating the virtual (on-screen) outputs:
? Max, Min, Mean & Chart history
10
Updating the physical outputs:
? Logic for selecting which LED to light
? Configuration of VI to write to LEDs
10
Writing results file. 10
Source code quality:
? Clarity of block diagram, modularity, error handling
15
Source code documentation:
? Style guidelines followed explicitly.
? Clear and concise documentation
15
University of Central Lancashire School of Engineering
EL1311 Software Development Assignment 2015/16
Page 4 of 7
8. Notes
1. There are strict penalties for plagiarism (Academic Regulations section G7 and Assessment
Handbook section 5 refer). You must sign the declaration of authorship on the Assignment
Submission Form. Your submission will not be marked unless you do so, and may incur
consequential lateness penalties.
2. There are also penalties for late submission. Up to one week late the maximum mark awarded
will be 40%. Over one week late and you will be awarded 0%.
3. The grading of this assessment is to be conducted anonymously. To allow for this you should
not include your name or any other identifying feature (e.g. student ID number) anywhere within
the report.
University of Central Lancashire School of Engineering
EL1311 Software Development Assignment 2015/16
Page 5 of 7
Appendix A – Thermistor temperature measurement
A.1 Thermistors
Thermistors are resistive components that vary with temperature. Thermistors with a negative
temperature coefficient decrease in resistance as the temperature increases. Thermistors are widely used
for temperature measurement in the automotive sector, industrial process management and consumer
goods.
A very close approximation to the temperature dependence of a thermistor is given by the Steinhart–
Hart equation, which models the effect temperature has on the resistance of a semi-conductor. However
this is rather involved, so NTC thermistors are often modelled in a simpler form, the B (or ß) parameter
equation:
??(????
) = [
1
??0
+
1
??
ln (
????
??0
)]
-1
Where ??0 is the resistance at some reference temperature ??0, ????
is the resistance at temperature ?? and ??
is a constant (typically found from a datasheet or experimentally verified). This characterisation of a
thermistor requires that the absolute temperature in Kelvin is used.
You have been issued with 4.7kO Vishay NTCLE100E3 NTC thermistors. For these the following
coefficient values are correct:
T0 (degrees Kelvin) 298.15
R0 (O) 4700
ß (dimensionless) 3977
A.2 Measurement circuit
Like a great deal of digital data acquisition hardware the myDAQ can only measure voltages, not
resistance. The solution in such cases is to measure voltages from which the corresponding quantity of
interest can be derived. The simplest circuit to achieve this is the potential divider:
Fig. 2. Thermistor potential divider
Where Vref is a fixed supply voltage and R1 a fixed resistor. Typically R1 is chosen to match the thermistor
reference voltage in order to maximise the voltage range seen across the thermistor.
The acquisition hardware measures the voltage across the thermistor, .defined as:
????
??1
????????
????
University of Central Lancashire School of Engineering
EL1311 Software Development Assignment 2015/16
Page 6 of 7
???? = ???????? (
????
??1 + ????
)
Rearranging this to make the thermistor resistance Rt the subject:
???? = ??1 (
????
???????? – ????
)
Which can then be substituted into the original expression for temperature to give:
??(????
) = [
1
??0
+
1
??
ln (
??1
??0
.
????
???????? – ????
)]
-1
Which gives temperature as a function of voltage as measured by the data acquisition hardware.
A.3 Further reading:
NTC thermistors datasheet: http://www.vishay.com/docs/29049/ntcle100.pdf
Application notes: http://www.vishay.com/docs/29053/ntcintro.pdf
NI myDAQ User Guide http://www.ni.com/pdf/manuals/373060f.pdf
University of Central Lancashire School of Engineering
EL1311 Software Development Assignment 2015/16
Page 7 of 7
Appendix B – Labview style guidelines
Appearance:
1. Block diagram should be neat, concise and clear to read.
a. A left to right dataflow should be preserved wherever possible
b. Crossing and tangled wires should be avoided as much as is possible
c. Related nodes, functions and VIs should be grouped near one another and apart from
unrelated sections (sub-diagrams) of the block diagram.
2. Arrange your front panel in an orderly, uncluttered, fashion.
a. Related controls and/or indicators should be grouped together.
b. Use clusters, panels or tab controls to separate functionally distinct parts of the front panel.
General documentation:
3. Complete a VI description in the File?VI Properties dialog box. This should include:
a. An overview of the VI.
b. Instructions for use including external hardware dependencies.
c. Description of inputs and outputs.
4. Use meaningful names for your objects, e.g. your controls, indicators, constants, and so forth.
Front panel Documentation:
5. Create help info. for controls and indicators (right click and select Description and Tip).
6. The description is shown by selecting Context Help and should describe the purpose of the
object, datatype, valid range and default value (for inputs only) and additional information such
as unusual behaviour for special case input values.
7. The tip is shown by hovering the mouse over the object. By necessity this should be a much
briefer description of the purpose.
8. A prominent block of text on the front panel can provide important instructions. Use the text tool
to create free labels for this purpose.
a. Alternatively place a help button which displays this in a dialog box.
Block diagram documentation:
9. Show the label for all of your structures. Right click on the border and select Visible
Items?Label. Make the label specific and descriptive:
a. Summarise what the structure is responsible for doing.
b. With auto-indexed for loops identify the input controlling indexing.
c. With while loops describe the conditions to halt or continue.
d. With case structures explain the criteria for case selection.
10. Inside each frame of a case or sequence structure place a free label to summarise what happens
in that frame.
11. Icons for VIs and subVIs should be meaningful. Good graphics are nice, but text is easier. More
important that it is easy to understand than artistic.