Automation engineering guide · Software lifecycle and validation

TwinCAT Version Control, Automated Builds, TcUnit and Release Evidence

How to make TwinCAT changes reviewable and repeatable with source control, clean builds, static checks, TcUnit tests, release packages and commissioning evidence.

A PLC download can change the behaviour of a complete machine. The engineering lifecycle should therefore make it possible to answer four questions: what changed, who approved it, how it was tested and exactly what was deployed.

TwinCAT projects can be managed with the same disciplined principles used in modern software development, provided generated artefacts, library dependencies, target versions and online deployment are handled deliberately.

Define the controlled source set

Store the TwinCAT solution and PLC source required to recreate the project, including POUs, DUTs, GVLs, task configuration, I/O and motion configuration, library references and build instructions. Decide which generated files are authoritative and which can be recreated. Avoid committing machine-specific caches and transient user state.

Tag releases and record TwinCAT XAE/build versions, target runtime, library versions and third-party dependencies. A source archive without its dependency context is not a recoverable machine backup.

Review changes as engineering changes

Use small, purpose-led commits and a review that considers behaviour, safety interfaces, I/O effects, state recovery, diagnostics and compatibility—not only syntax. Link the change to a requirement, defect or approved work item. Where XML project files change mechanically, isolate those changes from the PLC behaviour change where practical.

Automate repeatable checks

A build pipeline can restore the approved environment, compile the solution, fail on selected warnings, run PLC unit tests and retain logs and artefacts. TwinCAT Automation Interface can support controlled project operations; TcUnit can exercise deterministic function blocks and state logic without waiting for a complete machine.

Unit tests are best for calculations, conversions, command/state behaviour, alarm delays, sequence transitions and error handling. Hardware integration, motion, timing and operator interaction still require simulation, bench or machine-level tests.

Construct a release package

  • Release identifier and approved source revision
  • Build environment and dependency manifest
  • Compiled result and build/test logs
  • Change summary, affected modules and rollback considerations
  • Backup of the currently deployed version
  • Download, activation and restart instructions
  • Post-deployment checks and acceptance record

Protect production deployment

Separate the authority to prepare a change from the authority to deploy it where the project risk requires that control. Confirm the equipment state, backups, communications, online-change implications and recovery route before connecting. After deployment, record runtime/project identity and execute the agreed smoke and acceptance tests.

Lifecycle principle: a successful compile is evidence that the software is syntactically buildable; it is not evidence that the machine behaviour is correct.

Primary technical references

References are provided for software architecture and implementation planning. Validate the versions, licences, support matrix and regulated-use requirements applicable to the final deployment.

From technical concept to production system

Apply this technology through an Axiotech engineering work package

Axiotech can connect the compute, AI or analytics platform to the machine controls, data contracts, validation evidence and lifecycle-support model required for industrial use.

Engineering support

Apply this guidance to your machine or control system

Axiotech can assess an existing TwinCAT project, define the software and controls architecture, implement a bounded work package, or support commissioning and lifecycle recovery.