PLC
Documentation

Version Latest

Tasks and I/O links

Edit TwinCAT task cycle times, priorities and program calls in every stored copy, see and change I/O links, and read and change a CODESYS task configuration through CODESYS.

State: TwinCAT tasks and I/O links modelled on the real fixture files, Linux only; a task edit is also in the round-trip kit, links are not in a kit yet. CODESYS task configuration kit shipped, run against an engine stand-in, not against CODESYS.

TwinCAT tasks

Open a task row in TwinCAT Projects (or run Open Task Configuration on it) for the task's configuration editor. It shows the task as its files store it: every attribute of its <Task> element, verbatim; its cycle time in the stored unit and in microseconds and milliseconds; its priority; the copies the PLC instance and the task object (.TcTTO) keep; the programs the task object calls; places that name the task with their own settings (a motion project), shown and not rewritten; and the project's system settings and per-core entries as written.

Commands on a task row, also in the Command Palette:

CommandWhat it does
Set Task Cycle TimeTyped in microseconds, at most one decimal place. Written to every stored copy in its own unit
Set Task PriorityWritten to every stored copy
Assign Program to TaskThe task object calls a PROGRAM of its PLC project
Remove Program from TaskThe task object no longer calls it

The confirmation names each file and each value with its old and new text, and what was not checked. Nothing else in any file changes.

TwinCAT keeps a task's cycle time in several places, each in its own unit. The module established these only from the project files, and checks them on every fixture:

Stored whereUnit
.TcTTO <CycleTime>microseconds
.tsproj <Task CycleTime>100 ns
PLC instance context <CycleTime>ns

A task edit is refused when:

  • the copies disagree under these units, or are in a form not seen;
  • another part of the project, such as a motion project, names the task with its own settings (also the Job Task's priority);
  • a file that may hold a copy is missing, or a PLC instance is kept in its own file;
  • a cycle time is not a whole number of microseconds where the task object stores one, or a priority is negative or fractional.

A priority another task already has is a warning, not a refusal. Watchdog, core assignment and auto-start are not offered: no task in the fixtures stores them. The core base times are shown as written; a new cycle time is not checked against them and the confirmation says so.

Run Open I/O Links on a TwinCAT project, its I/O Devices group or a device (for a device, only the pairs of that device and its boxes). The I/O links editor shows:

  • each pair of owners (I/O devices, PLC instances, motion axes) under the project's mappings, with every link and attribute as written;
  • the links a motion axis keeps inside itself;
  • the PLC process image variables (<task> Inputs, <task> Outputs) with what each is linked to;
  • the TcLinkTo attributes in declarations; Go to TcLinkTo Declaration opens the object file at the attribute;
  • the mapping info entries, verbatim.

A filter narrows the links as you type.

Add I/O Link adds a link (VarA, VarB) to a pair that already has links of that form. Remove I/O Link removes a link that is not the only one of its pair. Adding a link with other attributes (such as Size), to a pair not yet linked, or inside a motion axis is refused.

Both editors come back after a restart.

CODESYS task configuration

Each CODESYS project row has a Task Configuration group, "not read" until Read CODESYS Task Configuration reads it through the engineering host. Then there is a row per application's task configuration (<application> on <device>), per task (kind, interval, priority, watchdog as read) and per program call.

Each task shows its name, kind (cyclic, freewheeling, event, external event, status, parent synchronous), priority, interval and its unit, triggering event, watchdog (on or off, time, unit, sensitivity) and program calls in order with their comments. Values are the text CODESYS gives; a member CODESYS could not read is named in the task's problems.

CommandWhereWhat it does
Change CODESYS Task Setting...Task rowChanges one setting: priority, interval, interval unit, watchdog on or off, watchdog time, its unit, sensitivity
Add CODESYS Program Call to Task...Task rowAdds a program call at the end of the task
Remove CODESYS Program Call from Task...Task or call rowRemoves the one call of a program

The confirmation names the project, the application, the task, the setting with its current and new value (or the call and the calls now), and whether the project file is saved. Choose Change and Save, or Check without Saving to have CODESYS make the change, read it back and discard it.

Refused: an application of the session logged in; CODESYS's copy changed since it was opened; the application, task or call not there or not unique; the setting no longer as you saw it; an interval for a task that is neither cyclic nor external event; a second call of a program the task already calls; a project file written by someone else before the save. A change the read-back does not show exactly is discarded.

Not verified

  • XAE opening, building or activating a project after a task, program or link edit.
  • A task object calling two programs; TcLinkTo on a real project file; links in a PLC .xti with independent files: no fixture holds them.
  • Every CODESYS scripting name and value form against CODESYS.
  • Windows; customer projects.

Last reviewed 17 October 2026View as Markdown

Tasks and I/O links · Docs · Neural Inverse