Resolving GRAPH Block Migration Errors from STEP 7 to TIA V19
When an S7-300/S7-400 STEP 7 V5.x project is migrated to TIA Portal V19, the migration tool typically issues a warning that GRAPH sequential function chart blocks are not fully supported. After migration, the GRAPH FBs open read-only, cannot be recompiled, and the project surfaces a follow-on warning: "This address cannot be assigned through a variable." This article documents the root cause, the two engineering-grade workarounds (GRAPH add-on install vs. STL conversion), and the steps required to clear the residual compile warnings so the migrated project is production-ready.
1. Problem Description
Two distinct but related symptoms appear after running the TIA Portal migration tool on a STEP 7 V5.x project that contains GRAPH sequence blocks:
-
GRAPH FBs become non-editable. Double-clicking a GRAPH FB in the migrated project opens the block, but the sequence editor is grayed out. Attempts to compile the program (or the block) fail with errors of the form "The block was uploaded from the S7-300/S7-400 module and cannot be edited or compiled in TIA Portal." The corresponding
FBretains theKnow_How_Protectattribute and the original STL/FBD source is shown as a comment-only view. -
Address-assignment warning during compile. After working around the GRAPH block, the next full project compile produces warning
W:"This address cannot be assigned through a variable", usually pointing at bit memory (M) or input (I) addresses that were wired to GRAPH step enable / acknowledge / error bits in the original program.
Both symptoms block the project from being downloaded to a real S7-300/S7-400 CPU or an S7-1500 retrofitted target.
2. Root Cause Analysis
2.1 Why the GRAPH block is read-only
STEP 7 V5.x stores GRAPH sequence blocks as compiled FBs whose interpretive data is held in a parallel *.sfc container consumed by the S7-GRAPH editor. The TIA Portal migration tool reads the STEP 7 V5.x archive (*.zip or *.arc) and emits a TIA Portal migration file (*.am20 for V19 targets) that contains the FBs as compiled STL/FBD code only. The S7-GRAPH add-on for TIA Portal reads the interpretive *.sfc metadata to reconstruct the chain step view. When that add-on is not installed in TIA Portal at the time of migration, the FB is migrated as a generic compiled block and is consequently read-only.
2.2 Why the address warning appears
In STEP 7 V5.x, the GRAPH FB exposes a parameter interface where individual M, I, Q bits are wired by absolute address rather than by symbolic tag. The TIA Portal compiler re-validates these wirings against the strict type-checked PLC tag table (introduced in V13 and tightened in V17 / V18 / V19). The result is warning W:"The address ... cannot be assigned through a variable" on every absolute wiring that was previously tolerated as a direct bit access on the GRAPH interface. The functionality is not broken; the warning is informational and signals that the FB is operating on an untyped symbol.
3. Prerequisites
Before attempting any of the workarounds, verify the following on the engineering workstation:
- TIA Portal V19 with the matching S7-GRAPH for TIA Portal option package installed (Setup detection: Start > Control Panel > Programs > TIA Portal V19 > Change > Modify Installation).
- The STEP 7 Professional V19 DVD or download package (required because the migration tool is bundled on the STEP 7 Prof DVD in the
Supportfolder, per Siemens Support entry 58638200). - Access to the offline STEP 7 V5.x project (the
*.s7pfile, not an upload). If only an upload is available, the original GRAPH chain-step data is lost and the GRAPH add-on install path will not work; STL conversion becomes the only path. - The STEP 7 V5.4 / V5.5 / V5.6 S7-GRAPH source add-on, used in the original project (needed to match the chain-step data layout).
- Administrator rights on the engineering workstation (TIA option packages require elevated install).
| Component | Source / Location | Required for |
|---|---|---|
| TIA Portal V19 base | Siemens installation media / Siemens DL | Target platform |
| S7-GRAPH for TIA Portal V19 | Option package on the TIA V19 media | Reconstructing chain steps |
| STEP 7 Professional V19 (or earlier) | DVD Support folder |
Migration tool (*.am20) |
| STEP 7 V5.5 / V5.6 + S7-GRAPH V5.x | Original engineering environment | Source *.s7p for clean conversion |
4. Solution A — Install the S7-GRAPH Add-on and Re-Migrate
This is the only path that preserves the original sequence logic and is recommended for production programs.
- Insert the TIA Portal V19 DVD or mount the ISO. Launch
Start.exeand select Modify Installation. - In the package selection tree, expand SIMATIC S7-1500 / S7-1200 / S7-300/400 > TIA Portal Add-ons and tick S7-GRAPH. Accept the licence terms.
- Complete the installation and restart TIA Portal V19.
- Open the STEP 7 V5.x
*.s7pproject in STEP 7 V5.5 / V5.6 (this is mandatory; the migration tool is invoked from inside the V5.x project, not from TIA Portal). Per the official Siemens migration documentation, the source project is converted to a TIA Portal migration file (*.am20) which is then imported into TIA Portal V19. See Migration of STEP 7 projects (S7-300, S7-400) - TIA Portal for the canonical workflow. - Re-run the migration: Project > Migrate to TIA Portal > select TIA Portal V19 as the target. The dialog will now read GRAPH: full support in the component list, and the previous warning disappears.
- Open the imported project in TIA Portal V19. Right-click the GRAPH FB and choose Open with S7-GRAPH. The chain step view must now show transitions, steps, and interlocks, not the STL stub.
- Compile the project (Project tree > PLC > Compile > Software (rebuild all)). The cannot be assigned through a variable warning should reduce to the same address that the GRAPH interface still uses absolute on; this is resolved in step 8.
- For every remaining warning, replace the absolute
M/I/Qaddress on the GRAPH FB instance DB with a typed PLC tag (e.g."Graph1_Step1_Active"of typeBOOL). Re-compile. The address warning clears because the compiler now sees a typed symbolic binding instead of a direct bit access.
FB 100 – FB 255. TIA Portal V19 retains those numbers. Avoid renumbering the FB during migration; renumbering breaks the call hierarchy in the OB1 / OB35 / cyclic OB where the FB is invoked.
5. Solution B — Convert GRAPH to STL before Migration
Use this path when the STEP 7 V5.x source cannot be reopened (e.g. upload-only archive) or when the S7-GRAPH add-on licence is unavailable.
- Open the original
*.s7pin STEP 7 V5.5 / V5.6 with the S7-GRAPH add-on installed. - Open each GRAPH FB. From the menu, choose Options > S7-GRAPH > Generate STL Source (or right-click the FB > Generate Source > STL). The chain-step data is rendered as a structured STL program with
A,S,R,L, andJC/JCNinstructions for every transition. - Save the generated STL sources in the Sources folder of the STEP 7 project.
- Compile the sources to produce STL-equivalent FBs (Sources > Compile). The resulting FBs no longer carry the GRAPH interpretive data and are pure STL.
- Remove the original GRAPH FBs from the program (Delete blocks), and from any instance DB, to avoid duplicate symbol conflicts.
- Re-run the migration to TIA Portal V19. The GRAPH not supported warning no longer fires because the project no longer contains GRAPH blocks.
- Re-test every chain transition, every step-enable condition, and every interlock. STL conversion is one-way: comments, supervision conditions, and step names are lost; only the boolean logic is preserved.
| Criterion | Solution A: S7-GRAPH add-on | Solution B: STL conversion |
|---|---|---|
| Source required | STEP 7 V5.x offline project | STEP 7 V5.x offline project |
| Step names / comments preserved | Yes | No |
| GRAPH editor in TIA V19 | Functional | Not applicable |
| Reverse migration possible | No | No |
| Licence requirement | S7-GRAPH V19 option | S7-GRAPH V5.x option (one-time) |
| Risk to runtime behaviour | Low (block is reused as-is) | Medium (logic rewritten in STL) |
| Address-assignment warning | Cleared by typed tags | Cleared automatically (FB has no typed interface) |
6. Solution C — Delete and Re-Programme (Last Resort)
When neither source is available nor the GRAPH add-on can be licensed, the FBs are removed from the migrated project and re-engineered. This is the only path that ends up with a fully TIA-V19-native GRAPH chain, but it costs engineering hours and re-validation time on the target machine.
- Open the migrated TIA Portal V19 project.
- Delete the read-only GRAPH FBs and their instance DBs.
- Open the calling OB (typically
OB1or a cyclic OB) and remove the FB call. Compile to confirm the project builds clean. - Add a new GRAPH FB (Add new block > Function block > Type: GRAPH) and re-author the chain by hand from the machine documentation.
- Re-bind every absolute address to a typed PLC tag to avoid the cannot be assigned through a variable warning.
7. Clearing the Address-Assignment Warning
The warning "This address cannot be assigned through a variable" is a TIA Portal V19 compiler message that fires when the GRAPH FB's instance interface still carries an absolute address (e.g. M 50.0 or I 4.7) that the compiler cannot reconcile with a typed PLC tag. The corrective procedure is identical for all three solutions:
- Open the GRAPH FB in the GRAPH editor.
- Switch to the Interface tab.
- For every parameter whose Address column shows an absolute address, click the cell, select Symbolic from the dropdown, and pick a typed tag from the PLC tag table.
- If the tag does not yet exist, declare it in PLC tags > Default tag table with the correct data type (
BOOLfor step bits,INT/DINTfor step numbers,TIMEfor supervisions). - Save, compile, and confirm the warning no longer appears in Info > Compile.
8. Verification Procedure
After applying Solution A, B, or C, run the following verification before downloading the project to a real CPU:
- Compile clean. Project > Compile > Software (rebuild all). The output window must show zero errors. Warnings should be limited to documented intentional absolute wirings.
- Cross-reference check. Project tree > PLC > Cross-references. Confirm that every call to the GRAPH FB resolves and that the instance DB is unique.
- Block consistency. Project tree > PLC > Blocks > right-click > Check block consistency. All blocks should report OK.
- Offline / online diff. With an S7-300 / S7-400 CPU online, Online > Compare offline / online. The GRAPH FB's compiled time stamp should match the source timestamp and Identical should appear in the comparison.
- Functional test on a PLCSIM instance. Open Start > SIMATIC > PLCSIM (V19 build). Download the project to a simulated CPU. Manually step through every chain transition and confirm that steps activate, supervision timers fire, and interlocks trip as in the original V5.x program.
- Know-how-protect check. Right-click the GRAPH FB > Properties > Protection. If the original block was know-how-protected, the Compilation property must show Protected in the migrated block; otherwise the protection has been silently stripped and the project should not leave the engineering environment.
9. Common Edge Cases and Field Notes
- Know-how-protected GRAPH FBs. STEP 7 V5.x GRAPH FBs are sometimes know-how-protected at the source. The S7-GRAPH V5.x add-on is required to open the FB even for migration; without it, the FB migrates as an opaque STL stub. Solution A still works if the S7-GRAPH V5.x add-on is installed on a parallel engineering workstation; the FB is then migrated with the protected container intact.
- GRAPH FB called from a CFC plan. If the GRAPH FB is referenced from a CFC (Continuous Function Chart) plan, the migration tool migrates CFC charts as read-only diagrams with the same uploaded from S7-300/400 lock. The CFC add-on for TIA Portal V19 must be installed; otherwise the diagram becomes non-executable and the GRAPH FB is unreachable.
- Step 7 V5.4 source on a V19 target. The TIA Portal V19 migration tool accepts STEP 7 V5.4 SP5 and later. If the source is older, upgrade the source in STEP 7 V5.5 first; the migration tool does not convert pre-SP5 archives.
-
Custom GRAPH blocks outside the default range. GRAPH FBs in the user range (e.g.
FB 1000+) are migrated with the same read-only behaviour. Solution A handles them identically to the default range. -
Re-importing after a failed migration. If the migration is interrupted (anti-virus quarantine, disk full), the
*.am20file is corrupt. Re-export from STEP 7 V5.x; do not attempt to repair the*.am20archive manually. -
Migration tool location. The standalone migration tool is shipped on the STEP 7 Professional V19 DVD in the
Supportfolder and is documented in Siemens Support entry 58638200. It can be invoked independently of TIA Portal when the source STEP 7 V5.x project must be converted to a TIA Portal migration file on a workstation that does not have a STEP 7 V5.x install.
10. Troubleshooting Matrix
| Symptom | Likely cause | Action |
|---|---|---|
| GRAPH FB opens as STL only, no chain view | S7-GRAPH add-on not installed in TIA V19 | Modify TIA install, add S7-GRAPH option, re-migrate |
| Migration dialog says GRAPH not supported | GRAPH metadata in *.sfc not readable |
Open source in STEP 7 V5.5 with S7-GRAPH, re-save, re-export |
| Compile error: block uploaded from S7-300/400 | Block migrated as compiled stub, no interpretive data | Apply Solution A or B; do not attempt to re-compile the stub |
| Address warning on every GRAPH interface bit | Absolute M/I/Q wirings in original program |
Convert to typed PLC tags in the GRAPH interface |
| Know-how-protected FB opens as empty STL | Source *.s7p missing S7-GRAPH V5.x option |
Install S7-GRAPH V5.x, reopen source, regenerate protected block, re-migrate |
| CFC plan migrates as read-only | CFC add-on not installed | Install CFC option in TIA V19, re-migrate |
| Migration tool not found in TIA install | Tool only ships with STEP 7 Prof DVD | Use migration tool from Support folder per entry 58638200
|
| Address warning persists after typed-tag fix | Tag declared in wrong tag table (not the one used by the FB) | Move tag to the default tag table or the table the GRAPH FB references |
11. When to Escalate to Siemens Support
Escalate to the Siemens Industry Online Support team with the following data when the migration tool itself fails (e.g. *.am20 cannot be generated, GRAPH option install fails on Windows 11 24H2, or the GRAPH block is corrupt in the source):
- Exact TIA Portal V19 build number (Help > About).
- Exact S7-GRAPH V19 option build number.
- Exact STEP 7 V5.x source build number (e.g. V5.5 SP4 Hotfix 6) and S7-GRAPH V5.x build.
- Whether the source is offline (
*.s7p) or an upload. - The exact warning / error text in English (German original if running a German TIA).
- The full migration log (C:\Users\<user>\AppData\Local\Siemens\Automation\<version>\MigrationLog.txt).
Why does my migrated GRAPH FB open as a read-only STL block in TIA V19?
The S7-GRAPH add-on for TIA Portal V19 was not installed when the project was migrated. Modify the TIA Portal V19 installation, add the S7-GRAPH option package, then re-export the source *.s7p from STEP 7 V5.5 / V5.6 and re-run the migration. Once the add-on is present, the GRAPH FB opens in the chain-step editor.
What is the *.am20 file produced during migration?
The *.am20 is the TIA Portal migration file generated by the migration tool (located in the Support folder of the STEP 7 Professional V19 DVD, per Siemens Support entry 58638200). The *.am20 is the only artefact TIA Portal V19 can import; the original *.s7p cannot be opened directly.
Can I edit a GRAPH FB that was uploaded from an S7-300/S7-400 module in TIA V19?
No. Uploaded GRAPH blocks contain no chain-step interpretive data, only the compiled STL. TIA Portal V19 cannot reconstruct the chain view from an upload. To edit, you need the offline *.s7p source and the S7-GRAPH V5.x add-on installed, then re-migrate with the TIA V19 S7-GRAPH option in place.
What does the warning "This address cannot be assigned through a variable" mean?
The TIA Portal V19 compiler has detected an absolute address (e.g. M 50.0) wired to a parameter on the GRAPH FB interface that the compiler expects to be a typed symbolic tag. Replace the absolute address with a typed PLC tag (e.g. "Graph1_Step1_Active", BOOL) and the warning clears. The functionality is not broken; the warning is informational.
Is there a way to migrate a GRAPH program without buying the S7-GRAPH add-on for TIA V19?
Yes — convert the GRAPH FB to STL in STEP 7 V5.5 / V5.6 using Options > S7-GRAPH > Generate STL Source, compile the source, delete the original GRAPH FB, and re-migrate. The chain-step view and comments are lost, but the boolean logic is preserved. This requires only a one-time S7-GRAPH V5.x licence on the source workstation.