PLC concepts
5.3 Processing of analog values
S7-1200 Programmable controller
System Manual, V4.2, 09/2016, A5E02486680-AK
123
Processing of analog values
Analog signal modules provide input signals or expect output values that represent either a
voltage range or a current range. These ranges are ±10 V, ±5 V, ±2.5 V, or 0 - 20 mA. The
values returned by the modules are integer values where 0 to 27648 represents the rated
range for current, and -27648 to 27648 for voltage. Anything outside the range represents
either an overflow or underflow. See the tables for analog input representation (Page 1471)
and analog output representation (Page 1472) for details about the types of out-of-range
values.
In your control program, you probably need to use these values in engineering units, for
example to represent a volume, temperature, weight or other quantitative value. To do this
for an analog input, you must first normalize the analog value to a real (floating point) value
from 0.0 to 1.0. Then you must scale it to the minimum and maximum values of the
engineering units that it represents. For values that are in engineering units that you need to
convert to an analog output value, you first normalize the value in engineering units to a
value between 0.0 and 1.0, and then scale it between 0 and 27648 or -27648 to 27648,
depending on the range of the analog module. STEP 7 provides the NORM_X and SCALE_X
instructions (Page 296) for this purpose. You can also use the CALCULATE instruction
(Page 255) to scale the analog values (Page 42).
Example: analog value processing
Consider, for example, an analog input that has a current range of 0 - 20 mA. The analog
input module returns values in the range 0 to 24768 for measured values. For this example,
consider that you are using this analog input value to measure a temperature range from
50 °C to 100 °C. A few sample values would have the following meanings:
6192 62.5 °C
The calculation for determining engineering units from the analog input value in this example
is as follows:
Engineering units value = 50 + (Analog input value) * (100 - 50) / (24768 - 0)
For the general case, the equation would be:
Englineering units value = (Low range of engineering units) +
(High range of engineering units
- Low range of engineering units) /
(Maximum analog input range - Minimum analog input range)