# Patent

## Title
Remote virtual placeholder configuration for distributed input/output modules

## Abstract

A modular distributed I/O system for an industrial automation network that allows one or more modules of an island to be omitted without requiring reconfiguration of the system by maintaining a consistent I/O image representation of the distributed I/O network for various physical distributed I/O configurations and managing reconfiguration changes remotely using Virtual Placeholder objects.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of U.S. Provisional Application Nos. 60/809,855 and 60/809,856, both filed May 30, 2006. This application is also related to U.S. Patent Application Publication No. U.S. 2006/0268854 A1, published Nov. 30, 2006. All three of these prior applications are hereby incorporated by reference in their entirety.


FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT
None.
TECHNICAL FIELD
The present invention generally relates to configuring modular distributed I/O systems in industrial automation networks. More specifically, the present invention relates to a distributed I/O system that allows the user to maintain a consistent I/O image representation on a distributed I/O network for various physical distributed I/O configurations having one or more I/O modules physically removed from the system.
BACKGROUND OF THE INVENTION
A programmable logic controller (PLC) is used to monitor input signals from a variety of input points (i.e., input sensors) that report events and conditions occurring within a controlled process. For example, a PLC can monitor such input conditions as motor speed, temperature, pressure, volumetric flow and the like. The PLC has a control program stored within its memory to instruct the PLC on what actions to take upon encountering particular input signals or conditions. In response to these input signals provided by the input sensors, the PLC derives and generates output signals that are transmitted to control the process via PLC output points to various output devices such as actuators and relays. For example, an output signal can be provided by the PLC to speed up or slow down a conveyer, rotate the arm of a robot, open or close a relay, raise or lower temperature, as well as many other possible control functions.
The input and output points referred to above are typically associated with input modules and output modules, respectively. Input and output modules are collectively referred to as I/O modules herein. Those skilled in the art alternatively refer to such I/O modules as I/O cards or I/O boards. I/O modules are typically adapted to be plugged into respective slots located on a backplane board or other attachment system provided by the PLC. The slots are coupled together by a main bus that couples any I/O module plugged into the slots to a central processing unit (CPU). The CPU itself can be located on a card that is adapted to be plugged into a dedicated slot on the backplane board of the PLC.
In many control systems, PLCs are arranged in a master/slave network that includes a master PLC and a plurality of remote slave units that can include other PLCs or devices. In this type of a network, the master PLC controls its own I/O connection points and also the respective I/O connection points for the remote slave unit(s). The control commands from the master PLC are derived from data obtained from the remote slave units, which is obtained from the I/O module(s) connected to each remote slave unit.
To meet the needs of machine manufacturers and users, automation architectures have been decentralized or distributed while delivering performance comparable to centralized systems. For instance, the ADVANTYS STB distributed I/O system is an open, modular input/output system that makes it possible to design islands of automation managed by a master controller via a bus or communication network. The ADVANTYS STB distributed I/O system is a product of Schneider Automation Inc., One High Street, North Andover, Mass.
These automation islands, typically installed close to the machine, help reduce the time and cable cost for sensors and actuators, while increasing system availability. The island components are electronic modules mounted on one or more DIN rails (i.e., standardized rails). These clusters of modules, known as segments, carry a bus from the beginning to the end of each island. The island bus provides power distribution, signal sensing, and power management to compatible modules.
An island can include one or more segments comprising a network interface module (NIM), a power distribution module (PDM), and additional modules for various architectures such as I/O modules, bus extension modules, island bus termination, and island bus extensions.
The island is typically configured using a user interface. The NIM is responsible for assigning addresses to the I/O modules and for maintaining a process image of the I/O modules. Both the NIM and the I/O modules participate in I/O modules automatically obtaining their addresses based on their relative physical locations—using an auto-addressing protocol. The NIM is responsible for maintaining a process image of the I/O modules, which is based on the addresses of the I/O modules. Such an addressing scheme could not handle the situation where a user wanted to physically remove I/O modules that correspond to unwanted options without changing the program to add/delete the options.
Each island is comprised of several I/O modules, divided into several groups. Each group of I/O modules represents one option available in a customer's machine. When all options are included in a particular machine, then all groups of I/O modules must be physically present; this forms the “base” configuration. Different machines may contain different options, hence different groups of I/O modules.
When a machine is built, a technician uses a human-machine interface (HMI) connected to the PLC that controls the automation system and other parts of the machine to select which options are physically present in the machine. To ease PLC programming, the process image of the island must remain identical, regardless of the machine options that are chosen by the customer (and subsequently the I/O modules that are physically present).
In prior versions of automation systems, the Customer must build and maintain different island configuration files for machines with different options; this can be quite burdensome in cases where there are many combinations of machine options available. It is desired that for each base configuration, only one island configuration be necessary.
The present invention provides an I/O configuration solution to overcome these and other problems.
SUMMARY OF THE INVENTION
The present invention is directed to an improved distributed I/O system that allows the user to create one fully defined process image that contains all the I/O modules needed for all the desired configurations of the physical distributed I/O island using Remote Virtual Placeholder objects. This allows one or more I/O modules to be removed without requiring reconfiguration or reprogramming of the system. By maintaining the identical process image of the island, a user does not need to reconfigure or change the PLC program, even if the user removes certain modules from the base set.
One embodiment of the present invention is directed to an automation system comprising: a network interface module; a plurality of I/O modules comprising an I/O island; and a translation table configured using Remote Virtual Placeholders such that an I/O module in a physical slot X having node ID X is presented outside the I/O island as if that I/O module were located in slot Y.
Another embodiment of the present invention is directed to a system for configuring a process image in an automation network having one or more optionally uninstalled I/O modules, the system comprising: an island having a network interface module, the island further including a plurality of connections for I/O modules; and configuration software run by the network interface module that provides a consistent process image for each one of the plurality I/O modules whether or not physically present.
Still another embodiment of the present invention is directed to a method of configuring a process image of an island to indicate optionally uninstalled I/O modules, comprising the steps of: providing an island having a network interface module and a plurality of ports, each of the plurality of ports capable of connection to an I/O module; connecting I/O modules to select ports of the plurality of ports; and creating a process image of the island that indicates whether an I/O module is physically present and not present using Virtual Placeholders.
The present invention is particularly useful for a user who builds many systems and/or machines with I/O configurations that differ (from a remote I/O point of view) only in the number and types of I/O modules physically present. In the past, each of the configurations of I/O modules would result in a change to the I/O image representation on the remote I/O network, necessitating a change to the master controller program to accommodate the configuration change. The present invention facilitates keeping the I/O image representation the same for the various configurations.
The configuration software of the present invention is adapted to describe the master (maximum) remote I/O configuration. The software is then used to identify those I/O modules that will not be present in the actual physical configuration to create a reduced configuration. The physical remote I/O configuration is built without the “Not Present” module(s). The reduced or de-populated configuration is applied to the physical configuration, which maintains the same I/O image representation on the remote I/O network as the master configuration.



