S7-400 I/O Module: LEDs Active but Variables Show Zero in VAT

David Krause17 min read
PLC HardwareSiemensTroubleshooting
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

S7-400 Added I/O Cards: LEDs Light but No Variable Update in VAT

1. Problem Description

A field engineer adds two digital I/O modules to a Siemens SIMATIC S7-400 rack (UR2) in slots 6 and 7 after the existing populated slots. After downloading the new hardware configuration from STEP 7 (Classic V5.x or TIA Portal), the following symptoms are observed:

  • Input channel LEDs on the new SM 421 digital input module illuminate correctly when 24 VDC is applied to the field device through the 6ES7921-4AB00-0AA0 front connector.
  • The corresponding output LEDs on the SM 422 digital output module do not light, and the field-side terminals show 0 V instead of the expected 24 VDC, even when the output bit is forced ON in a Variable Table (VAT).
  • Monitoring the new input addresses (e.g., IB 104, IB 105, IB 106, IB 107) in a VAT displays B#16#00 for all bytes regardless of physical input state.
  • Monitoring the Peripheral Input Bytes (e.g., PIB 104 through PIB 107) also returns B#16#00 when checked in online monitor mode during machine operation.
  • The pre-existing I/O card in a lower-numbered slot continues to function normally; the new cards alone are non-responsive in software.
Critical observation: The physical I/O bus reports no signal at the new module addresses. This is not a channel-disable issue (Siemens S7-400 digital modules have all channels enabled by default and do not require a software activation handshake). The fault lies in the relationship between the new modules, the CPU's process image, and the Organization Block (OB) scheduled to refresh that image.

2. Why the LED Works but the VAT Shows Zero

The diagnostic approach in STEP 7 distinguishes between two fundamentally different access paths to the same physical I/O point. The relationship between them is the core of this fault.

2.1 Two Access Paths to the Same I/O

Access Type Mnemonic Memory Location Update Source Latency
Process Image Input IB x / IW x / ID x Internal CPU bit memory area (I) Refreshed at start of OB1 (or assigned PIP-OB) Up to one OB cycle
Peripheral Input PIB x / PIW x / PID x Direct read of the module's I/O bus register Direct, immediate read on every access Bus scan time only
Process Image Output QB x / QW x / QD x Internal CPU bit memory area (Q) Written to module at end of OB1 (or assigned PIP-OB) Up to one OB cycle
Peripheral Output PQB x / PQW x / PQD x Direct write to the module's I/O bus register Direct, immediate write on every access Bus scan time only

For a VAT to display a real-world 24 VDC input state when monitoring IB 104, the CPU must transfer the module's input register into the internal I area at the start of an OB. The peripheral access path (PIB 104) is what confirms whether the module is actually seeing the signal on the backplane.

2.2 Interpreting PIB 104 = B#16#00

When the field engineer reports that PIB 104 through PIB 107 all return B#16#00 while the input LED is on, the I/O bus itself is not delivering the value. This rules out a process-image-update problem (OB1 issue) and points to a backplane or hardware configuration fault. A working module must report its physical state through PIB regardless of OB1 execution.

Diagnostic rule: If PIB x shows the correct value but IB x shows zero, the problem is software / OB scheduling. If PIB x is zero while the LED is on, the problem is hardware / backplane / configuration / addressing.

3. Process Image Partition (PIP) and OB Assignment

The most common software root cause on the S7-400 family is a mismatch between the module's assigned Process Image Partition and the OB that refreshes that partition.

STEP 7 (both Classic and TIA Portal) allows the engineer to assign any digital module to a specific PIP number. The CPU maintains a default PIP 0 that is automatically refreshed by OB1. Modules assigned to PIP 1, 2, 3, ... 15 are only refreshed by the OB whose OBxx priority is configured to update that specific PIP.

3.1 PIP-OB Refresh Matrix

