Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>CMsoft Import for Step7New to Visual Studio Code? Get it now.
CMsoft Import for Step7

CMsoft Import for Step7

CMsoft

|
706 installs
| (0) | Free
Import/Export Siemens Step7 V5.7 projects in a Copilot-friendly format. Read .s7p projects, browse blocks, export AWL sources.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Version

VS Code License: Commercial EULA Platform Author

CMsoft Import for Step7 — VS Code Extension

🌐 www.cmsoft.com.pl — all CMsoft extensions, the shop and contact

Bidirectional bridge between VS Code and Siemens SIMATIC Manager (Step7 V5.x) — open .s7p projects, import blocks and hardware data into local files, work on them with full VS Code + Copilot support, and export changes back to Step7. The extension is optimized for AWL/STL-centric workflows and for storing PLC logic in a source-control-friendly structure.


FREE and PRO

Feature FREE PRO
Open Step7 projects (.s7p), browse the project structure, open in SIMATIC Manager ✅ ✅
Import blocks, symbol tables, watch tables and hardware configuration from Step7 to the workspace ✅ ✅
Generate AWL sources, show modified blocks, export AWL packages to a folder ✅ ✅
Export blocks from the workspace to Step7 via SIMATIC Manager (import and compile) up to 10 blocks per operation ✅ unlimited
Export the symbol table to Step7 via SIMATIC Manager ✅ ✅
Copilot Language Model tools and the @step7 chat participant ⛔ ✅
CLI bridge for scripts and automation ⛔ ✅
Prepare Workspace (AI instructions, templates, Tools) ⛔ ✅
  • 14-day free trial, no payment details needed: CMsoft Import for Step7: Manage License / Subscription → Try for free.
  • Subscription (monthly or yearly, renews automatically) or one-time payment: CMsoft Import for Step7: Buy License — prices on the pricing page. A license covers one Seat (one named user on one activated workstation).
  • The license is shown in the shared CMsoft status bar item (one item for all installed CMsoft extensions) and in the Connection view; both open the license panel. The CMsoft item also lists the user manuals of the installed CMsoft extensions under Manuals (Help: CMsoft Manuals… in the Command Palette lists them alone).

Key Features

Import from a Step7 project

Capability Description
Project Structure view Browse a SIMATIC Manager project — stations, CPUs, programs, block folders, blocks
Import a project or program One click imports all blocks and the symbol table of a program, or of all programs
Import a block folder or blocks Import all blocks of one type (OB, FB, FC, DB, UDT …), one block, or Ctrl+click several
Import the symbol table As CSV, JSON or XLSX
Import watch tables Variable tables (VAT) as JSON
Import hardware configuration Station HW config (CPUs, CPs, network interfaces, Profibus/Profinet) as JSON
Generate AWL sources Full AWL/STL sources generated by SIMATIC Manager

Work in VS Code, export back to Step7

  • Readable sources — every block is an .awl / .scl file named after its symbol, ready for Git and diff tools
  • German or English mnemonics — AWL (German) or STL (English) instruction set
  • Symbolic names — addresses are shown with their symbols from the symbol table
  • Know-how protected blocks — recognized and never overwritten by an export
  • Show Modified Blocks — the blocks you changed since the last import or export
  • Export via SIMATIC Manager — changed blocks are imported into the Step7 project and compiled, in dependency order; compile errors and warnings appear in the Problems view with their line
  • Export the symbol table — your edited _symbols.csv / _symbols.json goes back into the Step7 symbol table
  • AWL packages — the sources of a block, folder, program or project as files for a manual import in SIMATIC Manager
  • Progress and cancellation — long operations show their progress and can be cancelled

AI and automation (PRO)

  • Copilot tools — Copilot can open projects, import, list blocks, export to SIMATIC Manager and fix compile errors in a loop
  • @step7 chat participant — ask for Step7 work in the chat; it runs the same tools and asks before it writes into SIMATIC Manager
  • CLI bridge — drive the extension from PowerShell, Python, Node.js or an MCP server through a token-protected localhost JSON bridge
  • Workspace templates — AI instructions (.github/instructions/step7-import*.instructions.md, sections in AGENTS.md, CLAUDE.md, .github/copilot-instructions.md next to the other CMsoft extensions), CLI instructions and an example Python script

