S7-300 CPU 313C 4-20mA Analog Output: 14.4V Compliance Fix

David Krause13 min read
S7-300SiemensTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Problem Overview

A common field failure on Siemens SIMATIC S7-300 CPU 313C stations with the integrated AI5/AO2 analog section (12-bit) is that the analog outputs read ~14.4 V DC on a multimeter even though the project is configured for 4–20 mA current output. The symptom is especially misleading because the value stays constant regardless of the scaled engineering value (0–100, 0–27648, or otherwise), and the same voltage can be measured on the second unused channel. Commissioning engineers familiar with voltage-output cards often conclude that the module is defective, when in fact the reading is the compliance voltage of an open current loop. This article walks through the full diagnostic chain, the FC106 UNSCALE implementation, and the field verification procedure that restores the expected 4–20 mA signal.

Affected Hardware and Order Numbers

The fault pattern applies to the CPUs that expose the integrated analog I/O labelled AI5/AO2. The most common variants and their MLFB (Siemens order) numbers are:

CPU Order Number (MLFB) Analog I/O Resolution
CPU 313C 6ES7313-5BE01-0AB0 AI5 / AO2 12 bit
CPU 313C-2 DP 6ES7313-6CE01-0AB0 AI5 / AO2 12 bit
CPU 313C-2 PtP 6ES7313-6BF01-0AB0 AI5 / AO2 12 bit
CPU 314C-2 DP 6ES7314-6CF01-0AB0 AI5 / AO2 12 bit
CPU 314C-2 PN/DP 6ES7314-6EH04-0AB0 AI5 / AO2 12 bit

The analog behaviour, pinout, and FC106 scaling are identical across the C-CPU family. The troubleshooting procedure below is therefore equally valid for the OutputCPU314C instruction set documented in Easy Motion Control – OutputCPU314C (S7-300/S7-400).

Root Cause Analysis

A 4–20 mA analog output is a current regulator, not a voltage source. The output stage drives whatever voltage is necessary across the load in order to push the programmed current through it. The voltage it can produce is bounded by an internal compliance limit. When the loop is open (no load, or a load disconnected from a powered receiver), the regulator cannot establish the requested current, so the output simply rises to its compliance ceiling and stays there. On S7-300 C-CPU analog outputs that ceiling is approximately 14–16 V; the 14.4 V reading reported in the field is the regulator saturating against its own supply rail.

Symptom Most Likely Root Cause Verification
Constant ~14.4 V on AO terminals Open current loop – no load or receiver unpowered Measure mA in series with a known resistor
Same voltage on unused second channel Module has internal pull to compliance during fault Disconnect both AO channels and read
Voltage tracks setpoint value Output configured as voltage, not current Re-check HW Config output type
Voltage present with no scaling call Output defaults to mid-range or last value Force PQW = 0 and re-measure
Critical: Measuring voltage on a current output with no load will always read the compliance limit and is not an indication of a faulty module. Always insert a milliammeter in series with the load, or use a precision 250 Ω resistor to convert 4–20 mA into 1–5 V for a true engineering reading.

CPU 313C Analog Output Specifications

The integrated AO2 channel block has the following relevant electrical characteristics (taken from the S7-300 Automation System – Module Data manual and the CPU 313C/314C device manuals):

Parameter Value
Number of channels 2 (AO 0, AO 1)
Output ranges (current) 0–20 mA, 4–20 mA
Output ranges (voltage) ±10 V, 0–10 V
Resolution 12 bit (incl. sign)
Nominal range raw value 0 to +27648 (unipolar) / –27648 to +27648 (bipolar)
Conversion time per channel 1 ms typical
Compliance voltage (current output) ≥ 14 V typ., ≤ 16 V max
Max load at 20 mA 500 Ω (at 24 V supply)
Short-circuit protection Yes, electronic, thermal recovery
24 V supply for analog section Pin 31 (+), Pin 40 (–)
Galvanic isolation Yes, to backplane