BRIEF DESCRIPTION OF THE DRAWINGS
Other features and advantages of the present invention will be apparent from the following specification taken in conjunction with the following drawings.
FIG. 1 (PRIOR ART) is a simplified block diagram of a typical automation control system or network having a distributed I/O system or island;
FIG. 2 is an elevation view of a distributed I/O system or island in accordance with the present invention;
FIG. 3 is a main display screen of the configuration software for configuring the distributed I/O system or island shown in FIG. 2;
FIG. 4 is a general display screen for configuration of an I/O module within the distributed I/O system or island of FIG. 2;
FIG. 5 is an options display screen for configuration of the I/O module, showing the module “Not Present” option;
FIG. 6 is a partial display of the main screen similar that of FIG. 3, showing those modules configured to be not physically present being indicated as so;
FIG. 7 is a flowchart showing the steps a user would take to configure an island using the Virtual Placeholder feature of the invention;
FIGS. 8A-8D are routing diagrams showing the various data mapping and status mapping configurations used in a simple example of the invention;
FIG. 9 is a parameters display screen for configuration of the I/O module using the remote Virtual Placeholder feature of the present invention;
FIG. 10 is a partial display of the main display screen similar that of FIG. 6, showing those modules remotely configured to be not physically present being indicated as so;
FIG. 11 is a flowchart diagram showing the island startup behavior using the Remote Virtual Placeholder Configuration feature of the present invention; and
FIG. 12 is a flowchart diagram of the interaction between the master PLC and a NIM that has been configured to allow remote configuration of Virtual Placeholders.



