I wonder if there is a way to compare the program that is running in the PLC and my offline source if whoever downloaded to the PLC didn’t include the source?
I know that getting the source out of the PLC is not possible in this case.
What I’m after is a way to check if my offline source is the same version that is running in the PLC. Configuration ID and configuration version is useless because we didn’t manage them at the time…
Yes, basically we didn’t do a good job controlling our versions…
if the source code wasn’t transferred to the PLC (like described here), unfortunately you aren’t able to compare software objects on source level.
The only comparison then possible is on compiled module level (see here), which is based on the binaries size, module version (which also has to be set manually by the developer), and compiled date and time.
This comparison uses the binaries stored in the project, so if the project was recompiled without transferring it, at least the compiled timestamp will be different.
Also versioning might be a good thing to use! You could include the (git) commit details into your software to have exact details of the current software status. Have a look at this awesome repo utilizing the pre build mechanism for example: BuildVersion
But that won’t help you of cours if you’re asking for an older machine