Skip to content
GitHub

REST API for Beckhoff 
TwinCAT ADS

Talk to your PLCs over plain HTTP, with authentication built in. 
No TwinCAT installation required.

Multi-PLC Support

Connect as many TwinCAT runtimes as you like. Callers use friendly aliases like Line1, so nobody has to memorise an AMS Net ID.

Simulated PLCs

Develop against an in-memory PLC instead of real hardware. With every target simulated there’s no rack and no ADS router to run, and when you’re ready, simulated and real targets happily share one config file.

Authentication & Authorization

Bring your own OIDC provider. Roles and scopes both have to agree before a request gets through, and JWT claims decide which PLCs a caller can see at all.

Real-time Notifications

Watch variables change over SSE or WebSocket. Ask for the same symbol twice and you’ll share one ADS subscription rather than paying for two.

Alarm Monitoring

Read outstanding alarms, subscribe to them, acknowledge them. An alarm sticks around until somebody acknowledges it, even once the fault itself has cleared.

EtherCAT Diagnostics

Inspect master state, slave health, topology and CoE object dictionaries. If something couldn’t be read, you get told so, rather than an empty list you have to guess about.

Guarded by Default

Calling a PLC method means naming that method up front. Letting anything invoke anything seemed unwise. Rate limits are per user, and writes can be pinned to a symbol allowlist when you want them locked down.

Cross-Platform

The ADS router is built in, which is what frees you from Windows. Runs on Linux, macOS and Windows alike.

AI-Agent Ready

An OpenAPI spec written with agents in mind, plus a built-in MCP server so an assistant can ask about your plant in plain English.