DETAILED DESCRIPTION
While this invention is susceptible of embodiments in many different forms, there is shown in the drawings and will be described in detail herein a preferred embodiment of the present invention with the understanding that the present disclosure is to be considered as an exemplification of the principles of the invention and is not intended to limit the broad aspect of the present invention to the embodiment illustrated.
FIG. 1 depicts a typical automation control network or system 110 having a distributed I/O system (i.e., island). The automation system 110 includes a local area network 112, a host computer 114, at least one master or main programmable logic controller (PLC) 116, a distributed I/O system or island 118, a human-machine interface (HMI) terminal 120, other network nodes 122, and other slave PLCs 124. The distributed I/O system 118 includes a network interface module (NIM) 126, a power distribution module (PDM) 128, and I/O modules 130. As will be described below in detail, configuration software provides display screens on the host computer monitor 132.
The local area network (LAN) 112 can be Ethernet based (e.g., IEEE 802.3) or can use other protocols such as, but not limited to, CANopen, Profibus, FIPIO or the like. Furthermore, the network 112 can be wired or wireless (e.g., IEEE 802.11 or the like).
The master or main PLC 116, like the host computer, is operatively connected to the local area network 112. As will be appreciated by those having skill in the art, both the host computer 114 and the main PLC 116 can be conventional products that are currently available in the marketplace.
The host computer 114 is operatively connected to the master or main programmable logic controller 116 via the LAN 112. In operation, the host computer 114 provides the master or main programmable logic controller 116 with data or programming that represents a desired operation or function to be performed by the control network 110. The data can be based, at least in part, on modules (i.e., options), while building the process image as if all modules are present.
Turning now to FIG. 2, an elevation view of a distributed I/O system or island 218 in accordance with the present invention is depicted. The distributed I/O system or island can be used within the control network depicted in FIG. 1. As indicated previously, the control network 110 includes, but is not limited to, a local area network 112 having a host computer 114 and at least one master or main programmable logic controller (PLC) 116 connected thereto. Additionally, the distributed I/O system 218 is connected to the local area control network 112. The island 218 has a network interface module (NIM) 226, a power distribution module (PDM) 228, and a plurality of I/O modules 230.
As will be described in detail below, the island 218 of FIG. 2 is configured using a user interface (i.e., the host computer 114) having a software interface installed thereon. The host computer 114 supplies the island 218 with configuration data or programming. In particular, a configuration program is loaded onto the host computer 114 where, by executing the program, a user can configure the island 218.
The I/O devices or modules 230 that can be attached to the island 218 include, for example, input sensors and/or output actuators. The input sensors can be for a variety of variables including, but not limited to, temperature, flow, pressure, speed, and the like.
FIG. 3 is a main display screen 300 of the configuration software for configuring the distributed I/O system or island shown in FIG. 2. As shown in FIG. 3, the configuration software provides a main display screen on the host computer monitor 132. The main screen 300 includes several windows and components.
A Workspace Browser 310 displays the contents of the currently open workspace in a hierarchical or tree-structured fashion. The browser displays all the islands currently residing in the selected workspace.
An Island Editor 320 provides a graphical representation of the logical islands being configured with the software. Each opened logical island has its own Island Editor window pane 325.
A Catalog Browser 330 is a list of all the modules available to the user when assembling an Island. The catalog is displayed as a tree structure in which various modules are grouped according to type.
A Log Window 340 displays the results of any operation performed by the configuration software. In Online mode, it displays additionally health information of the physical island including upstream fieldbus error messages.
A Status Bar 350 and Status Indicators 360 at the bottom of the screen provides status messages, offline/online status, physical island status, etc. Two Status LEDs 370 at the top-right side of the screen are active when the software is in online mode. The green LED represents the RUN LED on a NIM, while the red LED represents the ERROR LED. Several blink codes are also used to indicate various island states of operation.
FIG. 4 is a general display screen for configuring an individual I/O module. The Module Editor screen provides information about a selected module, allows the user to modify some operating parameters, and permits the user to view live I/O data when the software is in online mode. The Module Editor is invoked by selecting the appropriate module from the Island Editor or from the Workspace Browser.
The General tab 400 of the Module Editor displays descriptive information about the selected module. All information on this tab is read-only. The name of the module and its exact location on the island bus are displayed in the title bar at the top of the screen. The general information provided includes the module name, vendor code, vendor name, version, and a brief functional description of the module.
FIG. 5 shows the Options tab 500 for configuration of the I/O module. This window provides the user the ability to configure the module as a “Mandatory Module” 512 or as “Not Present” 514. If the user designates the selected I/O module as Mandatory by selecting checkbox 512, and the Mandatory Module fails or is removed from the island, the entire island bus switches to pre-operational mode and the island bus stops.
If the user designates the selected I/O module as “Not Present” by selecting checkbox 514, the module is marked using the Virtual Placeholder feature of the present invention. A Virtual Placeholder allows the user to remove certain physical island I/O modules from a base configuration, while keeping the identical process image. This allows one to define an island with various options removed without changing the PLC program which controls the island. In the case of having removed some I/O modules, the remaining ones may have to be physically plugged next to each other, as spare slots are sometimes not allowed.
According to a preferred embodiment of the present invention, the island 218 maintains the same process image after a module is configured to be “Not Present” and physically removed from a base set of modules for the island. Accordingly, by maintaining the process image, a user is able to operate the same configuration and program without being required to change the configuration or program in the PLC 116. Hence, the user chooses the modules that the user does not wish to physically install, but will still take up space in the process image to maintain the same process image as the original full system.
If no module is selected to be “Not Present,” then the existing auto-addressing protocol is used. However, if a user selects one or more I/O modules not to be present, then the use of an amended auto-addressing protocol may be required. An auto-addressing protocol is provided in a network interface module and an I/O module for skipping node ID's of uninstalled modules not to be used in the process. Each time that the island is powered up or reset, the NIM automatically assigns a unique island bus address to each module on the island that will engage in data exchange. Refer to U.S. Patent Application Publication No. U.S. 2006/0268854 A1 for a detailed description of the preferred auto-addressing protocol.
FIG. 6 is a partial display 600 of the main display screen similar that of FIG. 3, showing those modules configured to be Virtual Placeholders (and not physically present) being designated with indicia 612 showing their absence. In the preferred embodiment, the Module Editor marks all the Virtual Placeholder modules with crossed red lines over the view of the particular module to indicate that the module is not physically installed.
Thus, instead of the full configuration, a user may build a physical system that only includes the following modules shown in FIG. 6: the Network Interface Module 626, such as the ADVANTYS STB NCO 2212; the Power Distribution Module 628, such as the ADVANTYS STB PDT 3100; a Digital Output Module 632, such as the ADVANTYS STB DDO 3200; and an Analog Output Module 640, such as the ADVANTYS AVO 1255. Accordingly, only two ADVANTYS I/O modules are physically installed. Modules 630, 634, 636, and 638 are shown in FIG. 6 as Virtual Placeholders.
It is important to distinguish between a “physical island” and a “logical island”. A “physical island” is an assembly of distributed I/O, power distribution, and island bus communication/extension modules that function together as one node on a fieldbus. An island contains up to 32 I/O modules plus a NIM, one or more power distribution modules, and optionally some modules that let you extend the bus to multiple segments (or rails) of other I/O and to standard CANopen devices. Using the present invention, the configuration software lets the user model a physical island so that it can be tested against design rules and customized to meet application requirements. This software model is called the “logical island”. As the user develops a logical island, the software will provide warnings about any mistakes made in the model, and it will usually prevent the user from creating an invalid configuration. For example, it prevents you from placing a DC module in a location where it would receive AC field power (and vice versa). The logical island is a file in the software program with a “.isl” extension. It contains a description of the physical island, including all the modules on the island and all the operating parameters associated with each module that may be defined in software. Hence, the logical view of the island which reflects the I/O map for the user program remains unchanged, while the physical view which reflects the physically present STB modules may change. In case of having removed some modules, the remaining ones may have to be physically plugged in next to each other, as some system buses may not allow spare slots.
FIG. 7 is a flowchart 700 showing the general steps that occur when a user configures an island using the Virtual Placeholder feature of the invention.
Starting with Step 710, the user would use the configuration software to build a new island. In this simplified example, only three modules are used for the sake of clarity. Initially, the first module has an address 1, the second module has an address 2, and the third module has an address 3.
In Step 720, the user chooses which modules that he does not wish to physically install, but still take up space in the process image (to maintain the same process image as the original full system). As shown above in FIG. 5, the selection process is done using the Virtual Placeholder “Not Present” checkbox 514 in the Options tab 500 of the I/O module configuration software. The modules selected to not be physically present are displayed with indicia 612 indicating their absence, as shown by the crossed red lines in FIG. 6. The user would then physically remove the Not Present module(s). In this simplified example, only the 2nd module would be a Virtual Placeholder and removed from the physical setup.
In Step 730, the logical addresses of the modules are now automatically determined by the configuration software. The first physical module retains its logical address 1, but the second physical module, which used to be third module, is now reassigned to logical address 2.
This logical address information is internally stored by the configuration software in Step 740 in object XXYYh as follows: logical node address of physical node 1=1; logical node address of physical node 2=3; logical node address of physical node 3=null. In the preferred embodiment, a new object index is used as an address translation table to show the correlation between the logical node address of and the physical node address when the Virtual Placeholder feature is enabled. The new object XXYYh and any extended objects become part of the configuration data, which are saved in flash memory.
In Step 750, the translation table generated by the configuration software is downloaded to the network interface module as part of the configuration data. Depending upon the configuration tool used, the translation table must be downloaded first, and then the other object dictionary entries should to be downloaded.
Step 760 illustrates that the data packet from each node is “rerouted” to the location corresponding to the logical address for that module. In the preferred embodiment, this is done by changing the “COB-ID” (CAN Object Identifier) of the data packet of those modules whose logical address no longer matches the physical address. This “Data Mapping” Step 760 will be described below in FIGS. 8A and 8B.
A similar procedure is used for the error registers in Step 770. Again, the logical address of each physical module (using object XXYYh) is used to signify which node is in error. This “Error Status” Step 770 will be described below in FIGS. 8C and 8D.
After the NIM has powered up and the new configuration has been downloaded, the island state is displayed in the configuration software and can be sent to the fieldbus master, wherein only those I/O modules that are selected to be physically present are taken into account. In this example, if both the first and third I/O modules are present and function normally, the island state will not present an error message indicating that unexpected or missing modules are in the island configuration. Under prior auto-addressing protocols, the node ID's would have had to been node ID 1 and node ID 2. Selecting the Virtual Placeholder option causes the module to be taken out of the auto-addressing, identification check, configuration, and diagnostics procedures of the NIM. The module configuration data is still part of the island configuration. The I/O image of the island remains unchanged, i.e., it still contains the I/O data of the module.
FIGS. 8A-8D are routing diagrams showing the various data mapping and status mapping configurations used in the three-module example of FIG. 7.
In FIG. 8A, the normal data memory mapping is shown when the Virtual Placeholder is not used, i.e., all I/O modules are physically present. As shown in the Figure, there would simply be a direct one-to-one correspondence between the physical node IDs and the logical node IDs stored in the NIM.
FIG. 8B shows the Virtual Placeholder data memory mapping when the second module is removed and marked “Not Present”. Since the second module was removed (and the third module shifted left into its place at physical node 2), then physical node 1 is mapped to logical node address 1, physical node 2 is mapped to logical node address 3, and physical node 3 has a “null” logical node address. This data mapping is accomplished in the translation table stored in object XXYYh.
A correspondence similar to FIG. 8A is shown in FIG. 8C for normal status memory mapping when the Virtual Placeholder is not used, i.e., when all I/O modules are physically present. As before, there would simply be a direct one-to-one relationship for the error messages sent from the physical node IDs to the status memory locations for the logical node IDs stored in the NIM.
However, FIG. 8D illustrates that when the second module is removed and marked “Not Present”, the translation table stored in object XXYYh routes the error messages from physical node 1 to logical node address 1, and from physical node 2 to logical node address 3. Since the second module was removed (and the third module shifted left into its place at physical node 2), then the third module has a “null” logical node address.
Hence, it can now be understood that the island configuration software includes a translation table that informs the system which physically present node corresponds to which logical node, and translates the physical view to the logical view every time it gets a physical reference. This translation table is generated by the configuration software and is downloaded and stored in the NIM as part of the configuration data. Other configuration data to be downloaded to the NIM remains unchanged
Those skilled in the art will appreciate that the NIM firmware needs to be modified in a way that it will be able to handle the physical and logical view as described above. The NIM interfaces (command interface, diagnostic interface, process image) will always present the logical view. Therefore, the upstream fieldbus will also represent the logical view without (or with minor) changes in the existing fieldbus handler.
The Virtual Placeholder feature may be limited to certain I/O modules capable of being part of the auto-addressing. The other (non-auto-addressed) modules may not be allowed to be “Not Present”.
In summary, the Virtual Placeholder feature lets the create a standard island configuration and de-populated variations of that configuration that share the same fieldbus process image, thereby maintaining a consistent PLC or fieldbus master program for various island configurations. In other words, using the Virtual Placeholder feature of the present invention, an I/O module in a physical slot X (node ID X) is presented to the outside world as if it were located in slot Y, similar to using an alias.
This Virtual Placeholder capability allows a user to create a master (maximum) configuration of I/O modules that can be de-populated to form subsets (both in number of I/O modules and features), yet retain the same I/O image representation on the remote I/O network. One such application is that of a machine builder who builds machines with several options that can be specified by the end-user. By properly portioning his system into various options, he can create machines with particular features that exist if particular options (of I/O modules) are present, or without those particular features if the options are not physically present, without changing the master controller program with regards to addressing the I/O image. The de-populated islands are physically built using only those modules that are not marked as being not present, thus saving cost and space.
A limitation of the standard Virtual Placeholder capability is the need to configure and maintain a separate configuration (or view of the process image) for every variation in the island's physical layout. The user needs to download a different view with the configuration software each time he wants to change a Virtual Placeholder configuration on the island bus. Hence, different island configurations must be built and stored for each unique combination of options, and must be downloaded to the corresponding NIM (or use a SIM card) in the machine.
Another embodiment of the present invention includes an improvement to the Virtual Placeholder feature described above. The improvement is called the “Remote Virtual Placeholder”, which refers to the remote management of the Virtual Placeholder configurations. With the Remote Virtual Placeholder feature, the user only creates one fully defined process image that contains all the I/O modules needed for all the desired views of the physical island. The fieldbus master PLC then manages the reconfiguration changes remotely. The fieldbus PLC does this by writing a valid reconfiguration to a special Remote Virtual Placeholder object in the island's CANopen object dictionary. This embodiment of the invention keeps the I/O image representation the same and only requires a single master configuration to accomplish the task. The master configuration is modified at run-time to match the physical configuration.
In other words, the Remote Virtual Placeholder improvement utilizes a common island configuration file in all islands with different options, but with the same base configuration. Thus, each NIM will be downloaded, via serial port or SIM card, an island configuration that contains all modules in the base configuration, regardless of the actual I/O modules that are physically installed (corresponding to different machine options). A technician will then be able to use an HMI connected to the PLC to inform the NIM which options/modules are actually present. In addition, the Virtual Placeholder setting that has been remotely configured is stored in non-volatile memory of the NIM, so that the next time the NIM is powered up, the PLC does not need to remotely reconfigure the Virtual Placeholder setting. A primary advantage of this remote configuration of the Virtual Placeholder is to reduce the boot-up time of the system.
FIG. 9 is the Parameters tab 900 display screen for configuration of the I/O module using the Remote Virtual Placeholder feature of the present invention.
To enable the Remote Virtual Placeholder feature, the user would double-click the NIM representation in the Module Editor main display screen 300 (FIG. 3) of the configuration software to obtain the NIM module editor, click on the Parameters tab 900 (FIG. 9); expand the parameter Fieldbus Handler Control Word 910; and set the bit “Remote Configuration of Virtual Placeholders” to “1-Enabled”. This enables the dynamic configuration and disables the static configuration of Virtual Placeholders.
Note that in the online mode, the bit is read-only. Thus, the actual setting can be checked but not changed by the software. Also note that if remote configuration of Virtual Placeholders has been enabled, it is not possible to configure static Virtual Placeholders in the I/O Module Editor dialog box, as the “Not Present” checkbox is disabled. Any Virtual Placeholder settings defined before are reset when activating the remote configuration of Virtual Placeholders.
FIG. 10 is a partial display 1000 of the main display screen similar that of FIG. 6, showing those modules remotely configured to be not physically present being indicated as such.
In the online mode, the actual Virtual Placeholder configuration is shown as it has been dynamically defined by the upstream fieldbus master using indicia 1010. To distinguish this dynamic configuration from a static configuration where the Virtual Placeholders have been defined by the configuration software, the Not Present modules are marked with crossed blue lines instead of red ones. In the particular example of an Advantys STB configuration shown in FIG. 6 includes the following modules: the Network Interface Module 1026, such as the ADVANTYS STB NCO 2212; the Power Distribution Module 1028, such as the ADVANTYS STB PDT 3100; a Digital Input Module 1030, such as the ADVANTYS STB DDI 3610; a Digital Output Module 1032, such as the ADVANTYS STB DDO 3600, dynamically configured as a Remote Virtual Placeholder; a Digital Input Module 1034 dynamically configured as a Remote Virtual Placeholder; a Digital Output Module 1036; an Analog Output Module 1038, such as the ADVANTYS AVO 1250, dynamically configured as a Remote Virtual Placeholder; and an Analog Input Module 1040, such as the ADVANTYS AVI 1270. Accordingly, only three ADVANTYS I/O modules, 1030, 1036, and 1040 are physically installed. Modules 1032, 1034, and 1038 are not physically present, and are shown in FIG. 10 as Remote Virtual Placeholders configured by the fieldbus master.
FIG. 11 is a flowchart diagram 1100 showing an abridged version of the island startup behavior using the Remote Virtual Placeholder Configuration feature of the present invention. In this Figure, COMS stands for CANopen Master Scanner, which refers to the particular island bus scanner operation for the CANopen fieldbus.
As described in FIG. 9, the Fieldbus Handler (FBH) Control Word includes a bit for enabling the “Remote Configuration of Virtual Placeholders”, where 0=Remote configuration of Virtual Placeholder not allowed, and where 1=Remote configuration of Virtual Placeholder is allowed. Depending on the value of this bit, the NIM's startup behavior will be modified as shown in FIG. 11. The several new objects that are referenced in this Figure will be described below.
In FIG. 11, the left side of the flowchart shows the Remote Virtual Placeholder operation, while the right side shows normal startup when the Remote Virtual Placeholder feature is disabled. The descriptions in the Figure itself is sufficient to explain the operation to those skilled in the art.
FIG. 12 is a flowchart diagram 1200 of interaction between the master PLC and a NIM that has been configured to allow remote configuration of Virtual Placeholders. Several changes are required in the NIM to allow a PLC program (via its CANopen master) to remotely configure the Virtual Placeholder setting. It is assumed that a base configuration that enables remote configuration of Virtual Placeholder setting has already been downloaded and saved in NIM's flash memory.
There must be four new objects created in the fieldbus object dictionary (OD) of the CANopen NIM. Those familiar with the CANopen device model know that the object dictionary provides a map to the internal structure of CANopen devices (according to CANopen profile DS-401). A device's object dictionary is a lookup table that describes the data types, communications objects, and application objects the device uses. These four new objects are:

    
    
        (1) Virtual Placeholder Configuration Write (VPCW): In this write-only object, the user writes a “0” or a “1” in each bit to indicate whether the corresponding logical node is to be physically present or not.
        (2) Virtual Placeholder Configuration Read (VPCR): In this read-only object, each bit indicates whether the corresponding logical node is configured to be physically present in the island. Note that this value must be derived from COMS, i.e., COMS object XXYYZh.
        (3) Island Operation Control (IOC): This write-only object is used to stop island operation (if the island is in a running state) so that PLC can remotely configure the Virtual Placeholder setting. It is used to command the NIM to save the value in Virtual Placeholder Write object and reconfigure COMS using the (new) value in the object, and also to start the island.
        (4) Island Operation Status (IOS): This read-only object is used to indicate the status of island as related to the operating state of COMS and remote configuration of the Virtual Placeholder setting.
    
    


