The present invention will now be described in more detail in relation to the enclosed drawings.
The present invention now will be described more fully with reference to the accompanying drawings, in which embodiments of the invention are shown. However, this invention should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like numbers refer to like elements throughout.
As used herein, the term “comprising” or “comprises” is open-ended, and includes one or more stated features, integers, elements, steps, components or functions but does not preclude the presence or addition of one or more other features, integers, elements, steps, components, functions or groups thereof.
As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.
As used herein, the common abbreviation “e.g.”, which derives from the Latin phrase “exempli gratia,” may be used to introduce or specify a general example or examples of a previously mentioned item, and is not intended to be limiting of such item. If used herein, the common abbreviation “i.e.”, which derives from the Latin phrase “id est,” may be used to specify a particular item from a more general recitation.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of this specification and the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
It will be understood that when an element is referred to as being “coupled” or “connected” to another element, it can be directly coupled or connected to the other element or intervening elements may also be present. In contrast, when an element is referred to as being “directly coupled” or “directly connected” to another element, there are no intervening elements present. Furthermore, “coupled” or “connected” as used herein may include wirelessly coupled or connected.
Well-known functions or constructions may not be described in detail for brevity and/or clarity.
The present invention may be embodied as methods, systems, and/or computer program products. Accordingly, the present invention may be embodied in hardware and/or in software (including firmware, resident software, micro-code, etc.), which may be generally referred to herein as a “circuit” or “module”. Furthermore, the present invention may take the form of a computer program product-on a computer-usable or computer-readable storage medium having computer-usable or computer-readable program code embodied in the medium for use by or in connection with an instruction execution system. In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
Reference is now made to
The system 10 may include an operator terminal 18, a first server 12 that includes computer objects for providing control of the process, a second server 14 that includes an application configured to control the process via objects in the first server 12, two engineering terminals 16, and multiple controllers 19 (Process Controller or Programmable Logic Controller PLC) all interconnected via a bus 20 for providing control in the system 10. A controller 19 may then be connected to one or more real world objects. By way of example, one of the controllers 19 is shown as being connected to a process section PS, which includes an inlet pipe leading to a tank and an outlet pipe leaving the tank. A pump is provided that pumps fluid into the first pipe as well as a first valve. Two level sensors are provided in the tank and a flow meter and a second valve is provided in the outlet pipe. All these elements are real world objects. The controller 19 receives control input values from the pump and level sensors and regulates the fluid level in the tank based on these control input values by controlling the first valve. The controller 19 also receives control input values from the flow meter and controls the second valve for regulating the output fluid flow. These entities are non-limiting examples of real world objects. As mentioned above, these real world objects, as well as other real world objects, may be controlled by computer objects provided in the first server. The system and the process section shown in
According to some embodiments of the present invention, the computer objects may be grouped in a specific manner. In order to control the real world objects of a process, containers may be used, such that there is one container for each real world object.
In some embodiments of the invention, the container 24 may be a so-called COM object having a number of interfaces. For example, three interfaces are shown in
Through these interfaces, the client application 22 can invoke a function that is related to an aspect that is held by the container 24. The client application 22 does this by querying the container 24 for an interface to this function, without knowing the identity of the application that implements the function for which it is seeking an interface. If the container 24 has an aspect that supports the interface, then a reference to the interface may be returned as some form of pointer to where that interface may be found.
The container Cont 24 may hold a number of aspects, of which one Asp 28 is shown in
The container furthermore may have access to an aspect lookup table 26, through which it may locate an aspect.
Thus, the client application 22, when needing to access a facet of the real world object, connects to the container 24 and requests an interface associated with the facet. The container then locates an aspect 28 associated with the facet via the aspect table 26, interrogates the aspect regarding its interfaces, receives information of an interface and returns the interface, through which the client application may connect to the aspect for retrieving data, control the real world object, etc.
What has been described above is a way that containers and aspects function when they are provided in a system. It should however be realized that objects need not be grouped into containers and aspects, but that any object structure can be used.
In a system of the above described type, it may be beneficial to be able to upgrade the system, which may normally be done by providing new versions of computer objects and in the structure of the example above, new versions of aspects. Thus, system-modifying users, may need to be working on objects as well. However, it may be beneficial not to stop or disturb the process control while working on the objects. Some embodiments of the present invention may provide such updating in a safe, contained and controlled way.
Some embodiments according to the present invention will now be described in relation to
When a need for an upgrading of at least some of the computer objects in the first server 12 of the system 10 arises, a production environment PE may be provided, step 30. In some embodiments, the production environment PE is the environment where the process control may be applied. In the production environment PE, original operative versions of objects may be provided, i.e. among others the objects used in the sharp real life control of the real world objects of the process. The process control may be performed in the way described above regarding
Once the objects have been imported, the group of system-modifying users may modify the copied objects, step 38, which may be done via one or more of the engineering terminals 16 of
When the group is finished modifying, a user of the group may now request deployment of the object versions in the engineering environment EE1, step 40. A request may be sent to the object updating device 29 for exporting objects of the engineering environment to the production environment. In some embodiments, a the request may be directed towards replacing operative versions of objects in the production environment PE with new modified versions in the engineering environment EE1. However, if before operative versions are replaced, the object updating device 29 may check and/or investigate to determine if any of the operative object versions in the production environment PE have been updated, step 42. If the operative object versions have been updated, the group of system-modifying users may be informed of the updates, step 44. Informing the group of system-modifying users may be done by providing a difference report listing all the objects in the production environment PE that have been updated. A system-modifying user of the group may then decide if the updates are relevant for the versions of objects in the engineering environment EE1. The object updating device 29 may then investigate to determine if there is a request to import such updates, step 46. If there is no such request, the object versions in the engineering environment EE1 may be deployed, step 50. If there is a request to import updates, the updates are imported to the engineering environment, step 48, whereupon deployment may take place, step 50. When deploying the objects in the engineering environment, the operative versions in the production environment PE may be exchanged with the modified versions in the engineering environment EE1, which are then used in the production environment as new operative versions. In this manner, a log of the versions including when they were operative and not operative may be kept.
In some embodiments, a modified version in the engineering environment can be a non-existent version. For example, the copied version of an object may be deleted when it is modified. This deleted object may not be provided with a version number, and the operative object may be deleted in the replacing step, as discussed above. In some embodiments, updating may limit reporting the updates to the objects that have been imported to the engineering environment EE1.
In some embodiments, the group of system-modifying users may create new objects in the engineering environment that do not previously exist in the production environment. Such objects may receive a version number, which normally is version number 1, and may be deployed together with the rest of the objects of the engineering environment. In this manner, the production environment could thus also receive a new object in addition to modified and/or deleted objects.
In some embodiments, it is possible to import versions of objects to an engineering environment from another engineering environment instead of from the production environment and then also check for updates in that other engineering environment. For example, the at least one engineering environment EE1 may be created first, followed by the creation of the second engineering environment EE2 shown in
Objects may be organized in hierarchical structures, as shown in
Some embodiments of the invention may include dependencies in a collection of objects, such that the dependencies are of such nature that the objects must always be provided together as an entity. An example of such a collection of objects or entity is the substructure 52 shown in
Some embodiments may include relations between a first object and one or more second objects, where the relations are of such nature that the first object may not function properly without the presence of the correct version of the one or more second objects. In such cases, the group of system-modifying users of an engineering environment may be notified about other objects that are related to an object to be imported or deployed, and then a user in the group of system-modifying users may decide whether or not also related objects are to be imported to or deployed from this engineering environment. This is because there may be different degrees of relationships where changes on an object are more or less serious to related objects. The system may also enforce the inclusion of such related objects, e.g. for particularly strong relations.
As illustrated in
Embodiments of the present invention may provide a number of advantages. For example, an object may be updated in a safe and contained way that may not disturb the process. Furthermore, an engineering environment may be small, so that it may only include the objects that need to be changed or are influenced by changes. Thus, there may be no need for copying all the objects of the production environment. In this manner, additional system requirements, such as memory space for the engineering environments, can be reduced. Some embodiments may allow several versions of computer objects to exist simultaneously and/or allow the definition of different contexts to describe which version of each object is used for production and which is being changed. Some embodiments may provide a mechanism by which versions of objects can be formally moved between these contexts, which may provide good safety when updating.
In some embodiments of the, present invention several modifications can be made in addition to those previous to discussed. In some embodiments, for example, the client application can be provided in a client terminal. In some embodiments, the different environments may be kept on different entities in the system. For example, different environments may be kept on separate servers. Although regarding embodiments discussed above, the object updating device served to restrict an engineering environment to a group of system-modifying users, embodiments may also utilize other means of providing this restriction. For example the restriction may be provided using the access control functions of the system.
Although in some embodiments the object updating device is shown as being provided in the first server, it can be implemented through one or more processors together with computer program code for performing its functions. It should be realized that the object updating device may be provided in other entities of the system, for example, the object updating device may be provided in the second server, a separate computer on the network, and/or in an engineering terminal. In some embodiments, the program code may also be provided as a computer program product, for an example in the form of one or more data carriers carrying computer program code for performing the functionality of the present invention when being loaded into a server. One such carrier 54, in the form of a CD ROM disc is generally outlined in
Although the present invention has been described in terms of specific embodiments, the present invention is not intended to be limited by the embodiments described herein. Thus, the scope may be determined by the following claims.
Number | Date | Country | Kind |
---|---|---|---|
0600894-0 | Apr 2006 | SE | national |
This U.S. non-provisional patent application claims priority under 35 U.S.C. §119 to Swedish Patent Application 0600894-0 filed on Apr. 24, 2006, the entire contents of which are hereby incorporated by reference.