1. Field of the Invention
The present invention generally relates to process control systems, and more specifically to a method and apparatus for supporting multiple languages in the operation and management of a process control system.
2. Related Art
Process control systems are generally used to control the operation of a number of devices in environments such as manufacturing plants, factories, and oil refineries. Often, a process control system is developed/provided by a vendor (e.g., Honeywell International, Inc., the intended assignee of the subject patent application) and used by organizations (typically owners) having responsibility for the respective environments.
There has been a general recognized need for providing interfaces that are localized (or customized) for each user in the language of the user's choice such that the user can effectively interact with the control system. One common reason for such a requirement is that the operation of a control system is often managed by a large number of users speaking different languages.
Another common reason for such a requirement is a vendor (or the organization) may design control strategies (which control the operation of individual components in the environment sought to be controlled) in one language and convert the strategies to other languages, potentially for use in similar environments in other geographical locations.
Such localized interfaces may need to be provided while meeting various constraints typical of process control systems. For example, it is generally necessary that the operation of the environment not be interrupted while the users switch from one language interface to the other. In addition, it is also generally necessary that the same information be provided continuously with imperceptible degree of interruption when the language interface is switched.
Various aspects of the present invention meet one or more of the requirements noted above.
An aspect of the present invention provides an approach to support multiple languages in a control system. In an embodiment, a reference database containing data of interest in each of the languages is maintained. However, when processing commands received from a user, data is returned in a first language from a master database, which stores data in the first language.
When a command to switch to a second language is received, in an embodiment, the data of interest in the second language from the reference database is copied to the master database. From then on, when processing additional commands, data is returned in the second language from the master database in the second language.
To maintain the data of interest in multiple languages in the reference database, in an embodiment, the data of interest may be extracted from the master database in the first language, and translated into other languages of interest. The translated data may be updated in the reference database.
To perform the translation, in an embodiment, a map of elements in the first language to corresponding elements in the second language is received from a user, and each element in the data of interest in the first language is mapped to the corresponding element in the second language according to the map. Thus, the user may conveniently control which all elements are translated into the second language (or all languages of interest). In addition, the approach would not require dynamic machine translation and is thus easier to implement.
According to another aspect of the present invention, when a command is received to switch to a language selected by a user, an indication data indicating the selected language, is stored in a common location. Then various other applications (i.e., user interface provided to other users on other systems) may examine the indication data to determine the specific language to operate in. As a result, all the application may operate in the same language selected by the user. In one embodiment, the common location corresponds to an entry in the master database.
Yet another aspect of the present invention facilitates exporting a data of interest from a first master database (in a first control system) containing data in a first language to a second master database (in a second control system) containing data in a second language. In an embodiment, a reference database containing the data of interest in multiple languages (including the first language and the second language) is maintained in the second control system. The data of interest is extracted from the first master database, and the reference database is examined to determine data in the second language corresponding to the data of interest. The retrieved data in the second language is then stored in the second master database.
The approach of above can be conveniently used to transfer control strategies from the first control system to the second control system.
Further features and advantages of the invention, as well as the structure and operation of various embodiments of the invention, are described in detail below with reference to the accompanying drawings. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The drawing in which an element first appears is indicated by the leftmost digit(s) in the corresponding reference number.
The present invention will be described with reference to the accompanying drawings briefly described below.
Various aspects of the present invention facilitate supporting of multiple languages in the management and operation of process control systems. Several aspects of the invention are described below with reference to examples for illustration. It should be understood that numerous specific details, relationships, and methods are set forth to provide a full understanding of the invention. One skilled in the relevant art, however, will readily recognize that the invention can be practiced without one or more of the specific details, or with other methods, etc. In other instances, well-known structures or operations are not shown in detail to avoid obscuring the features of the invention.
Control network 170 connects each of primary server 160-1, secondary server 160-2 and process controller 180 with field devices 190-1 to 190-3. Control network 170 may contain network devices (e.g., multiplexors, modems, termination panels, etc.,) operating according to one or more protocols such as HART, Control Net, and Foundation Field Bus well known in the relevant arts.
Process controller 180 issues commands to control the operation of field devices 190-1 to 190-3 to implement a desired control strategy in the environment being controlled. In general, the desired control strategies can be programmed from engineering stations 110-1 and 110-2, and can also be modified in minor respects during operation by operators using operator stations 120-1 and 120-2. Field devices 190-1 to 190-3 perform various operations under the control of process controller 180 to implement desired control strategies.
Primary server 160-1 receives commands from engineering stations 110-1 and 110-2 and operator stations 120-1 and 120-2 related to configuration or monitoring of field device 190-1 to 190-3 and executes the corresponding actions. For example, monitoring a field device may require primary server 160-1 to retrieve the information about the status of the field device using process controller 180 via control network 170, store the information in master database 140 and return the information to the engineering station or operator station that issued the command. The data in master database 140 may also be retrieved and returned to the user application, in response to corresponding command types.
Secondary server 160-2 operates in close association with primary server to provide an alternative to primary server 160-1 in case primary server 160-1 becomes unavailable. In general, one of the two servers 160-1 and 160-2 operates as a primary, and the secondary server takes on the role of the primary when the primary becomes unavailable. The necessary communication between the two servers may be provided either using LAN 130 or by an independent dedicated path (not shown) provided between the two servers.
Therefore, communication is established between primary server 160-1 and secondary server 160-2 such that relevant information (e.g., memory map) is duplicated to secondary server also, so that the switchover is seamlessly performed. In addition, as described below, each client system may be implemented to periodically check which of the server systems is operating as a primary, and send commands to the server presently operating as the primary server. The description is continued with respect to primary server 160-1 merely for illustration though secondary server 160-2 may be substituted in the place of primary server 160-1.
LAN 130 provides communication between engineering station 110-1 and 110-2, operator station 120-1 and 120-2, master database 140, reference database 150, primary server 160-1 and secondary server 160-2 using protocols such as TCP/IP well known in the relevant arts.
Engineering stations 110-1 and 110-2 provide interfaces to configure various control strategies manually, in addition to providing the capability to monitor various field devices. Operator stations 120-1 and 120-2 are used to display the status of the various field devices and may incorporate simple means of input such as providing pre-defined options that can be selected.
In general, client systems (for example, engineering stations and operator stations) provide a user interface using which users may manage (view information or perform configuration of) field devices. A user to effectively manage the field devices may require the user interface to be displayed in the language of the user's choice. Localization of the user interface in client systems may be provided by installation of user interface packs, which provide interface specific language conversions required to switch from one language to another.
Also, as noted above, each client system checks periodically the specific one of the servers 160-1 and 160-2, which is presently operating as a primary server, and sends the commands to that server. The response is received from the primary server (assuming 160-1, in
Master database 140 provides a central repository for storing information related to configuration of field devices, status of field devices, maintenance schedules, etc. Generally, the stored information is retrieved and displayed to the user in the user interface provided in the client systems. Localization of the user interface often necessitates the information in master database 140 to be made available in the language of the user's choice in order to be consistent with the user interface. As such, master database 140 provides support for returning data in multiple languages. Various aspects of the present invention enable support of multiple languages in a database using a reference database as described in detail below.
Reference database 150 is used for storing information in multiple languages and is used along with master database 140 by primary server 160-1to provide information to client systems in the language selected by the user. Each of master database 140 and reference database 150 can be implemented using one of several commercially available database servers (such as Microsoft SQL Server 2000 from Microsoft Corporation). In addition, though shown as separate blocks, reference database 150 and master database 140 can be implemented in a single database server. The manner in which a reference database is used to provide support for multiple languages in a database is described below in detail.
II. Supporting Multiple Languages in a Database
II. 1. Flowchart
In step 210, primary server 160-1 maintains a reference database (reference database 150 in
The data of interest refers to data in master database 140 that needs to be provided in the language of a user's choice. Typically data of interest contains textual information that needs to be translated to multiple languages. It may be appreciated that other information such as numeric data or date/time information may not be required to be translated into multiple languages. The manner in which data of interest is maintained in multiple languages in reference database 150 is described in detail with respect to
In step 220, primary server 160-1 returns data from master database (master database 140 in
In step 240, primary server 160-1 receives a command to switch to a language selected by the user. The languages supported by reference database 150 (that is the languages to which the data of interest has been translated and in which user interface can be provided) are displayed to the user, thereby enabling the user to select the language of the user's choice.
In step 260, primary server 160-1 copies the data of interest in the selected language from the reference database to the master database. It may be appreciated that by copying the data of interest from reference database 150 to master database 140, applications executing in different client systems may store/retrieve information using a single database irrespective of the language selected by the user. Such a feature enables information about the status of field devices to be provided to the client systems with minimal delay during the switching of languages.
In step 280, primary server 160-1 returns data in the selected language from master database for commands received from the user. It may be appreciated that the commands received may be similar to (or same as) the commands received in step 220. Thus, an application executing in engineering station 110-1 may retrieve information from master database 140, using the same commands irrespective of the language selected by the user. The flow chart ends in step 299.
Thus, primary server 160-1 facilitates supporting multiple languages in master database 140 using the translated data of interest stored in reference database 150. The manner in which multiple languages are supported in a database is illustrated below with an example.
II. 2. Illustration
Column 440 “ENU” (representing “English”) represents the data of interest and is a copy of the data from column 340 present in master database 140. Columns 410, 420 and 430 are also a copy of the columns 310, 320 and 330 present in master database 140 and as such form a unique/primary key for uniquely identifying each row (for example, rows 470 to 495).
Column 450 “CHS” (representing “Chinese”) shows the data of interest translated to a second language (“Chinese”) and corresponds to the data in column 440. Thus, in row 470, the data in column 450 in “Chinese” corresponds to the data “Bad” in column 440 in “English”.
It may be appreciated that more columns may be added to reference database 150, thereby providing support for multiple languages. Primary server 160-1 generates/maintains the data of interest (as shown in
The table depicted in
It may be noted that the data of interest (column 340) in a first language (“English”) depicted in rows 370 to 395 have been replaced with corresponding data in a second language “Chinese” as depicted in column 540 of rows 570 to 595.
The manner in which primary server 160-1 provides support of multiple languages in a database by using the translated data maintained in a reference database is described in detail below.
II. 3. Maintaining a Reference Database
In step 620, primary server 160-1 extracts the data of interest in a first language (“English”) in a database (master database 140) to a file. The data of interest may be specified using the rows and columns of a table in master database 140. For example, column 340 of rows 380, 385 and 390 may be used to specify the data of interest “Active”, “Safe” and “State0” with respect to the table depicted in
In step 650, primary server 160-1 translates the data of interest in the file from the first language (“English”) to a second language (“Chinese”). In an example embodiment described below with reference to
Column 720 contains data in a second language corresponding to data of interest. Column 720 rows 780, 785 and 790 depict the data corresponding to data of interest depicted in column 710. It may be appreciated that more columns may be provided to enable translation of the same data of interest into multiple languages (one language per column).
Continuing with reference to
Thus, by using the data in the master database, the data of interest may be provided for displaying in a language a user has earlier selected. The remaining portion of display screens may also be provided in the same language (e.g., using language specific DLLs in the case of Microsoft's Windows Operating system) using various techniques well known in the relevant arts. The description is continued with respect to the manner in which the change of language can affect other applications of the process control system.
III. Localization of Applications
III. 1. Introduction
Process control systems typically contain several applications running in various systems like operator stations, engineering stations, help desks, and databases. The selection of a language by a user of one of the applications may require the other applications to switch to the selected language in order to provide a consistent user interface for the whole process control system. This is typically required in the scenario where a user sends a command to switch to a new language to a database, thereby necessitating the applications using the data in the database to switch to the new language. The manner in which such a feature is attained according to an aspect of the present invention is described below.
III. 2. Flowchart
In step 820, primary server 160-1 receives a command from a user to switch to a language selected by the user. Typically, the languages that are supported by all the application running in a process control system are displayed to the user, thereby enabling the user to select the language of the user's choice.
In step 850, primary server 160-1 stores an indication data in a common location indicating the language selected by the user. In an embodiment, the indication data is stored in master database 140 according to a pre-specified convention (which permit retrieval by an appropriate identifier). In step 880, primary server 160-1 returns the indication data for commands received from applications requesting the language selected by the user. The flow chart ends in step 899.
It may be appreciated that various applications of a process control system may determine the language selected by the user by sending an appropriate command to primary server 160-1. The applications may then operate in (or provide user interface in) that language. In an embodiment, each application checks the common location only once at the time of initialization (of the application). In such an embodiment, when the user of another application changes the language, the application may need to be reinitialized to switch to the new language completely.
The description is continued with respect to exporting control strategies from one process control system to another.
IV. Export/Import of Values Used in Control Strategies
IV. 1. Introduction
A common scenario in process control systems is that the same organizations (owners) of a process control system may have multiple installations of the same or similar environment (for example, manufacturing plants) in different geographical locations. Thus, the operation of the process control systems controlling the two environments would require similar control strategies to be implemented in different languages.
It would be desirable for control strategies specified/stored in one language to be made available for further refinement in other languages. One of the challenges in transferring the control strategies to new control systems is the transfer of values (particularly textual information) used in the control strategies, particularly when the languages of the control systems differ. Often the control strategies contain fields, with each field having a value associated with a pre-defined name. It is desirable that the values be accurately transferred associated with the name for each field in the control strategy.
An aspect of the present invention enables the export/import of such values from a first control system in one language to a second control system in another language, as described below in further detail.
IV. 2. Example Scenario
Control systems 920 and 970 are each similar to that described in the example embodiment of
Master databases 925 and 975 are similar to master database 140 and reference database 978 is similar to reference database 150. Master database 925 contains the control strategies specified in a first language (say English) that needs to be transferred to master database 975, which is localized in a second language (say Chinese).
Data table 926 contains some of the values used in control strategies (for example, the control strategy depicted in
Default table 927 contains the default values for each of the fields of the control strategy and represents the pre-defined values (set possibly by the vendor or an external support organization in the control system) for each of the fields of the control strategy.
Change table 928 stores the values of each field of a control strategy, as a user specifies new values. When new values used in a control strategy are stored in data table 926, the new values are compared to the default values stored in default table 927. In the scenario, where the values are different from the default values, change table 928 is updated with the new user specified values.
Thus, change table 928 and default table 927 enable an audit trail (recording the user specified changes) to be maintained for data table 926. In an embodiment, for each instance of data table for which audit trail information needs to be maintained, a corresponding pair of default table and change table is maintained.
Master database 975 also contains tables (not shown) similar to data table 926, default table 927 and change table 928, but for control system 970. Values used in control strategies need to be transferred from one data table in a first language (in master database 925) to another data table in a second language (in master database 975).
In one embodiment, the values (in the first language) that are inserted in the data table are compared to the values in the default table (in the second language), thereby causing a update to the change table even when the inserted values and the default values are the same (though represented in different languages). Such an update is prevented due to an aspect of the present invention, as described below with respect to
Data transfer 950 exports values used in control strategies from master database 925 in the first language and imports the values in a second language into master database 975. The manner in which the values used in control strategies are transferred from the first control system to the second control system is described in detail below.
IV. 3. Flowchart
In step 1020, data transfer 950 extracts data from a first database (master database 925) in a first control system (control system 920) that is to be imported into a second database (master database 975) in a second control system (control system 970). In the embodiment described below, the extracted data containing the values is stored in a file encoded in extended markup language (XML).
In step 1040, data transfer 950 checks whether the language of the first database is the same as the language of the second database. Control passes to step 1090 if the languages are the same or to step 1050 otherwise. In step 1090, data transfer 950 inserts the extracted data into the second database in the second control system.
In step 1050, data transfer 950 checks a reference database (reference database 978) containing data in the language of the first database and the corresponding data in the language of the second database. It may be appreciated that in
In step 1080, data transfer 950 inserts extracted data into (the data table of the master database) the second control system using the data in the reference database (to convert data from the language of the first database to the language of the second database). The flowchart ends in step 1099.
It should be appreciated that by converting the data (containing values used in a control strategy) from the (first) language of the first database to the (second) language of the second database, the default values are also converted before insertion in a data table in the second database. Since, the converted default values (in the second language) are same as the default values (in the second language) stored in the default table associated to the data table, the change table associated to the data table is not updated. Thus, the audit trail for values in the data table is properly maintained using the associated default table and change table.
Thus, data transfer 950 facilitates the export/import of data containing values used in control strategies from a first control system to a second control system using a reference database. The manner in which a reference database is used to facilitate export/import of control strategy is illustrated below with an example.
IV. 4. Illustration
Lines 1305 to 1395 (“<MultiBlock> . . . </MultiBlock>”) specify the data that is generated by data transfer 950 by exporting (extracting) the information about control strategies (for example, the values used in a control strategy as depicted in
Lines 1308 to 1318 (“<ErdbVersion> . . . </ErdbVersion>”) specify the information about the version of a second database (master database 975) in a second control system (control system 970) into which the data is to be imported. In particular, line 1316 (“DbLangID> . . . </DbLangID>”) specifies the language “CHS” (“Chinese”) of the second control system.
Lines 1325 to 1390 (“<Parameters> . . . </Parameters>”) specify the fields contained in a control strategy (as depicted in
Data transfer 950 after extracting the data (depicted in
Data transfer 950 retrieves the corresponding data (in the second language “Chinese”) from reference database 978 and imports/inserts the data in the second database (master database 975) of the second control system in step 1080. The imported information may be displayed to a user using an interface depicted in
It should be appreciated that the various features described above can be implemented in various embodiments as a desired combination of one or more of hardware, software and firmware. The description is continued with respect to an embodiment in which various features are operative when software instructions are executed.
V. Digital Processing System
CPU 1410 may execute instructions stored in RAM 1420 to provide several features of the present invention. CPU 1410 may contain multiple processing units, with each processing unit potentially being designed for a specific task. Alternatively, CPU 1410 may contain only a single general purpose, processing unit. RAM 1420 may receive instructions from secondary memory 1430 using communication path 1450.
Graphics controller 1460 generates display signals (e.g., in RGB format) to display unit 1470 based on data/instructions received from CPU 1410. Display unit 1470 contains a display screen to display the images defined by the display signals. Input interface 1490 may correspond to a key-board and/or mouse. Network interface 1480 provides connectivity to a network (e.g., using Internet Protocol), and may be used to communicate with the other systems of
Secondary memory 1430 may contain hard drive 1435, flash memory 1436, and removable storage drive 1437. Secondary memory 1430 may store the data and software instructions, which enable digital processing system 1400 to provide several features in accordance with the present invention. Some or all of the data and instructions may be provided on removable storage unit 1440, and the data and instructions may be read and provided by removable storage drive 1437 to CPU 1410. Floppy drive, magnetic tape drive, CD-ROM drive, DVD Drive, Flash memory, removable memory chip (PCMCIA Card, EPROM) are examples of such removable storage drive 1437.
Removable storage unit 1440 may be implemented using medium and storage format compatible with removable storage drive 1437 such that removable storage drive 1437 can read the data and instructions. Thus, removable storage unit 1440 includes a computer readable storage medium having stored therein computer software and/or data.
In this document, the term “computer program product” is used to generally refer to removable storage unit 1440 or hard disk installed in hard drive 1435. These computer program products are means for providing software to digital processing system 1400. CPU 1410 may retrieve the software instructions, and execute the instructions to provide various features of the present invention described above.
VI. Conclusion
While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of the present invention should not be limited by any of the above described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents. Also, the various aspects, features, components and/or embodiments of the present invention described above may be embodied singly or in any combination in a data storage system such as a database system.
The present application claims priority from the co-pending U.S. Provisional Patent Application Ser. No. 60/767550, entitled, “Supporting Multiple Languages in the Operation and Management of a Process Control System”, filed Jul. 7, 2006 , attorney docket number: H0012157/HON-024, naming as inventor: Reddy et al, and is incorporated in its entirety herewith.
Number | Date | Country | |
---|---|---|---|
60767550 | Jul 2006 | US |