U.S. patent application number 11/929646 was filed with the patent office on 2008-09-11 for control system apparatus and systems based thereon that transfer control apparatus information over ip networks in web page-less transfers.
This patent application is currently assigned to INVENSYS SYSTEMS, INC.. Invention is credited to Bruce S. Canna, Gerald S. Couper, Richard L. Thibault.
Application Number | 20080222276 11/929646 |
Document ID | / |
Family ID | 24812561 |
Filed Date | 2008-09-11 |
United States Patent
Application |
20080222276 |
Kind Code |
A1 |
Thibault; Richard L. ; et
al. |
September 11, 2008 |
Control system apparatus and systems based thereon that transfer
control apparatus information over IP networks in web page-less
transfers
Abstract
A system for process control comprises a server digital data
processor and a client digital data processor that are coupled by a
network, such as the Internet or an Intranet. The server digital
data processor, which is additionally coupled to a control/sensing
device and any associated interface equipment (collectively,
referred to as "process control apparatus"), includes a command
processor that transfers information between the network and the
process control apparatus. The client digital data processor
includes an information client (e.g., a so-called Internet web
browser) capable of requesting and receiving an applet from the
server digital data processor. The information client, further,
defines a hardware-independent and operating system-independent
virtual machine environment within the client digital data
processor. The client digital data processor executes, within that
virtual machine environment, an applet for configuring the client
digital data processor as a "process controller" that establishes
communications over the network with the command processor and that
monitors and/or controls the process control apparatus via those
communications.
Inventors: |
Thibault; Richard L.;
(Wrentham, MA) ; Canna; Bruce S.; (Mansfield,
MA) ; Couper; Gerald S.; (Pepperell, MA) |
Correspondence
Address: |
NUTTER MCCLENNEN & FISH LLP
WORLD TRADE CENTER WEST, 155 SEAPORT BOULEVARD
BOSTON
MA
02210-2604
US
|
Assignee: |
INVENSYS SYSTEMS, INC.
Foxboro
MA
|
Family ID: |
24812561 |
Appl. No.: |
11/929646 |
Filed: |
October 30, 2007 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10765006 |
Jan 26, 2004 |
|
|
|
11929646 |
|
|
|
|
09379074 |
Aug 23, 1999 |
6799195 |
|
|
10765006 |
|
|
|
|
08700199 |
Aug 20, 1996 |
|
|
|
09379074 |
|
|
|
|
Current U.S.
Class: |
709/220 ;
709/224 |
Current CPC
Class: |
H04L 29/06 20130101;
G05B 19/4186 20130101; H04L 67/12 20130101; G05B 2219/31083
20130101; G05B 2219/33148 20130101; G05B 2219/31161 20130101; Y02P
90/12 20151101; G05B 19/4185 20130101; G05B 19/41835 20130101; H04L
67/34 20130101; Y02P 90/02 20151101 |
Class at
Publication: |
709/220 ;
709/224 |
International
Class: |
G06F 15/173 20060101
G06F015/173; G06F 15/177 20060101 G06F015/177 |
Claims
1-48. (canceled)
49. A digital data processor for use in a control system that
includes a control apparatus that has one or more control/sensing
devices, the digital data processor executing a program received by
it over an internet protocol (IP) network, the program configuring
the digital data processor to receive, via the IP network,
information associated with the control apparatus, where that
information does not comprise, nor is it received within, a web
page.
50. The digital data processor of claim 49, where the program
configures the digital data processor to receive the information
from the IP network in a text form.
51. The digital data processor of claim 49, where the program
configures the digital data processor to exchange messages over the
IP network in text form for purposes of at least one of monitoring
and controlling the control apparatus.
52. The digital data processor of claim 49, where the program
configures the digital data processor to generate requests for
information associated with the control apparatus.
53. The digital data processor of claim 52, where the program
configures the digital data processor to generate the requests for
transmission on the IP network in a text form.
54. The digital data processor of claim 53, where the program
configures the digital data processor to generate the requests and
to receive the information in order to monitor the control
apparatus.
55. The digital data processor of claim 53, where program
configures the digital data processor to generate the requests and
to receive the information in order to control the control
apparatus.
56. The digital data processor of claim 49, where the information
comprises a process variable associated with the control
apparatus.
57. The digital data processor of claim 49, wherein the digital
data processor receives the program from a server that is coupled
to the IP network.
58. The digital data processor of claim 57, wherein the server is
associated with the control apparatus and wherein the interface
executes at least in part on the server.
59. A control system, comprising A. a digital data processor in
communication coupling with a control apparatus via an internet
protocol (IP) network, the control apparatus comprising one or more
control/sensing devices to monitor and/or control a process, and B.
the digital data processor executing a program received by it over
the IP network from a server associated with the control apparatus,
the program configuring the digital data processor to receive, via
the IP network, information associated with the control apparatus,
where that information does not comprise, nor is it received
within, a web page, C. where the program configures the digital
data processor to receive the information from the IP network in a
text form, D. n interface that is coupled to the control apparatus
and to the digital data processor, the interface generating said
information in response to a request generated by the program.
60. The control system of claim 59, where the interface generates
the information in a text form.
61. The control system of claim 59, wherein the interface executes
at least in part on a server.
62. The control system of claim 59, wherein the program comprises a
program that executes in a web browser.
63. The control system of claim 59, wherein the program configures
the digital data processor to generate, as at least one of the
requests, a request for a process variable associated with the
control apparatus.
64. A control system, comprising A. a control apparatus comprising
one or more control/sensing devices to monitor and/or control a
process, B. a digital data processor executing a program within a
web browser, the program (i) configuring the digital data processor
for monitoring the control apparatus, (ii) generating a request for
information associated with the control apparatus, C. an interface
in communication with the control apparatus and with the digital
data processor, the interface responding to the request for
transmitting information associated with the control apparatus,
where that information does not comprise, nor is it received
within, a web page.
65. A control system, comprising A. a control apparatus comprising
one or more control/sensing devices, B. a server digital data
processor that is coupled to the control apparatus, C. a client
digital data processor in communication coupling with the control
apparatus and with the server digital data processor, D. the client
digital data processor executing a program that configures the
client digital data processor for monitoring the control apparatus,
the program comprising any of (i) a JAVA applet, (ii) an
intermediate language program, (iii) a byte code program, (iv) a
downloaded program that executes in a virtual machine environment,
(v) a program that executes in a web browser, E. at least one of
the control apparatus and the server digital data processor (i)
having an object that stores a data value associated with the
control apparatus, and (ii) responding to a request for that object
by transmitting to the client digital data processor the data
value, where the data value is transmitted other than as or within
a web page.
66. The control system of claim 65, where the data value is
transmitted in a text form.
67. The control system of claim 65, wherein the transmitted data
value represents a process variable associated with the control
apparatus.
68. A portable wireless device for use in a control system that
includes one or more control/sensing devices, the portable wireless
device executing a program received by it over an internet protocol
(IP) network from a server associated with the control apparatus,
the program configuring the portable wireless device to receive,
via the IP network, information associated with the control
apparatus, where that information does not comprise, nor is it
received within, a web page.
69. The portable wireless device of claim 68 adapted for use in a
control system in which the process control apparatus includes said
one or more control/sensing devices to monitor and/or control a
process.
Description
BACKGROUND OF THE INVENTION
[0001] The invention pertains to process control and has
application to remote process control.
[0002] Process control refers to the control of the operational
parameters of a system by monitoring one or more of its
characteristics over time. It is used to insure that the quality
and efficiency of the system remain within desired parameters over
the course of time. While process control is typically employed in
the manufacturing sector for process, repetitive and discrete
manufactures, it also has wide application in service industries,
such as environmental control.
[0003] Process control equipment typically utilizes control/sensing
devices that are physically integrated into the systems being
controlled. For example, a thermostat is typically used in
environmental control to insure that building temperatures remain
within specified parameters. Likewise, flow control sensors and
automated valves are typically used in process manufacturing to
insure proper fluid flow volumes.
[0004] Though in early process control systems, control/sensing
devices were typically stand-alone units, modern process control
systems provide central workstations for monitoring and controlling
the control sensing devices. Particularly robust systems are the
I/A Series industrial automation systems designed, manufactured and
marketed by the assignee hereof, The Foxboro Company, of Foxboro,
Mass., USA. In these systems, multiple control/sensing devices are
coupled by way of buses to control stations which, in turn, are
coupled by way of a local area network (LAN) to one or more
operator workstations.
[0005] The I/A Series systems are built around the client/server
model. Client applications software executing on the workstations
exchange information with the control/sensing devices via a server,
referred to as the "object manager," executing in distributed
fashion in the control stations. Upon request by a client
application, the server creates, locates, accesses and updates data
structures ("objects") storing information on the status of at
least selected control/sensing devices. For example, a client
application that displays temperatures sensed by a thermocouple
requests that the server create an object storing a temperature
reading from the thermocouple and that the server notify the client
each time the temperature changes.
[0006] Although modern process control systems, such as the I/A
Series systems, have proven quite successful, to date they have
provided only limited remote access capabilities. Thus, while
numerous operator workstations may reside within the factory or
facility in which the control/sensing devices are disposed, it has
traditionally proven difficult to access and control those devices
outside those areas.
[0007] Remote access and control of processes is desirable for a
number of purposes. A plant manager who is "on the road," for
example, may wish to monitor the plant processes while travelling.
By way of further example, the manufacturer of process control
equipment may require remote access to a plant's control/sensing
devices in order to provide technical support.
[0008] An object of this invention is to provide improved methods
and apparatus for process control.
[0009] Another object of the invention is to provide such methods
and apparatus as permit monitoring and control of remote
processes.
[0010] Still another object of the invention is to provide such
methods and apparatus as can be readily adapted to existing
automated process control systems.
[0011] Yet still another object of the invention is to provide such
methods and apparatus as can be implemented without undue expense
and without undue consumption of resources.
SUMMARY OF THE INVENTION
[0012] The aforementioned objects are among those attained by the
invention, which provides, in one aspect, a system for process
control comprising a server digital data processor and a client
digital data processor that are coupled by a network, such as the
Internet or an Intranet. The server digital data processor, which
is additionally coupled to a control/sensing device and associated
interface equipment (collectively, referred to as "process control
apparatus"), includes a command processor that transfers
information between the network and the process control
apparatus.
[0013] The client digital data processor includes an information
client (e.g., an Internet web browser) capable of requesting and
receiving an applet from the server digital data processor. That
information client, further, defines a hardware-independent and
operating system-independent virtual machine environment within the
client digital data processor.
[0014] The client digital data processor executes, within that
virtual machine environment, an applet that configures the client
digital data processor as a "process controller" that establishes
communications over the network with the command processor and that
monitors and/or controls the process control apparatus via those
communications. The applet is intermediate or executable code that
is suitable for interpretation or execution within the virtual
machine environment and that is hardware-independent, operating
system-independent and windows system-independent
[0015] In further related aspects, the aforementioned applet can
be, for example, JAVA programming language bytecode, and the
virtual machine environment can be that created by a JAVA-enabled
web browser.
[0016] According to other aspects of the invention, the command
processor in a system for process control as defined above provides
services (i.e., "software services") for access and modification of
information regarding the process control apparatus. These services
can permit, for example, the creation of a data structure object
that stores information about the process control apparatus and
that associates a name with that object; the destruction of such an
object; the accessing of information in such an object; the
updating of information in such an object; the determination, from
an object name, of the physical address of the object; and the
notification of changes in information stored by the object. The
process controller generates and transmits over the network to the
command processor requests for such services in order to monitor
and/or control the process control apparatus.
[0017] A further aspect of the invention provides a system as
described above in which the process controller generates and
transfers commands (e.g., requests for service) over the network to
the command processor in order to effect a transfer from the
command processor of information regarding a status of the process
control apparatus. The command processor responds to those requests
by generating information on the status of the process control
apparatus and transferring it back to the process controller over
the network. The process controller can, for example, generate a
user display based on that information.
[0018] In a related aspect, the command processor responds to
selected commands (i.e., requests for event-driving access) by
notifying the process controller of changes in the status of at
least selected aspects of the process control apparatus. By way of
example, where the process control apparatus includes a
thermocouple, this aspect of the invention permits notification of
the command processor whenever the thermocouple senses a change in
temperature that exceeds a predetermined delta value.
[0019] Still further aspects of the invention provide process
control systems as described above in which the server digital data
processor includes an information server (e.g., a hypertext
transfer protocol server). An information client (e.g., web
browser) in the client digital data processor establishes
communications with the information server over the network and
receives therefrom a hypertext markup language (HTML) document
referencing the applet. The web browser generates a user display of
that document and, in response to a user command, transfers to the
information server a request for the applet.
[0020] Yet still further aspects of the invention provide systems
for process control in which a first digital data processor
executes a JAVA applet within a virtual machine environment defined
on the digital data processor. The applet configures the digital
data processor to generate a message to invoke a method in
connection with monitoring and/or controlling a process control
apparatus. An object manager, which is in communication with the
JAVA applet, responds to the message for invoking the method.
[0021] Other aspects of the invention provide methods for process
control paralleling the operations of the systems described
above.
[0022] These and other aspects of the invention are evident in the
drawings and in the detailed description that follows.
BRIEF DESCRIPTION OF THE DRAWINGS
[0023] A further understanding of the invention may be attained by
reference to the drawings, in which
[0024] FIG. 1 depicts a system for process control according to the
invention; and
[0025] FIG. 2 is an event trace diagram depicting messages that
flow among the components of the system of FIG. 1 in an embodiment
for graphing tends in process control apparatus data values.
DETAILED DESCRIPTION OF THE ILLUSTRATED EMBODIMENT
[0026] FIG. 1 depicts a system 10 for process control according to
the invention. The system includes client digital data processors
12, 14 and server digital data processor 16. The digital data
processors 12, 14, 16 are connected to one another via network
18.
[0027] Server digital data processor 16 is, additionally, coupled
to process control apparatus 19a-19e via bus/network structure 30
and control stations 23a-23e, as shown. The process control
apparatus include conventional control/sensing devices, which are
shown in the illustration as flow control valves, and associated
interface equipment, which are marked "FBM" in the illustration.
The process control apparatus 19a-19e are intended to represent any
conventional control/sensing devices and interface equipment of the
type conventionally used to monitor and control
processes--including, by way of non-limiting example, continuous,
repetitive and discrete processes, and environmental control
processes, among others.
[0028] As discussed below, control stations 23a-23e include objects
storing information that control, and reflect the status of, their
associated process control apparatus 19a-19e. The control stations
23a-23e also execute object management software (marked "OM") that
manage and oversee access to those objects. The control stations
23a-23e are of the type conventionally used in a distributed
process control architecture. Preferred such control stations are
commercially available from the assignee hereof, The Foxboro
Company, as part of its I/A Series industrial automation
systems.
[0029] The digital data processors 12, 14, 16 comprise conventional
digital data processing systems of the type commercially available
in the marketplace. Though client digital data processors 12, 14
are illustrated as a portable computer and a personal digital
assistant, respectively, those skilled in the art will appreciate
that these may comprise other computing systems, such as desktop
computers and workstations, as well. The digital data processors
12, 14, 16 may be coupled to the network 18 directly, as shown, or
other networks (e.g., LANs and WANs), routers, or interface servers
(not shown).
[0030] The network 18 comprises any conventional digital data
processing network (e.g., LAN or WAN), cable television-based
network, wireless network and/or any telecommunications-based
network capable of supporting communications between server digital
data processor 16 and client digital data processors 12, 14. The
network 18 preferably comprises the global Internet and/or an
enterprise-based Intranet supporting communications via the TCP/IP
protocol (i.e., the current standard protocol of the Internet).
Utilization of networks supporting this protocol is advantageous
insofar as it permits the use of commercially available products
(such as web browsers, discussed below) in components of the
illustrated embodiment. Those skilled in the art will appreciate
that the invention is applicable to networks supporting other
protocols, as well.
[0031] The digital data processors 12, 14, 16 execute software that
respectively configure them for communication over the network 18.
For example, they execute protocol stacks and other software that
permit them to establish and carry out communications utilizing the
TCP/IP network protocol. In addition, they execute information
client/server software that configures them to carry on high-level
communications, particularly, over the Internet.
[0032] More particularly, in the illustrated embodiment, server
digital data processor 16 includes information server 20
responsible for establishing communications over network 18 with
information clients executing on the client digital data processors
12, 14.
[0033] The information server 20 is preferably a hypertext transfer
protocol (HTTP) server capable of transferring markup language
information and, particularly, hypertext markup language (HTML)
documents, to the client digital data processors 12, 14. In
alternative embodiments of the invention, information server 20 can
comprise any other such server capable of supplying an applet to
the client digital data processors 12, 14 in response to requests
by them.
[0034] The information server 20 establishes communications with
the client digital data processors 12, 14 and, particularly, their
respective information clients in the conventional manner known in
the art. Once communications are established, the information
server transfers to the information client an applet that executes
within the virtual machine environment and that monitors and/or
controls the process control apparatus via communications with a
command processor in the server digital data processor 16, as
discussed below.
[0035] The client digital data processors 12, 14 include
information clients 22, 24, respectively, that are responsible for
initiating and conducting at least preliminary communications with
the server digital data processor 16 over the network 18. The
information clients 22, 24, particularly, (1) initiate
communications with the information server 20 over the network, (2)
request and receive from the information server 20 an applet, and
(3) define a platform-independent (i.e., a hardware-independent,
operating system-independent and window system-independent) virtual
machine environment within the respective client digital data
processor 12, 14. Such information clients are, in one embodiment,
JAVA-compliant web browsers including the HotJava browser from Sun
MicroSystems, Inc., NetScape Navigator from Netscape Communications
Corporation, and the Internet Explorer from Microsoft
Corporation.
[0036] As used herein, an applet is intermediate or executable code
suitable for interpretation or execution within the virtual machine
environment and that is hardware-independent, operating
system-independent and windows system-independent. Preferred
applets are in the form of Java bytecode of the type generated by
the Java language compiler available from Sun Microsystems,
Inc.
[0037] The aforementioned preferred web browsers define a preferred
virtual machine environment comprising the Java programming
language run-time platform and Java interpreter.
[0038] Although a preferred information client is a web browser,
the invention can be practiced with other information clients
capable of (1) initiating communications with the information
server 20, (2) requesting and receiving from the information server
20 an applet, and (3) defining a platform-independent (i.e., a
hardware-independent, operating system-independent and windows
system independent) virtual machine environment within the
respective client digital data processor 12, 14 for execution of
such an applet.
[0039] In addition to information server 20, server digital data
processor 16 includes command processor 25, comprising front end
25a, interface section 25b, and an object manager 25c. Together,
these transfer information between the network 18 and process
control apparatus 19a-19e. As shown in the illustration, the object
manager functionality is distributed among the control stations
23a-23e. Each object manager maintains the data structures--to wit,
objects--that control and reflect the status of its associated
process control apparatus 19a-19e.
[0040] The object manager 25c provides software services for access
that permit the creation of named objects; destruction of such
objects; accessing and updating of information in the objects; the
locating of objects within the distributed process control
architecture; and notification of changes in the information stored
in objects (i.e., event-driven notification).
[0041] As noted, the object manager 25c allows uniquely named
objects to be distributed over the control stations 23a-23e in a
location-independent way. Using the object manager 25c (via front
end 25a), applets 26, 28 may create, read, write, and destroy
instances of objects, which are subtyped into four categories:
variaible--used to contain an instance of any scalar data type
(e.g., int, float, etc.) or a string; alias--used to contain a
string which refers to the name of another object; device--used to
identify a station or device in the system. An instance of a device
type object contains no explicit state--the name of the object is
itself the state; and process--used to identify an executing
process in the system. A process object is identical to a device
object in that there is no explicit state.
[0042] As indicated above, in order to manipulate instances of
objects, the object manager 25c provides life cycle services,
access services and connection services. Life cycle services are
used to create, name, and destroy shared objects; to register the
name of process-control objects; and to find the location of any
object. Access Services are used to get and set the value of one or
more process-control and/or shared objects. Typically, access
services are suitable for situations where a single transfer of
data is sufficient.
[0043] Connection services are also used to get and set the value
of one or more process-control and/or shared objects. However,
these services are more suited for situations where multiple
transfers of data are expected. In addition, connection services
provide the ability for a client to be continuously updated with
the value of an object when it exceeds a specified delta.
[0044] The object manager 25c relies upon the use of broadcasts
over bus stricture 30 in order to perform the above services. For
example, when an applet 26, 28 makes an access request on an object
by name, the object manager 25c will broadcast the access request
to all stations 23a-23e, if the object manager 25c does not know
the location of object. Each station 23a-23e then determines if it
is the one that hosts the requested object. Only the station that
hosts the named object responds to the request.
[0045] A preferred object manager 25c is that commercially
available from the assignee hereof, The Foxboro Company, as part of
its I/A Series of industrial automation systems. A software
interface, or "API," of that preferred object manager is described
in publicly available documentation, including the document
entitled "Object Manager Calls," a copy of which is filed as an
appendix herewith.
[0046] The command processor front end 25a executes on server
digital data processor 16, configuring it to respond to requests
from applets 26, 28 to establish communications with them over the
network 18. Once communications are established, the front end 25a
responds to requests received from applets 26, 28 over network 18
to transfer information to and from process control apparatus
19a-19e via the object manager 25c.
[0047] Particularly, the front end 25a responds to requests
received over the network in TCP/IP protocol to generate calls to
object manager 25c in accord with its aforementioned API. Moreover,
the front end 25a responds to information generated by the object
manager 25c in response to those calls by transmitting that
information back over the network 18, in accord with the TCP/IP
protocol, to the applets 26, 28. In a preferred embodiment, the
front end 25a presents a simplified interface to the object manager
25c, e.g., permitting applets 26, 28 to make requests and receive
responses in the form of text strings, as discussed below.
[0048] Software implementing a preferred front end 25a as a Java
programming language application is filed as appendix hereto. Those
skilled in the art will appreciate that alternate embodiments may
implement the front end in other programming languages suitable
for, or that can be adapted to, provide an interface between the
network 18 protocol and the object manager 25c.
[0049] Interface section 25b provides a software interface between
the front end 25a and the object manager 25c. As noted above, in a
preferred embodiment, the front end 25a is implemented as a Java
programming language application. The object manager 25c, on the
other hand, is implemented as a C programming language application
and, accordingly, its API includes pointer-based parameters. The
interface section 25b compensates for the inability of the Java
front end 25a to utilize pointer-based parameters, e.g., by
converting them to arrays as discussed further below.
[0050] Software implementing a preferred interface section 25b in
the C programming language is filed as appendix hereto. Those
skilled in the art will appreciate that interface section 25b is
optional and may be excluded in embodiments where the front end 25a
can make calls directly to the object manager 25c.
[0051] The client digital data processors 12, 14 execute applets
26, 28 within the virtual machine environments defined by the
information clients 22, 24. Each applet 26, 28 configures its
respective client digital data processors as a process controller
that establishes communications over the network 18 with the
command processor front end 25a and that monitors and/or controls
the process control apparatus 19a-19e via those communications.
More particularly, the process controllers generate and transfer
requests for service over the network 18 to the command processor
25 so as to effect the transfer of information controlling, and
reflecting the status of, the process control apparatus 19a-19e.
The process controllers also receive information from the command
processor 25, e.g., for display to an operator.
[0052] As noted above, the applets 26, 28 comprise intermediate or
executable code that is interpreted or executed with in the virtual
machine environment defined by the information clients and that is
hardware-independent, operating system-independent and windows
system-independent. Source code for preferred applets, in the Sun
MicroSystems Java programming language, is provided in the appendix
filed herewith.
[0053] A process control system constructed and operated in accord
with system 10 of FIG. 1 can be employed in a wide variety of
process control embodiments. One such embodiment is shown in FIG. 2
and described below. That embodiment provides for generation, by an
applet executing on the client digital data processor, of graphs
showing trends in data values of process control apparatus coupled
to a server digital data processor.
[0054] FIG. 2 is an event trace diagram depicting messages that
flow among the components of the system 10 of FIG. 1 in the
above-mentioned embodiment. The components of the system 10 are
shown in the event trace diagram as vertical lines with the name of
the component at the bottom of the line. Messages are represented
by arrows. Each message flows in the direction of the arrow from
component to component. Messages that happen earlier in time are
toward the top of the diagram.
[0055] Referring to FIG. 2, communication begins with the operator
signalling the information client 22 to establish communications
with the server digital data processor 16 over the network 18. The
operator can signal the information client, e.g., a keyboard stroke
or "mouse" click on the operator console (not shown). In the
illustrated embodiment, the information client 22 is the Netscape
web browser.
[0056] In response the operator's request, the information client
22 generates and transmits over network 18 a request for connection
with information server 20, e.g., an HTTP server, executing on
server digital data processor 16. Once the connection is
established, the HTTP server 20 sends to the web browser 22 an HTML
page that references (i.e., provides an address for) a
trend-graphing applet. The HTML page also optionally includes text
and graphics describing the applet.
[0057] The web browser 22 displays the HTML on the operator
console. If the operator signals the web browser 22 that he or she
wishes to access the applet, the web browser 22 transmits to the
HTTP server 20 over the network 18 a request for the applet. It
will be appreciated that the applet may be transmitted to the web
browser 22, along with an initial HTML document.
[0058] The HTTP server 20 responds to such a request for forwarding
Java bytecode for the applet over the network 18 to the web browser
22. On receipt of the applet, the JAVA-compatible web browser 22
executes the applet 26 in the virtual machine environment defined
in the web browser 22.
[0059] Once executing, the applet 26 sends a request to establish a
separate communications link over the network 18 with the command
processor front end 25a, e.g., a Java application executing on the
server digital data processor 16. This separate connection is used
by the applet 26 and the front end 25a to permit the exchange
messages over the network and, particularly, to permit the applet
26 to make requests of the command processor 25 for process control
apparatus data to be graphed.
[0060] Once communications are established, the applet 26, 28
generates a display on the operator console of the client digital
data processor 12 and permits the operator to enter the names of
process control apparatus data values (i.e., "points") that are to
be graphed. On the operator's command, the applet 26 sends a
request over the network 18 to the front end 25a specifying the
OMOPEN service and listing the names of operator-specified points.
The request is in text or ASCII format, e.g., "OMOPEN name1; name2;
name3; etc."
[0061] On receipt of the OMOPEN request, the front end 25a creates
a data structure required by object manager 25c, to with an OM
list, and includes in that data structure the names of the
specified points. The front end 25a then makes an "omopen list"
call to the object manager 25c utilizing the aforementioned API. A
further understanding of the OM list data structure and of the
"omopen list" call, as well as the other data strictures and calls
to the object manager 25c, may be attained by reference to the
appendix filed herewith.
[0062] The object manager 25c responds to the omopen list call by
querying the respective process control apparatus 19a-19e for
current data values for the points. The object manager 25c returns
those data values to the front end 25a which, in turn, generates
and transmits to the applet 26, 28 a text message listing the
initial data points. That message includes the keyword OMUPDATE,
followed by the names and values of each of the points, e.g.,
"OMUPDATE point1=value; point2=value; etc." The applet 26, 28
graphs those initial data points on the operator console.
[0063] The object manager 25c then begins looping, while awaiting
further requests from the client applet 26 and while awaiting
updates on the data values from the object manager 25c. When such
an update is received, the front end 25a generates and transmits to
the applet 26 a further text message in the form "OMUPDATE
point1=value; point2=value; etc." listing the updated data values
points. The applet 26 graphs those initial data points on the
operator console at the end of the graph time interval.
[0064] The front end 25a continues looping and forwarding updates
until the operator signals the applet 26 to stop trend graphing. In
that event, the applet 26 sends a close request over the network to
the front end 25a in the form of a text message "OMCLOSE." On
receipt of that request, the front end 25a, in turn, makes an
omclose list call to the object manager 25c in accord with the
aforementioned API. When that call returns, front end 25a sends an
"OMCLOSEOK" text message to the applet, 26 causing it to clear the
trend graph.
[0065] At this point, the operator can either specify new points to
the applet 26 or can tell the web browser 22, 24 to connect to a
different information server. If the operator signals that he or
she wishes to connect to another server, the client applet 26
breaks the connection with the server by sending an "OMBREAK"
message to the front end 25a over the network. The front end 25a
than resets, and waits for the next connection.
[0066] In a preferred embodiment, the method illustrated in FIG. 2
is implemented in the Java programming language. As those skilled
in the art will appreciate and as discussed above, all Java applets
and Java applications run inside of a Java Virtual Machine. All
implementations of the Java Virtual Machine are guarantied to be
identical regardless of the many hardware platforms on which they
run.
[0067] The above-described trend-graphing client Java applet
preferably runs in the Java Virtual Machine that is implemented by
Netscape Navigator version 2.02. The trend client applet 26 is
intended to be portable. So it only uses those classes that are
present in all implementations of the Java systems. The
trend-graphing applet 26 uses Java system classes to manage the
screen, and connect to the trend server, and provide timing
intervals.
[0068] The trend-graphing applet 26 implements classes that conduct
all operator interaction. For example, it accept the names of the
points to be graphed. It also defines the GUI buttons used by the
operator to signal when graphing is to start or stop. Further, the
trend-graphing applet 26 plots X-Y axes, graph the points, and
parses messages from the front end 25a.
[0069] The applet 26 also processes the following messages from the
server: "OMUPDATE name2=value; name3=value; . . . "; OMCLOSEOK.
[0070] The illustrated front end 25 (or "trend-graphing server") is
not portable to just any Java Virtual Machine because it must call
outside of the Java environment to the object manager 25c. To do
this, the trend server class is defined to have "native methods". A
"native method" is any member function of a class that is
implemented in a language other than Java. A native method can
enable access to functions and data that are "native" to a
particular hardware platform operating system or a running
application (like the object manager 25c).
[0071] Native member functions are declared in the class as native.
They are implemented in a library that is loaded by the Java
environment at runtime. On Solaris this is a libfile.so file. On
Windows NT this would be a library.dbl file. The native methods,
which constitute the interface 25b, are defined to create a new OM
list, add a named point to the list, open the list, check the list
for updates (using dqchange), and close the list. Source code for a
preferred implementation of native methods is supplied in the
appendix filed herewith.
[0072] The command processor front end 25a runs in a Solaris
implementation of the Java Virtual Machine. The front end 25a
processes the following messages from the applet 26: "OMOPEN name1;
name2; name3; . . . " (in response to which it creates a list with
the specified points and opens the list): "OMCLOSE" (in response to
which it closes the list); and "OMBREAK" (in response to which
reset and wait to accept a new connection).
[0073] Described above and illustrated in the drawings are improved
methods and apparatus for process control. Those skilled in the art
will appreciate that the embodiments discussed above and shown in
the claims are merely illustrative and that other embodiments
incorporating modifications within the reach of one of ordinary
skill in the art fall within the scope of the invention, of which
we claim:
* * * * *