Project Explorer
Code Display
When you select a block in the project tree, its source code is displayed in the code editor.
Supported Languages:
- SCL (Structured Control Language)
- STL (Statement List)
- LAD/FBD (rendered inline as networks)
Graphical block view
LAD and FBD blocks open directly in a read-only graphical editor. Networks render directly in AnyAutomation Studio — no external Compare or Visualizer tool is required, and no separate Siemens utility needs to be installed. Each network shows its title, comment and the LAD/FBD layout as it appears in TIA Portal.
The graphical editor is read-only. Text-source blocks (SCL/STL) instead open in the normal code editor, where they can be edited.
You can also open an exported block file as a graphical view without a live TIA Portal connection. Open the block's .xml (from Windows Explorer, the Desktop or the workspace), then choose Reopen Editor With… → TIA Graphical View (or right-click the file and pick Open With → TIA Graphical View). The ladder diagram is rendered straight from the file's contents, so you can review an exported block on any machine — even offline.
Interface and Tag-Table view (Planned)
A tabular interface view — one row per member, with data type, start value, retain and HMI external-access flags, alongside a tag-table view for PLC tag tables — is planned. It is not yet available; for now, block interfaces and tag tables are read or edited through the SCL/STL source in the code editor, or in TIA Portal directly.
HMI tag tables
Double-click an HMI tag table in the project tree (under an HMI device's HMI Tags) to open it in the HMI Tags editor — a table with one row per tag showing its Name, Data Type, Connection, PLC Tag, Acquisition Mode, Acquisition Cycle and Comment. A tag table on a WinCC Unified device is marked with a UNIFIED badge.
To change tags, click Edit and edit any cell. Click Save to TIA to write your changes back to the HMI device, or Discard to drop them. If a tag table cannot be loaded, the editor shows a message with a Show Details link for more information.
Other HMI items (scripts, connections, alarms) cannot be opened in the editor yet.
HMI screens
Double-click a WinCC Unified screen in the project tree (under an HMI device's Screens) to open it in the Screen editor — a canvas showing each screen item as a positioned, colored box with its label. Drag an empty area to pan the canvas, and use the mouse wheel to zoom (or Reset Zoom).
Select an item — on the canvas or in the object list on the left — to edit it in the property panel on the right: its Name, Text, position (Left, Top), size (Width, Height) and Visible flag. Drag an item on the canvas to move it, and press Delete to remove the selected item.
Click Save to TIA to write the screen back — you are asked to confirm first, because saving replaces the entire screen in TIA Portal. Click Pull to reload the screen from TIA (you are asked to confirm if you have unsaved changes). If a screen cannot be loaded or saved, a message with a Show Details link gives more information.
Only WinCC Unified screens can be opened — classic-panel screens are not supported.
Saving and closing
- Ctrl+S saves the file or block currently shown in the editor. For files this writes to disk. For text-source TIA Portal blocks (SCL/STL), Ctrl+S asks for confirmation ("Upload '<block>' to TIA Portal?") before uploading the change back to the project and recompiling the PLC. Graphical and know-how-protected blocks open read-only and cannot be uploaded.
- Closing an editor with unsaved changes shows a confirmation dialog before you lose any edits.
- Disconnecting from TIA Portal closes any editors that were opened from TIA. If those editors have unsaved changes you are prompted to save (upload), discard, or cancel the disconnect.
Opening blocks and drag & drop
To open a block's source in the editor, double-click it in the project tree, or use Quick Open (the tia prefix) to jump to any block by name.
Drag & drop works between the Project Explorer and the Export Folder view in both directions:
- Project → Export Folder (export): drag any node(s) — blocks, folders or a whole PLC — onto the Export Folder to export every exportable block underneath.
- Export Folder → Project (import): drag file or folder rows from the Export Folder onto a PLC (or its Blocks / data-types / tags folder) to import them.
You can also drop external .xml / .scl / .awl / .db files straight onto a PLC node (or its category folders) in the tree to import them.
Block details
Each block's type and number are shown in the project tree (for example OB1, FB10), and its programming language — as reported by TIA Portal (SCL, STL, LAD, FBD, GRAPH, F_LAD, …) — is reflected by the syntax highlighting and the editor's language indicator. A dedicated metadata panel (author, last-modified timestamp) is planned.
Inline Chat (Ctrl+I)
The Inline Chat lets you ask the AI questions or request code changes directly in the code editor — without switching to the AI Chat sidebar.
How to use:
- Open a block in the editor from the Project Explorer (or use an empty editor)
- Optionally select the code you want to modify or ask about
- Press Ctrl+I — a small chat input appears at the top of the editor
- Type your question or instruction (e.g., "add error handling", "what does this section do?")
- Press Enter to send
Handling AI responses:
- The AI streams its response directly in the inline chat widget
- If the AI proposes a code change, Accept/Reject buttons appear:
- Press Tab or click Accept to apply the change
- Press Escape or click Reject to discard it
- Press Escape at any time to close the inline chat
Tip: The inline chat works even without a block loaded — useful for asking general SCL questions.
Project Tree Search
Use the search field above the project tree to quickly find blocks:
- Substring match —
motorfindsFB_Motor,MotorController,drive_motor. - Fuzzy match —
fbmtrfindsFB_Motorby matching the characters in order. - Multiple terms — separate terms with a space. All terms must match.
motor plc1finds only items whose name contains bothmotorandplc1. Order of terms does not matter. - Quoted phrase — wrap a phrase in double quotes to match it verbatim, including spaces:
"my block"matches the literal substringmy block. - Exclusion — prefix a term with
!to exclude matches that contain it:motor !safetyfinds items whose name matchesmotorbut does not containsafety. - Scope filter — use
kind:VALUEto restrict matches to a node kind. Known values:fb,fc,db,ob(include safety variants),udt,tag,plc,block(any block kind),safety(only safety blocks),folder,screen. Example:kind:fb motorlists only function blocks whose name matchesmotor. - Ranking — exact matches rank first, then prefix matches, then matches at word boundaries (
FB_Motorranks aboveCalibrateMotor), then general substring matches, then fuzzy matches. Next / Previous Match jumps through the results in rank order. - Highlighting — matching characters in each visible result are shown in bold accent color so you can see at a glance what the search matched.
- Case-insensitive —
MOTORandmotorbehave identically.
Clearing the search field restores the tree exactly as it was before you started typing, including any nodes you had manually expanded.