Step7 Import/Export — VS Code ExtensionBidirectional bridge between VS Code and Siemens SIMATIC Manager (Step7 V5.x) — open Key FeaturesImport from Step7 Project
Smart Capabilities
Requirements
Installation
The extension checks the required Step7 bridge components on activation. If the local .NET runtime is missing, it offers an installation command automatically. UsageOpening a Step7 Project
Importing Blocks
Exporting Back to Step7
Exported Directory Structure
Workspace Templates (
|
| File / Folder | Purpose |
|---|---|
.github/copilot-instructions.md |
Instructions for GitHub Copilot with full AWL/STL syntax guide, block structure rules, and project documentation |
.github/ProjectDescription.md |
Living document describing project architecture, populated automatically by Copilot |
Templates are created only if they do not already exist, so your existing workspace files are preserved.
Extension Settings
| Setting | Description | Default |
|---|---|---|
step7Import.exportFolderName |
Folder name for Step7 exports | 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 DB/UDT |
true |
step7Import.showDeleted |
Show deleted blocks | false |
step7Import.exportKnowHowProtected |
Generate source for know-how protected blocks | false |
step7Import.generateSourceFormat |
Export format:awl or awl+json |
awl+json |
step7Import.mnemonicLanguage |
Mnemonic language:de (German AWL) or en (English STL) |
en |
step7Import.symbolListFormat |
Symbol table format:json, xlsx, or csv |
json |
step7Import.comBatchSize |
Blocks per COM API batch during source generation (1–100) | 10 |
Commands
| Command | Description |
|---|---|
Step7: Open Project |
Open a .s7p project file |
Step7: Close Project |
Close the current project |
Step7: Import All |
Import all blocks for a program |
Step7: Import All Programs |
Import all programs in the project |
Step7: Import Block |
Import a single block |
Step7: Import Selected Blocks |
Import multiple selected blocks (Ctrl+Click in tree) |
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/variable tables |
Step7: Import Hardware Configuration |
Import HW config for all stations or a single station |
Step7: Generate AWL Source |
Generate AWL source for a single block via COM API |
Step7: Generate All AWL Sources |
Generate AWL sources for all blocks via COM API |
Step7: Refresh Project |
Refresh the project tree |
Step7: Show Logs |
Open the extension output channel |
Step7: Open Settings |
Open extension settings page |
Step7: Toggle Export Format |
Switch between AWL and AWL+JSON |
Step7: Toggle Mnemonic Language |
Switch between German (AWL) and English (STL) |
Step7: Toggle Symbolic Names |
Toggle symbolic name resolution |
Step7: Toggle System Blocks |
Toggle system block visibility |
Step7: Toggle Structure JSON |
Toggle .struct.json generation |
Step7: Toggle Show Deleted |
Toggle deleted block visibility |
Step7: Toggle Know-How Protected |
Toggle know-how protected block export |
Step7: Prepare Workspace |
Scaffold workspace (.github/, template files) |
Step7: Show Modified Blocks |
Show changed blocks before export |
Step7: Export to Step7 |
Export selected workspace content back to Step7 |
Step7: Export via SIMATIC Manager |
Export selected workspace content via SIMATIC Manager |
Architecture
┌──────────────────────────────────────────────────────────────┐
│ VS Code Extension │
│ │
│ ┌────────────┐ ┌──────────────┐ ┌───────────────────────┐│
│ │ Commands │ │ Providers │ │ Utilities ││
│ │ (import/ │ │ (tree view, │ │ (logger, config, ││
│ │ export) │ │ connection) │ │ statusBar, workspace)││
│ └──────┬─────┘ └──────┬───────┘ └───────────────────────┘│
│ │ │ │
│ ┌──────▼───────────────▼───────────────────────────────────┐│
│ │ Services Layer ││
│ │ step7Bridge · step7Project · blockExporter ││
│ │ hwConfigService · hwConfigExporter ││
│ └──────────────────────┬───────────────────────────────────┘│
│ │ stdin/stdout JSON-RPC │
└─────────────────────────┼────────────────────────────────────┘
│
┌─────────────────────────▼────────────────────────────────────┐
│ Step7Bridge (.NET 10.0) │
│ │
│ Program.cs ─► Handlers/ │
│ ├── ProjectHandler.cs (libnodave) │
│ ├── HardwareHandler.cs (HW config) │
│ └── Step7ApiExporter.cs (COM API) │
│ │
│ libnodave: direct S7 file access │
│ Step7 COM API: SIMATIC Manager automation │
└──────────────────────────────────────────────────────────────┘
The extension spawns Step7Bridge.exe as a child process, communicating via JSON-RPC over stdin/stdout. The bridge reads Step7 project files using libnodave for fast block extraction and optionally uses the Step7 COM API (SIMATIC Manager automation interface) for full AWL source generation.
Support and Feedback
- Source repository: cmariusz/Step7.ExtVScode
- 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.
Siemens Disclaimer
This extension is an independent project and is not affiliated with, endorsed by, or sponsored by Siemens.
All Siemens product names, trademarks, and registered trademarks are the property of their respective owners and are used only to describe interoperability.
Disclaimer of Liability
The extension is a development and automation tool, and all imports/exports modify engineering data at your own risk.
The author is not liable for any direct or indirect damages, production downtime, data loss, project corruption, safety incidents, or other consequences resulting from changes made to Step7 / SIMATIC Manager projects using this extension.
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.
Community — Share Your Scripts & Ideas
This extension scaffolds a workspace-ready .github/copilot-instructions.md file that teaches 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:
- Fork the Step7.ExtVScode repository on GitHub
- Propose improvements to the export structure, documentation templates, or
.github/copilot-instructions.md - Include a short usage note or example when contributing automation helpers or workspace templates
- 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
MIT — Copyright (c) 2026 Mariusz Czyrnek
See THIRD_PARTY_NOTICES.md for bundled dependency notices relevant to redistribution.