Introduction
Blocks are software subroutines that are included in the tasks to be run in the controller. Within the ToolboxST* application,
the connections are accomplished graphically using pins and wires to form a data flow diagram. The blocks run in the order
listed in the task. The connections between the blocks are RAM memory elements through which data is passed. These
elements are referred to as variables. Each variable has a defined data type and must be connected to pins of the same data
type. Some block pins accept multiple data types and others are capable of converting from one data type to another.
Each block entry in the library consists of the following:
• Block name and category
• Block description
• Block diagram
• Pin definitions
• Application notes (optional)
Each block has a full name and a simple name. The full name is descriptive and too long to display in a block diagram. For
this reason, all blocks have a simple name. The simple name is displayed in the ToolboxST application.
Floating point (REAL and LREAL) values conform to IEEE® 754. The standard defines certain computational exceptions that
may produce non-standard results, such as divide by zero. These non-standard values include infinities and Not a Numbers
(NaNs), which, if used in subsequent calculations, produce additional non-standard results. The software has been designed to
prevent the production and proliferation of such values. Function block descriptions may include additional details concerning
floating point exception handling where needed.
Block Libraries also contain rubber blocks, which are sized according to the number of pins used. Within the library, the
blocks are grouped functionally to simplify the task of converting ideas into blocks. For example, the Controller Monitor
(CTRLR_MON) block is a member of the System category.
Note Pin names are given modifiers that provide additional information about the pin.
A graphical representation of the software for each block is provided in the form of a block diagram that includes the simple
block name and block configuration pins and variable pins, which transfer data in and out of the block. The pins are located
on the block diagram according to their usage. All input pins (pins read by the block) and block configuration pins are listed
on the left. All output pins (pins written by the block) and state pins (pins read and written by the block) are listed on the
right. The pin name is listed beside each pin inside the block diagram border.
Pin Name Modifiers Description
^ prefixed with a carat (^ONREQ) Pin is rising-edge sensitive
[ ] suffixed with square brackets (STATE[4]) Pin expects a variable that is an array of the size indicated
within the brackets
Block Data Type
The pin data type identifier is listed beside the pin outside of the block diagram border. The basic data types used in the block
libraries are BOOL, INT, UINT, REAL, LREAL, DINT and UDINT. Blocks with data types ANY_NUM and ANY must have
the Block Data Type set to match the intended data type of the block output.
Note The default value of Boolean inputs is False unless the input is a block Enable, in which case the default is True and
the default value of inputs with data types INT, UINT, DINT, UDINT, REAL and LREAL is 0, until otherwise specified.
The block content provides tables to define the input and output pins. Each entry includes the block name for the variable,
basic data type, typical scaling units, and a description of the variable. Typical scaling units are supplied for reference only;
specific applications may use other scaling units as appropriate.
Data Type Identifier Basic Data Type Description
A Any (ANY) Any data type
B Boolean (BOOL) 8-bit Boolean
I Integer (INT) 16-bit Signed Integer
DI Double Integer (DINT) 32-bit (Long) Signed Integer
R Real (REAL) 32-bit Floating Point
LR Long Real (LREAL) 64-bit (Long) Floating Point
UI Unsigned Integer (UINT) 16-bit Unsigned Integer
UDI Unsigned Double Integer (UDINT) 32-bit (Long) Unsigned Integer
N Numeric (ANY_NUM) Any data type except Boolean
S Analog or Boolean (Simple) Any simple data type
Data Type Identifier Type Definition Modifier Description
# m Build time constant
Note The Block Data Type is set in the block Property Editor.
Changing Data Type of a Variant Block
There are few blocks that support more than one data type as an input and/or output.
➢ To change the block data type
1. Select the block for which to change the data type.
2. From the Block Properties window, expand the General section.
3. From the Property Editor, select the Block Data Type.
4. From the Block Data Type drop-down box, select a valid data type for the block
Legacy Category Blocks
Some of the controller software blocks have been put into the Legacy Category (this is the category that is used by the
ToolboxST Block Diagram Editor). This category is different than the blocks that reside in the Legacy Block Library. Legacy
category blocks are supported but not recommended for use in any new controller applications (ControlST V05.02 or later).
They are in the LEGACY category because no new development is to be done to add any new functionality to these blocks. In