finds.dev← search

// the find

TcOpenGroup/TcOpen

★ 342 · C# · MIT · updated Feb 2025

Application framework for industrial automation built on top of TwinCAT3 and .NET.

TcOpen is an application framework for Beckhoff TwinCAT 3 that brings OOP patterns and IT integration to PLC programming. It provides sequencing, messaging, CRUD-from-PLC, and component abstractions on top of IEC 61131-3 structured text. The target audience is automation engineers who want to stop writing the same state machine boilerplate for every machine and start treating PLC code more like real software.

The sequencer pattern (TcoSequencer) is the right abstraction for step-based machine logic — it replaces the ad-hoc CASE statement soup that haunts most TwinCAT projects. The data framework letting a PLC do MongoDB/JSON CRUD directly is genuinely useful for traceability and recipe management without writing a separate middleware layer. Having both WPF and Blazor HMI examples (TcOpen.Hammer) means you can see the full vertical slice in a real application, not just library docs. The Serilog MQTT sink for PLC events is a practical bridge to modern observability tooling that most industrial projects never get.

The build setup is a significant barrier: it requires VS 2019 specifically, TwinCAT XAE, .NET Framework 4.8, a custom PowerShell build script, and a hardware AMS ID to even compile — there is no way to evaluate this without a Beckhoff license and physical (or virtual) target. Last push was February 2025 and activity looks sparse; for a framework you're betting a machine program on, that's a real concern. The data framework requires Inxton/Vortex, a separate commercial-adjacent dependency with its own license terms, which isn't obvious from the top-level README. Documentation is auto-generated from twin objects via docfx and the README admits it needs improvement — the gap between 'framework exists' and 'I understand how to structure my application with it' is wide.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →