Tool to detect changes to (Siemens, Rockwell) PLC's

Hi I am looking for a tool that can detect changes to a program running in a Siemens or Rockwell PLC.
We do have a sw archive for this, but many changes are made to programs without being archived.
I'd like to compare the latest copy in the sw archive to the current running program, to see what's been changed
and at least get more control over changes (Yeah yeah, it can be forbidden, but it doesn't help)