Considerations and limitations for License Source Protection

Considerations and limitations when using License Source Protection with routines and Add-On Instructions for Compact GuardLogix 5380, CompactLogix 5380, CompactLogix 5480, ControlLogix 5580, and GuardLogix 5580 controllers.
  • License Source Protection and execution protection cannot protect Sequential Function Chart routines.
  • License Source Protection and execution protection cannot protect Function Block Diagram routines.
  • Cannot overwrite a locked routine with a locked routine of a different language. To replace a locked routine with a locked routine of a different language, first unlock the routine in the target file.
  • Cannot overwrite a locked routine with an unlocked routine, or an unlocked routing with a locked routine. To replace a locked routine with an unlocked routine,or an unlocked routine with a locked routine, first delete the routine to replace.
  • If overwriting a locked ladder logic routine that contains label (LBL) instructions with a locked ladder logic routine that contains similar labels, other workstations can lose correlation with the project. To recover correlation, upload the project on the affected workstations.
  • The controller SD card holds a maximum of 63 active or expired licenses, plus the Rockwell activation license for execution protection. If the SD card contains more than 64 licenses, downloads to the controller with license-protected content fail. To remove unwanted licenses, use the removal option on the Wibu administration portal.
  • When locking an Add-On Instruction, the data included in tags is protected but not to the extent that the logic is protected. If your tags contain sensitive data, Rockwell recommends putting that data in character string literals rather than in tags. Literals are protected at the same level as the logic in locked routines and Add-On Instructions. In programmable logic, a literal is a value that is expressed as itself rather than as a variable's value or the result of an expression.
  • Project conversion might fail when converting a project containing locked routines or Add-On Instructions to a newer version of the Logix Designer application.
    In this version of the Logix Designer application, License Source Protection does not support these routine types:
    • Safety routines.
    • Sequential Function Chart routines.
Function Block Diagrams on Compact GuardLogix 5380, CompactLogix 5380, CompactLogix 5480, ControlLogix 5580, and GuardLogix 5580 controllers, unless the Function Block Diagram is included in an Add-On Instruction. However, License-protected Function Block Diagrams are supported are supported in both routines and Add-On Instructions on CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370, and GuardLogix 5570 controllers.
Locked component limitations
After a routine or an Add-On Instruction (AOI) is locked, strict limits apply to changes made to the routine or to other components the routine references. This table lists limitations that apply to locked components. An authorized user can run a locked component. To view or edit a component an authorized user must unlock the component.
Cannot resize an array that is referenced by a locked routine.
x
Cannot change the target of an alias that is referenced by a locked routine.
x
Cannot change a BOOL alias that targets the bit of an integer to target a different bit. However, changing the alias to target a different integer is allowed.
x
Cannot change the target of an alias that is referenced by a locked routine to a tag of a different type.
x
Cannot change the target of an alias of a member of a UDT or array element to a target at a different offset from the beginning of the tag.
x
Cannot change an alias referenced by a locked routine to a base tag.
x
Cannot change a base tag that is referenced by a locked routine to an alias.
x
Cannot change an InOut program parameter that is referenced by a locked routine to anything other than an InOut program parameter.
x
Cannot change a Produced tag to anything other than a Produced, Consumed, Module Input tag or Module Output tag when the Produced tag is:
  • Referenced by a locked routine, and
  • Used in a COP, CPS, MAOC or as an InOut argument to an AOI in that locked routine.
x
Cannot change a Produced tag that is used in an IOT instruction to anything other than a Produced or Module Output tag.
x
Cannot change a Consumed tag to anything other than a Produced, Consumed, Module Input tag, or Module Output tag when the Consumed tag is:
  • Referenced by a locked routine, and
  • Used in a COP, CPS, MAOC or as an InOut argument to an AOI in that locked routine.
x
Cannot change a Module Input tag to anything other than a Produced, Consumed, Module Input tag, or Module Output tag when the Module Input tag is:
  • Referenced by a locked routine, and
  • Used in a COP, CPS, MAOC or as an InOut argument to an AOI in that locked routine.
x
Cannot change a Module Output tag to anything other than a Produced, Consumed, Module Input tag, or Module Output tag when the Module Output tag is:
  • Referenced by a locked routine, and
  • Used in a COP, CPS, MAOC or as an InOut argument to an AOI in that locked routine.
x
Cannot change a Module Output tag that is used in an IOT instruction to anything other than a Produced or Module Output tag.
x
Cannot change a standard tag referenced by a locked routine to a Produced, Consumed, Module Input, or Module Output tag, if that tag is used by a COP, CPS, MAOC or used as an AOI InOut argument in that locked routine.
x
Cannot re-order the members of a User Defined Type of a tag that is referenced by a locked routine or AOI.
x
x
Cannot change the data type of a tag that is referenced by a locked routine.
x
Cannot update a profile in a way that changes the data type of a Module Defined Tag that is referenced by a locked routine.
x
x
Cannot add, remove, or change the data type of a member of a User Defined Data Type of a tag that is referenced by a locked routine or AOI.
x
x
Cannot reorder, add, change the data type of, or remove parameters in an AOI referenced by a locked routine or AOI.
x
x
Cannot convert a project containing locked routines or AOIs to a different controller family.
x
x
Cannot move locked routines or AOIs to a project of a different controller family.
x
x
Cannot change the target of an AOI output parameter that aliases a local tag if the AOI is used in a locked AOI.
x
Cannot change the targets of two aliases referenced by a locked routine currently targeting different base tags to the same base tag.
x
Cannot change the targets of two aliases referenced by a locked routine currently targeting the same base tag to target different base tags.
x
Cannot change the type of a base tag targeted by an alias that is referenced by a locked routine.
x
Cannot change an external Output that is referenced by a locked routine to a non-Output.
x
Cannot change an external Output that is referenced by a locked routine to a local Output.
x
Cannot change a local tag that is referenced by a locked routine to an external Output.
x
Provide Feedback
Have questions or feedback about this documentation? Please submit your feedback here.