PLCcheck

S7-300 to S7-1500 Migration: Complete Guide

Step-by-step guide for migrating Siemens S7-300 PLC programs to S7-1500 using TIA Portal. Covers hardware mapping, software migration wizard, optimized data blocks, AWL→SCL conversion, and common pitfalls.

·15 min read
SiemensS7-300S7-1500migrationTIA PortalSTEP 7ET200SPoptimized data blocksAWLSCL

Diesen Artikel auf Deutsch lesen

S7-300 to S7-1500 Migration: Complete Guide

Migrating from S7-300 to S7-1500 requires two parallel transitions: hardware (S7-300 rack and I/O → S7-1500 with ET200SP/MP) and software (STEP 7 V5.x → TIA Portal). The TIA Portal migration wizard handles approximately 90% of the software conversion automatically. The remaining 10% — optimized data blocks, AWL/STL code on S7-1500, hardware-specific modules, and communication blocks — requires manual work. This guide covers both parts.

Why Migrate Now?

The S7-300 is entering its end-of-life phase. The PM410 product family (267+ assemblies) had its production stop on 01.10.2025. Siemens guarantees spare parts for approximately 10 years after production end, meaning S7-300 spare parts from Siemens will become unavailable around 2033–2035.

The S7-1500 is the designated successor. It offers faster processing (up to 10× compared to equivalent S7-300 CPUs), larger memory (data blocks up to 10 MB vs. 64 KB), integrated PROFINET, a built-in web server, and integrated security features.

For the full end-of-life analysis, see our S7-300 End-of-Life planning guide.

Step 1: Inventory Your S7-300 System

Before starting any migration, document your current system completely:

Hardware inventory:

Software inventory:

I/O mapping:

Step 2: Select S7-1500 Hardware

CPU Selection

S7-300 CPUTypical S7-1500 ReplacementNotes
CPU 312 / 314CPU 1511-1 PNSmall applications
CPU 315-2 PN/DPCPU 1513-1 PNMedium applications
CPU 317-2 PN/DPCPU 1515-2 PNLarge applications
CPU 319-3 PN/DPCPU 1516-3 PN/DPVery large applications
CPU 315F-2 PN/DPCPU 1513F-1 PNSafety (F-CPU)
CPU 317F-2 PN/DPCPU 1515F-2 PNSafety (F-CPU)

Important: Always select an S7-1500 CPU with equal or greater work memory. The S7-1500 typically needs more memory than the equivalent S7-300 due to optimized data blocks storing additional type information.

I/O Modules

S7-300 signal modules (SM 321, SM 322, SM 331, SM 332) are not compatible with S7-1500. You have two options:

Option A: Centralized I/O replacement. Replace S7-300 signal modules with S7-1500 signal modules (DI 32×24VDC, DQ 32×24VDC, AI 8×U/I, etc.) in the S7-1500 rack. This requires re-wiring.

Option B: Distributed I/O with ET200SP/MP. Keep the I/O in the field cabinet and connect via PROFINET to the S7-1500 CPU. ET200SP is the standard choice for most applications. This option can reduce re-wiring significantly.

Adapter cables: Siemens offers adapter cables (6ES7922-5 series) that connect S7-300 front connectors to S7-1500/ET200 modules, minimizing re-wiring effort.

Communication

S7-300 ModuleS7-1500 Replacement
CP 343-1 (Ethernet)Integrated in CPU (PROFINET)
CP 343-1 LeanIntegrated in CPU
CP 342-5 (PROFIBUS)CP 1542-5 or CM 1542-5
CP 340/341 (Serial)CM 1241 (RS232/RS422/RS485)

Step 3: Software Migration with TIA Portal

Prerequisites

Migration Procedure

3.1: Archive the S7-300 project. In SIMATIC Manager: File → Archive. This creates a .zip archive of the complete project. This is your input for TIA Portal.

3.2: Import into TIA Portal. In TIA Portal: Project → Migrate project. Select the archived .zip file.

3.3: Hardware configuration. The migration wizard offers to include or exclude hardware configuration. Recommendation: Exclude hardware and configure manually. S7-300 hardware modules rarely have 1:1 equivalents in S7-1500, and including them creates many warnings that need manual resolution anyway.

3.4: CPU replacement. After import, the CPU appears as "unspecified" (white icon). Right-click → "Migrate to S7-1500" → Select your target CPU from the catalog.

3.5: Add signal modules manually. Add S7-1500 or ET200SP signal modules matching your I/O requirements. Adjust I/O addresses to match the original S7-300 addressing if you want to minimize program changes.

3.6: Compile and resolve errors. The first compilation will show errors and warnings. Common issues:

Error TypeCauseSolution
Unspecified CPUCPU not yet selectedSelect target S7-1500 CPU
Missing signal modulesHardware not configuredAdd modules manually
Data type mismatchOptimized vs. standard DBSet DB to "Standard" access (see below)
SFB/SFC not availableS7-300-specific system functionsReplace with S7-1500 equivalents
AWL/STL warningsAWL runs in emulation on S7-1500Convert to SCL (recommended)

