Graduate Student, Department of Computer Science
The George Washington University
Washington, DC
United States of America
This paper describes the relevance of the use of reusable components in industrial automation projects and identifies some of the most commonly occurring components. The paper then proposes a suite of such components describing the salient features of such components and how they may be implemented as part of the proposed suite. The paper also reflects briefly on some component libraries that are currently available commercially, comparing and contrasting them with the proposed suite. Lastly, the paper presents as a case study, the automation of a mission critical process in a steel plant using the proposed suite.
The use of components is a widespread practice in
developing applications, especially for business applications. The use of reusable
components promotes generality and simplicity within organizations, perhaps
even across organizations. Reusable components reduce the effort spent in
system level testing for the application. They allow for consistency in
documentation and provide a level of application stability that is far more
expensive to achieve if applications are developed, so to say, from scratch.
The above advantages of reusable components bear a
greater significance for mission-critical applications, and industrial systems
automation applications form the bulk of such applications. While industrial
automation projects often need a high degree of reliability they are often
unable to bear the high cost involved in achieving the same. The availability
of a package of object components specially suited for automation projects may
provide for such a solution at a significantly reduced cost of development.
Unfortunately, most component libraries available today focus on business
applications, completely neglecting the domain of industrial applications. The
use of components in industrial applications is seen to a limited degree in the
proprietary software packages developed by some of the automation giants like
ABB, Siemens, Toshiba and Voest-Alpine. However, no such library seems to be
readily available that is readily portable across all platforms and interfaces
hardware components of a large cross-section of the industry. The proposed
Calcutta Suite aims to fill this gap.
The name, Calcutta, was chosen for two reasons. Firstly, it is the author’s home and the author has a special attachment to it. Secondly, Calcutta, which is a city in India, is the focal point of a very large number of manufacturing industries that are possible users of the proposed Calcutta Suite. This paper describes the architecture of the Calcutta Suite and describes briefly the many components more pertinent to industrial automation applications. This paper also contains a case study on the automation of the LD process for manufacturing steel in a typical steel factory. The author has used his experience in a similar automation using Digital VAX as a central processor, and proposed a new implementation using Calcutta Suite and CORBA as part of this case study.
Most industrial automation applications involving supervisory control have three distinct capabilities. They need to interact with instruments (acquiring data and issuing control instructions), interact with human operators and interact with enterprise level systems to send or receive broader policy directives.
The interaction with instruments is by far the most important and mission-critical of the three capabilities that are sought from automation applications. Data acquisition is expected to be fault tolerant. Applications may not skip the processing of data that is being fed synchronously from an instrument nor may it ignore an event that is triggered asynchronously, that is via an appropriate interrupt from an instrument. The application is expected to deliver control signals to instruments in a timely fashion. A failure to do this can result in significant damage to life and property in several situations. Any component package specially catering to the automation industry, therefore needs to provide fault tolerance and redundancy in all facets that deliver this capability.
The interaction with human operators, although not as mission-critical as the interaction with instruments, is nevertheless a significant capability, and a very high degree of reliability in such interaction is imperative, if not mandatory, for the component package that is within the scope of this paper. The application is expected to be able to acquire information from various instruments, either by repeated or on-demand requests (interrupts), or from reading from a buffer where the data is being stored since the instrument is delivering it to the application synchronously. The application is then expected to be able to provide this data to the operator, in a form that is readily comprehensible to the operator. The application is also expected to have the capability of sounding alarms when this data indicates abnormal and potential hazardous states. A good example of such capability includes the ability to sound an alarm when the temperature in a certain area becomes abnormally high or low. The mission critical nature of the capability of interaction with human operators is highlighted when it comes to the application’s ability to translate instructions from the operator into control signals for instruments. Failure to do so may result in significant damage to life and property in several situations.
The third capability, the interaction with enterprise level systems, is the least mission-critical. This capability usually allows the application to obtain direction from enterprise level systems that may be conveyed to the operator and used by him/her to make certain policy decisions. This capability also allows the application to send data to enterprise level systems that may be interpreted in various ways, chiefly in the form of reports and spreadsheets. This capability does not need fault-tolerance or redundancy. However, this capability lends the application for interfacing with enterprise wide applications and always is an added plus.
The Technical Analysis section covers how these three capabilities are built into the proposed Calcutta Suite and some other component suites that are currently available.
Based on the three desired capabilities identified in the Problem Statement section, components in any package for industrial automation may be divided into the following three groups:
·
Instrument
Data Handler Components
·
Operator
Console Components
·
Enterprise
Interface Components
A possible definition of the IDH Virtual Instrument interface is as follows:
{
public returnValue getDataSync();
public returnValue getDataAsync();
public returnValue
putDataSync(instrumentData i);
public returnValue
putDataAsync(instrumentData i);
.
.
.
}
A possible implementation of the IDH component interface for an instrument that needs to be interrupted for reads and writes can be as follows:
public class asyncVirtualInstrument
extends PhysicalInstrument
implements VirtualInstrumentEssentials
{
public returnValue
getDataSync()
{
return(ReturnValue.convertFromText(“No sync. Comm.”);
}
public returnValue
getDataAsync()
{
/* Carry out
necessary functions for asynchronous
communication */
.
.
}
public returnValue
putDataSync()
{
return(ReturnValue.convertFromText(“No sync. Comm.”);
}
public returnValue
putDataAsync()
{
/* Carry out
necessary functions for asynchronous
communication */
.
.
}
As mentioned in the Problem Statement section, the IDH components are the most critical in the entire package and require a certain degree of fault tolerance and redundancy in certain cases. Many instruments come with redundant interfaces and it should be possible to have multiple virtual instruments, in other words, a virtual instrument for each redundant interface. This calls for a specialized IDH that has an event handler capable of simultaneously handling multiple virtual instruments. When sending information to the instrument, the event handler may do the following:
· It may send information through one virtual instrument only, unless it encounters an error or failure when it would switch to using another virtual instrument.
· It may randomly send information through any virtual instrument. This process may only be implemented if it is known for fact that the physical instrument is able to consume information written unto its buffer, faster than it can be written, failing which it can lead to ambiguous data. This problem is usually not encountered because larger instruments like distributed process control systems often include (and expect) time stamps as part of their data packets.
· It may maintain a database on the reliability of various virtual instruments and route its packets accordingly to the most reliable virtual instrument. This is by far the most expensive of the three methods and should be used only where an extremely high degree of reliability is required.
In the case of an event being transmitted by an instrument to the event handler, special care has to be taken to ensure that events are received and processed by the event handler in the right order. This raises a question that if events are received in incorrect order, how does the finite state automaton react? Let us say event E2 was received when the event handler was expecting event E1. It may be assumed that E2 would be either incorrectly processed or rejected all together, sending the finite state automaton into an unpredictable state. A possible, but extremely complex workaround may be to retain rejected events, but such level of complexity in the event handler is very likely to fail besides the fact that it would slow down the process due to the significant larger volume of computation. We can therefore surmise that such an event cannot be handled by the IDH with a single event handler and multiple virtual instruments, unless it can be safely established that the event handler is able to receive and consume data faster than it can be written by the physical instrument. In most industrial systems, this case is true and the complex IDH may be easily employed to provide redundancy.
Operator consoles for industrial automation systems
have special needs that are not necessarily met by general-purpose graphical
user interface components. This is largely due to the different nature of the
hardware used for operator consoles.
Unlike users of regular business applications,
operators of industrial processes do not have the luxury of being able to sit
at one place and use a terminal with a mouse to click at buttons, radio buttons
or use drop down menus. Operators often find it convenient to use touch screen
controls and voice operated controls.
Calcutta Suite provides for a variety of GUI
components that are typically suited for touch screen operations. There are
special classes that allow for touch screen vertical and horizontal scroll
bars, radio buttons and buttons. These classes are essentially extensions of
their counterparts in the Swing suite with special methods to incorporate touch
screen functionality. These components have, in addition to the existing events
defined in the Swing suite, methods like fingerTouched
and fingerMoved, that provide for
added functionality to these classes.
In addition to these components, Calcutta Suite provides for some other components that are typically used in industrial automation systems. A good example is the AnalogMeter, which provides a virtual analog meter, a display form that is sometimes preferred over a digital display for certain types of data.
A skeleton implementation of the AnalogMeter class
is as follows:
{
StringBuffer
name;
StringBuffer
unit;
Double
minimum;
Double
maximum;
Double
alarmLow;
Double
alarmHigh;
MeterSize
size;
Double
currentValue;
/*Default
constructor */
public
void AnalogMeter() {};
{
.
.
.
}
/*Generic
constructor with individual elements */
public
void AnalogMeter (StringBuffer _name,
StringBuffer _unit,
Double _minimum,
Double _maximum,
Double _alarmLow,
Double _alarmHigh,
MeterSize _size)
{
.
.
.
}
/*This
constructor sets the low and high alarms outside the range of the meter thereby
deactivating them. Methods to set alarms may be used to change or activate
these alarms */
public
void AnalogMeter(StringBuffer _name,
StringBuffer _unit,
Double _minimum,
Double _maximum,
MeterSize _size)
{
.
.
.
}
/*
This method may be used to set the value of the meter */
public
void setMeter (double _currentValue)
{
.
.
.
}
/*This
method is used to set the lower limit alarm */
public
void setAlarmLow (double _alarmLow)
{
.
.
.
}
/*This
method is used to set the higher limit alarm */
public
void setAlarmHigh (double _alarmHigh)
{
.
.
.
}
Tertiary users of industrial systems include
enterprise-wide users, possibly upper management, who do not have to interact
with either the machine or directly with the actual manufacturing process but
are interested in processing so-called production data to generate information
that can be used in comparatively higher level policy and decision making. The
most common output from such processing is usually a bunch of reports in most
enterprises.
Largely most application development frameworks
usually support this functionality, especially because this functionality is
indeed the least unique of all functionality in industrial systems. Usually
there exists a database object that is a repository of “production” information
populated with information that is received, either automatically or on demand,
from operator console components or instrument data handler components. This
database is then used to generate reports, charts and graphs, and also used to
generate broad directive messages that may be transmitted to operator consoles.
The Calcutta Suite framework allows for the use of a
wide variety of databases like Microsoft Access, Microsoft SQLServer, Oracle,
etc. using Enterprise Java Beans (which inherently uses JDBC). The data in this
database can be used to produce reports and spreadsheets that may be exported
to commonly used text-processing utilities like Seagate Crystal Reports,
Microsoft Excel and Lotus SmartSuite.
Enterprise Interface components may also be used to
produce reports and messages for mobile instruments using Wireless Application
Protocol (WAP). This is of special interest to mobile enterprise wide users,
for example truck and train crew within large factories who may need
information on the move to effectively transport material across the plant.
This case study is based on an automation project
that the author had the privilege of working on very intimately between 1992
and 1994. The computer of choice at the time was a Digital VAX 3400 cluster
which had remote terminals spread out within a radius of a mile to effect the
automation and interfaced with a large number of instruments like a Toshiba
TOSDIC 287 Distributed Process Control System, ABB Programmable Logic Controllers,
ABB Crane Weighing System, Voest-Alpine TTCMG (an instrument that reported the
temperature and carbon content of molten steel), Philips x-ray spectrometers
and interacted with an enterprise-wide local area network for reporting
purposes. This case study assumes that all the field instruments remain
identical, but the VAX 3400 cluster has been replaced by a system consisting of
Windows NT workstations and a Sun Microsystems SPARC server over an
enterprise-wide intranet.
The steel melting shop of this steel plant uses the
LD Process for manufacturing steel from molten iron produced in the blast
furnaces. The LD process entails blowing oxygen through a pipe called a lance,
into the molten iron that is contained in a vessel called the LD converter. The
oxygen reacts with the carbon, phosphorus and sulfur in the impure molten iron
producing carbon dioxide, phosphorus pentoxide and sulfur dioxide. The oxygen
is blown until the right level of carbon is achieved for the specific grade of
steel. This process is extremely exothermic and therefore some coolants like
lime and scrap steel are added. Lime reacts with the oxides of sulfur, carbon
and phosphorus and floats to the top as slag, removing all impurities. Also,
Ferro-alloys are added to achieve compositions of specific grades of steel.
This process is extremely fast and economical and produces very high quality of
steel. However, the speed with which the process is executed makes it very
difficult to control. This is exactly where the need for a fully automated
manufacturing process becomes imperative.
The two main raw materials for this process are the
molten iron, referred to as hot metal, and stored in a series of mixers much
like the asphalt or concrete mixers that keep turning to keep the metal from
solidifying, and scrap steel which are kept in a scrap bay. The storage area
for both materials therefore need operator consoles that may be built using the
operator console components and some instrument data handler components.
The mixer bay has three instrument data handlers –
one for the ABB Crane Weighing System that measures the weight of the hot metal
being tipped into what is called a ladle, one for the Voest-Alpine DigiTemp
instrument that periodically measures the temperature of the hot metal in the
mixers and one for capturing the result of the periodic analysis of the hot
metal that is performed by a Philips x-ray spectrometer. The console provides
graphical display of various mixers and allows for the accounting of the mixer
bay inventory. The operator console also receives instructions from the
Production Planning & Control room as to what quantity of hot metal may be
required.
The scrap bay has one instrument data handler for
the ABB Crane Weighing System that measures the weight of scrap steel being
carried by the magnetic cranes either from wagons and trucks into the scrap bay
or from the scrap bay into the scrap boxes that are loaded and eventually
emptied into the converter. The console provides graphical display of the
various chutes that are used for storing the different kinds of scrap steel and
allows for the accounting of the scrap bay inventory. There are also graphical
displays of the scrap boxes the information of which is shared between the
scrap bay and Production Planning & Control.
The most vital console in the entire process is in
the converter control room. The operator here controls the movement of the
converter itself. The converter moves between four different positions, for
loading, blowing (term for when the oxygen is actually “blown” into the hot
metal, de-slagging and unloading. Also the converter has a large number of
hoppers above it which are used to add lime and other additives and also for
the addition of ferroalloys. The Toshiba Distributed Process Control System
directly controls the converter. Therefore, there is an instrument data handler
for the Toshiba DPCS. The console receives information regarding
·
the
converter position,
·
the
oxygen blowing status (oxygen pressure and volume and the depth of the “lance”
which impacts the quality of the steel produced),
·
status
of the additive hoppers and sends the so-called “blow regime” which is a series
of instructions to the DPCS to blow oxygen at a certain pressure at a certain
depth for a certain duration.
·
open
and close various hoppers
·
move
the converter
The following steps are performed by the operator
console in the converter control area.
·
The
operator receives instructions from Production Planning & Control for
producing a certain grade of steel. This information is displayed on the
console screen.
·
The
operator console transmits this information to an object that uses a
statistical model to predict the raw material requirements for this grade of
steel.
·
The
operator console receives the raw material requirements from the statistical
model object.
·
The
operator console then prompts the operator to select the most appropriate
loaded scrap box by displaying all loaded scrap boxes which it obtains by
interacting with the operator console in the scrap bay and helps decide on a
certain amount of hot metal that needs to be ordered.
·
The
operator selects the orders and the console transmits the order to the console
objects in the scrap bay and hot metal bay.
·
The
converter console receives notification of the raw materials released by the
scrap bat and the hot metal bays. The scrap bay and hot metal bays dispatch the
requested raw materials by rail, which are received in the converter area.
·
The
raw materials are then loaded into the converter and the event is transmitted
to the converter console.
·
The
converter console again transmits all the information about the raw materials
loaded to the statistical model object.
·
The
statistical model object then transmits the blow regime and the additive regime
back to the operator console. Once the regimes are available, the console
prompts the operator to initiate the blow.
·
As
soon as the operator initiates the blow, the console transmits the regimes to
the DPCS, which sends the appropriate signals to various stepper motors and
other switches to actually initiate the mechanical process.
·
While
the “blow” is on, the console object closely monitors the DPCS signals and
displays all relevant data on the console screen. If any value reaches alarming
proportions, the relevant audio or visual alarms are sounded.
·
The
console halts the blow when it is about 90% complete, and sends instructions to
the DPCS IDH to de-slag, then it instructs the laboratory analysis probe IDH to
take a sample and transmit it to the Philips x-ray spectrometer IDH, also it
initiates the Voest-Alpine TTCMG IDH to measure the temperature and oxygen
content in the contents of the converter. Then it waits for this information to
be transmitted back.
·
The
console receives the information from the spectrometer and TTCMG and sends the
same for a third time to the statistical model object and receives corrected
regimes for the remaining 10% of the blow.
·
At
the end of the blow, it again requests the laboratory probe IDH and TTCMG IDH
to analyze the composition of the steel produced, and if it falls within the
range of the desired grade, it sends request to the DPCS IDH to unload.
·
If
the desired grade is not achieved the console requests the statistical model
object to transmit another regime and continues with additional blows until the
desired grade is achieved.
The DPCS communicates with the supervisory system
(in our case, the DPCS IDH) by way of data tags. The tags are transmitted by
the DPCS either periodically (synchronous) or on demand (asynchronous). The
DPCS IDH is therefore designed to handle both synchronous and asynchronous
communication with the DPCS. The DPCS IDH receives the following tags from the
DPCS instrument:
·
Lance
depth (synchronous)
·
Oxygen
pressure (synchronous)
·
Oxygen
volume (synchronous)
·
Converter
position (synchronous)
·
Hopper
weights (asynchronous)
The DPCS IDH sends the following instruction tags to
the DPCS instrument:
·
Move
converter
·
Send
hopper weight
·
Set
lance depth
·
Set
oxygen pressure
·
Reset
oxygen volume counter
The DPCS occasionally sends incorrect information or
tags out of order. The DPCS IDH is capable of trapping false events and
rejecting them.
The other consoles used in this application are as
follows:
·
The
Continuous Casting console, which interacts with the converter console to
decide how the molten steel produced should be cast into solid steel. This
console uses a good number of enterprise interface components as well.
·
The
Laboratory console provides for a method to control the x-ray spectrometers by
interacting with their respective IDH, and also provides for a method of manual
analysis entry in the event the IDH fail.
·
The
Argon Rinsing Unit Console interacts with the ARU IDH and the laboratory and
converter consoles and also interacts with the statistical model object to
determine how much argon should be blown into the steel produced from the
converters to remove bubbles.
The Production Planning & Control is a GUI
application that is developed largely out of the enterprise interface
components. Enterprise interface components are also used for designing modules
for various agencies within the enterprise linked by the intranet. WAP
applications using the enterprise interface components are used to provide
communication links with crews operating trains that bring in raw materials and
remove finished products from the factory.
This paper describes the general idea of the Calcutta Suite as a framework for automation applications development. The actual design of the framework and the various components within this framework are largely outside the scope of this paper. The author intends to continue with his concept of the Calcutta Suite and through the course of other relevant term papers during his tenure as a graduate student and, hopefully, as part of his doctoral thesis, develop Calcutta Suite as a fully functional framework with widespread commercial use.
Industrial automation applications require high reliability and have largely repeatable processes, lending themselves to be developed using patterns, and therefore components. Since industrial applications largely mimic real world instruments, they are appropriate candidates for object-oriented design. Industrial automation applications however use specific components that are usually not provided by general-purpose application development frameworks and therefore the necessity of specific frameworks that cater to these needs.
The Calcutta Suite is such a framework, which provides a variety of components for instrument data handling, operator consoles and enterprise-wide reporting modules within automation applications.
1.
Kaisler,
S., Lectures 5, 6, 7, 8, 9 and 10 from CS211 Advanced Software Paradigms, The
George Washington University, 2000.
2.
Daconta,
Michael C., Java for C/C++ Programmers, John Wiley & Sons, Inc., New York,
1996.
3.
Orfali,
R. & Harkey, D., Client/Server Programming with Java and CORBA, John Wiley
& Sons, Inc., New York, 1997.
4.
Hardy
Software Systems, Inc., Houston, TX, http://www.hsoft.com.
5.
Toshiba
of Australia Limited, Sydney, http://www.toshiba.com.au.
6.
Chatterji,
A., Usmani K. H. et al, Design Document from LD Bhilai, CMC Limited, Calcutta,
1994.
7.
Various
inputs from literature from Siemens, ABB and Voest-Alpine.