PIP Number Default Refresh OB Typical Application Update Timing
PIP 0 (Automatic) OB1 Standard cyclic I/O Start and end of OB1
PIP 1 OB10 (time-of-day) Time-critical scheduled I/O OB10 start/end
PIP 2 OB20 (delay) Delay-triggered I/O OB20 start/end
PIP 3 OB30 (cyclic interrupt 100 ms) Fast cyclic I/O Every 100 ms
PIP 4 OB31 (cyclic interrupt 200 ms) Medium cyclic I/O Every 200 ms
PIP 5 OB32 (cyclic interrupt 500 ms) Medium cyclic I/O Every 500 ms
PIP 6 OB33 (cyclic interrupt 1 s) Slow cyclic I/O Every 1 s
PIP 7 OB34 (cyclic interrupt 2 s) Slow cyclic I/O Every 2 s
PIP 8 OB35 (cyclic interrupt 500 ms default) Standard fast cyclic I/O Per OB35 period
PIP 9-15 OB40+ (hardware interrupts) or custom Event-driven I/O Per interrupt event

If the new SM 421 and SM 422 modules were placed in a non-zero PIP during a previous engineering session, or if STEP 7 automatically assigned them to a PIP based on a template, the user program must contain the corresponding OB for the I/O to appear in the process image. If that OB is not called, the VAT will read IB x as the last-known value or zero.

4. Root Cause Tree for the Reported Fault

Walking the diagnostic tree against the observed symptoms:

4.1 Symptom 1: Input LED ON, PIB 104 = 0

The I/O bus is not reading the module. Possible causes in priority order:

  1. Backplane pin damage on the slot - inspect the UR2 rack backplane connector at slot 6 and slot 7. Bent or oxidized pins on either the rack or the module will prevent the I/O bus handshake. Swap the module to a known-good slot to confirm.
  2. Module inserted while CPU is in RUN - S7-400 hot-swap is not supported on standard I/O modules. Hot insertion can leave the module in an undefined state. Power down the rack, re-seat the module firmly, and power up.
  3. Hardware configuration not fully downloaded - The HW Config download in STEP 7 must include both the new modules AND the system data. Verify the download via PLC > Download User Program to Memory Card or by checking Accessible Nodes after download.
  4. Address conflict - If the new modules were placed at default addresses that overlap with an existing module or with reserved PROFIBUS/PROFINET peripheral area, the CPU may not communicate with the module. Change the module start address in HW Config to an unused area (e.g., 256 and above) and re-download.
  5. Module hardware fault - the module itself has failed. Swap with a known-good module to isolate.

4.2 Symptom 2: Output LED OFF, No Field-Side Voltage

The same I/O bus fault that prevents the input module from being read will also prevent the output module from receiving a write. Diagnosis and resolution are identical to Symptom 1.

4.3 Symptom 3: Original Card in Lower Slot Works Correctly

This confirms the CPU, backplane, and STEP 7 project are fundamentally sound. The fault is specific to slots 6 and 7 - pointing to physical slot issues or address assignment for the new modules only.

5. Step-by-Step Resolution Procedure

5.1 Prerequisites

  • STEP 7 V5.5 / V5.6 (Classic) or TIA Portal V16-V20 with the S7-400 HSP installed
  • Online connection to the target CPU (MPI, PROFIBUS, or Industrial Ethernet)
  • STEP 7 PLCsim license (recommended for offline verification)
  • One spare digital I/O module of the same type for swap testing
  • The S7-400 module data manual: S7-400 Module Data Reference (PDF)

