Bird
Raised Fist0
PLC Programmingscripting~5 mins

Scaling analog values in PLC Programming

Choose your learning style10 modes available
Introduction
Scaling analog values helps convert raw sensor signals into meaningful numbers we can understand and use.
You want to convert a sensor's voltage reading into temperature in degrees.
You need to change a raw sensor number into a percentage for a display.
You want to map a sensor's output range to a control system's input range.
You need to adjust sensor data to match engineering units like pressure or flow.
Syntax
PLC Programming
ScaledValue = ((RawValue - RawMin) * (ScaledMax - ScaledMin)) / (RawMax - RawMin) + ScaledMin
RawValue is the sensor's current reading.
RawMin and RawMax are the sensor's minimum and maximum raw values.
ScaledMin and ScaledMax are the desired output range values.
Examples
Convert a 12-bit ADC value (0-4095) to temperature 0-100 degrees.
PLC Programming
ScaledTemp = ((RawADC - 0) * (100 - 0)) / (4095 - 0) + 0
Convert a 4-20mA sensor signal to pressure 0-10 bar.
PLC Programming
ScaledPressure = ((SensorValue - 4) * (10 - 0)) / (20 - 4) + 0
Sample Program
This program takes a raw sensor value from 0 to 1023 and scales it to a range from 0 to 100. For example, a raw input of 512 will be about 50.
PLC Programming
(* PLC Structured Text example to scale a 0-10V sensor to 0-100 units *)
VAR
  RawInput : INT := 512; (* Example raw sensor value *)
  ScaledOutput : REAL;
  RawMin : INT := 0;
  RawMax : INT := 1023;
  ScaledMin : REAL := 0.0;
  ScaledMax : REAL := 100.0;
END_VAR

ScaledOutput := ((RawInput - RawMin) * (ScaledMax - ScaledMin)) / (RawMax - RawMin) + ScaledMin;
(* Output the scaled value *)
(* In a real PLC, you might send ScaledOutput to a display or control system *)
OutputSuccess
Important Notes
Make sure RawMin is less than RawMax to avoid errors.
Scaling keeps the relationship between raw and scaled values linear.
Always test with known values to confirm your scaling is correct.
Summary
Scaling converts raw sensor data into useful units.
Use the formula to map one range to another.
Check your min and max values carefully.

Practice

(1/5)
1. What is the main purpose of scaling analog values in PLC programming?
easy
A. To reduce the size of the PLC program
B. To increase the speed of the PLC processor
C. To convert raw sensor signals into meaningful engineering units
D. To change digital signals into analog signals

Solution

  1. Step 1: Understand analog input signals

    Raw sensor signals are usually voltage or current values that need interpretation.
  2. Step 2: Purpose of scaling

    Scaling converts these raw signals into meaningful units like temperature or pressure.
  3. Final Answer:

    To convert raw sensor signals into meaningful engineering units -> Option C
  4. Quick Check:

    Scaling = Convert raw to useful units [OK]
Hint: Scaling means converting raw sensor data to real-world units [OK]
Common Mistakes:
  • Confusing scaling with speeding up the PLC
  • Thinking scaling reduces program size
  • Mixing analog and digital signal conversion
2. Which of the following is the correct formula to scale a raw analog input raw from range raw_min to raw_max into a scaled output range scale_min to scale_max?
easy
A. scaled = (raw - raw_min) * (scale_max - scale_min) / (raw_max - raw_min) + scale_min
B. scaled = raw * (scale_max - scale_min) / (raw_max + raw_min) + scale_min
C. scaled = (raw + raw_min) * (scale_max + scale_min) / (raw_max - raw_min)
D. scaled = (raw - raw_max) * (scale_min - scale_max) / (raw_min - raw_max) + scale_max

