Dahlke.TwinCAT.Ads
Open Source, C#, .NET, TwinCAT, ADS, Industrieautomation

Dahlke.TwinCAT.Ads

Eine .NET-Bibliothek für TwinCAT ADS mit typisierten Lese- und Schreibzugriffen, stabilen Verbindungen, Subscriptions, SPS-Alarmen und einem Simulationsmodus für Tests.

Beschreibung

Dahlke.TwinCAT.Ads ist eine .NET-Bibliothek, die über ADS mit Beckhoff-TwinCAT-SPSen spricht. Sie bietet einen einfachen, typisierten Weg, um SPS-Werte zu lesen und zu schreiben, Verbindungen offen zu halten und auf Änderungen zu reagieren. Den ganzen Low-Level-ADS-Code musst du dabei nicht selbst schreiben.

Die Grundidee: Du arbeitest mit normalen .NET-Typen. Du fragst einen Wert über seinen Symbolnamen ab und bekommst ein int, ein float, ein bool oder dein eigenes Struct zurück. SPS-Structs, Funktionsbausteine, Unions und Arrays werden über den Feldnamen auf Records, Klassen und Structs abgebildet.

Was sie kann:

  • Typisierte Lese- und Schreibzugriffe: Lesen und schreiben mit ReadValueAsync<T> und WriteValueAsync<T>. Mit PlcSymbol<T> legst du Pfad und Typ eines Symbols einmal fest, statt sie bei jedem Aufruf zu wiederholen.
  • Stabile Verbindungen: Ein Objekt steht für eine SPS. Bricht die Verbindung ab, baut sie sich von selbst wieder auf, und du behältst dasselbe Handle. Aufrufe warten bis zu einem Timeout auf eine Verbindung und melden dann einen klaren Fehler. So bekommst du nie ein falsches “alles gut”.
  • Live-Subscriptions: Werde benachrichtigt, wenn sich ein Wert ändert, auch nach einem Reconnect. Ein optionales Reactive-Paket macht daraus IObservable<T>-Streams.
  • SPS-Alarme: Ein optionales Paket führt eine Liste offener Alarme, schickt dir die Änderungen und quittiert sie über die eigene Methode der SPS.
  • Batch, RPC und Rohzugriff: Fasse viele Lese- oder Schreibzugriffe zu einem Round-Trip zusammen, rufe SPS-Methoden auf, lies Enum-Namen und erreiche Adressen, die die Symbol-API nicht erreicht, zum Beispiel einen EtherCAT-Master.
  • Simulation und Tests: Setze ein Ziel in den Simulationsmodus und arbeite ohne SPS. Ein kleiner Test-Helfer merkt sich, was dein Code geschrieben hat. Für Tests brauchst du kein TwinCAT.
  • Läuft überall: Nutze sie mit ASP.NET Core oder in einer Konsolen-, WPF- oder WinForms-App ganz ohne Host. Health Checks und Config-Prüfungen beim Start sind schon eingebaut.

Im selben Repo liegen außerdem drei EtherCAT-Pakete: Master- und Slave-Diagnose über ADS, ein ESI-Gerätekatalog und Dekoder für CiA-402-Antriebe.

Jedes Paket unterstützt net8.0, net9.0, net10.0 und netstandard2.0 und läuft damit auch auf .NET Framework 4.8.

GitHub: https://github.com/patdhlk/Dahlke.TwinCAT.Ads

NuGet: https://www.nuget.org/packages/Dahlke.TwinCAT.Ads

Tech-Stack

  • C# / .NET
  • TwinCAT ADS
  • ASP.NET Core
  • Reactive Extensions (Rx)
  • EtherCAT
  • NuGet
  • netstandard2.0 / .NET Framework 4.8