Add missing S7CommPlus operations: area read/write, explore, invoke#679
Merged
gijzelaerr merged 1 commit intomasterfrom Apr 15, 2026
Merged
Add missing S7CommPlus operations: area read/write, explore, invoke#679gijzelaerr merged 1 commit intomasterfrom
gijzelaerr merged 1 commit intomasterfrom
Conversation
Add operations that S7CommPlusDriver (C#) implements but we were missing: - read_area/write_area for controller memory areas (M, I, Q, counters, timers) — previously only DB access was supported via S7CommPlus - explore(explore_id) — browse specific objects, not just root - set_plc_operating_state(state) — start/stop PLC via INVOKE function Both sync and async clients updated. Request/response builders are module-level functions shared between both clients. Note: Link operations (ADD_LINK, REMOVE_LINK, GET_LINK) and sequencing (BEGIN_SEQUENCE, END_SEQUENCE) are defined in protocol.py but not implemented by S7CommPlusDriver either — these are rarely used features. Reference: thomas-v2/S7CommPlusDriver (C#, LGPL-3.0) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds S7CommPlus operations that S7CommPlusDriver (C#) implements but we were missing:
read_area/write_areafor controller memory areas (M, I, Q, counters, timers) — previously only DB access was supported via S7CommPlusexplore(explore_id)— browse specific objects by RID, not just rootset_plc_operating_state(state)— start/stop PLC via INVOKE function codeBoth sync (
S7CommPlusClient) and async (S7CommPlusAsyncClient) clients updated. Request/response builders are shared module-level functions.Feature comparison with S7CommPlusDriver after this PR
Note: Link operations (ADD_LINK, REMOVE_LINK) and sequencing (BEGIN_SEQUENCE, END_SEQUENCE) are not implemented in S7CommPlusDriver either — function codes are defined but unused.
Test plan
🤖 Generated with Claude Code