-

Refactoring Variables and FB Types

This topic contains the following sections:

General Information

Refactoring means modifying (improving) the structure of existing source code while preserving its functional behavior.

PLCnext Engineer supports refactoring by providing a mechanism for the automatic and consistent modification of object (variable, FB instance, etc.) properties. Consistent means that the properties to be replaced are considered throughout the solution: in each variables table, Data List, at each code location and within the HMI application. This way, an object can, for example, be renamed with a single step without any functional impact on the code.

The 'Refactoring' context menu command is available if exactly one object is selected in the following editors:

Specifics when refactoring safety-related data

The impact that refactoring (safety-related) variables/instances has on the safety-related application is solely your responsibility as the solution developer. Therefore, the following must be observed before refactoring safety-related variables or instance names.

WARNING
Unintended machine operation
  • Make certain that suitable organizational measures (according to applicable sector standards) have been taken to avoid hazardous situations if the application logic functions in an unintended or incorrect after the refactoring.
  • In the 'Refactoring' window, carefully check all occurrences of affected safety-related variables/instance name before you perform the refactoring as described in step 5 below.
  • Verify the impact of refactored variables.
  • Validate the overall safety-related function with regard to the refactored variables/instance names and thoroughly test the application.

Specifics when refactoring function block instances

Refactoring procedure

  1. If required: First rebuild the project manually ('Project > Rebuild') after adding a variable. (The 'Refactoring' command is only available after rebuilding the project or the cross references are up to date.)
  2. In the editor, right-click the object to be modified and select the 'Refactoring' command from the context menu.

    In the Cross Function Area, the REFACTORING window is opened.
    The window lists all locations where the respective object is used in your project : declarations, code accesses and usages in the HMI application.

    Double-clicking a location in the list opens the respective editor (data list, code etc.) with the object highlighted.

  3. In the first grid row, under the 'New Values' group, enter or select a new name, type or comment (all other properties are read-only)

    The 'Type' field provides a list of the data types and FB types (FB names) available in your project. When selecting another type, ensure that the new type matches the type of the defined type.

  4. Specify the locations, where the properties are to be replaced by the new values.

     : the new values will replace all existing values when executing the refactoring command.
     : location will be kept unchanged.

    The window toolbar provides two icons for deselecting or selecting all locations.

  5. Make sure...
    • you have followed the instructions in the hazard message above this procedure, and
    • your selection does not result in a code error due to inconsistencies
    before you apply the refactoring in this step.

    1. Click the icon on the toolbar to apply the refactoring to the selected locations.
    2. Click the icon on the toolbar to refresh the content of the REFACTORING window.
After the refactoring process is completed...

Window toolbar

Icon / Command1
Refreshes the list of locations.
Replaces the existing values at the selected locations by the new values entered under the 'New Values' group. The list is automatically updated after refactoring is completed.
Selects (activates) all locations listed in the window.
Deselects (deactivates) all locations listed in the window.

Double-clicking a location in the list opens the respective editor (data list, code etc.) with the object highlighted.