Abstract:
An industrial control system includes a plurality of control devices providing control signals to direct an industrial process and a web access module including a web server, an Internet interface and a control network interface. Each of the control devices includes web page data concerning a respective web page associated with the respective control device. The Internet interface is couplable to a remote device via the Internet, and the control network interface is coupled to the control devices. The web access module is able to receive requests from the remote device to access the web pages associated with the control devices. In response to the requests, the web access module obtains the web page data concerning the web pages for which access has been requested, processes the data at the server, and sends data signals related to the data onto the Internet to be received by the remote device.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS  
       [0001]    This application claims the benefit of U.S. provisional patent application No. 60/285,292, filed on Apr. 20, 2001.  
       STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT 
    
    
     
       FIELD OF THE INVENTION  
         [0002]    The present invention relates generally to industrial control systems for industrial processes, and in particular to a system for providing web access to individual programmable logic controllers, I/O modules and other control devices of such industrial control systems.  
         BACKGROUND OF THE INVENTION  
         [0003]    Industrial control systems used to control and monitor industrial processes often employ programmable logic controllers, which are special purpose computers that operate based upon stored control programs and typically read inputs and provide outputs to the controlled industrial processes based upon the logic of their control programs. PLCs differ from conventional computers in two major respects. First, PLCs operate to produce highly reliable and predictable control outputs. The architecture and programming of PLCs are designed so as to provide predictable maximum response times, as well as a reduction in errors caused by race conditions and sensitive detection of hardware and communication errors. Second, PLCs differ from conventional computers in that PLCs are highly customizable so as to fit the demands of the particular industrial processes being controlled.  
           [0004]    Depending upon the particular industrial process being controlled, an industrial control system can take a variety of forms. In some circumstances, the industrial control system includes numerous I/O modules that are all in communication with a single PLC. In other circumstances, multiple PLCs are employed in the industrial control system. The multiple PLCs can be networked together, and each PLC is typically in communication with its own particular associated I/O modules. In still additional circumstances, industrial control systems can take other forms that can include, for example, other types of control devices.  
           [0005]    Although it is the PLCs of industrial control systems that primarily govern the operation of the industrial control systems with respect to the industrial processes of interest, in a variety of circumstances it is desirable to be able to remotely monitor (and, in some instances, control) the operation of the industrial control systems and the progress of the industrial processes. Conventional industrial control systems allow for communications between PLCs and remote human machine interfaces such as computer terminals by way of proprietary communication links or dedicated phone lines.  
           [0006]    However, recently a new communications medium known as the Internet or World Wide Web (or simply the “web”) has emerged as an important if not dominant communications medium for networking among computers and computer systems around the world. Given the ubiquity and simplicity of using the web, it has become desirable that industrial control systems be capable of communications with remote computer terminals or other remote devices by way of the web.  
           [0007]    Yet conventional industrial control systems are not readily configured for web communications. On the one hand, the control devices commonly implemented within industrial control systems typically do not have the large amounts of memory and processing powers that are necessary for implementation of web server programs/applications. On the other hand, implementation of a single web server program for an entire industrial control system can impose significant programming burdens, particularly when the operation or configuration of the individual control devices is frequently changing. In practice, implementation of a single web server for an entire industrial control system can render it difficult to provide sufficient independent accessibility of the individual control devices of the industrial control system  
           [0008]    It would therefore be advantageous if a new industrial control system could be developed that allowed remote computer terminals and other remote devices to communicate with individual control devices of the industrial control system by way of the web. It would also be advantageous if the new industrial control system allowed web communications with the various individual PLCs, I/O modules and/or other control devices of the industrial control system despite any memory or processing power limitations of those control devices.  
         BRIEF SUMMARY OF THE PREFERRED EMBODIMENT  
         [0009]    The present inventors have provided an industrial control system that allows for web access to individual control devices of the industrial control system even when those control devices do not have the ability to support web server functionality, and further allows for such web access without the need for extensive programming or reprogramming of a central web server to account for changes in the control devices. This is accomplished by separating portions of the web data (e.g. web pages), which are stored at the individual control devices, from the web server function, which is performed at a central web access module. Because the control devices only store the portions of the web data, the control devices can therefore be simple devices without significant processing power or memory. Further, because the portions of the web data are obtained by the central web access module from the respective control devices, the web server does not need to be reconfigured when there are changes to the control devices.  
           [0010]    Using the portions of the web data, the web access module is able to respond to requests from remote devices provided to the industrial control system over the web. The particular control devices from which the web access module obtains the portions of the web data correspond to the specific requests provided from the remote devices. Depending upon the embodiment, the web access module can obtain additional web data or formatting information from other data sources besides the control devices, which the web access module utilizes in providing its responses to the requests from the remote devices. Further, once the information corresponding to the requested web pages has been provided, the web access module is capable of receiving, from the remote devices, additional commands related to the requested web pages and is capable of responding to those additional commands.  
           [0011]    In particular, the present invention relates to an industrial control system for controlling an industrial process. The industrial control system includes a plurality of control devices providing control signals to direct the industrial process, and a web access module including a web server, an Internet interface and a control network interface. Each of the control devices includes web page data concerning a respective web page associated with the respective control device. The Internet interface is capable of being coupled to a remote device via the Internet, and the control network interface is coupled to the plurality of control devices. The web access module is capable of receiving requests from the remote device to access any of the web pages associated with the plurality of control devices. In response to receiving the requests, the web access module obtains the web page data concerning the web pages for which access has been requested, processes the web page data at the web server, and sends data signals related to the web page data onto the Internet to be received by the remote device.  
           [0012]    The present invention further relates to an industrial control system including a plurality of control devices each of which includes web page data concerning a respective web page associated with the respective control device. The industrial control system additionally includes a server means for processing requests received from remote devices over the Internet, for obtaining appropriate portions of the web page data from the control devices in response the requests, and for providing sufficient amounts of information based upon the appropriate portions of the web page data over the Internet to the remote devices so that browser programs at the remote devices are able to generate requested web pages.  
           [0013]    The present invention additionally relates to a method of providing, via the Internet, access to web pages associated with control devices in an industrial control network. The method includes receiving a request at a web server from a remote device, the request being provided over the Internet, and processing the request to determine an identity of a requested web page corresponding to one of the control devices. The method further includes sending a signal in response to the request to the one of the control devices to which the requested web page corresponds, receiving web page data concerning the requested web page from the one of the control devices, and providing the requested web page onto the Internet for transmission to the remote device. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0014]    [0014]FIG. 1 is a schematic diagram showing an exemplary industrial control system including multiple control devices coupled to a web access module, where the web access module is in communication with remote devices by way of the Internet and allows the remote devices to access individual web pages associated with the different control devices; and  
         [0015]    [0015]FIG. 2 is a flow chart showing exemplary steps of operation of the industrial control system of FIG. 1 when it communicates with a remote device in order to provide a web page associated with one of the control devices to the remote device.  
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0016]    Referring to FIG. 1, an industrial control system  100  according to the present invention is shown that is accessible by way of the Internet  20  or World Wide Web (or simply the “web”) to one or more remote computer terminals or other remote devices  10 .  
         [0017]    The industrial control system  100  includes a web access module  30  that is coupled to the Internet  20  by way of an Internet interface  32 . The industrial control system  100  further includes one or more control devices, shown as including control devices  110 ,  120 ,  130  and  140 , which are coupled to a network interface  62  of the web access module  30  by way of respective communication links  70 . The network interface  62  can include one or more ports, which are in the present embodiment shown to include a first port  50  and a second port  60 . Within the web access module  30 , and coupled to the Internet interface  32  and the ports  50 ,  60  of the network interface  62  is a web server  40 . Further, in certain embodiments, the industrial control system  100  additionally includes a remote data storage unit  90 , which is coupled to the web access module  30  and to the web server  40  by way of a communication link  80 . In alternate embodiments, the remote data storage unit  90  can be located physically away from the remainder of the industrial control system  100 , or can even be coupled to the web access module  30  by way of the Internet  20 .  
         [0018]    The control devices  110 - 140  coupled to the web access module  30  are those elements of the industrial control system  100  for which web access is potentially desired by users at remote computer terminals or other remote devices  10 . The control devices  110 - 140  that are coupled to the web access module  30  need not be exhaustive, or even a significant representation, of all of the control devices of the industrial control system  100 . The control devices  110 - 140 , however, are employed to control various elements or aspects of an industrial process. In certain embodiments, the control devices  110 - 140  are or include input/output (I/O) modules, motor controllers or other devices, including even programmable logic controllers (PLCs). Also, in certain embodiments, some of the control devices  110 - 140  that are coupled to the web access module  30  can be one type of control device (e.g., an analog I/O device), while others are a different type of control device (e.g., a motor controller).  
         [0019]    Common to all of the control devices  110 - 140  that are coupled to the web access module  30  is that each of the control devices  110 - 140  includes a respective portion of data  115 ,  125 ,  135  and  145  that can be utilized to generate a home page or other web page related to that respective control device  110 ,  120 ,  130  and  140 . The exact amounts of web page data that exist in the control devices  110 - 140  can vary depending upon the embodiment of the industrial control system  100  as well as upon the particular control device within the industrial control system. In certain embodiments, the web page data can include all data that is required by the web server  40  in order to generate the particular web page, for example, hypertext markup language (html) documents and graphics files. In alternate embodiments, the web page data only includes a limited amount of data that can be indicative of a particular status or other condition of the control device or an element or aspect of the industrial process being controlled, such as a device ID and a single alphanumeric character representative of a temperature or other measurement parameter. In such embodiments, the web server  40  typically accesses its own memory using the device ID as an index in order to obtain the remaining information necessary to generate the web page corresponding to that particular control device. The information at the memory of the web server  40  can be a template html document keyed to the type of device, for example, a html table where the measurement parameter is listed in the table.  
         [0020]    In certain embodiments, the web server  40  will store or have stored at the remote data storage unit  90  the various templates described above that are available for the generating of web pages. Upon receiving a request for a particular web page from one of the remote devices  10  via the Internet  20 , the web server  40  obtains the relevant data from the control device corresponding to the requested web page by way of the appropriate communication link  70 , and then implements that data along with appropriate template data to generate the web page.  
         [0021]    In further embodiments, the data  115 - 145  stored at the respective control devices  110 - 140  can include various types of alphanumeric text elements, hyperlinks, banner ads, and JAVA applets. Additionally, in certain embodiments, the data stored at one or more of the control devices  110 - 140  can include extensible markup language (XML) information, which is used to define the meaning of data elements on a web page. In such an embodiment, the web server  40  or an associated device (including the remote data storage unit  90 ) in turn will store XML style sheet language transformations (XSLT) data, which can be used to convert the XML data provided from the control devices into a format for screen display. In such case, the web server  40  will include a XSLT processor.  
         [0022]    Thus, by utilizing the various data stored at the control devices  110 - 140  and (in many other embodiments) at other locations including at the web server  40  and the remote data storage unit  90 , the web server  40  is able to generate web pages that are then sent via the Internet interface  32  over the Internet  20  to the remote devices  10 . Because the amounts of data  115 - 145  that are stored at the control devices  110 - 140  can be expanded or reduced depending upon the particular embodiments of the industrial control system  100 , it is possible to design industrial control systems in which relatively little memory is required at the control devices  110 - 140  for storing the web page data. Further, as the control devices  110 - 140  are changed or reconfigured, the web pages served by the web access module  40  change automatically without reprogramming of the web access module. Additionally, because all web server functionality is performed at the web server  40 , no server programming or processing power is required at the control devices. Thus, the web access module acts as a proxy for actual web servers located at each of the control devices, and can be said to provide proxied web access.  
         [0023]    Users at the remote devices  10  can indicate their desire to access particular web pages of particular control devices of a given industrial system by providing specific domain names or uniform resource locators (URLs) indicative of particular IP addresses that are indicative of the particular control devices of the particular industrial control system. In alternate embodiments where the IP address is only indicative of the particular industrial control system as a whole or the web access module  30 , additional port information is typically provided by the user when entering the domain name. For example, for the industrial control system  100  in FIG. 1, which is shown to include four different control devices  110 - 140  that are all coupled to the first port  50  by way of four respective communication links  70 , the domain name information specified by the user at the remote device  10  when desiring to access the home page corresponding to the control device  120  could be the domain name  15  shown in FIG. 1. As shown, this domain name, in addition to including the IP address “ICS1.AB.COM”, additionally includes a port specification indicative of the first port  50 , namely “port  1 ”, and also indicates further port information labeled “MAC 2 ” indicating the second control device, namely, control device  120 . As is known in the art, the term MAC refers to an address peculiar to a particular media access control protocol, which in this case is the media access control protocol used for communication between the second control device  120  and the web access module  30 . In contrast, in an embodiment where each individual control device of interest is identified by way of a corresponding separate IP address, the remote user at the remote computer terminal  10  can access the corresponding home page simply by typing a domain name such as simply ICS1.AB.COM.  
         [0024]    In turning to FIG. 2, exemplary steps of operation of the industrial control system  100  in allowing the control devices  110 - 140  to be accessed via the Internet  20  are provided. In a first step  200 , the web access module  30  receives a request provided over the Internet  20  from one of the remote computer terminals or other remote devices  10 . In step  210 , the web access module  30 , particularly the web server  40 , processes the initial request to determine the identity of the requested web page and thus the identity of the control device with which that web page is associated. This processing can include mapping of URLs to particular MACs. Next, at step  220 , the web server  40  communicates a request for the web page data stored at the control device corresponding to the requested web page. The request is provided over the one of the communication links  70  that is coupled to the one of the control devices  110 - 140  that is associated with the requested web page. At step  230 , the web server  40  receives the web page data that was stored at that control device.  
         [0025]    Next, at step  240 , the web server  40  determines whether all of the information that is necessary for generating the requested web page has been obtained from the requested control device. In certain embodiments, the information obtained from the control device will be sufficient for generating the requested web page. The web server  40  then processes and transmits this web page information via the Internet  20  to the remote device  10  that made the initial request, at step  280 . In other embodiments, additional information will need to be obtained from another source to compliment the data received from the particular control device in order to generate the requested web page. In such case, at step  245 , the web server  40  obtains various information that is stored at the web server, assuming such information exists. If all additional necessary data can be obtained from the web server  40  (or more specifically, the memory associated with the web server), the web server then proceeds to step  270 , at which it completes generation of the requested web page. The system then proceeds to step  280  at which the requested web page is transmitted over the Internet  20  to the remote computer terminal  10 . If all of the additional data that is necessary for generating the requested web page cannot be obtained from the web server  40  itself, additional information is obtained from another source such as the remote data storage unit  90 , at step  260 . Then, at step  270 , the web server  40  can complete a generation of the requested web page and then send the requested web page over the Internet  20  to the remote device  10  at step  280 .  
         [0026]    Once the web page information has been sent to the remote device  10 , additional communications can occur among the remote device  10 , the web server  40 , the control devices  110 - 140  and the remote data storage unit  90 , among other devices, in providing and processing additional amounts of information that can include, for example, information for generating additional web pages or portions of web pages such as hyperlinks, banner ads and XML information. Where more than one web page corresponding to a particular one of the control devices  110 - 140  can be generated, the various control devices  110 - 140  can store data corresponding to more than one web page. Consequently, in such embodiments, the receipt of web page data that occurs in step  230  can sometimes only include the receipt of a portion of the total data stored on the particular control device. That is, in certain embodiments, the obtaining of data by the web server  40  from a given one of the control devices  110 - 140  can proceed through a successive set of stages.  
         [0027]    While the foregoing specification illustrates and describes the preferred embodiments of this invention, it is to be understood that the invention is not limited to the precise construction herein disclosed. The invention can be embodied in other specific forms without departing from the spirit or essential attributes of the invention. Accordingly, reference should be made to the following claims, rather than to the foregoing specification, as indicating the scope of the invention.