1. Problem Overview
Engineers commissioning a Siemens SIMATIC S7-1200 station consisting of a CPU 1214C DC/DC/DC (article number 6ES7214-1BG31-0XB0) and four EM/SM 1223 digital input/output modules (article number 6ES7223-1PL30-0XB0) frequently encounter a specific combination of symptoms during initial go-online:
- The CPU is reported as diagnosed (online diagnostics return no CPU-level fault).
- The four SM 1223 modules remain undetected in the project view after going online.
- The DIAG (or MAINT) LED on each signal module flashes when station power is applied.
- The TIA Portal compiler emits the message: "Inputs or outputs are used that do not exist in the configured hardware."
This is not a hardware defect. The root cause lies in the TIA Portal project: the configured device stack does not match the physically installed module stack, or the program references I/O addresses that have not been allocated to the configured modules. Resolving the issue requires aligning the project tree with the physical installation, recompiling, and re-downloading the hardware configuration and user program to the CPU.
2. Affected Hardware Identification
Before performing any configuration changes, confirm the exact part numbers of the hardware installed. The article numbers cited in the field report correspond to two well-known S7-1200 family devices:
| Position | Article Number (MLFB) | Description | Key Specs |
|---|---|---|---|
| CPU | 6ES7214-1BG31-0XB0 | CPU 1214C DC/DC/DC, firmware V3.0 | 14 DI 24 V DC, 10 DO 24 V DC, 2 AI 0–10 V; 75 KB work memory, 4 MB load memory; max 8 SM, 1 SB, 3 CM/CP |
| SM (×4) | 6ES7223-1PL30-0XB0 | EM 1223 / SM 1223 digital I/O combo, 16 DI / 16 DO 24 V DC, sink/source | 16 inputs 24 V DC, 16 outputs 24 V DC 0.5 A; optically isolated; consumes 20 mm DIN-rail slot; 5 V backplane current draw 160 mA |
Reference the official Siemens documentation for these devices:
- SIMATIC S7-1200 CPU 1214C product page
- S7-1200 Programmable Controller System Manual, Edition 09/2021
- S7-1200 Programmable Controller System Manual, Edition 03/2024 (TIA Portal V18)
3. Root Cause Analysis
Two distinct failures commonly co-occur in this scenario. Both must be eliminated to bring the station to a healthy state.
3.1 Hardware configuration mismatch
The TIA Portal project contains only the CPU in its device tree. The four SM 1223 modules were never dragged from the hardware catalog into the project, so the offline project does not declare them. When the compiler walks the user program and encounters references to input bytes IB4, IB6, QB4, QB6, etc., it cannot map them to any physical module and emits the diagnostic message "Inputs or outputs are used that do not exist in the configured hardware."
3.2 DIAG/MAINT LED flash pattern
The flashing LED on each signal module is a diagnostic indicator. According to the S7-1200 System Manual, a flashing DIAG LED on a signal module signals one of the following:
- Module is installed but has not yet been configured (no configuration download since power-up).
- Module has a diagnostic interrupt pending (e.g., missing 24 V sensor/load supply, parameter assignment error, or channel fault).
- Module is in firmware update mode (rare; only after explicit operator action).
In a freshly built station where no configuration has been downloaded, the most common explanation is the first item: the CPU has booted, scanned the backplane, found the four SM 1223 modules physically present, but has no configuration to send to them, so each module cycles through its waiting state and flashes its DIAG LED.
3.3 Why the CPU alone is "diagnosed"
Online diagnostics in TIA Portal report the status of modules that are in the configured project. If the project contains only the CPU, then only the CPU's status is reported. The four SM 1223 modules are not in the project tree, so TIA Portal does not display their state at all. This gives the misleading impression that the modules are absent, when in fact they are physically present and functional on the backplane but invisible to the engineering tool.
4. S7-1200 Hardware Limits and Slot Rules
Before adding modules to the project, verify the station does not exceed the CPU's published limits. For the CPU 1214C DC/DC/DC (6ES7214-1BG31-0XB0, FW V3.0):
| Resource | Maximum | Station Under Repair | Status |
|---|---|---|---|
| Signal Modules (SM) in the right-hand slot string | 8 | 4 | OK |
| Signal Boards (SB) plugged into the CPU | 1 | 0 (assumed) | OK |
| Communication Modules (CM) / Communication Processors (CP) | 3 | 0 (assumed) | OK |
| TS Adapter / IE Basic on left | 1 | 0 | OK |
| CPU backplane current budget for 5 V | 1600 mA (typical) | 4 × 160 mA = 640 mA | OK |
The 5 V backplane current figures are documented in the S7-1200 System Manual. Each EM/SM 1223 6ES7223-1PL30-0XB0 draws approximately 160 mA from the 5 V backplane. Four modules therefore consume 640 mA, well within the CPU 1214C budget.
5. Diagnostic Indicator Reference
Engineers frequently misinterpret the LED matrix on S7-1200 modules. The relevant indicator states from the System Manual are summarized below.
| LED | State | Meaning on a Signal Module |
|---|---|---|
| DIAG / MAINT | Off | No error; module is exchanging data with the CPU |
| DIAG / MAINT | Flashing (2 Hz) | Module not configured, or diagnostic interrupt pending |
| DIAG / MAINT | Solid (steady on) | Module has a non-recoverable error or forced error |
| PWR | Off | Missing or reverse-polarity 24 V supply on L+/M terminals of the module |
| PWR | Solid green | Sensor/load supply present and within tolerance |
| DI/DO channel | Solid green | Channel active (1) |
When a module's DIAG LED flashes at 2 Hz immediately after power-up, the first verification step is to inspect the 24 V supply terminals on the module itself. The 6ES7223-1PL30-0XB0 requires a separate L+ / M terminal pair for both the sensor supply (inputs) and the load supply (outputs). If the load supply is missing, the module reports a channel-level diagnostic interrupt and the DIAG LED flashes even if the backplane communication is healthy.
6. I/O Address Assignment for S7-1200
Understanding the address layout is essential to resolving the compile error.
6.1 Default address layout for CPU 1214C
The integrated I/O of the CPU 1214C occupies the lowest addresses by default:
- Digital inputs integrated:
I0.0–I1.5(14 bytes 0.0–0.7 plus 1.0–1.5) - Digital outputs integrated:
Q0.0–Q1.1 - Analog inputs integrated:
IW64,IW66
Plug-in Signal Board (SB) channels are inserted directly above the integrated I/O. Each additional Signal Module occupies the next free address block, in the order it is plugged into the slot string from left to right (i.e., slot 1 is the first SM, slot 2 is the second, and so on).
6.2 Resulting address map for the failing station
With four SM 1223 modules (16 DI / 16 DO each), the default layout is:
| Module | Inputs (start) | Inputs (end) | Outputs (start) | Outputs (end) |
|---|---|---|---|---|
| CPU 1214C integrated | I0.0 | I1.5 | Q0.0 | Q1.1 |
| SM slot 1 (6ES7223-1PL30-0XB0) | I2.0 | I3.7 | Q2.0 | Q3.7 |
| SM slot 2 (6ES7223-1PL30-0XB0) | I4.0 | I5.7 | Q4.0 | Q5.7 |
| SM slot 3 (6ES7223-1PL30-0XB0) | I6.0 | I7.7 | Q6.0 | Q7.7 |
| SM slot 4 (6ES7223-1PL30-0XB0) | I8.0 | I9.7 | Q8.0 | Q9.7 |
7. Resolving the Configuration: Step-by-Step Procedure
Follow this exact sequence in TIA Portal to bring the station online cleanly.
7.1 Prerequisites
- TIA Portal V13 SP1 or later. The CPU firmware V3.0 in
6ES7214-1BG31-0XB0is fully supported by TIA Portal V13 SP1, V14, V15, V15.1, V16, V17, and V18. For newer V18 and V19 projects, the CPU can still be operated at FW V3.0 with a "use older firmware" acknowledgment. - The S7-1200 HSP (Hardware Support Package) corresponding to your TIA Portal version must be installed. Without the HSP, the catalog may not list the exact article number
6ES7223-1PL30-0XB0. Install via Options > Support Packages > Install. - Ethernet or PROFIBUS connection between the PG/PC and the CPU (PROFINET port X1 on the CPU 1214C).
- CPU in STOP or RUN, power applied, all four SM 1223 modules mechanically latched and supplied with 24 V on
L+/M.
7.2 Procedure
- Open the project containing the CPU 1214C in the Project view of TIA Portal.
- Switch to Device view by double-clicking Device & Networks > PLC_1 > Device view.
- Verify the CPU in the device view matches exactly the article number on the front of the physical CPU. Mismatches here are a frequent cause of failure to go online with the SM 1223 modules.
- Open the Hardware catalog pane on the right. If collapsed, enable it with View > Catalog.
- Drill down to DI/DO > SM 1223 > 6ES7223-1PL30-0XB0. The exact catalog entry differs slightly between TIA Portal versions; in older versions, navigate to PLC > SIMATIC S7-1200 > Digital modules > SM 1223.
- Drag the module from the catalog and drop it into the slot immediately to the right of the CPU. The slot 1 location is highlighted with a green border when it is a valid drop target.
- Repeat for the remaining three SM 1223 modules. They will automatically populate slot 2, slot 3, and slot 4.
- Click each module and confirm in the Properties > General pane that the article number reads
6ES7223-1PL30-0XB0and the firmware version is compatible. The system will warn if the selected firmware is incompatible with the CPU firmware. - Open Properties > I/O addresses for each module and confirm the start addresses. By default they will be assigned automatically. Record the address map so the program tags can be aligned with the real channels.
- Select the CPU and choose Compile > Hardware (rebuild all) from the toolbar, or press the keyboard shortcut for full rebuild.
- If the compile error "Inputs or outputs are used that do not exist in the configured hardware" still appears, switch to the program editor and use Go to > Used address on the offending operand. The Go To dialog reveals where the missing I/O is referenced. Either:
- edit the program to use the corrected address (e.g., change
I 4.0to the actual configured input), or - use the device view to remap the SM 1223 module start address to match what the program expects.
- Once the compile is clean, select the CPU and choose Download to device > Hardware and Software (only if different) from the online menu. The download dialog shows what is currently in the device and what is about to be downloaded.
- Confirm with Load. When prompted, choose Run after download if a controlled restart is acceptable.
- Watch the four SM 1223 modules during download. The DIAG LED on each module will briefly flash as the new configuration is applied, then settle to off once configuration is complete and the module is exchanging data.
8. Verification Procedures
After the download completes, perform these checks to confirm the station is healthy.
8.1 Online & Diagnostics check
- In TIA Portal, right-click the CPU > Go online.
- Open Online & Diagnostics for each SM 1223 module by right-clicking the module in the device view.
- Confirm the Status tab shows a green check mark and the message No faults.
- Confirm the Module information tab displays the article number, firmware version, and slot number correctly.
8.2 Watch table force test
- Open a new watch table.
- Add an input from each SM, e.g.
"SM1_Ch0" := %I2.0,"SM2_Ch0" := %I4.0,"SM3_Ch0" := %I6.0,"SM4_Ch0" := %I8.0. - Add an output from each SM, e.g.
"SM1_DQ0" := %Q2.0. - Toggle each input low/high with a wire or sensor; verify the bit in the watch table flips.
- Use the Modify command on each output bit and verify the corresponding channel LED on the module turns on and the physical output switches.
8.3 Process image consistency check
Open the device view, then Properties > I/O addresses for each module. Verify that the address range printed here matches the address range used in the program tags. Any mismatch indicates the program was written for a different layout (perhaps a previous project revision).
9. Firmware Compatibility Matrix
Firmware mismatches cause the same symptoms: the modules physically fit and power up, but the CPU cannot complete parameter assignment, the modules flash their DIAG LEDs, and the compiler or online diagnostics report problems. The matrix below summarizes compatible combinations.
| CPU Article Number | CPU Firmware | SM 1223 Article | SM 1223 FW | Compatible |
|---|---|---|---|---|
| 6ES7214-1BG31-0XB0 | V3.0 | 6ES7223-1PL30-0XB0 | V1.0 / V1.1 / V1.2 / V2.0 | Yes |
| 6ES7214-1AG40-0XB0 | V4.0–V4.4 | 6ES7223-1PL30-0XB0 | V2.0 and newer | Yes |
| 6ES7214-1HG40-0XB0 | V4.0–V4.4 | 6ES7223-1PL30-0XB0 | V2.0 and newer | Yes |
For a complete and current compatibility matrix, consult the S7-1200 System Manual, Edition 03/2024 or the S7-1200 firmware update utility on the Siemens support site. The relevant Siemens entry point is the Siemens Industry Online Support portal, search for "S7-1200 module compatibility".
10. Common Configuration Errors and Their Signatures
The following table summarizes the most frequent errors in this scenario and the visible signature of each. Use it to disambiguate similar problems.
| Symptom | Likely Cause | Resolution |
|---|---|---|
| Compile error: "Inputs or outputs are used that do not exist" | SM 1223 modules missing from device configuration; program addresses are unmapped | Add modules to device view, recompile, realign program addresses |
| DIAG LED flashes on SM after power-up | Module installed but not yet configured, or missing 24 V on L+/M | Download configuration; verify sensor/load supply |
| CPU goes to STOP with "Module removed/inserted" SF LED on | Mechanical latch not fully engaged; backplane connector not pushed in | Power down, reseat module, verify latch and connector |
| Only some SMs detected, others not | Order of modules in TIA Portal does not match physical slot order | Reorder modules in device view to match physical order |
| Configuration download fails with "module does not exist on slot" | Article number in TIA Portal does not match physical module | Verify article numbers; install correct HSP |
| All inputs read true, all outputs cannot be set | Wiring swap: 24 V jumpered to inputs, outputs floating | Re-check field wiring per wiring diagram |
11. Field-Proven Caveats
The following points come up repeatedly on S7-1200 commissioning sites.
11.1 Bus connector seating
The sliding bus connector on the bottom of each module must be fully extended into the next module before the modules are mechanically latched. A common installer error is to first latch the modules, then attempt to push the connector. The connector cannot be seated after the latch is closed, and the downstream modules will not communicate with the CPU.
11.2 Sensor and load supply
The SM 1223 6ES7223-1PL30-0XB0 has two L+ / M terminal pairs on the front connector: one feeds the input channels' sensor supply, the other feeds the output channels' load supply. If either is missing, the module generates a diagnostic interrupt and the DIAG LED flashes. Many installers wire only one of the two pairs because the integrated inputs of the CPU draw sensor supply from the CPU's terminals. The signal modules require their own dedicated supply.
11.3 Catalog article number drift
There are several visual variants of the 16 DI / 16 DO module with similar article numbers:
-
6ES7223-1PL30-0XB0– 16 DI / 16 DO 24 V DC, current production (since 2013) -
6ES7223-1BL30-0XB0– 8 DI 24 V DC / 8 DO relay -
6ES7223-1PH30-0XB0– 8 DI 24 V DC / 8 DO 24 V DC
Make sure the catalog entry matches the actual sticker. A 24 V DC transistor output module cannot be replaced with a relay output module (or vice versa) without a project reconfiguration, and the wiring of the output channels differs significantly.
11.4 When the modules are detected but show diagnostic interrupt
If after the corrective steps the DIAG LED continues to flash, the module is reporting a channel-level diagnostic. Open the CPU's Online & Diagnostics > Diagnostic buffer to view the interrupt cause. Typical causes include:
- Wire break on a digital input (if wire-break monitoring is enabled and the input is not driven).
- Overload on a 24 V DC transistor output (load current exceeding 0.5 A per channel).
- Short circuit on the sensor supply.
- Missing load supply on
L+/Mof the output section.
12. Preventive Engineering Practices
Adopt these practices in the project template so the same problem does not reappear on the next station.
- Lock the article numbers: Once the project is released for commissioning, freeze the catalog article number and version in the project comments. Avoid changes to module article numbers after code generation.
- Document the I/O map in a separate sheet: Maintain an address map outside TIA Portal (in a spreadsheet) and link tag names to the configured addresses. This makes any address shift obvious.
-
Use symbolic addressing: For new programs, always use PLC tag names (e.g.,
Pump1_Start) rather than absolute addresses. TIA Portal will warn or remap when the underlying address changes. - Compile-clean gate: Block the code review approval for any program that compiles with warnings about missing hardware. Set a strict CI policy: zero compile errors and zero address-validation warnings before the project can be checked in.
- Sticker and slot photo: Photograph the physical module stack on the first successful commissioning, including the order from left to right. Keep this in the project's documentation folder.
- Power budget check: For each station, document the 5 V backplane current draw and compare it against the CPU budget (1600 mA typical for CPU 1214C, 1600 mA for CPU 1215C, 1800 mA for CPU 1217C).
13. Frequently Asked Questions
Why is my CPU 1214C online and reporting OK, but the SM 1223 modules show no status at all?
The TIA Portal project contains only the CPU in the device tree. Online diagnostics only display the status of modules that exist in the configured project. Drag the four 6ES7223-1PL30-0XB0 modules from the hardware catalog into the device view at slots 1–4, recompile, and re-download the hardware configuration. The SMs will then appear in the online view.
What does a flashing DIAG LED on an S7-1200 signal module mean?
A 2 Hz flash on the DIAG/MAINT LED on an SM 1223 indicates either that the module is installed but has not yet been configured, or that a diagnostic interrupt is pending (e.g., missing 24 V on the L+/M terminals, channel fault, or wire break). Verify the load supply, then download the configuration. If the LED still flashes, open the CPU's diagnostic buffer to read the exact cause.
How many SM 1223 modules can I attach to a CPU 1214C?
The CPU 1214C supports up to 8 signal modules, 1 signal board, and 3 communication modules. Four SM 1223 modules fall well within these limits. The total 5 V backplane current draw is 4 × 160 mA = 640 mA, leaving ample budget for additional modules.
The compile error says "inputs or outputs are used that do not exist in the configured hardware." What is the quickest fix?
Add the missing SM 1223 modules to the device view in the same order they are physically installed (slots 1 to 4 from left to right), then recompile. If the program uses absolute addresses, use Go To on each affected operand and update it to the address that TIA Portal assigned to the newly added module, or remap the module start address to match the program.
Do the SM 1223 modules need their own 24 V supply, or can they share the CPU's terminals?
Each SM 1223 requires its own dedicated 24 V on its L+ and M terminals. There are two pairs: one for the input-side sensor supply and one for the output-side load supply. Both must be powered, and they are typically fed from the same 24 V DC power supply that feeds the CPU, but wired to the module's own terminals, not jumpered from the CPU.