Features¶
Every feature below is a sphinx-needs object. Requirements satisfy features, and every endpoint in the API Reference implements at least one of them — the build fails if an endpoint does not.
Infrastructure¶
Connect to multiple TwinCAT PLC runtimes simultaneously with configurable aliases, timeouts, and per-PLC access control. |
Provider-agnostic OIDC/OAuth2 with hybrid RBAC (roles + scopes).
Three policies: |
Anonymous liveness and readiness probes. Readiness names each configured PLC and, when enabled, each EtherCAT master whose diagnostics cannot be read. |
Configurable per-user global rate limiter plus per-endpoint policies
(variable reads/writes, batch ops, symbol browsing, file ops, notifications).
Returns 429 with a |
Toggle feature slices on/off via configuration. Dictionary-based lookup avoids
reflection overhead. Disabled slices answer 404 (501 for |
Feature slices¶
Read and write PLC variables by symbol path. Supports structured/custom data types, batch operations (up to 100), symbol guards (allowlist/denylist), and value constraints (min/max, enum, pattern, read-only). |
Browse the PLC symbol tree with recursive traversal, path drilling, and pattern search. |
Query PLC device name, version, and ADS state. |
Start, stop and reset the PLC runtime. Admin only, rate-limited per PLC. |
Subscribe to PLC variable changes via SSE or WebSocket (SignalR). Shared subscriptions with reference counting, configurable cycle times, and per-user connection limits. |
Read, write and list files on the PLC. Routes are in place but answer 501 until the ADS library supports the SystemService protocol. |
Monitor EtherCAT master state, slave health, error counters, port diagnostics, sync units, and topology. Real-time WebSocket notifications for state changes and CRC error thresholds. |
Read a slave’s CANopen-over-EtherCAT object dictionary entries. |
List outstanding alarms, acknowledge them, and stream alarm transitions over SSE or SignalR. An alarm stays outstanding until acknowledged, even after the fault clears. |
Resolve a PLC type’s metadata — currently an enumeration’s members. |
Invoke methods on PLC function block or program instances, gated by a default-deny per-PLC allowlist. |
Step, run, pause and reset a scenario-backed simulated target. Structurally unable to reach real hardware. |
Model Context Protocol server enabling AI assistants to query, monitor, and
troubleshoot PLCs through natural language. Runs inside the existing ASP.NET Core
host on |