Trusted, Intelligent online updates – Rockwell Automation T8xxx Application Note Trusted Intelligent Online Updates User Manual

Page 20

Advertising
background image

Trusted

TM

AN-T80009 Trusted

TM

Intelligent Online Updates

Issue 4 Nov 08

AN-T80009

20

end of the list. Therefore all temporary variables that are displaced in the source code will have new
names. If these are wired to function blocks, then the function blocks will change their assigned
variables across the update and will appear as deleted and new and lose their internal states. These
function blocks may include logic which the user has not changed.

The following methods are recommended for dealing with changes affecting temporary variables.

1. Put new logic in a new program. This will not affect existing programs.

2. Use Structured text (or Instruction List) for programming. This forces the need to declare each

use of a function block in the 'FB Instances' dictionary. Structured text and Instruction List
which calls function blocks will not have any problem with temporary variables and IOU.

3. Create a named variable, which can be a local variable, for every temporary variable instance

listed above which wires into a function block. This will ensure that the variable names stay the
same across an update. These can be added to logic in two stages.

The first stage involves the creation and placement of these variables, but only wire the
appropriate data to the input of the tag (the logic will not compile if the variable tag is unused).
This will not change the list of temporary variables. Perform an update, which will use the
intelligent update. The logic function will not change because the variables are not driving any
logic.

The second stage is to wire the variables to their destination, replacing the temporary
variables. Update this new version. This will apply a 'normal' online update, which does not
change function block data.

4. If the same variable is wired to many function blocks through a corner, e.g. a global reset,

eliminate the corner by wiring the real variable directly to each function block. Note that this will
require a shutdown because all affected function blocks will lose their internal state, unless the
above two stage method is used. It is possible to tidy wiring by selecting a number of wires and
typing Ctrl-A ('align').

Note that release 3.5.1 Toolset provides facilities for manual matching of function blocks, to avoid the
loss of function block local variable states. It also traces the source of inputs beyond immediate
connections from ‘corners’, thus defining the true input.

Advertising