LabVIEW

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.