Protecting S7 blocks


david mertens


The know-how protection can only be set in a source file. So what you have to do is generate a source file from your code. This can be done
with the standard editor. In this source file header you can add the line KNOW_HOW_PROTECT. If you now compile the source code then the FB
or FC will have the attribute know-how protected. You can see this in the object properties of the FB or FC. However as long as the source
code exists in the source folder of the CPU you will still be able to open and edit the file. Once the source file is removed, it will no
longer be possible to view the code in the FB or FC.

Jeff Winborn

What I do is generate the source code from within the FB editor. Then open the source file and insert KNOW_HOW_PROTECT at the bottom of the
header information. Save and compile. The KNOW_HOW_PROTECT statement should not be in braces or assigned to 'true'.

Jeff Winborn
Sr. Controls Engineer
Industrial Systems Design
(423) 282-6088
[email protected]

Zan Von Flue


To Know-how-protect OB,FB,FC and DB's

1. create a AWL source with:
open editor -use (file) (Generate Source)
enter name of .awl and add file or files
2. Open AWL source
3. Somewhere - say, after version - add the text
4. compile - (file) (compile)
5. done


Leon Vangorp


Why should you protect your S7 FB's and FC's?
A client has the right to read, check and alter the programs he has paid for! (I believe there was once a discussion about this item on this forum.)

And, as averybody knows (now), it's easy to unprotect them with a little program called S7 CAN OPENER from RUNMODE.COM.

So leave it, it's useless.


Donald Pittendrigh

Hi All

Open the FB/FC, on the file menu you can export
the code to a text file (within the Step7 program)
then go to the place where you want the code
protection to begin and add know_how_protect into
the text on its own line, recompile and the job is
done. Do not loose the source code or you will
not be able to get in again.

Donald Pittendrigh

Jacek Dobrowolski


I know about one solution. In the STL or SCL source code of your program block put a line: KNOW_HOW_PROTECT. Compile it. Remove source code from the project. After it your block is protected. Do not loose this source code - without it you are not able to open this block

Best regards,

Jacek Dobrowolski, M. Sc. E. Eng.
Software Eng.

ITM Poland Ltd.
direct line: +4848 3686341
fax: +4848 3686101
mailto: [email protected]

Andrew Hawdon

Know how protection is one of the ways of protecting your S7 Blocks. This method is excellant for protecting individual blocks. However if you wish to protect the whole PLC program then it is possible to configure this in the hardware configuration tool under the protection option. There are 3 levels of protection that can be selected, the default is via the key switch.

1.That is when the key switch is in the run position it can be removed and the program can be viewed but not altered. In the RUN-P position the program can be viewed and altered.
2. write protection via a password.
3. read write protection via password

The password is defined in the hardware protection




I think you need to generate a Source, add the appropriate statement, compile and your block is protected

There is a way to unprotect S7 blocks without paying someone for a little piece of software.
I agree with the person who says a client has the right if the client has payed for the system integratator to write the software.
I will not at this stage reveal how to unprotect blocks without any specially written software but it is quite easy.