WESLR / TAGCHECK · 1.0.0 · 6 NOVEMBER 2026
From two tables to a review packet
Download and open WESLR-TagCheck.html in a current desktop Chrome or Edge browser. No installation, account, server or internet connection is needed. Chromium 148 was tested; other browsers and physical mobile devices have not been qualified. Use a desktop for engineering review.
First run
- Click Try the fictional example. Expect 13 name groups: 7 need review and 6 match.
- Each result shows the original values and source records. Change Show to All results to inspect every group.
- Enter a reviewer/project reference. Record a decision and explanation beside a finding. Accepted/intentional and Correction required decisions need an explanation. Decisions annotate findings; they never remove them.
- Click Save session to download the inputs, mappings and decisions. Open it later with Open session.
- Download the full CSV and choose Print / save PDF. Select landscape A4, disable browser-added headers/footers if necessary, and inspect the preview. Both reports contain all findings even when the screen is filtered.
The example is invented. Never use its addresses or the review report as PLC configuration. The downloadable example report deliberately has unresolved questions; it is a demonstration of the handover format.
Compare your own files
- Agree the CPU, intended tag scope and revisions. Export a static table from the engineering source and the PLC project. Keep the original files unchanged.
- Choose the engineering reference on side A and the PLC export on side B. Either side accepts the formats below. For XLSX, choose the worksheet and header row. A sheet named Tags is preferred automatically; verify that it is the intended sheet.
- Click Read columns. Select the correct tag-name, address and data-type columns on each side. Column order may differ.
- Check that both tables describe the same CPU and scope, then click Compare tables. Confirm the source labels and row counts before reviewing results.
- Review every discrepancy against the original records. A missing name may be a scope difference; an overlap may be an intentional alias. Ask the responsible engineer rather than guessing.
- Save the session and export the reports. Keep the original files, session and reports together with your project revision.
Editing an imported preview makes it a new text input and replaces its original-file fingerprint. Changing input, sheet, header, mappings or source labels clears previous decisions. Save before making these changes. The source files themselves are never overwritten.
Supported input
| Format | Requirements |
|---|---|
| CSV / TSV / pasted cells | UTF-8; comma, semicolon or tab; unique nonempty headers; at least name, address and type columns; rectangular rows. Quotes and quoted newlines are supported. Select a separator if detection is ambiguous. Maximum 2 MiB per input. |
| Excel .xlsx | One selected worksheet per side. Maximum 5 MiB compressed, 20 MiB expanded, 8 MiB per ZIP member, 300 members and 25 sheets. Choose a header in rows 1–50. Hidden and filtered rows are included. Merged cells in the header/data region are rejected. Formula caches and nontext values in mapped columns remain review items. Formulas are never calculated. No password protection, macros, external links, .xls or .xlsm. |
| Siemens Openness tag XML | Maximum 2 MiB; literal SW.Tags.PlcTag elements with one AttributeList containing Name, LogicalAddress and DataTypeName. Default-namespace or unqualified elements are supported; arbitrary prefixed XML is not. User constants are excluded and counted. No DTD/entity declarations. Native project archives and DB exports are not supported. |
All inputs: at most 2,000 data rows per table, 2,051 physical rows including headers/blanks, 100 columns and 20,000 characters per cell. Discard irrelevant columns in a copy when needed. A worksheet that exceeds the limits is rejected, not silently truncated. A 10-second workbook timeout protects responsiveness.
What a match means
Names match exactly after trimming outer spaces; matching is case-sensitive. No fuzzy renaming occurs. Duplicate names stay unresolved. Supported addresses normalize case, optional %, leading zeros and international I/Q/M versus German E/A/M syntax. Type aliases include TIME_OF_DAY/TOD, LTIME_OF_DAY/LTOD and LDATE_AND_TIME/LDT.
Supported primitives: Bool; Byte, Char, SInt, USInt; Word, Int, UInt, Date, WChar, S5Time; DWord, DInt, UDInt, Real, Time, TOD; LWord, LInt, ULInt, LReal, LTime, LTOD, LDT. Width compatibility and within-table occupied-bit overlaps are checked. For 64-bit operands the supported documented syntax is, for example, %M0.0 with a 64-bit type; %ML0 is not accepted.
This is document reconciliation. CPU-family limits, hardware configuration, wiring, physical I/O, program logic, DBs, UDTs and safety validation are outside scope. Unsupported inputs remain questions. Matching files can share the same mistake. A review decision is a person's recorded declaration, not engineering certification or a digital signature.
Records and fingerprints
CSV record numbers include the header and refer to parsed records, not necessarily text lines when a quoted cell spans lines. XLSX records are worksheet rows. XML record 2 means tag element 1; XML line numbers are not claimed. Duplicate-name groups retain each source occurrence.
SHA-256 fingerprints identify the loaded source bytes, or edited text when applicable. Saved sessions contain only the selected table data, not the complete original workbook or other sheets. Sessions include a checksum to detect accidental changes; anyone can recompute it. It is not authentication. Reopening recomputes findings rather than trusting a saved report.
Saving and privacy
Nothing is uploaded. The app makes no HTTP requests and saves nothing automatically. Closing/reloading discards the tab's data; browser leave-page warnings are a convenience, not a backup. Sessions contain input rows and notes in readable JSON. Store and share them under your project policy. Maximum session size is 12 MiB; if exceeded, export reports and prepare narrower source tables.
CSV export prefixes formula-like text with an apostrophe for spreadsheet safety. It is a human review artifact, not a reimport file. Do not import it into a PLC or treat it as an authoritative source list.
If something fails
| Message/problem | Action |
|---|---|
| Cannot fingerprint / worker unavailable | Extract and open the HTML as a local file in desktop Chrome or Edge. An email preview is not a browser application. If your organization blocks workers, use CSV. Keep IT policy intact. |
| Unreadable CSV or wrong columns | Export UTF-8, include the header and choose the separator explicitly. Verify column mapping. Remove title/footer rows in a copy. |
| Workbook exceeds limits / times out | Export only the intended tag worksheet to a plain XLSX or UTF-8 CSV. Split by agreed scope; never ignore skipped rows. |
| Formula warning | Verify the cached value at its original source. If appropriate, create a separately identified values-only export. The tool cannot confirm cache freshness. |
| Session checksum mismatch | Use an unmodified saved session or reload original files and repeat the review. Existing work remains intact when an invalid session is rejected. |
| Old session not accepted | Version 1.0.0 accepts its schema 1 sessions only. Retain the matching application version with your project record. |
Support and acceptance
For the WESLR service, use [email protected] or the contact agreed in your order. Include version 1.0.0, browser/version, input format, worksheet/header, row count, exact error and reproduction steps. Start with a redacted minimal example; do not send confidential plant files without an agreed transfer arrangement. Response time and any extra work follow the accepted order, not an implied unlimited support subscription.
Accept a delivery when the agreed files/revisions, mapping and row counts are accounted for; findings trace back to their source; agreed questions/decisions are recorded; and the delivered session reproduces the CSV/PDF findings. This acceptance concerns the document packet. The customer's engineering owner remains responsible for project correctness.
Built with SheetJS CE 0.20.3, Apache 2.0. Its license is included in the application and THIRD-PARTY-LICENSE.txt. See PROVENANCE.txt for verification sources.