Sequence and Batch Control
The Sequence and Batch Control System is based on
the ANSI/ISA-S88.01-1995 Batch Control Model. Batch control is
built on a database structure called a Unit. A Unit groups
multiple logical devices and process equipment into a single logic
control entity. Up to 10 Units can be configured in the CMXä
Process Control System.
CMXä also
offers a suite of utilities and functions for configuring,
maintaining, and reporting Unit History. These include:
- The Unit Builder for creating and modifying Units
- Unit History Files for logging and storing Unit historical
data
- The Unit History Report Writer for generating tabular and
graphical reports
- A Unit Status Display with four sub-displays for monitoring
and controlling Units, and for controlling how the System
collects Unit History data
- A Sequence Control Language (SCL) for developing applications
- A Standard and Custom Master and Control Recipe Management and
Queuing System
The Unit Status Display
The Operator monitors and issues console commands to
a Unit from the Unit Status Display.

Sequence Status
The top portion of the Unit Status Display features
five sequence slots, each of which may have an SCL program assigned
to it. The sequence slots’ data fields show the status of
each program as it is running. The name of the program
assigned to the slot appears next to the slot number followed by the
phase name and step number currently being executed.
Unassigned slots are listed as free.
The other fields tell the Operator:
- Whether the program is executing normally, if it has been
delayed or interrupted, or if it is waiting for input,
- The number of seconds remaining on a wait-state
- Any recipe assigned to the program. (Recipes are basically
arrays that provide quantities, times, temperatures, etc., used
in the process.)
- The time at which the program started running
- Any error codes that may have been generated

Data Logging
The bottom portion of the Unit Status Display, the
data logging portion, is for monitoring Unit history recording
activity. Each Unit can be configured to selectively record
historical data to a Unit History File, either periodically or on
demand, in a time/date-stamped format. Unit History Files can
easily be viewed in a text or graphic format and can be printed or
exported to a spreadsheet file using the Unit History Report Writer.
Periodic logging is based on the Unit’s balance
period, an increment set when a Unit is configured, and can be any
block of plant or process operation time that fits the application.
Up to 1000 balance periods per Unit are possible.
Logging frequency is expressed in multiples of 10 seconds with
a 10,000 second maximum.
The Unit Status Display also shows the Operator;
- Whether any logging operations are currently taking place or
are pending
- The name of the Unit History File
- The number of records logged - up to 10,000 maximum
- The next scheduled log time for periodic logging
- The time the current balance period started
- The number of records logged in the present balance period
- The number of balance periods performed
When they are enabled, any alarms that occur on the
Tag(s) will also be logged in the Unit History File. On demand
logging is not affected by, and does not effect, balance periods.
Four Unit Status Sub-displays
The Unit History Configuration Sub-display
details the Unit History File and the current data logging
configuration. This includes the maximum number of records
allowed, maximum Tags allowed to be logged, the maximum balance
periods in the Unit History File, and all Tags currently selected to
be logged into the Unit History File. When enabled, the “wrap
full file” parameter permits new data to be recorded at the
beginning of the file, overwriting the existing data once the number
of records in the Unit History File reaches maximum. When
disabled, a warning message is issued and no additional data can be
recorded in the file.
The Unit Common Data Sub-display lists the
current value of each of the common variables associated with the
Unit. Common variables are those variables accessible to all
SCL programs running on the Unit. The Operator can examine or
change values stored in the Unit’s common variables from here.
The Unit Tag Configuration Sub-display
presents a list of Tags assigned to the Unit along with their
configured interrupt priorities and masks. The Operator can
also change the interrupt priority from here.
The Operator can call the Unit Messages and
Comments Sub-display to view a list of the most recent messages
issued from SCL program(s) running on the Unit or to enter comments
that will be logged into the Unit History File. The most
recent user-comments entered are also displayed here.
Unit Builder
The Unit Builder is an interactive utility for
adding, deleting, and modifying Units. The Unit Builder also
generates a pre-formatted Unit Configuration report.
Parameters that specifically address Unit History
functions within the Unit builder are:
- Logging frequency which means the length of time that
passes before the System writes historical data to the Unit
History File.
- Balance Period which can optionally be included to
contain logging events within a greater span of time such as a
shift or a work day.
- Last Index to Log which tells the System which of the
Unit’s Tags will be logged in the Unit History File.
Unit History
In addition to the Continuous History System
described above, CMXä supports
a Unit History System that allows collecting information on a per
batch Unit basis rather than logging all the Tags in the System.
The data is collected in individual Unit History Log Files.
Each log file can hold the following type of information:
- Spot logs of the PVs of all Tags assigned to a Unit
- User variable values
- A log of alarms for all Tags assigned to a Unit
- Operator-entered text comments about the Unit
- Balance periods
- Messages from SCL programs
- Messages from the CMXä
System
Unit Historical data can be logged three ways;
- Automatically by user-defined time intervals,
- On demand by an Operator console command, or
- By design through an SCL application program.
A Unit History File can be configured to acquire
historical data until it is filled and closed by the System or to
record indefinitely by wrapping to the beginning and overwriting the
oldest data once the number of records in the file reaches maximum.
Unit History Report Writer
The Unit History Report Writer is a companion tool
of the UHS Data Logging System. The Report Writer is used to
extract records from Uhs Log Files according to a specific criteria.
Since the UHS Log File is of a special format (its
contents appear as encrypted data that are meaningless when dumped
to a printer) the UHS Report Writer can interpret the data and
export it to a Lotus, Access, Excel, DBASE, PARADOX, FoxPro, NOMAD
or other similar programs.
The UHS Report Writer can display information in
five modes:
- Tabular reports, either on-screen or for printing,
- Graphical reports either on-screen or for printing
- Reports for export to a spreadsheet
The UHS Report Writer also supports three different
methods for extracting report data.
Ad Hoc
These are free format reports where all selection,
sorting and output information is entered by the user. This
method is the most time consuming, but definitely the most flexible.
Predefined
These are special reports generated by custom
programs which contain selection and sorting information, as well as
specific user input configuration. This method is often used
where the same report is routinely generated.
Default
These are predefined reports which are not limited
to a single Unit. This method is normally used where the same
type of information is being logged in all CMXä
Units and a common report will suffice.
The report duration may be configured based on four
different time span selection options:
- Reports by time interval with a specific date and hour start
and stop time
- Reports by balance period using the CMXä
System time interval for a Unit’s balance periods
- Reports by a specified number of the most recent records
logged
- Reports by a specific number of the most recent logging hours