Requirements

Requirement Version
OS Windows 10 / 11
VS Code 1.95 or later
.NET .NET 10 Runtime; .NET Framework 4.8 (built into Windows 10 / 11)
SIMATIC Manager STEP 7 V5.7 — for the features that use SIMATIC Manager (see below)

Nothing else needs to be installed — no Node.js, npm or build tools: the extension comes ready to run.

The extension reads projects directly from their files: browsing and the import also work without SIMATIC Manager — the block sources are then decompiled by the extension instead of generated by SIMATIC Manager. Generate AWL sources and the export to Step7 need SIMATIC Manager installed and running.

This extension is intended for classic Step7 / SIMATIC Manager projects, not for TIA Portal projects.


Installation

  1. Install the extension from the VS Code Marketplace, or run code --install-extension MariuszCzyrnek.step7-import
  2. Make sure the .NET 10 Runtime is installed — on activation the extension checks its components and offers the installation when the runtime is missing
  3. For the features that use SIMATIC Manager, install STEP 7 V5.7
  4. Optionally adjust the settings: File → Preferences → Settings → CMsoft Import for Step7
  5. New here? Step7: Open User Manual opens the complete user manual inside VS Code (offline), and Welcome: Open Walkthrough… → Get Started with CMsoft Import for Step7 leads through the setup, the first project and the first import

Usage

Opening a Step7 project

  1. Open VS Code in a workspace folder — the imported files go into it
  2. Click the CMsoft Import for Step7 icon in the Activity Bar
  3. Click Open Step7 Project or run Step7: Open Project
  4. Select the .s7p file of the project

Step7: Open in SIMATIC Manager opens the project in SIMATIC Manager as well. If SIMATIC Manager is already running without the project, the extension asks you to open it there — it never closes SIMATIC Manager with your other projects.

Importing blocks

  1. Browse the project in the Project Structure view
  2. Right-click a node:
    • Project — import all programs
    • Program — import all blocks and the symbol table of the program
    • Block folder (OB, FB, FC, DB …) — import all blocks of that type
    • Block — import one block (Ctrl+click several, then Import Selected Blocks)
    • Symbol Table / Watch Table — import the symbol table or a watch table
  3. Import the hardware configuration with the server icon (Import Hardware Configuration) on a Project or Station node

An import of several blocks asks whether to rewrite all block files or only the changed ones. The import replaces your working copies with the state of the Step7 project — export or commit your edits first. Importing a program also removes the files of blocks that no longer exist in Step7.

Your workspace

<Workspace>/
├── .github/
│   └── copilot-instructions.md        # a section of this extension; the import keeps its block list section up to date
└── Step7Export/
    └── <Project>/
        ├── <Station>/
        │   ├── HWconfig/
        │   │   └── _hwconfig.json     # hardware configuration of the station
        │   └── <CPU>/
        │       └── <Program>/
        │           ├── _symbols.csv   # symbol table (.csv, .json or .xlsx)
        │           ├── Blocks/        # your working copies: edit these files
        │           │   ├── OB/        #   e.g. CYCL_EXC_OB1.awl - <symbol>_<block>
        │           │   ├── FB/  FC/  DB/  UDT/
        │           │   └── VAT/       #   watch tables (JSON)
        │           └── Sources/       # sources of Generate AWL Source(s)
        └── ExportPackage/             # AWL packages of Step7: Export to Step7
  • A block without a symbol is named after the block (FC20.scl); SCL blocks have the .scl extension.
  • With the export format awl+json, each block also gets a .meta.json file and DBs/UDTs a .struct.json file.
  • The hidden .source-hashes.json in each block folder records every source as the last import wrote it or the last export sent it — it tells which blocks you modified, and which files an import may overwrite. Keep it, and commit it together with the sources.

