It’s a simple program, made with lazarus, that allows you to alter (remove or put in place) the “know how protection” setting for programming blocks in the simatic step7 plc range.

When you write a program block for these PLCs, there’s a way to protect it so that other programmers cannot see it, just use it.

The official way is cumbersome and error prone: you have to generate the block source, add an attribute KNOW_HOW_PROTECTED and recompile it. Once protected, you cannot unprotect it, so you have to keep around both copies for debugging. Worse, if you’ve been supplied only with the protected copy, you cannot look under the hood to see how it is working.

This program allows to switch the protection or or off on the fly, so there’s no need to keep two copies.

The project is hosted at github