# Patent

## Title
Peer-to-peer hosting of intelligent field devices

## Abstract

Device configurations are stored in a system including at least two intelligent field devices (IFDs) connected by a communications connection. A configuration for a first IFD is stored in the first IFD, and a backup of the configuration for the first IFD is stored in at least one other IFD. Storing a configuration for the first IFD may include having the first IFD request a configuration from at least one other IFD using the communications connection, an IFD having a stored backup of the configuration for the first IFD transmitting the backup to the first IFD using the communications connection, and the first IFD receiving the transmitted backup and storing the received backup in the first IFD as the configuration for the first IFD. Storing a backup of the configuration for the first IFD may include having the first IFD transmit a backup of the configuration for the first IFD to at least one other IFD using the communications connection, and having the at least one other IFD receive and store the backup of the configuration.

## Background
This application is a continuation of U.S. application Ser. No. 09/531,597, filed Mar. 20, 2000, now U.S. Pat. No. 6,978,294 titled “PEER-TO-PEER HOSTING OF INTELLIGENT FIELD DEVICES”, which is incorporated by reference.


BACKGROUND
Intelligent Field Devices (IFDS) are programmable hardware devices that are commonly used in industrial environments. Examples of IFDs include temperature sensors, pressure sensors, and valve positioners. In a typical industrial setting, there may be many independent IFDs, each of which has a configuration that is customized for the requirements of that IFD. A configuration includes instructions regarding the initial settings of the IFD and the manner in which the IFD will respond to anticipated events. Typically, the configuration of a particular IFD differs from configurations of other IFDs. A configuration can be updated as often as necessary to provide optimal IFD and system performance.
In one approach to configuring IFDs, a different configurator is used for each IFD. Typically, a configurator is a vendor-supplied, hand-held device that may be connected directly to an IFD.
Often, an IFD must recover its configuration due to a power loss, or after replacement due to device failure. A power loss may be planned, as when an IFD is taken out of service for maintenance, or unplanned, as when a power outage occurs. A common approach to recovery from a loss of power is to store the configuration data in non-volatile memory in the IFD. For large IFDs, it often is not practical to provide a sufficient amount of non-volatile memory within the device itself, due to size, speed, or cost constraints. Therefore, the configuration data for larger IFDs often are stored on a computer and downloaded to the IFD when needed.
When an IFD is replaced due to device failure, its configuration must be restored from outside the IFD. The most commonly used method for restoring configurations to an IFD is through a hand-held configurator. In particular, a hand-held configurator stores the configuration for a particular IFD on a removable medium, such as a memory pack. When that IFD is replaced, the corresponding configurator and memory pack are employed to reload the configuration onto the IFD.
A common alternative method for IFD configuration recovery is the use of a computer as a central configurator that stores all of the configurations. Typically, a portable computer is used for this purpose. To configure an IFD, the computer is connected to the IFD and the configuration is downloaded from the computer to the IFD. Often, for the sake of redundancy, a vendor provides both a hand-held configurator and a central configurator system using a portable computer.
SUMMARY
The invention is directed to storing device configurations in a system including at least two interconnected intelligent field devices (IFDs). At least two IFDs and a communications connection between them are provided. A configuration for a first IFD is stored in the first IFD, and a backup of the configuration for the first IFD is stored in at least one other IFD. The configuration for an IFD includes instructions regarding the initial settings of the IFD and the manner in which the IFD should respond to particular events.
Embodiments may include one or more of the following features. For example, storing a configuration for the first IFD may include having the first IFD request a configuration from at least one other IFD using the communications connection, having an IFD with a stored backup of the configuration for the first IFD transmit the backup to the first IFD using the communications connection, and having the first IFD receive the transmitted backup and store the received backup in the first IFD as the configuration for the first IFD. Additionally, storing a backup of the configuration for the first IFD may include having the first IFD transmit a backup of the configuration for the first IFD to at least one other IFD using the communications connection, and having the at least one other IFD receive and store the backup of the configuration.
In another implementation, storing a backup of the configuration for the first IFD includes having the first IFD transmit a backup of the configuration for the first IFD to at least one other IFD using the communications connection, and having the at least one other IFD receive and store the backup of the configuration.
In another implementation, storing a configuration for an IFD includes generating the configuration using a configurator program and storing the generated configuration. The configurator program may be stored in an IFD, possibly in the form of a Java applet. The configurator program may be accessed by using a Web browser, which may be stored in a device that is connected to the communications connection, thus enabling the Web browser to access the configurator program through the communications connection.
Alternatively, the Web browser may access the configurator program through a wireless connection between a device on which the Web browser is stored and an IFD. Such a wireless connection may be accomplished via an infrared connection, using, for example, a personal digital assistant or a portable computer.
In another implementation, the configurator program may itself be stored on a Web site. A Web browser may be used to access the configurator program, or an Internet gateway component may be used to access the configurator program by translating the Internet-compatible communications into a protocol being used by the IFDs. Likewise, a backup of the configuration for each IFD may be stored on a Web site, and either a Web browser may be used to access the backup configurations for each IFD, or an Internet gateway component may be used to access the backup configurations for each IFD by translating the Internet-compatible communications into a protocol being used by the IFDs.
Storing the backup of the configuration for the first IFD may include storing the backup in at least two other IFDs.
Each IFD may include one or more sensors for sensing a process condition or a mechanism for controlling a process condition.
The communications connection may include a two-wire connection between the IFDs. The method may further include providing operating power to at least one IFD through the two-wire connection.
The peer-to-peer hosting method provides several advantages. The first such advantage is the storage of a configurator within an IFD as a Java applet. This feature obviates the need to employ either a hand-held configurator for each IFD or a central configurator (i.e., a portable computer that contains all of the IFD configurations). This prevents confusion that may arise when associating a hand-held configurator with the IFD for which the hand-held configurator is designed. Because Java is platform-independent, it avoids any incompatibility that might otherwise arise between a hand-held configurator and an IFD. The use of a Java applet as a configurator also removes the need for multiple configurator devices. This reduces the cost of both the IFD vendor and the IFD customer because, at most, only one configurator device is needed. This also eliminates work associated with loading the configurator software onto each portable computer used as a central configurator or each hand-held configurator each time that a new IFD configuration is created.
Another advantage results from the use of peer IFDs to provide backup configurations for each other, and the use of an automatic configuration reload program. This is particularly important in the case of device failure and replacement, because the storage of the backup configuration enables the proper configuration to be loaded into the replacement device quickly and automatically. Because there is no need to locate a removable memory pack, problems associated with memory packs, such as swapping or mislabeling, are eliminated. The automation provided by this feature also enables a faster and less expensive configuration recovery, because there is no need to perform the manual operation of reloading the configuration with a hand-held device.
The Web browser connection feature provides two advantages. The first advantage is the ability to initialize all of the IFDs from a common source, as opposed to initializing each IFD from a separate hand-held configurator. The second advantage is the ability to archive the configurations in a single, easily accessed repository, such as a Web page maintained by a corporate IFD user. This allows them to be harvested at once and preserved in a safe location.
Other features and advantages will be apparent from the following description, including the drawings, and from the claims.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of a system for configuring Intelligent Field Devices (IFDs) using configurators that are resident on the IFDs and a portable computer.
FIG. 2 is a block diagram of a system for configuring IFDs using resident Java applet configurators and a hand-held personal digital assistant.
FIG. 3 is a block diagram of a system for configuring IFDs using resident Java applet configurators and an Internet/Intranet gateway connection.
FIG. 4 is a block diagram of a system for configuring IFDs using a web server from either the Internet or an Intranet as a configurator.
FIG. 5 is a block diagram of a system for configuring IFDs using a network-based approach.
FIG. 6 is a block diagram of a system for configuring IFDs using a network-based approach in which the configurator is resident on the network server.
FIG. 7 is a block diagram of a system for configuring IFDs using a network-based approach in which an Internet/Intranet gateway provides a conversion to enable compatibility with non-internet industrial protocols.
FIG. 8 is a flowchart of a peer-to-peer hosting method for configuring IFDs.