Since the UHS Data File contains many diverse pieces
of information pertaining to a Unit, the type of records to report
on must also be selected. At least one record type must be
selected, with no limit on the maximum number of record types which
may be selected.
The record types which are logged and which can be
extracted by the UHS Report Writer are:
- Periodic Process Values
- Demand Process Values
- Sequence Process Values
- Unit Alarms
- System Messages
- Sequence Messages
- Sequence Variables
- Operator Comments
- Balance Period Messages
The user is also allowed the option of selecting the
sorting method for the report. The chronological method organizes
all data according to log time with different record types
intermixed in the report. The sort method organizes data
according to record type so that record types are not intermixed in
the report.
Sequence Control Language (SCL) Programming
Language
SCL programs direct the normal, sequential,
time-driven operations of a process Unit, and deal with unexpected
events within the plant or process Unit. Within a Unit, one or
up to five SCL program(s) may run independently and/or interactively
to coordinate and facilitate process control. SCL programs
also respond to Operator commands from the console.
PROGRAM SECTIONS
An SCL program is composed of six sections, each
having an execution priority that determines the conditions
necessary to interrupt it.
The declaration section is where the
application engineer states all Tags and variables that will be used
throughout the program. Declaring a Tag makes all of that Tag’s
parameters available to the program.
SCL variables are global,
that is, each variable is available to all other program sections.
The normal logic section provides logic for
the sequential operation of the Unit. It can be divided into
as many named phases and steps as required by the
application. Phase and step names provide the Operator console
with messages on the current stage of a program’s execution.
Depending on a Tag’s interrupt priority, an alarm-triggering
event can suspend execution of the normal section and pass control
to the hold, restart, or shutdown sections to determine the action
to be taken. Here, phase and step names may be used to provide
re-entry points for resuming normal execution following such
contingency events. Control can also be passed to another
section by an Operator command from the console.
The hold section handles recoverable alarm
conditions and brings the Unit to a safe condition prior to
restarting it. Then, the program can either return control
directly to the normal section, or it can transfer control to the
restart or shutdown section, depending on the severity of the alarm.
The restart section contains instructions to
prepare the plant for the resumption of normal operation after a
hold condition.
The shutdown section handles non-recoverable
alarm conditions and the safe shutting-down the Unit. It must
end its execution by stopping the program. Control cannot be
passed to another section from the shutdown section.
Finally, a subroutine section is available
for use by the normal, hold, shutdown, and restart
sections.

