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 numberUS20020152289 A1
Publication typeApplication
Application numberUS 10/097,390
Publication dateOct 17, 2002
Filing dateMar 14, 2002
Priority dateSep 10, 1997
Also published asEP1483636A1, US8291121, US20030139821, WO2003079126A1
Publication number097390, 10097390, US 2002/0152289 A1, US 2002/152289 A1, US 20020152289 A1, US 20020152289A1, US 2002152289 A1, US 2002152289A1, US-A1-20020152289, US-A1-2002152289, US2002/0152289A1, US2002/152289A1, US20020152289 A1, US20020152289A1, US2002152289 A1, US2002152289A1
InventorsDennis Dube
Original AssigneeSchneider Automation Inc.
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
System and method for accessing devices in a factory automation network
US 20020152289 A1
Abstract
A system and method for configuring a resource in a network is disclosed. The system is accessible by a web tool and includes a configuration database being capable of storing a plurality of parameters for configuring the resource. A configuration page also accessible via the web tool, includes a form to facilitate configuration of the resource. The form is capable of receiving a resource parameter entry and a configuration option selection. The configuration option selection and the resource parameter entry compose a magic-URL. A configuration agent is responsive to the magic-URL wherein the agent and the magic-URL cooperate to manage the configuration database.
Images(9)
Previous page
Next page
Claims(23)
We claim:
1. A system for configuring a resource in a network, the network being accessible via a web tool, the system comprising:
a configuration database being capable of storing a plurality of parameters for configuring the resource;
a configuration page being accessible via the web tool and having a form to facilitate configuration of the resource, the form being capable of receiving a resource parameter entry and a configuration option selection;
a magic-URL comprising the configuration option selection and the resource parameter entry; and,
a configuration agent being operably responsive to the magic-URL wherein the agent and the magic-URL cooperate to manage the configuration database.
2. The system of claim 1 further comprising:
a remote procedural call mechanism for facilitating communication between the web tool and the interface module.
3. The system of claim 1 further comprising:
an interface module being operably connected between the resource and the web tool, the interface module being accessible via the magic-URL.
4. The system of claim 1 wherein the configuration agent includes an agent API.
5. The system of claim 1 further comprising:
a configuration component having a component API and being operably connected to the configuration agent wherein the component API, configuration agent, and configuration database cooperate to configure the resource.
6. The system of claim 1 further comprising a configuration component web page, the configuration component web page being created in response to the magic-URL and the configuration database.
7. The system of claim 1 wherein the resource is a global configuration component.
8. The system of claim 7 wherein the configuration database includes a resource parameter selected from the group consisting of a type field, a symbol field, a network address field, and a length field.
9. The system of claim 1 wherein the resource is an address server database.
10. The system of claim 9 wherein the configuration database includes a resource parameter selected from the group consisting of a role name field, a MAC address field, an IP address field, a subnet mask field, and a gateway field.
11. The system of claim 1 wherein the resource is a DHCP server database.
12. The system of claim 1 wherein the resource is a bandwidth management component.
13. The system of claim 2 wherein the remote procedure call mechanism comprises Java/JMI.
14. The system of claim 2 wherein the remote procedure call mechanism comprises MS DCOM.
15. The system of claim 2 wherein the remote procedure call mechanism comprises CORBA/ORBs.
16. The system of claim 2 wherein the remote procedure call mechanism comprises SOAP/XML.
17. The system of claim 1 wherein the configuration database is embedded within the interface module.
18. A method for configuring a network resource comprising the steps of:
providing a resource configuration page communicable with a web tool, the configuration page including a form for facilitating configuration of the resource, the form being capable of receiving a resource parameter entry and a configuration option selection;
receiving a magic-URL, the magic-URL being responsive to the resource configuration page and comprising the configuration option selection and the resource parameter entry;
selecting a configuration API in response to the magic-URL; and,
configuring the resource in response to the configuration API.
19. The method of claim 18 further comprising the step of:
providing a network configuration page comprising a link to the resource configuration page, the network configuration page having information about the network.
20. The method of claim 18 further comprising the steps of:
maintaining the configuration database to reflect the configuration of the resource; and,
creating a configuration database page for providing information about the configuration database, the configuration database page being accessible via the web tool.
21. The method of claim 20 further comprising the step of:
maintaining the network configuration page to be representative of the configuration database.
22. A method for configuring a network resource comprising the steps of:
providing a resource configuration page being accessible by a web tool and having a form for facilitating configuration of the resource, the form being capable of receiving a resource parameter entry and a configuration option selection;
constructing a magic-URL in response to the resource configuration page, the magic-URL comprising the configuration option selection and the resource parameter entry;
selecting a configuration API in response to the magic-URL; and,
configuring the resource in response to the configuration API.
23. The method of claim 22 further comprising the step of:
providing a network configuration page comprising a link to the resource configuration page, the network configuration page providing information about the network.
Description
RELATED APPLICATIONS

[0001] This application is a continuation-in-part of U.S. patent application Ser. No. 08/927,005, filed Sep. 10, 1997, entitled “WEB INTERFACE TO A PPRGRAMMABLE CONTROLLER,” now U.S. Pat. No. 6,282,454, issued Aug. 28, 2001 (SAA-1). This application is related to the following, commonly assigned applications: “WEB INTERFACE TO A PROGRAMMABLE CONTROLLER,” Ser. No. 09/738,445, filed Dec. 15, 2000 (SAA-1-2); “INTERFACE TO A PROGRAMMABLE LOGIC CONTROLLER,” Ser. No. 09/223,349, filed Dec. 30, 1998 (SAA-19); “METHOD FOR PROGRAMMING A PLC USING A WEB BROWSER,” Ser. No. 09/524,171, filed Mar. 13, 2000 (SAA-34); “SYSTEM FOR PROGRAMMING A FACTORY AUTOMATION DEVICE USING A WEB BROWSER,” Ser. No. 09/635,278, filed Aug. 9, 2000 (SAA-34-1); “WEB INTERFACE TO AN INPUT/OUTPUT DEVICE,” Ser. No. 09/595,159, filed Jun. 15, 2000 (SAA-35); “WEB INTERFACE TO AN ELECTRICAL NETWORK CONTROL SYSTEM,” Ser. No. 09/738,433, filed Dec. 15, 2000 (SAA-35-1); “METHOD AND APPARATUS FOR A NOTIFICATION SYSTEM OF AN AUTOMATION NETWORK,” Ser. No. 09/611,996, filed Jul. 7, 2000 (SAA-42); U.S. Pat. No. 6,061,603, “SYSTEM FOR REMOTELY ACCESSSING AN INDUSTRIAL CONTROL SYSTEM OVER A COMMERCIAL COMMUNICATIONS NETWORK,” issued May. 9, 2000 (SAA-1-A); and “METHOD AND SYSTEM FOR IDENTIFIYING FACTORY AUTOMATION OBJECTS,” Ser. No. 09/723,184, filed Nov. 27, 2000 (SAA-48). The contents of these documents are expressly incorporated herein by reference.

TECHNICAL FIELD

