Built by PLC engineers.
For PLC engineers.
CodeShuttle brings the tools of modern software development into your TIA Portal – with respect for everything that matters in automation: safety, traceability and full control over every change.
Two sides. One truth. Your decision.
CodeShuttle keeps your TIA project and a folder of text files in sync in both directions. Every run has three steps: scan, preview, apply – and you always decide before anything is applied.
- Direction proposal per object: TIA → folder, folder → TIA or skip
- Bulk actions per device: "all TIA→folder", "all folder→TIA", "skip all"
- Unchanged objects hidden – you only see what really matters
- Device selection: only the controllers and panels you need right now
Conflicts stop everything
If an object changed in TIA and in the folder, nothing is applied – nothing else either – until you have decided every conflict. There is deliberately no "always prefer TIA" rule.
Deletes only when you say so
A proposed delete always arrives skipped. It is only carried out once you explicitly choose the delete direction.
No noise after compiling
Compiling only changes timestamps in TIA. CodeShuttle checks the actual content and reports only real changes – no phantom differences.
Compile before sync
Optionally, TIA compiles each device before comparing. Inconsistent objects are detected, locked and never deleted by accident.
Block numbers are kept
A header line such as // CodeShuttle-Block: FB 12 carries the number through export and back into TIA – for SCL and STL too.
Saving stays your call
CodeShuttle changes the open TIA session but never saves the project itself. You keep the final say.
What CodeShuttle synchronises.
Every category can be switched on and off individually. Where Openness sets limits, we tell you openly – locked rows stay visible and state their reason.
| Area | Objects | TIA → folder | Folder → TIA |
|---|---|---|---|
| PLC blocks | OB, FB, FC and DB in SCL, STL, LAD, FBD and GRAPH – as .scl, .awl, .db or SimaticML |
✓ | ✓ |
| Types & tables | PLC data types (UDT), tag tables, watch and force tables | ✓ | ✓ |
| F-blocks | User-written F-FB, F-FC and F-DB in F-LAD, F-FBD and F-STL (TIA Portal V21 with STEP 7 Safety) | ✓ (V21) | ✓ as a deliberately chosen F-change |
| HMI (WinCC classic) | Screens, pop-ups, slide-ins, templates, global screen elements, screen overview, HMI tag tables, text and graphic lists, VB scripts, connections | ✓ | ✓ updates existing objects |
| WinCC Unified | Scripts, text, system text and graphic lists, tag tables | ✓ | ✓ scripts & lists (graphic lists from V21); tag tables are not allowed by Openness |
| Device details | DeviceDetails.xml per device: IP addresses, order number, firmware, PROFINET data and module identification |
✓ | — documentation only |
Not synchronised: know-how-protected blocks, system blocks generated by TIA for the safety program, F-blocks from libraries, and drives (SINAMICS). On import into TIA, HMI updates existing objects rather than creating new ones.
See what changed – before it is applied.
- Side by side or inline, both columns scroll together
- Changes only with adjustable context lines (default: 3, like Git)
- Timestamp per side – you see which side changed when
- Resolve a conflict with one click: "take TIA" or "take folder"
- External tools: WinMerge, Beyond Compare, KDiff3 and VS Code are detected automatically; path and arguments are configurable
- Device details as a field table instead of raw XML – a changed IP or firmware at a glance
F-blocks – with the respect safety engineering deserves.
From TIA Portal V21 with STEP 7 Safety, CodeShuttle also versions your safety program. Every change to it is a deliberate decision – and it is documented.
Never preselected
An F-change – import into TIA or delete in TIA – is never selected by CodeShuttle, not even by a bulk button. You review it in the diff view and select it on its row.
Collective signature before & after
After every run involving F-blocks, CodeShuttle shows the collective F-signature of each fail-safe CPU before and after the run. If it changes, it points out that a new acceptance may be required.
Import is verified
After every F-import, CodeShuttle checks that the block exists in TIA and is still in an F-language – otherwise the step counts as failed. CodeShuttle never asks for a password.
Several TIA versions. One tool.
- Automatic detection of every running TIA Portal instance – even without a visible window
- Switch instances with one click without restarting; optionally with process ID
- Sync folder remembered per project – everything is back the next time you connect
- Eight languages (German, English, Spanish, French, Italian, Dutch, Polish, Turkish) and light or dark theme
- Log console filtered by info, warning and error
- Updates from within the app – current with one click, important updates are clearly recommended
Lean, secure and IT-friendly.
Architecture & security
- Official interface: TIA Portal Openness – no changes to your TIA installation
- No Siemens libraries bundled: CodeShuttle uses the Openness libraries of your installed TIA version
- Isolated background process: an error on the Siemens side never takes down the user interface
- Your project data stays with you: only the Git destination you choose receives your code
- Credentials encrypted under your Windows account, never in the log
- Centrally manageable: update check can be disabled by group policy
System requirements
| Operating system | Windows 10 / 11, .NET Framework 4.8 |
| TIA Portal | V14 SP1, V15, V15.1, V16, V17, V18, V19, V20, V21 |
| Openness | Account in the "Siemens TIA Openness" group, CodeShuttle allowed in TIA |
| Safety | For F-blocks: TIA Portal V21 with STEP 7 Safety |
| Installation | Per user, no administrator rights |
| Git | Built in – no separate installation needed |
| Network | Only for licence activation, updates and your team repository – after that CodeShuttle also runs offline |