5.2 Procedure

  1. Open the project in STEP 7 and navigate to HW Config. Confirm both new modules are present in slots 6 and 7 with the correct order numbers. Reference the S7-400 Hardware and Installation Manual (PDF) for the valid slot assignments of the UR2 rack. Each UR2 segment supports up to 9 slots; in a fully populated UR2, slots 1-9 are segment 1 and slots 10-18 are segment 2.
  2. Double-click each new module and verify the Addresses tab. Confirm the I and Q start addresses do not conflict with any existing module, PROFIBUS DP slave, or PROFINET IO device. If any doubt exists, reassign the start address to a high unused range (e.g., byte 256 or 512) and click OK.
  3. Verify the Process Image tab on the module properties. In Classic STEP 7: right-click module > Object Properties > Addresses tab > Process Image section. Confirm the PIP assignment is "OB1-PA-Image (PIP 0)" or "Automatic update of process image". If it shows a non-zero PIP number, change it to 0 unless your program specifically requires a different PIP.
  4. Check CPU properties for Process Image size. Open the CPU object > Cycle/Clock Memory tab. The Size of the Process Image field for inputs and outputs determines which address ranges are copied into the I/Q area. If the process image size is set to 4 bytes and the new module is at IB 104, the CPU will never copy bytes 100+ into the process image. Set the size to at least 256 bytes (the S7-400 default) unless memory constraints require otherwise.
  5. Re-download the hardware configuration. In HW Config, click the Download to Target System button. Confirm the system data blocks (SDB) are written. The CPU will perform an INIT-class restart after a hardware configuration change in most cases.
  6. Power-cycle the S7-400 rack. After HW Config download, perform a complete power-off/power-on cycle on the UR2. This ensures all modules re-enumerate on the I/O bus. Do not rely on a warm restart alone for hardware changes.
  7. Test with peripheral access first. Open a VAT in Monitor mode and add both PIB <new start addr> and IB <new start addr>. Apply 24 VDC to a known input channel. PIB must update immediately. If PIB shows 0, the problem is at the bus level - proceed to step 8.
  8. Inspect the backplane. Power down. Remove the suspect modules. Visually inspect the rack backplane at slots 6 and 7 with a flashlight and magnifier. Look for bent, recessed, oxidized, or contaminated pins. Clean with isopropyl alcohol and a non-abrasive swab. Re-seat the modules firmly - ensure both top and bottom retaining screws engage with the rack frame.
  9. Swap slot positions. Move one of the suspect modules to a slot known to be working (e.g., the slot of the original card, after removing the original). If the moved module now works in the known-good slot, the slot hardware is faulty. If the moved module still does not work, the module itself is faulty.
  10. Use PLCsim for code verification. Load the STEP 7 program into a PLCsim instance. In simulation, the PIB values can be forced via the SIM table. If the simulated VAT shows the same fault pattern as the real CPU, the issue is in the STEP 7 project (typically a pointer-based copy that overwrites the I area, or a PIP mismatch). If the simulated VAT works correctly, the issue is hardware on the physical rack.
  11. Search for indirect I/O access in the user program. Open the STEP 7 program editor and search for any block that performs a copy or move operation targeting the new module's address range. Common offenders include BLKMOV, FILL, or pointer-based L PIB / T IB sequences. If the user program is writing to IB 104 from a buffer or from a different OB, it will overwrite the process image each cycle. Use Cross References on each new input address to identify all read and write access points.
  12. Re-test in VAT. After all corrections, open the VAT, add IB <new addr> in BIN display, force the corresponding physical input, and confirm the bits toggle. Repeat for the output module by forcing QB <new addr> and measuring 24 VDC at the field terminals with a multimeter.

6. UR2 Rack Slot Map and I/O Bus Layout

The S7-400 UR2 rack contains two I/O bus segments separated by an interface gap at the slot containing an IM (Interface Module) receiver. The I/O bus and communication bus are divided into 2 bus segments, each with 9 slots. Per the S7-400 Hardware and Installation Manual (PDF), the standard UR2 layout is:

Slot Standard Module Bus Segment
1 Power Supply (PS 405 / PS 407) Power only
2 CPU Communication bus + I/O bus segment 1
3 IM (if used for expansion) I/O bus segment 1
4-11 I/O modules (SM 421 / SM 422 / SM 431 / SM 432) I/O bus segment 1 (8 slots)
12-18 I/O modules in expansion rack I/O bus segment 2 (7 slots in expansion)