[0002] The present invention relates generally to the field of monitoring and controlling input/output modules or devices for a factory automation system. More particularly, the present invention relates to a system and method for accessing objects and components in devices, e.g., programmable logic controllers (PLC), without the use of proprietary protocols.

BACKGROUND OF THE INVENTION

[0003] Methods for remote access of objects and components in a PLC or factory automation device often require unique, proprietary protocols. These methods require custom software to encode, transmit, parse, and interpret the message sent and received within the system. Furthermore, security concerns generally restrict access to the device by requiring transmission through a firewall. In the past, dedicated lines were the common form of communication between such a control system and a remote location. This type of communication had limited application since the control system was not accessible from multiple locations. While modems have made it possible to access the control system from remote locations, such access is generally restricted to downloading and uploading data files. Often times, a customized interface is required to access the control system by an end user.

[0004] With the growth of Internet, and its World Wide Web providing a delivery platform for organizing Internet data through hypertext links, a client-server system can be designed that will give each end user the same type of user friendly interface and universal access to services on the Web. The Web comprises a network of documents, e.g., sites or pages, stored on server computers throughout the world. Each page typically contains text, multimedia offerings, i.e., graphic images, video, or audio; and hypertext links to other web pages or documents. A web tool, e.g., web browser, allows a user to read and interact with the web page. The browser is a graphical software program that sends commands to the Internet Web site and displays available page information. Several browsers are commercially available from different manufacturers.

[0005] Most personal computers or workstations can be used by an end user to connect to the Web through the commercially available browsers. Communication over the Internet and other networks requires one of several available protocols. Protocols such as Internet Protocol (IP) provide for file transfers, electronic mail, and other services. Commercially available programming languages such as Java, along with Hypertext Markup Language (HTML), are used in designing layouts and graphics for a web site or page and have extended Internet technology such that a web site can be used for dynamic applications, e.g. applets, that can be downloaded and run by the end user.

[0006] Programmable logic controllers (PLCs) are widely used in industry and process control. Many manufacturers provide factory automation information using Microsoft Windows and other types of communication networking environments. These networks are usually slow, not universally accessible, and are limited to monitoring and data exchange. Specialized industrial networks using proprietary fieldbus alternatives can be very expensive. Conversion products are required to allow information carried over those networks to be visible on a general-purpose network. There are significant installation and other deployment costs associated with the existence of such intermediate devices. Firewalls between the Web server and the application are designed to solve problems of security and are not designed for high performance.

[0007] It is desirable to develop a system whereby a user can utilize general purpose networks, such as the Internet and specialized industrial networks, directly connected to input/output devices for remote monitoring and control of input/output modules or devices.

[0008] This invention is designed to solve these and other problems.

SUMMARY OF THE INVENTION

[0009] An embodiment of the present invention is directed to a system for configuring a resource in a network. The resource being operably connected to a web tool providing access to the network. The system comprises a configuration database having a plurality of parameters for configuring the resource. A configuration page includes a form to facilitate configuration of the resource. The configuration page is accessible by the web tool and capable of receiving a resource parameter entry and a configuration option selection. The configuration option selection and the resource parameter entry compose a magic-URL. The configuration agent includes an agent API responsive to the magic-URL wherein the configuration agent and the magic-URL cooperate to manage the configuration database.

[0010] A further aspect of the present invention includes a configuration component having a component API. The configuration component API is operably connected to the configuration agent wherein the component API, configuration agent, and configuration database cooperate to configure the resource.

[0011] Another aspect of the present invention includes a remote procedural call mechanism to facilitate communication between the web tool and the configuration agent.

[0012] Yet another aspect of the present invention includes a configuration component web page. The configuration component web page is created in response to the magic-URL and the configuration database.

[0013] Another embodiment of the present invention is directed to a method for configuring a network resource. The network includes a configuration database and a configuration agent wherein a web tool provides access to the network. The method comprises providing a resource configuration page communicable with the web tool. The resource configuration page has a form for facilitating configuration of the resource. The form is capable of receiving a resource parameter entry and a configuration option selection. The configuration option selection and the resource parameter entry compose a magic-URL. The magic-URL is sent via the web to and received at the configuration agent. In response to the magic-URL, a configuration API is selected and executed. The configuration API cooperates with the magic-URL to manage the configuration database.

[0014] A further aspect of the present invention provides a network configuration page comprising a link to the resource configuration page. The network configuration page includes information about the network.

[0015] Yet another aspect of the present invention is directed to maintaining a configuration database page in response to the transmitted magic-URL. The configuration database page contains information about the configuration database and is transmitted to the web tool. The network configuration page is maintained to reflect the configuration of the database.

[0016] An object of the present invention is to utilize industry standard protocols for providing an interface to a resource, e.g., device, in a network.

[0017] Another object of the present invention is to reduce the need for proprietary client-server protocols for accessing a network resource.

[0018] A further object of the present invention is to utilize industry standard protocols for configuring a network resource.

[0019] Yet another object of the present invention is to provide a web interface for on-line configuration of a controller.

[0020] Other features and advantages of the invention, which are believed to be novel and nonobvious, will be apparent from the following specification taken in conjunction with the accompanying drawings in which there is shown a preferred embodiment of the invention. Reference is made to the claims for interpreting the full scope of the invention that is not necessarily represented by such embodiment.

BRIEF DESCRIPTION OF THE DRAWINGS

[0021]FIG. 1 depicts a block diagram of one embodiment of the present invention;

[0022]FIG. 2 depicts a block diagram of one embodiment of the present invention utilizing an RPC mechanism;

[0023]FIG. 3 is a block diagram of FIG.2 wherein the RPC mechanism is SOAP/XML;

[0024]FIG. 4 is a block diagram of one embodiment of the present invention depicting the utilization of the magic-URL;

[0025]FIG. 5 is a block diagram depicting one embodiment of the interface module operably connected to the CPU and web tool;

[0026]FIG. 6a is a flow chart representing transitions of one embodiment of the present invention;

[0027]FIG. 6b is a table representing the behavior of one embodiment of the configuration agent in accordance with the transitions shown in FIG. 6a;

[0028]FIG. 7 is a block diagram depicting an alternative embodiment of the present invention;

[0029]FIG. 8 is one embodiment of the form utilized to configure the configurable resource;

[0030]FIG. 9 is one embodiment of the magic-URL;

[0031]FIG. 10 is a table comprising a sample of configuration agent APIs;

[0032]FIG. 11 is one embodiment of the code architecture utilized in the preferred embodiment of the present invention;

[0033]FIG. 12 depicts one embodiment of a configuration resource page for an address server; and,

[0034]FIG. 13 depicts one embodiment of an address server configuration database file.

[0035]FIG. 14 depicts one embodiment of a web page for facilitating changes to the address configuration file; and,

[0036]FIG. 15 depicts one embodiment of an address server node configuration web page linked to the address server configuration page of FIG. 14.

DETAILED DESCRIPTION

[0037] Although this invention is susceptible to embodiments of many different forms, a preferred embodiment will be described and illustrated in detail herein. The present disclosure exemplifies the principles of the invention and is not to be considered a limit to the broader aspects of the invention to the particular embodiment as described.

