From ebc4bd19bf1d0417f2ecb9b07d461edeeb6df9f4 Mon Sep 17 00:00:00 2001 From: Robin Clark Date: Mon, 28 Jun 2010 21:10:44 +0100 Subject: [PATCH] milli volt sensor with added safety resistor better description and diagram --- introduction/introduction.tex | 83 +++++++++++++++++++----------- introduction/mv_opamp_circuit.png | Bin 0 -> 19992 bytes 2 files changed, 53 insertions(+), 30 deletions(-) create mode 100644 introduction/mv_opamp_circuit.png diff --git a/introduction/introduction.tex b/introduction/introduction.tex index b80022d..3effd1e 100644 --- a/introduction/introduction.tex +++ b/introduction/introduction.tex @@ -325,41 +325,64 @@ Checking for error conditions must also be incorporated. It could also develop an internal fault, and must be able to recognise and cope with this. - - - -\begin{figure} -\vskip 7cm -\special{psfile=introduction/millivoltsensor.ps hoffset=0 voffset=0 hscale=35 vscale=35 }\caption[Milli-Volt Sensor with safety resistor]{ -Milli-Volt Sensor with safety resistor -\label{fig:millivolt}} +\begin{figure}[h] + \centering + \includegraphics[width=300pt,bb=0 0 678 690,keepaspectratio=true]{introduction/mv_opamp_circuit.png} + % mv_opamp_circuit.png: 678x690 pixel, 72dpi, 23.92x24.34 cm, bb=0 0 678 690 + \caption{Milli-volt amplifier with added safety Resistor} + \label{fig:millivolt} \end{figure} + +% +% %5 +% \begin{figure} +% \vskip 7cm +% \special{psfile=introduction/millivoltsensor.ps hoffset=0 voffset=0 hscale=35 vscale=35 }\caption[Milli-Volt Sensor with safety resistor]{ +% Milli-Volt Sensor with safety resistor +% \label{fig:millivolt}} +% \end{figure} + + + \paragraph{Component added to detect errors} -For exmaple, if the sensor supplies a range of 0 to 40mV, and RG1 and RG2 are such that the op-amp supplies a gain of 100 -any signal between 0 and 4 volts on the ADC will be considered in range. Should the sensor become disconnected the -opamp will supply its maximum voltage, telling the system the sensor reading is invalid. - +The op-amp in the circuit in figure \ref{fig:imillivolt}, supplies a gain of $\approx 180$ \footnote{ +applying formula for non-inverting op-amp gain\cite{aoe} $\frac{150 \times 10^3}{820}+ 1 = 183$ }. +The safety case here is that +any amplified signal between 0.5 and 4 volts on the ADC will be considered in range. +This means that between 3mV and 21mV on the input correctly amplified +can be measured.\footnote{this would be a typical thermocouple amplifier circuit where milli-volt signals +are produced by the Seebeck effect\cite{aoe}} +Should the sensor become disconnected the input will drift up due to the safety resistor $R18$. +This will cause the opamp to supply its maximum voltage, telling the system the sensor reading is invalid. +Should the sensor become shorted, the input will fall below 3mV and the op amp will +supply a voltage below 0.5. +% +\paragraph{Self Checking} This introduces a level of self checking into the system. -We need to be able to react to not only errors in the process its self, -but also validate and look for internal errors in the control system. +Admittedly this is the simplest failure mode scenario (that the +sensor is not wired correcly or has become disconnected). +% +This safety resisitor has a side effect, it also checks for some internal errorsi +that could occur in this circuit. +Should the input resistor $R22$ go OPEN this will be detected. +Should the gain resistors $R30$ or $R26$ go OPEN or SHORT a fault condition will be detected. +% +\paragraph{Not rigorous, but tested by time} +This is a typical example of an industry standard circuit that has been +thought through, and in practise works and detects most failure modes. +But it is not rogorous. It does not take into account every failure +mode of every component in it. -This leads on to an important concept of three main states of a safety critical system. - - -% To improve productivity, performance, and cost-effectiveness, we are developing more and more safety-critical systems that are under computer control. And centralized computer control is enabling many safety-critical systems (e.g., chemical and pesticide factories) to grow in size, complexity, and potential for catastrophic failure. - -% We use software to control our factories and refineries as well as power generation and distribution. We also use software in our transportation systems including airplanes, trains, ships, subways, and even in our family automobiles. Software is also a major component of many medical systems in which safe functioning is critical to the safety of patients and operators alike. Even when the software does not directly control safety-critical hardware, software can provide operators and users with safety-critical data with which they must make safety-critical decisions (e.g., air traffic control or medical information such as blood bank records, organ donor information, and patient medical records). As we have come to rely more on software-intensive systems, we have come to rely more on those systems functioning safely. - -% Many accidents are caused by problems with system and software requirements, and “empirical evidence seems to validate the commonly stated hypothesis that the majority of safety problems arise from software requirements and not coding errors” [Leveson1995]. Major accidents often result from rare hazards, whereby a hazard is a combination of conditions that increases the likelihood of accidents causing harm to valuable assets (e.g., people, property, and/or the environment). Most requirements specifications are incomplete in that they do not specify requirements to eliminate these rare hazards or mitigate their consequences. Requirements specifications are also typically incomplete in that they do not specify what needs to happen in exceptional “rainy day” situations or as a response to each possible event in each possible system state although accidents are often caused by the incorrect handling of rare combinations of events and states that were considered to be either impossible or too unlikely to worry about, and were therefore never specified. Even when requirements have been specified for such rare combinations of events and conditions, they may well be ambiguous (an unfortunately common characteristic of requirements in practice), partially incomplete (missing assumptions obvious only to subject matter experts), or incorrect, or inconsistently implemented. Thus, the associated hazards are not eliminated or the resulting harm is not properly mitigated when the associated accidents occur. Ultimately, safety related requirements are important requirements that need to be better engineered. - -% The goal of this column is to define safety requirements and clarify how they differ from safety constraints and from functional, data, and interface requirements that happen to be safety critical. I start by defining safety in terms of a powerful quality model and show how quality requirements (including safety requirements) can be specified in terms of the components of this quality model. I will then show how to use the quality model to specify safety requirements. Then, I will define and discuss safety constraints and safety-critical requirements. Finally, I will pose a set of questions regarding the engineering of these three kinds of safety-related requirements for future research and experience to answer. - -Safety critical systems in the context of this study, means that a safety critical system may be said to be in three distinct +However it does lead on to an important concept of three main states of a safety critical system. +% +\paragraph{Working, safe fault mode, dangerous fault mode} +We can say that a safety critical system may be said to have three distinct overall states. -Operating normally, operating in a lockout mode with a detected fault, and operating -dangerously with an undetected fault. - -The main role of the system designers of safety critical equipment should be to eliminate the possibility of this last condition. +Operating normally, operating in a safe mode with a fault, and operating +dangerously with a fault. +% +The main role of the system designers of safety critical equipment should be +to reduce the possibility of this last condition. % Software plays a critical role in almost every aspect facet of our daily lives - from , to driving our cars, to working in our offices. % Some of these systems are safety-critical. diff --git a/introduction/mv_opamp_circuit.png b/introduction/mv_opamp_circuit.png new file mode 100644 index 0000000000000000000000000000000000000000..7698db653a3a2a4278af4f3f885a8de3b194c07e GIT binary patch literal 19992 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