diff --git a/docs/drivers/AbServer-Test-Fixture.md b/docs/drivers/AbServer-Test-Fixture.md index 8c678967..74a071e8 100644 --- a/docs/drivers/AbServer-Test-Fixture.md +++ b/docs/drivers/AbServer-Test-Fixture.md @@ -120,7 +120,7 @@ happens when a non-safety write lands on a real `1756-L8xS` — is not exercised Since T21 the CompactLogix profile defaults to a **Large** Forward Open (4002), matching what libplctag opens for `plc=compactlogix`. The old 504 default was cosmetic under libplctag, which never received it, -and cost the native transport ~3× the round trips per poll. A narrower 5069-L3x / pre-v20 target that refuses +and cost the native transport ~3× the round trips per poll. A pre-v20 CompactLogix (1769-L3x) or a bridge that refuses the Large open is handled by `CipConnection`'s fallback (a regular open at min(size, 504) in the same throttled attempt). That fallback is pinned by unit tests against a fake target only: `ab_server` accepts any size, so a refusing controller is never exercised here. diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbCip.Contracts/AbCipDriverOptions.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbCip.Contracts/AbCipDriverOptions.cs index 3c2b37ea..4a75c297 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbCip.Contracts/AbCipDriverOptions.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbCip.Contracts/AbCipDriverOptions.cs @@ -129,11 +129,9 @@ public sealed class AbCipDriverOptions /// touching every other device on the same family. /// Per-device override for the Forward Open /// ConnectionSize (Large Forward Open packet size in bytes). null inherits the family -/// profile's DefaultConnectionSize. Honoured by the driver layer; the underlying -/// libplctag 1.5.2 wrapper has no direct ConnectionSize property, so the value is -/// plumbed through for forward-compat with future wrapper -/// versions or a custom tag-attribute path; current builds use the family profile default at -/// the wire layer regardless. +/// profile's DefaultConnectionSize. The native transport honours it on the wire (its Forward +/// Open size). The libplctag transport ignores it: the libplctag 1.5.2 wrapper has no +/// ConnectionSize property, so libplctag opens with its own size for the plc attribute. public sealed record AbCipDeviceOptions( string HostAddress, AbCipPlcFamily PlcFamily = AbCipPlcFamily.ControlLogix, diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbCip/PlcFamilies/AbCipPlcFamilyProfile.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbCip/PlcFamilies/AbCipPlcFamilyProfile.cs index 5d58e477..90d10293 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbCip/PlcFamilies/AbCipPlcFamilyProfile.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbCip/PlcFamilies/AbCipPlcFamilyProfile.cs @@ -43,7 +43,7 @@ public sealed record AbCipPlcFamilyProfile( LibplctagPlcAttribute: "compactlogix", // Large Forward Open, matching libplctag: `plc=compactlogix` opens Large (0x5B, 4002) and the // native transport must not pack into a third of the window (T21 latency harness: 504 cost ~3x - // the round trips per poll). A narrower 5069-L3x / pre-v20 target that refuses the Large open + // the round trips per poll). A pre-v20 CompactLogix (1769-L3x) or a bridge that refuses the Large open // is covered by CipConnection's fallback — a regular open at min(size, 504) inside the same // throttled attempt. An explicit ConnectionSize (driver options or per device) still wins. DefaultConnectionSize: 4002,