[0038] The present invention discloses a method and a system for configuring a network resource 10. The network and many of its components are accessible via a web tool 12, e.g., browser. A configuration page 16 includes a form 18 to facilitate configuration of the resource 10. The form 18 is accessible via the web tool 12 and capable of receiving a resource parameter entry 20 and a configuration option selection 22. A configuration agent 24 is responsive to the form 18 and is capable of interfacing with the resource 10. The configuration agent 24 coordinates the configuration of the resource 10. An agent API 26 is associated with the selected configuration option 22. Dependent upon the entered resource parameter 20 and the selected configuration option 22, a configuration database 28 is accessed and utilized for configuring the resource 10.

[0039] An alternative embodiment of the present invention comprises an interface module 14 operably connected between the resource 10 and the browser 12. The configuration agent 24 is operably connected to the interface module 14 and coordinates the configuration of the resource 10. The configuration database 28 is accessible via the interface module 14 and maintains a plurality of parameters for configuring the resource 10. An industry standard remote procedural call mechanism 30 facilitates communication between the web tool 12 and the interface module 14. The configuration database 28 may reside as a binary structure or ASCII text file.

[0040] The configurable resource 10 is defined by the configuration database 28. Some databases are simple, e.g., an operating mode indicator, and others are more complex, e.g., SNMP MIB. The configuration database 28 can be created by an ASCII editor and downloaded to the system via FTP. Some types of configuration databases 28 are files or components such as: global data variables, controllers, DHCP server databases, and bandwidth setting managers. The scope of a configuration database 28 indicates the parts of the system architecture affected by the database. Affected parts can include system components such as: communication ports, functional components or APIs, and abstractions such as: object modules, address spaces, and name spaces. These components provide details about global data variables such as DataID, symbol name, StateRAM address, and its length in response to a device manager's 30 configuration request.

[0041] The configuration agent 24 is interfaced between the browser 12 and the configurable resource 10. FIG. 1. The configuration agent 24 enables the web-based interface 14 to configure the network component 10. The configuration agent 24 is utilized to communicate with the browser 12 for providing an application program interface (API) 26 for managing the configurable resource 10. The configuration agent 24 also retrieves selected parameters stored in the configuration database 28.

[0042] To execute the configuration agent API 26, the API is operably selected via the browser 12. The browser can utilize Java, GUI, or any other user communication interface mechanism. For example, FIG. 2 depicts a remote procedure call mechanism (RPC) 32 including a client module 34 and a server module 36. The user defines the parameters of the API 26 and initializes its execution. The client module 34 of the RPC mechanism 32 encodes and transmits the API request to the server module 36 of the RPC mechanism 32. The server module 36 decodes the API request and makes an API method call. The configuration agent 24 executes the API 26 and returns resulting data to the server module 36 of the RPC mechanism 32. The server module 36 of the RPC mechanism 32 encodes the API response and sends it to the client module 34 of the RPC mechanism, thus completing the execution of the API 26. The client module 34 of the RPC mechanism 32 presents the selected return data to the user through the browser 12. Some alternative embodiments of the RPC mechanism 32 include: Java/JMI, MS DCOM, CORBA/ORBs, and SOAP/XML. For example, an embodiment utilizing SOAP/XML is shown in FIG. 3. SOAP defines method requests and responses, parameter and return value data types, and method invocation semantics. XML encodes the SOAP requests and responses. HTTP transmits the XML-encoded SOAP request and responses between the client 34 and the server 36. Both the client and the server must have XML parsers and generators.

[0043] The magic-URL 38 is a CGI-like mechanism utilized to access the configuration agent API 26. The magic-URL 38 is a link to a specialized function, i.e., API 26, rather than to a web page. FIG. 4. To accomplish a configuration agent API call, the configuration data page 16 is accessed via the browser 12. The form 18 containing various fields for entering parameter variables 40 and selecting configuration options 42 resides at the configuration web page 16. Desired variables 40 and configuration options 42 are selected on the form 18 and submitted via the browser 12. The contents 40, 42 of the form 18 are encoded into a command composing the magic-URL 38. The selected API configuration option 42 is identified by a tag/value pair, e.g., API=Gda_update—this particular API example updates an entire global database using input selected from the configuration page and encoded in the magic-URL 38. The interface module 14 utilizes the incoming magic-URL 38 to call the API 26. The API 26 uses the URL-encoded data as input and executes the associated function. Preferably, a database web page is either created or updated to reflect the current contents of the database 28.

[0044] In another embodiment of the present invention, a configuration component 11 provides data exchanges for configuration of a resource, e.g., controller. The configuration component 11 must be configured to determine the location and the quantity of application variables to be exchanged in each station. The interface module 14 can be configured via the browser 12 or FTP. To achieve proper configuration of the configuration component 11, a configuration file containing configuration parameter agents 24, e.g., glbdat.ini, cooperates with the database 28. FIG. 5.

[0045] The configuration component 11 includes an agent that implements a resource protocol and offers an API for the configuration sequence used by the GLBD_Configure function of the configuration component 11. The configuration component agent 11 is utilized twice; once when the configuration of the service is set, and again during the configuration of the resource 10. i.e., the configuration database 28 provides the appropriate information to the configuration component 11 using a selected configuration agent API.

[0046]FIGS. 6a and 6 b depict the behavior of the configuration agent 24 according to a device manager 30 request and the associated states of the component state machine. The configuration component 11 provides the GLBD_Configure API. Once called by the device manager 30, this function will configure the resource 10 with the information contained in the database 28. To access this information, the configuration component 11 will use the API 26 provided by the configuration agent 24. FIG. 7.

[0047] Another simple example of the present invention includes the user connecting to the web interface module 14 via the browser 12 to configure the resource component 10. The configuration agent 24 executes the selections on the screen and stores the configuration chosen by the user in a file, i.e., glddata.ini. At this time, the selected entries of the configuration database 28 are not set in the resource component 10—only the parameters are stored in the database 28. During configuration of the resource component 10, the configuration agent 24 provides the component 10 with the information stored in the glbdata.ini file of the database 28 to properly achieve its configuration. The glbdata.ini file is managed by the configuration agent 24 and can be edited manually by the user and then downloaded via FTP to the web interface module 14. The configuration agent 24 creates and manages the database 28. However, it is possible for the user to create the database from the ASCII editor and to download it to the web interface module 14. The browser 12 communicates with the configuration agent 24 to manage the database file 28. FIG. 8. The functions provided by the configuration agent 24 are accessible through the browser 12 and the component 10. The configuration agent 24 reads the database 28 then forwards the data to the component 10 in order to complete its GLB_Configured function. The format of the entry is defined in order to store each parameter accessible by the user from the web configuration page 16—this information is consistent with the needs of the GLB_Configure function.

[0048] The configuration page 16 is preferably written in HTML and may contain JavaScript functions. The web page 16 allows the user to define variables and global data configuration parameters, i.e., group address, multicast filtering, distribution period, health time out, health bit address, start address, etc. For each variable entry, the user may specify parameters, e.g., type (publish/subscribe), symbol, address (the location of the variable in the state RAM or the CPU), and length. The user edits a form 44 and clicks the “Update Symbols” button. This causes the contents of the form 44 to be sent to the agent 24 using the HTTP Get method. The contents of the form 44 are encoded into the magic-URL 38.