For a more detailed explanation of each of these objects, including their hexadecimal coding for each of the words, please refer to U.S. Provisional Application Nos. 60/809,855 and 60/809,856, Attachment 10 entitled: “Product Specification for Remote Virtual Placeholder”, file Remote Virtual Placeholder Product Spec02.doc, 21 pages.
For the purposes of understanding the operation of the Remote Virtual Placeholder feature, FIG. 12 illustrates the procedure a PLC program is expected to follow in order to remotely configure a Virtual Placeholder. In this Figure, SDO refers to a Service Data Object. In CAN-based networks, SDO messages are used by the fieldbus master to access (read/write) the object directories of network nodes. Using the descriptions in the Figure itself, one skilled in the art can now understand the operation of the Remote Virtual Placeholder.
For an example how to set up an Advantys STB island so that it can run in various I/O configurations using the Remote Virtual Placeholder feature of the present invention, please refer to U.S. Provisional Application Nos. 60/809,855 and 60/809,856, Attachment 4 entitled: “Advantys STB Standard CANopen Network Interface Module Applications Guide”, 890 USE 176 00, unpublished draft dated April 2006, document number 31003684.03, 206 pages.
Hence, it can now be appreciated that with the standard Virtual Placeholder feature, the user must build an island configuration for each version of the different options at configuration time. However, using the Remote Virtual Placeholder feature, it is possible to build a single base configuration and download it to the NIM. This base configuration can then be dynamically re-configured by the upstream fieldbus master PLC to change the island options. Note that the Remote Virtual Placeholder feature is only available for modules that support auto-addressing.
While the invention is amenable to various modifications and alternative forms, specifics thereof have been shown by way of example in the drawings and have been described in detail. It should be understood, however, that the intention is not to limit the invention to the particular embodiments described. To the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the appended claims.

