PLC
Documentation

Version Latest

PLC reference and troubleshooting

Settings, commands, views, supported vendor tools, controllers and file formats of the PLC module with their verification state, and fixes for common problems.

Settings

All settings are under Neural Inverse PLC in Settings. They do nothing while neuralInverse.plc.enabled is off.

SettingType, defaultScopePurpose
neuralInverse.plc.enabledboolean, falseWindowTurns the PLC environment on for TwinCAT, CODESYS and TIA Portal projects. Set it with Neural Inverse: Enable PLC Environment
neuralInverse.plc.paths.twincatstring, emptyMachineThe TwinCAT 3.1 folder (with Config and Components). Empty looks in C:\TwinCAT\3.1
neuralInverse.plc.paths.codesysstring, emptyMachineCODESYS.exe or its folder. CODESYS is found only through this setting
neuralInverse.plc.paths.tiaPortalstring, emptyMachineA TIA Portal installation folder (with PublicAPI). Empty reads the installed versions from the registry
neuralInverse.plc.codesys.profilestring, emptyMachineThe CODESYS profile for --profile, as shown in Help > About of CODESYS
neuralInverse.plc.engineHost.pathstring, emptyMachineAbsolute path of the engineering host executable
neuralInverse.plc.watch.intervalMsnumber, 500, minimum 100WindowMilliseconds 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.

AreaCommandsPage
EnvironmentNeural Inverse: Enable PLC Environment; Disable PLC Environment; Show PLC ToolchainSet up
ProjectRefresh TwinCAT Projects; Add POU; Add GVL; Add DUT; Add Method; Add Property; Add Action; Rename Object; Move Object to Folder; Remove ObjectObjects
EditorsOpen Declaration as Table; Open Declaration as Text; Open as Diagram; Open Diagram as TextDeclaration table, Diagrams
TwinCAT librariesAdd Library Reference; Remove Library Reference; Pin Library Version; Unpin Library Version; Set Library Namespace; Save PLC Project as Library...Libraries
CODESYS librariesRead 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/OOpen 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 DeclarationTasks and I/O links
CODESYS tasksRead 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 tagsRead 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
CompareCompare TwinCAT Object with HEAD; Compare TwinCAT Object with Source Control Original (Git: Staged)Review changes
BuildBuild Project; Rebuild Project; Cancel BuildBuild
TwinCAT controllerActivate Configuration...; Login and Download...; Start PLC; Stop PLC; Logout; Generate Boot Project...TwinCAT
CODESYS controllerCODESYS 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 LogoutCODESYS
TIA Portal and PLCSIMDownload 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 onlineConnect 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 ValueTargets, Watch, Live values, Write
CODESYS onlineAdd CODESYS Watch...; Write CODESYS Value...Watch, Write
S7-1500Add 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 WatchesTargets, Diagnostics
TraceOpen Trace; Start Trace...; Stop Trace; Export Trace as CSV...Trace

Views, editors and status bar

WhereWhat
PLC container: TwinCAT ProjectsSolutions, projects, objects, libraries, tasks, I/O devices, issues; CODESYS and TIA Portal project rows with Libraries, Task Configuration and PLC Tags groups
PLC container: WatchTwinCAT 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 TestsTcUnit suites and tests; TF1140 test cases, listed only. Run profiles Run on TwinCAT Target and Read Results from Target
Editor tabsDeclaration Table, Diagram, task configuration, I/O links, TIA Portal tag table, Trace
Status barTwinCAT Target; PLC Tools (missing tools); PLC Build ("Building ..."); PLC Controller Action
Output, channel PLCTool discovery, connections, symbol uploads, every write, controller action, library save and S7-1500 session event
Welcome pageWalkthrough Get Started with PLC Engineering
AgentsLanguage model tools neuralInverse_plc_*, see Agent tools

Vendor tools and engines

ToolHow it is drivenState
TwinCAT XAE 3.1.4024, 4026 (Automation Interface)Engineering host: build, rebuild, activate, login with download, start, stop, logout, boot project, save as libraryBuild 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 resultsKit shipped
CODESYS V3.5 SP17 to SP22 (scripting engine)Engineering host: build, rebuild, online actions, values and writes, libraries, task configurationBuild, libraries and tasks kit shipped; online actions, values and writes modelled
TIA Portal V17 to V21 (Openness)Engineering host: build (compile), download, PLC tagsBuild and tags kit shipped; download modelled
PLCSIM Advanced (Runtime API)Engineering host: register, power on, power off, unregister instances; download through PLCSIMModelled
S7-1500 web API (HTTPS JSON-RPC)The module's own client: diagnostic buffer, read-only valuesKit shipped
TcUnitDiscovery from source; results read over ADSKit shipped
TF1140 Test FrameworkDiscovery onlyListed, results not read

None has been run against the real tool or controller.

File formats

FormatReadWrittenState
.sln (Visual Studio solution)YesByte for byte unchangedKit shipped
.tsproj, .xtiYesTask and I/O link editsKit shipped (open, round trip); edits modelled
.plcprojYesObject entries, library referencesKit shipped; pin, unpin and namespace edits modelled
.TcPOU, .TcGVL, .TcDUT, .TcIO, .TcTTOYes, including LD, FBD, SFC and CFC bodiesMinimal edits, GUIDs keptKit shipped; diagrams modelled and kit shipped
.st, .iecstYesThrough the editorModelled
.library, .compiled-libraryNoSaved by XAE through the engineering hostKit shipped
CODESYS .projectThrough CODESYS onlyThrough CODESYS onlyKit shipped or modelled per function
TIA Portal .apNNThrough Openness onlyThrough Openness onlyKit shipped or modelled per function
Trace CSV, S7-1500 diagnostic buffer CSV and JSONNoYesKit 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

SymptomWhat to do
Nothing PLC appearsCheck 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 emptyIt 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 refusedThe 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 refusedThe stored copies disagree, a motion project uses the task, or a file that may hold a copy is missing
A diagram edit is refusedThe 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 barClick it: Show PLC Toolchain lists what is missing and who can grant it, for example membership of "Siemens TIA Openness"
A CODESYS build starts nothingSet neuralInverse.plc.paths.codesys; CODESYS cannot be discovered
A TwinCAT build refuses the projectThe TwinCAT version the .tsproj pins is not installed; it is never opened in another version
The engineering host does not startA 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 refusedLog out of the application, save or discard changes in CODESYS's copy, or read the project again
A TIA Portal tag change is refusedTIA Portal reports unsaved changes, or the table changed since it was read. Read the tags again
A TwinCAT target cannot be reachedAdd 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 sentThe 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 deviceThe 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 dialogTIA Portal asked for consequences the first confirmation did not accept. Read each one before you accept
Live values show nothing for a variableThe 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 certificateThe 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-1500The web server user lacks the rights for that method
TcUnit results cannot be readThe 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.

Last reviewed 17 October 2026View as Markdown

PLC reference and troubleshooting · Docs · Neural Inverse