Step 4: Handle Optimized Data Blocks

This is the single biggest difference between S7-300 and S7-1500 programming.

S7-300 (Standard access): Data block elements are accessed by absolute address (DB10.DBW0, DB10.DBD4). The memory layout is fixed — you control exactly where each variable sits.

S7-1500 (Optimized access, default): Data block elements are accessed by name (DB10.Temperature, DB10.Pressure). The memory layout is managed by the system. You cannot use absolute addresses.

Why this matters: If your S7-300 program uses absolute DB addressing (which most do), you must either:

Option A (Quick): Set all DBs to "Standard" access. In TIA Portal: Open DB properties → Attributes → Uncheck "Optimized block access." This preserves the S7-300 behavior. The program works without changes, but you lose the performance benefits of optimized access.

Option B (Better, more work): Convert to symbolic access. Replace all absolute DB addresses (DBW0, DBD4) with symbolic names (Motor_Speed, Setpoint_Temperature). This is more work upfront but makes the code maintainable and enables optimized access.

Recommendation: For the initial migration, use Option A to get the system running quickly. Convert to symbolic access gradually during subsequent maintenance windows.

Step 5: Convert AWL/STL to SCL

AWL (Anweisungsliste / Statement List) runs on S7-1500 only in emulation mode. It works, but:

For a detailed AWL→SCL conversion guide, see our AWL to SCL conversion guide.

Practical approach: Convert AWL blocks to SCL during the migration if time allows. If not, leave them in AWL emulation mode for now and convert during future maintenance.

Step 6: Test and Commission

Simulation first: Use PLCSIM Advanced to simulate the S7-1500 program before deploying to hardware. This catches most logic errors without risking production equipment.

Side-by-side comparison: Compare the number of blocks, network count per block, and instruction count between the original STEP 7 project and the migrated TIA Portal project. Discrepancies indicate migration errors.

I/O test: After hardware installation, test every input and output systematically. Verify that physical signals match the expected PLC addresses.

Staged commissioning: Start with manual mode, verify basic functions, then enable automatic sequences one at a time.

Common Pitfalls

1. I/O address shifts. If S7-1500 modules are inserted in different slots than the S7-300 modules, I/O addresses change. Always verify and adjust the hardware configuration to preserve original addresses where possible.

2. Communication block changes. S7-300 uses AG_SEND/AG_RECV for Ethernet communication. S7-1500 uses TSEND_C/TRCV_C. These must be replaced manually.

3. System function differences. Not all S7-300 SFBs/SFCs exist on S7-1500. Common replacements: SFC 14/15 (DPRD_DAT/DPWR_DAT) → DPRD_DAT/DPWR_DAT (same name, different implementation). SFB 52/53 (BSEND/BRCV) → BSEND/BRCV (compatible but check parameters).

4. HMI migration. If you use ProTool or WinCC flexible, you must also migrate the HMI project to WinCC (TIA Portal). This is a separate migration step with its own set of issues.

5. Safety programs. F-CPU programs require additional validation after migration. Safety function blocks must be recompiled and the safety program re-accepted.

How PLCcheck Pro Helps

PLCcheck Pro accelerates the S7-300→S7-1500 migration:

Upload your S7-300 code →

Frequently Asked Questions

Can I reuse S7-300 I/O modules with S7-1500?

No. S7-300 and S7-1500 use different backplane bus systems. The signal modules are not interchangeable. You must replace with S7-1500 modules or use ET200SP/MP distributed I/O. Siemens adapter cables (6ES7922-5 series) can reduce re-wiring effort.

Does the TIA Portal migration wizard handle everything automatically?

Approximately 90% of the software migration is automatic. Hardware configuration, optimized data blocks, communication blocks, and AWL code on S7-1500 typically require manual intervention.

Can I keep my AWL/STL code on S7-1500?

Yes, AWL runs in emulation mode on S7-1500. But performance is reduced, and Siemens recommends converting to SCL. The S7-1200 does not support AWL at all, so conversion is the long-term direction.

How long does a typical S7-300→S7-1500 migration take?

Small systems (1 CPU, <50 blocks): 1–2 weeks. Medium systems (1–2 CPUs, 50–200 blocks): 3–6 weeks. Large systems (3+ CPUs, 200+ blocks, safety): 2–6 months.


Maintained by PLCcheck.ai. Last update: March 2026. Not affiliated with Siemens AG.

Related Articles

Analyze your PLC code with AI

PLCcheck Pro explains, documents, optimizes, and migrates PLC code — automatically.

Try PLCcheck Pro →
← Back to Blog

Not affiliated with Siemens AG. S5, S7, STEP 5, STEP 7, and TIA Portal are trademarks of Siemens AG.