How to protect programs from being copied?

Hi
How to protect my module from being copied (downloaded or written down via the Teaching Pendant) and operator still can edit other rapid ?

I want to protect my program without affecting the operator.

It should be a system module with attributes NOVIEW and NOSTEPIN.

You can Automatically Load modules and have them hidden. From the System Parameter manual:

Hidden
Parent

Hidden belongs to the type Automatic Loading of Modules, in the topic Controller.

Description

RAPID modules, routines and data may be hidden, which may be used to prevent inexperienced end users from tampering (accidentally deleting or changing) with the contents.



Note that the hidden contents is not protected! It can easily be shown again by setting the parameter value to NO.



Note that any hidden contents will still be available when using the SetDataSearch instruction to search RAPID data.

Limitations

This parameter affects only modules, routines, and data that are loaded automatically on start, that is no programs etc. that are loaded by the operator once the system has been started.



Changes to the parameter will be effective only after using the restart mode Reset RAPID.

Allowed values

YES or NO.



Default value is NO.

Hi lemster68 ,j_proulxFB

I tried your suggest.

Output window show "Syntax error(136)Unexpected ‘sysmodule’ "

Could you please give me some advice on this issue ?

Hello,
These parameters are for entire module not PROC.
With RS, when you create a new module, you can add these parameters.
So you can see how to make.

Doing like this don’t prevent copy or modify your module with text editor (or RS).

Denis is correct, Module level, not PROC. From the Rapid Kernel Manual: SYSMODULE
| NOVIEW
| NOSTEPIN
| VIEWONLY
| READONLY These attributes must be in this order.

Also, I re read a little better the manual and see that NOVIEW should be the only one you need, because it excludes NOSTEPIN.

And I am also seeing that it can be a program module, not just system.

Its also good practice to setup operator credentials to prevent access to certain aspects of the controller.

There is also an optional parameter at the routine level called \switch Dummy which removes the routine from view on the pendant but can be viewed from robotstudio.

image.png