DETAILED DESCRIPTION
Referring to FIGS. 1 and 2, a simple network 100 includes two IFDs, IFD1 105 and IFD2 110. It is noted that the system 100 can easily be adapted to include as many IFDs as desired. The network connections for the network 100 can be either direct electrical connections (i.e., wires) or wireless communications links.
The IFDs in the network use a vendor-selected protocol to format data for transmission to each other, as well as to other electronic devices in the network. Because of the industrial nature of the environments in which IFDs are typically used, some protocols are not designed for Internet access. Examples of such protocols commonly used in typical industrial environments include HART, FoxComm, PROFIBUS, and Foundation Fieldbus. However, in some cases, IFDs use Internet-compatible protocols such as TCP/IP and UCP/IP. In some implementations, one or more IFDs may support multiple protocols.
Typically, each IFD performs a sensing operation, a control operation, or both. IFDs that perform sensing operations, such as temperature sensors, pressure sensors, and flow meters, include one or more sensors for sensing process conditions. In addition to the sensors, these IFDs include transmitter circuitry for transmitting information about the process conditions to other devices.
IFDs that perform control operations, such as valve controllers, include one or more mechanisms for controlling process conditions. These IFDs often receive and use measurement signals provided by sensing IFDs. For example, a valve controller might control the position of a valve in response to a flow rate measurement provided by a flow meter. IFDs may include both sensors and mechanisms for controlling process conditions.
IFDs often are interconnected by two-wire connections. A two-wire connection may be used to provide a communications connection between the IFDs. Many IFDs also receive operating power from an associated two-wire connection.
A configurator program for IFD1 105 can be stored within IFD1 105 as a resident configurator software application 115 (e.g., a Java applet), and a resident configurator software application 120 for IFD2 110 can be stored within IFD2 110. These resident configurator applications can be accessed using a processor, such as, for example, a hand-held device 122 such as a personal digital assistant (e.g., a Palm III), or a portable computer 123, in communication with the IFD through, for example, a direct electrical connection or an infrared link. The configurator program of an IFD can be used to generate a configuration for the IFD. First, the processor downloads the configurator program from the IFD. The processor then runs the configurator program and generates a configuration file in response to inputs to the program from a user. Finally, the processor uploads the configuration file to the IFD, which stores the configuration in the memory of the IFD. Thus, a configuration 125 for IFD1 105 is stored in the memory of IFD1 105, and a configuration 130 for IFD2 110 is stored in the memory of IFD2 110.
In some implementations, each IFD can be programmed to store a backup version of its configuration on one or more peer devices. Thus, in the system of FIG. 2, a backup version 140 of the configuration for IFD1 105 is stored on IFD2 110, and a backup version 135 of the configuration for IFD2 110 is stored on IFD1 105. Typically, a backup configuration is generated each time an IFD's configuration is modified.
Each IFD also can be programmed to automatically check for the presence of a backup configuration at a peer IFD whenever it has lost power, either due to an outage or due to device failure and replacement. For example, upon power-up, an IFD might be programmed to broadcast a configuration request message identifying the IFD by network address and directed to all peer devices. An IFD having a backup configuration for the broadcasting IFD would respond by sending that backup configuration to the broadcasting IFD. The sending IFD also might include a backup copy of its own configuration for storage on the broadcasting IFD.
Referring to FIG. 3, a peer-to-peer hosting system 300 uses a network approach to interconnect three exemplary IFDs. Again, it is noted that the system 300 can easily be adapted to include as many IFDs as desired. IFD1 305, IFD2 310, and IFD3 315 are networked together and include associated Java applet configurators 323, 325, 330. A Java applet configurator can be used to configure each IFD, which then stores its own configuration in memory. Hence, IFD1 305 stores its own configuration 335 in memory, IFD2 310 stores its own configuration 340 in memory, and IFD3 315 stores its own configuration 345 in memory. Additionally, each of the three IFDs can store a backup version of another IFD's configuration. For example, IFD1 305 stores the backup configuration 350 for IFD2 310; IFD2 310 stores the backup configuration 355 for IFD3 315; and IFD3 315 stores the backup configuration 360 for IFD1 305. Each IFD can also store software to automatically reload the respective backup configuration when necessary. In another implementation, an IFD may store backup configurations for multiple IFDs, and the backup configuration for an IFD may be stored on multiple IFDs.
The system 300 may also include a gateway connection 320 to either the Internet or a stand-alone local area network such as an Intranet. The gateway connection 320 may include browser software 321 for browsing network web sites, such as web sites that may be found on the World Wide Web. The Internet/Intranet gateway 220 can be connected to any IFD on the network. In FIG. 3, the Internet/Intranet gateway 320 is connected to IFD1 305. In some implementations, the Internet/Intranet gateway 320 may provide access to the World Wide Web, thus allowing any web site that contains IFD configuration information to be visited. A web site may even be developed specifically for the purpose of storing and/or supplying IFD configurations. In this manner, a web server can act as a configurator. Referring also to FIG. 4, the use of a web site as a configurator allows this approach to be used in implementations in which the IFDs do not use resident configurator software.
The Internet/Intranet gateway 320 can be used to perform the initial generation of an IFD configuration, which may be required when a new IFD is introduced into the system, when an existing IFD requires an update to its configuration, or when a power outage or other event affects all of the IFDs so that they all require configuration reloading. In some implementations, the ability to access the Internet via Web browser software 321 provides system redundancy for configurators as well as backup versions of specific configurations.
Referring to FIG. 5, another implementation of a peer-to-peer hosting system 500 uses a network-based approach. The system 500 includes three exemplary IFDs: IFD1 505, IFD2 510, and IFD3 515. Again, the system 500 can easily be adapted to include as many IFDs as desired. The system 500 also includes a network server 520 with a permanent Internet/Intranet gateway connection 525, including browser software 527. This arrangement provides a robust network design, much like a typical local area network (LAN) or wide area network (WAN). In the system 500, the Internet/Intranet gateway connection 525 allows the configurations to be restored via the gateway 525 for any contingency, so that the configurations can be restored either via the gateway 525 or via the backup configurations 560, 565, 570 stored on corresponding peer devices. Additionally, the backup configurations may be stored on the network server 520, thus providing a third possible source for restoring configurations.
Referring to FIG. 6, in a variation of the implementation illustrated in FIG. 5, the system 500 may still use a network-based approach, but, because it uses an industrial protocol that supports peer-to-peer functionality but is not designed for use with the Internet, such as Foundation Fieldbus or PROFIBUS, there is no gateway connection 525. Despite this, the network-based approach still provides the ability to restore the IFD configurations either from the backup versions on corresponding peer devices via the network server 520, or directly from the network server 520 itself.
This implementation also functions in the absence of resident Java applet configurators by using a configurator 605 that is contained within the network server 520. Once again, system redundancy for both the configurator function and the backup of specific individual configurations is provided, in this instance via the network server 520 and its associated configurator 605.
Referring to FIG. 7, in another variation of the implementations illustrated in FIGS. 5 and 6, the system 500 may still use a network-based approach while using an industrial protocol that is not designed for use with the Internet, such as HART, FoxComm, Foundation Fieldbus, or PROFIBUS. Instead of direct access to the Web via browser software 527, the gateway connection 525 contains protocol translation software 705 that translates communications between an Internet-compatible protocol and the local industrial protocol. This variation thus provides the ability to use the Internet as either a configurator or to store backup configurations even when the local protocol does not support Internet communications.
Referring to FIGS. 6 and 7, another variation allows the network-based approach to be used even if the local industrial protocol (e.g., HART or FoxComm) does not support peer-to-peer functionality. Thus, in this variation, backup configurations are not stored on peer IFDs. However, configurations can still be provided or restored either by using configurator software 605 that is resident on the network server 520, as shown in FIG. 6, or by using configurator software stored on a web server and accessed via the gateway connection 525, the protocol translation software 705, and the browser software 527, as shown in FIG. 7.
Referring to FIG. 8, an IFD in a system using the peer-to-peer hosting method may operate according to a procedure 800. Initially, the IFD checks whether it is configured (step 805). If the IFD is configured, the IFD proceeds with normal operations (step 810). The IFD continues with normal operations until a failure, activation of the configurator, or some other event causes the IFD to cease normal operations.
If the IFD is not configured, the IFD will request a copy of its configuration from one or more peer devices (step 815). The request may be directed, for example, to a particular peer IFD, the identity of which is pre-loaded in the IFD. The request also may be a broadcast request directed to all peer IFDs.
In general, an IFD will receive a configuration from a peer IFD when the IFD has previously lost its configuration due to device failure or replacement, or due to a localized loss of power. When an IFD is connected to the network for the first time, there will not be a backup configuration available for that IFD. However, in some implementations, the IFD may still receive a configuration from a peer IFD. For example, a system may employ a standard configuration for a certain class of IFDs (e.g., pressure sensors), and the IFD may receive a configuration for the class to which it belongs.
If the IFD does not immediately receive a copy of its configuration (step 820), the IFD checks to see whether its configurator has been activated (step 825). The configurator may be activated, for example, by a Web browser connected to the IFD or the network including the IFD, by a hand-held device or computer connected to the IFD, or by manipulation of a button or switch mounted on the IFD.
If the configurator has been activated, the IFD generates a configuration using the configurator (step 830). After the configuration is generated, the IFD stores the configuration (step 835) and transmits a backup copy of the configuration to one or more other IFDs (step 840). The IFD then confirms that the configuration is complete (step 805) and begins normal operations (step 810).
If the configurator has not been activated (step 825), the IFD cycles through a loop that checks for receipt of a configuration (step 820) or activation of the configurator (step 825). The IFD continues to do this until one of these events occurs.
If a configuration is received from a peer IFD (step 820), the IFD stores the configuration (step 835). Storage of the configuration may include storage of a backup configuration for the peer IFD transmitted by the peer IFD along with the requested configuration. After storing the configuration, the IFD may optionally transmit a backup copy of its configuration for storage at one or more peer IFDs (step 840). The IFD then confirms that the configuration is complete (step 805) and begins normal operations (step 810).
Upon completion of normal operations, the IFD checks to see if the configurator has been activated (step 845). If so, the IFD generates a revised configuration using the configurator (step 830) and proceeds as discussed above. If not, the IFD verifies that it is still configured (step 805) and proceeds accordingly.
Other embodiments are within the scope of the following claims.

