S7-1200 SM 1231 Analog Input Source Mode for 4-Wire Current Transducers
The SIMATIC S7-1200 SM 1231 analog input module (order number 6ES7231-4HD30-0XB0) is a passive receiving device. The on-board measurement front-end sinks current; it does not source it. Attempting to wire a 4-wire (active) current transducer so that the AI 'sources' current from its terminals to the transducer will not change the input into an active source. It reverses the polarity of the loop and in most cases pushes the input stage outside its common-mode rating, producing distorted readings, channel saturation, or hardware damage.
This article explains the electrical topology of the SM 1231, the correct way to integrate 4-wire active and 2-wire passive current transducers, the 500 Ω burden technique, the TIA Portal parameter block required to read 0–20 mA or 4–20 mA correctly, and the field checks that confirm the loop is healthy before commissioning.
Problem Statement
A typical field question reads: 'I have a 4-wire (active) current transducer with its own 24 V supply. Can I connect 0+ on the SM 1231 to my 24 V rail and 0− to the transducer output, so the input sources current?' The short answer is no, and the reason is that an analog input is not an analog output. A sourcing current loop requires the input to push energy into the transducer, but the SM 1231 AI is a high-impedance voltmeter with an internal burden resistor. It can only absorb current delivered by the transducer.
The correct wiring is the inverse: the transducer sources 4–20 mA into the AI, and the AI returns that current to the transducer's 0 V rail. In a 2-wire passive loop the transducer is unpowered and the PLC (plus an external 24 V supply) provides the loop excitation. In a 4-wire active loop the transducer provides its own excitation and the SM 1231 simply measures the resulting current.
Module Identification: 6ES7231-4HD30-0XB0
The article focuses on the SM 1231 AI4×13 bit signal module that sits on the right side of an S7-1200 CPU. The order number breaks down as 6ES7 (SIMATIC), 231 (AI family), 4H (4-channel, high feature), D30 (the 30 mm wide housing), 0XB0 (release status).
| Parameter | Value |
|---|---|
| Order number (MLFB) | 6ES7231-4HD30-0XB0 |
| Function | Analog input module for SIMATIC S7-1200 |
| Number of inputs | 4 differential, isolated in two groups of two |
| Resolution | 13 bit (12 bit + sign in bipolar voltage ranges) |
| Voltage ranges | ±10 V, ±5 V, ±2.5 V, 0–10 V |
| Current ranges | 0–20 mA, 4–20 mA |
| Internal burden | 500 Ω, software-selected per channel group |
| Integration time | Configurable for 50 Hz / 60 Hz / 400 Hz rejection |
| Galvanic isolation | Between channel groups and backplane (per module datasheet) |
| Required CPU firmware | V3.0 or higher for the full current-mode configuration dialog |
The same electrical principles apply to the 6ES7231-4HF30-0XB0 (8-channel) and 6ES7231-5ND30-0XB0 (4-channel, 16-bit) modules, with the only differences being channel count, resolution, and the exact common-mode ratings printed in the device manual.
Why S7-1200 Analog Inputs Cannot Source Current
The input stage of every SM 1231 channel is a switched-capacitor delta-sigma ADC preceded by a differential front-end amplifier. The signal path between terminal 0+ and terminal 0− contains:
- An input protection network (TVS diodes + series resistor) that clamps transients and limits fault current.
- A differential amplifier with a fixed gain set by the configured range.
- A 500 Ω internal burden resistor that is auto-connected through a software-controlled analog switch when the channel is configured for current mode.
The 500 Ω burden is the load. The transducer pushes current through it, and the resulting voltage drop is what the ADC measures. If the wiring is reversed so that the transducer sinks current out of the AI terminal, two things happen:
- Current flows from the AI's internal protection network backwards, forward-biasing the input clamp diodes. The diodes clamp the differential voltage, the ADC saturates at the rail, and the silicon can overheat if the loop is fused loosely.
- The MANA reference (terminal 2M / 3M) is no longer at the same potential as the transducer's 0 V, so the common-mode voltage on the input stage rises. Above the rated common-mode limit the input is operating outside specification, even if it is not yet destroyed.
There is no firmware switch that flips the SM 1231 into 'source mode'. The hardware has no current source on the analog side; it only has a burden resistor and an ADC. The only 'mode' is the choice of voltage range, current range, and integration time, set inside the device configuration in TIA Portal.
Sink vs Source Mode: Electrical Topology
Industry convention treats an analog input as a sink: current flows into the + terminal, through the burden resistor, and out of the − terminal back to the source. The transducer is the source. This is identical to how a multimeter in 'mA' mode behaves — you break the loop and route current through the meter.
An analog output is the opposite: it sources (or sinks) current to a passive load. The S7-1200 SM 1232 AQ modules can be wired as voltage outputs, current-sourcing outputs, or current-sinking outputs depending on the load. SM 1231 AI modules are not configurable that way.
| Direction | Device type | Role in current loop | Example on S7-1200 |
|---|---|---|---|
| Sinks current (passive input) | Analog input | Burden resistor to MANA | SM 1231 (all variants) |
| Sources current (active output) | Analog output, sourcing | Pushes current out of + terminal | SM 1232 in 'current' mode with a passive load |
| Sinks current (active output) | Analog output, sinking | Pulls current into − terminal | SM 1232 with a sourcing field device |
| Sources current (active input transducer) | 4-wire transmitter | Self-powered, drives the loop | Any 4-wire active 4–20 mA sensor |
Once the topology is clear, wiring becomes mechanical: match the current flow direction to the SM 1231 input polarity. The S7-1200 documentation entry 'Processing of analog values' walks through the rest of the data path, from the burden resistor to the engineering units in the user program.
Wiring 4-Wire Active Transducers Correctly
A 4-wire transducer has four terminals: +24 V supply, 0 V supply, current output +, and current output −. Internally, the output stage is a precision current regulator that holds the loop current proportional to the measured variable. The 4-wire device sources the loop current; the SM 1231 sinks it.
The two required connections are I+ to SM 1231 terminal 0+ and I− to SM 1231 terminal 0−. The transducer's 0 V supply terminal must be tied to the SM 1231 MANA reference (terminal 2M on the first group of two channels, terminal 3M on the second group) so the differential amplifier sees a defined common-mode level. Without that bond, the loop floats and the ADC reading wanders or pegs at the rail.
Wiring 2-Wire Passive Transducers
A 2-wire transducer derives its operating power from the loop current itself. The SM 1231 does not provide loop power on its own. To use a 2-wire device, add a 24 V power supply in series with the loop, with the positive rail feeding the transducer and the negative rail terminating on the SM 1231 input. Inside the AI, the 500 Ω burden sits between 0+ and 0−, so the loop is completed through the burden.
- Connect +24 V supply to the transducer's + terminal.
- Connect the transducer's − terminal to SM 1231 0+.
- Connect SM 1231 0− to the 0 V rail of the 24 V supply.
- Bond the 0 V rail to MANA (2M / 3M) at a single point.
The SM 1231 cannot power the loop on its own, so a 2-wire transducer on this module must always be paired with an external 24 V source. The internal 500 Ω burden drops up to 10 V at 20 mA, leaving about 14 V for the transducer and the supply. That is sufficient for most 2-wire industrial transmitters, which typically need 11–13 V headroom. If the transducer requires more headroom, fit a higher-voltage supply (e.g. 26.5 V regulated) and recheck the headroom budget.
500 Ω Shunt Resistor Method
For an S7-1200 CPU that has onboard analog inputs (CPU 1211C, 1212C, 1214C, 1215C, 1217C) those channels are voltage-only by design. Siemens documents a workaround on the support portal entry 'How can the CPU analog inputs of the SIMATIC S7-1200 also measure currents of 0-20 mA?' at Siemens Support ID 67396370: install a 500 Ω precision resistor between the analog input terminal and the MANA reference (for example between '0' and '2M' or '1' and '2M'). The 500 Ω converts 0–20 mA into 0–10 V, which the ADC then digitises in the 0–10 V range. The PLC sees a 0–10 V signal regardless of whether the source is a voltage or current transducer.
The SM 1231 (6ES7231-4HD30-0XB0) has the 500 Ω burden built in and selected through TIA Portal, so no external resistor is required. The principle is identical, however, and the table below shows the conversion from loop current to burden voltage to raw ADC count in the 0–10 V range.
| Loop current | Voltage across 500 Ω burden | Raw ADC count (0–10 V range, 13 bit) |
|---|---|---|
| 0 mA | 0.000 V | 0 |
| 4 mA | 2.000 V | 8192 |
| 10 mA | 5.000 V | 16384 |
| 12 mA | 6.000 V | 19661 |
| 20 mA | 10.000 V | 27648 |
TIA Portal Configuration
Open the device view of the SM 1231, click the channel group (0–1 or 2–3), and configure the following parameters in the Properties pane under 'Analog inputs'.
| Parameter | Setting for 4…20 mA | Setting for 0…20 mA |
|---|---|---|
| Measurement type | Current | Current |
| Output range | 4…20 mA | 0…20 mA |
| Integration time | 60 Hz (16.67 ms) | 60 Hz (16.67 ms) |
| Smoothing | None / Weak / Medium / Strong | None / Weak / Medium / Strong |
| Overflow / underflow behaviour | Diagnostic interrupt enabled | Diagnostic interrupt enabled |
| Wire break check (4…20 mA only) | Enabled | N/A |
Enable the diagnostic interrupt for overrange and wire break. For a 4…20 mA loop, wire break detection is automatic once current mode is selected: if the loop current falls below 3.6 mA, the module raises a wire-break diagnostic and the value reads −32768 (0x8000) in the process image. The exact threshold is listed in the module's device manual in TIA Portal under 'Diagnostics > Wire break'.
Analog Value Scaling and Normalization
The raw integer from the SM 1231 in 4…20 mA mode spans 0 to 27648, where 0 corresponds to 4 mA and 27648 corresponds to 20 mA. Values below zero (down to −32768) are reserved for diagnostics such as wire break or overrange. The TIA Portal help topic 'Processing of analog values' walks through the full normalisation chain:
- Read the raw integer IW from the process image.
- Convert the integer to a normalised real in the range 0.0…1.0 by dividing by 27648.0.
- Scale the normalised value to the engineering range using the high and low scale of the process variable.
An SCL function block that performs the scaling for a 0–100 m³/h flowmeter looks like this:
// FB "AI_4to20mA_Scale" - scale SM 1231 raw value to engineering units
FUNCTION_BLOCK "AI_4to20mA_Scale"
VAR
iRawInput : INT; // IW from process image
rScaleLo : REAL := 0.0; // engineering value at 4 mA
rScaleHi : REAL := 100.0; // engineering value at 20 mA
rScaled : REAL;
bWireBreak : BOOL;
END_VAR
BEGIN
IF iRawInput < 0 THEN
// Negative values are reserved for diagnostics
bWireBreak := TRUE;
rScaled := 0.0;
ELSE
bWireBreak := FALSE;
rScaled := (INT_TO_REAL(iRawInput) / 27648.0) * (rScaleHi - rScaleLo) + rScaleLo;
END_IF;
END_FUNCTION_BLOCK
The same function block works for 0–20 mA. The only difference is that 0 mA yields a raw value of 0 and the wire-break diagnostic is unavailable because the loop current can legitimately be 0. For 0–20 mA loops, implement an explicit underrange check (raw value < 0) and a hardware-side open-loop detection resistor if the application requires a true live-zero check.
Verification and Commissioning
After wiring, walk through the following checks before applying process power to the transducer.
- Polarity check. With the PLC in STOP and the loop unpowered, use a multimeter in diode-test mode to verify the body-diode orientation between 0+ and 0−. The reading should be high-impedance in both directions, indicating the protection network is intact. A forward-biased reading of 0.3–0.7 V in either direction suggests the protection diodes have already been shorted by a previous wiring mistake.
- Loop continuity. Apply 24 V to the transducer and measure the loop current with a clamp meter or by breaking the loop and inserting a multimeter in series. You should see 4 mA at the low end of the process variable and 20 mA at the high end. Current outside that range points to a misconfigured channel or a transducer fault.
- Voltage across the burden. With the loop live, measure the voltage between SM 1231 terminals 0+ and 0−. It should be 2.0 V at 4 mA and 10.0 V at 20 mA. If the reading is 0 V, the burden is not in the circuit (configuration mismatch) or the loop is open. If the reading is pegged at 10.0 V, the loop is shorted or the transducer is driving the wrong polarity.
- Watch the raw input in TIA Portal. In online & diagnostics, force the channel to current mode and read IW. The integer should track the loop current proportionally. Any value stuck at −32768 indicates a wire-break diagnostic; any value stuck at 32767 indicates an overflow.
- Inject a known signal. Disconnect the transducer and feed a calibrated 4–20 mA source. Verify the engineering value computed by the scaling FB matches the source value within the loop's accuracy class (typically ±0.3 % of full scale for a class-A 4–20 mA loop).
Troubleshooting Matrix
| Symptom | Likely cause | Corrective action |
|---|---|---|
| Raw value pegs at 32767 (overflow) | Loop current above 20 mA, often a short across 0+ to 0− or a transducer fault | Remove power, measure loop resistance end-to-end, fix wiring, replace any damaged 500 Ω burden |
| Raw value reads 0 in 4…20 mA mode | Polarity reversed, open loop, or wire break | Swap 0+ and 0− leads, verify continuity, check for open fuses in the transducer supply |
| Raw value reads −32768 | Wire break (current below 3.6 mA) or broken transducer | Check transducer power supply, check loop wiring, inspect the transducer output stage |
| Reading noisy or oscillating | No bond between transducer 0 V and MANA, or shared cable with VFD power | Add single-point bond, route analog cable in its own conduit, enable 50/60 Hz integration time |
| Reading offset by a fixed value (e.g. 2 V) | 500 Ω burden tolerance or temperature drift | Replace with 0.1 % metal-foil resistor, perform two-point calibration in TIA Portal |
| Reading pegged at 10 V with no loop | Short between 0+ and 0−, or channel still configured as voltage | Remove field wiring, put a known 12 mA source on the input, confirm channel type matches the wiring |
| Channel permanently damaged after a wiring mistake | Common-mode over-voltage or reverse polarity above rated limit | Replace SM 1231 module, add external TVS protection on retrofits, document the wiring in the cabinet drawing |
| Value tracks input but with a sign error | Transducer wired backwards at the AI terminals | Swap I+ and I− leads on the SM 1231 only; never reverse the transducer power supply |
Frequently Asked Questions
Can the S7-1200 SM 1231 be put into analog input source mode?
No. The SM 1231 is a passive receiving device. The on-board 500 Ω burden is fixed between the + and − terminals of each channel, and the firmware only lets you choose between voltage and current ranges, not the direction of current flow. Source the current from the transducer and let the SM 1231 sink it.
How do I wire a 4-wire active current transducer to the SM 1231?
Connect the transducer's I+ to SM 1231 terminal 0+ and I− to 0−. Bond the transducer's 0 V supply to the SM 1231 MANA terminal (2M or 3M) at a single point. Configure the channel as 'Current, 4…20 mA' in TIA Portal and enable the wire-break diagnostic.
Do I need an external 500 Ω resistor for current measurement on the SM 1231?
No. The SM 1231 (order number 6ES7231-4HD30-0XB0) has the 500 Ω burden built in and selects it through TIA Portal. The external 500 Ω resistor is only required on the CPU's onboard analog inputs, which are designed for voltage only. See the Siemens Support entry ID 67396370 for the CPU onboard AI procedure.
What raw value indicates a wire break on a 4…20 mA channel?
The raw integer goes to −32768 (0x8000) and a diagnostic interrupt is raised with channel error 'Wire break'. The PLC user program should treat any negative raw value as a fault rather than a process measurement, and latch a fail-safe output value until the loop current returns above 3.6 mA.
My SM 1231 reads 10 V across the input even with no loop. What is wrong?
The most common cause is a short circuit between 0+ and 0− that pushes the current-mode burden to its compliance limit, or a misconfigured channel that is still in voltage mode. Remove the field wiring, feed a known 12 mA source into the input, and confirm the channel type matches the wiring before reconnecting the transducer.