The present invention relates generally to the semantic contextualization of automation system data in a programmable logic controller. The disclosed technology may be applied to, for example, various automated production environments where programmable controllers are used.
A programmable logic controller (PLC) is a specialized computer control system configured to execute software which continuously gathers data on the state of input devices to control the state of output devices. A PLC typically includes three major components: a processor (which may include volatile memory), volatile memory comprising an application program, and one or more input/output (I/O) ports for connecting to other devices in the automation system. PLCs are utilized in various industrial settings to control automation systems. Automation systems typically generate a large amount of data in their daily operations. This data may include, for example, sensor data, actuator and control program parameters, and information associated with service activities.
Due to the ever increasing number of sensors and actuators installed in today's automation systems, the amount of data describing the underlying technical processes and control is growing. This data includes, for example, control input variables (e.g., sensors) and output variables (e.g., actuators), their historical data, as well as a description of the state of the control process. There is a huge potential to utilize this data to gain additional insights into the evolution and effectiveness of the processes and this data can be used for enhancements and optimization of the process, for example, through data analytics methods. However, is extremely difficult to make sense of the (potentially) available data if the context of data generation is not known. Contextual information that may be useful in understanding the data may include, for example, the location and specification of the sensor that generated the data, the function of the actuator the data refers to, the causal dependence of several related data items, an identifier of the product or batch that was processed when the data was generated, the description of the maintenance task that was executed shortly before the data is generated, the specific part of the control program that the data refers to, etc.
In conventional systems, contextual knowledge is statically defined by the application engineer during development of data analytics algorithms. That is, the application engineer codes analytics algorithms based on his or her knowledge of the contextual data that is available in the system. However, these conventional systems have several drawbacks. As an initial matter, at design and installation time, there is a huge effort required to specify what information should be contextualized, how it should be captured, and how it should be formalized. Moreover, the resulting analytics applications using the contextualized data are specific to a particular customer and/or domain; there is no standardization such that these applications may be reused without additional customization. Additionally, changes in the underlying automation infrastructure (e.g., adding a new sensor) require manual effort to adapt existing applications. Furthermore, even where contextual data is available, conventional systems typically do not make it available in a format that is easily provided to service providers and other third parties.
Embodiments of the present invention address and overcome one or more of the above shortcomings and drawbacks, by providing methods, systems, and apparatuses related to adding context to data using semantic models expressed in a standardized, formal, domain-independent language directly when data is generated. At this point, the context is still known and made persistent for later analyses. This technology is particularly well-suited for, but not limited to, various industrial automation settings.
According to some embodiments of the present invention, a method of contextualizing automation system data in an intelligent programmable logic controller (“Intelligent PLC”) includes the controller collecting automation system data and creating a structured representation of the automation system data. The Intelligent PLC selects a semantic context model from a plurality of available semantic context models based on relevance to the structured representation of the automation system data and creates semantically contextualized data using the semantic context model and the structured representation of the automation system data. The semantically contextualized data is stored by the Intelligent PLC on a non-volatile computer-readable storage medium operably coupled to the Intelligent PLC.
The characteristics of the semantically contextualized data used in the aforementioned method may vary according to different embodiments of the present invention. For example in some embodiments, the semantically contextualized data is created using the semantic context model and the structured representation of the automation system data by generating the semantically contextualized data as instances of an ontology associated by the semantic context model. In some embodiments, the semantically contextualized data is expressed using Resource Description Framework or Web Ontology Language (OWL). The semantically contextualized data in these embodiments may also be stored in a triplestore located on the non-volatile computer-readable storage medium operably coupled to the Intelligent PLC.
Furthermore, the aforementioned method may be enhanced and/or refined with additional features in some embodiments of the present invention. For example, in one embodiment, a sensor associated with generating the automation system data is identified, along with an ontological entity in the semantic context model related to the sensor. The semantically contextualized data then comprises an indication of a mapping between the sensor and the ontological entity. In some embodiments, the Intelligent PLC updates an active window of an event engine based on the automation system data. The event engine may then generate new events based on data in the active window. When the Intelligent PLC detects new events, it may automatically retrieve stored contextualized data associated with the new event from the non-volatile computer-readable storage medium operably coupled to the Intelligent PLC. Then, the Intelligent PLC may write the new event and the stored contextualized data to an event table. In some embodiments, the Intelligent PLC is configured to receive and respond to queries for data. For example, in one embodiment, the Intelligent PLC receives a request for contextualized data stored in the non-volatile computer-readable storage medium, formulates a query based on the request and the semantic context model, and retrieves response data from the non-volatile computer-readable storage medium based on the query.
The aforementioned method may also be applied to articles of manufacture. For example, in some embodiments of the present invention, an article of manufacture for contextualizing automation system data in an Intelligent PLC, includes a non-transitory, tangible computer-readable medium holding computer-executable instructions for performing the aforementioned method, with/or without the additional features set out above.
In some embodiments, an Intelligent PLC may be configured with components for contextualizing automation system data. For example, in one embodiment, an Intelligent PLC includes a processor configured to execute according to a scan cycle, a volatile computer-readable storage medium comprising a process image area, a non-volatile computer-readable storage medium; and controller components executed by the processor according to the scan cycle. The controller components include a data transfer component, a contextualization component, and a historian component. The data transfer component is configured to update the process image area during each scan cycle with contents comprising automation system data. The contextualization component is configured to create a structured representation of the automation system data, select a semantic context model from available semantic context models based on relevance to the structured representation of the automation system data, and create semantically contextualized data using the semantic context model and the structured representation of the automation system data. The historian component is configured to store the semantically contextualized data on the non-volatile computer-readable storage medium. These components may be configured with additional features, similar to those discussed above with respect to the aforementioned method of contextualizing data.
Additional features and advantages of the invention will be made apparent from the following detailed description of illustrative embodiments that proceeds with reference to the accompanying drawings.
The foregoing and other aspects of the present invention are best understood from the following detailed description when read in connection with the accompanying drawings. For the purpose of illustrating the invention, there are shown in the drawings embodiments that are presently preferred, it being understood, however, that the invention is not limited to the specific instrumentalities disclosed. Included in the drawings are the following Figures:
Systems, methods, and apparatuses are described herein which relate generally to the use of standardized, formal modeling languages (e.g., Semantic Web standards such as RDF(S), OWL) within automation devices such as programmable logic controllers to annotate and contextualize automation system data. In various embodiments of the present invention techniques are described for defining and representing contextual information that may be used to perform on-line analytics of control specific time series data, and reason about the state and condition of context elements. This contextual information may be used, for example, to enhance control execution with on-line analytics and reasoning. Semantic contextualization on the automation level enables adding additional context information which is not available on higher levels such as, for example, control context. Additionally, in some embodiments, standardized interfaces (e.g., SPARQL) may be used to access contextualized information generated and/or stored on the automation devices.
Various embodiments of the present invention are described in the context of a PLC which includes various components configured to provide an assortment of enhanced functions in control applications. This PLC, referred to herein as an “Intelligent PLC” is described in greater detail in U.S. application Ser. No. 14/467,125 entitled “Intelligent Programmable Logic Controller,” the entirety of which is incorporated herein by reference. Briefly, the Intelligent PLC offers several technical features which may be present in various combinations and used in different embodiments of the present invention. The Intelligent PLC provides efficient data storage on control layer devices. More specifically, functionality of the control layer may be extended by an efficient storage mechanism for time series data (i.e., a “historian” function) which allows short-/mid-term archiving of high resolution time-stamped data. With high fidelity data, no events are lost. Efficient compression algorithms (e.g. a variation of swinging door) may be used to reduce storage and communication demands. The Intelligent PLC may also offer an intelligent on-device data generation method in some embodiments. Methods for data filtering may be applied directly where data is generated to ensure that additional data is only stored if it provides additional information content. These methods may also actively analyze incoming data and configure data acquisition according to the current needs, for example, by adjusting the sample rate or by storing data only if certain events have been detected. The Intelligent PLC may also enable rich and semantic contextualization, and perform control layer semantic analytics. Additionally, in some embodiments, the Intelligent PLC also provides distributed analytics across automation systems.
Continuing with reference to
Each Intelligent PLC 110E and 110F includes three basic portions: one or more processors, a non-transitory, non-volatile memory system, and a data connector providing input/output functionality. The non-volatile memory system may take many forms including, for example, a removable memory card or flash drive. The non-volatile memory system, along with any volatile memory available on the PLC is used to make data accessible to the processor(s) as applications are executed. This data may include, for example, time-series data (i.e., history data), event data, and context model data. Applications that may execute within the Intelligent PLCs 110E and 110F are described in greater detail below with reference to
The data connector of Intelligent PLC 110E is connected (wired or wirelessly) to Field Devices 110A and 110B. Similarly, the data connector of Intelligent PLC 110F is connected to Field Devices 110C and 110D. Any field devices known in the art may be used with the Intelligent PLC described herein. Example field devices that may be used with the Intelligent PLC include, without limitation, pressure switches, sensors, push buttons, flow switches, and level switches. Note that the Intelligent PLCs 110E and 110F may be integrated into the production environment piecemeal. For example, in
In some embodiments, the Intelligent PLC 110E and 110F may gather, store, and process contextual knowledge associated with the automation data being generated by the system 100. As described in greater detail below with respect to
Continuing with reference to
The Data Analytics Component 205 comprises a set of data analysis algorithms that process the current or past process images (queried from the historian). Various data analysis algorithms may be included in the Data Analytics Component 205. For example, in some embodiments, these algorithms include one or more of clustering, classification, logic-based reasoning, and statistical analysis algorithms. Moreover, algorithms may be specified via a model which can be deployed during runtime on the device. The Data Analytics Component 205 may also include various analytical models and dedicated algorithms to interpret these models. The results generated by the Data Analytics Component 205 may be stored in the Historian Component 220, written back to the Process Image Component 225 and/or provided to external components via the Data Connector Component 210. Thus, the Intelligent PLC may be viewed as a device for providing distributed analytics to the other devices in the automation system.
A Contextualization Component 215 annotates incoming data with context information to facilitate its later interpretation. Context information, as used herein, may include any information that describes the meaning of data. For example, context of data in automation systems may include information about the device that generated the data (e.g., a sensor), about the structure of the automation system (e.g., topology of a plant), about the working mode of the system (e.g., downtime event), about the automation software and its status while the data was generated, and/or about the product/batch that was produced while the data was generated. The Contextualization Component is configured to provide data to any of the other components for more specific processing needs. The context information generated by the Contextualization Component 215 may not be restricted to the asset structure but may also include control knowledge, product-specific information, process information, event information, and potentially other aspects such as external events like weather information. Some context information may be imported from engineering tools and/or other external resources (e.g. Siemens Totally Integrated Automation tools, service reports, etc.). Additionally, in some embodiments, the Contextualization Component 215 provides semantic contextualization. The context may be represented by a standard modeling language (e.g. Web Ontology Language, Resource Description Framework) where the meaning of the language constructs is formally defined. Contextualization of data with these semantic modeling standards enables business analytics applications to automatically understand and interpret the data provided from the automation system without manual configuration effort.
In some embodiments, the Contextualization Component 215 includes one or more context models defining an ontology for storing context knowledge. Each context model may include, for example, information about controlled processes, control procedures, connected devices (sensors/actuators), etc. Different context models (i.e., ontologies) from different domains or covering different aspects (e.g. product, asset, process, and sensor) may be combined and linked to each other to define the overall automation system context. The modular structure of ontology languages enables to dynamically add/remove context dimensions to automation system data, for example, depending on the application or recipient of data more or less context information can be added to the raw data by the automation devices. Context models are not restricted to hierarchically organized models and may consist of a network (i.e. not only trees), which subsumes various types of relations. In some embodiments, the Contextualization Component 215 specifies each context model declaratively in syntax file which allows model changes during runtime without compilation or stopping the automation device. One example of an ontological data file for specifying context models is shown below with respect to
Any data captured or generated by the components of system 200 may be provided to external components via a Data Connector Component 210. In some embodiments, the Data Connector Component 210 delivers data via a push methodology (i.e., actively sending to external component). In other embodiments, a pull methodology may be used where data is queried by external component. Additionally, push and pull methodologies may be combined in some embodiments such that the Intelligent PLC is configured to handle both forms of data transfer.
Continuing with reference to
At 315, incoming data is used to update the active window of in event engine which continuously analyzes the data in its active window in order to generate new events. Generation of events may be done by specification, for example, using defined rules or patterns. Once a new event is detected, at 330 context information required for the event (as defined in the context model) is collected from the (non-volatile or volatile) storage. New events may also be stored in the storage during step 330.
At 340, data in the storage is made available via a semantic query processor. This processor may execute a query formulated against the semantic context model (e.g. SPARQL query) and retrieve the relevant data. In some embodiments, data is directly stored as semantic data (e.g. as RDF in a triplestore) and the query may be natively executed. In other embodiments, the data is stored in a plain historian and the query is translated (SPARQL->Historian queries) based on the context models.
Note that
Continuing with reference to
The contextualization methods, systems, and apparatuses, described herein offer many advantages over contextual automation systems. For example, as contextualization is done by the automation device/controller itself, the device (or its owner) can decide which context information should be provided to a certain external system and which context information should not (and may be kept internally available only for its own data analysis functions). Adding explicit formal semantics to data using standard languages enables third party systems to understand and interpret the data without dedicated manual configuration (i.e., enabling sophisticated automated configuration of MES, SCADA systems and reducing system management efforts). Explicit formal semantics enables reuse of commodity analytics libraries for data interpretation (e.g., detect complex event frames) and model management. Explicit formal semantics allows to dynamically integrate data from different sources (e.g., automation devices) enabling plug-n-play concepts and reducing configuration effort. Moreover, the use of standardized context languages and interfaces enables interoperability and “open” application/model ecosystem with external partners. For example, third party control/analytics/historian applications or third party hardware modules running control/analytics/historian functions can be connected.
In some embodiments, the Intelligent PLC provides an ecosystem on top of which applications may be constructed which utilize context data. For example, in one embodiment, the software of the Intelligent PLC includes an application programming interface (API) specifying how external software components can interact with the software operating on the Intelligent PLC. This API may include functions such as contextualizing new data or querying existing contextualized data. The API may also be used to network individual Intelligent PLCs together, thereby creating a network of controllers which can enhance their processing of data by sharing context data associated with their respective control programs.
The processors described herein as used by control layer devices may include one or more central processing units (CPUs), graphical processing units (GPUs), or any other processor known in the art. More generally, a processor as used herein is a device for executing machine-readable instructions stored on a computer readable medium, for performing tasks and may comprise any one or combination of, hardware and firmware. A processor may also comprise memory storing machine-readable instructions executable for performing tasks. A processor acts upon information by manipulating, analyzing, modifying, converting or transmitting information for use by an executable procedure or an information device, and/or by routing the information to an output device. A processor may use or comprise the capabilities of a computer, controller or microprocessor, for example, and be conditioned using executable instructions to perform special purpose functions not performed by a general purpose computer. A processor may be coupled (electrically and/or as comprising executable components) with any other processor enabling interaction and/or communication there-between. A user interface processor or generator is a known element comprising electronic circuitry or software or a combination of both for generating display images or portions thereof. A user interface comprises one or more display images enabling user interaction with a processor or other device.
Various devices described herein including, without limitation, the control layer devices and related computing infrastructure, may include at least one computer readable medium or memory for holding instructions programmed according to embodiments of the invention and for containing data structures, tables, records, or other data described herein. The term “computer readable medium” as used herein refers to any medium that participates in providing instructions to one or more processors for execution. A computer readable medium may take many forms including, but not limited to, non-transitory, non-volatile media, volatile media, and transmission media. Non-limiting examples of non-volatile media include optical disks, solid state drives, magnetic disks, and magneto-optical disks. Non-limiting examples of volatile media include dynamic memory. Non-limiting examples of transmission media include coaxial cables, copper wire, and fiber optics, including the wires that make up a system bus. Transmission media may also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.
An executable application, as used herein, comprises code or machine readable instructions for conditioning the processor to implement predetermined functions, such as those of an operating system, a context data acquisition system or other information processing system, for example, in response to user command or input. An executable procedure is a segment of code or machine readable instruction, sub-routine, or other distinct section of code or portion of an executable application for performing one or more particular processes. These processes may include receiving input data and/or parameters, performing operations on received input data and/or performing functions in response to received input parameters, and providing resulting output data and/or parameters.
A graphical user interface (GUI), as used herein, comprises one or more display images, generated by a display processor and enabling user interaction with a processor or other device and associated data acquisition and processing functions. The GUI also includes an executable procedure or executable application. The executable procedure or executable application conditions the display processor to generate signals representing the GUI display images. These signals are supplied to a display device which displays the image for viewing by the user. The processor, under control of an executable procedure or executable application, manipulates the GUI display images in response to signals received from the input devices. In this way, the user may interact with the display image using the input devices, enabling user interaction with the processor or other device.
The functions and process steps herein may be performed automatically, wholly or partially in response to user command. An activity (including a step) performed automatically is performed in response to one or more executable instructions or device operation without user direct initiation of the activity.
The system and processes of the figures are not exclusive. Other systems, processes and menus may be derived in accordance with the principles of the invention to accomplish the same objectives. Although this invention has been described with reference to particular embodiments, it is to be understood that the embodiments and variations shown and described herein are for illustration purposes only. Modifications to the current design may be implemented by those skilled in the art, without departing from the scope of the invention. As described herein, the various systems, subsystems, agents, managers and processes can be implemented using hardware components, software components, and/or combinations thereof. No claim element herein is to be construed under the provisions of 35 U.S.C. 112, sixth paragraph, unless the element is expressly recited using the phrase “means for.”
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2014/066137 | 11/18/2014 | WO | 00 |