[0049] Initially, the database 28 is blank. To enable a correct initialization sequence of the component 10, the user must populate or create the database 28. The database 28 can be created with the browser 12 or FTP. The user accesses the configuration page 16, edits the form 44, and submits the contents of the form to create the first version of the database 28. Alternatively, the user can download an existing database into the web interface module 14 via FTP. The syntax must be checked prior to ensure that failures do not occur during initialization.

[0050] The exchange of data between the configuration agent 24 and the browser 12 utilizes the magic-URL 38. Essentially, the database 28 is modeled as an object and the configuration agent 24 provides a set of methods to manage the object. The content of the current database 28 can be accessed by the user via an HTML file created in response to a request. To send the new values chosen by the user to the agent 24, the content of the form 44 is sent using the HTTP GET method, i.e., data is encoded at the end of the magic-URL 38. The magic-URL 38 enables the call of a specific function 26, API. Unlike a typical URL, an HTML page is not located at the address referenced within the magic-URL 38, but rather, the magic-URL points, or triggers a call to a function. A preferred embodiment of the data exchange between the user and the configuration agent incorporates HTTP wherein the user's choices and configuration parameters are contained in an encoded string located at the end of the magic URL. An example of a magic-URL is shown in FIG. 9. The magic-URL comprises one continuous character string; however, for descriptive purposes, carriage-returns have been inserted within the string for easier readability.

[0051] The information encoded within the magic-URL 38 is parsed by the function call 26 identified within the magic-URL. The contents of the magic-URL reflect the parameters and variables chosen by the user from the form web page 18. The magic-URL 38 appears to function as a typical CGI mechanism because an HTML file can be created in response to the activity of the API 26, e.g., updating a database, wherein the contents of the updated database are formatted and sent to the browser 12 for display.

[0052] Configuration agent APIs 26 provide mechanisms for creating programs for managing the database 28 and to retrieve data previously stored. Sample configuration agent APIs 26 are shown in FIG. 10. Referring to FIG. 11, the preferred code architecture utilizes three files to access the global data agent. These files are: cfgagent.cpp, vxwmisc.c, and vxwhttp.c. File cfgagent.cpp is the core of the agent API code and implements all of the API of the configuration agent, i.e., open, read, save, etc. File vxwmisc.c interfaces with the web tool. The function, Gda_IF is called when the magic-URL 38 is accessed. Then, according to the query string encoded within the magic-URL 38, the appropriate function is called in the cfagent.cpp. The creation of the magic-URL 38—the link to Gda_IF function within vxwmisc.c—is established within vxwhttp.c.

[0053] Another embodiment of the present invention is shown in FIG. 12. The configurable resource 10 is an address server, preferably DHCP. The DHCP server database is capable of storing and retrieving entries dynamically added to the database 28. This functionality is particularly effective in coordinating the replacement of a faulty resource 10 on the network. The configuration parameters of the address server 10 are located in a file, addserv.ini. This file can be created or modified using the web configuration page 16 or an FTP client to upload/download the addreserv.ini file. FIG. 13.

[0054] At system start-up, the existence of a configuration file 28 is verified. If the address configuration file 28 is not present, one is created. The address configuration file 28 contains the configuration parameters 40 of the DHCP server 10. These parameters include: a role name or MAC address; an IP address; a gateway; and a subnet mask. Preferably, two web pages are utilized to configure the address server 10. A first page 46 depicts the device or devices being utilized and their respective configurations. FIG. 14. A second page 48 facilitates modifying, or editing, the device's configuration and is accessible via a link from the first page. FIG. 15.

[0055] From the address configuration page 46, a new device 10 can be accessed. An entry can be selected by clicking on the associated radio button to the left of the entry. When the entry is selected, all the device information, i.e., role name, IP address, etc. is placed in a hidden field. This information is stored in an array during the creation of the address configuration web page for use by JavaScript.

[0056] When adding an entry, the entry is selected by clicking the radio button and the address server node configuration page 48 will appear. If a device was selected, the configuration for that device will appear on the page. Otherwise, default values are presented on the page. To change an entry, the user is allowed to modify the configuration of the device via the address server node configuration page reflecting the current configuration that appears in response to the selection of the entry.

[0057] To remove an entry, the user selects the entry and then selects the “Delete an Entry” icon. The selected entry will be removed from the database and the page redisplayed to reflect this change. When the user has successfully added, modified, or removed an entry, confirmation of this action will be provided on the screen; via a generated web page.

[0058] Generally, the address server node configuration web page 48 is utilized to add or modify an entry in the database. In either case, all fields except for Role Name and MAC Address must be filled. If the MAC address field is defined, the Role Name field is empty; and if the Role Name field is defined, the MAC address field will be empty. The fields include: Entry Number (id); Role Name(rn)—each role name must be unique; Device IP Address (ip); Device MAC Address (ha) in hexadecimal; Submet Mask (sm) in IP format; and Gateway (gw)—preferably on the same subnet as the device and in IP format.

[0059] To effect the change, the address server configuration file 46 must be updated on the server side. To do this, the address server configuration agent 24 is utilized to update the address server configuration file 28 with the parameters provided by the user through the address server configuration web pages 46, 48. The configuration agent 28 utilizes the magic-URL 38 encoded with the information from the form 18 populated by the user. The type of API tasks performed by the agent 28 include:

[0060] ADD: add a device in the database and the system;

[0061] CHANGE: change the configuration of a device in the database and the system;

[0062] DELETE: remove a device from the database and the system; and,

[0063] REFRESH: display the configuration page with the current configuration. In response to the type of task requested to be performed, an appropriate API is selected and accompanied with the appropriate data required for executing the task. Not all tasks require the same data. For instance, ADD requires Role Name, IP Address, MAC Address, Subnet Mask, and Gateway, while DELETE only requires Entry Number; and REFRESH does not require any data. CHANGE requires everything that ADD requires and an Entry Number.

[0064] A query string comprises the magic-URL 38 and information required for executing the function 26 called by the magic-URL. An example of the magic-URL is: xxx/secure/embedded/DHCPa_IF?API=CHANGE&id=0&rn=myEIO&ip=139.158.13.222&ha=FF+FF+FF+FF+FF+FF&sm=255.255.255.0gw=139.158.8.1&submit=Submit+the +Form, wherein xxx/secure/embedded/DHCPa_IF? is the function call with the data following thereafter.

[0065] Configuration information entered at the configuration web page can include any combination of the following parameters, including others: id (entry number); rn (role name); ip (device IP address); ha (device MAC address); sm (subnet mask); gw (gateway); and submit (caption of the form submit button).

[0066] The relationship of the configuration database 28 to existing control applications is of particular importance. Preferably, the definition of the database 28 resides in a single location. Due to design architecture, some devices/systems utilize proxies or replications as an intermediate interface to the configuration database 28. If such duplication is implemented, it is preferable that a mechanism exist to ensure automatic and timely synchronization of the configuration database 28 definition with any cached or replicated definition. Often, this synchronization can occur in real-time. As noted earlier, when a configuration is written to the interface module 14, the content of the file is not automatically synchronized with the running component. The resynchronization must be accomplished by some other mechanism, such as resetting the resource. If dynamic changes to the runtime version of the database are allowed—which is really a replication of the original database—it is imperative to ensure that a mechanism exist to make the persistent version consistent with the runtime version. Conversely, if dynamic changes to the persistent version of the database 28 are allowed, a mechanism should be provided to resynchronize the resource 10 with the persistent version of the database.

[0067] From the foregoing, it will be observed that numerous variations and modifications may be effected without departing from the spirit and scope of the invention. It is to be understood that no limitation with respect to the specific apparatus illustrated herein is intended or should be inferred. It is, of course, intended to cover by the appended claims all such modifications as fall within the scope of the claims.

RELATED APPLICATIONS

[0001] This application is a continuation-in-part of U.S. patent application Ser. No. 08/927,005, filed Sep. 10, 1997, entitled “WEB INTERFACE TO A PPRGRAMMABLE CONTROLLER,” now U.S. Pat. No. 6,282,454, issued Aug. 28, 2001 (SAA-1). This application is related to the following, commonly assigned applications: “WEB INTERFACE TO A PROGRAMMABLE CONTROLLER,” Ser. No. 09/738,445, filed Dec. 15, 2000 (SAA-1-2); “INTERFACE TO A PROGRAMMABLE LOGIC CONTROLLER,” Ser. No. 09/223,349, filed Dec. 30, 1998 (SAA-19); “METHOD FOR PROGRAMMING A PLC USING A WEB BROWSER,” Ser. No. 09/524,171, filed Mar. 13, 2000 (SAA-34); “SYSTEM FOR PROGRAMMING A FACTORY AUTOMATION DEVICE USING A WEB BROWSER,” Ser. No. 09/635,278, filed Aug. 9, 2000 (SAA-34-1); “WEB INTERFACE TO AN INPUT/OUTPUT DEVICE,” Ser. No. 09/595,159, filed Jun. 15, 2000 (SAA-35); “WEB INTERFACE TO AN ELECTRICAL NETWORK CONTROL SYSTEM,” Ser. No. 09/738,433, filed Dec. 15, 2000 (SAA-35-1); “METHOD AND APPARATUS FOR A NOTIFICATION SYSTEM OF AN AUTOMATION NETWORK,” Ser. No. 09/611,996, filed Jul. 7, 2000 (SAA-42); U.S. Pat. No. 6,061,603, “SYSTEM FOR REMOTELY ACCESSSING AN INDUSTRIAL CONTROL SYSTEM OVER A COMMERCIAL COMMUNICATIONS NETWORK,” issued May. 9, 2000 (SAA-1-A); and “METHOD AND SYSTEM FOR IDENTIFIYING FACTORY AUTOMATION OBJECTS,” Ser. No. 09/723,184, filed Nov. 27, 2000 (SAA-48). The contents of these documents are expressly incorporated herein by reference.

TECHNICAL FIELD

[0002] The present invention relates generally to the field of monitoring and controlling input/output modules or devices for a factory automation system. More particularly, the present invention relates to a system and method for accessing objects and components in devices, e.g., programmable logic controllers (PLC), without the use of proprietary protocols.

BACKGROUND OF THE INVENTION

[0003] Methods for remote access of objects and components in a PLC or factory automation device often require unique, proprietary protocols. These methods require custom software to encode, transmit, parse, and interpret the message sent and received within the system. Furthermore, security concerns generally restrict access to the device by requiring transmission through a firewall. In the past, dedicated lines were the common form of communication between such a control system and a remote location. This type of communication had limited application since the control system was not accessible from multiple locations. While modems have made it possible to access the control system from remote locations, such access is generally restricted to downloading and uploading data files. Often times, a customized interface is required to access the control system by an end user.

[0004] With the growth of Internet, and its World Wide Web providing a delivery platform for organizing Internet data through hypertext links, a client-server system can be designed that will give each end user the same type of user friendly interface and universal access to services on the Web. The Web comprises a network of documents, e.g., sites or pages, stored on server computers throughout the world. Each page typically contains text, multimedia offerings, i.e., graphic images, video, or audio; and hypertext links to other web pages or documents. A web tool, e.g., web browser, allows a user to read and interact with the web page. The browser is a graphical software program that sends commands to the Internet Web site and displays available page information. Several browsers are commercially available from different manufacturers.

[0005] Most personal computers or workstations can be used by an end user to connect to the Web through the commercially available browsers. Communication over the Internet and other networks requires one of several available protocols. Protocols such as Internet Protocol (IP) provide for file transfers, electronic mail, and other services. Commercially available programming languages such as Java, along with Hypertext Markup Language (HTML), are used in designing layouts and graphics for a web site or page and have extended Internet technology such that a web site can be used for dynamic applications, e.g. applets, that can be downloaded and run by the end user.

[0006] Programmable logic controllers (PLCs) are widely used in industry and process control. Many manufacturers provide factory automation information using Microsoft Windows and other types of communication networking environments. These networks are usually slow, not universally accessible, and are limited to monitoring and data exchange. Specialized industrial networks using proprietary fieldbus alternatives can be very expensive. Conversion products are required to allow information carried over those networks to be visible on a general-purpose network. There are significant installation and other deployment costs associated with the existence of such intermediate devices. Firewalls between the Web server and the application are designed to solve problems of security and are not designed for high performance.

[0007] It is desirable to develop a system whereby a user can utilize general purpose networks, such as the Internet and specialized industrial networks, directly connected to input/output devices for remote monitoring and control of input/output modules or devices.

[0008] This invention is designed to solve these and other problems.

SUMMARY OF THE INVENTION

[0009] An embodiment of the present invention is directed to a system for configuring a resource in a network. The resource being operably connected to a web tool providing access to the network. The system comprises a configuration database having a plurality of parameters for configuring the resource. A configuration page includes a form to facilitate configuration of the resource. The configuration page is accessible by the web tool and capable of receiving a resource parameter entry and a configuration option selection. The configuration option selection and the resource parameter entry compose a magic-URL. The configuration agent includes an agent API responsive to the magic-URL wherein the configuration agent and the magic-URL cooperate to manage the configuration database.

[0010] A further aspect of the present invention includes a configuration component having a component API. The configuration component API is operably connected to the configuration agent wherein the component API, configuration agent, and configuration database cooperate to configure the resource.

[0011] Another aspect of the present invention includes a remote procedural call mechanism to facilitate communication between the web tool and the configuration agent.

[0012] Yet another aspect of the present invention includes a configuration component web page. The configuration component web page is created in response to the magic-URL and the configuration database.

[0013] Another embodiment of the present invention is directed to a method for configuring a network resource. The network includes a configuration database and a configuration agent wherein a web tool provides access to the network. The method comprises providing a resource configuration page communicable with the web tool. The resource configuration page has a form for facilitating configuration of the resource. The form is capable of receiving a resource parameter entry and a configuration option selection. The configuration option selection and the resource parameter entry compose a magic-URL. The magic-URL is sent via the web to and received at the configuration agent. In response to the magic-URL, a configuration API is selected and executed. The configuration API cooperates with the magic-URL to manage the configuration database.