LANGUAGE ELEMENTS
The following functional categories describe SCL’s
mission capabilities:
- Data Definition and Structuring
- Directing Logic Flow
- Controlling Digital Devices
- Logging Data
- Controlling Interrupt Priorities
- Operator Interaction
- Handling Recipes
- Calculations and Functions
- Program Interaction with Other Batch Control Programs
Data Definition and Structuring
SCL’s structure directives delineate program
sections, declare variables, define the program’s phases and
steps, and locate contingency logic and subroutines within the
program.
SCL recognizes six types of variables:
- Up to 254 independent or specific Tags
- Up to 255 user-defined variables
- Up to 255 recipe variables
- Up to 60 pre-named logging variables
- The System makes up to 200 common variables possible per
program
- SCL’s system variables are used to access information such
as the name of the phase and step number being executed, the
number of the Unit on which the program is running, and the name
of the Tag that triggered alarm
Directing Logic Flow
SCL’s function set contains familiar logic flow
commands such as if, then, else, for, next,
while, goto, etc. These commands and their
associated comparative and logical operators are used to alter the
normal straight-line processing of program statements and to
re-direct processing to deal with situations as they are reported.
Controlling Digital Devices
SCL’s special commands act, on, start,
deact, off, stop toggle the output of a digital
Tag between its active and inactive states according to how the Tag
was originally built. The check command reads the state
of a digital Tag’s input and branches according to the result.
Logging Data
Data logging commands control what gets recorded in
the Unit History File, as described above. Parameters that can
be logged include:
- Tag name
- Tag description
- Tag PV values
- Balance periods
- Logging variable values
- Unit messages
- Operator comments
Controlling Interrupt Priorities
These types of commands are used with Tags that are
assigned to the Unit on which the sequence is running. A Tag
can interrupt a SCL program’s execution when the following four
conditions are met:
- The Tag belongs to the Unit on which the program is running
- The Tag goes into an alarm condition
- The Tag’s interrupt state is enabled for that SCL program
- The Tag’s interrupt priority is higher than the program’s
execution priority when the alarm occurs
The effects of a Tag’s going into alarm depend on
that Tag’s interrupt priority and the program section being
executed.
Operator Interaction
A set of Operator interaction commands facilitates
sending messages to the operator, clearing old messages from the
console, and coordinating Operator input.
Handling Recipes
The recipe and fetch commands let the
Operator assign an external array of values (called a recipe) to the
program and retrieve individual recipe items for use by the process
as needed. Recipe items typically stand for times, quantities,
temperatures, etc., associated with the process being controlled by
the program.

Calculations and Functions
SCL’s calc command performs numeric
calculations on user-defined variables, logging variables, and Tag
parameters by using a set of powerful pre-defined functions.
For example, the ramp command increments the value of a
Tag parameter at a specified rate until a final value is reached.
Interaction with Other SCL Programs
SCL allows passing values between SCL programs on
the same Unit or between different Units by storing values in common
variables accessible to other SCL programs.
Custom Recipe Management and Queuing
A recipe is a collection of information that defines
specific product requirements that a sequence control program can
use to operate and produce. The use of a recipe, external to
the program, allows the Application Engineer the opportunity to
modify the quantities, times, temperatures, etc., used in the
process without having to recompile programs for every change.
A customized Recipe Management System capable of
handling a volume of recipes that exceeds the System’s usual 255
limit and that facilitates any type of Tag can be modified to meet
the specifications of any CMXä
application. Additionally, the customized system
features individualized operating displays for entering and editing
data, string support for batch IDand site specific data, batch
history information, and facilities for recipe queuing.
The Engineer can prepare several control recipes
from a master recipe while storing up to 20 recipes in the queue.
The queue shows a recipe’s status, whether active or
inactive, and accommodates on the queue editing prior to its being
loaded.
|