Solution

  1. Step 1: Recall the scaling formula

    The formula maps raw input linearly to the scaled range using subtraction and division.
  2. Step 2: Check each formula

    scaled = (raw - raw_min) * (scale_max - scale_min) / (raw_max - raw_min) + scale_min correctly subtracts raw_min, scales by ratio of output to input range, then adds scale_min.
  3. Final Answer:

    scaled = (raw - raw_min) * (scale_max - scale_min) / (raw_max - raw_min) + scale_min -> Option A
  4. Quick Check:

    Scaling formula = scaled = (raw - raw_min) * (scale_max - scale_min) / (raw_max - raw_min) + scale_min [OK]
Hint: Use (raw - raw_min) * output_range / input_range + scale_min [OK]
Common Mistakes:
  • Adding raw_min instead of subtracting
  • Using addition instead of subtraction in denominator
  • Mixing max and min values incorrectly
3. Given a raw input value of 2500 from a sensor with raw range 0-4095, scaled to temperature range 0-100°C using the formula scaled = (raw - 0) * (100 - 0) / (4095 - 0) + 0, what is the scaled temperature?
medium
A. 61.07°C
B. 25.00°C
C. 100.00°C
D. 0.61°C

Solution

  1. Step 1: Substitute values into formula

    scaled = (2500 - 0) * (100 - 0) / (4095 - 0) + 0 = 2500 * 100 / 4095
  2. Step 2: Calculate the scaled value

    scaled = 250000 / 4095 ≈ 61.07°C
  3. Final Answer:

    61.07°C -> Option A
  4. Quick Check:

    2500/4095 ≈ 0.61 * 100 = 61.07 [OK]
Hint: Divide raw by max raw, multiply by max scale [OK]
Common Mistakes:
  • Using raw_max as 2500 instead of 4095
  • Forgetting to subtract raw_min
  • Mixing up numerator and denominator
4. A PLC program uses this scaling code snippet:
scaled = (raw - 100) * (200 - 0) / (1000 - 0) + 0

What is the error in this scaling formula?
medium
A. The raw_min value should be 0, not 100
B. The denominator should be (1000 - 100) instead of (1000 - 0)
C. The formula should subtract scale_min, not raw_min
D. The scale_max value should be 100, not 200

Solution

  1. Step 1: Identify raw input range

    Raw input minimum is 100, maximum is 1000, so input range is 1000 - 100 = 900.
  2. Step 2: Check denominator in formula

    The formula uses (1000 - 0) = 1000, which is incorrect; it should be (1000 - 100) = 900.
  3. Final Answer:

    The denominator should be (1000 - 100) instead of (1000 - 0) -> Option B
  4. Quick Check:

    Input range = max - min = 900, not 1000 [OK]
Hint: Denominator = raw_max - raw_min, not raw_max - 0 [OK]
Common Mistakes:
  • Using wrong input range denominator
  • Confusing scale and raw min/max
  • Subtracting scale_min instead of adding
5. You have a sensor outputting raw values from 500 to 3500 representing pressure from 20 to 100 psi. Which formula correctly scales a raw input raw to pressure?
hard
A. pressure = (raw - 500) * (100 - 20) / (3500 - 500) + 0
B. pressure = (raw - 0) * (100 - 20) / (3500 - 500) + 20
C. pressure = (raw - 500) * (100 - 20) / (3500 - 0) + 20
D. pressure = (raw - 500) * (100 - 20) / (3500 - 500) + 20

Solution

  1. Step 1: Identify raw and scale ranges

    Raw range: 500 to 3500; pressure range: 20 to 100 psi.
  2. Step 2: Apply scaling formula

    Use (raw - raw_min) * (scale_max - scale_min) / (raw_max - raw_min) + scale_min.
  3. Step 3: Check each option

    pressure = (raw - 500) * (100 - 20) / (3500 - 500) + 20 correctly uses raw_min=500, raw_max=3500, scale_min=20, scale_max=100.
  4. Final Answer:

    pressure = (raw - 500) * (100 - 20) / (3500 - 500) + 20 -> Option D
  5. Quick Check:

    Correct raw and scale min/max used in formula [OK]
Hint: Always subtract raw_min and add scale_min in formula [OK]
Common Mistakes:
  • Using 0 instead of raw_min in subtraction
  • Adding 0 instead of scale_min at end
  • Mixing raw_max with 0 in denominator
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard