Query asset models associated with OPC UA and maps
By generating an industrial asset model including multiple source assets and converting it into an RDF knowledge graph, the problem of difficulty in generating, querying and learning of current asset models is solved, and efficient query and maintenance of asset models is achieved.
Patent Information
- Application Number
- CN202280099592.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2022-08-31
- Publication Date
- 2025-03-25
AI Technical Summary
Current asset models are difficult to generate, query and learn in OPC UA architecture, especially as the models become more and more complex over time, resulting in difficult information search.
通过提供一个计算系统,能够基于用户选择生成包括来自多个不同源的资产的工业资产模型。 该系统将OPC UA资产转换为RDF知识图谱,并将其存储在数据库中。 系统可以接收查询请求,提取多个源的资产数据,并通过Restful接口和GraphQL API处理资产模型的改变和查询。
It realizes the generation of industrial asset models that can be effectively queried, improves the queryability and maintainability of the asset models, and simplifies the user's information search and query process in complex asset models.
Smart Images

Figure CN119698602A_ABST
Abstract
Description
Background Art
[0001] The Open Platform Communications Unified Architecture (OPC UA) defines industrial standard models, often referred to as companion specifications because they typically address specific industry issues. These specifications, together with the basic OPC UA infrastructure, enable information exchange between industry models, thereby achieving semantic-level interoperability between entities on the shop floor and information technology (IT) systems in a given factory. The OPC UA standard is a cross-platform, open source IEC62541 standard for data exchange between devices in industrial systems. OPC UA provides standard interfaces and semantics that enable products from different vendors to interoperate in the factory.
[0002] However, the present invention recognizes that searching for information in these models is often difficult for conventional IT systems. Specifically, for example, information represented in the OPC UA architecture may be difficult to query and search for other purposes. One technique for providing queries to OPC UA is to convert the OPC UA ontology into a Resource Description Framework (RDF) knowledge graph. In some cases, the RDF knowledge graph can represent the OPC UA specification in a queryable and searchable manner. RDF typically uses SPARQL as a means of querying RDF databases.
[0003] In the context of an Industrial Information Hub (IIH), an asset may represent an industrial object that defines related connections and data. However, the present invention recognizes that current asset models are difficult to generate, query, and / or learn, especially as asset models become more complex over time. Summary of the invention
[0004] Embodiments of the present invention solve and overcome one or more disadvantages or technical problems described herein by providing methods, systems and apparatus for generating new industrial asset models that can be efficiently queried.
[0005] In one exemplary aspect, based on user selection, a computing system including one or more asset modules can generate an industrial asset model including assets from multiple different sources. Assets can be defined according to the Open Platform Communication Unified Architecture (OPC UA). The system can convert assets from OPC UA into a resource description format (RDF) knowledge graph. The system can store the RDF knowledge graph in a database. In addition, the system can receive a query for industrial data. In response to the query for industrial data, the system can extract at least two assets from multiple sources from the database, wherein at least two assets represent industrial data. In one example, the system can receive a request associated with a change to the asset model through a Restful interface. In response to the request, the system can adjust the assets of the asset model according to the change to define the adjusted assets. In addition, the system can update the RDF graph according to the adjusted assets. In various examples, the asset model defines an asset variable that subscribes to the corresponding OPC source of the asset variable. Based on the subscription to the OPC source, the system can identify changes in the OPC source and update the asset variable in response to identifying changes to the OPC source. In another exemplary aspect, the system may receive a query conforming to a GraphQL API to define a GraphQL query. The system may convert the GraphQL query into a query conforming to SPARQL to define a SPARQL query. The system may also format at least two assets representing industrial data in a format selected by a user. BRIEF DESCRIPTION OF THE DRAWINGS
[0006] The above and other aspects of the present invention can be best understood when the following detailed description is read in conjunction with the accompanying drawings. For the purpose of illustrating the present invention, presently preferred embodiments are shown in the accompanying drawings. However, it should be understood that the present invention is not limited to the specific means disclosed. The accompanying drawings include the following figures:
[0007] Figure 1 is a block diagram of an exemplary industrial system including an asset module according to an exemplary embodiment.
[0008] Figure 2 An exemplary asset model according to the prior art is shown.
[0009] Figure 3A and Figure 3B An exemplary representational state transfer (REST) interface for querying an asset model according to the prior art is shown.
[0010] Figure 4 is a block diagram of a system configured to generate a new asset model customized for a specific user, according to an exemplary embodiment.
[0011] Figure 5is a block diagram illustrating an exemplary asset model and its relationship to an OPC model according to an exemplary embodiment.
[0012] Figure 6 An exemplary system for querying an asset model according to an exemplary implementation is shown.
[0013] Figure 7 An example of a computing environment is shown in which embodiments of the present disclosure may be implemented. DETAILED DESCRIPTION
[0014] First reference Figure 1 , the exemplary industrial system 100 includes multiple subsystems that include control logic, host network servers, etc. For example, the industrial system may include an office or enterprise IT network 102 and an operating plant or production network 104 that is communicatively connected to the IT network 102. The production network 104 may include multiple asset modules 106 throughout the production network 104. The exemplary asset module 106 is connected to the IT network 102. The arrangement of the asset modules 106 can vary as desired, all of which are considered to be within the scope of the present disclosure. For example, the asset modules 106 can be distributed in the production network or the IT network. In various examples, the asset modules 106 can define software that runs on components within the production network 104 and / or the IT network 102. The production network 104 may include various production machines that are configured to work together to perform one or more manufacturing operations. The exemplary production machines of the production network 104 may include, but are not limited to, robots 108 and other field devices that can be controlled by corresponding PLCs 114, such as sensors 110, actuators 112, or other machines, such as automated guided vehicles (AGVs) 108. The PLC 114 may send instructions to the corresponding field devices. In some cases, a given PLC 114 may be coupled to a human-machine interface (HMI) 116. It should be understood that the industrial system 100 is simplified for purposes of illustration. That is, the industrial system 100 may include additional or alternative nodes or systems, such as other network devices that define alternative configurations, all of which are considered to be within the scope of the present disclosure.
[0015] The industrial system 100, specifically the production network 104, can define a fieldbus portion 118 and an Ethernet portion 120. For example, but not limited to, the fieldbus portion 118 can include a robot 108, a PLC 114, a sensor 110, an actuator 112, an HMI 116, and an AGV. The fieldbus portion 118 can define one or more production lines or control zones. The PLCs 114, sensors 110, actuators 112, and HMIs 116 within a given production line can communicate with each other via a corresponding fieldbus 122. Each control zone can be defined by a corresponding PLC 114, so that the PLC 114 and, in turn, the corresponding control zone can be connected to the Ethernet portion 120 via an Ethernet connection 124. The robot 108 and the AGV can be configured to communicate with other devices within the fieldbus portion 118 via a Wi-Fi connection 126. Similarly, the robot 108 and the AGV can communicate with the Ethernet portion 120 (specifically, a supervisory control and data acquisition (SCADA) server 128) via a Wi-Fi connection 126. The Ethernet portion 120 of the production network 104 may include various computing devices or subsystems that are communicatively coupled together via an Ethernet connection 124. Exemplary computing devices or subsystems in the Ethernet portion 120 include, but are not limited to, a mobile data collector 130, an HMI 132, a SCADA server 128, a control unit 106, a wireless router 134, a manufacturing execution system (MES) 136, an engineering system (ES) 138, and a log server 140. The ES 138 may include one or more engineering workstations. In one example, the MES 136, the HMI 132, the ES 138, and the log server 140 are directly connected to the production network 104. The wireless router 134 may also be directly connected to the production network 104. Thus, in some cases, mobile users, such as the mobile data collector 130 and the robot 108 (e.g., AGV), may be connected to the production network 104 via the wireless router 134.
[0016] Exemplary users of the automation or manufacturing system 100 include, for example, but not limited to, industrial plant operators or engineers who may update the control logic of the plant. For example, an operator may interact with an HMI 132, which may be located in a control room of a given plant. Alternatively or additionally, an operator may interact with an HMI of the system 100 located remotely from the production network 104. Similarly, for example, an engineer may use an HMI 116, which may be located in an engineering room of the automation system 100. Alternatively or additionally, an engineer may interact with an HMI of the automation 100 located remotely from the production network 104.
[0017] First, refer to Figure 2The present invention recognizes that current asset models, such as asset model 200, can be viewed using a representational state transfer (REST) interface, but these queries are simple and have disadvantages such as not allowing filtering. Specifically, also refer to Figure 3A and Figure 3B , an exemplary REST application program interface (API) 300 drives a user interface (UI) for querying the exemplary asset model 200. As shown, the data responses of the API 300 are in a simple JavaScript Object Notation (JSON) format, such that there is no query capability to select specific assets, aspects, or variables associated with specific criteria. For example, to further illustrate the technical disadvantages, assume that there are 5,000 assets in the hierarchy and the user wishes to query the top assets, which have: a left arm; was recently manufactured; and one of the motors exceeded a temperature limit. The present invention recognizes that in Figure 3A and Figure 3B Performing such queries on the JSON structured data shown may require special logic or may be difficult. Therefore, the present invention further recognizes that when a client's asset model becomes complex over time, the model is difficult to query and difficult to gain insight into. For example, a user may need to write specific logic each time specific information is needed. Given the complexity of a given asset model, such queries may be time consuming and require a lot of manual work. For example, a developer may need to manually write each filter or nested filter on a given asset model. Therefore, the present invention further recognizes that in current methods, users are limited and cannot quickly and accurately gain insight into asset models, which is at least in part due to the dynamic nature of the data generated in the industry.
[0018] Reference Figure 4 and Figure 5 , the asset module 106 can define an exemplary system 400 that can define various asset models, such as an exemplary asset model 500, which is integrated into an open platform communications unified architecture (OPC UA) model and can be managed by an asset node manager 402. Users can use asset model concepts, such as asset model 500, to organize data and information from various sources. Therefore, according to various embodiments, users can create or generate asset models, such as asset model 500, that are customized for their respective needs. Such asset models can then be searched via flexible queries. In some cases, a separate asset hierarchy can be created that captures variables from multiple hierarchies of the OPC UA tree into a single export. Therefore, users can create their own "view" of the OPC UA system they are trying to model.
[0019] See Figure 4, the asset node manager 402 can be used to define an asset model 500, which can be converted into a resource description framework (RDF) knowledge graph or storage 404 for querying. The asset model described in the present invention, such as the asset model 500, can be composed of custom objects. Custom objects can define structures or folders that contain other objects. Such other objects can define asset variables corresponding to or connected to OPC UA variables (e.g., temperature, etc.). For example, the asset model 500 can include an asset variable 506 corresponding to the OPC variable 510. The aforementioned object structure including the asset model 500 can be converted into an RDF graph that defines RDF triples, which represent and contain information about the relationship between OPC UA entities. For example, the RDF storage 404 can define a database that stores RDF graphs, which define how triples (or nodes) are connected to other nodes, thereby forming a graph. Therefore, unless otherwise specified, the RDF storage 404 can be interchangeably referred to as an RDF graph or an RDF database in the present invention without limitation. Asset node manager 402 may define an OPC UA node manager within aggregation server 406. For example, aggregation server 406 may provide a restful API interface that allows end users to create / update / delete / query various assets, aspects, and variables, such as assets 502, aspects 504, and variables 506 of a given data model, specifically asset model 500. Thus, according to this example, asset node manager 402 manages asset model 500.
[0020] Continue to refer Figure 5 , assets of the asset model 500, such as asset 502, are included in an asset folder 508 of the Industrial Information Hub (IIH) core. In various examples, an asset can have children to define secondary assets or sub-assets. The relationship between an asset and its sub-assets can be referred to as "having children" in accordance with OPC UA. A given asset can have multiple aspects. In accordance with OPC UA, the relationship between assets and attributes is referred to as "organization". An asset can also have variables directly under it, or variables can be organized under aspects. In various examples, an asset variable, such as variable 506, can reference another OPC UA variable, such as an OPC variable 510 in another namespace 512. In this case, for example, any changes to the OPC variable 510 can be reflected in the associated asset variable 506.
[0021] Unlike other OPC UA models registered to the IIH core, the asset models described in the present invention, such as asset model 500, are very dynamic and can change frequently. A user can create / update / delete asset model 500 using a user interface (UI) that utilizes a Restful interface provided by the IIH core. For example, when the asset model 500 changes, the OPC to RDF library can be called to update the graph 404 associated with the asset 504, thereby making queries possible. The OPC to RDF library can define a separate library with functions that can be called using the OPC UA model. For example, these functions can convert the OPC UA model into an RDF graph, which can then be loaded into a central RDF store (e.g., RDF store 404) to replace older assets with new RDF graphs. Asset variables, such as asset variable 506, can also subscribe to corresponding OPC variables, such as OPC variable 510. Thus, for example, when a value in the OPC source or server 408 changes, such as when the OPC variable 510 changes, the corresponding value in the aggregation server 406 changes accordingly. Then, in various examples, the asset variables that reference the OPC variables within the aggregation server 406 also change accordingly. Thus, the asset model 500 can define various flexible views of various OPC data.
[0022] According to various implementations, a user may define a logical organization of data from different sources to generate a specific asset model, such as asset model 500. In various examples, reference is also made to Figure 6 , the exemplary computing system 600 may define an interface that allows a user, such as a client 601, to perform intelligent queries on the generated asset model to locate the data of interest to them from the asset model. For example, for each asset model node, an artificial OPC UA object may be created and populated with information. For example, an OPC UA to RDF converter may be used to convert the resulting object into an RDF graph. The resulting RDF graph may be stored in an RDF store or database 602 of the system 600.
[0023] In one example, the system includes a semantic GraphQL that can define an automated API generation system that operates via automatic introspection of an OPC UA-derived RDF ontology. Specifically, for example, the system 600 can also include a generic GraphQL server or generic resolver 604 that can provide useful OPC UA semantic knowledge as a GraphQL API. The generic resolver 604 can serve different types of automatically generated APIs. The generic server 604 can define components or modules that operate in a recursive loop to generically process client GraphQL requests, such as a GraphQL query 606 from a client 601.
[0024] The system 600 may also include an automatic schema generator 608 configured to find assets (e.g., assets 612), aspects, and associated variable nodes in the RDF database 602 using a SPARQL query 610 to uniquely identify the relationship between the asset and the underlying OPC UA variable. Specifically, for example, an asset in the RDF database 602 may define an associated triple whose predicate "isView" is set to true. This flag may be used to identify asset objects. Once such an object is found, a GraphQL data type "asset" is created for each asset and associated information about the asset (e.g., GraphQL schema and meta information 614) is populated. For example, in the meta information 614 generated for the parser 604 to process the GraphQL request or query 606, GraphQL may also be marked as true using the "isAsset" flag. The meta information 614 may contain details associated with generating a SPARQL query 616 to retrieve data for a specific GraphQL object. For example, the meta information data structure may be enhanced to this new "isAsset" flag. This flag can inform the GraphQL or generic resolver 604 that this is a special data type that requires further processing compared to normal GraphQL types. In some cases, the user can set a configuration 616 that defines settings about how the schema generator 608 crawls the graph or database 602. Specifically, for example, the settings can control the depth of the crawl of the schema generator 608.
[0025] In the general resolver 604, when a given GraphQL request 606 is issued, the resolver 604 looks up the GraphQL type in the request in the meta information data store (e.g., the RDF database 602). The resolver 604 recursively follows the hierarchy of GraphQL requests 606 and meta information 614 to incrementally perform SPARQL queries against the RDF store 602 (at 616). According to various embodiments, this operation is enhanced to include a special processing algorithm for assets. This algorithm is activated during the parsing phase when the "isAsset" flag is true for the GraphQL type currently being processed. If this is the case, this special algorithm is applied to retrieve the object data instead of the "normal" operation that would not search for these assets.
[0026] Operations performed by the system 600 may include using a SPARQL query with links (at 616) to find the current asset object of the associated aspect object. The aspect object may then be traversed using the RDF "has component" predicate to obtain further subordinate variables. Finally, the "organize" predicate may be used to link the underlying data source with the asset variable. The GraphQl resolver 604 may traverse these links using a SPARQL query (at 616) to find the actual data source and populate the value of the asset variable. This completes the query resolution process, and the final GraphQL response data may be returned to the requesting user, such as the client 601.
[0027] Without being bound by theory, the ability to create an asset model with an associated underlying OPC UA data source can provide the ability to create a unique view that suits specific user preferences. For example, variables residing in different parts of the OPC UA tree can be grouped into a single asset. For example, robot motor temperature can be grouped with robot controller software version, even though these two data variables reside in completely different parts of the data hierarchy. For another example, multiple temperature sensors associated with corresponding robots can be located in different U.S. states. According to various embodiments described herein, these sensors can be grouped into an asset model, such as asset model 500, to define a single folder (e.g., asset folder 508) containing sensor data from various geographic regions or systems.
[0028] Another advantage of semantically converting asset models into a semantic data store such as RDF is that semantic queries can link various relationships connected to the asset model. For example, it is possible to query for all assets with a robot motor temperature above a certain threshold selected by the user. In addition, by storing the asset model as an RDF graph, semantic information can be input into the asset model. Therefore, it is possible to discover or determine all the connecting arms of a robot, for example, the connecting arms associated with a motor having a temperature above a certain threshold selected by the user. This connection construction and semantic information capability provides versatility in query formation and data retrieval. Therefore, it should be understood that the asset model described in the present invention is given for illustrative purposes, and alternative asset models and queries can be generated according to the needs or concerns of the user, and all such alternatively constructed asset models and queries are considered to be within the scope of the present disclosure.
[0029] Figure 7An example of a computing environment in which embodiments of the present disclosure may be implemented is shown. Computing environment 800 includes a computer system 810, which may include a communication mechanism such as a system bus 821 or other communication mechanism for transmitting information within the computer system 810. The computer system 810 also includes one or more processors 820 coupled to the system bus 821 for processing information. The system 600 or system 100, specifically the asset module 106, may include or be coupled to one or more processors 820.
[0030] The processor 820 may include one or more central processing units (CPUs), graphics processing units (GPUs), or any other processors known in the art. More generally, a processor as described in the present invention is a device for executing machine-readable instructions for performing tasks stored on a computer-readable medium, and may include any one of hardware and firmware or a combination of hardware and firmware. The processor may also include a memory that stores machine-readable instructions that can be executed to perform tasks. The processor takes action based on information by manipulating, analyzing, modifying, converting, or transmitting information for use by an executable program or information device and / or by routing the information to an output device. For example, a processor may use or include the capabilities of a computer, a controller, or a microprocessor, and may be adjusted using executable instructions to perform special functions that cannot be performed by a general-purpose computer. The processor may include any type of suitable processing unit, including but not limited to a central processing unit, a microprocessor, a reduced instruction set computer (RISC) microprocessor, a complex instruction set computer (CISC) microprocessor, a microcontroller, an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), a system on a chip (SoC), a digital signal processor (DSP), and the like. In addition, the processor 820 can have any suitable micro-architecture design, which includes any number of components, such as, for example, registers, multiplexers, arithmetic logic units, a cache controller for controlling read / write operations to cache memory, a branch predictor, etc. The micro-architecture design of the processor can be capable of supporting any of a variety of instruction sets. The processor can be connected to any other processor (electrically connected and / or as an executable component) to enable interaction and / or communication therebetween. A user interface processor or generator is a known element that includes electronic circuits or software or a combination of both for generating a display image or a portion thereof. The user interface includes one or more display images, thereby enabling a user to interact with the processor or other device.
[0031] The system bus 821 may include at least one of a system bus, a memory bus, an address bus, or a message bus, and may allow information exchange (e.g., data (including computer executable code), signaling, etc.) between various components of the computer system 810. The system bus 821 may include, but is not limited to, a memory bus or a memory controller, a peripheral bus, an accelerated graphics port, etc. The system bus 821 may be associated with any suitable bus architecture, including, but not limited to, an Industry Standard Architecture (ISA), a Micro Channel Architecture (MCA), an Enhanced ISA (EISA), a Video Electronics Standards Association (VESA) architecture, an Accelerated Graphics Port (AGP) architecture, a Peripheral Component Interconnect (PCI) architecture, a PCI-Express architecture, a Personal Computer Memory Card International Association (PCMCIA) architecture, a Universal Serial Bus (USB) architecture, etc.
[0032] Continue to refer Figure 7 , the computer system 810 also includes a system memory 830 coupled to the system bus 821 for storing information and instructions executed by the processor 820. The system memory 830 may include computer-readable storage media in the form of volatile and / or non-volatile memory, such as read-only memory (ROM) 831 and / or random access memory (RAM) 832. RAM 832 may include other dynamic storage devices (e.g., dynamic RAM, static RAM, and synchronous DRAM). ROM 831 may include other static storage devices (e.g., programmable ROM, erasable PROM, and electrically erasable PROM). In addition, the system memory 830 may be used to store temporary variables or other intermediate information during the execution of instructions by the processor 820. The basic input / output system 833 (BIOS) contains basic routines that help transfer information between elements within the computer system 810, such as at startup, and the basic routines may be stored in ROM 831. RAM 832 may contain data and / or program modules that are immediately accessible to and / or currently running on the processor 820. System memory 830 may additionally include, for example, an operating system 834, application programs 835, and other program modules 836. Application programs 835 may also include a user portal for developing application programs, thereby allowing input parameters to be entered and modified as desired.
[0033] An operating system 834 may be loaded into memory 830 and may provide an interface between other application software executing on computer system 810 and the hardware resources of computer system 810. More particularly, operating system 834 may include a set of computer executable instructions for managing the hardware resources of computer system 810 and for providing common services to other applications (e.g., managing memory allocations between various applications). In certain exemplary embodiments, operating system 834 may control the execution of one or more program modules depicted as being stored in data storage 840. Operating system 834 may include any operating system now known or developed in the future, including but not limited to any server operating system, any mainframe operating system, or any other proprietary or non-proprietary operating system.
[0034] The computer system 810 may also include a disk / media controller 843 coupled to the system bus 821 to control one or more storage devices for storing information and instructions, such as a magnetic hard disk 841 and / or a removable media drive 842 (e.g., a floppy disk drive, an optical drive, a tape drive, a flash drive, and / or a solid-state drive). The storage device 840 may be added to the computer system 810 using an appropriate device interface (e.g., a small computer system interface (SCSI), an integrated device electronics (IDE), a universal serial bus (USB), or FireWire). The storage devices 841, 842 may be located external to the computer system 810.
[0035] The computer system 810 may also include a field device interface 865 coupled to the system bus 821 to control field devices 866, such as devices used in a production line. The computer system 810 may include a user input interface or GUI 861 for interacting with a computer user and providing information to the processor 820, which may include one or more input devices, such as a keyboard, a touch screen, a tablet computer, and / or a pointing device.
[0036] The computer system 810 may perform some or all of the processing steps of an embodiment of the present invention in response to the processor 820 executing one or more sequences of one or more instructions contained in a memory such as a system memory 830. Such instructions may be read into the system memory 830 from another computer-readable medium of the storage device 840, such as a magnetic hard disk 841 or a removable media drive 842. The magnetic hard disk 841 and / or the removable media drive 842 may contain one or more data stores and data files used by embodiments of the present disclosure. The data store 840 may include, but is not limited to, a database (e.g., relational, object-oriented, etc.), a file system, a flat file, a distributed data store storing data on multiple nodes of a computer network, a peer-to-peer network data store, etc. The data store may store various types of data, such as, for example, skill data, sensor data, or any other data generated according to embodiments of the present disclosure. The data store contents and data files may be encrypted to increase security. The processor 820 may also be employed in a multi-processing device to execute one or more instruction sequences contained in the system memory 830. In alternative embodiments, hard-wired circuits may be used instead of or in combination with software instructions. Therefore, the embodiments are not limited to any particular combination of hardware circuits and software.
[0037] As described above, the computer system 810 may include at least one computer-readable medium or memory for holding instructions programmed according to embodiments of the present invention and for containing data structures, tables, records, or other data described in the present invention. The term "computer-readable medium" as used in the present invention refers to any medium that participates in providing instructions to the processor 820 for execution. Computer-readable media can take many forms, including but not limited to non-temporary media, 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, such as magnetic hard disks 841 or removable media drives 842. Non-limiting examples of volatile media include dynamic memory, such as system memory 830. Non-limiting examples of transmission media include coaxial cables, copper wires, and optical fibers, including wires that constitute the system bus 821. Transmission media can also take the form of sound waves or light waves, such as those generated during radio wave and infrared data communications.
[0038] The computer-readable medium instructions for performing the operations of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, etc., and traditional procedural programming languages such as "C" programming language or similar programming languages). The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer through any type of network including a local area network (LAN) or a wide area network (WAN) or may be connected to an external computer (e.g., connected through the Internet using an Internet service provider). In some embodiments, electronic circuits including, for example, programmable logic circuits, field programmable gate arrays (FPGAs), or programmable logic arrays (PLAs) may execute computer-readable program instructions by personalizing the electronic circuits using state information of the computer-readable program instructions so as to perform various aspects of the present disclosure.
[0039] The present invention describes various aspects of the present disclosure with reference to flowcharts and / or block diagrams of methods, devices (systems) and computer program products according to embodiments of the present disclosure. It should be understood that each block of the flowchart and / or block diagram and the combination of blocks in the flowchart and / or block diagram can be implemented by computer-readable medium instructions.
[0040] The computing environment 800 may also include a computer system 810 that operates in a networked environment using a logical connection to one or more remote computers, such as a remote computing device 880. For example, a network interface 870 may enable communication with other remote devices 880 or systems and / or storage devices 841, 842 via a network 871. The remote computing device 880 may be a personal computer (laptop or desktop), a mobile device, a server, a router, a network PC, a peer device, or other common network node, and typically includes many or all of the elements described above relative to the computer system 810. When used in a networked environment, the computer system 810 may include a modem 872 for establishing communication through a network 871, such as the Internet. The modem 872 may be connected to the system bus 821 via the user network interface 870 or by another appropriate mechanism.
[0041] The network 871 can be any network or system generally known in the art, including the Internet, an intranet, a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a direct connection or a series of connections, a cellular telephone network, or any other network or medium that can facilitate communication between the computer system 810 and other computers (e.g., a remote computing device 880). The network 871 can be wired, wireless, or a combination thereof. The wired connection can be implemented using Ethernet, a universal serial bus (USB), RJ-6, or any other wired connection generally known in the art. The wireless connection can be implemented using Wi-Fi, WiMAX, and Bluetooth, infrared, cellular networks, satellites, or any other wireless connection methods generally known in the art. In addition, several networks can work alone or communicate with each other to facilitate communication in the network 871.
[0042] It should be understood that Figure 7 The program modules, applications, computer executable instructions, codes, etc. depicted as stored in the system memory 830 are merely illustrative and not exhaustive, and the processing described as supported by any specific module may alternatively be distributed among multiple modules or performed by different modules. In addition, various program modules, scripts, plug-ins, application programming interfaces (APIs), or any other suitable computer executable code hosted locally on the computer system 810, the remote device 880, and / or hosted on other computing devices accessible through one or more of the networks 871 may be provided to support the functionality provided by the program modules, applications, or computer executable codes depicted in the figure and / or additional or alternative functionality. In addition, functionality may be modularized in different ways, so that the processing depicted as being jointly supported by the set of program modules depicted in the figure may be performed by a smaller or larger number of modules, or the functionality described as being supported by any specific module may be supported at least in part by another module. In addition, the program modules supporting the functionality described in the present invention may form part of one or more applications that can be executed across any number of systems or devices according to any suitable computing model, such as, for example, a client-server model, a peer-to-peer model, etc. Additionally, any of the functionality described as being supported by any of the program modules depicted in the figures may be implemented at least in part in hardware and / or firmware on any number of devices.
[0043] It should be further understood that, without departing from the scope of the present disclosure, the computer system 810 may include alternative and / or additional hardware, software or firmware components beyond those described or depicted. More specifically, it should be understood that the software, firmware or hardware components depicted as forming part of the computer system 810 are merely illustrative, and some components may not be present or additional components may be provided in various embodiments. Although various illustrative program modules have been depicted and described as software modules stored in the system memory 830, it should be understood that the functionality described as supported by the program modules can be enabled by any combination of hardware, software and / or firmware. It should be further understood that, in various embodiments, each of the above modules may represent a logical partition that supports functionality. The logical partition is depicted for ease of explanation of the functionality and may not represent the structure of the software, hardware and / or firmware used to implement the functionality. Therefore, it should be understood that, in various embodiments, the functionality described as provided by a specific module may be provided at least in part by one or more other modules. Further, in some embodiments, one or more of the depicted modules may not be present, while in other embodiments, there may be additional modules that are not depicted, which may support at least a portion of the described functionality and / or additional functionality. Furthermore, although certain modules may be depicted and described as sub-modules of another module, in certain embodiments such modules may be provided as stand-alone modules or sub-modules of other modules.
[0044] Although the specific embodiments of the present disclosure have been described, it will be appreciated by those of ordinary skill in the art that many other modifications and alternative embodiments are within the scope of the present disclosure. For example, any functionality and / or processing capability described with respect to a specific device or component may be performed by any other device or component. In addition, although various illustrative implementations and architectures have been described according to the embodiments of the present disclosure, it will be appreciated by those of ordinary skill in the art that many other modifications to the illustrative implementations and architectures described in the present invention are also within the scope of the present disclosure. In addition, it should be understood that any operation, element, component, data, etc. described as being based on another operation, element, component, data, etc., can also be based on one or more other operations, elements, components, data, etc. Therefore, the phrase "based on" or its variants should be interpreted as "based at least in part on".
[0045] Although each embodiment has been described with the language dedicated to structural features and / or method actions, it is to be understood that the disclosure need not be limited to the specific features or actions. On the contrary, specific features and actions are disclosed as illustrative forms for realizing each embodiment. Unless otherwise specifically stated or understood in the context used, the conditional language used in the present invention, such as, wherein, "may", "can", "will", "may" etc. are generally intended to express that some embodiments include, while other embodiments do not include specific characteristics, elements and / or steps. Therefore, this conditional language is usually not intended to imply that features, elements and / or steps are necessary for one or more embodiments in any way, or one or more embodiments must include the logic for determining whether these features, elements and / or steps are included in any specific embodiment or whether they will be performed in any specific embodiment with or without user input or prompts.
[0046] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality and operation of possible implementations of the systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagram may represent a portion of a module, segment or instruction, which includes one or more executable instructions for implementing a specific logical function. In some alternative implementations, the functions marked in the box may not be performed in the order marked in the accompanying drawings. For example, depending on the relevant functionality, two boxes displayed in succession may actually be executed substantially simultaneously, or sometimes these boxes may be executed in the opposite order. It should also be noted that each box in the block diagram and / or flowchart, and the combination of boxes in the block diagram and / or flowchart, can be implemented by a dedicated hardware system that performs a specified function or behavior, or by a combination of dedicated hardware and computer instructions.
Claims
1. A computer-implemented method, the method comprising: generating an industrial asset model based on a user selection, the industrial asset model including assets from a plurality of different sources, the assets defined according to an Open Platform Communications Unified Architecture (OPC UA); Convert said asset from OPC UA to a Resource Description Format (RDF) knowledge graph; Store the RDF knowledge graph in the database; receiving inquiries for industrial data; as well as In response to the query for industrial data, at least two assets from a plurality of the sources are extracted from the database, the at least two assets representing the industrial data.
2. The method according to claim 1, further comprising: receiving, via a Restful interface, a request associated with a change to the asset model; as well as In response to the request, an asset of the asset model is adjusted according to the change to define an adjusted asset.
3. The method according to claim 2, further comprising: The RDF graph is updated according to the adjusted assets.
4. The method according to claim 1, wherein: The asset model defines an asset variable, the asset variable subscribes to a corresponding OPC source of the asset variable, and the method further comprises: Based on subscribing to the OPC source, identifying a change to the OPC source; and In response to identifying the change to the OPC source, the asset variable is updated.
5. The method according to claim 1, further comprising: Receive queries that conform to the GraphQL API to define GraphQL queries; Converting the GraphQL query to a SPARQL compliant query to define a SPARQL query; and The at least two assets representing the industrial data are formatted in a format selected by a user.
6. A computing system comprising: a memory having a plurality of modules stored thereon; as well as A processor, configured to execute the module, wherein the module is configured to: generating an industrial asset model based on a user selection, the industrial asset model including assets from a plurality of different sources, the assets defined according to an Open Platform Communications Unified Architecture (OPC UA); Convert said asset from OPC UA to a Resource Description Format (RDF) knowledge graph; Store the RDF knowledge graph in the database; receiving inquiries for industrial data; as well as In response to the query for industrial data, at least two assets from a plurality of sources are extracted from the database, the at least two assets representing the industrial data.
7. The system according to claim 6, wherein the module is further configured to: receiving, via a Restful interface, a request associated with a change to the asset model; and In response to the request, an asset of the asset model is adjusted according to the change to define an adjusted asset.
8. The system according to claim 7, wherein the module is further configured to update the RDF graph according to the adjusted assets.
9. The system according to claim 6, wherein: The asset model defines asset variables, the asset variables subscribe to corresponding OPC sources of the asset variables, and the module is further configured to: Based on subscribing to the OPC source, identifying a change to the OPC source; and In response to identifying the change to the OPC source, the asset variable is updated.
10. The system according to claim 6, wherein the module is further configured to: Receive queries that conform to the GraphQL API to define GraphQL queries; Converting the GraphQL query to a SPARQL compliant query to define a SPARQL query; and The at least two assets representing the industrial data are formatted in a format selected by a user.