[0014] A further aspect of the present invention provides a network configuration page comprising a link to the resource configuration page. The network configuration page includes information about the network.

[0015] Yet another aspect of the present invention is directed to maintaining a configuration database page in response to the transmitted magic-URL. The configuration database page contains information about the configuration database and is transmitted to the web tool. The network configuration page is maintained to reflect the configuration of the database.

[0016] An object of the present invention is to utilize industry standard protocols for providing an interface to a resource, e.g., device, in a network.

[0017] Another object of the present invention is to reduce the need for proprietary client-server protocols for accessing a network resource.

[0018] A further object of the present invention is to utilize industry standard protocols for configuring a network resource.

[0019] Yet another object of the present invention is to provide a web interface for on-line configuration of a controller.

[0020] Other features and advantages of the invention, which are believed to be novel and nonobvious, will be apparent from the following specification taken in conjunction with the accompanying drawings in which there is shown a preferred embodiment of the invention. Reference is made to the claims for interpreting the full scope of the invention that is not necessarily represented by such embodiment.

BRIEF DESCRIPTION OF THE DRAWINGS

[0021]FIG. 1 depicts a block diagram of one embodiment of the present invention;

[0022]FIG. 2 depicts a block diagram of one embodiment of the present invention utilizing an RPC mechanism;

[0023]FIG. 3 is a block diagram of FIG.2 wherein the RPC mechanism is SOAP/XML;

[0024]FIG. 4 is a block diagram of one embodiment of the present invention depicting the utilization of the magic-URL;

[0025]FIG. 5 is a block diagram depicting one embodiment of the interface module operably connected to the CPU and web tool;

[0026]FIG. 6a is a flow chart representing transitions of one embodiment of the present invention;

[0027]FIG. 6b is a table representing the behavior of one embodiment of the configuration agent in accordance with the transitions shown in FIG. 6a;

[0028]FIG. 7 is a block diagram depicting an alternative embodiment of the present invention;

[0029]FIG. 8 is one embodiment of the form utilized to configure the configurable resource;

[0030]FIG. 9 is one embodiment of the magic-URL;

[0031]FIG. 10 is a table comprising a sample of configuration agent APIs;

[0032]FIG. 11 is one embodiment of the code architecture utilized in the preferred embodiment of the present invention;

[0033]FIG. 12 depicts one embodiment of a configuration resource page for an address server; and,

[0034]FIG. 13 depicts one embodiment of an address server configuration database file.

[0035]FIG. 14 depicts one embodiment of a web page for facilitating changes to the address configuration file; and,

[0036]FIG. 15 depicts one embodiment of an address server node configuration web page linked to the address server configuration page of FIG. 14.

DETAILED DESCRIPTION

[0037] Although this invention is susceptible to embodiments of many different forms, a preferred embodiment will be described and illustrated in detail herein. The present disclosure exemplifies the principles of the invention and is not to be considered a limit to the broader aspects of the invention to the particular embodiment as described.

[0038] The present invention discloses a method and a system for configuring a network resource 10. The network and many of its components are accessible via a web tool 12, e.g., browser. A configuration page 16 includes a form 18 to facilitate configuration of the resource 10. The form 18 is accessible via the web tool 12 and capable of receiving a resource parameter entry 20 and a configuration option selection 22. A configuration agent 24 is responsive to the form 18 and is capable of interfacing with the resource 10. The configuration agent 24 coordinates the configuration of the resource 10. An agent API 26 is associated with the selected configuration option 22. Dependent upon the entered resource parameter 20 and the selected configuration option 22, a configuration database 28 is accessed and utilized for configuring the resource 10.

[0039] An alternative embodiment of the present invention comprises an interface module 14 operably connected between the resource 10 and the browser 12. The configuration agent 24 is operably connected to the interface module 14 and coordinates the configuration of the resource 10. The configuration database 28 is accessible via the interface module 14 and maintains a plurality of parameters for configuring the resource 10. An industry standard remote procedural call mechanism 30 facilitates communication between the web tool 12 and the interface module 14. The configuration database 28 may reside as a binary structure or ASCII text file.

[0040] The configurable resource 10 is defined by the configuration database 28. Some databases are simple, e.g., an operating mode indicator, and others are more complex, e.g., SNMP MIB. The configuration database 28 can be created by an ASCII editor and downloaded to the system via FTP. Some types of configuration databases 28 are files or components such as: global data variables, controllers, DHCP server databases, and bandwidth setting managers. The scope of a configuration database 28 indicates the parts of the system architecture affected by the database. Affected parts can include system components such as: communication ports, functional components or APIs, and abstractions such as: object modules, address spaces, and name spaces. These components provide details about global data variables such as DataID, symbol name, StateRAM address, and its length in response to a device manager's 30 configuration request.

[0041] The configuration agent 24 is interfaced between the browser 12 and the configurable resource 10. FIG. 1. The configuration agent 24 enables the web-based interface 14 to configure the network component 10. The configuration agent 24 is utilized to communicate with the browser 12 for providing an application program interface (API) 26 for managing the configurable resource 10. The configuration agent 24 also retrieves selected parameters stored in the configuration database 28.

[0042] To execute the configuration agent API 26, the API is operably selected via the browser 12. The browser can utilize Java, GUI, or any other user communication interface mechanism. For example, FIG. 2 depicts a remote procedure call mechanism (RPC) 32 including a client module 34 and a server module 36. The user defines the parameters of the API 26 and initializes its execution. The client module 34 of the RPC mechanism 32 encodes and transmits the API request to the server module 36 of the RPC mechanism 32. The server module 36 decodes the API request and makes an API method call. The configuration agent 24 executes the API 26 and returns resulting data to the server module 36 of the RPC mechanism 32. The server module 36 of the RPC mechanism 32 encodes the API response and sends it to the client module 34 of the RPC mechanism, thus completing the execution of the API 26. The client module 34 of the RPC mechanism 32 presents the selected return data to the user through the browser 12. Some alternative embodiments of the RPC mechanism 32 include: Java/JMI, MS DCOM, CORBA/ORBs, and SOAP/XML. For example, an embodiment utilizing SOAP/XML is shown in FIG. 3. SOAP defines method requests and responses, parameter and return value data types, and method invocation semantics. XML encodes the SOAP requests and responses. HTTP transmits the XML-encoded SOAP request and responses between the client 34 and the server 36. Both the client and the server must have XML parsers and generators.

[0043] The magic-URL 38 is a CGI-like mechanism utilized to access the configuration agent API 26. The magic-URL 38 is a link to a specialized function, i.e., API 26, rather than to a web page. FIG. 4. To accomplish a configuration agent API call, the configuration data page 16 is accessed via the browser 12. The form 18 containing various fields for entering parameter variables 40 and selecting configuration options 42 resides at the configuration web page 16. Desired variables 40 and configuration options 42 are selected on the form 18 and submitted via the browser 12. The contents 40, 42 of the form 18 are encoded into a command composing the magic-URL 38. The selected API configuration option 42 is identified by a tag/value pair, e.g., API=Gda_update—this particular API example updates an entire global database using input selected from the configuration page and encoded in the magic-URL 38. The interface module 14 utilizes the incoming magic-URL 38 to call the API 26. The API 26 uses the URL-encoded data as input and executes the associated function. Preferably, a database web page is either created or updated to reflect the current contents of the database 28.

