analog IO - 13.1 13. ANALOG INPUTS AND OUTPUTS 13.1 INTRODUCTION An analog value is continuous, not discrete, as shown in Figure 13.1. In the previous chapters, techniques were discussed for designing continuos control systems. In this chapter we will examine analog inputs and outputs so that we may design continuous control systems that use computers. Figure 13.1 Logical and Continuous Values Typical analog inputs and outputs for computers are listed below. Actuators and sensors that can be used with analog inputs and outputs will be discussed in later chapters. Inputs: • oven temperature • fluid pressure • fluid flow rate Outputs: Topics: Objectives: • To understand the basics of conversion to and from analog values. • Analog inputs and outputs • Sampling issues; aliasing, quantization error, resolution Voltage t continuous logical analog IO - 13.2 • fluid valve position • motor position • motor velocity A basic analog input is shown in Figure 13.2. In this type of system a physical value is converted to a voltage, current or other value by a transducer. A signal conditioner converts the signal from the transducer to a voltage or current that is read by the analog input. Figure 13.2 Analog inputs Analog to digital and digital to analog conversion uses integers within the computer. Integers limit the resolution of the numbers to a discrete, or quantized range. The effect of using integers is shown in Figure 13.3 where the desired or actual analog value is continuous, but the possible integer values are quantified with a ’staircase’ set of values. Consider when a continuous analog voltage is being read, it must be quantized into an available integer value. Likewise, a desired analog output value is limited to available quantized values. In general the difference between the analog and quantized integer value is an error based upon the resolution of the analog I/O. physical transducer phenomenon signal analog (ie., sensor) conditioning input integer analog integer quantized continuous analog IO - 13.3 Figure 13.3 Quantization error 13.2 ANALOG INPUTS To input an analog voltage (into a computer) the continuous voltage value must be sampled and then converted to a numerical value by an A/D (Analog to Digital) converter (also known as ADC). Figure 13.4 shows a continuous voltage changing over time. There are three samples shown on the figure. The process of sampling the data is not instantaneous, so each sample has a start and stop time. The time required to acquire the sample is called the sampling time. A/D converters can only acquire a limited number of samples per second. The time between samples is called the sampling period T, and the inverse of the sampling period is the sampling frequency (also called sampling rate). The sampling time is often much smaller than the sampling period. The sampling frequency is specified when buying hardware, but a common sampling rate is 100KHz. Figure 13.4 Sampling an Analog Voltage A more realistic drawing of sampled data is shown in Figure 13.5. This data is noisier, and even between the start and end of the data sample there is a significant change in the voltage value. The data value sampled will be somewhere between the voltage at the start and end of the sample. The maximum (Vmax) and minimum (Vmin) voltages are a function of the control hardware. These are often specified when purchasing hardware, but reasonable ranges are; voltage time Voltage is sampled during these time periods T = (Sampling Frequency)-1 Sampling time analog IO - 13.4 0V to 5V 0V to 10V -5V to 5V -10V to 10V The number of bits of the A/D converter is the number of bits in the result word. If the A/D converter is 8 bit then the result can read up to 256 different voltage levels. Most A/D converters have 12 bits, 16 bit converters are used for precision measurements. Figure 13.5 Parameters for an A/D Conversion The parameters defined in Figure 13.5 can be used to calculate values for A/D converters. These equations are summarized in Figure 13.6. Equation 1 relates the number of V(t) t τ where, V(t) = the actual voltage over time τ = sample interval for A/D converter t = time t1 t2 V(t1) V(t2) Vmax Vmin t1, t2 = time at start,end of sample V(t1), V(t2) = voltage at start, end of sample Vmin, Vmax = input voltage range of A/D converter N = number of bits in the A/D converter analog IO - 13.5 bits of an A/D converter to the resolution. Equation 2 gives the error that can be expected with an A/D converter given the range between the minimum and maximum voltages, and the resolution (this is commonly called the quantization error). Equation 3 relates the voltage range and resolution to the voltage input to estimate the integer that the A/D converter will record. Finally, equation 4 allows a conversion between the integer value from the A/ D converter, and a voltage in the computer. Figure 13.6 A/D Converter Equations Consider a simple example, a 10 bit A/D converter can read voltages between - 10V and 10V. This gives a resolution of 1024, where 0 is -10V and 1023 is +10V. Because there are only 1024 steps there is a maximum error of ±9.8mV. If a voltage of 4.564V is input into the PLC, the A/D converter converts the voltage to an integer value of 746. When we convert this back to a voltage the result is 4.570V. The resulting quantization error is 4.570V-4.564V=+0.006V. This error can be reduced by selecting an A/D converter with more bits. Each bit halves the quantization error. R 2N = where, R = resolution of A/D converter VI INT Vin – Vmin Vmax – Vmin ---------------------------- = (R – 1) VI = the integer value representing the input voltage VC VI R – 1 ------------ = (Vmax – Vmin)+ Vmin VC = the voltage calculated from the integer value VERROR Vmax – Vmin 2R ---------------------------- = ± VERROR = the maximum quantization error (1) (3) (4) (2) analog IO - 13.6 Figure 13.7 Sample Calculation of A/D Values If the voltage being sampled is changing too fast we may get false readings, as shown in Figure 13.8. In the upper graph the waveform completes seven cycles, and 9 samples are taken. The bottom graph plots out the values read. The sampling frequency was too low, so the signal read appears to be different that it actually is, this is called aliasing. N = 10 R 2N = =1024 VI INT Vin – Vmin Vmax – Vmin ---------------------------- = R=746 VC VI R ----- = (Vmax – Vmin)+ Vmin=4.570V VERROR Vmax – Vmin 2R ---------------------------- = =0.0098V Vmax = 10V Vmin = –10V Vin = 4.564V Given, Calculate, analog IO - 13.7 Figure 13.8 Low Sampling Frequencies Cause Aliasing Figure 13.9 Very Low Sampling Frequencies Produce Apparently Random The Nyquist criterion specifies that sampling frequencies should be at least twice the frequency of the signal being measured, otherwise aliasing will occur. The example in analog IO - 13.8 Figure 13.8 violated this principle, so the signal was aliased. If this happens in real applications the process will appear to operate erratically. In practice the sample frequency should be 4 or more times faster than the system frequency. There are other practical details that should be considered when designing applications with analog inputs; • Noise - Since the sampling window for a signal is short, noise will have added effect on the signal read. For example, a momentary voltage spike might result in a higher than normal reading. Shielded data cables are commonly used to reduce the noise levels. • Delay - When the sample is requested, a short period of time passes before the final sample value is obtained. • Multiplexing - Most analog input cards allow multiple inputs. These may share the A/D converter using a technique called multiplexing. If there are 4 channels using an A/D converter with a maximum sampling rate of 100Hz, the maximum sampling rate per channel is 25Hz. • Signal Conditioners - Signal conditioners are used to amplify, or filter signals coming from transducers, before they are read by the A/D converter. • Resistance - A/D converters normally have high input impedance (resistance), so they affect circuits they are measuring. • Single Ended Inputs - Voltage inputs to a PLC can use a single common for multiple inputs, these types of inputs are called single ended inputs. These tend to be more prone to noise. • Double Ended Inputs - Each double ended input has its own common. This reduces problems with electrical noise, but also tends to reduce the number of inputs by half. • Sampling Rates - The maximum number of samples that can be read each second. If reading multiple channels with a multiplexer, this may be reduced. • Quantization Error - Analog IO is limited by the binary resolution of the converter. This means that the output is at discrete levels, instead of continuous values. • Triggers - often external digital signals are used to signal the start of data collection. • Range - the typical voltages that the card can read. Typical voltage ranges are - 10V to 10V, 0V to 10V, 0V to 5V, 1V to 5V, -5V to 5V, 4mA to 20mA. • DMA - a method to write large blocks of memory directly to computer memory. This is normally used for high speed data captures. fAD > 2fsignal where, fAD = sampling frequency fsignal = maximum frequency of the input analog IO - 13.9 • Filters - some A/D input cards will provide built in functions to filter the incoming data to remove high frequency noise components. • Input impedance - most analog inputs have very high input resistances, in the range of Mohms. Figure 13.10 A Successive Approximation A/D Converter D to A converter successive approximation logic 8 8 + - clock reset data out +Vref -Vref Vin Ve Vin above (+ve) or below (-ve) Ve ASIDE: This device is an 8 bit A/D converter. The main concept behind this is the successive approximation logic. Once the reset is toggled the converter will start by setting the most significant bit of the 8 bit number. This will be converted to a voltage Ve that is a function of the +/-Vref values. The value of Ve is compared to Vin and a simple logic check determines which is larger. If the value of Ve is larger the bit is turned off. The logic then repeats similar steps from the most to least significant bits. Once the last bit has been set on/off and checked the conversion will be complete, and a done bit can be set to indicate a valid conversion value. done Quite often an A/D converter will multiplex between various inputs. As it switches the voltage will be sampled by a sample and hold circuit. This will then be converted to a digital value. The sample and hold circuits can be used before the multiplexer to collect data values at the same instant in time. analog IO - 13.10 13.3 ANALOG OUTPUTS Analog outputs are much simpler than analog inputs. To set an analog output an integer is converted to a voltage. This process is very fast, and does not experience the timing problems with analog inputs. But, analog outputs are subject to quantization errors. Figure 13.11 gives a summary of the important relationships. These relationships are almost identical to those of the A/D converter. Figure 13.11 Analog Output Relationships Assume we are using an 8 bit D/A converter that outputs values between 0V and 10V. We have a resolution of 256, where 0 results in an output of 0V and 255 results in 10V. The quantization error will be 20mV. If we want to output a voltage of 6.234V, we would specify an output integer of 160, this would result in an output voltage of 6.250V. The quantization error would be 6.250V-6.234V=0.016V. R 2N = where, R = resolution of A/D converter VI INT Vdesired – Vmin Vmax – Vmin ----------------------------------- = R VI = the integer value representing the desired voltage Voutput VI R ----- = (Vmax – Vmin)+ Vmin Voutput = the voltage output using the integer value VERROR Vmax – Vmin 2R ---------------------------- = ± VERROR = the maximum quantization error (5) (7) (8) (6) Vdesired = the desired output voltage analog IO - 13.11 The current output from a D/A converter is normally limited to a small value, typically less than 20mA. This is enough for instrumentation, but for high current loads, such as motors, a current amplifier is needed. This type of interface will be discussed later. If the current limit is exceeded for 5V output, the voltage will decrease (so don’t exceed the rated voltage). If the current limit is exceeded for long periods of time the D/A output may be damaged. N = 8 R 2N = =256 VI INT Vin – Vmin Vmax – Vmin ---------------------------- = R=160 VC VI R ----- = (Vmax – Vmin)+ Vmin=6.250V VERROR Vmax – Vmin 2R ---------------------------- = =0.020V Vmax = 10V Vmin = 0V Vdesired = 6.234V Given, Calculate, analog IO - 13.12 Figure 13.12 A Digital-To-Analog Converter 13.4 NOISE REDUCTION 13.4.1 Shielding When a changing magnetic field cuts across a conductor, it will induce a current flow. The resistance in the circuits will convert this to a voltage. These unwanted voltages Computer bit 3 bit 2 bit 1 bit 0 MSB LSB - 20KΩ + 10KΩ 40KΩ 80KΩ 5KΩ Vo + - 0 Vss V + V– V + =0=V– First we write the obvious, Next, sum the currents into the inverting input as a function of the output voltage and the input voltages from the computer, Vb3 10KΩ --------------- Vb2 20KΩ --------------- Vb1 40KΩ --------------- Vb0 80KΩ + + +--------------- Vo 5KΩ = ------------ ∴Vo 0.5Vb3 0.25Vb2 0.125Vb1 0.0625Vb0 = + + + Consider an example where the binary output is 1110, with 5V for on, ∴Vo=0.5(5V)+ 0.25(5V)+ 0.125(5V)+ 0.625(0V)=4.375V ASIDE: analog IO - 13.13 result in erroneous readings from sensors, and signal to outputs. Shielding will reduce the effects of the interference. When shielding and grounding are done properly, the effects of electrical noise will be negligible. Shielding is normally used for; all logical signals in noisy environments, high speed counters or high speed circuitry, and all analog signals. There are two major approaches to reducing noise; shielding and twisted pairs. Shielding involves encasing conductors and electrical equipment with metal. As a result electrical equipment is normally housed in metal cases. Wires are normally put in cables with a metal sheath surrounding both wires. The metal sheath may be a thin film, or a woven metal mesh. Shielded wires are connected at one end to "drain" the unwanted signals into the cases of the instruments. Figure 13.13 shows a thermocouple connected with a thermocouple. The cross section of the wire contains two insulated conductors. Both of the wires are covered with a metal foil, and final covering of insulation finishes the cable. The wires are connected to the thermocouple as expected, but the shield is only connected on the amplifier end to the case. The case is then connected to the shielding ground, shown here as three diagonal lines. Figure 13.13 Shielding for a Thermocouple A twisted pair is shown in Figure 13.14. The two wires are twisted at regular intervals, effectively forming small loops. In this case the small loops reverse every twist, so any induced currents are cancel out for every two twists. Insulated wires Metal sheath Insulating cover Two conductor shielded cable cross section analog IO - 13.14 Figure 13.14 A Twisted Pair When designing shielding, the following design points will reduce the effects of electromagnetic interference. • Avoid “noisy” equipment when possible. • Choose a metal cabinet that will shield the control electronics. • Use shielded cables and twisted pair wires. • Separate high current, and AC/DC wires from each other when possible. • Use current oriented methods such as sourcing and sinking for logical I/O. • Use high frequency filters to eliminate high frequency noise. • Use power line filters to eliminate noise from the power supply. 13.4.2 Grounding - ground voltages are based upon the natural voltage level in the physical ground (the earth under your feet). This will vary over a distance. Most buildings and electrical systems use a ground reference for the building. Between different points on the same building ground voltage levels may vary as much as a few hundred millivolts. This can lead to significant problems with voltage readings and system safety. - A signal can be floating, or connected to a ground - if floating a system normally has a self contained power source, or self reference such as a battery, strain gauge or thermocouple. These are usually read with double ended outputs. The potential for floating voltage levels can be minimized by connecting larger resistors (up to 100K) from the input to ground. - a grounded system uses a single common (ground) for all signals. These are normally connected to a single ended inputs. - the analog common can also be connected to the ground with a large resistor to drain off induced voltages. 1" or less typical analog IO - 13.15 - cable shields or grounds are normally only connected at one side to prevent ground loops. 13.5 CASE STUDY - data smoothing by averaging inputs - conversion back to an input voltage - use it to calculate an output voltage for control. 13.6 SUMMARY • A/D conversion will convert a continuous value to an integer value. • D/A conversion is easier and faster and will convert a digital value to an analog value. • Resolution limits the accuracy of A/D and D/A converters. • Sampling too slowly will alias the real signal. • Analog inputs are sensitive to noise. • Analog shielding should be used to improve the quality of electrical signals. 13.7 PRACTICE PROBLEMS 1. What is the difference between an A/D input and D/A output? 2. An analog voltage that has a range of -10V to 10V and is to be read to a precision of +/-0.05V. How is the minimum number of bits required for the A/D converter? 3. If given a 12 bit analog input with a range of -10V to 10V. If we put in 2.735V, what will the integer value be after the A/D conversion? What is the error? What voltage can we calculate? 13.8 PRACTICE PROBLEM SOLUTIONS 1. an A/D converter will convert an analog input voltage (or current) to an integer value. A D/A output will convert an integer value to an output voltage. analog IO - 13.16 2. 3. 13.9 ASSIGNMENT PROBLEMS 1. An analog output needs to be between -4V and 8V, in 0.005V intervals. How many bits are required for the D/A converter? 2. Discuss methods for reducing electrical noise in analog inputs. R 10V –(–10V) 0.1V =---------------------------------=200 7 bits, R = 128 8 bits, R = 256 The minimum number of bits is 8. N = 12 R = 4096 Vmin = –10V Vmax = 10V VI INT Vin – Vmin Vmax – Vmin ---------------------------- = (R – 1)=2607 VC VI R – 1 ------------ = (Vmax – Vmin)+ Vmin=2.733V Vin = 2.735V error=Vc – Vin=(–0.002)V