Dahlke.TwinCAT.Ads documentation
A .NET library for TwinCAT ADS with durable connections, typed symbol access, simulation mode, and ASP.NET Core integration. Install and quick start are in the README; this is the long-form documentation.
Something is failing and you have the error text? Start at Troubleshooting — it is indexed by the error you see, likeliest cause first.
| Page | What it covers |
|---|---|
| Connections | The connection pool, the no-host builder for console/WPF/WinForms, connection lookup and keyed injection, connection state, wait-then-throw semantics, and per-call timeouts with WithTimeout |
| Reading and writing values | Typed reads and writes, binding PLC structs to .NET types, PlcSymbol<T> handles, batch operations, RPC method calls, symbol browsing, and the IEC 61131-3 type mapping |
| Subscriptions | Durable value-change subscriptions, notification metadata, and the Rx companion package |
| PLC alarms | The Dahlke.TwinCAT.Ads.Alarms package: tracking a TwinCAT alarm array, transition handlers, acknowledgement over ADS, restart semantics, and fault tolerance |
| Raw ADS channels | Index-group/index-offset access for targets the symbol API cannot reach — EtherCAT masters, the system service — with durable notifications and a seedable simulation store |
| Simulation | Per-target and whole-fleet simulation, seeding initial values from code and configuration |
| Testing | The Dahlke.TwinCAT.Ads.Testing harness (TestPlc, write assertions) and hand-written doubles via AdsConnectionBase |
| Configuration reference | Every configuration section — AmsRouter, PlcTargets, RawChannels, AdsSymbolDump, PlcAlarms — with defaults and validation rules, plus health checks |
| Troubleshooting | Indexed by the error text you see, likeliest cause first |
The API reference, generated from the XML documentation of every public member, is published at patdhlk.com/Dahlke.TwinCAT.Ads.
The three EtherCAT packages document themselves on their own package pages:
Dahlke.EtherCAT.Diagnostics,
Dahlke.EtherCAT.Esi and
Dahlke.EtherCAT.Cia402.