Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberUS20080222276 A1
Publication typeApplication
Application numberUS 11/929,646
Publication dateSep 11, 2008
Filing dateOct 30, 2007
Priority dateAug 20, 1996
Also published asEP0825506A2, EP0825506A3, EP0825506B1, US6799195, US7502656, US7720944, US7739361, US7882197, US7899070, US7979488, US8023500, US8081584, US20040230643, US20080052632, US20080119951, US20080120367, US20080126500, US20080133700, US20080134215, US20080148170, US20090094326, US20090259751
Publication number11929646, 929646, US 2008/0222276 A1, US 2008/222276 A1, US 20080222276 A1, US 20080222276A1, US 2008222276 A1, US 2008222276A1, US-A1-20080222276, US-A1-2008222276, US2008/0222276A1, US2008/222276A1, US20080222276 A1, US20080222276A1, US2008222276 A1, US2008222276A1
InventorsRichard L. Thibault, Bruce S. Canna, Gerald S. Couper
Original AssigneeInvensys Systems, Inc.
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
Control system apparatus and systems based thereon that transfer control apparatus information over IP networks in web page-less transfers
US 20080222276 A1
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.
Images(3)
Previous page
Next page
Claims(22)
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 19 a-19 e via bus/network structure 30 and control stations 23 a-23 e, 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 19 a-19 e 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 23 a-23 e include objects storing information that control, and reflect the status of, their associated process control apparatus 19 a-19 e. The control stations 23 a-23 e also execute object management software (marked “OM”) that manage and oversee access to those objects. The control stations 23 a-23 e 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 25 a, interface section 25 b, and an object manager 25 c. Together, these transfer information between the network 18 and process control apparatus 19 a-19 e. As shown in the illustration, the object manager functionality is distributed among the control stations 23 a-23 e. Each object manager maintains the data structures—to wit, objects—that control and reflect the status of its associated process control apparatus 19 a-19 e.
  • [0040]
    The object manager 25 c 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 25 c allows uniquely named objects to be distributed over the control stations 23 a-23 e in a location-independent way. Using the object manager 25 c (via front end 25 a), 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 25 c 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 25 c 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 25 c will broadcast the access request to all stations 23 a-23 e, if the object manager 25 c does not know the location of object. Each station 23 a-23 e 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 25 c 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 25 a 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 25 a responds to requests received from applets 26, 28 over network 18 to transfer information to and from process control apparatus 19 a-19 e via the object manager 25 c.
  • [0047]
    Particularly, the front end 25 a responds to requests received over the network in TCP/IP protocol to generate calls to object manager 25 c in accord with its aforementioned API. Moreover, the front end 25 a responds to information generated by the object manager 25 c 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 25 a presents a simplified interface to the object manager 25 c, 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 25 a 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 25 c.
  • [0049]
    Interface section 25 b provides a software interface between the front end 25 a and the object manager 25 c. As noted above, in a preferred embodiment, the front end 25 a is implemented as a Java programming language application. The object manager 25 c, on the other hand, is implemented as a C programming language application and, accordingly, its API includes pointer-based parameters. The interface section 25 b compensates for the inability of the Java front end 25 a to utilize pointer-based parameters, e.g., by converting them to arrays as discussed further below.
  • [0050]
    Software implementing a preferred interface section 25 b in the C programming language is filed as appendix hereto. Those skilled in the art will appreciate that interface section 25 b is optional and may be excluded in embodiments where the front end 25 a can make calls directly to the object manager 25 c.
  • [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 25 a and that monitors and/or controls the process control apparatus 19 a-19 e 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 19 a-19 e. 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 25 a, 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 25 a 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 25 a 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 25 a creates a data structure required by object manager 25 c, to with an OM list, and includes in that data structure the names of the specified points. The front end 25 a then makes an “omopen list” call to the object manager 25 c 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 25 c, may be attained by reference to the appendix filed herewith.
  • [0062]
    The object manager 25 c responds to the omopen list call by querying the respective process control apparatus 19 a-19 e for current data values for the points. The object manager 25 c returns those data values to the front end 25 a 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 25 c then begins looping, while awaiting further requests from the client applet 26 and while awaiting updates on the data values from the object manager 25 c. When such an update is received, the front end 25 a 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 25 a 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 25 a in the form of a text message “OMCLOSE.” On receipt of that request, the front end 25 a, in turn, makes an omclose list call to the object manager 25 c in accord with the aforementioned API. When that call returns, front end 25 a 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 25 a over the network. The front end 25 a 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 25 a.
  • [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 25 c. 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 25 c).
  • [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 25 b, 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 25 a runs in a Solaris implementation of the Java Virtual Machine. The front end 25 a 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:
Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US4312068 *Mar 7, 1978Jan 19, 1982Honeywell Information Systems Inc.Parallel generation of serial cyclic redundancy check
US4377000 *Jun 18, 1980Mar 15, 1983Westinghouse Electric Corp.Automatic fault detection and recovery system which provides stability and continuity of operation in an industrial multiprocessor control
US4428044 *Sep 20, 1979Jan 24, 1984Bell Telephone Laboratories, IncorporatedPeripheral unit controller
US4435762 *Mar 6, 1981Mar 6, 1984International Business Machines CorporationBuffered peripheral subsystems
US4493027 *May 22, 1981Jan 8, 1985Data General CorporationMethod of performing a call operation in a digital data processing system having microcode call and return operations
US4641276 *Oct 22, 1984Feb 3, 1987General Electric CompanySerial-parallel data transfer system for VLSI data paths
US4648064 *Feb 21, 1978Mar 3, 1987Morley Richard EParallel process controller
US4649479 *Feb 28, 1985Mar 10, 1987International Business Machines Corp.Device driver and adapter binding technique
US4719593 *Jul 9, 1984Jan 12, 1988Advanced Micro Devices, Inc.Apparatus for generating digital timing waveforms
US4727477 *Mar 22, 1985Feb 23, 1988International Business Machines Corp.Logically transportable microprocessor interface control unit permitting bus transfers with different but compatible other microprocessors
US4733366 *May 16, 1983Mar 22, 1988Data General CorporationApparatus for providing an interrupt signal in response to a permanent or transient power failure
US4800512 *Jun 25, 1986Jan 24, 1989Pruftechnik Dieter Busch & Partner Gmbh & Co.Method and apparatus for determining and detecting data indicative of the condition of machines through a unique data probe including a test data probe portion and an identifying data sensing probe portion
US4805107 *Apr 15, 1987Feb 14, 1989Allied-Signal Inc.Task scheduler for a fault tolerant multiple node processing system
US4816996 *Jul 24, 1987Mar 28, 1989Motorola, Inc.Queued serial peripheral interface for use in a data processing system
US4817094 *Dec 31, 1986Mar 28, 1989International Business Machines CorporationFault tolerant switch with selectable operating modes
US4896290 *Aug 24, 1987Jan 23, 1990Wang Laboratories, Inc.Method for routing events from key strokes in a multi-processing computer systems
US4897777 *Apr 11, 1988Jan 30, 1990Square D CompanyPeer-to-peer register exchange controller for PLCS
US4910658 *Sep 27, 1988Mar 20, 1990Eaton Leonard Technologies, Inc.Real time process controller with serial I/O bus
US4910691 *Sep 30, 1987Mar 20, 1990E.I. Du Pont De Nemours & Co.Process control system with multiple module sequence options
US4991076 *Jun 30, 1989Feb 5, 1991Icom Inc.Method and apparatus for creating custom displays for monitoring ladder logic programs
US4991170 *Jul 17, 1989Feb 5, 1991Ag Communication Systems CorporationCircuit for interfacing a digital signal processor to a serial interface controller
US5193175 *Mar 6, 1991Mar 9, 1993Tandem Computers IncorporatedFault-tolerant computer with three independently clocked processors asynchronously executing identical code that are synchronized upon each voted access to two memory modules
US5283729 *Aug 30, 1991Feb 1, 1994Fisher-Rosemount Systems, Inc.Tuning arrangement for turning the control parameters of a controller
US5289365 *Dec 23, 1991Feb 22, 1994Donnelly CorporationModular network control system
US5291390 *Jan 27, 1992Mar 1, 1994Sato NobuyasuControl apparatus for mechanical devices which regulates control system operation speed to prevent hunting and overshooting and thereby optimizes the control signal
US5295258 *Jan 5, 1990Mar 15, 1994Tandem Computers IncorporatedFault-tolerant computer system with online recovery and reintegration of redundant components
US5295263 *Jan 22, 1992Mar 15, 1994Mitsubishi Denki Kabushiki KaishaProgrammable controller which allows control in formation to be updated during execution
US5297143 *Dec 3, 1990Mar 22, 1994Echelon Systems, Corp.Network communication protocol including a reliable multicasting technique
US5381529 *Aug 31, 1992Jan 10, 1995Nec CorporationShift register with dual clock inputs for receiving and sending information between I/O channels and host based on external and internal clock inputs respectively
US5384910 *Dec 31, 1992Jan 24, 1995International Business Machines CorporationMethod and apparatus for facilitating operator reconfiguration of a graphical user interface in a data processing system
US5386373 *Aug 5, 1993Jan 31, 1995Pavilion Technologies, Inc.Virtual continuous emission monitoring system with sensor validation
US5386417 *Aug 27, 1993Jan 31, 1995At&T Corp.Method and apparatus for establishing connections in a communications access network
US5390321 *Jul 1, 1994Feb 14, 1995Proesel; Ronald J.General purpose parallel port interface
US5392280 *Apr 7, 1994Feb 21, 1995Mitsubishi Electric Research Laboratories, Inc.Data transmission system and scheduling protocol for connection-oriented packet or cell switching networks
US5398331 *Jul 8, 1992Mar 14, 1995International Business Machines CorporationShared storage controller for dual copy shared data
US5400140 *Jun 10, 1994Mar 21, 1995Fisher-Rosemount LimitedMethod of decoding a spectrally modulated light signal
US5481715 *Dec 15, 1993Jan 2, 1996Sun Microsystems, Inc.Method and apparatus for delegated communications in a computer system using trusted deputies
US5483660 *Nov 29, 1993Jan 9, 1996Motorola Inc.Method and apparatus for performing multiplexed and non-multiplexed bus cycles in a data processing system
US5485617 *Dec 13, 1993Jan 16, 1996Microsoft CorporationMethod and system for dynamically generating object connections
US5485620 *Feb 25, 1994Jan 16, 1996Automation System And Products, Inc.Integrated control system for industrial automation applications
US5490276 *Mar 1, 1995Feb 6, 1996Echelon CorporationProgramming language structures for use in a network for communicating, sensing and controlling information
US5491625 *Dec 23, 1993Feb 13, 1996The Dow Chemical CompanyInformation display system for actively redundant computerized process control
US5491791 *Jan 13, 1995Feb 13, 1996International Business Machines CorporationSystem and method for remote workstation monitoring within a distributed computing environment
US5493534 *May 17, 1995Feb 20, 1996Atmel CorporationRemotely re-programmable program memory for a microcontroller
US5499023 *May 27, 1992Mar 12, 1996Kaye Instruments, Inc.Method of and apparatus for automated sensor diagnosis through quantitative measurement of one of sensor-to-earth conductance or loop resistance
US5499365 *Aug 4, 1993Mar 12, 1996International Business Machines CorporationSystem and method for controlling versions of objects in an object oriented computing environment
US5501608 *Dec 20, 1993Mar 26, 1996Intel CorporationComputer system with an interconnection receptacle suitable for different external connectors
US5596752 *Mar 11, 1993Jan 21, 1997Amdahl CorporationSystem for creating, editing, displaying, and executing rules-based programming language rules having action part subsets for both true and false evaluation of the conditional part
US5598536 *Aug 9, 1994Jan 28, 1997Shiva CorporationApparatus and method for providing remote users with the same unique IP address upon each network access
US5600845 *Jul 27, 1994Feb 4, 1997Metalithic Systems IncorporatedIntegrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor
US5602749 *Jan 12, 1995Feb 11, 1997MtcMethod of data compression and apparatus for its use in monitoring machinery
US5604737 *Dec 13, 1994Feb 18, 1997Hitachi, Ltd.Voice communication system and voice communication method
US5604871 *Oct 11, 1995Feb 18, 1997Dell Usa, L.P.Modular host local expansion upgrade
US5608607 *Apr 24, 1995Mar 4, 1997Compaq Computer CorporationPCMCIA card and associated support and circuitry augmenting apparatus and methods
US5608608 *Apr 17, 1996Mar 4, 1997International Business Machines CorporationCartridge-based design for portable and fixed computers
US5611057 *Jan 20, 1995Mar 11, 1997Dell Usa, L.P.Computer system modular add-in daughter card for an adapter card which also functions as an independent add-in card
US5613148 *Oct 19, 1995Mar 18, 1997International Business Machines CorporationMethod and apparatus for activating and executing remote objects
US5613164 *Mar 22, 1995Mar 18, 1997International Business Machines CorporationPortable system having data distribution and power distribution removably positioned within portable enclosure during shipping and adapted for repositioning within internal storage space during operation
US5613190 *May 1, 1995Mar 18, 1997Bell Atlantic Network Services, Inc.Customer premise wireless distribution of audio-video, control signals and voice
US5706502 *Mar 25, 1996Jan 6, 1998Sun Microsystems, Inc.Internet-enabled portfolio manager system and method
US5708709 *Dec 8, 1995Jan 13, 1998Sun Microsystems, Inc.System and method for managing try-and-buy usage of application programs
US5708779 *Sep 24, 1996Jan 13, 1998International Business Machines CorporationMultimedia system and method of controlling data transfer between a host system and a network adapter using a DMA engine
US5713045 *Jun 29, 1995Jan 27, 1998Object Technology Licensing CorporationSystem for processing user events with input device entity associated with event producer which further links communication from event consumer to the event producer
US5715178 *Apr 15, 1992Feb 3, 1998Combustion Engineering, Inc.Method of validating measurement data of a process parameter from a plurality of individual sensor inputs
US5716221 *Oct 20, 1995Feb 10, 1998Itt CorporationStacked IC card assembly for insertion into stacked receivers
US5717880 *Sep 6, 1994Feb 10, 1998Kabushiki Kaisha ToshibaMethod and apparatus for relaying events and requests in a windows systems
US5724025 *Feb 14, 1996Mar 3, 1998Tavori; ItzchakPortable vital signs monitor
US5726911 *Aug 22, 1996Mar 10, 1998Csi Technology, Inc.Electric motor monitor
US5727128 *May 8, 1996Mar 10, 1998Fisher-Rosemount Systems, Inc.System and method for automatically determining a set of variables for use in creating a process model
US5732074 *Jan 16, 1996Mar 24, 1998Cellport Labs, Inc.Mobile portable wireless communication system
US5732218 *Jan 2, 1997Mar 24, 1998Lucent Technologies Inc.Management-data-gathering system for gathering on clients and servers data regarding interactions between the servers, the clients, and users of the clients during real use of a network of clients and servers
US5734902 *Jan 28, 1993Mar 31, 1998Gpt LimitedCommunication system for maintaining data consistency among replicated shared objects
US5864773 *Nov 1, 1996Jan 26, 1999Texas Instruments IncorporatedVirtual sensor based monitoring and fault detection/classification system and method for semiconductor processing equipment
US5867704 *Feb 22, 1996Feb 2, 1999Matsushita Electric Industrial Co., Ltd.Multiprocessor system shaving processor based idle state detection and method of executing tasks in such a multiprocessor system
US5872992 *Aug 24, 1995Feb 16, 1999Motorola, Inc.System and method for avoiding bus contention on a multiplexed bus by providing a time period subsequent to a read operation
US5873089 *Aug 15, 1996Feb 16, 1999Hewlett-Packard CompanyData handling system with circular queue formed in paged memory
US5874990 *Mar 26, 1997Feb 23, 1999Star Micronics, Inc.Supervisory camera system
US5875430 *May 2, 1996Feb 23, 1999Technology Licensing CorporationSmart commercial kitchen network
US5876122 *Jun 5, 1997Mar 2, 1999Rosemount Inc.Temperature sensor
US5880775 *Jan 24, 1997Mar 9, 1999Videofaxx, Inc.Method and apparatus for detecting changes in a video display
US5884014 *May 23, 1996Mar 16, 1999Xerox CorporationFontless structured document image representations for efficient rendering
US6026336 *Oct 24, 1994Feb 15, 2000Hitachi, LtdMethod of and automatically generating control programs for computer controlled systems
US6033257 *Oct 4, 1996Mar 7, 2000The Foxboro CompanyI/O connector module for a field controller in a distributed control system
US6038486 *Feb 28, 1997Mar 14, 2000Scan Technology Co., Ltd.Control method for factory automation system
US6170007 *Aug 31, 1999Jan 2, 2001Hewlett-Packard CompanyEmbedding web access functionality into a device for user interface functions
US6173414 *May 12, 1998Jan 9, 2001Mcdonnell Douglas CorporationSystems and methods for reduced error detection latency using encoded data
US6183289 *May 24, 1999Feb 6, 2001The Foxboro CompanyI/O connector module for a field controller in a distributed control system
US6195694 *Nov 19, 1997Feb 27, 2001International Business Machines CorporationServer for reconfiguring control of a subset of devices on one or more kiosks
US6195774 *Aug 13, 1998Feb 27, 2001Xilinx, Inc.Boundary-scan method using object-oriented programming language
US6201996 *May 29, 1998Mar 13, 2001Control Technology CorporationaObject-oriented programmable industrial controller with distributed interface architecture
US6345382 *Feb 12, 1998Feb 5, 2002International Business Machines CorporationRun-time customization in object-oriented design
US6675193 *Oct 29, 1999Jan 6, 2004Invensys Software SystemsMethod and system for remote control of a local system
US6850973 *Sep 29, 1999Feb 1, 2005Fisher-Rosemount Systems, Inc.Downloadable code in a distributed process control system
US6853867 *Dec 30, 1998Feb 8, 2005Schneider Automation Inc.Interface to a programmable logic controller
US7158513 *Jun 25, 2002Jan 2, 2007Matsushita Electric Industrial Co., Ltd.Partner node migration control unit and method
US7162510 *Apr 10, 2002Jan 9, 2007Schneider Automation Inc.Communication system for a control system over Ethernet and IP networks
US7177052 *Dec 27, 2004Feb 13, 2007Silverbrook Research Pty LtdDithered image for bi-level printing
US7337256 *Nov 25, 2003Feb 26, 2008Invensys Systems, Inc.Distributed control system with multiple control levels and/or downloading
US20070019560 *Jul 19, 2005Jan 25, 2007Rosemount Inc.Interface module with power over ethernet function
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
US7761923Mar 1, 2005Jul 20, 2010Invensys Systems, Inc.Process control methods and apparatus for intrusion detection, protection and network hardening
US7860857Mar 30, 2007Dec 28, 2010Invensys Systems, Inc.Digital data processing apparatus and methods for improving plant performance
US8023500Sep 20, 2011Invensys Systems, Inc.Methods for process control with change updates
US8028272Nov 5, 2008Sep 27, 2011Invensys Systems, Inc.Control system configurator and methods with edit selection
US8028275Nov 5, 2008Sep 27, 2011Invensys Systems, Inc.Control systems and methods with smart blocks
US8090452Jul 20, 2007Jan 3, 2012Invensys Systems, Inc.Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
US8127060May 29, 2009Feb 28, 2012Invensys Systems, IncMethods and apparatus for control configuration with control objects that are fieldbus protocol-aware
US8225271Nov 6, 2008Jul 17, 2012Invensys Systems, Inc.Apparatus for control systems with objects that are associated with live data
US8229579Nov 5, 2008Jul 24, 2012Invensys Systems, Inc.Control systems and methods with versioning
US8368640Feb 5, 2013Invensys Systems, Inc.Process control configuration system with connection validation and configuration
US8463964Oct 14, 2010Jun 11, 2013Invensys Systems, Inc.Methods and apparatus for control configuration with enhanced change-tracking
US8594814Jun 19, 2009Nov 26, 2013Invensys Systems, Inc.Systems and methods for immersive interaction with actual and/or simulated facilities for process, environmental and industrial control
US8870086Jul 12, 2007Oct 28, 2014Honeywell International Inc.Wireless controller with gateway
US9033255Feb 4, 2010May 19, 2015Honeywell International Inc.Wireless controller with gateway
US9058032 *Sep 29, 2010Jun 16, 2015Rockwell Automation Technologies, Inc.Hosting requirements for services
US9217998Sep 29, 2010Dec 22, 2015Rockwell Automation Technologies, Inc.Management and development of an industrial environment
US20110022195 *Jan 27, 2011Rockwell Automation Technologies, Inc.Multiple machine interface
US20110022626 *Sep 29, 2010Jan 27, 2011Rockwell Automation Technologies, Inc.Hosting requirements for services
Classifications
U.S. Classification709/220, 709/224
International ClassificationG05B19/418, H04L29/08, H04L29/06, G06F15/177, G06F15/173
Cooperative ClassificationY02P90/12, H04L67/34, H04L67/12, G05B2219/31161, G05B2219/31083, G05B19/41835, G05B19/4185, G05B2219/33148, H04L29/06, G05B19/4186
European ClassificationH04L29/06, G05B19/418N2, H04L29/08N33, H04L29/08N11, G05B19/418N, G05B19/418E