## Claims

1. A method of installing a device configuration on an intelligent field device (IFD), the method comprising:
accessing, with a processor external to the IFD, a configurator program stored on the IFD, wherein the IFD is a hardware device that includes a mechanism for sensing or controlling a process condition in an industrial process;
running the configurator program on the external processor to generate the device configuration for the IFD;
transmitting the device configuration to the IFD;
storing the device configuration in memory in the IFD;
transferring the device configuration from the IFD to a second IFD; and
storing the device configuration in the second IFD.

2. The method of claim 1, wherein the configurator program comprises a Java applet.

3. The method of claim 1, wherein the external processor comprises an external computer.

4. The method of claim 1, wherein the external processor comprises a hand-held device.

5. The method of claim 1 further comprising:
sending a request for the device configuration from the IFD to the second IFD using a communications connection between the IFD and the second IFD;
receiving, at the second IFD, the request for the device configuration sent from the IFD; and
in response to the request for the device configuration received from the IFD, sending, from the second IFD, the device configuration to the first IFD using the communications connection.

6. The method of claim 1 wherein the device configuration includes instructions regarding the initial settings of the IFD and the manner in which the IFD should respond to particular events.

7. The method of claim 1, wherein the IFD performs a sensing operation or a controlling operation.

8. The method of claim 1, wherein the IFD senses and controls the process condition.

