Settings
All settings are under Neural Inverse PLC in Settings. They do nothing while neuralInverse.plc.enabled is off.
| Setting | Type, default | Scope | Purpose |
|---|---|---|---|
neuralInverse.plc.enabled | boolean, false | Window | Turns the PLC environment on for TwinCAT, CODESYS and TIA Portal projects. Set it with Neural Inverse: Enable PLC Environment |
neuralInverse.plc.paths.twincat | string, empty | Machine | The TwinCAT 3.1 folder (with Config and Components). Empty looks in C:\TwinCAT\3.1 |
neuralInverse.plc.paths.codesys | string, empty | Machine | CODESYS.exe or its folder. CODESYS is found only through this setting |
neuralInverse.plc.paths.tiaPortal | string, empty | Machine | A TIA Portal installation folder (with PublicAPI). Empty reads the installed versions from the registry |
neuralInverse.plc.codesys.profile | string, empty | Machine | The CODESYS profile for --profile, as shown in Help > About of CODESYS |
neuralInverse.plc.engineHost.path | string, empty | Machine | Absolute path of the engineering host executable |
neuralInverse.plc.watch.intervalMs | number, 500, minimum 100 | Window | Milliseconds between reads of watched values while a Watch view is visible. Reads never overlap. CODESYS reads at least every 1000 ms |
Machine-scoped settings cannot be set by a workspace for the engineering host, so a project cannot change which program the Editor starts. See Vendor tools and the engineering host.
Commands
All under Neural Inverse PLC in the Command Palette, except the enable command. No key runs a controller action.
| Area | Commands | Page |
|---|---|---|
| Environment | Neural Inverse: Enable PLC Environment; Disable PLC Environment; Show PLC Toolchain | Set up |
| Project | Refresh TwinCAT Projects; Add POU; Add GVL; Add DUT; Add Method; Add Property; Add Action; Rename Object; Move Object to Folder; Remove Object | Objects |
| Editors | Open Declaration as Table; Open Declaration as Text; Open as Diagram; Open Diagram as Text | Declaration table, Diagrams |
| TwinCAT libraries | Add Library Reference; Remove Library Reference; Pin Library Version; Unpin Library Version; Set Library Namespace; Save PLC Project as Library... | Libraries |
| CODESYS libraries | Read CODESYS Library References; Add CODESYS Library Reference...; Add CODESYS Library Placeholder...; Remove CODESYS Library Reference...; Pin CODESYS Library Placeholder...; Unpin CODESYS Library Placeholder... | Libraries |
| TwinCAT tasks and I/O | Open Task Configuration; Set Task Cycle Time; Set Task Priority; Assign Program to Task; Remove Program from Task; Open I/O Links; Add I/O Link; Remove I/O Link; Go to TcLinkTo Declaration | Tasks and I/O links |
| CODESYS tasks | Read CODESYS Task Configuration; Change CODESYS Task Setting...; Add CODESYS Program Call to Task...; Remove CODESYS Program Call from Task... | Tasks and I/O links |
| TIA Portal tags | Read TIA Portal PLC Tags; Open TIA Portal Tag Table; Add TIA Portal PLC Tag...; Remove TIA Portal PLC Tag...; Rename TIA Portal PLC Tag...; Change Data Type of TIA Portal PLC Tag...; Change Address of TIA Portal PLC Tag...; Change Comment of TIA Portal PLC Tag...; Go to TIA Portal PLC Tag; Go to TIA Portal PLC Tag... | TIA Portal PLC tags |
| Compare | Compare TwinCAT Object with HEAD; Compare TwinCAT Object with Source Control Original (Git: Staged) | Review changes |
| Build | Build Project; Rebuild Project; Cancel Build | Build |
| TwinCAT controller | Activate Configuration...; Login and Download...; Start PLC; Stop PLC; Logout; Generate Boot Project... | TwinCAT |
| CODESYS controller | CODESYS Login and Download...; CODESYS Login without Download...; CODESYS Online Change...; Start CODESYS Application; Stop CODESYS Application; CODESYS Reset Warm...; CODESYS Reset Cold...; CODESYS Reset Origin...; CODESYS Logout | CODESYS |
| TIA Portal and PLCSIM | Download to S7-1500...; Download to PLCSIM Advanced...; Register PLCSIM Advanced Instance...; Power On PLCSIM Advanced Instance...; Power Off PLCSIM Advanced Instance...; Unregister PLCSIM Advanced Instance... | TIA Portal download |
| TwinCAT online | Connect to TwinCAT Target (with Add TwinCAT Target... in its list); Disconnect from TwinCAT Target; Show TwinCAT Target Symbols; Add Watch; Remove Watch; Clear Watches; Write Value; Show Live Values; Choose PLC Project for Live Values; Announce Live Value | Targets, Watch, Live values, Write |
| CODESYS online | Add CODESYS Watch...; Write CODESYS Value... | Watch, Write |
| S7-1500 | Add S7-1500 Target; Connect to S7-1500 Target; Disconnect from S7-1500 Target; Set S7-1500 Web Server User; Forget S7-1500 Pinned Certificate; Remove S7-1500 Target; Refresh S7-1500 Diagnostic Buffer; Export S7-1500 Diagnostic Buffer; Add S7-1500 Watch; Remove S7-1500 Watch; Clear S7-1500 Watches | Targets, Diagnostics |
| Trace | Open Trace; Start Trace...; Stop Trace; Export Trace as CSV... | Trace |
Views, editors and status bar
| Where | What |
|---|---|
| PLC container: TwinCAT Projects | Solutions, projects, objects, libraries, tasks, I/O devices, issues; CODESYS and TIA Portal project rows with Libraries, Task Configuration and PLC Tags groups |
| PLC container: Watch | TwinCAT watches and CODESYS expressions |
| PLC container: S7-1500 Diagnostics, S7-1500 Watch (Web API) | Read-only S7-1500 diagnostic buffer and values |
| Testing view: PLC Tests | TcUnit suites and tests; TF1140 test cases, listed only. Run profiles Run on TwinCAT Target and Read Results from Target |
| Editor tabs | Declaration Table, Diagram, task configuration, I/O links, TIA Portal tag table, Trace |
| Status bar | TwinCAT Target; PLC Tools (missing tools); PLC Build ("Building ..."); PLC Controller Action |
| Output, channel PLC | Tool discovery, connections, symbol uploads, every write, controller action, library save and S7-1500 session event |
| Welcome page | Walkthrough Get Started with PLC Engineering |
| Agents | Language model tools neuralInverse_plc_*, see Agent tools |
Vendor tools and engines
| Tool | How it is driven | State |
|---|---|---|
| TwinCAT XAE 3.1.4024, 4026 (Automation Interface) | Engineering host: build, rebuild, activate, login with download, start, stop, logout, boot project, save as library | Build and save as library kit shipped; controller actions modelled |
| TwinCAT runtime (ADS over TCP 48898) | The module's own ADS client: read-only connection, symbols, watch, live values, writes, trace, TcUnit results | Kit shipped |
| CODESYS V3.5 SP17 to SP22 (scripting engine) | Engineering host: build, rebuild, online actions, values and writes, libraries, task configuration | Build, libraries and tasks kit shipped; online actions, values and writes modelled |
| TIA Portal V17 to V21 (Openness) | Engineering host: build (compile), download, PLC tags | Build and tags kit shipped; download modelled |
| PLCSIM Advanced (Runtime API) | Engineering host: register, power on, power off, unregister instances; download through PLCSIM | Modelled |
| S7-1500 web API (HTTPS JSON-RPC) | The module's own client: diagnostic buffer, read-only values | Kit shipped |
| TcUnit | Discovery from source; results read over ADS | Kit shipped |
| TF1140 Test Framework | Discovery only | Listed, results not read |
None has been run against the real tool or controller.
File formats
| Format | Read | Written | State |
|---|---|---|---|
.sln (Visual Studio solution) | Yes | Byte for byte unchanged | Kit shipped |
.tsproj, .xti | Yes | Task and I/O link edits | Kit shipped (open, round trip); edits modelled |
.plcproj | Yes | Object entries, library references | Kit shipped; pin, unpin and namespace edits modelled |
.TcPOU, .TcGVL, .TcDUT, .TcIO, .TcTTO | Yes, including LD, FBD, SFC and CFC bodies | Minimal edits, GUIDs kept | Kit shipped; diagrams modelled and kit shipped |
.st, .iecst | Yes | Through the editor | Modelled |
.library, .compiled-library | No | Saved by XAE through the engineering host | Kit shipped |
CODESYS .project | Through CODESYS only | Through CODESYS only | Kit shipped or modelled per function |
TIA Portal .apNN | Through Openness only | Through Openness only | Kit shipped or modelled per function |
| Trace CSV, S7-1500 diagnostic buffer CSV and JSON | No | Yes | Kit shipped with their functions |
The test fixtures are 88 real TwinCAT files written by TwinCAT 4022.14 to 4026.25 from Beckhoff samples and TcUnit, plus nine files with graphical bodies written by 3.1.4019 to 4026.
Troubleshooting
| Symptom | What to do |
|---|---|
| Nothing PLC appears | Check the workspace is trusted and neuralInverse.plc.enabled is on. In an untrusted workspace a notification says why nothing runs |
| The TwinCAT Projects view is empty | It searches three folders deep and says what it searched. Open the folder that holds the .sln or .tsproj |
| A file shows under Issues as "not found" | The project lists a file the folder lacks. The rest of the project is still read |
| An edit is refused | The file changed on disk since it was read, a name is taken (also in another case), or a symbolic link is involved. Refresh and try again |
| A task edit is refused | The stored copies disagree, a motion project uses the task, or a file that may hold a copy is missing |
| A diagram edit is refused | The status line says why: the element is in a form the module does not edit, or the text changed meanwhile |
| PLC Tools appears in the status bar | Click it: Show PLC Toolchain lists what is missing and who can grant it, for example membership of "Siemens TIA Openness" |
| A CODESYS build starts nothing | Set neuralInverse.plc.paths.codesys; CODESYS cannot be discovered |
| A TwinCAT build refuses the project | The TwinCAT version the .tsproj pins is not installed; it is never opened in another version |
| The engineering host does not start | A path setting holds a value the host refuses (not absolute, quotes, control characters, over 1024 characters); the PLC log names the setting |
| A CODESYS library or task change is refused | Log out of the application, save or discard changes in CODESYS's copy, or read the project again |
| A TIA Portal tag change is refused | TIA Portal reports unsaved changes, or the table changed since it was read. Read the tags again |
| A TwinCAT target cannot be reached | Add a route on the PLC for this machine's AMS Net ID and use ADS on TCP 48898. A target that opens only secure ADS on 8016 cannot be reached |
| Login, Start, Stop or Logout is refused with nothing sent | The PLC project names no AMS port, or not the target's port. Add a target with that port |
| A controller action says "not known whether the controller changed" | The request may have been applied. Check the controller in the vendor tool before you try again |
| A CODESYS action is refused for a device | The device has no address: set it in CODESYS, Communication Settings |
| CODESYS watch rows say "Not trustworthy" | The controller does not run the project's application. Log in and download first |
| A TIA Portal download stops with a second dialog | TIA Portal asked for consequences the first confirmation did not accept. Read each one before you accept |
| Live values show nothing for a variable | The symbol path does not follow exactly from the source and the uploaded table (function or method variables, VAR_TEMP, an index, several instances of a block). This is by design |
| Watch values say "change detection unavailable" | The device does not report its symbol version; an online change or download will not be detected on this connection |
| An S7-1500 request fails with another certificate | The web server presents a certificate other than the pinned one. Check why before using Forget S7-1500 Pinned Certificate |
| A second "permission denied" from the S7-1500 | The web server user lacks the rights for that method |
| TcUnit results cannot be read | The program has no TcUnit runner the symbol table shows, or TcUnit has not finished; Read Results from Target says which |
To take part in verification on your own bench, ask your Neural Inverse contact for the verification kits.