[abcip] AbCip — L5K parser + ingest #346
Reference in New Issue
Block a user
Delete Branch "auto/abcip/2.1"
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
L5K (Studio 5000) tag-export parser and ingest path.
Import/IL5kSource.cs— abstraction for file-path or inline-text input.Import/L5kParser.cs— pure-text parser:TAG / END_TAGblocks withName,DataType,ExternalAccess,AliasFor,DescriptionDATATYPE / END_DATATYPEUDT definitions withMEMBERlines (incl. array dims)PROGRAM / END_PROGRAMscope wrappers(* … *)block comments;Import/L5kIngest.cs— converts parsed result toAbCipTagDefinition[]+ matching UDTAbCipStructureMemberlists. Skips alias tags andExternalAccess=Nonetags (Kepware precedent — documented in remarks).AbCipDriverOptions— newL5kImportscollection ofAbCipL5kImportOptions(file path or inline text, target device, name prefix).AbCipDriver.InitializeAsync— parses each import, ingests, merges into the per-name tag map. DeclaredTagswin on collision so operators can override import results.Test plan
dotnet build src/ZB.MOM.WW.OtOpcUa.Driver.AbCip— clean (0 / 0)dotnet test tests/ZB.MOM.WW.OtOpcUa.Driver.AbCip.Tests— 286 / 286 passed (17 new: controller- and program-scope TAGs, alias skip, DATATYPE with array-dim member, comment stripping, unknown-section skip, multi-line continuation, ingest path incl. ExternalAccess=None/ReadOnly + UDT-typed tag fanout)🤖 Auto-generated by the Mode-B execution loop. Closes #229.
Closes #229