free quality report for PLCopenXML exports

What changed between versions

Two exports of the same project, in a single request. Neither file is stored: the comparison happens in memory and leaves with the response.

This is a demo on a synthetic pair
The files are made up, the story isn't: version two fixed an out-of-bounds array access, dropped a stray statement — and introduced a division by a variable that is always zero. The score went up in the process.

Order taken from the modification date inside the exports: 2026-01-15 → 2026-06-02.

48
2026-01-15
66
2026-06-02
Score: +18
⚠ The score didn't get worse, yet there are new findings. That is exactly what a score hides: comparing scores alone, you'd miss the regression.

New findings

high div-by-zeroPLC_PRG

Gone

high array-boundsustavki
low double-semicolonPLC_PRG

Program blocks

added: +tees
changed: PLC_PRGustavki

Interfaces changed

PLC_PRG
a changed signature breaks whoever calls the block

Setpoints and constants

ustavki: was 5, 60.0 now 3, 55.0

The comparison is structural: findings, POU list, interfaces, setpoints, tasks and device addresses. We don't do a line-by-line text diff of the bodies — it drowns in reordering, and any editor already does it.

Processing happens in memory — the uploaded code is not stored. The tool advises; code changes are up to the engineer (see what the linter can't see). What happens to your code → · Your code & privacy · Industry benchmark · Feedback · GitHub