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

Page 19

Advertising
background image

Trusted

TM

AN-T80009 Trusted

TM

Intelligent Online Updates

Issue 4 Nov 08

AN-T80009

19

1.12. Temporary Variables and Function Blocks (before release 3.5.1)

Unexpected shutdowns and loss of latched data is possible during intelligent online updates (IOU). The
primary cause is that when the variables wired to a function block parameters are changed, the IOU
manager cannot link this function block in the new compiled code with the same function block in the
existing code, because the function block is only referenced by its connected variables.

However, the IOU manager will include a warning in its report when this happens. When the IOU
manager parses these changed function blocks, it will report a function block as DELETED and a
function block as NEW but it cannot link the two. The result is that the value of local variables in the
'new' function block are returned to their initial values. This may have the effect of losing latched states,
e.g. counters, latches states etc., which are used in the logic, or it may lose a latched trip state on an
ESD logic function block, causing a shutdown. Whenever a function block is reported as DELETED
and NEW, it is guaranteed to lose its internal variables back to initial values.

Variables connected to function block can be changed in two ways:

1) User editing the tag to link to a different named variable

2) Temporary variables renumbered on compilation due to a change in the program structure

The first change is obvious and planned, but the second is unexpected, which has led engineers to
ignore the IOU report of deleted and new function blocks and to download the update. Temporary
variables are assigned to the following elements:

1. Corners (connection points) often used to tidy logic

wiring in function block diagrams (FBD)

2. Wires from function/function block outputs to function/function block

inputs, including feedbacks to the same block

3. Inline constants (values typed directly into a tag)

4. Wires that do not have a named variable available or adequate to determine the wire colour in

the online debugger, if Power Flow Debugging is enabled.

Whenever a program is compiled, these temporary variables are assigned names in sequence. The
sequence is dependent on the order that the program was created and if a section of logic is cut and
pasted, it will be moved to the end of the source code and its temporary variables will be moved to the

Advertising