1. Problem Description
An SM 1234 analog input/output module on a SIMATIC S7-1200 CPU returns a stuck value of 0 at input word IW100 (channel 2, configured 0–20 mA) even though a Fluke 787 ProcessMeter is injecting current into terminals 2+ and 2-. The calibrator display shows the dashes-only state --.---- when the MIN/MAX output buttons are pressed, confirming the loop is not closed. The TIA Portal NORM_X block receives a normalized value of 0.0, which SCALE_X then converts to the engineering range.
This fault mode is one of the most frequently reported issues on 4-wire current-loop analog channels because the symptom (zero input, full calibrator compliance) does not point to a single cause. The fault tree involves the calibrator's mA mode, the loop power supply path, the polarity of the connection, and the scaling configuration in TIA Portal.
2. Affected Hardware and Firmware
| Item | Value |
|---|---|
| PLC family | SIMATIC S7-1200 |
| Module | SM 1234 AI 4 x 13 bit / AQ 2 x 14 bit (6ES7234-4HE32-0XB0 and successors) |
| CPU firmware tested | V4.2 through V4.6 (TIA Portal V15.1 through V19) |
| Calibrator | Fluke 787 ProcessMeter (any firmware revision; same rule applies to 789, 787B, 787VP) |
| Affected channel | Channel 2 (terminals 2+ / 2-) |
| Configured measurement type | 0–20 mA (current, 4-wire) |
| PLC tag | %IW100 (input word, channel 2 raw integer) |
3. Root Cause Analysis
The Fluke 787 has two distinct mA output modes that look identical on the front panel:
- Simulate mode – The 787 acts as a passive current sink. It draws the programmed current through an externally powered loop. The 24 VDC loop supply must come from elsewhere (the PLC, a separate power supply, or the transmitter).
- Source mode – The 787 actively drives the programmed current into the loop using its internal 24 V compliance voltage. No external loop supply is required.
When the SM 1234 channel is configured for 0–20 mA current, the module's AI is a passive current-sinking input. It expects the loop to be powered by the transmitter or by an external 24 V supply. If the user places the 787 in Simulate mode without providing that external supply, the 787 cannot push current because there is no voltage to push it against. The display reads --.---- because the calibrator's compliance circuit cannot regulate.
The second contributor is the polarity and order of the wires. The SM 1234 front connector has two rows per channel (upper and lower). Field data shows that nearly every "zero reading" report on the SM 1231 / SM 1234 / SM 1238 family is caused by wires landed on the wrong row. Always cross-check the silk-screen on the module against the wiring diagram in the SIMATIC S7-1200 Programmable Controller System Manual before applying power.
The third contributor is the absence of a precision shunt resistor. The SM 1234 0–20 mA input is implemented as a 250 Ω internal burden resistor terminated to the channel ground. The resulting voltage is digitized. A field technician using a Fluke 787 in current-source mode will see correct loop current at the calibrator terminals, but if the same technician re-energizes the loop without the SM 1234 connected (or while probing with a hand-held DMM in current mode), the absence of a return path will be misinterpreted as a wiring fault. The classical field fix is to install an external 500 Ω precision resistor across the input terminals when bench-testing without the module connected, and to verify the resulting voltage drop with a DMM in volts mode.
4. Solution A — Configure the Fluke 787 to Source Mode
- Turn the rotary switch on the Fluke 787 to the mA output position.
- Press the
%(percent) / mode button until the on-screen label reads Source (not Simulate). The icon typically shows a battery symbol when in Source mode. - Connect the red (positive) lead of the 787 to terminal
2+on the SM 1234 front connector. - Connect the black (COM) lead of the 787 to terminal
2-on the SM 1234 front connector. - Press the
OUTPUTbutton so the calibrator actually energizes the loop. The display should now show0.000 mA(or the programmed value) and the symbol stops flashing. - Press the MIN/MAX range buttons to step the output through 4 mA, 12 mA, and 20 mA. The SM 1234
%IW100value should track linearly: 4 mA ≈ 6553 raw counts, 12 mA ≈ 19660, 20 mA ≈ 27648.
5. Solution B — Install a 500 Ω Precision Shunt Resistor
When the loop must be validated with a DMM in volts mode (recommended for long-term drift checks), place a 500 Ω, 0.1 % precision resistor across terminals 2+ and 2- of the SM 1234:
| Injected current | Expected voltage across 500 Ω | Expected raw count at %IW100 |
|---|---|---|
| 0 mA | 0.000 V | 0 |
| 4 mA | 2.000 V | 6553 |
| 12 mA | 6.000 V | 19660 |
| 20 mA | 10.000 V | 27648 |
Use a 500 Ω resistor rated for at least 1 W to avoid self-heating drift (the SM 1234 internal burden is 250 Ω; the 500 Ω external value is used only when bench-testing the loop outside the module). For a permanent installation, rely on the SM 1234's internal 250 Ω burden and inject directly into the AI channel.
6. TIA Portal Configuration and Scaling
The SM 1234 channel must be configured for the correct measurement type before any scaling block can produce meaningful output:
- In the project tree, expand the CPU and open Device Configuration > Signal Modules > SM 1234 > Channel 2.
- Set Measurement type = Current (0–20 mA) or Current (4–20 mA) depending on the loop.
- Set Diagnostics = None during commissioning (re-enable later).
- Compile and download the hardware configuration. The CPU will report the configuration as accepted only if the module's DIP switches (if any) match.
The standard Siemens scaling pair converts the raw 0–27648 integer into a floating-point engineering range:
// NORM_X: normalize raw integer to 0.0–1.0
NORM_X_REAL := NORM_X(
VALUE := %IW100, // raw integer from channel 2
MIN := 0,
MAX := 27648
);
// SCALE_X: scale normalized value to engineering range
// Example: 0–20 mA mapped to 0.0–100.0 % tank level
SCALE_X_REAL := SCALE_X(
MIN := 0.0, // engineering minimum
VALUE := NORM_X_REAL,
MAX := 100.0 // engineering maximum
);
NORM_X MIN = 5530 and MAX = 27648. Do not scale 4–20 mA with MIN = 0; a 0 raw count indicates an open loop and must be diagnosed, not scaled into 0 %.7. Wiring Reference
The SM 1234 front connector uses a removable screw-terminal block with two rows per channel. The wiring for a current input on channel 2 is:
| Terminal | Signal | Function |
|---|---|---|
| 2+ (upper row) | AI2+ | Positive current input, channel 2 |
| 2- (upper row) | AI2- | Return current path, channel 2 |
| VQ+ / VQ- | 24 V sensor supply | Used only for voltage and RTD ranges |
| GND | Module ground | Tied to backplane ground |
For current loops, the 24 V sensor supply terminals are not used. Loop power must come from the transmitter (preferred) or from the Fluke 787 in Source mode (for bench-test).
8. Verification Procedure
- With the SM 1234 online in TIA Portal, open Online & Diagnostics > Watch Table for the channel.
- Force the Fluke 787 to output 4.000 mA. Confirm
%IW100reads 6553 ± 5 counts (about 0.02 % accuracy for a 13-bit converter). - Step to 12.000 mA. Confirm
%IW100reads 19660 ± 5 counts. - Step to 20.000 mA. Confirm
%IW100reads 27648 ± 5 counts. - Open the
NORM_Xinstance DB and confirm the normalized output equals the raw count divided by 27648 (within floating-point precision). - Open the
SCALE_Xinstance DB and confirm the engineering output tracks 25 %, 50 %, and 100 % for the three test points. - Disable the calibrator output. The raw count should fall to 0 (0–20 mA) or 5530 (4–20 mA). If it falls to
32767(0x7FFF) or to a negative value, the input is over-range; check the polarity and the burden resistor.
9. SM 1234 Technical Specifications
| Parameter | Value |
|---|---|
| Order number (MLFB) | 6ES7234-4HE32-0XB0 |
| Number of analog inputs | 4 |
| Number of analog outputs | 2 |
| Input resolution | 13 bits + sign (unipolar: 12 bits effective in 0–20 mA) |
| Output resolution | 14 bits |
| Voltage ranges | ±10 V, 0–10 V, ±5 V, 0–5 V, ±2.5 V |
| Current ranges | 0–20 mA, 4–20 mA |
| Input impedance (current) | 250 Ω internal burden |
| Maximum continuous input current | 40 mA |
| Maximum continuous input voltage | ±35 V sustained, ±75 V for 1 s transient |
| Conversion time per channel | ~625 µs at 50 Hz rejection |
| Backplane current consumption | 80 mA from 5 VDC backplane |
| Power dissipation | 2.0 W typical |
| Isolation (channel to channel) | None (common ground return) |
| Isolation (channel to backplane) | 500 VAC for 1 minute |
| Operating temperature | -20 °C to +60 °C horizontal mount |
| Wire size | 0.33 mm² to 1.3 mm² (22 AWG to 16 AWG) |
Refer to the SIMATIC S7-1200 Programmable Controller System Manual, chapter Technical Specifications > Analog Signal Modules (SMs) > SM 1234 Analog Input/Output Module Specifications, for the authoritative specification set and to confirm any firmware-dependent changes.
10. Common Pitfalls and Field Tips
-
Wrong mA mode on the calibrator. Simulate mode requires an external 24 V loop supply. If none is provided, the calibrator will not source current and will display
--.----. -
Polarity reversed. Reversing
2+and2-on a 0–20 mA channel produces a negative raw count on most firmware versions. On 4–20 mA, it produces a sustained over-range value. - Upper vs lower terminal row. The SM 1234 silk-screen places the AI terminals on the upper row and the internal sensor supply on the lower row. Field wiring that lands on the lower row appears connected but reads zero because the conductors are not bonded to the AI channel.
- Configuring voltage while injecting current. Configuring the channel for ±10 V and then injecting 4–20 mA places the burden resistor in a high-impedance state, which can read zero or produce an unstable value. Always match the configuration to the physical signal.
- Channel-to-channel interaction. Voltages outside the operational range on one channel can influence adjacent channels through the common ground return. If channel 2 reads a small offset while channel 1 is driven hard, terminate channel 1 or reduce its drive.
- Watchdog / OB82. If the SM 1234 loses backplane communication, the analog input freezes at the last value rather than going to zero. A frozen non-zero reading is a diagnostic event, not a sensor fault.
- Ground loops. When the field transmitter is grounded at the sensor end and the SM 1234 is grounded at the cabinet end, an offset of a few millivolts appears across the AI input. Use a single-point ground or a signal isolator.
- Shielded cable not bonded at one end. Induced noise from VFD output cables can inject tens of millivolts into the AI. Bond the shield at the cabinet end only and route at least 200 mm away from any 480 VAC cable.
11. Diagnostic Matrix
| %IW100 reading | Calibrator display | Likely cause | Corrective action |
|---|---|---|---|
| 0 | --.---- | 787 in Simulate mode, no loop supply | Switch 787 to Source mode |
| 0 | 4.000 mA | Wires on lower terminal row | Re-terminate on upper row |
| 0 | 4.000 mA | Channel configured for voltage | Set measurement type to Current |
| 27648 | 20.000 mA | Polarity reversed | Swap 2+ and 2- leads |
| 32767 | 20.000 mA | Over-range (input current > 20 mA) | Reduce injected current; check burden |
| Frozen non-zero | varies | SM 1234 backplane fault | Check SF LED; clear diagnostic buffer |
| Slow drift | stable | Self-heating of burden resistor | Wait 5 min for thermal equilibrium |
12. FAQ
Why does my Fluke 787 show --.---- when I press the MIN/MAX buttons?
The 787 cannot maintain compliance because it is in Simulate mode without an external 24 V loop supply. Switch the calibrator to Source mode (press the mode button until the battery-style icon appears), then press OUTPUT to energize the loop. The SM 1234 does not provide loop power on its 0–20 mA channels.
Do I need a 500 ohm resistor on the SM 1234 input?
No. The SM 1234 has an internal 250 Ω burden resistor for current inputs. A 500 Ω precision shunt is only needed when you are bench-testing the loop without the module connected and want to verify the loop current with a DMM in volts mode (500 Ω × 4 mA = 2.000 V, etc.).
Why is %IW100 stuck at 0 even though the calibrator shows 20 mA?
The most common cause is the wires landed on the lower terminal row rather than the upper row. Verify the silk-screen on the SM 1234 module and confirm that the positive lead is on terminal 2+ and the negative lead is on terminal 2-. The second most common cause is the channel configured for voltage rather than current in the device configuration.
How do I scale a 4–20 mA signal in TIA Portal using NORM_X and SCALE_X?
Set NORM_X MIN = 5530 and MAX = 27648 to map the live range to 0.0–1.0. Then set SCALE_X MIN and MAX to your engineering range. Do not use NORM_X MIN = 0 for a 4–20 mA signal, because a raw count of 0 indicates an open loop and must trigger a diagnostic, not be scaled to the engineering minimum.
Is the SM 1234 channel-to-channel isolated?
No. All four AI channels share a common ground return on the SM 1234. Channel-to-backplane isolation is 500 VAC for one minute, but channel-to-channel isolation is not provided. For applications requiring channel isolation, use the SM 1231 isolation modules or install external signal isolators.