For a single non-expanded UR2, slots 4 through 11 are valid for I/O modules. Slots 6 and 7 are well within the supported range and should function identically to slot 4 or 5 electrically. The slot number itself is not the issue - the diagnostic must focus on the module's backplane seating and the STEP 7 project configuration.

7. Front Connector Wiring Reference: 6ES7921-4AB00-0AA0

The 6ES7921-4AB00-0AA0 is a 40-pin front connector (screw-type) used with the SIMATIC S7-400 digital I/O modules. The pinout follows the standard 6ES7921 family assignment. Always verify the exact pinout against the wiring diagram in the S7-400 Module Data manual (PDF) for the specific module in use.

A common wiring error on breakout modules is mixing the M (24 VDC return / 0 V) and 24 V (sensor supply) terminals. The breakout is typically labeled:

  • 1L+ / 2L+ - 24 VDC sensor/load supply per channel group
  • 1M / 2M - 0 V return per channel group
  • In 0.0 ... In x.7 - Input channel terminals
  • Out 0.0 ... Out x.7 - Output channel terminals
Field tip: If the input LED illuminates but a VAT bit is zero, the 24 V is reaching the module's input optocoupler (which is what the LED indicates). The fault cannot be a wiring polarity problem at that point. The fault is downstream of the optocoupler - at the I/O bus, the CPU, or the STEP 7 project.

8. Verification Checklist

Confirm each item below after applying the corrective steps:

# Check Expected Result Pass Criterion
1 Power supply healthy PS 405/407 DC OK LED on, 5 VDC and 24 VDC at module Green DC OK
2 Module seated Both top and bottom screws engaged with rack frame No gap between module face and rack
3 Backplane pins No bent, recessed, or oxidized pins at slot 6 / 7 All pins straight and clean
4 HW Config downloaded SDB container has new module entries PLC > Accessible Nodes shows new module addresses
5 Address range free No overlap with other modules, DP slaves, or IO devices Cross-reference of I/Q ranges shows no overlap
6 PIP assignment correct Module assigned to PIP 0 (or matching OB present) Module properties > Process Image tab
7 CPU process image size PIB / PQB size set to at least 256 bytes CPU properties > Cycle/Clock Memory
8 Peripheral access works PIB <addr> updates in VAT when input toggled Bit state matches physical input
9 Process image access works IB <addr> updates in VAT when input toggled Bit state matches physical input within one OB1 cycle
10 Output drives load 24 VDC measured at output terminal when QB <addr> forced 24 V ±10% at terminal
11 No code overwrite No BLKMOV or pointer code writes to the new I range Cross-references clean

9. Troubleshooting Matrix

LED State (Input) PIB Value IB Value Likely Root Cause First Action
ON with 24V applied Correct Zero or stale PIP not refreshed / OB not called Change module PIP to 0 or add required OB
ON with 24V applied Zero Zero I/O bus fault / module not seen Re-seat module, inspect backplane, swap slot
ON with 24V applied Zero Zero Address conflict Reassign module start address in HW Config
ON with 24V applied Zero Zero CPU process image size too small Increase PI size in CPU properties
ON with 24V applied Correct Correct then reverts User program overwrites I area via pointer Search program for BLKMOV to I area
OFF with 24V applied Zero Zero Wiring polarity or 24V not at terminal Check front connector wiring and M/24V
Flickers / SF LED on Zero Zero Module diagnostic fault Read module diagnostic buffer online
ON (output module) N/A QB forced correctly PQB not reaching module - I/O bus fault Re-seat module, inspect backplane

10. PLCsim Diagnostic Method