An import keeps your work. With Only changed an import writes only what changed in Step7: a source you changed since the last import or export is kept and reported as kept (also when the block changed in Step7 too); Overwrite all replaces it with the Step7 version. A block deleted in Step7 is removed from Blocks/ only while its file is as the import wrote it; blocks you write yourself (not in Step7 yet) and files that are no block files are never deleted. A cancelled import deletes nothing.

Exporting back to Step7

Edit the files in Blocks/, then run one of these commands from the Project Structure view or the Explorer context menu:

Command What it does
Step7: Show Modified Blocks Lists the blocks you changed since the last import or export
Step7: Export via SIMATIC Manager Imports the changed (or all) blocks into the Step7 project and compiles them
Step7: Export Symbol Table via SIMATIC Manager Imports _symbols.csv or _symbols.json (the one saved last) into the symbol table; symbols with the same name are overwritten
Step7: Export to Step7 Writes an AWL package of a block, folder, program or project to ExportPackage/ for a manual import in SIMATIC Manager
Step7: Export to Folder Writes an AWL package of all blocks of a program to a folder you choose

Export via SIMATIC Manager needs SIMATIC Manager running with the project open. It asks whether to export only the modified blocks or all of them, sends them in dependency order (UDTs, then the blocks that use them …), never sends know-how protected blocks or system blocks (SFB, SFC, SDB) and — for Only modified — skips blocks Step7 already has as they are. An exported block no longer counts as modified, and afterwards the project is read again, so new blocks appear in the Project Structure view. When something goes wrong:

  • A block does not compile — its errors (and warnings) appear in the Problems view with their line, and the previous version of the block is put back in Step7. The export goes on with the next block.
  • A block uses a block that failed — it is not sent: compiled against the old version it would fail as well. The Problems view says why ("uses FB10, whose export failed - fix FB10 first"); it goes with the next export.
  • SIMATIC Manager cannot be used — it does not answer (for example an open dialog), is closed, or does not find the project or program: the export stops with the reason, and lists the blocks it did not send. Remove the cause and export again.

Without a PRO license, one export via SIMATIC Manager covers up to 10 blocks; larger operations ask for a license. AWL packages and the symbol table export are not limited.

Validate every change in SIMATIC Manager before you download it to a PLC.

Copilot and the @step7 chat participant (PRO)

With a PRO license, GitHub Copilot gets the Step7 tools (step7_open_project, step7_import_program, step7_list_blocks, step7_export_to_simatic, step7_fix_compile_errors, … — 16 in all), and the chat gets the @step7 participant, which uses them.

  • Tools that write into SIMATIC Manager ask for your confirmation first, unless step7Import.lmTools.autoConfirmExports is on.
  • step7_fix_compile_errors runs export → compile → fix rounds; step7Import.lmTools.maxFixIterations limits one run (default 5). When the export stopped because SIMATIC Manager could not be used, the tool tells Copilot not to edit the sources for it.

External CLI / MCP automation (PRO)

The extension can expose a localhost-only JSON bridge for scripts and MCP servers. It is disabled by default; enable it with one of:

  • Settings — step7Import.cli.enabled
  • Connection view — click the CLI Bridge row (or the terminal icon in the view title)
  • Command Palette — Step7: Start CLI Bridge

While it runs, .step7/cli.json in the workspace holds the local port and a per-session token. Add .step7/ to your .gitignore and never commit the file; read it again after VS Code restarts, as port and token change.

The bridge is plain HTTP, so any language works — PowerShell needs nothing else installed:

