TECHNICAL FIELDThe claimed subject matter relates generally to industrial environments and, more particularly, to display of operator interfaces in desired language(s).
BACKGROUNDDue to enhancements in communications and travel, such as email, mobile phones, and air travel, today's businesses are not as confined by geographic bounds when compared to the recent past. For example, many years ago business could only be undertaken in a town or city within which the business physically resided. Thus, for example, a blacksmith servicing New York could not provide services to Los Angeles. As time passed and shipping became more expedient and reliable, businesses were able to expand the geographic region with respect to which they could provide goods and/or services. Today, email, text messaging, and the like enable data to be communicated nearly instantaneously between individuals for minimal cost (e.g., for the cost of Internet access). Additionally, expedited shipping enables products to be provided between continents in a matter of mere days. Therefore, even small businesses are capable of becoming international operations, providing goods and/or services to people or businesses in several different countries.
These enhancements in communication have also enabled companies to have several branches in various countries. For instance, a company may have a branch in the United States, a branch in Germany, a branch in Mexico, and a branch in Japan. Therefore, a business providing goods and/or services (such as software and software support) to such company must be capable of providing the goods and services in multiple languages. Continuing with the above example, a business that desires to provide software to the aforementioned company must provide such software in English, German, Spanish, and Japanese to ensure that employees of the company can utilize the software.
Conventionally, multiple software packages are developed, such that each software package supports a particular language. With more particularity (and in accordance with the above example), a software package would be created that includes fonts associated with the English language, a software package would be created that includes fonts associated with the German language, and so on. Fonts that support particular languages within a software package can require a significant amount of storage space (e.g., multiple megabytes), thus rendering electronic transmittal of the software inefficient. Moreover, often products are pre-loaded with software prior to sale, and incorrect delivery of the product can result in a recipient thereof not being able to correctly utilize such product.
SUMMARYThe following presents a simplified summary of the disclosed subject matter in order to provide a basic understanding of some aspects described herein. This summary is not an extensive overview, and is not intended to identify key/critical elements or to delineate the scope of the disclosed subject matter. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is presented later.
The subject matter described in greater detail herein relates to utilizing resources of a client device to graphically render text and/or symbols in a language desired by a user of an electronic device that is communicatively coupled to the client device. More particularly, the electronic device, which can be an industrial automation device such as a controller, a human-machine interface terminal, a combined controller/human-machine interface (CHMI), etc., can include translation strings, which are abstractions of text/symbols. For instance, the translation strings can be Unicode strings. The electronic device can also include an operator interface system, which can be utilized to generate operator interfaces for developing applications to be run by the electronic device, configuring the electronic device, and/or using functionality associated with the electronic device. In a particular example, the operator interface provided to a user can enable a user to design human-machine interface (HMI) screens.
When the electronic device is communicatively coupled to the client device (a personal computer, for example), the electronic device can relay operator interface data to such client device, including translation strings that abstract text associated with the operator interface. The client device can then employ resources that are included therein to graphically render text and/or symbols in a language that is desirable to a user of the electronic device. Thus, the electronic device is not burdened with retaining fonts and/or other software required to render text/symbols in a certain language. In other words, the electronic device can be globally marketed without being customized for multiple languages.
The electronic device can also be configured to provide particular operator interface data based at least in part upon a role of a user thereof. For instance, when the electronic device is communicatively coupled to the client device (such as by way of a Universal Serial Bus connection), a user can be prompted to provide information that can be utilized to identify the user, such as a username, password, personal identification number, biometric indicia, security questions, and/or the like. Based upon the determined identification, a user's role can be ascertained, and operator interface data (including translation strings) can be selectively provided to the user based at least in part upon the ascertained role. For example, an executive may desirably be provided with a different operator interface than a maintenance employee.
To the accomplishment of the foregoing and related ends, certain illustrative aspects of the disclosed subject matter are described herein in connection with the following description and the annexed drawings. These aspects are indicative, however, of but a few of the various ways in which the principles of the described subject matter can be employed and such subject matter is intended to include all such aspects and their equivalents. Other advantages and novel features will become apparent from the following detailed description of the invention when considered in conjunction with the drawings.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 illustrates a system for providing operator interfaces to a user in a desired language.
FIG. 2 illustrates a system that facilitates display of an operator interface to a user in an appropriate language through utilization of a web browser on a client device.
FIG. 3 illustrates a system for locating appropriate resources to enable display of an operator interface in a desired language.
FIG. 4 illustrates a system that facilitates display of an operator interface in a desired language, wherein the operator interface is provided based at least in part upon an ascertained role of a user.
FIG. 5 illustrates a system that facilitates selective provision of operator interface data to a client based at least in part upon ascertained operating parameters associated with the client.
FIG. 6 illustrates an operator interface associated with a combined controller/human-machine interface being provided to a personal computer, wherein text/symbols associated with the operator interface are displayed in a desired language.
FIG. 7 is a representative flow diagram that illustrates a methodology for displaying operator interface language in a desired language through utilization of translation strings.
FIG. 8 is a representative flow diagram that illustrates a methodology for utilizing resources on a client device to display Unicode strings in a desired language.
FIG. 9 is a representative flow diagram that illustrates a methodology for selectively providing operator interface data to a user based at least in part upon a role associated with the user.
FIG. 10 is an example computing environment.
FIG. 11 is an example networking environment.
DETAILED DESCRIPTIONThe subject invention is now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of that described herein. It may be evident, however, that such matter can be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate describing the invention.
As used in this application, the terms “component” and “system” are intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and a computer. By way of illustration, both an application running on a server and the server can be a component. One or more components may reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers.
Furthermore, aspects described herein may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer to implement various aspects of the subject invention. The term “article of manufacture” as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. For example, computer readable media can include but are not limited to magnetic storage devices (e.g., hard disk, floppy disk, magnetic strips, etc.), optical disks (e.g., compact disk (CD), digital versatile disk (DVD), etc.), smart cards, and flash memory devices (e.g., card, stick, key drive, etc.). Additionally it should be appreciated that a carrier wave can be employed to carry computer-readable electronic data such as those used in transmitting and receiving electronic mail or in accessing a network such as the Internet or a local area network (LAN). Of course, those skilled in the art will recognize many modifications may be made to this configuration without departing from the scope or spirit of what is described herein.
Now referring to the drawings,FIG. 1 illustrates asystem100 that facilitates provision of data in a desired language to a user. Thesystem100 includes anelectronic device102 that comprises anoperator interface system104, wherein theoperator interface system104 is utilized to provide particular data to a user. In an example, the electronic device can be an industrial automation device, such as a controller, a human-machine interface (HMI), and/or a combination controller/HMI (CHMI). Theoperator interface system104 can generate operator interfaces that enable an operator to program theelectronic device102, review data that is stored within theelectronic device102, passing through theelectronic device102, create, design, and/or modify human-machine interface (HMI) screens, etc. Pursuant to an example, theoperator interface system104 can be utilized in connection with configuring a control program that is utilized to control an industrial process.
Theelectronic device102 may be desirably sold with theoperator interface system104 already embedded therein. Given a desire to service a global market, however, theoperator interface system104 should be configured to display text in certain languages (depending upon a user's location and/or preference). Conventionally, theelectronic device102 must include one or more sets of fonts to enable text to be properly displayed to a user, wherein the fonts can consume several megabytes of storage capacity on theelectronic device102. Storage of fonts thus sacrifices functionality (as storage space that can be utilized to enable additional functionality is consumed by fonts) or increases costs (to increase an amount of storage capacity on theelectronic device102 to enable desired functionality). To make up for the deficiencies, theoperator interface system104 can includetranslation strings106, which can be abstractions of text/symbols for all desired language translations. Pursuant to an example, the translation strings106 can be Unicode strings. It is to be understood, however, that any suitable translation strings are contemplated and are intended to fall under the scope of the hereto-appended claims.
The translation strings106, for example, can be utilized in connection with displaying text in one of several desired languages, thereby enabling a manufacturer of theelectronic device102 and/or creator of theoperator interface system104 to service a global market without customizing the product for particular countries. Theoperator interface system104 can also be associated with aninterface component108 that interfaces theelectronic device102 with aclient device110. In other words, theelectronic device102 acts as a server with respect to theclient device110 when theclient device110 and theelectronic device102 are communicatively coupled by way of theinterface component108. Theinterface component108 can provide theclient device110 withappropriate translation strings106 based upon a sensed location, a user's identity, and/or the like. Alternatively, theinterface component108 can provide theclient device110 with alltranslation strings106 resident within theelectronic device102.
In an example, a user may desire to create a program for theelectronic device102, and to do so can couple theelectronic device102 with the client device110 (e.g., by way of a Universal Serial Bus connection). In accordance with an aspect, the coupling of theclient device110 to theelectronic device102 can provide partial power to theelectronic device102 and enable programming and configuration ofsuch device102. Once theclient device110 and theelectronic device102 are communicatively coupled (e.g., by a wireless or wirelined connection), theinterface component108 can detect or receive an indication of location of theelectronic device102 or a user of theclient device110 and/or theelectronic device102, and can provideappropriate translation strings106 to theclient device110. Theclient device110 can includefonts112 that enable theclient device110 to display text within an operator interface in an appropriate language (and at an appropriate size, color, etc.). Thus, the client device's font resources are utilized to free theelectronic device102 from needing to carry many megabytes of font files. For instance, a web browser on theclient device110 can be associated with thefonts112, and can thus properly render an operator interface to a user (with text in a desired language). Thefonts112 described herein are intended to cover data utilized to determine size of text/symbols, color, language, and other parameters for properly displaying text/symbols.
Referring now toFIG. 2, asystem200 that facilitates provision of an operator interface to a user in a language that is preferred by the user is illustrated. Thesystem200 includes theelectronic device102, which is associated with theoperator interface system104. Theoperator interface system104 enables a user of theelectronic device102 to create a program for such device, review data thereon, cause thedevice102 to operate in a certain manner, etc. Pursuant to an example, theelectronic device102 can be a CHMI device, and a user may desire to configuresuch device102 with respect to a particular process. It is to be understood, however, that theelectronic device102 can be any suitable electronic device that is associated with an operator interface system.
Thesoftware development system104 includes theinterface component108, which can relay Unicode strings202 to theclient device110, which can be a personal computer, a personal digital assistant, or other suitable device. Unicode is an industry standard that is designed to allow text and symbols from various written languages to be consistently represented by computing devices. Unicode consists of a character repertoire, an encoding methodology (and set of standard character encodings), a set of code charts for visual reference, an enumeration of character properties such as upper and lower case, a set of reference data computer files, and rules for normalization, decomposition, collation, and rendering. In text processing, Unicode provides a unique code point (a number, not a glyph) for each character. In other words, Unicode represents a character in an abstract way, and leaves the visual rendering (size, shape, font and/or style) to other software.
Theinterface component108 can relay at least a subset of the Unicode strings202 to theclient device110 upon theclient device110 becoming communicatively coupled to theelectronic device102. Theclient device110 can include aweb browser204, which can display text/symbols that are abstracted by the Unicode strings202. More particularly, theweb browser204 can include thefonts112 to enable display of text/symbols in a language desired by a user of theclient device110. In another example, theclient device110 can include a word processor or other software that can be utilized to display text/symbols (abstracted by the Unicode strings202) in an appropriate language. Thus, resources of theclient device110 can be utilized to display text/symbols associated with an operator interface.
Turning now toFIG. 3, asystem300 that facilitates display of text/symbols associated with an operator interface in a desired language is illustrated. Thesystem300 includes theelectronic device102, which comprises theoperator interface system104. Theoperator interface system104 includes theinterface component108, which provides the Unicode strings202 to theclient device110 upon theclient device110 and theelectronic device102 becoming communicatively coupled. In another example, theinterface component108 can provide the Unicode strings202 to theclient device110 upon receipt of a request for the Unicode strings202, wherein the request can be explicitly provided by a user or implicitly determined through analysis of user actions.
Theoperator interface system104 can also include aninstruction generator component302 that provides instructions to theclient device110 regarding displaying an operator interface. For instance, theclient110 may be a specialized piece of equipment that does not include a web browser, a word processor, or other suitable software that oftentimes includes fonts for displaying Unicode strings. Theinstruction generator component302 can provide theclient device110 with instructions for obtaining software that enables viewing of Unicode strings in a desirable manner. Pursuant to an example, theinstruction generator component302 can cause theclient device110 to automatically access aserver304 by way of a network connection, such as the Internet. Theserver304 can retain a software application and fonts which can be downloaded to theclient device110, wherein a language associated with the fonts can be discerned by determining a location of theclient device110. The instructions created by theinstruction generator component302 can also include instructions that cause theclient device110 to install software/fonts retrieved from theserver304. Thereafter, theclient device110 can display text/symbols within an interface associated with theelectronic device102 in an appropriate language. Theserver304 can be maintained by a manufacturer or seller of theelectronic device102, thereby enabling the manufacturer or seller to service a global market without requiring theelectronic device102 to carry fonts associated with displaying text.
Referring now toFIG. 4, asystem400 that illustrates provision of an operator interface to a user thereof in an appropriate language is shown. Thesystem400 includes theelectronic device102, which comprises theoperator interface system104. As described above, theoperator interface system104 is utilized in connection with generating an operator interface that can be employed by a user of theelectronic device102 to configure thedevice102, utilize particular functionality associated with the device, define security parameters related to the device, and/or the like.
Theoperator interface system104 can include asecurity component402 that authenticates a user's identity when theelectronic device102 is communicatively coupled to theclient device110. Pursuant to an example, upon theclient device110 being coupled to theelectronic device102, the operator interface system104 (through use of the security component402) can provide theclient device110 with prompts for a user name, a password, personal identification number, biometric indicia (such as a voice sample, a fingerprint scan (through a scanning module on theclient device110 or the electronic device102), security questions (such as a maiden name of the user's mother), or any other suitable information that may be utilized to identify a user. In another example, thesecurity component402 can receive and analyze a unique identifier associated with theclient device110 in connection with determining an identity of a user. To provide such information, theinterface component108 can providecertain translation strings106 to theclient device110, which can utilize thefonts112 thereon to correctly display an operator interface that requests data from the user. Thus, if theelectronic device102 is shipped to a customer in China, when the client device110 (which includes Chinese fonts) couples to theelectronic device102, theclient device110 will display an operator interface in the Chinese language (and theelectronic device102 does not have to carry the fonts112).
Once thesecurity component402 has determined an identity of a user of theelectronic device102, afilter component404 can be employed to selectively provide data to such user. For example, it may be desirably to provide one operator interface to an executive while providing a different operator interface to a production line manager. Thefilter component404 can thus selectively provide data (including certain translation strings) to a user based upon the user's role. Additionally, contextual data can be taken into account by thefilter component404 when selectively providing operator interface data to theclient device110. For instance, it may not be desirably to provide sensitive data to a user whilst the user is in a crowded area (such as a restaurant). Pursuant to an example, theclient device110 may be a personal digital assistant and theelectronic device102 may be portable. A determination can be made regarding location of such devices (e.g., through use of a Global Positioning System resident upon theelectronic device102 and/or theclient device110, triangulation, etc.), and thefilter component404 can cause data to be selectively provided to theclient device110 based upon a user's role and/or location. Other contextual information, such as time of day, day of week, shift associated with an operator using theelectronic device102, whether an alarm is existent, and other suitable information can be employed in connection with selectively providing data (e.g., translation strings106) to theclient device110 by way of theinterface component108.
Now turning toFIG. 5, asystem500 for selectively providing an operator interface to a user it illustrated. Thesystem500 includes theelectronic device102, which can be, for instance, a CHMI device or other suitable industrial automation device. Theindustrial device102 is communicatively coupled to theclient device110, which can be a personal computer, personal digital assistant, or other suitable electronic device with display capabilities. Upon detecting a coupling between theelectronic device102 and theclient device110, aninterrogator component502 can interrogate theclient device110 to determine operating parameters/capabilities associated therewith. For instance, theinterrogator component502 can query theclient device110 to determine display capabilities associated therewith, including resolution, display size, color capabilities, and/or the like. Additionally or alternatively, theinterrogator component502 can determine processing and memory capabilities associated with theclient device110 in connection with ascertaining the client device's ability to render graphics. Moreover, theinterrogator component502 can determine what programs are associated with the client device to ensure thatsuch client device110 has necessary software to properly display an operator interface to a user.
Aprovision component504 can then provide theinterface component108 with formatting data and other suitable data, and theinterface component108 can be employed to transfer such data to theclient device110. More particularly, based upon data determined by theinterrogator component502, theprovision component504 can cause a customized operator interface to be displayed at theclient device110. In other words, theprovision component504 can select and format data according to parameters of theclient device110 determined by theinterrogator component502. Thus, a more robust and detailed operator interface can be displayed at theclient device110 if it is a personal computer associated with a significant amount of display real estate as compared to an operator interface displayed if theclient device110 is a mobile telephone (which has a small amount of display real-estate). For instance, different menu options can be provided, different graphics can be provided, and/or the like depending upon parameters determined by theinterrogator component502.
Theoperator interface system104 can also include a machine-learningcomponent506 that can monitor user actions over time and selectively provide particular functionality and/or content to theclient device110 based upon the monitoring. For example, over time it can be discerned that each time a new user utilizes theelectronic device102,such device102 is reconfigured. Accordingly, if it is determined that an individual is using theelectronic device102 for a first time, the machine-learningcomponent506 can instruct theprovision component504 to provide theclient device110 with an operator interface that relates to configuration of theelectronic device102. Theinterface component108 can also provide appropriate abstractions of text (the translation strings106) to theclient device110, thereby ensuring that the operator interface is provided to theclient device110 in a desired language.
In other words, the machine-learning component can make inferences regarding operator interfaces to provide to a user of theelectronic device102 based upon user history, user context, previous use of theelectronic device102, and other suitable data. As used herein, the term “inference” refers generally to the process of reasoning about or inferring states of the system, environment, and/or user from a set of observations as captured via events and/or data. Inference can be employed to identify a specific context or action, or can generate a probability distribution over states, for example. The inference can be probabilistic—that is, the computation of a probability distribution over states of interest based on a consideration of data and events. Inference can also refer to techniques employed for composing higher-level events from a set of events and/or data. Such inference results in the construction of new events or actions from a set of observed events and/or stored event data, whether or not the events are correlated in close temporal proximity, and whether the events and data come from one or several event and data sources. Various classification schemes and/or systems (e.g., support vector machines, neural networks, expert systems, Bayesian belief networks, fuzzy logic, data fusion engines . . . ) can be employed in connection with performing automatic and/or inferred action. In an example, over time a user may select similar menu options within an operator interface, and the machine-learningcomponent506 can infer such trend based upon user history. Thus, when the user couples theelectronic device102 to theclient device110, the machine-learningcomponent506 can instruct theprovision component504 to provide certain menu options more prominently (or automatically order menu options for the user).
With reference toFIG. 6, asystem600 that facilitates provision of operator interfaces in a desired language to a user of an industrial automation device is illustrated. Thesystem600 includes aCHMI602, which enables a user to control a particular process. For instance, theCHMI602 can be portable, and may or may not include display capabilities. Thus, theCHMI602 can be electronically coupled to manufacturing equipment to control such equipment and/or a process associated therewith. In more detail, theCHMI602 can include compiled ladder logic and control a process through utilization of such logic.
TheCHMI602 includes theoperator interface system104, which is utilized to provide an operator interface to a client device that is communicatively coupled to theCHMI602. A user can thereafter receive data from theCHMI602 and provide data to theCHMI602 by way of the client device. For example, upon initially coupling theCHMI602 to a client device, an operator interface can be provided to a user that relates to configuring theCHMI602. Theoperator interface system104 includes the Unicode strings202, which enables text and/or symbols to be abstracted and not tied to a particular language. Therefore, theCHMI602 need not retain fonts for graphically rendering text and/or symbols to a user of theCHMI602.
Thesystem600 additionally includes apersonal computer604 that acts as a client with respect to theCHMI602 when thepersonal computer604 is communicatively coupled to theCHMI602. In other words, theCHMI602 can serve up operator interfaces (and other suitable data) to thepersonal computer604, which can in turn utilize a display mechanism associated therewith to present operator interface data associated with theCHMI602 to a user. Thepersonal computer604 can also include thefonts112, which may be associated with a browser or a word-processing product. Thesefonts112 can be employed to properly render text/symbols that are abstracted by the Unicode strings within theCHMI device102 in a desired language. Thus, theCHMI602 can be marketed globally without being forced to carry certain fonts or a plurality of different fonts, thereby enabling additional storage capacity for functionality. When theCHMI602 is communicatively coupled to thepersonal computer604, theoperator interface system104 can provide thepersonal computer604 with an operator interface. Theinterface component108 delivers at least a subset of the Unicode strings202 to thepersonal computer604, which utilizes thefonts112 retained therein to graphically render text and/or symbols in a desired language to the user.
Turning toFIGS. 7-9, several methodologies are illustrated. While, for purposes of simplicity of explanation, the methodologies are shown and described as a series of acts, it is to be understood and appreciated that the claimed subject matter is not limited by the order of acts, as some acts may occur in different orders and/or concurrently with other acts from that shown and described herein. For example, those skilled in the art will understand and appreciate that a methodology could alternatively be represented as a series of interrelated states or events, such as in a state diagram. Moreover, not all illustrated acts may be required to implement a methodology in accordance with the claimed subject matter. Additionally, it should be further appreciated that the methodologies disclosed hereinafter and throughout this specification are capable of being stored on an article of manufacture to facilitate transporting and transferring such methodologies to computers. The term article of manufacture, as used herein, is intended to encompass a computer program accessible from any computer-readable device, carrier, or media.
Referring specifically toFIG. 7, amethodology700 for providing translation strings, such as Unicode strings, to a client device is illustrated. The methodology starts at702, and at704 a determination is made that an electronic device has been communicatively coupled to a client device. For instance, the electronic device can be an industrial automation device, such as a CHMI device, and the client device can be a personal computer, a personal digital assistant, a mobile telephone, and/or the like. The coupling can be a wireless coupling and/or a wirelined coupling. For example, the electronic device can be coupled to the client device by way of a USB connection or other suitable serial connection. Any suitable coupling is contemplated by the inventors, however, and is intended to fall under the scope of the hereto-appended claims.
At706, an operator interface to provide to the client is determined. For instance, an operator interface that allows for the configuration of the electronic device by way of the client device can be desirably provided to the client device. At708, translation strings, such as Unicode strings, are provided to the client device in connection with the operator interface. Provision of the translation strings, which abstract text and/or symbols, enables resources on the client device to be utilized to graphically render text and/or symbols in a desired language. Accordingly, the electronic device need not carry fonts, a web browser, and/or the like for properly displaying text and/or symbols to a user. Rather, resources on the client device can be utilized to undertake the rendering of such text and/or symbols in connection with the operator interface. Themethodology700 then completes at710.
With reference toFIG. 8, amethodology800 for utilizing resources upon a client device to present an operator interface for an industrial automation device to a user is illustrated. Themethodology800 starts at802, and at804 operator interface data is received from an industrial automation device, which can be a controller, a HMI, a CHMI, and/or the like. The operator interface can be received over a USB connection, for example. At806, Unicode strings are received at the client device with respect to the operator interface. The Unicode strings are abstractions of symbols and/or text that are resident within the operator interface. At808, fonts that are retained within a client device are used to graphically render text/symbols in an appropriate language to a user of the industrial automation device. Therefore, rather than requiring the industrial automation device to retain fonts utilized to graphically render text and/or symbols, such fonts can be resident upon the client device. Themethodology800 completes at810.
Turning now toFIG. 9, amethodology900 for selectively providing Unicode strings to a client device that is communicatively coupled to an industrial automation device is illustrated. Themethodology900 starts at902, and at904 a coupling between an industrial automation device and a client device, such as a personal computer, is detected. The detection can occur at the industrial automation device (which can be a CHMI) and/or the client device. Additionally, the coupling can be a USB connection or any other suitable connection. At906, an identity of a user of the industrial automation device is authenticated. Pursuant to an example, the industrial automation device can be configured and/or utilized through employment of a graphical user interface associated with the client device (e.g., a screen). The user can be prompted to provide information such as username, password, personal identification information, answers to security questions, biometric indicia, and/or the like by way of the client device to the industrial automation device. Additionally or alternatively, a unique identifier associated with the client device can be provided to the industrial automation device in connection with authenticating a user's identity.
At908, a role of the user of the industrial automation device is determined, such as whether the user is in management, a line worker, within accounting, within engineering, etc. Contextual information, such as time of day, day of week, states of related industrial devices, and the like can be analyzed together with the client's role to determine an operator interface to provide to the user. For example, an executive would desirably receive a different operator interface than an individual in accounting. Moreover, an individual in engineering might wish to receive different operator interfaces at different times of day. At910, certain Unicode strings are provided to the client device based at least in part upon the determined role. The client device can include fonts that are utilized to graphically render text/symbols abstracted by the Unicode strings. Thus, certain text/symbols are provided to the user of the industrial automation device. Themethodology900 then completes at912.
With reference toFIG. 10, anexample environment1010 for implementing various aspects of the claimed subject matter, including tying data/software to a flash memory card, includes acomputer1012. Thecomputer1012 includes aprocessing unit1014, asystem memory1016, and asystem bus1018. Thesystem bus1018 couples system components including, but not limited to, thesystem memory1016 to theprocessing unit1014. Theprocessing unit1014 can be any of various available processors. Dual microprocessors and other multiprocessor architectures also can be employed as theprocessing unit1014.
Thesystem bus1018 can be any of several types of bus structure(s) including the memory bus or memory controller, a peripheral bus or external bus, and/or a local bus using any variety of available bus architectures including, but not limited to, 8-bit bus, Industrial Standard Architecture (ISA), Micro-Channel Architecture (MSA), Extended ISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB), Peripheral Component Interconnect (PCI), Universal Serial Bus (USB), Advanced Graphics Port (AGP), Personal Computer Memory Card International Association bus (PCMCIA), and Small Computer Systems Interface (SCSI).
Thesystem memory1016 includesvolatile memory1020 andnonvolatile memory1022. The basic input/output system (BIOS), containing the basic routines to transfer information between elements within thecomputer1012, such as during start-up, is stored innonvolatile memory1022. By way of illustration, and not limitation,nonvolatile memory1022 can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable PROM (EEPROM), or flash memory.Volatile memory1020 includes random access memory (RAM), which acts as external cache memory. By way of illustration and not limitation, RAM is available in many forms such as synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), and direct Rambus RAM (DRRAM).
Computer1012 also includes removable/non-removable, volatile/non-volatile computer storage media.FIG. 10 illustrates, for example adisk storage1024.Disk storage1024 includes, but is not limited to, devices like a magnetic disk drive, floppy disk drive, tape drive, Jaz drive, Zip drive, LS-100 drive, flash memory card, or memory stick. In addition,disk storage1024 can include storage media separately or in combination with other storage media including, but not limited to, an optical disk drive such as a compact disk ROM device (CD-ROM), CD recordable drive (CD-R Drive), CD rewritable drive (CD-RW Drive) or a digital versatile disk ROM drive (DVD-ROM). To facilitate connection of thedisk storage devices1024 to thesystem bus1018, a removable or non-removable interface is typically used such asinterface1026.
It is to be appreciated thatFIG. 10 describes software that acts as an intermediary between users and the basic computer resources described insuitable operating environment1010. Such software includes anoperating system1028.Operating system1028, which can be stored ondisk storage1024, acts to control and allocate resources of thecomputer system1012.System applications1030 take advantage of the management of resources byoperating system1028 throughprogram modules1032 andprogram data1034 stored either insystem memory1016 or ondisk storage1024. It is to be appreciated that the subject invention can be implemented with various operating systems or combinations of operating systems.
A user enters commands or information into thecomputer1012 through input device(s)1036.Input devices1036 include, but are not limited to, a pointing device such as a mouse, trackball, stylus, touch pad, keyboard, microphone, joystick, game pad, satellite dish, scanner, TV tuner card, digital camera, digital video camera, web camera, and the like. These and other input devices connect to theprocessing unit1014 through thesystem bus1018 via interface port(s)1038. Interface port(s)1038 include, for example, a serial port, a parallel port, a game port, and a universal serial bus (USB). Output device(s)1040 use some of the same type of ports as input device(s)1036. Thus, for example, a USB port may be used to provide input tocomputer1012, and to output information fromcomputer1012 to anoutput device1040.Output adapter1042 is provided to illustrate that there are someoutput devices1040 like monitors, speakers, and printers, amongother output devices1040, which require special adapters. Theoutput adapters1042 include, by way of illustration and not limitation, video and sound cards that provide a means of connection between theoutput device1040 and thesystem bus1018. It should be noted that other devices and/or systems of devices provide both input and output capabilities such as remote computer(s)1044.
Computer1012 can operate in a networked environment using logical connections to one or more remote computers, such as remote computer(s)1044. The remote computer(s)1044 can be a personal computer, a server, a router, a network PC, a workstation, a microprocessor based appliance, a peer device or other common network node and the like, and typically includes many or all of the elements described relative tocomputer1012. For purposes of brevity, only amemory storage device1046 is illustrated with remote computer(s)1044. Remote computer(s)1044 is logically connected tocomputer1012 through anetwork interface1048 and then physically connected viacommunication connection1050.Network interface1048 encompasses communication networks such as local-area networks (LAN) and wide-area networks (WAN). LAN technologies include Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethemet/IEEE 802.3, Token Ring/IEEE 802.5 and the like. WAN technologies include, but are not limited to, point-to-point links, circuit switching networks like Integrated Services Digital Networks (ISDN) and variations thereon, packet switching networks, and Digital Subscriber Lines (DSL).
Communication connection(s)1050 refers to the hardware/software employed to connect thenetwork interface1048 to thebus1018. Whilecommunication connection1050 is shown for illustrative clarity insidecomputer1012, it can also be external tocomputer1012. The hardware/software necessary for connection to thenetwork interface1048 includes, for exemplary purposes only, internal and external technologies such as, modems including regular telephone grade modems, cable modems and DSL modems, ISDN adapters, and Ethernet cards.
FIG. 11 is a schematic block diagram of a sample-computing environment1100 with which the subject invention can interact. Thesystem1100 includes one or more client(s)1110. The client(s)1110 can be hardware and/or software (e.g., threads, processes, computing devices). Thesystem1100 also includes one or more server(s)1130. The server(s)1130 can also be hardware and/or software (e.g., threads, processes, computing devices). Theservers1130 can house threads to perform transformations by employing the subject invention, for example. One possible communication between aclient1110 and aserver1130 can be in the form of a data packet adapted to be transmitted between two or more computer processes. Thesystem1100 includes acommunication framework1150 that can be employed to facilitate communications between the client(s)1110 and the server(s)1130. The client(s)1110 are operably connected to one or more client data store(s)1160 that can be employed to store information local to the client(s)1110. Similarly, the server(s)1130 are operably connected to one or more server data store(s)1140 that can be employed to store information local to theservers1130.
What has been described above includes examples of the claimed subject matter. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the claimed subject matter, but one of ordinary skill in the art may recognize that many further combinations and permutations are possible. Accordingly, the claimed subject matter is intended to embrace all such alterations, modifications and variations that fall within the spirit and scope of the appended claims. Furthermore, to the extent that the term “includes” is used in either the detailed description or the claims, such term is intended to be inclusive in a manner similar to the term “comprising” as “comprising” is interpreted when employed as a transitional word in a claim.