## Claims

1. A system for configuring a process image in an automation network having one or more optionally uninstalled modules comprising:
an island having a network interface module, the island further including a plurality of connections for I/O modules; and
configuration software run by the network interface module that provides for each one of the plurality I/O modules whether or not physically present; and
means for modifying the I/O module configuration remotely using remote virtual placeholder objects,
wherein said configuration software is configured to create a logical island model of said plurality of I/O modules comprising the I/O island, and generate a translation table that provides a correlation between the node addresses of the physical island and the node addresses of the logical island model, wherein said translation table is configured using virtual placeholder objects such that an I/O module in a physical slot X having node ID X appears in the logical island model as if that I/O module were located in slot Y, such that said configuration software maintains a consistent process image for various physical distributed I/O configurations having one or more I/O modules physically removed from the system.

2. A method of configuring a process image of an island to indicate optionally uninstalled I/O modules comprising the steps of:
providing an island having a network interface module and a plurality of ports, each of the plurality of ports capable of connection to an I/O module;
connecting a plurality of I/O modules to select ports of the plurality of ports; and,
creating a process image of the island that indicates whether an I/O module is physically present and not present using virtual placeholders;
modifying the I/O module configuration remotely from a master controller,
wherein said process image includes a logical island model of said plurality of I/O modules comprising the I/O island, wherein the logical island model includes a translation table that provides a correlation between the node addresses of the physical island and the node addresses of the logical island model, wherein said translation table is configured using virtual placeholder objects such that an I/O module in a physical slot X having node ID X appears in the logical island model as if that I/O module were located in slot Y, such that configuration software maintains a consistent process image for various physical distributed I/O configurations having one or more I/O modules physically removed from the system.