$s = Get-Content .step7\cli.json | ConvertFrom-Json
$h = @{ Authorization = "Bearer $($s.token)" }
Invoke-RestMethod -Method Post -Uri "http://$($s.host):$($s.port)/api" -Headers $h -ContentType 'application/json' `
                  -Body '{"command":"list_blocks","args":{"program":0,"nameFilter":"FB","limit":50}}'

The extension also ships a command-line client, step7-cli.js. It runs on the runtime built into VS Code, so no Node.js is needed; the user manual (section 12.4, Step7: Open User Manual) has a ready-made step7 PowerShell function for it. Its command names are the Copilot tool names, with or without the step7_ prefix:

step7 open_project --workspace . --filePath "C:\Projects\PLC\Demo.s7p" --openInSimaticManager true --pretty
step7 list_blocks --workspace . --program 0 --nameFilter FB --limit 50
step7 import_blocks --workspace . --program 0 --blocks OB1,FB10
step7 export_to_simatic --workspace . --json '{"program":0,"modifiedOnly":true}'
step7 get_logs --workspace . --limit 100 --level error --pretty

Every command prints JSON — { "success": true, "data": …, "message": … } or { "success": false, "error": … } — and the client exits with code 2 on "success": false. Pass structured arguments with --json '{...}', --json @payload.json or --stdin; use --state (or STEP7_CLI_STATE) when the state file is not in the workspace. An export reports blocks it did not send in notExported and, when it stopped early, the reason in stopReason.

Step7: Prepare Workspace copies .github/instructions/step7-import-cli.instructions.md — the full command list and the rules for AI agents — and Tools/step7_cli_example.py, a Python script that talks to the bridge directly (no Node.js needed):

python .\Tools\step7_cli_example.py "C:\Projects\PLC\Demo.s7p" --workspace . --pretty

Workspace templates (PRO)

Step7: Prepare Workspace puts these templates into the workspace. They follow the CMsoft workspace protocol, so the CMsoft extensions (CMsoft Import for TiaPortal, the migrators, …) can prepare the same workspace: each keeps its own files, named after it, and one section in AGENTS.md, CLAUDE.md, .github/copilot-instructions.md, .gitignore and Tools/README.md, between cmsoft:begin / cmsoft:end markers. Running it again updates this extension's section and files; your own text outside the sections — and a file from which you deleted its cmsoft:managed line — is never touched.

File / Folder Purpose
.github/instructions/step7-import.instructions.md AWL/STL syntax guide, block structure rules and project conventions for AI assistants (Copilot applies it to every file)
.github/instructions/step7-import-cli.instructions.md How scripts and agents use the CLI bridge (applied to Tools/)
.github/copilot-instructions.md A section pointing to the instructions above; the import adds the block list section
.github/ProjectDescription.md Functional description of the plant, filled in with your AI assistant (created once)
.github/LibraryDescription.md Description of the library blocks of the project (created once)
AGENTS.md, CLAUDE.md Sections for other AI agents (Cursor, Codex, Claude Code …), pointing to the instructions
.gitignore A section keeping .step7/ (the CLI bridge token), CLAUDE.local.md and UserFiles/* out of Git
Tools/step7_cli_example.py Example Python script for the CLI bridge — your own scripts go into Tools/ too

Without PRO, the import still creates .github/copilot-instructions.md with this extension's section, the instructions it points to and the block list, and keeps the list up to date; your own text in it stays. Unchanged copies of the templates of earlier versions (.github/copilot-instructions.md, .github/CLI-instruction.md, Tools/cli_example.py) are replaced.


Extension Settings

Setting Description Default
step7Import.exportFolderName Folder in the workspace the projects are imported to Step7Export
step7Import.useSymbolicNames Use symbolic names in AWL code true
step7Import.includeSystemBlocks Import system blocks (SFB, SFC) false
step7Import.includeStructureJson Generate .struct.json files for DBs and UDTs (format awl+json) true
step7Import.showDeleted Show deleted blocks false
step7Import.exportKnowHowProtected Generate the source of know-how protected blocks (otherwise an info comment) false
step7Import.generateSourceFormat awl (sources only) or awl+json (with metadata JSON) awl
step7Import.mnemonicLanguage de (German AWL) or en (English STL) en
step7Import.symbolListFormat Symbol table format: csv, json or xlsx csv
step7Import.lmTools.autoConfirmExports Copilot exports to SIMATIC Manager without asking (PRO) false
step7Import.lmTools.maxFixIterations Export → compile → fix rounds of step7_fix_compile_errors (1–20, PRO) 5
step7Import.cli.enabled Start the localhost CLI bridge and write .step7/cli.json (PRO) false

The settings step7Import.license.* (license server, activation e-mail, purchase page) do not need to be changed.


Commands

Command Description
Project
Step7: Open Project Open a .s7p project
Step7: Open in SIMATIC Manager Open the project in SIMATIC Manager too
Step7: Close Project Close the project
Step7: Refresh Project Read the project again - after changes in SIMATIC Manager
Import
Step7: Import All Import all blocks of a program
Step7: Import All Programs Import all programs of the project
Step7: Import Block Import one block
Step7: Import Selected Blocks Import the blocks selected in the tree (Ctrl+click)
Step7: Import Block Folder Import all blocks of a type (OB, FB, FC, DB …)
Step7: Import Symbol Table Import the symbol table
Step7: Import Watch Tables Import watch tables
Step7: Import Hardware Configuration Import the HW config of all stations or one station
Step7: Generate AWL Source Generate the AWL source of one block in SIMATIC Manager
Step7: Generate All AWL Sources Generate the AWL sources of all blocks in SIMATIC Manager
Export
Step7: Show Modified Blocks List the blocks changed since the last import or export
Step7: Export via SIMATIC Manager Import and compile workspace blocks in the Step7 project
Step7: Export Symbol Table via SIMATIC Manager Import _symbols.csv / _symbols.json into the symbol table
Step7: Export to Step7 Write an AWL package to ExportPackage/
Step7: Export to Folder Write an AWL package of a program to a folder
Workspace and automation
Step7: Prepare Workspace Copy the workspace templates (PRO)
Step7: Start CLI Bridge / Toggle CLI Bridge Start, or switch on and off, the CLI bridge (PRO)
Step7: Show Logs Open the extension's output channel
Step7: Open Settings Open the extension settings
Step7: Toggle … Switch export format, mnemonic language, symbolic names, system blocks, structure JSON, deleted blocks, know-how protected export
Help
Step7: Open User Manual Open the user manual inside VS Code (offline)
Step7: Search the User Manual Find a chapter or section of the manual and open it there
Help: CMsoft Manuals… The user manuals of every installed CMsoft extension
License
CMsoft Import for Step7: Manage License / Subscription License panel: free trial, purchase, activation, Refresh license status, Cancel subscription
CMsoft Import for Step7: Buy License Open the pricing page of CMsoft Import for Step7 PRO
CMsoft Import for Step7: Show Welcome & Pricing Show the welcome page with the plans
CMsoft Import for Step7: Refresh License Status Fetch a license bought for this computer, renewals
CMsoft Import for Step7: Activate License Key Activate a license key
CMsoft Import for Step7: Generate Activation Token Create an activation request for an activation by e-mail
CMsoft Import for Step7: Copy Hardware ID Copy the hardware ID of this computer
CMsoft Import for Step7: Save License Key to File Save the license key as a file
CMsoft Import for Step7: Deactivate License on this Computer Remove the license from this computer; its seat stays assigned to it - to move the license to another computer, contact the vendor

Troubleshooting

  • Step7: Open User Manual — the troubleshooting chapter of the user manual lists the messages, their causes and what to do. A project that cannot be opened shows its reason with the buttons Open Help (that chapter) and Show Logs.
  • Step7: Show Logs shows what the extension did, including the compile logs of SIMATIC Manager.
  • A block added or changed in SIMATIC Manager is missing — run Step7: Refresh Project: the extension reads the project files once when it opens a project, and again on Refresh and after an export.
  • An import reports blocks as kept — their workspace files have changes of their own (the log says which). Export them, or import with Overwrite all (one block: Replace with Step7 Version in the notification) to take the Step7 version.
  • "… is not open in SIMATIC Manager" — open the project in SIMATIC Manager (or use Step7: Open in SIMATIC Manager) and try again.
  • An export stops with "SIMATIC Manager may be waiting for a dialog to be closed" — close the open dialog in SIMATIC Manager and export again.
  • The bridge components are missing or the .NET runtime is not found — accept the installation offered on activation, or install the .NET 10 Runtime and reload VS Code.

Support and Feedback

  • Public repository (documentation, issues): cmariusz/Step7ImportExport.VSExt
  • Issue tracker: GitHub Issues
  • Marketplace identifier: MariuszCzyrnek.step7-import

If you hit an import/export issue, include the Step7 version, whether SIMATIC Manager is installed, the executed command, and the relevant output from Step7: Show Logs.


Third-Party Notices

Third-party dependency and redistribution notes are documented in THIRD_PARTY_NOTICES.md.


Trademarks

This extension is an independent product. It is not developed, endorsed, sponsored by or affiliated with Siemens AG. SIMATIC, STEP 7 and SIMATIC Manager are trademarks or registered trademarks of Siemens AG, used here solely for identification and interoperability purposes; for Step7 in the name CMsoft Import for Step7 only states which software the extension works with. Visual Studio Code is a trademark of Microsoft Corporation.


Disclaimer of Liability

The extension is a development and automation tool, and all imports/exports modify engineering data at your own risk.

To the extent permitted by applicable law, the author is not liable for indirect or consequential damages — production downtime, data loss, project corruption or other consequences — resulting from changes made to Step7 / SIMATIC Manager projects using this extension, and any other liability is limited. Liability that the law does not allow to exclude (for example for damage caused intentionally, or for death or personal injury) and the statutory rights of consumers are not affected.

You are responsible for all content the extension moves, converts or generates — organization blocks, function blocks, functions, data blocks, UDTs, AWL/STL and SCL sources, symbol tables, watch tables and hardware configuration data — regardless of whether you wrote it, the extension generated it, or an AI assistant (GitHub Copilot, @step7 chat participant, step7_* language model tools, an agent using the CLI bridge) produced it. AI-generated code is not reviewed or verified by the author.

Users are fully responsible for validating, testing, and approving all generated or imported changes before deployment to real machines, production lines, or safety-related systems — and for keeping verified project backups before any export into SIMATIC Manager.

These terms are binding as sections 12 (warranty), 13 (liability) and 14 (your content, generated code and safety-critical use) of the End User License Agreement; where this summary and the agreement differ, the agreement applies.


Community — Share Your Scripts & Ideas

This extension scaffolds workspace-ready instructions (.github/instructions/step7-import.instructions.md) that teach AI assistants how to work with exported AWL/STL files and Step7 project structures.

We encourage you to contribute! If you have created useful scripts, automation tools, or improvements to the Copilot instructions:

  1. Fork the Step7ImportExport.VSExt repository on GitHub
  2. Propose improvements to the export structure, documentation templates, or .github/instructions/step7-import.instructions.md
  3. Include a short usage note or example when contributing automation helpers or workspace templates
  4. Open a Pull Request — your contribution will help the Step7 + VS Code community

Every shared script or instruction improves the experience for all users. Don't hesitate to share even small utilities — they often save the most time!


License

Proprietary commercial software — see the End User License Agreement. Versions before 3.0.0 were released under the MIT License and remain MIT-licensed; version 3.0.0 and later are not. Copyright © 2026 CMsoft. All rights reserved.

CMsoft · office@cmsoft.com.pl · shop.cmsoft.com.pl

Document Content
LICENSE.md End User License Agreement (terms of use)
TERMS.md Terms of sale — subscriptions, one-time payment, trial, refunds
PRIVACY.md Privacy policy — no telemetry, no project data leaves your machine
SECURITY.md Security policy — reporting vulnerabilities, supported versions
THIRD_PARTY_NOTICES.md Third-party components and their licenses
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft