Robot Parameter Data Protection

For OEM’s who control their mechanism with a Guidance Controller, at times it is desirable to protect the mechanism’s configuration parameters to inhibit people from altering key tuning and setup parameters. For example, it is sometimes important to prevent anyone from altering the parameters that specify the mechanism’s maximum permitted motor currents/torques and speeds.

All Guidance Controllers provide a protection method that permits all of the parameters that are stored in the robotxx.pac file (where “xx” ranges from 01 to 12) to be protected or unprotected as a group. This protection is controlled by a password and only the parameters for a single robot can be protected on a controller at any given time.

Requirements

The following are required to utilize this capability:

  1. The target controller must be executing GPL 4.0 i5 or later.
  2. A copy of the ProtectGPL.exe Windows PC program must be obtained from Precise. This is a small standalone utility that encrypts and decrypts files using a password as a key.

Enabling Protection

To enable protection of a robot’s parameters, follow this procedure

Step Action

1.  

Get the configuration file (robotxx.pac) for the robot to be protected.

2.  

Execute the ProtectGPL.exe program on a Windows system to encrypt the robotxx.pac file. This program is self-explanatory and requires the following input values:

  • An input file name (robotxx.pac).
  • An output file name. This should be the same as the input file name with the file extension changed from “.pac” to “.ppc” (robotxx.ppc).
  • A password that will be used to encrypt the file. The password is case sensitive and should not contain blanks, “/”, or “:”.
  • An optional string description that will be stored in the encrypted file.

3.  

Copy the encrypted file to the flash drive of the target controller (/flash/config).

4.  

Using the web interface, access DataID 170 “Robot configuration protection password” on the target controller and set the same password that was used to encrypt the file. (See below for detailed information on DataID 170).

5.  

Reboot the controller.

For production environments, the “Guidance Update Wizard” can be employed to automatically perform steps 3 and 4.

Effects of Enabling Protection

Once a controller has been password protected and the robotxx.ppc file is loaded, the standard behavior of the controller will be altered as follows:

  1. Only an encrypted robotxx.ppc file with a matching password can be loaded into the controller. An un-protected file or a file that does not have a matching password will be rejected.
  2. All of the parameters that are stored within the robotxx.ppc file will be read-only both from the web interface and from any executed GPL program. So, none of these parameters can be modified.
  3. When the operator saves the controller configuration files via the web interface, the robotxx.ppc file will not be written.

At any time, DataID 170 can accessed with the specified password to disable protection of the robot configuration data. When the protection is disabled, the operation of the controller immediately reverts to its normal handling of the robot configuration parameters.

Database Parameters

The following Parameter Database values are utilized for this facility:

Parameter Database ID Parameter Name Type #Val Description

170

Robot configuration protection password

String

32

A String value that enables, disables, and modifies the encryption (protection) of the robot configuration file (robotxx.pac/ppc). Only one robot file may be protected at any time.

The value displayed is "[No Password]" if no password is set and no configuration file is protected. Else, "[Robot n Password]" is displayed if a password is set for robot n and its configuration file is protected.

To modify the current protection state, a value must be written to this DataID. This value is described below.

To modify the current protection state, a value must be written to DataID 170. This value should be of the form:

[PASSWORD]=new_password {/old_password}{:n}

    where

For example:

"[PASSWORD]=test"

Sets the robot 1 password to "test", assuming there is no existing password.

"[PASSWORD]=/test"

Clears the password "test" and leaves all robots unprotected.

"[PASSWORD]=abc/test:2"

Changes the existing password "test" to "abc" and protects robot 2.

(HIDDEN) The Controller ID value (DataID 114) will always match the old password value in case you forget the password and want to change it.

End of Section