← All Posts

TwinCAT Alternative: PLC Development Without Beckhoff Lock-In

TwinCAT is powerful. It's also tightly integrated with Beckhoff's own hardware and tools. The engineering environment runs on Windows only, and the real-time runtime is built around Beckhoff's operating-system options and Industrial PCs. That is a good fit if you buy Beckhoff, and a constraint if you don't.

This guide compares TwinCAT alternatives: what each one does well, where each falls short, and when to pick one over the other.

Where TwinCAT Ties You In

TwinCAT 3 (Beckhoff's PLC platform) splits into an engineering part (XAE) and a runtime (XAR). According to Beckhoff's system requirements:

  • Engineering on Windows only: XAE is an extension for Microsoft Visual Studio (2017, 2019, 2022, and 2026 from build 4026) or the TcXaeShell, and it supports Windows 10 and 11 only. There is no macOS or Linux engineering tool.
  • Runtime options: XAR runs on Windows 10/11, on TwinCAT/BSD (Beckhoff's FreeBSD-based operating system for its Industrial PCs) and, from build 4026, on Beckhoff RT Linux. So the runtime is not Windows-only, but you choose among Beckhoff-supported operating systems.
  • Virtual machines: the real-time runtime cannot start inside Hyper-V or other VMs where Hyper-V is used. From build 4026.21 a non-real-time "XarMode" exists for such systems.
  • Hardware: TwinCAT runs on Beckhoff Industrial PCs and on third-party PCs, but Beckhoff does not guarantee real-time behaviour on third-party hardware, and the I/O ecosystem is centred on Beckhoff EtherCAT terminals.
  • Licensing: runtime features are licensed per licence item (for example TC1200 for the PLC). Ask Beckhoff or a distributor for a quote for your configuration, because the cost depends on the platform level and the options you pick.
  • ADS: ADS is Beckhoff's own communication protocol. Talking to non-Beckhoff systems usually means another protocol such as OPC UA or Modbus.

TwinCAT PLC++ and CoAgent: What's Changing

In March 2025 Beckhoff announced two related developments:

  • TwinCAT PLC++: Beckhoff says the same control code runs up to 1.5 times faster in the PLC++ runtime than in the previous TwinCAT PLC, and that the new compiler brings the overall gain to up to 3 times.
  • TwinCAT CoAgent: an AI chatbot assistant embedded in TwinCAT for code suggestions, optimisation and documentation, with generated content reviewed by the user before it is added to a project.

These improve TwinCAT for existing Beckhoff users. They don't change the engineering-on-Windows requirement or the Beckhoff-centred hardware ecosystem.

TwinCAT Alternatives Compared

Factor
TwinCAT 3
CODESYS
macOS native
No
No (we found no macOS installer)
Engineering OS
Windows 10/11
Windows (free Development System)
Runtime OS
Windows, TwinCAT/BSD, Beckhoff RT Linux (4026+)
Windows, Linux x86 and ARM, Raspberry Pi (separate store products)
Languages
IEC 61131-3 plus C/C++ modules
All 5 languages + CFC
Hardware targets
Beckhoff IPCs; third-party PCs without real-time guarantee
Many vendors' CODESYS-based controllers, PCs, Raspberry Pi
Price
Licence items per feature, quoted by Beckhoff
Free IDE (EUR 0 in the store); runtime licences per device
Git-friendly
Project stored as XML files, built for source control
Native project file; XML export available

When Each Tool Makes Sense

Stick with TwinCAT when:

  • You're invested in Beckhoff Industrial PCs and EtherCAT I/O terminals
  • You need tight real-time cycle times on supported Beckhoff hardware (Beckhoff gives no real-time guarantee on third-party PCs)
  • Your project uses Beckhoff-specific libraries (Tc2_MC2 for motion control, Tc2_DMX for lighting, etc.)
  • You need C++ integration with PLC logic (TwinCAT's C++ module support)
  • You're using CoAgent and want AI code generation within the Beckhoff ecosystem

Choose CODESYS when:

  • You need all 5 IEC 61131-3 languages (LD, FBD, SFC, IL in addition to ST)
  • You're targeting hardware from CODESYS-compatible vendors (Wago, IFM, Festo, for example)
  • You want a choice of controller vendors, or Linux and Raspberry Pi runtimes (sold as separate store products with their own licence terms)
  • You can run the Development System on Windows

Other Alternatives Worth Mentioning

B&R Automation Studio Code

B&R's VS Code-based editor for Structured Text and C/C++ projects, with Git integration and an AI assistant (AS Copilot, which needs a Copilot account). B&R released it as an open beta with Automation Studio 6.3 in mid-2025 and listed gaps such as incomplete Structured Text language support in the editor. It works with B&R's own Automation Runtime and hardware, so it is a better editor but not a way out of vendor lock-in.

OpenPLC

Open-source PLC editor and runtime from Autonomy Logic. The Editor (GPL-3.0) runs on Windows, macOS and Linux with ladder, ST, FBD and IL, plus a built-in simulator. The headless Runtime v4 (MIT licence) runs on Linux or in Docker and is controlled from the Editor, and Autonomy sells a commercial edition for production use. It suits education, prototyping and small machines. Check its documentation for the protocols and scan-time behaviour you need before choosing it for production.

IronPLC

Open-source IEC 61131-3 toolchain with a compiler, a runtime, a VS Code extension and a browser playground. Its documentation says it supports most of edition 2 and parts of edition 3, does not yet provide I/O mapping, and has early debugging. Useful for checking and running ST, not a replacement for a controller runtime.

Migrating from TwinCAT: What Transfers

If you're moving from TwinCAT ST to another IEC 61131-3 platform such as CODESYS, here's what to expect:

  • Portable: Standard ST syntax (IF/THEN/ELSE, CASE, FOR/WHILE/REPEAT), timer blocks (TON, TOF, TP), counter blocks (CTU, CTD, CTUD), edge detection (R_TRIG, F_TRIG), standard math and comparison functions
  • Needs adaptation: Beckhoff-specific function blocks (Tc2_* libraries), ADS protocol calls, EtherCAT I/O mapping, TwinCAT-specific pragmas and attributes
  • Does not transfer: TwinCAT C++ modules, C# ADS scripts, Beckhoff safety logic (TwinSAFE)

For pure IEC 61131-3 ST programs without Beckhoff dependencies, migration is straightforward. Your logic is portable. The Beckhoff-specific parts are the lock-in.

Reading TwinCAT Data Over OPC UA

If your TwinCAT project exposes an OPC UA server, OPC UA Explorer browses its namespace, reads and writes node values, and sets up subscriptions from a Mac, so you can inspect the data without touching the PLC project.

Explore OPC UA Explorer →