Adsify
Open Source, TwinCAT ADS, C#, Industrial Automation, REST API

Adsify

A REST API that wraps Beckhoff TwinCAT ADS. HTTP in, PLC data out. Authentication, rate limiting, and real-time subscriptions included.

Description

Adsify is a REST API that sits in front of Beckhoff TwinCAT ADS. It turns PLC variables into HTTP endpoints. You authenticate with a JWT, call a URL, and get back JSON. No ADS client library, no AMS routing headaches, no binary protocol in your application code.

The problem it solves is simple: every team that needs PLC data ends up writing their own bridge. A Python script here, a Node service there, each with its own security model (or none). Adsify replaces all of that with one API that handles authentication, authorization, rate limiting, and connection pooling.

What it does:

  • Read and write variables: GET /api/plcs/{plcId}/variables/MAIN.nSpeed returns JSON. PUT writes it back. Batch operations for up to 100 variables at once.
  • Browse symbols: Walk the PLC’s symbol tree, search by name, get type information. The kind of thing you’d normally need TwinCAT XAE for.
  • Real-time notifications: Subscribe to variable changes via Server-Sent Events or WebSocket (SignalR). Shared subscriptions — ten clients watching the same variable use one ADS notification.
  • EtherCAT diagnostics: Monitor master state, slave health, CRC errors, and topology. Same data as TE2000, over HTTP.
  • MCP server: Built-in Model Context Protocol endpoint. An AI assistant can query your PLCs through natural language.
  • Symbol guards: Allowlist or denylist which variables can be written. Glob patterns. Because not everything should be writable from a web browser.
  • Security by default: JWT authentication, role-based access control, per-PLC authorization, value constraints with min/max validation, rate limiting per user and endpoint, and security headers out of the box. The API rejects bad writes before they reach the PLC.

It runs on .NET 8/9/10, ships an embedded ADS router so you don’t need TwinCAT installed on the API host, and works on Linux.

Docs: https://patdhlk.com/adsify

Used Tools and Technologies

  • C# / ASP.NET Core
  • Beckhoff TwinCAT ADS
  • JWT / OIDC (OAuth2)
  • SignalR (WebSocket)
  • Server-Sent Events
  • Model Context Protocol (MCP)
  • EtherCAT