The subject application relates generally to automation control and visualization, and, more particularly, to sharing of externally defined graphic element (EDGE) definitions using a searchable catalog.
Industrial controllers and their associated control programming are at the heart of modern industrial automation systems. These controllers interact with field devices on the plant floor to carry out controlled processes relating to such objectives as manufacture of a product, material handling, batch processing, waste water treatment, and other such processes. The controllers typically exchange data with the field devices using native hardwired I/O or via a plant network such as Ethernet, Data Highway Plus, Devicenet, or the like. The controller receives any combination of digital or analog signals from the field devices indicating a current state of the devices and their associated processes (e.g., temperature, position, part presence or absence, fluid level, etc.), and executes a control program that performs automated decision-making for the controlled processes based on the received signals. The controller then outputs appropriate digital and/or analog control signaling to the field devices in accordance with the decisions made by the control program. These outputs can include device actuation signals, temperature or position control signals, operational commands to a machining or material handling robot, and the like. The control program can comprise any conceivable type of code used to process input signals read into the controller and to control output signals generated by the controller, including but not limited to ladder logic, sequential function charts, function block diagrams, structured text, or other such platforms.
To facilitate operator interaction with the industrial controllers, industrial control systems often include at least one human-machine interface (HMI) that reads control data from the controller and renders the control data on one or more display screens. The HMI developer can choose to visualize this control data as a numeric value, a graphical animation (e.g., color animation, position animation, visibility animation, etc.), or another suitable display format. The HMI also serves as an interface through which an operator can issue commands (e.g., machine start commands) or write values (e.g., setpoint values) to the controller's program to control or alter the process being automated.
A typical HMI application comprises one or more display interface screens having a number of graphic elements, such as animated device or equipment graphics, numerical display objects, graphical meters, interactive faceplates, and other such display objects. The graphic elements available to an HMI developer are typically limited to those provided in a graphics library bundled with the HMI development software. These pre-packaged graphic elements are necessarily general, multi-purpose elements suitable for a wide range of automation applications. However, the utility of an HMI application can often be improved by inclusion of more customized graphic elements tailored to an end user's particular industry or control application. For example, a graphic element representing a valve used in a waste water treatment application may require different properties or animation characteristics than a valve used in a hydraulic power system. Although end users may submit requests to the HMI software vendor for modified or customized graphic elements, such requested graphic elements typically do not become available until a subsequent revision of the HMI software is released to market, since development of graphic elements is coupled to the development of the HMI software product itself. This can cause an unacceptable time lag between an HMI developer's immediate need for a suitable graphic element during development of a given application and the availability of such an element.
The above-described deficiencies of today's automation control and visualization systems are merely intended to provide an overview of some of the problems of conventional systems, and are not intended to be exhaustive. Other problems with conventional systems and corresponding benefits of the various non-limiting embodiments described herein may become further apparent upon review of the following description.
The following presents a simplified summary in order to provide a basic understanding of some aspects described herein. This summary is not an extensive overview nor is intended to identify key/critical elements or to delineate the scope of the various aspects described herein. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is presented later.
One or more embodiments of the present disclosure provide a searchable catalog of externally defined graphical element (EDGE) definitions. The EDGE catalog can act as a common repository for EDGE definition designers, who can use the catalog to publish new, modified, or extended EDGE definitions for access by HMI application designers. EDGE definition designers can also publish documentation and samples that provide supplemental information about the applicability and use of their published EDGE definitions. The EDGE catalog can organize the EDGE definitions according to a domain-specific hierarchy that allows an HMI developer to browse for a required EDGE definition by industry, application type, element type, etc.
By allowing external EDGE definition developers to publish their customized graphical element definitions to a shared catalog, one or more embodiments of the present innovation can effectively decouple the development of EDGE definitions from the development of an HMI software product, providing HMI developers a wider and more application-specific selection of EDGE definitions during development of their applications. The EDGE definition catalog also allows HMI designers to leverage the experience and expertise of other designers by facilitating reusability of externally defined graphical elements, thereby mitigating duplicated design efforts to meet a particular control or visualization need.
To the accomplishment of the foregoing and related ends, certain illustrative aspects are described herein in connection with the following description and the annexed drawings. These aspects are indicative of various ways which can be practiced, all of which are intended to be covered herein. Other advantages and novel features may become apparent from the following detailed description when considered in conjunction with the drawings.
The subject disclosure 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 thereof. It may be evident, however, that the subject disclosure 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 a description thereof.
As used in this application, the terms “component,” “system,” “platform,” “layer,” “controller,” “terminal,” “station,” “node,” “interface” are intended to refer to a computer-related entity or an entity related to, or that is part of, an operational apparatus with one or more specific functionalities, wherein such entities can be either hardware, a combination of hardware and software, software, or software in execution. For example, a component can be, but is not limited to being, a process running on a processor, a processor, a hard disk drive, multiple storage drives (of optical or magnetic storage medium) including affixed (e.g., screwed or bolted) or removably affixed solid-state storage drives; an object; an executable; a thread of execution; a computer-executable program, and/or a computer. By way of illustration, both an application running on a server and the server can be a component. One or more components can reside within a process and/or thread of execution, and a component can be localized on one computer and/or distributed between two or more computers. Also, components as described herein can execute from various computer readable storage media having various data structures stored thereon. The components may communicate via local and/or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems via the signal). As another example, a component can be an apparatus with specific functionality provided by mechanical parts operated by electric or electronic circuitry which is operated by a software or a firmware application executed by a processor, wherein the processor can be internal or external to the apparatus and executes at least a part of the software or firmware application. As yet another example, a component can be an apparatus that provides specific functionality through electronic components without mechanical parts, the electronic components can include a processor therein to execute software or firmware that provides at least in part the functionality of the electronic components. As further yet another example, interface(s) can include input/output (I/O) components as well as associated processor, application, or Application Programming Interface (API) components. While the foregoing examples are directed to aspects of a component, the exemplified aspects or features also apply to a system, platform, interface, layer, controller, terminal, and the like.
As used herein, the terms “to infer” and “inference” refer 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.
In addition, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless specified otherwise, or clear from the context, the phrase “X employs A or B” is intended to mean any of the natural inclusive permutations. That is, the phrase “X employs A or B” is satisfied by any of the following instances: X employs A; X employs B; or X employs both A and B. In addition, the articles “a” and “an” as used in this application and the appended claims should generally be construed to mean “one or more” unless specified otherwise or clear from the context to be directed to a singular form.
Furthermore, the term “set” as employed herein excludes the empty set; e.g., the set with no elements therein. Thus, a “set” in the subject disclosure includes one or more elements or entities. As an illustration, a set of controllers includes one or more controllers; a set of data resources includes one or more data resources; etc. Likewise, the term “group” as utilized herein refers to a collection of one or more entities; e.g., a group of nodes refers to one or more nodes.
Various aspects or features will be presented in terms of systems that may include a number of devices, components, modules, and the like. It is to be understood and appreciated that the various systems may include additional devices, components, modules, etc. and/or may not include all of the devices, components, modules etc. discussed in connection with the figures. A combination of these approaches also can be used.
As illustrated in one or more embodiments herein, a system through which HMI developers can publish and share externally defined graphic elements in a manner that facilitates user-friendly search and retrieval according to the needs of a given industrial application is desirable. To provide context for aspects of the present innovation,
Control program 128 can comprise any conceivable type of code used to process input signals read into the controller 104 and to control output signals from the controller, including but not limited to ladder logic, sequential function charts, function block diagrams, or structured text. Control program 128 can include a number of control data structures 130 that perform data handling and instruction processing functions within the program. Exemplary data structures can include control instructions and memory tags of various data types. During program development, the control instructions can be selected from a set of control instructions provided with the programming platform used to develop the program. These control instructions can include generalized instructions (e.g. timer blocks, counters, etc.) and industry-specific control instructions (e.g., PID instructions for process control applications, pulse multiplier instructions for motor drive control applications, axis control instructions for motion control applications, etc.). Memory tags are references to a data item or memory location within the controller (e.g., an input value, an output value, or an internal data register). A memory tag can be configured to be of a specified data type, such as binary, floating point, integer, double integer, string, etc. Control program 128 and its associated control data structures 130 serve to regulate controlled system 126 via the I/O interfaces 118.
HMI application 106 running on operator terminal 102 facilitates operator interaction with controller 104 via network 104, visualizing control data associated with the controlled system 126 and allowing an operator to submit control inputs into the system. HMI application 106 can comprise one or more display screens 108, each display screen containing static and/or dynamic content that conveys a current state of the controlled system. Display screen content can include, for example, graphic elements 1121-112N, where N is an integer. Graphic elements 1121-112N can comprise dynamic display objects configured to change visual state in accord with control data read from the controller 104. Such graphic elements can include numerical display objects that render a value of a control register read from the controller, bar or line graphs that display a trend of one or more data registers over time, graphical icons representing of field devices or equipment that alter their appearance to convey a current state of the devices, or other such elements. One or more graphic elements 1121-112N can also encode functionality that allows an operator to enter a value to be written to a control register within the controller 104 (e.g., a setpoint value) or to set/reset a bit within the controller (e.g. issue a start or stop command to a device via the control program). Operators can interact with the display screens 108 and their respective graphic elements via the operator terminal's interface devices 114, which can include one or more of a mouse, a keyboard, a touch screen, voice recognition receiver, or other suitable interface devices
Linkages between a graphic element and a particular address or register in the controller can be configured using HMI mappings 110 that define associations between graphic elements and controller addresses. These HMI mappings can be configured within the graphic elements themselves during development of the HMI application. It is to be appreciated that a multi-function graphic element can be mapped to multiple controller addresses corresponding to different functional aspects of the element. For example, a valve control graphic can include both an OPEN pushbutton portion linked to a start bit in control program 128, and a state color animation linked to a corresponding “valve open” state register in the control program.
Typically, the graphic elements available to a developer of an HMI application are limited to a library of graphics bundled with the HMI development product used to create the application. Although such libraries typically include a broad range of graphic elements suitable for many diverse automation applications, the utility of an HMI application can often be improved through the use of more specialized graphic elements that are customized to more closely conform to the requirements of a specific control application. For example, an animated valve graphic used in a process control HMI may require different visual properties or control linkages than a valve graphic used in an HMI for a hydraulic power system. Moreover, the idiosyncrasies of an end user's particular automation system or equipment in use may require an even greater degree of graphic element customization. Even if an HMI software product supplier has a customer support infrastructure in place through which users of their product can request specialized graphic elements, the user must wait until the supplier develops the requested graphic, which then is only made available when the next scheduled version of the software product is released to market. That is, the release of new graphic elements is coupled to the release cycle of the development product itself.
One or more aspects of the present disclosure mitigate these inefficiencies by providing a means for externally defined graphical element (EDGE) definitions to be easily shared between end users independently of an HMI software product's release cycle. An EDGE definition can comprise new or modified graphic elements created by end users or other designers not necessarily affiliated with the manufacturer of the HMI software product (thus, externally defined). Advantageously, EDGE definitions can embody end users' expert knowledge of their own—often highly specialized and domain-specific—automation systems. The EDGE definition catalog described herein can provide tools that allow such EDGE definitions to be shared with other end users, thereby mitigating unnecessary duplication of development work.
HMI developers 206 wishing to locate and retrieve an EDGE definition can interact with the catalog through a search client, which can support keyword-based querying of the database 208 and/or a browsable interface that allows the developer to navigate the catalog hierarchy. Both keyword querying and browsed searching permit searching for a given EDGE definition based on such criteria as applicable industry (e.g., automotive, pharmaceutical, waste water treatment, etc.), type of control project (e.g., motion control, batch processing, material handling, etc.), type of graphic required (e.g., equipment graphic, telemetry display, etc.), or any other suitable pre-defined or user-defined category.
In one or more embodiments, EDGE definition catalog 302 can reside on a common network 322. Network 322 can be a publicly accessible network such as the Internet, a limited-access local network such as an office or plant network, or any other suitable communications architecture that affords access to the catalog 302 by graphic element developers and HMI developers. Catalog 302 can include an interface component 306 that receives and processes publishing, search, and retrieval requests. Such requests can originate from a developer workstation, such as EDGE developer workstation 318 or HMI developer workstation 322. For example, a graphic element developer 326 can interact with the EDGE definition catalog via a catalog client 320, which is used by EDGE developer workstation 318 to exchange data with the EDGE definition catalog 302. Similarly, HMI developer 328 interacts with the catalog 302 via catalog client 324. According to one or more embodiments, catalog clients 320 and 324 can be served to the respective workstations 318 and 322 by interface component 302. Such embodiments can include implementations whereby the EDGE definition catalog resides on or is connected to a web server connected to the Internet, and interface component 306 is configured to serve a web client to remote workstations when such workstations are directed to the uniform resource locator (URL) of the web server. Catalog clients 320 and 324 can also comprise designer desktops or other locally installed clients that can executed on the respective workstations to establish a connection to the interface component and to invoke the interface on the workstation desktop.
EDGE definition catalog can include a publish component 304 configured to receive submitted EDGE definitions (e.g., from catalog client 320 on EDGE developer workstation 318) and associated tag data, samples, and documentation, and to store the received data in the EDGE definition database 314. EDGE definitions 316 can be organized in database 314 in accordance with a hierarchy of industry-specific categories, and publish component 304 can determine an appropriate storage location within the hierarchy for a submitted EDGE definition based on tag data or metadata associated with the definition.
If a request received by interface component 306 is an instruction to locate and/or retrieve a stored EDGE definition (e.g., from catalog client 324 on HMI developer workstation 322), a query component 310 or a browsing component 312 can identify the subset of EDGE definitions 316 meeting the criteria submitted in the instruction, as will be discussed in more detail infra. When the subset has been identified, retrieval component 308 can retrieve the identified subset of EDGE definitions, which can then be returned to the source of the request via interface component 306.
Although EDGE definition catalog 302 is depicted in
When the new or modified EDGE definition 422 is ready for submission to EDGE definition catalog 404, the developer can invoke catalog client 406. As discussed supra, catalog client 406 can be a remote client (e.g., a web client) served by interface component 412 of the EDGE definition catalog, or a locally executed client on workstation 402 that can be invoked and communicatively linked to catalog 404 over access network(s) 410. For configurations in which EDGE definition catalog 404 resides at a remote location with respect to EDGE developer workstation, access network(s) 410 can be, for example, the Internet, a local office or plant network, or any combination thereof. Access network(s) can comprise any appropriate combination of wireless and hard-wired connection media. It is to be appreciated that, in some embodiments, EDGE definition catalog can also reside on the EDGE developer workstation itself, either integrated as part of the EDGE development platform 408 or as a separate installation.
Catalog client 406 can include functionality that allows a designer to associated metadata with the EDGE definition 422 that can subsequently be used by the catalog to classify the EDGE definition within an industry-specific storage hierarchy, as will be discussed in more details infra. Catalog client 406 can also include functionality that allows the designer to submit documentation for the EDGE definition 422 to catalog 404. When the designer has prepared the EDGE definition for submission and associated all desired metadata and documentation with the definition, catalog client 406 can be instructed to send an EDGE definition submission 424 to the EDGE definition catalog 404 via interface component 412.
An exemplary EDGE definition submission is depicted in
Industry: The industry or business in which the EDGE definition is intended to be used. Exemplary values for the Industry field include “automotive,” “pharmaceutical,” “waste water treatment,” “power supply,” and “food and drug.”
Category and sub-categories: Hierarchical classification tiers used to determine how the EDGE definition is to be classified within the catalog's industry-based hierarchy. The categories and sub-categories can relate to the type of industrial process in which the EDGE definition is applicable, or to a category of display object to which the EDGE definition belongs. Exemplary categories can include batch processing, material handling, motion control, vision, and die casting, while exemplary sub-categories can include equipment graphics, telemetry displays, and data entry objects.
Developer, Creation Date, Description, Revision: Name of the individual or organization submitting the EDGE definition, date of creation, functional description, and revision number of the EDGE definition.
Antecedent Definitions: EDGE definition(s) that served as a basis for the definition being submitted. This field is applicable where the EDGE definition is a modification or customization of a pre-existing definition stored in the catalog, and allows revision lineages to be tracked even if a definition has been modified by multiple developers to suit different automation scenarios. Associated data fields can provide revision notes explaining the modifications.
Additional Search Terms: Search terms and keywords not included in the other metadata fields that the designer wishes to associate with the EDGE definition to ensure the definition is identified in relevant catalog searches.
Platform Compatibility: List of HMI development environments or software products compatible with the EDGE definition.
It is to be appreciated that the fields depicted in exemplary metadata tag 506 are not intended to be exclusive, nor does the metadata tag require all data fields depicted in
Additionally, read-write permissions for the respective fields can vary in accordance with their functions. For example, the Creation Date field can be a read-only field that is automatically set to the date when the EDGE definition was last modified. Other fields, such as the Additional Search Terms field, can have full read-write attributes, thereby allowing a user to enter data freely. Still other data fields can be populated by selecting an entry from a drop-down menu or other list associated with the data field. In one or more embodiments, the Industry, Category, and/or Sub-category fields can incorporate such drop-down menus, which can be populated by the catalog client to correspond with the Industry, Categories, and Sub-categories comprising the storage hierarchy of the catalog database 418.
Returning to
Two exemplary Industry classifications are depicted in FIG. 6—Waste Water 6021 and Process Control 6022. Each of these Industry classifications are shown as having at least two Category classifications associated therewith—Equipment and Telemetry. The Equipment classifications can be reserved for graphic elements that represent controlled or monitored devices or equipment, such as valves, pumps, motors, drives, hoppers, thermostats, and the like. As can be seen in exemplary hierarchy 600, the Waste Water Equipment classification 6041 includes at least two Sub-Categories—Valves 6061 and Pumps 6062—while the Process Control Equipment classification 6043 includes at least a Motors 6065 Sub-Category. The Telemetry classifications can include EDGE definitions representing display objects used to render state or measurement data provided by telemetry devices in the field (e.g., animated meters or gauges, numeric display objects, etc.). In example hierarchy 600, the Waste Water telemetry classification 6042 can include at least sub-categories for Flow Meters 6063 and Pressure Meters 6064, while the Process Control Telemetry classification 6044 can include at least a Temperature Gauges sub-category 6066. EDGE definition groups 6081 - 6086 are organized within hierarchy 600 such that each group is associated with a unique pathway through the hierarchy. For example, EDGE definition group 6081 includes stored EDGE definitions representing valves for use in waste water treatment systems. Since some EDGE definitions may be useful in multiple types of industrial applications, a given EDGE definitions may be associated with multiple paths in the hierarchy 600.
It is to be appreciated that the hierarchical format depicted in
Returning to
In one or more embodiments, location and retrieval of an EDGE definition can be effected by submitting keyword-based search criteria 714 to the catalog via client 708 across access network(s) 718. As with the definition publishing example depicted in
Search criteria 714 can comprise one or more keywords entered by the user via the catalog client 708. Typically, a user will submit keywords that identify one or more of an industrial domain, a type of automation application, a device or piece of equipment, an industry standard, or any other terms that can be used by the catalog to identify a desired subset of stored EDGE definitions 732. In one or more embodiments, a subset of the search criteria 714 can also be inferred by the catalog client 708 based in part on properties of the HMI application being developed (or running) within HMI platform 706, or the controller program for which the HMI application acts as an interface. For example, catalog client 708 can poll the HMI application and identify tags, function blocks, graphic elements, etc. within the application that can be leveraged to infer one or more of the industrial domain in which the HMI is intended to be used, equipment or devices in use within the controlled system, or other such characteristics of the HMI application. For example, if catalog client 708 polls the HMI application and identifies a graphic element or function block most commonly used in motion control interfaces, the client 708 can infer that the HMI is to be used as an operator interface for a motion control system. Accordingly, the client 708 can refine the search criteria 714 to prioritize (or retrieve exclusively) EDGE definitions that are tailored for motion control applications. If the HMI workstation is communicatively coupled to a controller, catalog client can likewise poll the controller program for aspects (instruction blocks, rung comments, subroutine titles, tags, etc.) that can be used to infer the type of control application being developed, and refine the search criteria 714 accordingly.
Moreover, one or more embodiments of the catalog client 708 can generate a subset of the search criteria based in part on a graphic element submitted to the client. Such embodiments afford a user the ability to search for EDGE definitions that are structurally or functionally similar to a submitted graphic object or EDGE definition. In such embodiments, the catalog client can parse the internal structure of the submitted graphic object to ascertain the object's structure, interconnections, inputs, outputs, visual appearance, etc., and generate search criteria based on this analysis designed to identify EDGE definitions in the catalog that are similar in function and/or appearance to the submitted graphic object.
When search criteria 714 is submitted to the catalog 704, interface component 720 receives the search criteria 714 and passes the criteria to a query component 724, which identifies a subset of stored EDGE definitions 732 satisfying the submitted criteria. To determine whether a given EDGE definition meets the search criteria 714, query component can cross-reference the search terms contained within the search criteria against the given definition's metadata tags, hierarchy classifications, inherent properties of the EDGE definition itself (e.g., parameters, inputs and outputs, data types, animation types, etc.), or other defined or inherent properties of the EDGE definition. Moreover, one or more embodiments of query component 724 can support “approximate match” searching, such that exact matches between the submitted search criteria 714 and a potentially relevant EDGE definition's metadata or properties is not necessary in order for the EDGE definition to be selected for inclusion in the retrieved subset. In this regard, any suitable “fuzzy search” methodology can be employed to ensure that useful EDGE definitions are returned even in the absence of an exact match. In one exemplary approach, upon receipt of search criteria 714, query component 724 can calculate one or more figures of merit for each EDGE definition 732 in database 730 relative to the search criteria. Each definition's figure of merit is a relative measure of how relevant the given definition is likely to be to the search criteria. For example, if a search criterion stipulates that a requested EDGE definition is to be used in an automotive HMI application, the query component 724 can generate an “industry” figure of merit for each EDGE definition in the database indicating a relative applicability to the automotive industry. EDGE definitions whose metadata explicitly specifies “automotive” as an applicable industry will be given the highest figure of merit. EDGE definitions whose industry metadata specifies a different industry but one having similarities to the automotive industry (e.g., commonly employs similar equipment or processes, often produces materials or products used by the automotive industry, etc.) will be given a comparatively high (though not the highest) figure of merit with respect to definitions designed for a non-related industry. When all figures of merit have been identified, query component 724 can identify the subset of EDGE definitions 732 having a figure of merit above a threshold value as being sufficiently relevant to the search criteria. According to one or more embodiments, multiple figures of merit can be calculated for each EDGE definition for a given set of search criteria, where each figure of merit relates to a particular search dimension or aspect (e.g., industry, category, desired functionality, etc.). In such embodiments, a composite figure of merit can be computer based on the individual figures of merit for the various search dimensions, and the relevant subset of EDGE definitions can be selected by the query component based on this composite value.
After the subset of relevant EDGE definitions has been identified, query component 724 can instruct retrieval component 728 to retrieve the identified definitions from database 730. Retrieval component 728 can then pass the identified subset to the interface component 720, which can return the retrieved EDGE definitions 716 to the catalog client 708 for selection by the HMI developer. The HMI developer can select a desired EDGE definition 710 from the returned subset, and import the selected EDGE definition into the HMI development platform 706 for use in an HMI project.
Catalog client 708 can also support browsed searching of the catalog database 730 by allowing the designer to navigate the classification hierarchy until a desired EDGE definition is found. To this end, client 708 can provide a browsable interface that allows the user to select classifications corresponding to the nodes of the database hierarchy (e.g., hierarchy 600 of
According to one or more embodiments, HMI runtime/development platform 802 can include an acquisition component 812. Acquisition component 812 can read one or more control data structures 838 from controller 832. Control data structures extracted by the acquisition component can include, but are not limited to, controller tags and their associated data types (e.g., real, integer, binary, double, string, etc.), instructions and/or function blocks used in the control program, and any metadata associated with the various program elements. Acquisition component 812 can also read, as control data structures, configuration information for the I/O modules 836 used to exchange digital and analog signaling between the control program 834 and the field devices comprising the controlled system.
Upon reading the one or more control data structures from control program 834, acquisition component 812 can provide the control data structures to association component 814, which can link the control data structures to respective graphic elements or graphic element types according to a defined graphics mapping associated with HMI application 806.
Graphics mapping 904 can further allow a user to defined usage-based associations between control data structures and display object types. That is, an association linkage between a control data structure and one or more display object types can be conditional on how the control data structure is used in control program 834 (e.g., in which subroutine or control module of the control program the control structure is located). As an example of such a mapping, a user can specify that controller tags having a REAL data type and located in a “Die Cast” subroutine are to be associated with bar graph display objects, while similar tags located in a “Sand Casting” subroutine are to be associated with line graph display objects.
Association component 908 can receive a controller data structure 910 read by the acquisition component and cross-reference this controller data structure with the graphics mapping 904 associated with the HMI application 902. Using this information, association component 908 can generate EDGE definition catalog search criteria 906 for the control data structure based on the mapping of preferred display object types. That is, for a given controller data structure read from a control program, association component can generate search criteria for locating one or more suitable EDGE definitions that can be imported into HMI application 806 for visualization of and/or operator interaction with the controller data structure.
Returning now to
It is to be appreciated that the EDGE definition search and retrieval functions described above in connection with the embodiments of
Although acquisition component 812 and association component 814 are depicted in
One or more embodiments of the subject innovation can also allow users to subscribe to receive notifications of updates or revisions to selected EDGE definitions in the catalog, as illustrated in
EDGE definition catalog 1002 can further include a notification component 1008 that works in conjunction with subscription component 1010. Notification component 1008 monitors database 1004, and in particular tracks revisions made to individual EDGE definitions stored therein. For instance, if a new EDGE definition is published to the catalog (e.g., using the techniques described above in connection with
Upon determining that the newly published EDGE definition is a revision of a pre-existing definition, notification component 1008 can reference subscribers database 1016 to determine if any clients are subscribed to receive notifications relating to the pre-existing definition which served as an antecedent for the new definition. If so, notification component 1008 can send a notification to the subset of clients 10141-1014N on the subscription list that a new revision of the pre-existing EDGE definition is available for retrieval from the catalog. Such notifications can be transmitted by the notification component to each client's preferred contact destination as defined in the subscriptions. Notification component 1008 can transmit the notifications to the appropriate users according to each user's preferred notification method as indicated in the respective subscriptions, including, but not limited to, email, text message, voice message, notification via the catalog client, etc.
The EDGE definition catalog of the present disclosure provides a means for HMI designers to share their industry- and application-specific graphic element designs with other designers, thereby mitigating duplication of design efforts and allowing HMI developers to easily leverage the experience and expertise of other developers. While some EDGE definition developers may wish to publish their graphic element definitions for free distribution to other system designers, it is understood that other EDGE definition developers may wish to charge a license fee for the download and use of their graphic element definitions. Accordingly, one or more embodiments of the subject EDGE definition catalog can include a licensing component that determines whether a requested EDGE definition is associated with a license requirement as illustrated in
If a license requirement is identified, a payment component 1110 can send a prompt to the catalog client from which the request was received instructing the user that a payment must be submitted before the EDGE definition can be retrieved for use. The catalog client can provide an interface that allows the user to submit the payment to the catalog 1102 electronically (e.g., by providing bank account routing information, credit or debit card information, electronic payment transfer information, or any other suitable payment method). Payment component 1110 can receive the electronic payment information and route the payment information to the necessary financial institutions (determined based on the financial information provided by the EDGE definition publisher via the metadata tag). When payment has been confirmed, retrieval component 1118 can retrieve the requested EDGE definition and return the definition to the client.
At 1206, classification information contained within the metadata read at step 1204 is parsed. This classification information can comprise the aforementioned industrial domain, specified categories and sub-categories, antecedent EDGE definition, or any other metadata that can be used to determine an appropriate storage classification for the submitted definition. At 1208, the EDGE definition is published in a searchable classification hierarchy within the catalog in accordance with the hierarchical classification information. If the parsed classification information corresponds to a classification pathway already existent in the hierarchy, the EDGE definition can be classified such to be associated with the pathway indicated by the classification information. Alternatively, if the parsed classification information includes a new classification, the hierarchy can be expanded to include a new pathway defined by the metadata's classification information.
At 1404, at least one of an industrial domain or a category of control application can be inferred based at least on the characteristic elements identified in step 1402. In one or more embodiments, this inference can also be performed by the catalog client. For example, if an identified graphic element (or a configuration thereof) is typically employed in connection with vision systems, it can be inferred that the HMI application is an operator interface for a vision system. Likewise, identification of a function block commonly associated with motion control can cause an inference to be made that the HMI application is used in a motion control system.
At 1406, EDGE definition search criteria is generated or refined in accordance with the inferred industrial domain or control application. For example, the search criteria can be constructed to prioritize (or retrieve exclusively) EDGE definitions that are applicable or specially tailored to the inferred industrial domain or category of control application. At 1408, the customized search criteria are submitted to a local or remote EDGE definition catalog to facilitate location and retrieval of a suitable set of candidate EDGE definitions satisfying the search criteria.
At 1506, EDGE definition search criteria can be automatically generated for the control data structure based on the comparison made in step 1504. For example, if the control data structure is a controller instruction related to PID control, and the graphics mapping stipulates that such instructions are to be visualized using a graphical faceplate of a certain format and color animation standard, the EDGE definition search criteria can be generated to prioritize (or retrieve exclusively) EDGE definitions substantially matching the faceplate type specified in the mapping. At 1508, the generated EDGE definition criteria can be submitted to a local or remote EDGE definition catalog that stores externally defined graphic element definitions in accordance with a hierarchical classification scheme, as described above.
At 1510, a set of EDGE definitions satisfying the search criteria can be received from the catalog. At 1512, a selected EDGE definition from the set can be integrated into the HMI application used to visualize the process regulated by the control program. The EDGE definition can be integrated while the HMI application is in either development mode (prior to deployment) or runtime mode (after deployment).
At 1608, a determination is made regarding whether a revised version of the selected EDGE definition has been published to the catalog. Such a determination can be made based at least in part on metadata submitted with the newly published EDGE definition, which can include an antecedent definition identifier and a revision number. This metadata can be used to track the development lineage of a given EDGE definition even if multiple developers have implemented modifications to the definition at various times. If no revision is detected at step 1608, the flow returns to repeat step 1608 and continue monitoring for revisions. If publication of a revised version is detected, a notification is transmitted to the client at 1610. The notification can be sent to the client in accordance with the preferred contact method and format identified in the initial request.
Embodiments, systems, and components described herein, as well as industrial control systems and industrial automation environments in which various aspects set forth in the subject specification can be carried out, can include computer or network components such as servers, clients, programmable logic controllers (PLCs), communications modules, mobile computers, wireless components, control components and so forth which are capable of interacting across a network. Computers and servers include one or more processors—electronic integrated circuits that perform logic operations employing electric signals—configured to execute instructions stored in media such as random access memory (RAM), read only memory (ROM), a hard drives, as well as removable memory devices, which can include memory sticks, memory cards, flash drives, external hard drives, and so on.
Similarly, the term PLC as used herein can include functionality that can be shared across multiple components, systems, and/or networks. As an example, one or more PLCs can communicate and cooperate with various network devices across the network. This can include substantially any type of control, communications module, computer, Input/Output (I/O) device, sensor, actuator, and human machine interface (HMI) that communicate via the network, which includes control, automation, and/or public networks. The PLC can also communicate to and control various other devices such as I/O modules including analog, digital, programmed/intelligent I/O modules, other programmable controllers, communications modules, sensors, actuators, output devices, and the like.
The network can include public networks such as the internet, intranets, and automation networks such as control and information protocol (CIP) networks including DeviceNet and ControlNet. Other networks include Ethernet, DH/DH+, Remote I/O, Fieldbus, Modbus, Profibus, CAN, wireless networks, serial protocols, and so forth. In addition, the network devices can include various possibilities (hardware and/or software components). These include components such as switches with virtual local area network (VLAN) capability, LANs, WANs, proxies, gateways, routers, firewalls, virtual private network (VPN) devices, servers, clients, computers, configuration tools, monitoring tools, and/or other devices.
With reference to
The system bus 1718 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).
The system memory 1716 includes volatile memory 1720 and nonvolatile memory 1722. The basic input/output system (BIOS), containing the basic routines to transfer information between elements within the computer 1712, such as during start-up, is stored in nonvolatile memory 1722. By way of illustration, and not limitation, nonvolatile memory 1722 can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable PROM (EEPROM), or flash memory. Volatile memory 1720 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).
Computer 1712 also includes removable/non-removable, volatile/non-volatile computer storage media.
It is to be appreciated that
A user enters commands or information into the computer 1712 through input device(s) 1736. Input devices 1736 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 the processing unit 1714 through the system bus 1718 via interface port(s) 1738. Interface port(s) 1738 include, for example, a serial port, a parallel port, a game port, and a universal serial bus (USB). Output device(s) 1740 use some of the same type of ports as input device(s) 1736. Thus, for example, a USB port may be used to provide input to computer 1712, and to output information from computer 1712 to an output device 1740. Output adapter 1742 is provided to illustrate that there are some output devices 1740 like monitors, speakers, and printers, among other output devices 1740, which require special adapters. The output adapters 1742 include, by way of illustration and not limitation, video and sound cards that provide a means of connection between the output device 1740 and the system bus 1718. It should be noted that other devices and/or systems of devices provide both input and output capabilities such as remote computer(s) 1744.
Computer 1712 can operate in a networked environment using logical connections to one or more remote computers, such as remote computer(s) 1744. The remote computer(s) 1744 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 to computer 1712. For purposes of brevity, only a memory storage device 1746 is illustrated with remote computer(s) 1744. Remote computer(s) 1744 is logically connected to computer 1712 through a network interface 1748 and then physically connected via communication connection 1750. Network interface 1748 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), Ethernet/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) 1750 refers to the hardware/software employed to connect the network interface 1748 to the bus 1718. While communication connection 1750 is shown for illustrative clarity inside computer 1712, it can also be external to computer 1712. The hardware/software necessary for connection to the network interface 1748 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.
What has been described above includes examples of the subject innovation. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the disclosed subject matter, but one of ordinary skill in the art may recognize that many further combinations and permutations of the subject innovation are possible. Accordingly, the disclosed subject matter is intended to embrace all such alterations, modifications, and variations that fall within the spirit and scope of the appended claims.
In particular and in regard to the various functions performed by the above described components, devices, circuits, systems and the like, the terms (including a reference to a “means”) used to describe such components are intended to correspond, unless otherwise indicated, to any component which performs the specified function of the described component (e.g., a functional equivalent), even though not structurally equivalent to the disclosed structure, which performs the function in the herein illustrated exemplary aspects of the disclosed subject matter. In this regard, it will also be recognized that the disclosed subject matter includes a system as well as a computer-readable medium having computer-executable instructions for performing the acts and/or events of the various methods of the disclosed subject matter.
In addition, while a particular feature of the disclosed subject matter may have been disclosed with respect to only one of several implementations, such feature may be combined with one or more other features of the other implementations as may be desired and advantageous for any given or particular application. Furthermore, to the extent that the terms “includes,” and “including” and variants thereof are used in either the detailed description or the claims, these terms are intended to be inclusive in a manner similar to the term “comprising.”
In this application, the word “exemplary” is used to mean serving as an example, instance, or illustration. Any aspect or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the word exemplary is intended to present concepts in a concrete fashion.
Various aspects or features described herein may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques. 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 . . . ), optical disks [e.g., compact disk (CD), digital versatile disk (DVD) . . . ], smart cards, and flash memory devices (e.g., card, stick, key drive . . . ).