feat(s7commplus): add symbolic data subscriptions - #825
Conversation
65b4665 to
8b7fbf6
Compare
|
@bvanelli I incorporated the working C# trace into the implementation and added byte-exact create/delete regression fixtures. The updated framing now uses the captured subscription name, signed-VLQ subsystem status, route mode, notification credits, and subscription-container deletion target. Could you please rerun your symbolic subscription example against the current branch, including create, notification delivery, and delete, and review again if it now works on the PLC? Install: pip install --upgrade "python-snap7 @ git+https://github.com/gijzelaerr/python-snap7.git@feat/710-v1-subscription-data"The PR history is now clean (two commits on |
|
Thanks, it now works: I did vibecode the conversion real quick (for a different sample): And could also confirm that the static variables match. Just a note: the data still comes fully as binary, and requires some effort for conversion. In a future Tested against two different PLCs. |
Summary
Stack
Depends on #775 and targets its head branch. The two pull requests are prepared for GitHub native stack linking, with #775 as the bottom layer and this pull request as the top layer. Review only the commit introduced here.
Scope
This provides the symbolic subscription path needed by the V1-initial, SessionKey-authenticated PLC from #710. It does not make raw db_read(offset, size) work for optimized blocks because raw byte offsets cannot be translated into valid symbolic LIDs. Real S7-1200 validation is still needed, so this progresses rather than closes #710.
The subscription layout follows the TIA Portal capture attached to #710 and the reference implementation in https://github.com/thomas-v2/S7CommPlusDriver/blob/master/src/S7CommPlusDriver/Subscriptions/Subscription.cs.
Validation
Progresses #710