[0044] In another embodiment of the present invention, a configuration component 11 provides data exchanges for configuration of a resource, e.g., controller. The configuration component 11 must be configured to determine the location and the quantity of application variables to be exchanged in each station. The interface module 14 can be configured via the browser 12 or FTP. To achieve proper configuration of the configuration component 11, a configuration file containing configuration parameter agents 24, e.g., glbdat.ini, cooperates with the database 28. FIG. 5.

[0045] The configuration component 11 includes an agent that implements a resource protocol and offers an API for the configuration sequence used by the GLBD_Configure function of the configuration component 11. The configuration component agent 11 is utilized twice; once when the configuration of the service is set, and again during the configuration of the resource 10. i.e., the configuration database 28 provides the appropriate information to the configuration component 11 using a selected configuration agent API.

[0046]FIGS. 6a and 6 b depict the behavior of the configuration agent 24 according to a device manager 30 request and the associated states of the component state machine. The configuration component 11 provides the GLBD_Configure API. Once called by the device manager 30, this function will configure the resource 10 with the information contained in the database 28. To access this information, the configuration component 11 will use the API 26 provided by the configuration agent 24. FIG. 7.

[0047] Another simple example of the present invention includes the user connecting to the web interface module 14 via the browser 12 to configure the resource component 10. The configuration agent 24 executes the selections on the screen and stores the configuration chosen by the user in a file, i.e., glddata.ini. At this time, the selected entries of the configuration database 28 are not set in the resource component 10—only the parameters are stored in the database 28. During configuration of the resource component 10, the configuration agent 24 provides the component 10 with the information stored in the glbdata.ini file of the database 28 to properly achieve its configuration. The glbdata.ini file is managed by the configuration agent 24 and can be edited manually by the user and then downloaded via FTP to the web interface module 14. The configuration agent 24 creates and manages the database 28. However, it is possible for the user to create the database from the ASCII editor and to download it to the web interface module 14. The browser 12 communicates with the configuration agent 24 to manage the database file 28. FIG. 8. The functions provided by the configuration agent 24 are accessible through the browser 12 and the component 10. The configuration agent 24 reads the database 28 then forwards the data to the component 10 in order to complete its GLB_Configured function. The format of the entry is defined in order to store each parameter accessible by the user from the web configuration page 16—this information is consistent with the needs of the GLB_Configure function.

[0048] The configuration page 16 is preferably written in HTML and may contain JavaScript functions. The web page 16 allows the user to define variables and global data configuration parameters, i.e., group address, multicast filtering, distribution period, health time out, health bit address, start address, etc. For each variable entry, the user may specify parameters, e.g., type (publish/subscribe), symbol, address (the location of the variable in the state RAM or the CPU), and length. The user edits a form 44 and clicks the “Update Symbols” button. This causes the contents of the form 44 to be sent to the agent 24 using the HTTP Get method. The contents of the form 44 are encoded into the magic-URL 38.

[0049] Initially, the database 28 is blank. To enable a correct initialization sequence of the component 10, the user must populate or create the database 28. The database 28 can be created with the browser 12 or FTP. The user accesses the configuration page 16, edits the form 44, and submits the contents of the form to create the first version of the database 28. Alternatively, the user can download an existing database into the web interface module 14 via FTP. The syntax must be checked prior to ensure that failures do not occur during initialization.

[0050] The exchange of data between the configuration agent 24 and the browser 12 utilizes the magic-URL 38. Essentially, the database 28 is modeled as an object and the configuration agent 24 provides a set of methods to manage the object. The content of the current database 28 can be accessed by the user via an HTML file created in response to a request. To send the new values chosen by the user to the agent 24, the content of the form 44 is sent using the HTTP GET method, i.e., data is encoded at the end of the magic-URL 38. The magic-URL 38 enables the call of a specific function 26, API. Unlike a typical URL, an HTML page is not located at the address referenced within the magic-URL 38, but rather, the magic-URL points, or triggers a call to a function. A preferred embodiment of the data exchange between the user and the configuration agent incorporates HTTP wherein the user's choices and configuration parameters are contained in an encoded string located at the end of the magic URL. An example of a magic-URL is shown in FIG. 9. The magic-URL comprises one continuous character string; however, for descriptive purposes, carriage-returns have been inserted within the string for easier readability.

[0051] The information encoded within the magic-URL 38 is parsed by the function call 26 identified within the magic-URL. The contents of the magic-URL reflect the parameters and variables chosen by the user from the form web page 18. The magic-URL 38 appears to function as a typical CGI mechanism because an HTML file can be created in response to the activity of the API 26, e.g., updating a database, wherein the contents of the updated database are formatted and sent to the browser 12 for display.

[0052] Configuration agent APIs 26 provide mechanisms for creating programs for managing the database 28 and to retrieve data previously stored. Sample configuration agent APIs 26 are shown in FIG. 10. Referring to FIG. 11, the preferred code architecture utilizes three files to access the global data agent. These files are: cfgagent.cpp, vxwmisc.c, and vxwhttp.c. File cfgagent.cpp is the core of the agent API code and implements all of the API of the configuration agent, i.e., open, read, save, etc. File vxwmisc.c interfaces with the web tool. The function, Gda_IF is called when the magic-URL 38 is accessed. Then, according to the query string encoded within the magic-URL 38, the appropriate function is called in the cfagent.cpp. The creation of the magic-URL 38—the link to Gda_IF function within vxwmisc.c—is established within vxwhttp.c.

[0053] Another embodiment of the present invention is shown in FIG. 12. The configurable resource 10 is an address server, preferably DHCP. The DHCP server database is capable of storing and retrieving entries dynamically added to the database 28. This functionality is particularly effective in coordinating the replacement of a faulty resource 10 on the network. The configuration parameters of the address server 10 are located in a file, addserv.ini. This file can be created or modified using the web configuration page 16 or an FTP client to upload/download the addreserv.ini file. FIG. 13.

[0054] At system start-up, the existence of a configuration file 28 is verified. If the address configuration file 28 is not present, one is created. The address configuration file 28 contains the configuration parameters 40 of the DHCP server 10. These parameters include: a role name or MAC address; an IP address; a gateway; and a subnet mask. Preferably, two web pages are utilized to configure the address server 10. A first page 46 depicts the device or devices being utilized and their respective configurations. FIG. 14. A second page 48 facilitates modifying, or editing, the device's configuration and is accessible via a link from the first page. FIG. 15.

[0055] From the address configuration page 46, a new device 10 can be accessed. An entry can be selected by clicking on the associated radio button to the left of the entry. When the entry is selected, all the device information, i.e., role name, IP address, etc. is placed in a hidden field. This information is stored in an array during the creation of the address configuration web page for use by JavaScript.