9. The method of claim 8, wherein the mechanism comprises a valve controller configured to control a position of a valve in response to a measurement associated with fluid flow through the valve.

10. The method of claim 1, wherein the mechanism comprises a valve controller.

11. The method of claim 1, wherein the mechanism comprises a sensor configured to measure one or more properties of a fluid.

12. A method of installing a device configuration on an IFD, the method comprising:
accessing a configurator program using browser software, wherein the configurator program is stored on a distributed network site;
running the configurator program to generate the device configuration for the IFD;
storing the device configuration in memory in the IFD, wherein the IFD is a hardware device that includes a mechanism for sensing or controlling a process condition in an industrial process;
transferring the device configuration from the IFD to a second IFD; and
storing the device configuration in the second IFD.

13. The method of claim 12, wherein the distributed network site comprises a World Wide Web site.

14. The method of claim 12, further comprising translating communications between a first protocol used by the distributed network site and a second protocol used by the IFD.

15. An intelligent field device (IFD), wherein the IFD is a hardware device for use in controlling an industrial process, the IFD comprising:
a mechanism for sensing or controlling an industrial process;
at least one processing device; and
a memory storing a configurator program and instructions, wherein the instructions, when executed by the processing device, cause the IFD to perform the following operations:
in response to being accessed by a processor external to the IFD, transmit the configurator program to the external processor;
receive a device configuration for the IFD from the external processor, wherein the device configuration is generated by running the configurator program on the external processor;
storing the device configuration in the memory;
transfer the device configuration from the IFD to a second IFD; and
store the device configuration in the second IFD.

16. The intelligent field device of claim 15 wherein the instructions further cause the processing device to:
send a request for the device configuration from the IFD to the second IFD using a communications connection between the IFD and the second IFD; and
receive, from the second IFD, the device configuration.

17. The intelligent field device of claim 15 wherein the device configuration includes instructions regarding the initial settings of the IFD and the manner in which the IFD should respond to particular events.

18. The intelligent field device of claim 15, wherein the IFD performs a sensing operation or a controlling operation.

19. The IFD of claim 15 further comprising a two-wire connection that provides power and communications to the IFD.