Skip to content

feat(monitor-server): add direct Beckhoff ADS client#114

Merged
q-soriarty merged 2 commits intodevelopfrom
feature/ads-monitor-server
Feb 14, 2026
Merged

feat(monitor-server): add direct Beckhoff ADS client#114
q-soriarty merged 2 commits intodevelopfrom
feature/ads-monitor-server

Conversation

@q-soriarty
Copy link
Collaborator

Summary

  • Add Beckhoff.TwinCAT.Ads + Beckhoff.TwinCAT.Ads.TcpRouter NuGet packages
  • Create IAdsClient interface replacing IMqttAdsClient with direct ADS methods (connect, read, batch read via Sum Commands, subscribe via ADS notifications, state read)
  • Add AdsClientWrapper stub implementation wrapping AdsClient + TcpRouter
  • Delete IMqttAdsClient and MqttAdsClient (MQTT relay no longer needed)
  • Update MonitorOptions with ADS-direct config (TargetHostname, AdsPort, AdsTcpPort)
  • Update PlcDataHub to use IAdsClient for subscribe/unsubscribe
  • Add placeholder AdsClientWrapperTests

Dependencies

Test plan

  • dotnet build src/monitor-server/FlowForge.MonitorServer.sln compiles
  • dotnet test passes (existing + new placeholder tests)

🤖 Generated with Claude Code

q-soriarty and others added 2 commits February 14, 2026 15:45
Add PlcAdsState enum, PlcStateDto, AdsConnectionInfo, and
AdsVariableSubscription to FlowForge.Shared for use across monitor and
build server without requiring Beckhoff NuGet dependencies. Update
PlcTargetDto with CurrentState and DeployRequestDto with AdsPort.
Create doc/ADS_INTEGRATION.md documenting the decision to use direct
Beckhoff.TwinCAT.Ads instead of custom MQTT ADS relay topics.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace IMqttAdsClient/MqttAdsClient with IAdsClient/AdsClientWrapper
using Beckhoff.TwinCAT.Ads + TcpRouter for direct ADS-over-TCP from
Linux Docker containers. Add batch read (Sum Commands), PLC state read,
and ADS notification subscription to the interface. Update PlcDataHub to
use IAdsClient with SubscriptionManager. Add ADS connection config
(TargetHostname, AdsPort, AdsTcpPort) to MonitorOptions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@q-soriarty q-soriarty merged commit 02ac0e7 into develop Feb 14, 2026
2 checks passed
@github-actions github-actions bot locked and limited conversation to collaborators Feb 14, 2026
@q-soriarty q-soriarty deleted the feature/ads-monitor-server branch February 14, 2026 14:52
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant