---
title: "Open TwinCAT projects"
---

# Open TwinCAT projects

Open a TwinCAT 3 solution as it is in the TwinCAT Projects view, see its PLC projects, objects, libraries, tasks and I/O, and how CODESYS and TIA Portal projects appear in the same view.

**State:** TwinCAT kit shipped. Tested on 88 real TwinCAT files and 10 Visual Studio solutions from public repositories (Linux only); the round-trip kit, in which a lab opens in XAE what the Editor read, waits for its report. CODESYS and TIA Portal projects are not opened as files: they are detected by name, and what they hold is read through the vendor engine for each function.

## Open a TwinCAT project

Open a folder that holds a TwinCAT 3 project. The **TwinCAT Projects** view (side bar container **PLC**) shows:

- the Visual Studio solution (`.sln`) as the parent of its TwinCAT project;
- the TwinCAT project (`.tsproj`, also in the split layout where the PLC project reference sits in an `.xti`);
- each PLC project (`.plcproj`) with its folders and objects: POU, GVL, DUT, interface, task object, global text list;
- a **Libraries** group with every library reference and its resolution (see [Libraries](https://neuralinverse.com/docs/modules/plc/libraries/));
- the real-time tasks with cycle time and priority (see [Tasks and I/O links](https://neuralinverse.com/docs/modules/plc/tasks-and-io/));
- an **I/O Devices** group with the devices, their boxes and AMS Net ID;
- under **Issues**, files the project lists and the folder lacks ("not found; referenced from ...").

Selecting an object opens its file. TwinCAT object files (`.TcPOU`, `.TcGVL`, `.TcDUT`, `.TcIO`) open in the text editor as XML, with an outline and the Structured Text checks (see [Structured Text](https://neuralinverse.com/docs/modules/plc/structured-text/)).

**Refresh TwinCAT Projects** (Command Palette, or the view's title button) reads again.

## What opening does and does not do

- **Opening never writes a file.** Each of the 88 test files is byte-identical after opening and saving without a change, across TwinCAT 4022.14 to 4026.25, CRLF and LF line endings, with and without byte order marks.
- The view searches up to three folders deep, skipping build output and dependencies. When it finds nothing, it says what it searched, including PLC projects no TwinCAT project reads and projects of other vendors.
- A partial project is still read: a missing file is listed under Issues and the rest is shown. When one file is invalid, the other projects keep loading.
- A symbolic link and a project path that leaves the workspace folder are refused.
- Project and compile settings and library resolutions are read from the files as stored.

## CODESYS and TIA Portal projects in the view

A CODESYS project file (`name.project`) and a TIA Portal project file (`.apNN`) are each a row of the same view. They are binary files, so the Editor reads nothing from them itself; their groups stay "not read" until you ask the engineering host to read them through the vendor engine:

| Project | Group | Read with |
|---|---|---|
| CODESYS `.project` | Libraries | **Read CODESYS Library References** ([Libraries](https://neuralinverse.com/docs/modules/plc/libraries/)) |
| CODESYS `.project` | Task Configuration | **Read CODESYS Task Configuration** ([Tasks and I/O links](https://neuralinverse.com/docs/modules/plc/tasks-and-io/)) |
| TIA Portal `.apNN` | PLC Tags | Expanding the group, or **Read TIA Portal PLC Tags** ([TIA Portal PLC tags](https://neuralinverse.com/docs/modules/plc/tia-portal-tags/)) |

Nothing starts CODESYS or TIA Portal until you ask. CODESYS File-Based Storage and archives, TIA Portal archives (`.zapNN`) and SIMATIC SD projects are not read.

## Not verified

- XAE opening any of these files after the Editor read them.
- Transitions, standalone I/O `.xti` files, files from TwinCAT 4026.0 to 4026.3 or 4018 and older: no licensed example was available.
- Customer projects of realistic size; Windows.
