@@ -63,6 +63,24 @@ public sealed class S7DriverOptions
|
||||
/// Running ↔ Stopped transitions.
|
||||
/// </summary>
|
||||
public S7ProbeOptions Probe { get; init; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Block-read coalescing gap-merge threshold (bytes). When two same-DB tags are
|
||||
/// within this many bytes of each other the planner folds them into a single
|
||||
/// <c>Plc.ReadBytesAsync</c> request and slices the response client-side. The
|
||||
/// default <see cref="S7BlockCoalescingPlanner.DefaultGapMergeBytes"/> = 16 bytes
|
||||
/// trades a minor over-fetch for one fewer PDU round-trip — over-fetching 16
|
||||
/// bytes is cheaper than the ~30-byte S7 request frame.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Raise the threshold for chatty PLCs where PDU round-trips dominate latency
|
||||
/// (S7-1200 with default 240-byte PDU); lower it when DBs are sparsely populated
|
||||
/// so the over-fetch cost outweighs the saved PDU. Setting to 0 disables gap
|
||||
/// merging entirely — only literally adjacent ranges (gap == 0) coalesce.
|
||||
/// STRING / WSTRING / CHAR / WCHAR / structured-timestamp / array tags always
|
||||
/// opt out of merging regardless of this knob.
|
||||
/// </remarks>
|
||||
public int BlockCoalescingGapBytes { get; init; } = S7BlockCoalescingPlanner.DefaultGapMergeBytes;
|
||||
}
|
||||
|
||||
public sealed class S7ProbeOptions
|
||||
|
||||
Reference in New Issue
Block a user