S5 to S7 Conversion I/O Address Troubleshooting in SIMATIC

David Krause11 min read
S7-300SiemensTroubleshooting
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

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.

Bit address convention: In both STEP 5 and STEP 7, the bit index follows Siemens IEC convention with bit 0 = LSB and bit 7 = MSB. 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:

  1. 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.0 inside "PB 14" on the original machine now lives inside "FC 47" (or whichever FC number the converter assigned).
  2. Source view filtered by symbol table. When the converted project is opened with absolute operands hidden behind symbolic names, the literal I 32.0 does 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.
  3. 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.0 was 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:

  1. Open the converted project and select the S7 Program container.
  2. 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.
  3. 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.
  4. If the cross-reference is empty, the conversion log S5toS7.log will list every PB that emitted a warning or error. Open the relevant PB in the source .S5D backup and re-run the converter on that PB alone.
  5. 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.
Process image sizing matters. If the S5 program uses 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.

  1. 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).
  2. 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.
  3. 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.
  4. Symbol table import. Convert the S5 symbol table (Z0.SEQ or SYMBOL.S5D) via Options > Symbol Table > Import. Resolve any W1022 warnings manually.
  5. 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.0 from 0 to 1 when the field contact closes).
  6. 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.0 jumps 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.

Back to blog