@page "/clusters/{ClusterId}/draft/{GenerationId:long}/import-equipment" @using Microsoft.AspNetCore.Components.Authorization @using ZB.MOM.WW.OtOpcUa.Admin.Services @using ZB.MOM.WW.OtOpcUa.Configuration.Entities @inject DriverInstanceService DriverSvc @inject UnsService UnsSvc @inject EquipmentImportBatchService BatchSvc @inject NavigationManager Nav @inject AuthenticationStateProvider AuthProvider

Equipment CSV import

Cluster @ClusterId · draft generation @GenerationId
Back to draft
Accepts @EquipmentCsvImporter.VersionMarker-headered CSV per Stream B.3. Required columns: @string.Join(", ", EquipmentCsvImporter.RequiredColumns). Optional columns cover the OPC 40010 Identification fields. Paste the file contents or upload directly — the parser runs client-stream-side and shows a row-level preview before anything lands in the draft. ZTag + SAPID uniqueness across the fleet is NOT enforced here yet (see task #197); for now the finalise may fail at commit time if a reservation conflict exists.
Per-tag addressing for Modbus drivers isn't part of equipment import — tags are configured at the driver-instance level via the Drivers tab. Use the address-preview tool to sanity-check grammar strings (40001:F:CDAB, HR1:I, V2000 for DL205 family, etc.) before pasting them into the driver config.