diff --git a/pt100/mybib.bib b/pt100/mybib.bib new file mode 100644 index 0000000..150c845 --- /dev/null +++ b/pt100/mybib.bib @@ -0,0 +1,404 @@ +% +% +% $Id: mybib.bib,v 1.5 2008/12/18 17:05:23 robin Exp $ +% +% + +@TechReport{db, + author = {R Clark, D Legge}, + title = {ETC6000 Daughterboard Design notes}, + institution = {ETC HR221850}, + year = {2004}, + key = {}, + OPTtype = {}, + OPTnumber = {}, + OPTaddress = {}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {}, + OPTurl = {}, + OPTdoi = {}, + issn = {HR221850}, + OPTlocalfile = {}, + OPTabstract = {}, +} + +@TechReport{mil1991, + author = {U.S. Department of Defence}, + title = {Reliability Prediction of Electronic Equipment}, + institution = {DOD}, + year = {1991}, + key = {MIL-HDBK-217F}, + OPTtype = {}, + OPTnumber = {}, + OPTaddress = {}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {}, + OPTurl = {}, + OPTdoi = {}, + OPTissn = {}, + OPTlocalfile = {}, + OPTabstract = {}, +} + +@Manual{tlp181, + title = {TLP 181 Datasheet}, + key = {TOSHIBA Photocoupler GaAs Ired & Photo−Transistor}, + author = {Toshiba inc.}, + OPTorganization = {}, + %address = {http://www.toshiba.com/taec/components2/Datasheet\_Sync//206/4191.pdf}, + OPTedition = {}, + OPTmonth = {}, + year = {2009}, +OPTnote = {}, + OPTannote = {}, + OPTurl = {}, + OPTdoi = {}, +OPTissn = {}, + OPTlocalfile = {}, + OPTabstract = {}, +} + + + + +@Manual{pic18f2523, + title = {PIC18F2523 Datasheet}, + OPTkey = {}, + author = {Microchip inc}, + OPTorganization = {}, + address = {http://ww1.microchip.com/downloads/en/DeviceDoc/39755c.pdf}, + OPTedition = {}, + OPTmonth = {}, + year = {2009}, + OPTnote = {}, + OPTannote = {}, + OPTurl = {}, + OPTdoi = {}, + OPTissn = {}, + OPTlocalfile = {}, + OPTabstract = {}, +} + + +@Book{wt, + title = {Water Treatment Essentials for Boiler Plant Operation}, + publisher = {Mc Graw Hill ISBN 0-07-048291-5}, + year = {1997}, + author = {Robert G Nunn}, + ALTALTeditor = {}, + OPTkey = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {}, + OPTedition = {}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {}, + OPTurl = {}, + OPTdoi = {}, + OPTissn = {ISBN 0-07-048291-5}, + OPTlocalfile = {}, + OPTabstracts = {}, +} + +@TechReport{pcbAI222562, + author = {C Talmay}, + title = {Circuit Schematic TDS Daughterboard AI222562}, + institution = {ETC}, + year = {2010}, + OPTkey = {}, + OPTtype = {}, + OPTnumber = {AI222562}, + OPTaddress = {}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {}, + OPTurl = {}, + OPTdoi = {}, + OPTissn = {}, + OPTlocalfile = {}, + OPTabstract = {}, +} + +@TechReport{spiraxsarco, + author = {Spirax Sarco}, + title = {http://www.spiraxsarco.com/resources/steam-engineering-tutorials.asp}, + institution = {Spirax Sarco}, + year = {2010}, + OPTkey = {}, + OPTtype = {}, + OPTnumber = {}, + OPTaddress = {}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {}, + OPTurl = {}, + OPTdoi = {}, + OPTissn = {}, + OPTlocalfile = {}, + OPTabstract = {}, +} + +@Book{aoe, + title = {The Art of Electronics}, + publisher = {Cambridge}, + year = {1989}, + author = {Paul Horowitz, Winfield Hill}, + %author = {}, + OPTkey = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {}, + OPTedition = {2nd}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {}, + OPTurl = {}, + OPTdoi = {}, + OPTissn = {ISBN 0-521-37095-7}, + OPTlocalfile = {}, + OPTabstracts = {}, +} + +@TechReport{eurothermtables, + author = {}, + title = {Thermocouple Emf TABLES and PLATINUM 100 RESISTANCE THERMOMETER TABLES}, + institution = {Eurotherm}, + year = {1973}, + OPTkey = {}, + OPTtype = {}, + OPTnumber = {}, + OPTaddress = {}, + OPTmonth = {June}, + OPTnote = {Bulletin TT-1}, + OPTannote = {}, + OPTurl = {}, + OPTdoi = {}, + OPTissn = {}, + OPTlocalfile = {}, + OPTabstract = {}, +} + +@MISC{iso639-1, + title = "ISO 639-1: Code for the Representation of Names of Languages", + author = "International Standardization Organization", + howpublished = "http://www.loc.gov/standards/iso639-2/criteria1.html" + year = "1998" +} + +@MISC{nano-x, + title = "The nano-X windowing system", + author = "Greg Haerr", + howpublished = "http://www.microwindows.org/" + year = "2003" +} + + + + +@MISC{X11, + title = "The XFree86 Project, Inc", + author = "Open Source", + howpublished = "http://www.xfree86.org/" + year = "1992" +} + + +http://www.xfree86.org/ + +@MISC{iso639-2, + title = "ISO 639-2: Code for the Representation of Names of Languages", + author = "International Standardization Organization", + howpublished = "http://www.loc.gov/standards/iso639-2/criteria1.html" + year = "1998" +} + + +@misc{ touchscreenprod, + author = "M. Thirsk", + title = "Touchscreen Production Procedure : HR~222165", + howpublished = "Internal ETC Document", + year = "2008" }; + + +@misc{ touchscreensoftware, + author = "ETC Software Dept.", + title = "Touchscreen Software released to Production : HR~222162", + howpublished = "Internal ETC Software (medium: 2 MMC cards)", + year = "2008" }; + +@misc{ touchscreengui, + author = "D.J. Legge, R.P.Clark", + title = "Touchscreen GUI Design Document : HR~222163", + howpublished = "Internal ETC Document", + year = "2008" }; + + +@misc{ gumstix, + author = "Gumstix Inc", + title = "Gumstix Home Page", + howpublished = "WEB http://www.gumstix.com/", + year = "2008" }; + + +@misc{ fltk, + author = "FLTK open Source Developers", + title = "Fast Light Toolkit", + howpublished = "WEB http://www.fltk.org/", + year = "2008" }; + + +@Book{ldd, +author = {Jonathon Corbet}, +ALTeditor = {Alessandro Rubini}, +ALTeditor = {Greg Kroah-Hartman}, +title = {Linux Device Drivers}, +publisher = {O'Reilly ISBN 0-596-00590-3}, +year = {1998}, +OPTkey = {ISBN 0-596-00590-3}, +OPTvolume = {}, +OPTnumber = {}, +OPTseries = {linux}, +OPTaddress = {}, +OPTedition = {3rd}, +OPTmonth = {}, +OPTnote = {}, +OPTannote = {}, +OPTurl = {www.oreilly.com}, +OPTdoi = {}, +OPTissn = {}, +OPTlocalfile = {}, +OPTabstract = {} +}; + + +@Book{bash, +author = {Carl Albing}, +title = {Bash Cookbook}, +publisher = {O'Reilly ISBN 0-596-52678-4}, +year = {2007}, +OPTkey = {ISBN 0-596-52678-4}, +OPTvolume = {}, +OPTnumber = {}, +OPTseries = {unix/linux}, +OPTaddress = {}, +OPTedition = {}, +OPTmonth = {}, +OPTnote = {}, +OPTannote = {}, +OPTurl = {www.oreilly.com}, +OPTdoi = {}, +OPTissn = {}, +OPTlocalfile = {}, +OPTabstract = {} +}; + +@Book{sedawk, +author = {Dale Dougherty, Arnold Robbins}, +title = {Sed and Awk}, +publisher = {O'Reilly ISBN 1-56592-225-5}, +year = {1997}, +OPTkey = {ISBN 1-56592-225-5}, +OPTvolume = {}, +OPTnumber = {}, +OPTseries = {unix/linux}, +OPTaddress = {}, +OPTedition = {}, +OPTmonth = {}, +OPTnote = {}, +OPTannote = {}, +OPTurl = {www.oreilly.com}, +OPTdoi = {}, +OPTissn = {}, +OPTlocalfile = {}, +OPTabstract = {} +}; + +@Book{bels, +author = {Karim Yaghmour}, +title = {Building Embedded LINUX systems}, +publisher = {O'Reilly ISBN ISBN 0-596-00222-X}, +year = {2003}, +OPTkey = {ISBN 0-596-00222-X}, +OPTvolume = {}, +OPTnumber = {}, +OPTseries = {linux}, +OPTaddress = {}, +OPTedition = {3rd}, +OPTmonth = {}, +OPTnote = {}, +OPTannote = {}, +OPTurl = {www.oreilly.com}, +OPTdoi = {}, +OPTissn = {}, +OPTlocalfile = {}, +OPTabstract = {} +}; + +@Book{can, +author = {Olaf Pfeiffer}, +ALTeditor = {Andrew Ayre}, +ALTeditor = {Christian Keydel}, +title = {Embedded networking with CAN and CANopen}, +publisher = {RTC ISBN 0-929392-78-7}, +year = {2003}, +OPTkey = { }, +OPTvolume = {}, +OPTnumber = {}, +OPTseries = {Embedded Systems}, +OPTaddress = {}, +OPTedition = {1st}, +OPTmonth = {}, +OPTnote = {}, +OPTannote = {}, +OPTurl = {www.rtcbooks.com}, +OPTdoi = {}, +OPTissn = {}, +OPTlocalfile = {}, +OPTabstract = {} +}; + +@Article{article, +author = {dd}, +title = {dd}, +journal = {dd}, +year = {2008}, +OPTkey = {}, +OPTvolume = {}, +OPTnumber = {}, +OPTpages = {1,2}, +OPTmonth = {JAN}, +OPTnote = {}, +OPTannote = {}, +OPTurl = {}, +OPTdoi = {}, +OPTissn = {}, +OPTlocalfile = {}, +OPTabstract = {} +}; + +@Book{sqlite, +author = {Micheal Owens}, +title = {The definitive guide to SQLite}, +publisher = {Apres ISBN 1-59059-673-0}, +year = {2006}, +OPTkey = {}, +OPTvolume = {}, +OPTnumber = {}, +OPTseries = {Databases/SQLite}, +OPTaddress = {}, +OPTedition = {}, +OPTmonth = {}, +OPTnote = {}, +OPTannote = {}, +OPTurl = {}, +OPTdoi = {}, +OPTissn = {}, +OPTlocalfile = {}, +OPTabstract = {} +}; + diff --git a/pt100/pt100.dia b/pt100/pt100.dia new file mode 100644 index 0000000..3818525 Binary files /dev/null and b/pt100/pt100.dia differ diff --git a/pt100/pt100.jpg b/pt100/pt100.jpg new file mode 100644 index 0000000..92461ca Binary files /dev/null and b/pt100/pt100.jpg differ diff --git a/pt100/pt100.tex b/pt100/pt100.tex new file mode 100644 index 0000000..9d91844 --- /dev/null +++ b/pt100/pt100.tex @@ -0,0 +1,249 @@ +\documentclass[a4paper,10pt]{article} +\usepackage[utf8x]{inputenc} +\usepackage{graphicx} +\usepackage{fancyhdr} +\usepackage{lastpage} +\clubpenalty=300 +\widowpenalty=300 +% +% Make the revision and doc number macro's then they are defined in one place +\newcommand{\rev}{PA5} +\newcommand{\etcdoc}{ HR222975 } +\newcommand{\wlc}{{Water~Level~Controller~Unit}} +\newcommand{\ft}{{\em 4 $\rightarrow$ 20mA } } +\newcommand{\tds}{TDS Daughterboard} +\newcommand{\oc}{$^{o}{C}$} +\newcommand{\adctw}{{${\mathcal{ADC}}_{12}$}} +\newcommand{\adcten}{{${\mathcal{ADC}}_{10}$}} +\newcommand{\ohms}[1]{\ensuremath{#1\Omega}} + +\title{TDS Daughter Board Design Notes \\ \etcdoc revision \rev} +\author{R.P. Clark} + +\begin{document} +\pagenumbering{roman} +\pagestyle{fancy} +\maketitle +\lhead{} +\chead{\textbf{ETC6211: Total Dissolved Solids Daughterboard}} +\rhead{} +\rfoot{\thepage} +\cfoot{} +\lfoot{\textbf{\small ETC Document Number: \etcdoc Revision: \rev}} + +\maketitle + +\begin{abstract} +The PT100, or platinum wire \ohms{100} sensor is +a wisely used industrial temperature sensor that is +are slowly replacing the use of thermocouples in many +industrial applications below 600\oc, due to high accuracy\cite{aoe}. + +This chapter looks at the most common configuration, the +four wire circuit, and analyses it from an FMEA perspective twice. +Once considering single faults (cardinality constrained powerset of 1) and then again, considering the +possibility of double simultaneous faults (cardinality constrained powerset of 2). + +The analysis is performed using Propositional Logic +diagrasms to aid in the reasoning process, which takes +the failure modes of the components, and produces a +failure mode model for the circuit as a whole. +Thus after the analysis the PT100 temperature sensing circuit, may be veiwed +from an FMEA persepective as a component itsself, with a set of know failure modes. + +\end{abstract} +\section{Overview of PT100 four wire circuit} + +The PT100 four wire circuit consists of teo resistors supplying +a current to a third, the thermistor or PT100. By measuring volatges +from sections of this circuit forming potential dividers, we can determine the +current resistance of the platinum wire sensor. The resistance +of this is directly related to temperature, and may be determined by +look-up tables or a suitable polynomial expression. + +\subsection{Accuracy despite variable resistance in cables} + +For electronic and accuracy reasons the four wire circiut is used +because of resistance in the cables. Resitance from the supply + causes a slight voltage +drop in the supply to the PT100. As no significant current +is carried by the two `sense' lines the resistance back to the ADC +causes only a negligible voltage drop. The current flowing though the +whole circuit can be measured on the PCB by reading a third +sense voltage from one of the load resistors. Knowing the current flowing +through the circuit +and knowing the voltage drop over the PT100, we can calculate its +resistance by ohms law $V=I.R$, $R=\frac{I}{V}$. +Thus a little loss of supply current due to resistance in the cables +does not impinge on accuracy. +The resistance to temperature conversion is achieved +through the published PT100 tables\cite{eurothermtables}. + +\section{Safety case for 4 wire circuit} + +This sub-section looks at the behaviour of the PT100 four wire circuit +for the effects of component failures. +All components have a set of known `failure modes'. +In other words we know that a given component can fail in several distict ways. +Studies have been published which list common component types +and their sets of failure modes, often with MTTF statistics \cite{mil1991}. +Thus for each component, an analysis is made for each of it failure modes, +with respect to its effect on the +circuit. Each one of these scenarios is termed a `test case'. +The resultant circuit behaviour for each of these test cases is noted. +The worst case for this type of +analysis would be a fault that we cannot detect. +Where this occurs a circuit re-design is probably the only sensible course of action. + +\subsection{Single Fault FMEA Analysis of PT100 Four wire circuit} + +\label{fmea} +Looking at this circuit, it simply consists of three resistors. +Resistors according to the DOD Electronic component fault handbook +1991, fail by either going OPEN or SHORT circuit \cite{mil1991}. +%Should wires become disconnected these will have the same effect as +%given resistors going open. +For the purpose of his analyis; +$R_{1}$ is the \ohms{2k2} from 5V to the thermistor, +$R_p$ is the PT100 thermistor and $R_{2}$ connects the thermistor to ground. + +\begin{table}[ht] +\caption{PT100 FMEA Single Faults} % title of Table +\centering % used for centering table +\begin{tabular}{||l|c|c|l|l||} +\hline \hline + \textbf{Test} & \textbf{Result} & \textbf{Result } & \textbf{General} \\ + \textbf{Case} & \textbf{sense +} & \textbf{sense -} & \textbf{Symtom Description} \\ +% R & wire & res + & res - & description +\hline +\hline + $R_1$ SHORT & High & - & Value Out of Range Value \\ \hline +$R_1$ OPEN & Low & Low & Both values out of range \\ \hline + \hline +$R_p$ SHORT & Low & High & Both values out of range \\ \hline + $R_p$ OPEN & High & Low & Both values out of range \\ \hline +\hline +$R_2$ SHORT & - & Low & Value Out of Range Value \\ + $R_2$ OPEN & High & High & Both values out of range \\ \hline +\hline +\end{tabular} +\label{ptfmea} +\end{table} + +From table \ref{ptfmea} it can be seen that any component failure in the circuit +will cause a common symptom, that of one or more of the values being out of range. +So by defining an acceptable measurement/temperature range, and ensuring the +values are always within these bounds we can be confident that none of the +resistors in this circuit has failed. + +\subsection{Single Fault Modes as PLD} + +% Place in PLD diagram + +\subsection{Range and PT100 Calculations} + +PT100 resistors are designed to +have a resistance of ohms{100} at 0 \oc \cite{eurothermtables}. +A suitable `wider than to be expected range' was considered to be {-100\oc} to {300\oc}. +According to the Eurotherm PT100 +tables \cite{eurothermtables}, this corresponded to the resistances \ohms{60.28} +and \ohms{212.02} respectively. From this the potential divider circuit can be +analysed and the maximum and minimum acceptable voltages determined. +These can be used as bounds results to apply the findings from the +PT100 FMEA analysis in section \ref{fmea}. + +As the PT100 forms a potential divider with the \ohms{2k2} load resistors, +the upper and lower readings can be calculated thus: + +$$ highreading = 5V.\frac{2k2+pt100}{2k2+2k2+pt100} $$ +$$ lowreading = 5V.\frac{2k2}{2k2+2k2+pt100} $$ + +To convert these to twelve bit ADC (\adctw) counts: + +$$ highreading = 2^{12}.\frac{2k2+pt100}{2k2+2k2+pt100} $$ +$$ lowreading = 2^{12}.\frac{2k2}{2k2+2k2+pt100} $$ + + +\begin{table}[ht] +\caption{PT100 Maximum and Minimum Values} % title of Table +\centering % used for centering table +\begin{tabular}{||c|c|c|l|l||} +\hline \hline + \textbf{Temperature} & \textbf{PT100 resistance} & +\textbf{Lower} & \textbf{Higher} & \textbf{Description} \\ +\hline + {-100 \oc} & {\ohms{68.28}} & 2.46V & 2.53V & Boundary of \\ + & & 2017\adctw & 2079\adctw & out of range LOW \\ \hline + {0 \oc} & {\ohms{100}} & 2.44V & 2.56V & Mid Range \\ + & & 2002\adctw & 2094\adctw & \\ \hline + {+300 \oc} & {\ohms{212.02}} & 2.38V & 2.62V & Boundary of \\ + & & 1954\adctw & 2142\adctw & out of range HIGH \\ \hline +\hline +\end{tabular} +\label{ptbounds} +\end{table} + +Table \ref{ptbounds} gives ranges that determine correct operation. In fact it can be shown that +for any single error (short or opening of any resistor) this bounds check +will detect it. + +%\vbox{ +%\subsubsection{Calculating Bounds: High Value : HP48 RPL} +% +% +%HP RPL calculator program to take pt100 resistance +%and convert to voltage and {\adctw} values. +% +%\begin{verbatim} +%<< -> p +% << +% p 2200 + 2200 2200 + p + / 5 * DUP 5 +% / 4096 * +% >> +%>> +%\end{verbatim} +%} +% +%\vbox{ +%\subsubsection{Calculating Bounds: LOW Value : HP48 RPL} +% +% +%HP RPL calculator program to take pt100 resistance +%and convert to voltage and {\adctw} values. +% +%\begin{verbatim} +%<< -> p +% << +% p 2200 2200 p 2200 + + / 5 * DUP 5 +% / 4096 * +% >> +%>> +%\end{verbatim} +%} +% +%\subsection{Implementation of Four Wire Circuit} +% +%A standard 4 wire PT100\cite[pp 992]{aoe} circuit is read by +%ports on the 12 bit ADC of the PIC18F2523\cite{pic18f2523}. +%Three readings are taken. A reading to confirm the voltage level +%over $R_2$ is taken, +%from which the current can be determined. +%The two sense lines then give the voltage over the PT100 thermistor. +%As we know the current flowing through it we can determine the +%resistance. +% +%After verification (PT100 voltages/readings in range etc) the temperature +%value is determined by interpolation via the PT100 tables \cite{eurothermtables}. +%First order low pass filtering is then applied to smooth the value. +%\section{Water Level Readings - \ft Inputs} +%\label{wl} +%After h/w revision 0.4, water level sensor \ft connections are wired to the TDS daughterboard, +%but are passed to the main unit via a multiplexer, and connect to the +%14 pin harwin (to PIN 13 of JP1 \cite{pcbAI222562}). +% +%The safety critical \ft water~level readings are thus handled in the \wlc. +% + +\subsection{Single Fault FMEA Analysis of PT100 Four wire circuit} +typeset in {\Huge \LaTeX} \today +