CMI Home Page
News CMX System Producst Services Support Case Study Contact Us About CMI
Home | Log In | Search | Feedback | Site Map | Site Features | Document Center | Shop | Legal

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.


[ News ] [ Products ] [ Services ] [ Support ] [ Case Studies ] [ Company Info ]
[ Home ] [ Log In ] [ Search ] [ Contact Us ] [ Site Map ] [ Features ] [ Store ] [ Legal ] [ Y2K ]

Questions or comments about this website? webmaster@controlmaster.com
Sales? sales@controlmaster.com

Copyright © Control Master, Inc., 1990-2007 - All Rights Reserved
Last Modified: July 30, 2007