The compliance limit is the maximum voltage the output can develop to drive current through the loop. When the loop resistance multiplied by the requested current exceeds this limit (V_load = I × R > V_compliance), the output saturates and the actual current is lower than commanded.

Pinout and Power Supply Wiring

The 40-pin front connector of the CPU 313C carries both the digital I/O and the analog section. The analog-relevant pins are:

Pin Signal Function
1 DI+0 Digital input 0 (24 V)
2 DI+1 Digital input 1 (24 V)
Digital inputs / process images
16 DI+15 Last digital input
20 1L (sensor supply 24 V) Internally fed from CPU; used as encoder/sensor 24 V source
31 ANA + (24 V) 24 V supply for analog section, must come from external 24 V DC PSU
32 AI 0+ Analog input 0, positive
33 AI 0– Analog input 0, negative / ground
34 AI 1+ Analog input 1, positive
35 AI 1– Analog input 1, negative / ground
40 ANA – (M) Analog ground reference, common with pin 31 reference
36 AO 0+ Analog output 0, positive
37 AO 0– Analog output 0, negative / ground
38 AO 1+ Analog output 1, positive
39 AO 1– Analog output 1, negative / ground

The analog section is not powered from the internal sensor supply on pin 20. Pins 31 and 40 require an external 24 V DC source (typically the same SITOP that powers the S7-300 rail, but the analog ground must be tied to the receiver's signal ground for a current loop to close). The original report cited pins 31 and 40 as a suspected problem, but measurements of +24 V on those pins would have confirmed the section was energised – the 14.4 V reading was not a power-supply issue.

FC106 UNSCALE Implementation

FC106 (UNSCALE) is the inverse of FC105 (SCALE). It accepts a real-valued engineering quantity and produces a 16-bit integer that can be written directly to the peripheral output word (PQW) of the analog output. For the S7-300 C-CPU the relevant peripheral addresses for the two analog outputs are:

  • AO 0 → PQW 752
  • AO 1 → PQW 754

Function call signature for FC106:

// FC106 – UNSCALE
// Input parameters
IN       : REAL  // Engineering value, e.g. 0.0 .. 100.0
HI_LIM   : REAL  // Engineering value that maps to 27648 (e.g. 100.0)
LO_LIM   : REAL  // Engineering value that maps to 0 (e.g. 0.0)
BIPOLAR  : BOOL  // FALSE for 0–20 mA / 4–20 mA
// Output
OUT      : INT   // 0..27648 (write to PQW 752 / 754)

ST-equivalent call:

// In a cyclic OB (e.g. OB35)
FC106(
    IN       := SETPOINT_ENG,        // REAL, e.g. speed reference 0..100 %
    HI_LIM   := 100.0,
    LO_LIM   := 0.0,
    BIPOLAR  := FALSE,
    OUT      := PQW752               // direct write to channel 0
);

Validation ladder:

// Force AO 0 to 0% and 100% to verify scaling manually
// Step 1 – output 0%
L 0.0
T MD 100        // SETPOINT_ENG = 0
CALL FC106
   IN := MD100
   HI_LIM := 100.0
   LO_LIM := 0.0
   BIPOLAR := FALSE
   OUT := PQW 752
// Expected at terminals: 4 mA (configured 4..20 mA)

// Step 2 – output 100%
L 100.0
T MD 100
CALL FC106 … same call …
// Expected at terminals: 20 mA

If OUT shows 0 in step 1 and 27648 in step 2 the FC106 chain is correct. The fault then lies entirely in the physical loop, not the program.

Step-by-Step Diagnostic Procedure

  1. Confirm hardware configuration. Open SIMATIC Manager → HW Config → double-click the CPU 313C → tab Analog. Verify that channel 0 is set to Output type = Current, Range = 4..20 mA. Save and recompile (Station → Save and Compile). Download HW Config to the CPU (PLC → Download).
  2. Verify the 24 V analog supply. With the CPU in STOP, measure between pin 31 (+) and pin 40 (–). Expect 24 V DC ±5%. If low or absent, the AO section is unpowered and the output will read 0 mA – not 14.4 V.
  3. Disconnect the field wiring. Remove both AO wires from pins 36/37 and 38/39. This isolates the loop from the inverter that is currently not energised.
  4. Force a known output value. In STEP 7, open VAT/Variable Table, set PQW 752 to 0, then 27648. Watch the value update at the CPU. Alternatively use FC106 in OB1 and force the engineering input from the watch table.
  5. Measure current, not voltage. Set the multimeter to mA DC. Insert the meter in series with a 250 Ω, 0.1 %, 5 W burden resistor between pin 36 (+) and pin 37 (–). Apply 0% → expect 4.00 mA (1.00 V across resistor). Apply 100% → expect 20.00 mA (5.00 V across resistor).
  6. If 14.4 V still appears with no load attached: the regulator is correctly driving toward compliance because the loop is open – this is expected and proves the AO is functional. Connect the load (inverter setpoint input) and re-measure. Most inverter setpoint inputs present 250 Ω internally and accept 4–20 mA directly.
  7. Reconnect the field wiring with attention to polarity and shield grounding. For a current output, the polarity is irrelevant at the AO side (current flows both ways), but the inverter setpoint terminal block is usually polarity-marked.
  8. Confirm scaling end-to-end. From the HMI/SCADA, drive SETPOINT_ENG from 0 to 100 in 10 % steps. Record the mA reading at each step. The transfer function must be linear: I (mA) = 4 + 16 × (engineering / HI_LIM).

Verification Tests

After completing the procedure above, run the following acceptance checks before handing the system back to production:

  • Zero check: with engineering input forced to LO_LIM, mA meter reads 4.00 ±0.02 mA. Drift < 0.05 % over 10 minutes.
  • Span check: with engineering input forced to HI_LIM, mA meter reads 20.00 ±0.04 mA.
  • Linearity check: at 25 %, 50 %, 75 % the readings should be 8.00, 12.00, 16.00 mA ±0.05 mA.
  • Loop resistance audit: total loop resistance including wire, burden, and receiver input impedance must be < 500 Ω. Above this, the AO cannot deliver 20 mA and the voltage will saturate.
  • SF LED off: no group fault on the CPU front panel. SF usually indicates HW Config mismatch (e.g. plug-in card declared but absent, or wrong output type).

Common Pitfalls and Field-Proven Caveats

  • Voltage instead of current measurement. The single most common reason for a "14.4 V on 4–20 mA output" report. Always measure mA in series, never V across an open loop.
  • Receiver unpowered. Many variable-frequency drives default the setpoint input to high impedance or open-circuit until the main 400 V / 480 V supply is on. Driving the setpoint with the drive in standby still results in an apparently open loop from the PLC side.
  • Loop resistance too high. Long cable runs (hundreds of metres) with small conductor cross-section can push total loop resistance above the 500 Ω compliance limit. Re-spec the cable or add a local loop isolator/booster.
  • Wrong HW Config output type. Selecting 0–10 V instead of 4–20 mA makes the output drive a voltage. With the inverter input expecting current, the result is non-linear or undefined behaviour and no SF is raised.
  • Using FC105 instead of FC106. FC105 is for inputs (INT → REAL); FC106 is for outputs (REAL → INT). Mixing them up produces a value clamped to 0 in the PQW.
  • PGND not tied. The analog section ground (pin 40) must share the same 0 V reference as the receiver input ground. Floating grounds introduce measurement noise and offsets that can be misdiagnosed as linearity errors.
  • Unused channel not terminated. A floating unused AO can hold a compliance voltage and read 14.4 V when probed. Leave it at a defined value (e.g. PQW 754 = 0) – the terminal voltage will drop to 4 mA worth (≈ 1 V across a typical input).
  • STEP 7 vs TIA Portal scaling. The SCL and ladder calls are identical, but in TIA Portal V13+ the SCALE_X / UNSCALE_X blocks replace FC105/FC106 and require explicit range structure inputs. The troubleshooting above remains valid; only the block instance changes.

Troubleshooting Matrix

Reading at AO Terminals Multimeter Mode Load Status Diagnosis Action
14.4 V VDC None Open loop, normal compliance Connect load, re-measure in mA
0 mA / 0 V mA DC / VDC Connected No output driven – PQW = 0 or supply missing Check PQW value and pin 31/40
20.0 mA full scale mA DC Connected PQW = 27648, FC106 OK, scaling maxed out Inspect HI_LIM and SETPOINT_ENG
0.5–3.5 mA regardless of PQW mA DC Connected BIPOLAR = TRUE on unipolar output, scaling inverted Set BIPOLAR = FALSE for 4..20 mA
Current clipped at ~13 mA mA DC Connected Loop resistance > 500 Ω, compliance exceeded Reduce cable length or increase wire gauge
Reading unstable / noisy mA DC Connected Missing or incorrect shielding, ground loop Tie pin 40 to receiver GND; use shielded twisted pair
SF LED on CPU n/a n/a HW Config mismatch or module diagnostic Open Module Information (PLC → Module Information) for buffer entries

Loop Resistance Sizing

When planning the physical wiring, calculate the maximum allowable loop resistance before pulling cable:

R_loop_max = (V_compliance – V_supply_margin) / I_max
For S7-300 AO:
V_compliance  ≈ 16 V  (worst case)
V_supply_margin = 2 V (recommended safety)
I_max = 20 mA

R_loop_max = (16 – 2) / 0.020 = 700 Ω  (theoretical)
Siemens derated value: 500 Ω

Subtract the receiver input impedance (typically 250 Ω for an inverter setpoint, 50 Ω for an indicator) and any burden resistor to obtain the maximum cable resistance:

R_cable_max = R_loop_max – R_receiver – R_burden
Example:
R_cable_max = 500 – 250 – 0 = 250 Ω
For 1000 m of 0.75 mm² copper (≈ 24 Ω/km), the loop is ≈ 48 Ω – well within budget.

Spare-Part Substitution

If after all the above the analog output still does not drive current correctly, the AO section of the CPU 313C is integrated and not field-replaceable. The entire CPU must be replaced. Pre-stage one of each variant:

  • 6ES7313-5BE01-0AB0 – CPU 313C
  • 6ES7313-6CE01-0AB0 – CPU 313C-2 DP
  • 6ES7314-6CF01-0AB0 – CPU 314C-2 DP (higher-spec spare, drop-in for most projects)

Transfer the SIMATIC MMC card (if present) and re-download the project. Verify that the analog configuration, FC106 instance, and PQW addresses are unchanged.

FAQ

Why does the AO terminal show 14.4 V when 4–20 mA is configured?

A 4–20 mA output drives current, not voltage. With no load connected, the regulator saturates against its internal compliance limit (typically 14–16 V on S7-300 C-CPU). This is normal behaviour. Measure current in series with a 250 Ω burden to confirm operation.

Do pins 31 and 40 have to be externally wired for the AO to work?

Yes. The analog section is galvanically isolated and requires its own 24 V DC supply on pin 31 (positive) and pin 40 (ground). Pin 20 (1L) powers digital sensors only and does not feed the analog outputs.

Can I use FC105 (SCALE) on the output instead of FC106 (UNSCALE)?

No. FC105 converts a raw 16-bit input (PIW) into a real engineering value. FC106 is the inverse and is required for converting an engineering real value (e.g. 0–100 %) into the raw 16-bit integer (0–27648) to be written to PQW 752/754.

What is the maximum cable length for a 4–20 mA loop from the CPU 313C?

Total loop resistance (cable + receiver + burden) must stay below 500 Ω. With a typical inverter setpoint of 250 Ω input impedance, up to ~250 Ω of cable is allowed – approximately 5 km of 0.75 mm² copper or 10 km of 1.5 mm² copper. Use shielded twisted pair and ground the shield at the cabinet end only.

Does OutputCPU314C behave the same way?

Yes. The OutputCPU314C instruction set documented for S7-300/S7-400 Easy Motion Control drives the same PQW 752/754 outputs with the same electrical characteristics. Any compliance, scaling, or wiring rules from this article apply unchanged.

Back to blog