Nested Calls; Types Of Blocks - GE PACSystems RXi User Manual

Distributed io controller
Table of Contents

Advertisement

Edition online help.
6.1.4

Nested Calls

The CPU allows nested block calls as long as there is enough execution stack space to
support the call. If there is not enough stack space to support a given block call, an
Application Stack Overflow fault is logged. In these circumstances, the CPU cannot execute
the block. Instead, it sets all of the block's Boolean outputs to FALSE, and resumes execution
at the point after the block call instruction.
Note:
A call depth of eight levels or more can be expected, except in rare cases where
several of the called blocks have very large numbers of parameters. The actual call depth
achieved depends on several factors, including the amount of data (non-Boolean) flow used
in the blocks, the particular functions called by the blocks, and the number and types of
parameters defined for the blocks. If blocks use less than the maximum amount of stack
resources, more than eight nested calls may be possible. The call level nesting counts the
_MAIN block as level 1.
6.1.5

Types of Blocks

PACSystems supports four types of blocks.
Block Type
Block
Parameterized Block
User Defined Function
Block (UDFB)
External Block
All block types automatically provide an OK output parameter. The name used to reference
the OK parameter within a block is Y0. Logic within the block can read and write the Y0
parameter. When a block is called, its Y0 parameter is automatically initialized to TRUE. This
results in a positive power flow out of the block call instruction when the block completes
execution, unless Y0 is set to FALSE within the logic of the block.
For all block types, the maximum number of input parameters is one less than the maximum
number of output parameters. This is because the EN input to the block call is not considered
to be an input parameter to the block. It is used in LD language to determine whether or not
to call the block, but is not passed into the block if the block is called.
GFK-2816F
To halt the CPU when there is not enough stack space to execute a block, there are
two choices. The best method is to add logic to detect the occurrence of any User
Application Fault by testing the diagnostic bit %SA38, and then call SVC_REQ 13 to
halt the CPU. An alternative method is to add logic that tests for a negative OK value
coming out of the block and then call SVC_REQ 13 to halt the CPU.
Local Data
Has its own local data
Inherits local data
from caller
Has its own local data
Inherits local data
from caller
Programming
Size Limit
Languages
LD
128 KB
FBD
ST
LD
128 KB
FBD
ST
LD
128 KB
FBD
ST
C
user memory size limit
(10 MB)
August 2015
Chapter 6. Program Organization
Parameters
0 inputs
1 output
63 inputs
64 outputs
63 inputs
64 outputs
Unlimited internal member
variables
63 inputs
64 outputs
99

Advertisement

Table of Contents
loading

This manual is also suitable for:

Icrxictl000

Table of Contents