Chapter 4. Ladder Diagram (LD) Programming
GFK-2950C
February 2018
219
Using OFDT, ONDTR and TMR in Program Blocks not Called Every Sweep
Care should be taken when timers (ONDTR, TMR, and OFDTR) are used in program blocks that are
not
called every sweep. The timers accumulate time across calls to the sub-block unless they are
reset. This means that they function like timers operating in a program with a much slower sweep
than the timers in the main program block. For program blocks that are inactive for large periods of
time, the timers should be programmed in such a manner as to account for this catch up feature.
Timers that are Skipped by the Jump Instruction
You should not program a Jump around an instance of OFTD, ONDTR or TMR. Timers that are
skipped will
not
catch up and will therefore not accumulate time in the same manner as if they were
executed every sweep.
Note:
Timer function blocks do not accumulate time if used in a block that is executed as a result of
an interrupt.
Using OFDT, ONDTR and TMR in Parameterized Blocks
Special care must be taken when programming timers in PACSystems parameterized blocks. Timers
in parameterized blocks can be programmed to track true real-time as long as the guidelines and
rules below are followed. If the guidelines and rules described here are not followed, the operation of
the timer functions in parameterized blocks is undefined.
Note:
These rules are not enforced by the programming software. It is your responsibility to ensure
these rules are followed.
The best use of a timer function is to invoke it with a particular reference address exactly one time
each scan. With parameterized blocks, it is important to use the appropriate reference memory with
the timer function and to call the parameterized block an appropriate number of times.
Finding the Source Block
The source block is either the _MAIN block or the lowest logic block of type Block that appears above
the parameterized block in the call tree. To determine the source block for a given parameterized
block, determine which block invoked that parameterized block. If the calling block is _MAIN or of
type Block, it is the source block. If the calling block is any other type (parameterized block or
function block), apply the same test to the block that invoked this block. Continue back up the call
tree until the _MAIN block or a block of type Block is found. This is the source block for the
parameterized block.
Programming OFDT, ONDTR and TMR in Parameterized Blocks
Different guidelines and rules apply depending on whether you want to use the parameterized block
in more than one place in your program logic.
Parameterized block called from one block
If your parameterized block that contains a timer will be called from only one logic block, follow these
rules:
1.
Call the parameterized block exactly one time per execution of its source block.
2.
Choose a reference address for the timer that will not be manipulated anywhere else. The
reference address may be %R, %P, %L, %W, or symbolic.
Note:
%L memory is the same %L memory available to the source block of type Block. %L memory
corresponds to %P memory when the source block is _MAIN.
Summary of Contents for PACSystems RSTi-EP
Page 357: ......
Page 466: ...Chapter 9 Diagnostics GFK 2950C February 2018 451 ...