[ablegacy] AbLegacy — MicroLogix function-file letters #322

Merged
dohertj2 merged 1 commits from auto/ablegacy/2 into auto/driver-gaps 2026-04-25 13:34:48 -04:00
Owner

Summary

MicroLogix 1100/1400 expose proprietary function-file types (RTC/HSC/DLS/MMI/PTO/PWM/STI/EII/IOS/BHI) that don't share file letters with SLC. Today IsKnownFileLetter only allows the SLC/PLC-5 set, so any tag like RTC:0.HR is silently rejected.

  • AbLegacyPlcFamilyProfile.cs — new SupportsFunctionFiles flag. true for MicroLogix only.
  • AbLegacyAddress.cs — parser extended. After canonical SLC/PLC-5 letters, multi-letter function-file prefixes accepted only when the family-aware overload was given a profile whose SupportsFunctionFiles is true. Family-less callers still reject (back-compat).
  • AbLegacyDataType.cs — new MicroLogixFunctionFile enum entry and a AbLegacyFunctionFile.SubElementType(letter, sub) catalogue. ≤8 common members per file (RTC HR/MIN/SEC/MON/DAY/YR/DOW/EN/BL/DS, HSC ACC/PRE/EN/UF/IF/IN/IH/IL/DN/CD/CU/OVF/UNF, DLS STR/STD/EN, plus stubs for MMI/PTO/PWM/STI/EII/IOS/BHI). Unknown sub-elements fall back to Int32 (permissive).

Test plan

  • dotnet build src/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy — clean (0 / 0)
  • dotnet test tests/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Tests139 / 139 passed (30+ new: positive parses per function-file letter on MicroLogix, negative on SLC500/Plc5/LogixPccc and family-less overload, profile flag assertions, sub-element catalogue mappings)
  • Integration tests — skipped (live PLC required)

🤖 Auto-generated by the Mode-B execution loop. Closes #245.

Closes #245

## Summary MicroLogix 1100/1400 expose proprietary function-file types (RTC/HSC/DLS/MMI/PTO/PWM/STI/EII/IOS/BHI) that don't share file letters with SLC. Today `IsKnownFileLetter` only allows the SLC/PLC-5 set, so any tag like `RTC:0.HR` is silently rejected. - `AbLegacyPlcFamilyProfile.cs` — new `SupportsFunctionFiles` flag. `true` for MicroLogix only. - `AbLegacyAddress.cs` — parser extended. After canonical SLC/PLC-5 letters, multi-letter function-file prefixes accepted **only when** the family-aware overload was given a profile whose `SupportsFunctionFiles` is true. Family-less callers still reject (back-compat). - `AbLegacyDataType.cs` — new `MicroLogixFunctionFile` enum entry and a `AbLegacyFunctionFile.SubElementType(letter, sub)` catalogue. ≤8 common members per file (RTC HR/MIN/SEC/MON/DAY/YR/DOW/EN/BL/DS, HSC ACC/PRE/EN/UF/IF/IN/IH/IL/DN/CD/CU/OVF/UNF, DLS STR/STD/EN, plus stubs for MMI/PTO/PWM/STI/EII/IOS/BHI). Unknown sub-elements fall back to Int32 (permissive). ## Test plan - [x] `dotnet build src/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy` — clean (0 / 0) - [x] `dotnet test tests/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Tests` — **139 / 139 passed** (30+ new: positive parses per function-file letter on MicroLogix, negative on SLC500/Plc5/LogixPccc and family-less overload, profile flag assertions, sub-element catalogue mappings) - [ ] Integration tests — skipped (live PLC required) 🤖 Auto-generated by the Mode-B execution loop. Closes #245. Closes #245
dohertj2 added 1 commit 2026-04-25 13:34:44 -04:00
dohertj2 merged commit 07235d3b66 into auto/driver-gaps 2026-04-25 13:34:48 -04:00
dohertj2 deleted branch auto/ablegacy/2 2026-04-25 13:34:48 -04:00
Sign in to join this conversation.