Skip to content

v1.3 — Windows exe: reads .export and PLCopenXML

Latest

Choose a tag to compare

@github-actions github-actions released this 23 Oct 07:56
· 8 commits to main since this release

Local version of PLC Lint for Windows: one file, no install, no Python.

Everything runs on your machine — the tool makes no network calls at all, and nothing
is uploaded anywhere. Drop a .xml (PLCopenXML) or a .export (CODESYS project export)
onto plc-lint.exe: an HTML report appears next to the file and opens in your browser.

Why .export is worth it. PLCopenXML carries the programs only. The CODESYS
.export also carries the device tree and the visualisation, so every program rule
works there and five checks no other analyser does, because every other analyser
reads ST:

  • sensor type cleared on a channel that has a variable bound to it — the channel is
    never digitised and the variable stays at 0.0 (on an outdoor sensor that reads as a
    plausible 0 °C)
  • analog output bound to a variable while its mode is off
  • module excluded from the scan (Disable_module)
  • one variable shown on screen under two different labels (copy-pasted element)
  • the number in the label does not match the index in the variable
    ("Boiler 3" ↔ alarm_boiler[2])

What .export does not give. Task configuration is stored differently in that
format, so the watchdog and duplicate-Modbus-address rules stay silent there.

43 rules in total. From the command line: plc-lint.exe project.export. On Linux and
macOS the same engine runs as python cli.py project.export — standard library only,
no dependencies.

The file is not code-signed. On first run Windows shows "unknown publisher" →
More info → Run anyway. Since you have no publisher to trust, check the file
instead:

SHA-256  a8d16ee62b374aaebdd2be8aca6d95fd48d57e40138615260070dbc4cab149c0
Get-FileHash plc-lint.exe -Algorithm SHA256