Auto: abcip-3.1 — configurable CIP connection size per device
Closes #235
This commit is contained in:
@@ -87,6 +87,14 @@ public sealed class AbCipDriverOptions
|
||||
/// 1 second — matches typical SCADA alarm-refresh conventions.
|
||||
/// </summary>
|
||||
public TimeSpan AlarmPollInterval { get; init; } = TimeSpan.FromSeconds(1);
|
||||
|
||||
/// <summary>
|
||||
/// PR abcip-3.1 — optional sink for non-fatal driver warnings (legacy-firmware
|
||||
/// <c>ConnectionSize</c> mis-match, etc.). Production hosting wires this to Serilog;
|
||||
/// unit tests pin a list-collecting lambda to assert which warnings fired. <c>null</c>
|
||||
/// swallows warnings — convenient for back-compat deployments that don't care.
|
||||
/// </summary>
|
||||
public Action<string>? OnWarning { get; init; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -98,10 +106,19 @@ public sealed class AbCipDriverOptions
|
||||
/// <param name="PlcFamily">Which per-family profile to apply. Determines ConnectionSize,
|
||||
/// request-packing support, unconnected-only hint, and other quirks.</param>
|
||||
/// <param name="DeviceName">Optional display label for Admin UI. Falls back to <see cref="HostAddress"/>.</param>
|
||||
/// <param name="ConnectionSize">PR abcip-3.1 — optional override for the family-default
|
||||
/// <see cref="PlcFamilies.AbCipPlcFamilyProfile.DefaultConnectionSize"/>. Threads through to
|
||||
/// libplctag's <c>connection_size</c> attribute on the underlying tag handle so operators can
|
||||
/// dial the CIP Forward Open buffer down for legacy firmware (v19-and-earlier ControlLogix
|
||||
/// caps at 504) or up for high-throughput shops on FW20+. Validated against the Kepware
|
||||
/// supported range [500..4002] at <c>InitializeAsync</c>; out-of-range values fault the
|
||||
/// driver. <c>null</c> uses the family default — back-compat with deployments that haven't
|
||||
/// touched the knob.</param>
|
||||
public sealed record AbCipDeviceOptions(
|
||||
string HostAddress,
|
||||
AbCipPlcFamily PlcFamily = AbCipPlcFamily.ControlLogix,
|
||||
string? DeviceName = null);
|
||||
string? DeviceName = null,
|
||||
int? ConnectionSize = null);
|
||||
|
||||
/// <summary>
|
||||
/// One AB-backed OPC UA variable. Mirrors the <c>ModbusTagDefinition</c> shape.
|
||||
|
||||
Reference in New Issue
Block a user