[s7] S7 — Optimized DB / S7Plus (decision PR) #408
Reference in New Issue
Block a user
Delete Branch "auto/s7/PR-S7-F"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Multi-variable PDU packing for S7 — replaces per-tag
Plc.ReadAsyncloop withPlc.ReadMultipleVarsAsyncbatching.S7ReadPacker.cs(new) static helper:S7.Net.Types.DataItemwithVarType,Count,DB,StartByteAdr,BitAdr.(pduSize - 18) / 12, capped at 19 items per call.S7Driver.ReadAsync— classifies inputs into unknown / packable / fallback. Packable batches dispatch viaPlc.ReadMultipleVarsAsync; decodes eachDataItem.Valueback to per-tag snapshots. Falls back to per-tagReadOneAsyncon batch-level failure so one bad tag doesn't poison the rest of the batch.Test plan
dotnet build src/ZB.MOM.WW.OtOpcUa.Driver.S7— clean (0 / 0)dotnet test tests/ZB.MOM.WW.OtOpcUa.Driver.S7.Tests— 163 / 163 passed (14 new inS7ReadPackerTests: item-budget math, bin-packing 100 items into ≤6 batches, packability classification across allS7DataTypevalues,DataItemfield mapping (DB / area / VarType / BitAdr), value reinterpret (signed Int16/Int32 from unsigned wire))🤖 Auto-generated by the Mode-B execution loop. Closes #292.
Closes #304