S5 to S7 Conversion I/O Address Troubleshooting in SIMATIC Manager
When a STEP 5 program is converted to STEP 7 using the SIMATIC Manager converter (the legacy "S5 to S7" tool bundled with STEP 7 V5.x), engineers frequently report that input or output addresses shown on the original S5 wiring drawings cannot be found in the generated STL source. The most common example is a digital input block referenced as I 32.0 on the S5 schematic that appears to have disappeared from the S7 project. In almost every case the address is present; the conversion tool preserves the absolute byte/bit I/O numbering 1:1, but the block hierarchy and source file layout change enough that the engineer simply cannot locate the symbol in the converted source. This reference walks through the addressing model, the S5 PB to S7 FC mapping, and the exact search procedure used to recover a missing input address.
S5 I/O Address Format vs. S7 Address Format
Both STEP 5 and STEP 7 use the same fundamental Byte.Bit address syntax for process I/O, but the byte-numbering ranges and the peripheral word (PW) / peripheral byte (PEB/PAB) concept differ in subtle ways that cause confusion during a conversion.
| Aspect | STEP 5 (S5-115U / S5-135U / S5-155U) | STEP 7 (S7-300 / S7-400) |
|---|---|---|
| Input bit operand |
I 32.0 through I 32.7
|
I 32.0 through I 32.7 (identical syntax) |
| Input byte operand | IB 32 |
IB 32 |
| Input word operand |
IW 32 (word-granular; must be even byte) |
IW 32 (must be even byte) |
| Peripheral input byte |
PEB 32 / PY 32
|
PIB 32 / PEB 32 (alias) |
| Output bit operand | Q 48.5 |
Q 48.5 |
| Address space | 0 to 127 typically (depends on CPU) | 0 to 65535 for process image; peripheral range 0 to 65535 |
| Process image | Optional, fixed size per CPU (e.g. 128 bytes) | Configurable via hardware configuration (OB1-PA) |
Critical point: when an S5 program is converted, the converter does not renumber the I/O bytes. I 32.0 in the original S5 source remains I 32.0 in the converted S7 source. The discrepancy is structural, not numerical.
I 32.7 is the most significant bit of byte 32, not bit 7 of input word 32.
Why an S5 Address Like I 32.0 Appears "Missing" After Conversion
The reported symptom — "I 32.0 is on the drawing but I cannot find it anywhere in the STL" — has three recurring causes, ordered by frequency in field service reports:
-
Block hierarchy reorganized. S5 program blocks (PB 1 through PB 255) are converted to S7 functions (FC 0 through FC 255 by default, configurable in the converter options). The I/O operations are intact, but they now live inside an FC the engineer did not open. A drawing that referenced
I 32.0inside "PB 14" on the original machine now lives inside "FC 47" (or whichever FC number the converter assigned). -
Source view filtered by symbol table. When the converted project is opened with absolute operands hidden behind symbolic names, the literal
I 32.0does not appear in the source view. Searching the symbol table for "I32.0" returns nothing because the symbol table entries point to addresses that the converter did not generate. -
Conversion aborted on a different PB. If the converter emitted an error or warning on PB 14, only the successfully converted blocks were written to the S7 project. The engineer sees a partial project and assumes
I 32.0was lost.
S5 Program Block (PB) to S7 Function (FC) Mapping
The STEP 5 to STEP 7 converter applies a deterministic mapping for code blocks, with user-selectable offsets under Options > S5 Conversion > Block Numbers.
| S5 Block | Default S7 Target | Notes |
|---|---|---|
| OB 1 (organization) | OB 1 | Cyclic main; restructuring is performed automatically |
| PB 1 to PB 255 (program) | FC 1 to FC 255 (or FC 0 to FC 254) | Per-block conversion; offset configurable |
| SB 0 to SB 255 (step) | FB + DB instance pair (sequential graph) | Graph step blocks are converted to GRAPH-compatible FBs |
| FB 1 to FB 255 (function) | FB 1 to FB 255 | Formal parameters translated to IN/OUT/STAT |
| DB 1 to DB 255 (data) | DB 1 to DB 255 | Data word and data byte structures preserved |
| FX 0 to FX 255 (extended function) | FC with multi-instance DB | FX calls become CALL FC with a temp instance |
Reported case: PB 14 from the S5 source converted to FC 47. This is the result of either an automatic offset (PB 14 + 33) or a manual block-number reassignment chosen in the converter options. The block numbering rule can be verified by reading the converter log file S5toS7.log in the project directory.
Locating I 32.0 in the Converted STL Source
Use the following procedure in SIMATIC Manager (STEP 7 V5.5 or V5.6) to recover any absolute input or output address that appears to have vanished after conversion:
- Open the converted project and select the S7 Program container.
- Right-click the Blocks folder and choose Object Properties > Operand Overview to dump the cross-reference, or open the cross-reference list with Options > Reference Data > Display.
- In the cross-reference window, filter by operand
I 32. The list shows every FC, FB, OB, and DB that references inputs in byte 32. - If the cross-reference is empty, the conversion log
S5toS7.logwill list every PB that emitted a warning or error. Open the relevant PB in the source.S5Dbackup and re-run the converter on that PB alone. - Once the holding FC is identified (e.g. FC 47), double-click it to open the STL editor and use Ctrl+F to search for the literal string
I 32.0.
Concrete STL excerpt recovered from a converted project, demonstrating that I 32.0-class operands survive the conversion unchanged:
A I 32.3;
O I 32.4;
O I 32.6;
A M 104.0;
= Q 48.5;
Every operand in this segment is bit-exact with the original S5 source. The A (AND), O (OR), and = (assign) mnemonics are identical between STL/AWL in the two environments; STEP 7 also accepts the German AWL form U, O, = interchangeably.
Common Conversion Warnings and Their Meaning
The STEP 5 to STEP 7 converter produces a structured log. The entries most relevant to I/O addressing are listed below with their typical root cause.
| Log Code | Warning/Error | Typical Cause | Remediation |
|---|---|---|---|
| W1001 | Operand I x.y outside process image |
S5 program referenced PII area beyond S7 process image size | Resize process image in HW Config to cover the full range, or change the operand to PIB/PQB direct peripheral access |
| W1014 | PB contains unsupported operation | S5 special function (e.g. SU subtract with borrow) has no direct S7 equivalent |
Manually reimplement the operation in the resulting FC; verify against the S5 backup |
| E2050 | Conversion aborted on this block | Syntax error in original S5 source (often caused by incomplete transfer) | Fix the S5 source in the original .S5D file and reconvert |
| W1022 | Symbol table entry dropped | S5 symbol name contains a character not legal in S7 STEP 7 | Re-enter the symbol with a STEP 7-compatible name (alphanumeric and underscore only, max 24 chars) |
| W1033 | Timer/Counter number conflict | S5 used timer 0 to 255 as byte; S7 timer word addressing differs | Re-number using SD/SS/SP/SE/SF or IEC S_PULSE/etc. |
I 32.0 and the S7-300 CPU's process image of inputs is configured at the default 128 bytes (byte 0 to 127), the address is covered. If the engineer has reduced the process image in HW Config to save OB1 cycle time, I 32.0 will read as 0 in OB1 even though the operand compiles. Either raise the PII limit or use L PIB 32 direct peripheral load.
Step-by-Step Verification Procedure
Once the converted project loads to the S7 CPU without errors, perform the following verification sequence before accepting the conversion as equivalent to the original S5 behavior.
- Block inventory cross-check. Open the S5 backup in STEP 5 > S5-DOS or the S5 for Windows tool and export the PB/FB/DB list. Compare it to the S7 Blocks folder; every block should have a 1:1 counterpart (PB x to FC x + offset).
-
Operand coverage check. Use Options > Reference Data > Display > Cross-references and filter by operand class
I,Q,M,PIB,PQB. Every operand referenced on the S5 drawings must appear at least once. - Process image size. Open HW Config, select the CPU, and verify the Process Image tab. The I-area start and end must cover the highest referenced input byte; the Q-area must cover the highest referenced output byte.
-
Symbol table import. Convert the S5 symbol table (
Z0.SEQorSYMBOL.S5D) via Options > Symbol Table > Import. Resolve any W1022 warnings manually. -
Online I/O force test. Connect to the CPU with PG online, open the FC that contains the suspect address (e.g. FC 47), and use Debug > Monitor/Modify to toggle the physical input. The bit must transition in the process image (
I 32.0from 0 to 1 when the field contact closes). - OB1 scan time. Compare the OB1 execution time before and after conversion; a 5x increase indicates the converter inserted interpreted STL where direct S7 code should be used. Rewrite the hot path manually in STL.
Cross-Referencing I/O in SIMATIC Manager
For routine cross-referencing of an operand such as I 32.0 across the entire converted project:
-
Go To > Location (Ctrl+Alt+Q) from any STL network containing
I 32.0jumps to every other occurrence across all loaded blocks. - Reference Data > Program Structure shows the call hierarchy from OB1 down to the FC that owns the operand.
-
Symbol table search by address (right-click > Filter > Address =
I 32.0) is the fastest way to map an S5 drawing symbol to its converted location. - PLC > Compare Blocks against the original S5 source via the offline/online diff function confirms structural equivalence.
Conversion Issue Matrix
| Symptom | Most Likely Root Cause | Diagnostic Command | Fix |
|---|---|---|---|
| Address from S5 drawing absent in STL | Address is in a converted FC the engineer did not open | Cross-reference filter on operand | Open the holding FC and re-search |
| Input always reads 0 in online monitor | Address outside configured process image | HW Config > CPU > Process Image | Extend PII range or use L PIB x
|
| Conversion warning "Operand outside process image" | S5 PII was 0-255; S7 default is 0-127 on S7-300 | Converter log S5toS7.log
|
Raise PII size in HW Config |
| FC generated but empty | Original PB only contained comments and segment titles | Open S5 backup and inspect PB source | No action required; the PB had no executable code |
| Bit numbering inverted (bit 7 reads as bit 0) | Mnemonic switch (German U/O vs English A/O) misread |
SIMATIC Manager > Options > Customize > Mnemonics | Switch mnemonics to match the operator panel configuration |
| Symbol resolves to wrong address | Symbol table import dropped invalid characters | Open symbol table and filter for empty-name rows | Re-enter the dropped symbols manually |
| Output does not energize after conversion | Output assigned outside configured process image of outputs | HW Config > PIQ tab | Extend PIQ or use T PQB x
|
Pre-Conversion Documentation Checklist
Before running the converter, capture the following from the S5 source so that post-conversion verification can be performed systematically:
- Full S5 program backup file (
.S5D) with all PBs, FBs, SBs, DBs, OBs, and FXs. - Symbol table export from the S5 PG, ideally as a CSV.
- Hardware configuration document: CPU type, I/O rack assignments, and the byte/bit-to-terminal mapping for every input and output card.
- Process image size used by the S5 CPU (commonly 128 bytes, but can be 256 on S5-155U).
- List of any S5 special functions (e.g.
SU,RU,TB,TF) that are not in the STEP 7 operation set. - The desired block-number offset for the converted FCs, if the default 1:1 mapping collides with existing blocks in the target S7 project.
With this material in hand, the post-conversion "missing address" investigation reduces to a single cross-reference filter, as described in the procedure above. The reported field case — where the engineer could not initially locate I 32.0 — closed as a self-resolved user error once the correct converted FC was opened and searched.
FAQ
Does S5 to S7 conversion change the I/O addresses?
No. The STEP 5 to STEP 7 converter preserves the absolute byte/bit numbering. An input drawn as I 32.0 on the S5 schematic remains I 32.0 in the converted STL; what changes is the block hierarchy (PB 14 becomes FC 47 by default, configurable under converter options). If you cannot find the address, search the symbol table or cross-reference by operand rather than by block name.
Where does S5 input I 32.0 appear after conversion?
It appears in the FC that the converter generated from the PB that originally contained it. Open the S7 Blocks folder, run Options > Reference Data > Display, filter by operand I 32, and the holding FC will be listed. The literal I 32.0 is then searchable in that FC's STL source with Ctrl+F.
What does S5 PB 14 convert to in STEP 7?
By default PB 14 converts to FC 14, but the converter applies an offset based on the options selected under Options > S5 Conversion > Block Numbers. The reported field case produced FC 47 from PB 14. The exact mapping is recorded in the converter log file S5toS7.log in the project directory.
Why does the converted input always read 0 in online monitor?
The address is almost certainly outside the configured process image of inputs on the S7 CPU. Open HW Config, select the CPU, and increase the PII range to cover byte 32, or replace the operand with a direct peripheral load such as L PIB 32. The S5 process image of 128 bytes (bytes 0 to 127) does not always map 1:1 to the S7 default PII.
How do I handle S5 conversion warnings about unsupported operations?
Open the converter log S5toS7.log, identify the affected block, and reimplement the unsupported operation manually in the resulting FC. Common offenders are the S5 carry-flag operations SU, RU, and the older shift/rotate variants. Test the rewritten segment against the S5 backup with the same input stimulus before commissioning.