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:
| Command | What it does |
|---|---|
| Set Task Cycle Time | Typed in microseconds, at most one decimal place. Written to every stored copy in its own unit |
| Set Task Priority | Written to every stored copy |
| Assign Program to Task | The task object calls a PROGRAM of its PLC project |
| Remove Program from Task | The 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 where | Unit |
|---|---|
.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.
TwinCAT I/O links
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
TcLinkToattributes 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.
| Command | Where | What it does |
|---|---|---|
| Change CODESYS Task Setting... | Task row | Changes one setting: priority, interval, interval unit, watchdog on or off, watchdog time, its unit, sensitivity |
| Add CODESYS Program Call to Task... | Task row | Adds a program call at the end of the task |
| Remove CODESYS Program Call from Task... | Task or call row | Removes 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;
TcLinkToon a real project file; links in a PLC.xtiwith independent files: no fixture holds them. - Every CODESYS scripting name and value form against CODESYS.
- Windows; customer projects.