S7-PLCsim (bundled with STEP 7 Classic, separate in TIA Portal) is the most efficient way to separate software faults from hardware faults. The procedure is:

  1. Open the STEP 7 project on an engineering station with PLCsim installed.
  2. From the SIMATIC Manager, select Options > Simulate Modules or Start S7-PLCsim.
  3. Download the entire STEP 7 project (blocks + system data) to the simulated PLC.
  4. Open a VAT, add the new module's IB and PIB addresses, and place the simulation in RUN-P.
  5. In the SIM table (PI/QT view), force the simulated input bits and observe the VAT update.
  6. If the simulated VAT shows correct updates, the STEP 7 project and program logic are sound; the fault is hardware on the physical rack. If the simulated VAT shows the same fault, the fault is in the project configuration or program code.
Time-saving practice: Always verify a hardware configuration change in PLCsim before downloading to the live CPU. This catches 80% of PIP, address, and process-image-size issues in the engineering office rather than at the machine.

11. Common S7-400 I/O Module Order Numbers

Reference list of typical digital I/O modules for the S7-400 family used in the described fault scenario. Always cross-check the exact order number against the S7-400 Module Data manual (PDF).

Function Order Number Channels Voltage
DI 32 x DC 24V 6ES7421-1BL01-0AA0 32 24 VDC
DI 32 x AC 120V 6ES7421-1EL00-0AA0 32 120 VAC
DI 16 x DC 24V 6ES7421-7BH01-0AB0 16 24 VDC, diagnostic
DO 32 x DC 24V / 0.5A 6ES7422-1BL00-0AA0 32 24 VDC
DO 16 x DC 24V / 2A 6ES7422-1BH11-0AA0 16 24 VDC
DO 16 x AC 230V / 2A 6ES7422-1FH00-0AA0 16 230 VAC relay
Front connector 40-pin screw 6ES7921-4AB00-0AA0 40-pin 24 VDC
Front connector 40-pin spring 6ES7921-4AB00-0AB0 40-pin 24 VDC

12. Frequently Asked Questions

Why does the input LED turn on but the VAT shows zero for the corresponding input byte?

The LED is driven by the module's input optocoupler circuit the moment 24 VDC is applied at the terminal. The VAT reads from the CPU's internal I memory area, which is only updated by the assigned OB at the start of the OB cycle. If the I/O bus cannot read the module (backplane, addressing, or configuration issue) or the PIP is assigned to an OB that is not running, the internal I memory stays at zero. Test with PIB <addr> first; if PIB is also zero, the fault is at the bus level, not the OB level.

How do I assign a new S7-400 module to Process Image Partition 0 in STEP 7?

Open HW Config, double-click the module, select the Addresses tab, and in the Process Image section choose OB1-PA-Image (PIP 0) or Automatic update of process image. Click OK, save the project, and re-download the hardware configuration to the CPU. The module's I bytes will then be refreshed by OB1 in the standard cyclic manner.

What is the maximum S7-400 I/O capacity per rack?

A single S7-400 expansion rack (UR2 with IM) supports up to 16 modules of 32 channels each, providing 512 I/O channels per rack segment. The I/O bus is divided into 2 segments of 9 slots each, separated by the IM receiver slot. The host CPU rack provides slots 4-11 for I/O when no expansion IM is used.

Can I hot-swap an S7-400 digital I/O module?

No. Standard SM 421 and SM 422 modules do not support hot-swap on the S7-400. Power down the rack before inserting or removing a module. Hot insertion can leave the module in an undefined state, cause backplane pin damage, or trigger a CPU fault. The only S7-400 modules that support hot-swap are the redundant PS and CPU modules in H-systems.

My user program reads the inputs but the bits keep resetting to zero. What is wrong?

Your program likely contains a BLKMOV, FILL, or pointer-based instruction that overwrites the I memory area each cycle. Open Cross References on the affected I byte and locate all write access points. Common offenders are cyclic copies from a data block or from a different OB that does not respect the PIP structure. Replace direct writes to the I area with reads to PIB peripheral inputs to bypass the process image entirely.

Back to blog