3. The system of claim 1, wherein said configuration software provides for the display of I/O modules selected by a user to be physically not present in the I/O island to be displayed with particular virtual placeholder indicia indicating their absence, such that I/O modules indicated as being physically not present are distinguishable from I/O modules indicated as being physically present.

4. The automation system of claim 3, wherein said indicia for virtual placeholder objects that can be changed remotely are distinguishable from those virtual placeholder objects that cannot.

5. The system of claim 1, wherein the logical island can be tested against particular design rules and application requirements.

6. The system of claim 1, wherein said process image is downloaded and stored in said network interface module as part of its configuration data.

7. The system of claim 1, wherein said island is part of a distributed I/O system located at a separate location from a PLC and connected to said PLC via a local area network, wherein said PLC communicates to said network interface module via said local area network, and wherein said means for modifying the I/O module configuration remotely includes a special remote virtual placeholder object in said configuration software of the network interface module that is configured to be remotely reconfigured by said PLC.

8. The method of claim 2, wherein the step of modifying the I/O module configuration remotely includes the step of writing a valid reconfiguration to a special remote virtual placeholder object in the island's object dictionary stored in the network interface module.

9. The system of claim 1, further comprising a fieldbus master PLC.

10. A non-transitory computer-readable storage medium having computer-executable program instructions stored thereon that when executed by a processor, cause the processor to perform steps comprising:
providing an island having a network interface module and a plurality of ports, each of the plurality of ports capable of connection to an I/O module;
connecting a plurality of I/O modules to select ports of the plurality of ports; and,
creating a process image of the island that indicates whether an I/O module is physically present and not present using virtual placeholders;
modifying the I/O module configuration remotely from a master controller,
wherein said process image includes a logical island model of said plurality of I/O modules comprising the I/O island, wherein the logical island model includes a translation table that provides a correlation between the node addresses of the physical island and the node addresses of the logical island model, wherein said translation table is configured using virtual placeholder objects such that an I/O module in a physical slot X having node ID X appears in the logical island model as if that I/O module were located in slot Y, such that configuration software maintains a consistent process image for various physical distributed I/O configurations having one or more I/O modules physically removed from the system.