[0056] When adding an entry, the entry is selected by clicking the radio button and the address server node configuration page 48 will appear. If a device was selected, the configuration for that device will appear on the page. Otherwise, default values are presented on the page. To change an entry, the user is allowed to modify the configuration of the device via the address server node configuration page reflecting the current configuration that appears in response to the selection of the entry.

[0057] To remove an entry, the user selects the entry and then selects the “Delete an Entry” icon. The selected entry will be removed from the database and the page redisplayed to reflect this change. When the user has successfully added, modified, or removed an entry, confirmation of this action will be provided on the screen; via a generated web page.

[0058] Generally, the address server node configuration web page 48 is utilized to add or modify an entry in the database. In either case, all fields except for Role Name and MAC Address must be filled. If the MAC address field is defined, the Role Name field is empty; and if the Role Name field is defined, the MAC address field will be empty. The fields include: Entry Number (id); Role Name(rn)—each role name must be unique; Device IP Address (ip); Device MAC Address (ha) in hexadecimal; Submet Mask (sm) in IP format; and Gateway (gw)—preferably on the same subnet as the device and in IP format.

[0059] To effect the change, the address server configuration file 46 must be updated on the server side. To do this, the address server configuration agent 24 is utilized to update the address server configuration file 28 with the parameters provided by the user through the address server configuration web pages 46, 48. The configuration agent 28 utilizes the magic-URL 38 encoded with the information from the form 18 populated by the user. The type of API tasks performed by the agent 28 include:

[0060] ADD: add a device in the database and the system;

[0061] CHANGE: change the configuration of a device in the database and the system;

[0062] DELETE: remove a device from the database and the system; and,

[0063] REFRESH: display the configuration page with the current configuration. In response to the type of task requested to be performed, an appropriate API is selected and accompanied with the appropriate data required for executing the task. Not all tasks require the same data. For instance, ADD requires Role Name, IP Address, MAC Address, Subnet Mask, and Gateway, while DELETE only requires Entry Number; and REFRESH does not require any data. CHANGE requires everything that ADD requires and an Entry Number.

[0064] A query string comprises the magic-URL 38 and information required for executing the function 26 called by the magic-URL. An example of the magic-URL is: xxx/secure/embedded/DHCPa_IF?API=CHANGE&id=0&rn=myEIO&ip=139.158.13.222&ha=FF+FF+FF+FF+FF+FF&sm=255.255.255.0gw=139.158.8.1&submit=Submit+the +Form, wherein xxx/secure/embedded/DHCPa_IF? is the function call with the data following thereafter.

[0065] Configuration information entered at the configuration web page can include any combination of the following parameters, including others: id (entry number); rn (role name); ip (device IP address); ha (device MAC address); sm (subnet mask); gw (gateway); and submit (caption of the form submit button).

[0066] The relationship of the configuration database 28 to existing control applications is of particular importance. Preferably, the definition of the database 28 resides in a single location. Due to design architecture, some devices/systems utilize proxies or replications as an intermediate interface to the configuration database 28. If such duplication is implemented, it is preferable that a mechanism exist to ensure automatic and timely synchronization of the configuration database 28 definition with any cached or replicated definition. Often, this synchronization can occur in real-time. As noted earlier, when a configuration is written to the interface module 14, the content of the file is not automatically synchronized with the running component. The resynchronization must be accomplished by some other mechanism, such as resetting the resource. If dynamic changes to the runtime version of the database are allowed—which is really a replication of the original database—it is imperative to ensure that a mechanism exist to make the persistent version consistent with the runtime version. Conversely, if dynamic changes to the persistent version of the database 28 are allowed, a mechanism should be provided to resynchronize the resource 10 with the persistent version of the database.

[0067] From the foregoing, it will be observed that numerous variations and modifications may be effected without departing from the spirit and scope of the invention. It is to be understood that no limitation with respect to the specific apparatus illustrated herein is intended or should be inferred. It is, of course, intended to cover by the appended claims all such modifications as fall within the scope of the claims.

Referenced by
Citing PatentFiling datePublication dateApplicantTitle
US7171421 *Nov 26, 2002Jan 30, 2007General Electric CompanySystem for automating operating parameter list process
US7519694 *Aug 24, 2005Apr 14, 2009Sun Microsystems, Inc.Method and a system to dynamically update/reload agent configuration data
US7984457Oct 2, 2008Jul 19, 2011Null Networks LlcSoftware methods of an optical network apparatus with multiple multi-protocol optical networking modules having packet filtering resources
US8024740 *Mar 16, 2005Sep 20, 2011Nec CorporationAcquisition system for distributed computing resources
US8028045 *Sep 29, 2006Sep 27, 2011Rockwell Automation Technologies, Inc.Web-based configuration server for automation systems
US8028049 *Feb 1, 2000Sep 27, 2011Peer Intellectual Property Inc.Apparatus and method for web-based tool management
US8185603 *Dec 16, 2003May 22, 2012Abb AbMethod for accessing a function of a real-world object
US8285807 *Mar 28, 2011Oct 9, 2012Invensys Systems, Inc.Method and system for remote industrial factory automation control of a local system
US8683017 *Sep 29, 2006Mar 25, 2014Rockwell Automation Technologies, Inc.Web-based configuration of distributed automation systems
US20070240080 *Apr 11, 2006Oct 11, 2007Invensys Systems, Inc.Strategy editor for process control supporting drag and drop connections to declarations
US20110010624 *Jun 29, 2010Jan 13, 2011Vanslette Paul JSynchronizing audio-visual data with event data
US20110225503 *Mar 28, 2011Sep 15, 2011Invensys Systems Inc.Method and System for Remote Control of a Local System
US20120317078 *Nov 18, 2011Dec 13, 2012Sybase, Inc.Replication Support for Structured Data
EP1880253A2 *May 11, 2006Jan 23, 2008Rockwell Automation Technologies, Inc.Distributed database in an industrial automation environment
WO2010148067A2 *Jun 16, 2010Dec 23, 2010Control4 CorporationAutomation control of electronic devices
Classifications
U.S. Classification709/220
International ClassificationG05B19/418, H04L12/24, H04L29/08, H04Q9/00, G05B19/05, H04L29/06, G06F13/00
Cooperative ClassificationH04L69/08, H04L67/02, H04L69/16, H04L69/161, H04L69/329, H04L69/169, H04L67/142, H04L67/025, H04L67/12, G05B2219/15038, G05B2219/31156, G05B19/4185, H04L41/0803, G05B2219/34038, G05B19/05, H04L41/0273, G05B2219/32126, G05B2219/31422, H04L29/06, H04L41/0253, H04L41/08, G05B2219/31186, G05B2219/31104, H04L41/046
European ClassificationH04L29/06J3, H04L29/06J19, H04L41/08, H04L29/08N13B, H04L41/08A, G05B19/418N, H04L41/02G1, H04L29/06J, H04L29/08N11, H04L29/08N1A, H04L29/08N1, H04L29/06, G05B19/05
Legal Events
DateCodeEventDescription
Jun 24, 2002ASAssignment
Owner name: SCHNEIDER AUTOMATION, INC. C/O SQUARE D COMPANY, I
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DUBE, DENNIS J.W.;REEL/FRAME:013034/0835
Effective date: 20020604