An unofficial toolkit for handling aspects of the daily work with Beckhoff PLCs. Providing access to remote file systems, I/O devices, TwinCAT-route-management, and more – all based on the Beckhoff ADS protocol.
The Automation Device Specification (ADS) serves as a communication layer for many of TwinCAT's basic functionalities outside the real-time environment. This project provides a collection of ADS client wrappers that allow you to access these functions via a .NET class library or a via basic UI. It uses the .Net API provided by Beckhoff.TwinCAT.Ads. Comprehensive documentation for the ADS API is available on infosys.beckhoff.com.
- Remote File System Access: Interact with the file system and registry of your PLCs remotely.
- ADS Route Management: Configure and manage ADS routes to and between PLCs.
- I/O Configuration: Read the I/O configuration of remote systems without the need for TwinCAT XAE.
- System Parameters & Diagnostics: Monitor system parameters, utilization, and access diagnostic functions of your PLCs.
- Beckhoff TwinCAT-System-Service installed (comes with any TwinCAT installation)
using AdsFileClient sourceFileClient = new();
await sourceFileClient.Connect();
using AdsFileClient destinationFileClient = new();
await destinationFileClient.Connect("192.168.1.100.1.1")
await sourceFileClient.FileCopyAsync(@"C:/temp/existingFile.txt", destinationFileClient, @"C:/temp/copiedFile.txt")
using AdsRoutingClient localRouting = new();
await localRouting.Connect()
// As List
var devicesFound = await localRouting.AdsBroadcastSearchAsync(secondsTimeout: 5);
foreach (TargetInfo device in devicesFound)
Console.WriteLine(device.Name);
// As Async Enumerable
await foreach (TargetInfo device in localRouting.AdsBroadcastSearchStreamAsync(secondsTimeout: 5))
Console.WriteLine(device.Name);
using AdsRoutingClient localRouting = new();
await localRouting.Connect();
await localRouting.AddRouteByIpAsync("192.168.1.100.1.1", "192.168.1.100", "IPC-Office", "Admin", passwordSecStr);