11. The non-transitory computer-readable storage medium of claim 10, wherein said configuration software includes said process image.

12. The non-transitory computer-readable storage medium of claim 11, wherein said configuration software provides for the display of I/O modules selected by a user to be physically not present in the I/O island to be displayed with particular virtual placeholder indicia indicating their absence, such that I/O modules indicated as being physically not present are distinguishable from I/O modules indicated as being physically present.

13. The non-transitory computer-readable storage medium of claim 12, wherein said indicia for virtual placeholder objects that can be changed remotely are distinguishable from those virtual placeholder objects that cannot.

14. The non-transitory computer-readable storage medium of claim 10, wherein the logical island can be tested against particular design rules and application requirements.

15. The system of claim 9, wherein said fieldbus master PLC is configured to use a fieldbus handler control word for enabling the remote configuration of virtual placeholders.

16. The system of claim 15, wherein said fieldbus handler control word includes a virtual placeholder configuration write object and a virtual placeholder configuration read object.

17. The system of claim 16, wherein said fieldbus handler control word further includes an island operation control object and an island operation status object.

18. The system of claim 15, wherein said fieldbus handler control word is a read/write object in the configuration software of the network interface module.

19. The system of claim 9, wherein said fieldbus master PLC communicates via the CANopen protocol, and is configured to use a special remote virtual placeholder object in the CANopen object dictionary of the I/O island.

20. The system of claim 9, wherein said I/O island is part of a distributed I/O system located at a separate location from said PLC and connected to said PLC via a local area network.