Method and system for generating engineering programs for the industrial field

By generating a set of programming blocks associated with technical facilities and utilizing ontology pattern analysis, the engineering program is automatically generated, solving the problem of low code development efficiency in existing systems, automating code optimization and error detection, and ensuring the stability of key performance indicators.

CN115220710BActive Publication Date: 2026-06-12SIEMENS AG

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SIEMENS AG
Filing Date
2022-04-15
Publication Date
2026-06-12

Smart Images

  • Figure CN115220710B_ABST
    Figure CN115220710B_ABST
Patent Text Reader

Abstract

The present disclosure provides a method and system for generating an engineering program for one or more engineering objects in a technical facility. The method includes receiving a request to generate an engineering program associated with a technical facility. The method further includes determining a set of programming blocks from a plurality of programming blocks corresponding to a set of industrial domains. The method further includes generating an ontology schema for the set of programming blocks. The ontology schema includes information about a set of variables corresponding to each programming block in the set of programming blocks and a relationship between a set of key performance indicators associated with the set of programming blocks. The method further includes generating the engineering program associated with the technical facility by modifying the set of programming blocks.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the engineering field of computer-aided programming, and more particularly, to a method and system for generating engineering programs for industrial applications. Background Technology

[0002] Technical facilities such as industrial plants include one or more devices controlled by one or more engineered objects. Examples of one or more engineered objects may include, for example, programmable logic controllers, one or more field devices, or any other automated equipment. Examples of one or more devices include, but are not limited to, control valves, motors, pumps, and actuators.

[0003] One or more engineered objects control one or more devices by executing an engineering program that can be stored in memory. The engineering program may include multiple machine-readable instructions to control the one or more devices. The engineering program is encoded by considering multiple parameters associated with the one or more devices, the one or more engineered objects, and the technical facility. Examples of these parameters include, but are not limited to, the processing speed and memory capacity of the one or more engineered objects, one or more physical attributes of the one or more devices, multiple physical connections between the one or more engineered objects and the one or more devices, and the industrial sector of the technical facility's operation. The industrial sector of the technical facility indicates the objective of the technical facility. For example, the technical facility could be a manufacturing plant that produces glass bottles. In such a case, the industrial sector of the technical facility could be "glass manufacturing industry." Similarly, examples of industrial sectors could include, but are not limited to, "oil refining industry," "food processing industry," and "coal mining industry." Multiple functions of the one or more engineered objects may vary based on the industrial sector of the technical facility.

[0004] Typically, code developers generate engineering programs within an engineering system configured to dispose of graphical programming blocks. To generate an engineering program for a technical facility, the code developer may have to write several graphical programs for each of one or more engineering objects, based on multiple parameter values, one or more physical attributes of one or more devices, one or more engineering objects, and multiple physical connections between one or more devices. In one example, the code developer generates the engineering program by dragging and dropping one or more desired graphical program blocks from a library into the engineering system. The engineering program is then compiled and downloaded to one or more engineering objects, such as programmable logic controllers (PLCs) for industrial control applications.

[0005] Traditional engineering systems use features and other resources to assist code developers in designing and implementing engineering procedures related to technical facilities. However, these traditional engineering systems lack automated engineering methods for automatically generating engineering procedures for technical facilities within an industry-specific context. For example, if a code developer modifies a line in the first programming block of the engineering procedure, a traditional engineering system cannot notify the code developer of one or more key performance indicators (KPIs) of the engineering procedure that might be affected by the line modification.

[0006] In another example, traditional engineering systems cannot provide automated programming assistance by offering guidance or advice to improve the quality of code written by code developers.

[0007] In yet another example, if a code developer must correct erroneous code, they might have to analyze the erroneous code line by line, which can be very time-consuming. Traditional engineering systems cannot automatically identify one or more errors in erroneous code. Therefore, there is no mechanism for automating engineering in the generation of engineering programs.

[0008] Currently, engineering procedures used in technical facilities consist of numerous code blocks, each with a substantial amount of code. Code developers may find it impossible to manually inspect such large code blocks to predict errors and changes in key performance indicators (KPIs). Therefore, without providing code developers with automated assistance to optimize code, detect errors, and identify changes in KPIs due to code modifications, significant effort and time are wasted. Furthermore, code developers may find it impossible to complete code development on time.

[0009] Furthermore, a project can contain a large number of programming elements, such as variables, classes, and functions that can be defined in the first programming block of the project. These programming elements can be referenced in other programming blocks. Therefore, any modification to the first programming block that results in changes to the definitions of multiple programming elements may cause multiple errors in other programming blocks. In existing systems, code developers may have to examine countless such definitions and references of multiple programming elements before modifying any of the multiple programming blocks. It is impractical for code developers to manually inspect a large number of programming elements and identify the relationships between them across multiple programming blocks.

[0010] In view of the above, there is a need for an efficient method and system for generating engineering programs for technical facilities. Summary of the Invention

[0011] Therefore, the purpose of this disclosure is to provide a method and system for generating engineering programs for technical facilities.

[0012] The object of this invention is achieved by a method for generating engineering programs for one or more engineering objects in a technical facility. The method includes receiving, by a processing unit, a request to generate engineering programs associated with the technical facility. The request includes an industrial sector associated with the technical facility. The technical facility is at least one of an industrial manufacturing plant, an industrial processing plant, or an industrial power generation plant. The technical facility includes one or more engineering objects. The one or more engineering objects are devices that operate together within the technical facility to achieve one or more objectives of the technical facility. Examples of the one or more engineering objects include servers, robots, switches, automation equipment, programmable logic controllers (PLCs), human-machine interfaces (HMIs), motors, valves, pumps, actuators, sensors, and (one or more) other industrial equipment. The one or more engineering objects include a processor and a memory. The memory is configured to store one or more engineering programs and multiple programming blocks. The processor of the one or more engineering objects is configured to execute the one or more engineering programs to achieve one or more key performance indicators associated with the one or more engineering programs. When the one or more engineering programs are executed by the processor of the one or more engineering objects, examples of the one or more key performance indicators include the processing speed, memory requirements, and processing efficiency of the one or more engineering programs. Multiple functions of the one or more engineering objects may vary based on the industrial sector of the technical facility. Therefore, the received request includes instructions to generate an engineering procedure that, when executed by one or more engineering objects, causes the engineering objects to perform a set of industrial-domain-specific functions specific to the technical facility. One or more engineering objects in the technical facility may be connected to each other via one or more physical connections. One or more physical connections may include physical links (such as cabling or cables). In alternative embodiments, the connection may also be a virtual link. Additionally, the functionality of one or more engineering objects may be defined based on multiple parameter values. These parameter values ​​include motor configuration parameters, network and communication parameters, valve control, sensor temperature or pressure values, speed, torque, and the like.

[0013] Additionally, the method includes a processing unit determining a set of programming blocks from a plurality of programming blocks corresponding to a set of industrial sectors, based on an industrial sector associated with the technical facility. In one example, each programming block in the set may include a sequence of programming code that, when executed by one or more engineering objects, causes the one or more engineering objects to perform one or more functions. The programming code sequence is encoded as at least one of machine-readable instructions written in natural language, a high-level programming language, assembly language, or compiled code. Advantageously, the set of programming blocks specific to the industrial sector of the technical facility is determined from a plurality of programming blocks associated with that industrial sector set. Therefore, when executed by one or more engineering objects, the determined set of programming blocks performs multiple functions specific to the industrial sector of the technical facility. The set of programming blocks applicable to the industrial sector of the technical facility is determined automatically without human intervention. Advantageously, the code development time and labor required to generate engineering programs for the technical facility are significantly reduced.

[0014] Additionally, the method includes generating an ontology schema for a set of programming blocks by a processing unit. The ontology schema includes information about the relationship between the set of variables corresponding to each programming block in the set of programming blocks and the set of key performance indicators associated with the set of programming blocks. The set of variables includes multiple data and pointer variables defined and used in the set of programming blocks. When one or more project objects execute the set of programming blocks, the set of key performance indicators associated with the set of programming blocks is the key performance indicators implemented by that one or more project objects. The ontology schema is an abstraction of the programming domain that captures the semantics of multiple programming concepts, such as class hierarchies, command lines, data variables, and data structures of the set of programming blocks, as well as one or more relationships among multiple programming concepts and multiple program properties, such as class hierarchies, declared member variables, data types of variables, memory segments used, system functions and resources used, links to other industry domain objects, etc. Therefore, the ontology schema is implemented as a knowledge graph. In one example, the ontology schema is a knowledge graph-based representation comprising multiple layers.

[0015] The knowledge graph-based representation of the programming block set comprises a combination of a control flow graph and a data flow graph. When the programming block set is executed by one or more project objects, the control flow graph is a graphical representation of the execution sequence of each command in the programming block set. When the programming block set is executed by one or more project objects, the data flow graph is a graphical representation of the data flow sequence among one or more data variables in the programming block set. This knowledge graph-based representation encapsulates the semantics of the programming block set into a structure that can be queried in an extremely fast and scalable manner compared to other forms of representation. Multiple layers are included, comprising first, second, third, and fourth knowledge layers.

[0016] The first knowledge layer includes knowledge associated with the industrial domain of the technical facility. The second knowledge layer indicates the relationship between the industrial domain and the set of variables in each programming block of the programming block set. The third knowledge layer indicates the relationship between multiple program key performance indicators associated with the programming block set and the set of variables in each block of the programming block set. The fourth knowledge layer indicates the object behavior model associated with one or more engineering objects in the technical facility. The object behavior model is a knowledge graph-based representation of one or more engineering objects overlaid with one or more behavioral information associated with one or more engineering objects. One or more behavioral information includes information relating to multiple parameter values ​​associated with one or more engineering objects and one or more thresholds and conditions associated with the industrial domain of the technical facility. For example, a first parameter value such as the revolutions per minute (rpm) of a motor can be controlled by a first engineering object such as a motor controller. A first condition that the first parameter value must be below a specified threshold can be applied to the first parameter value. The object behavior model can store information associated with the first condition. The method further includes analyzing the ontology schema associated with the programming block set by a processing unit.

[0017] Additionally, the method includes generating an engineering program associated with a technical facility by a processing unit through modifying a set of programming blocks. The set of programming blocks is modified based on an analysis of an ontology schema. Modifications include any changes, such as adding, deleting, updating, replacing, or revising one or more variables, lines of code, classes, functions, or annotations in the set of programming blocks. In one example, the analysis result of the ontology schema could be a behavior report indicating whether the behavior or characteristics of each programming block in the set of programming blocks, as defined in the ontology schema, are acceptable, improvisational, enhanced, optimized, or the like. Therefore, the set of programming blocks is modified based on the relationships between the set of variables corresponding to each programming block in the set of programming blocks, the set of key performance indicators associated with the set of programming blocks, and the industrial domain of the technical facility. Thus, an engineering program is generated based on the relationships between the set of variables corresponding to each programming block in the set of programming blocks, the set of key performance indicators associated with the set of programming blocks, and the industrial domain of the technical facility. In other words, the set of programming blocks is customized based on an ontology schema to generate an engineering program applicable to one or more engineering objects in the technical facility.

[0018] Additionally, the method includes modifying a first programming block of the programming block set by a processing unit based on user instructions. The user instructions are at least one of text-based, voice-based, and gesture-based user instructions. In one example, a user, such as a code developer, can modify the first programming block by inputting one or more lines of code into it using a data input device such as a keyboard. Furthermore, the method includes predicting, by the processing unit, the occurrence of changes to one or more key performance indicators associated with the programming block set based on analysis of ontology patterns. This change is predicted to occur as a result of a modification to the first programming block, which may have led to changes in multiple control flow and data flow paths between each programming block of the programming block set. These multiple control flow and data flow paths are syntactic and semantic interconnections and relationships between each programming block of the programming block set and one or more other programming blocks in the programming block set. For example, the first programming block of the programming block set may inherit one or more classes, functions, and / or variables from a second programming block of the programming block set. Therefore, a separate modification to any programming block of the programming block set may result in compile-time errors in other programming blocks of the programming block set. Alternatively, any modification to the first programming block may modify one or more key performance indicators associated with the programming block set.

[0019] In a preferred embodiment, the method includes a processing unit determining one or more modifications to one or more programming blocks in a set of programming blocks. The determination of one or more modifications prevents predicted changes in one or more key performance indicators (KPIs) when implemented in the one or more programming blocks. In one example, a variable name defined in a first programming block is modified within that first programming block. In such a case, the method includes determining a second programming block in the set of programming blocks whose variable name remains unchanged. The method further includes predicting changes in key performance indicators, such as compile time, as a result of the variable name modification. Changes in compile time may occur due to the absence of a modification to the variable name in one or more references to the variable in the second programming block. In such a case, the method includes determining, based on an analysis of the ontology schema, that the variable name in one or more references to the modified variable in the second programming block should be modified to prevent any changes in compile time. In another example, a variable value defined in a first programming block is modified within that first programming block. In such a case, the method includes determining a second programming block in the set of programming blocks that includes one or more conditional statements associated with the modified variable. Additionally, the method includes predicting changes in key performance indicators, such as compilation errors, as a result of the variable value modification. In such a case, the method includes determining one or more conditional statements in the second block to be modified in order to prevent changes in the compile time of the set of programming blocks.

[0020] In another preferred embodiment, the method includes a processing unit modifying one or more programming blocks of a programming block set based on one or more determined modifications to one or more programming blocks to prevent changes in one or more key performance indicators associated with the programming block set. Advantageously, any possible changes in one or more key performance indicators due to the modification of the first programming block are prevented by automatic modification of other programming blocks in the programming block set. Therefore, if any one of the programming blocks in the programming block set is modified, the method enables automatic readjustment of the other programming blocks in the programming block set to optimize one or more key performance indicators associated with the programming block set.

[0021] In another preferred embodiment, the method includes analyzing a set of programming blocks by a processing unit to identify one or more errors in a first programming block of the set of programming blocks. The method includes modifying the first programming block of the set of programming blocks by the processing unit to eliminate the one or more errors identified in the first programming block of the set of programming blocks. The method includes predicting, by the processing unit, the occurrence of a change in one or more key performance indicators associated with the set of programming blocks based on analysis of ontology patterns, wherein the change is predicted to occur as a result of the modification of the first programming block. The method further includes determining, by the processing unit, one or more modifications to one or more programming blocks in the set of programming blocks such that the implementation of the determined one or more modifications in the one or more programming blocks prevents the predicted change in one or more key performance indicators from occurring. Additionally, the method includes modifying one or more programming blocks in the set of programming blocks by the processing unit based on the determined one or more modifications for one or more programming blocks to prevent the occurrence of changes in one or more key performance indicators associated with the set of programming blocks.

[0022] In yet another preferred embodiment, the method includes generating a simulation instance of one or more engineering objects of a technical facility by a processing unit. In one example, the simulation instance is a digital twin of one or more engineering objects. The method further includes simulating the execution of a generated engineering program by one or more engineering objects of the technical facility in a simulation environment by the processing unit executing a set of programming blocks on the generated simulation instance. The method further includes determining, by the processing unit, whether the generated engineering program is valid based on the result of the simulation execution of a second set of generated programming blocks. Additionally, the method includes deploying the generated engineering program to one or more engineering objects in real time by the processing unit based on the determination that the generated engineering program is valid. Advantageously, the generated engineering program is deployed to one or more engineering objects only after it has been determined that the generated engineering program is valid. Furthermore, the method includes displaying the generated engineering program on a display device by the processing unit. Advantageously, this allows a user to record the generated engineering program.

[0023] In yet another preferred embodiment, the method includes, based on the determination that the generated engineering program is invalid, the processing unit notifies the user that the generated engineering program is invalid. Advantageously, the user is notified that the generated engineering program is invalid. This allows the user to correct and troubleshoot the engineering program. The method further includes, based on the determination that the generated engineering program is valid, the processing unit generates multiple error log files associated with the generated engineering program. The multiple error log files include multiple errors in the generated engineering program. These multiple errors are identified during the simulation execution of the generated engineering program. The method further includes, by the processing unit, displaying the generated multiple error log files on a display device.

[0024] The objective of this invention is achieved through a method for generating an engineering program for one or more engineering objects in a technical facility. The method includes receiving, by a processing unit, a set of programming blocks associated with one or more engineering objects in the technical facility. The method further includes receiving, by the processing unit, a set of desired key performance indicators (KPIs) associated with the set of programming blocks. The method further includes generating an ontology schema for the set of programming blocks by the processing unit. The ontology schema includes information about a set of variables corresponding to each programming block in the set of programming blocks, a set of KPIs associated with the set of programming blocks, and relationships between internal logic defined in the set of programming blocks. The method further includes analyzing the ontology schema associated with the set of programming blocks by the processing unit. The method further includes generating a first engineering program associated with the technical facility by the processing unit modifying the set of programming blocks. Based on the analysis of the ontology schema, the first engineering program is generated. Multiple KPIs of the first engineering program are matched with the received set of desired KPIs.

[0025] In a preferred embodiment, the method includes receiving a user request from a processing unit to optimize a set of programming blocks. The method further includes the processing unit determining an optimal set of key performance indicators (KPIs) for one or more engineering objects. The method further includes the processing unit generating a second engineering program associated with the technical facility by modifying the set of programming blocks. The second engineering program is generated based on an analysis of the ontology schema. Multiple KPIs of the second engineering program are matched with the determined optimal set of KPIs.

[0026] In yet another preferred embodiment, the method includes a processing unit detecting a decrease in one or more key performance indicators associated with a set of programming blocks. The method further includes the processing unit generating a third engineered program associated with the technical facility by modifying the set of programming blocks. The third engineered program is generated based on analysis of the ontology schema. Multiple key performance indicators of the third engineered program compensate for the detected decrease in one or more key performance indicators associated with the set of programming blocks.

[0027] The purpose of this disclosure is also achieved by an engineering system for generating engineering programs. The engineering system includes one or more processors and memory coupled to the processors. The memory includes automation modules stored in the form of machine-readable instructions executable by the processor. The automation modules are configured to perform the methods described above.

[0028] The objectives of this disclosure are also achieved in an industrial environment. This industrial environment includes an engineering system, a technical facility comprising one or more physical components, and one or more client devices communicatively coupled to the engineering system and the technical facility. The engineering system is configured to perform the method steps described above.

[0029] The object of this disclosure is also achieved by a computer program product therein storing machine-readable instructions that, when executed by one or more processors, cause one or more processors to perform the method steps as described above. Attached Figure Description

[0030] The above-mentioned and other features of the invention will now be discussed with reference to the accompanying drawings. The illustrated embodiments are intended to illustrate, not limit, the invention.

[0031] The invention is further described below with reference to the embodiments illustrated in the accompanying drawings, wherein:

[0032] Figure 1 This is a block diagram of an industrial environment capable of generating engineering programs according to embodiments of the present disclosure;

[0033] Figure 2 Such as Figure 1 The block diagram of the engineering system shown illustrates embodiments of the present disclosure.

[0034] Figure 3 Such as Figure 2 The block diagram of the automation module shown herein can be used to implement embodiments of the present disclosure;

[0035] Figure 4A -D is a process flowchart illustrating an exemplary method for generating an engineering program in an engineering system according to an embodiment of the present disclosure;

[0036] Figure 5 This is a flowchart illustrating an exemplary method for generating an object behavior model according to embodiments of the present disclosure; and

[0037] Figure 6A -C is an illustrative representation of an exemplary object behavior model according to embodiments of this disclosure. Detailed Implementation

[0038] Various embodiments are described with reference to the accompanying drawings, wherein similar reference numerals are used to designate the drawings and similar reference numerals are used to designate similar elements. In the following description, numerous specific details are set forth for purposes of explanation in order to provide a thorough understanding of one or more embodiments. It may be apparent that such embodiments can be practiced without these specific details.

[0039] Figure 1 This is a block diagram of an industrial environment 100 capable of generating engineering programs according to embodiments of the present disclosure. Figure 1 In this context, industrial environment 100 includes engineering system 102, technical facility 106, and one or more client devices 120A-N. As used herein, "industrial environment" refers to a processing environment that includes configurable computational physical and logical resources, such as networks, servers, storage devices, applications, services, and data distributed across platforms such as cloud computing platforms. Industrial environment 100 provides on-demand network access to a shared pool of configurable computational physical and logical resources. Engineering system 102 is connected to technical facility 106 via network 104 (such as a local area network (LAN), wide area network (WAN), Wi-Fi, the Internet, or any short-range or wide-range communication). Engineering system 102 is also connected to one or more client devices 120A-N via network 104.

[0040] Engineering system 102 is connected via network 104 to one or more engineering objects 108A-N in technical facility 106. The one or more engineering objects 108A-N may include servers, robots, switches, automation equipment, programmable logic controllers (PLCs), human-machine interfaces (HMIs), motors, valves, pumps, actuators, sensors, and one or more other industrial equipment. The one or more engineering objects 108A-N may be physically connected to each other or to several other components. Figure 1 (Not shown in the image). Physical connections can be achieved through wiring between one or more engineered objects 108A-N. Alternatively, one or more engineered objects 108A-N can also be connected via non-physical connections such as the Internet of Things (IoT) and 5G networks. Although Figure 1 The illustration shows an engineering system 102 connected to a technical facility 106, but those skilled in the art will envision that the engineering system 102 could be connected via a network 104 to several technical facilities 106 located in different geographical locations.

[0041] Client devices 120A-N can be desktop computers, laptop computers, tablets, smartphones, and the like. Each client device 120A-N is provided with engineering tools 122A-N for generating and / or editing engineering programs. Client devices 120A-N can access engineering system 102 for automatically generating engineering programs. Client devices 120A-N can access cloud applications (such as providing performance visualization of one or more engineering objects 108A-N via a web browser). Throughout this specification, the terms "client device" and "user device" are used interchangeably.

[0042] Engineering system 102 may be a standalone server deployed at a control station, or it may be a remote server on a cloud computing platform. In a preferred embodiment, engineering system 102 may be a cloud-based engineering system. Engineering system 102 is capable of delivering applications (such as cloud applications) for managing technical facilities 106 including one or more engineering objects 108A-N. Engineering system 102 may include a platform 110 (such as a cloud computing platform), an automation module 112, a server 114 including hardware resources and an operating system (OS), a network interface 116, and a database 118. Network interface 116 enables communication between engineering system 102, technical facilities 106, and one or more client devices 120A-N. (The interface, such as a cloud interface, is not explicitly stated in the original text.) Figure 1 (Not shown) This allows engineers at one or more client devices 120A-N to access project files stored at engineering system 102 and perform one or more actions on the project files as an instance of the same file. Server 114 may include one or more servers on which an OS is installed. Server 114 may include one or more processors, one or more storage devices (such as memory units) for storing data and machine-readable instructions (e.g., applications and application programming interfaces (APIs)), and other peripherals required to provide computing (such as cloud computing) functions. Platform 110 uses the hardware resources of server 114 and the OS to implement functions such as data reception, data processing, data presentation, and data communication, and delivers the aforementioned services using the application programming interfaces deployed therein. Platform 110 may include a combination of dedicated hardware and software built on top of the hardware and OS. In an exemplary embodiment, platform 110 may correspond to an integrated development environment (IDE) including a program editor and compiler, which allows users of client devices 120A-N to generate project programs. Platform 110 may further include an automation module 112 configured to generate project programs. Details of automation module 112 are provided in [details omitted]. Figure 3 The explanation is as follows.

[0043] Database 118 stores information related to technical facility 106 and (one or more) client devices 120A-N. Database 118 may be a Structured Query Language (SQL) data store or a NoSQL data store. In an exemplary embodiment, database 118 may be configured as a cloud-based database implemented in industrial environment 100, where computing resources are delivered as a service via platform 110. According to another embodiment of this disclosure, database 118 is a location on a file system directly accessible to automation module 112. Database 118 is configured to store project files, project programs, object behavior models, parameter values ​​associated with one or more project objects 108A-N, test results, simulation results, status messages, one or more simulation instances, graphical programs, program logic, program logic patterns, project objects 108A-N and project object attributes, one or more project object blocks, relationship information between project objects, requirements, program update messages, and the like.

[0044] Figure 2 Such as Figure 1 The block diagram of the engineering system 102 shown illustrates embodiments of the present disclosure. Figure 2 In the system, engineering system 102 includes one or more processors 202, accessible memory 204, storage unit 206, communication interface 208, input / output unit 210, network interface 212 and bus 214.

[0045] As used herein, processor(s) 202 means any type of computing circuitry, such as, but not limited to, a microprocessor unit, a microcontroller, a complex instruction set computing microprocessor unit, a reduced instruction set computing microprocessor unit, a very long instruction word microprocessor unit, an explicit parallel instruction computing microprocessor unit, a graphics processing unit, a digital signal processing unit, or any other type of processing circuitry. Processor(s) 202 may also include embedded controllers, such as general-purpose or programmable logic devices or arrays, application-specific integrated circuits, single-chip computers, and the like.

[0046] Memory 204 can be non-transitory volatile memory and non-volatile memory. Memory 204 can be coupled for communication with processor(s) 202, such as as a computer-readable storage medium. Processor(s) 202 can execute machine-readable instructions and / or source code stored in memory 204. Various machine-readable instructions can be stored in and accessed from memory 204. Memory 204 can include any suitable element for storing data and machine-readable instructions, such as read-only memory, random access memory, erasable programmable read-only memory, electrically erasable programmable read-only memory, hard disk drive, disk for disposing of optical discs, digital video discs, magnetic disks, tape cartridges, memory cards, and removable media drives such as these. In this embodiment, memory 204 includes an integrated development environment (IDE) 216. IDE 216 includes an automation module 112 stored in the form of machine-readable instructions on any of the above-described storage media and can communicate with and be executed by processor(s) 202.

[0047] When executed by processor(s) 202(s), automation module 112 causes processor(s) 202(s) to generate engineering programs in engineering system 102. In an embodiment, automation module 112 causes processor(s) 202(s) to receive a request to generate engineering programs for one or more engineering objects 108A-N in technical facility 106. The request includes the industrial sector associated with technical facility 106. The industrial sector of technical facility 106 indicates the objective of technical facility 106. For example, in one example, technical facility 106 may be a manufacturing plant for producing glass bottles. In such a case, the industrial sector of technical facility 106 may be "glass manufacturing industry". Similarly, examples of industrial sectors may include, but are not limited to, "oil refining industry", "food processing industry", and "coal mining industry". Multiple functions of one or more engineering objects 108A-N may vary based on the industrial sector of technical facility 106. Therefore, the received request includes instructions to generate an engineering program that, when executed by one or more engineering objects 108A-N, causes the one or more engineering objects 108A-N to perform a set of functions specific to the industrial domain of the technical facility 106. The engineering program is generated based on one or more engineering objects 108A-N within a portion of the technical facility 106, the physical connections between the one or more engineering objects 108A-N, and multiple parameter values ​​associated with the one or more engineering objects 108A-N and the physical connections. When a request to generate an engineering program for the technical facility 106 is received, the automation module 112 causes one or more processors 202 to determine a set of programming blocks associated with the industrial domain of the technical facility 106 from multiple programming blocks associated with the industrial domain set. The one or more processors 202 are further configured to generate an ontology pattern for the set of programming blocks.

[0048] The ontology schema includes information about the set of variables included in each programming block of the programming block set, the set of key performance indicators associated with the programming block set, and the relationships between multiple program properties, such as class hierarchy, declared member variables, data types of variables, memory segments used, system functions and resources used, and links to other industry domain objects. The set of variables includes multiple data and pointer variables defined and used within the programming block set. When one or more engineering objects 108A-N execute the programming block set, the set of key performance indicators associated with the programming block set is the key performance indicators implemented by the one or more engineering objects 108A-N. When the programming block set is executed by the processor of one or more engineering objects 108A-N, examples of the set of key performance indicators include the processing speed, memory requirements, and processing efficiency of one or more engineering programs. In one example, the ontology schema is a knowledge graph-based representation comprising multiple layers. The multiple layers include first, second, third, and fourth knowledge layers. The first knowledge layer includes knowledge associated with the industry domain of the technical facility 106. The second knowledge layer indicates the relationships between the industry domain and the set of variables in each programming block of the programming block set. The third knowledge layer indicates the relationships between multiple program key performance indicators associated with the set of programming blocks and the sets of variables in each block of the set of programming blocks. The fourth knowledge layer indicates the object behavior model associated with one or more engineering objects 108A-N in the technical facility 106. The object behavior model is a knowledge graph-based representation of one or more engineering objects 108A-N overlaid with one or more behavioral information associated with one or more engineering objects 108A-N. One or more behavioral information includes information relating to multiple parameter values ​​associated with one or more engineering objects 108A-N and one or more thresholds and conditions associated with the industrial domain of the technical facility 106. For example, a first parameter value such as the number of revolutions per minute (rpm) of a motor can be controlled by a first engineering object 108A-N such as a motor controller. A first condition that the first parameter value must be lower than a specified threshold can be applied to the first parameter value. The object behavior model can store information associated with the first condition. Advantageously, the ontology schema stores the way program blocks are written. More advantageously, the ontology schema stores the industrial domain associated with the technical facility 106. Additionally, the context associated with one or more engineering objects 108A-N of the technical facility 106 is also stored in the ontology schema. The ontology schema enables the engineering system 102 to generate engineering programs while navigating multiple contexts within the industrial domain of the technical facility 106.

[0049] The ontology pattern is further generated based on learning from previously generated engineering programs. The ontology pattern creates opportunities for poorly maintained program blocks with inconsistent quality and no enhancement footprint to be reviewed and aid in further improvements to the engineering program. Learning is achieved using any machine learning or artificial intelligence analysis method. For example, given a graph program, the program logic, tokens, keywords, syntax, semantics, and data structures associated with the graph program are learned and stored in database 118 as trained program tables.

[0050] In other words, the ontology schema further includes one or more rules associated with one or more relationships—the industrial domain of the technical facility 106, the set of variables corresponding to each programming block in the programming block set, and the set of key performance indicators associated with the programming block set. Additionally, the ontology schema includes one or more engineering objects 108A-N within a portion of the technical facility 106, the physical connections between the one or more engineering objects 108A-N, and a representation of multiple parameter values ​​associated with the one or more engineering objects 108A-N. Each programming block in the programming block set includes program logic associated with each of the one or more engineering objects 108A-N, the physical connections between the one or more engineering objects 108A-N, and multiple parameter values. This enables users of one or more client devices 120A-N to modify each programming block in the programming block set using engineering tools 122A-N.

[0051] Additionally, the automation module 112 causes one or more processors 202 to analyze the generated ontology pattern. Furthermore, the automation module 112 causes the processors 202 to modify one or more programming blocks in the programming block set based on the behavioral analysis results. Moreover, the automation module 112 causes the processors 202 to generate an engineering program associated with the technical facility 106 based on the modifications in the programming block set. The generated engineering program represents an upgraded portion of the programming block set. The upgraded portion of the programming block set includes changes to one or more key performance indicators associated with the programming block set. The first set of key performance indicators associated with the programming block set differs from the second set of key performance indicators associated with the generated engineering program.

[0052] When generating object behavior models for one or more engineering objects 108A-N based on ontology patterns, the automation module 112 causes one or more processors 202 to identify one or more engineering objects 108A-N based on their types, one or more physical connections between them, and multiple parameter values ​​associated with them. The functionality of one or more engineering objects 108A-N can be defined based on these parameter values ​​and physical connections. These parameter values ​​include motor configuration parameters, network and communication parameters, valve control, sensor temperature or pressure values, speed, torque, and the like. Specifically, attribute values ​​embedded in all engineering objects 108A-N are read to analyze the set of programming blocks associated with the technical facility 106. Additionally, the automation module 112 causes one or more processors 202 to classify the identified engineering objects 108A-N into one or more engineering object blocks based on a unique identifier associated with each of the identified engineering objects 108A-N. Furthermore, the automation module 112 causes one or more processors 202 to determine one or more attributes of the one or more classified engineering objects 108A-N. Additionally, the automation module 112 causes one or more processors 202 to determine the relationships between each of the one or more classified engineering objects 108A-N based on an ontology schema table. Furthermore, the automation module 112 causes one or more processors 202 to generate an object behavior model for the one or more engineering objects 108A-N based on the determined relationships between each of the one or more classified engineering objects 108A-N.

[0053] When analyzing the ontology pattern associated with the set of programming blocks, the automation module 112 causes one or more processors 202 to retrieve data and control parameters associated with one or more engineering objects 108A-N. Additionally, the automation module 112 causes one or more processors 202 to compare the retrieved data and control parameters associated with one or more engineering objects 108A-N with data and control parameters stored in the object behavior model. Furthermore, the automation module 112 causes one or more processors 202 to identify deviations between the retrieved data and control parameters associated with one or more engineering objects 108A-N and the data and control parameters stored in the object behavior model. Moreover, the automation module 112 causes one or more processors 202 to determine the behavior type of one or more engineering objects 108A-N corresponding to the identified deviations. Behavior types include normal, abnormal, stable, and requiring maintenance, and the like. Furthermore, the automation module 112 causes one or more processors 202 to analyze the behavior of one or more engineering objects 108A-N based on the determined comparison type.

[0054] The automation module 112 is further configured to generate the requested engineering program based on the analysis of the ontology schema and the behavior of one or more engineering objects 108A-N, by modifying the set of programming blocks. When modifying the set of programming blocks based on the analysis results of the ontology schema, the automation module 112 causes processor(s) 202 to determine one or more engineering objects 108A-N, the physical connections between the one or more engineering objects 108A-N, and multiple parameter values ​​associated with the one or more engineering objects 108A-N and the physical connections. The analysis results of the ontology schema for each programming block in the set of programming blocks indicate which programming blocks in the set need to be modified.

[0055] Furthermore, the automation module 112 enables processor(s) 202 to determine the type of modifications to be performed on the set of programming blocks. Modifications include any changes, such as the addition, deletion, updating, replacement, or revision of one or more variables, lines of code, classes, functions, or annotations in the set of programming blocks. In one example, the analysis result of the ontology schema could be a behavior report indicating whether the behavior or characteristics of each programming block in the set of programming blocks, as defined in the ontology schema, are acceptable, improvisational, enhanced, optimized, or the like. Therefore, the set of programming blocks is modified based on the relationships between the set of variables corresponding to each programming block in the set of programming blocks, the set of key performance indicators associated with the set of programming blocks, and the industrial domain of the technical facility 106. Therefore, an engineering program is generated based on the relationships between the set of variables corresponding to each programming block in the set of programming blocks, the set of key performance indicators associated with the set of programming blocks, and the industrial domain of the technical facility 106. In other words, the set of programming blocks is customized based on the ontology schema to generate an engineering program applicable to one or more engineering objects 108A-N in the technical facility 106.

[0056] Additionally, the automation module 112 causes one or more processors 202 to generate simulation instances of engineering objects 108A-N. Furthermore, the automation module 112 causes one or more processors 202 to simulate the behavior of one or more engineering objects 108A-N of the technical facility 106 in a simulation environment by executing engineering programs on the generated simulation instances. Furthermore, the automation module 112 causes one or more processors 202 to verify the engineering programs associated with the technical facility 106 based on the simulation results. Additionally, the automation module 112 causes one or more processors 202 to deploy the generated engineering programs in real time to one or more engineering objects 108A-N installed in the technical facility 106 based on the verification results.

[0057] Storage unit 206 may be a non-transitory storage medium configured to store a database (such as database 118) comprising a server version of multiple programming blocks associated with an industrial domain set.

[0058] Communication interface 208 is configured to establish a communication session between one or more client devices 120A-N and engineering system 102. Communication interface 208 allows one or more engineering applications running on client devices 120A-N to import / export project files into engineering system 102. In an embodiment, communication interface 208 interacts with interfaces at one or more client devices 120A-N to allow engineers to access engineering programs associated with project files and perform one or more actions on the engineering programs stored in engineering system 102.

[0059] Input-output unit 210 may include an input device capable of receiving one or more input signals (such as user commands for processing project files)—a keypad, a touch-sensitive display, a camera (such as a camera that receives gesture-based input), etc. Furthermore, input-output unit 210 may be a display unit for displaying a graphical user interface that visualizes a behavioral model associated with the modified project program and also displays status information associated with each set of actions performed on the graphical user interface. This set of actions may include performing predefined tests, downloading, compiling, and deploying graphical programs. Bus 214 serves as the interconnect between processor 202, memory 204, and input-output unit 210.

[0060] Network interface 212 can be configured to handle network connectivity, bandwidth and network services between engineering system 102, client devices 120A-N and technical facilities 106.

[0061] Those skilled in the art will understand that Figure 2 The hardware depicted may vary for a particular implementation. For example, other peripheral devices, such as optical disc drives and the like, local area network (LAN), wide area network (WAN), wireless (e.g., Wi-Fi) adapters, graphics adapters, disk controllers, and input / output (I / O) adapters may be used in addition to or in place of the hardware depicted. The examples depicted are provided for illustrative purposes only and are not intended to imply any architectural limitations with respect to this disclosure.

[0062] Those skilled in the art will recognize that, for simplicity and clarity, the complete structure and operation of all data processing systems applicable to this disclosure are not depicted or described herein. Instead, only the parts of engineering system 102 that are unique to or necessary for understanding this disclosure are depicted and described. The remaining construction and operation of engineering system 102 may conform to any of the various current implementations and practices known in the art.

[0063] Figure 3 This is a block diagram of automation module 112, such as... Figure 2 Those shown can be embodiments of this disclosure. Figure 3 In the process, the automation module 112 includes a request handler module 302, an object behavior model generation module 304, an analysis module 306, a modifier module 308, an engineering object database 310, a verification module 312, and a deployment module 314. Combined with... Figure 1 and Figure 2 explain Figure 3 .

[0064] Request handler module 302 is configured to receive requests for generating engineering programs associated with the industrial domain of technical facility 106. For example, requests may be received via a network from one or more users outside the industrial environment 100. In an alternative embodiment, requests may be received via a network from one or more client devices 120A-N. Request handler module 302 is further configured to determine a set of programming blocks associated with the industrial domain from a plurality of programming blocks associated with the industrial domain set.

[0065] The object behavior model generation module 304 is configured to generate an ontology schema for a set of programming blocks. In a preferred embodiment, the generated ontology schema includes information about the relationships between a set of variables corresponding to each programming block in the set of programming blocks and a set of key performance indicators associated with the set of programming blocks. The set of variables includes multiple data and pointer variables defined and used in the set of programming blocks. When one or more engineering objects 108A-N execute the set of programming blocks, the set of key performance indicators associated with the set of programming blocks is the key performance indicator implemented by one or more engineering objects 108A-N. In one example, the ontology schema is a knowledge graph-based representation comprising multiple layers. The multiple layers include a first, second, third, and fourth knowledge layer. The first knowledge layer includes knowledge associated with the industrial domain of the technical facility 106. The second knowledge layer indicates the relationships between the industrial domain and the set of variables in each programming block of the set of programming blocks. The third knowledge layer indicates the relationships between multiple program key performance indicators associated with the set of programming blocks and the set of variables in each block of the set of programming blocks. The fourth knowledge layer indicates the object behavior model associated with one or more engineering objects 108A-N in the technical facility 106. The object behavior model includes data and control parameters associated with one or more engineering objects 108A-N. Additionally, the ontology model includes one or more rules associated with one or more relationships between the one or more engineering objects 108A-N. To generate the object behavior model, the object behavior model generation module 304 is configured to identify one or more engineering objects 108A-N, one or more physical connections between the one or more engineering objects 108A-N, and multiple parameter values ​​associated with the one or more engineering objects 108A-N and physical connections based on the type of the one or more engineering objects 108A-N. Each of the one or more engineering objects 108A-N is associated with a unique identifier. The identification step is achieved by structurally analyzing the graphical program associated with the engineering objects in terms of control flow, data flow, and data usage. Specifically, attribute values ​​embedded in all engineering objects are read to analyze the graphical program associated with the one or more engineering objects 108-N. Then, the object behavior model generation module 304 is configured to classify the identified one or more engineering objects 108A-N into one or more engineering object blocks 108A-N based on the unique identifier associated with each of the one or more identified engineering objects. Each of one or more project object blocks includes a set of defined actions to be performed. These project object blocks include program variable blocks, domain blocks, component-level blocks, configuration information blocks, subcomponent-level blocks, program logic blocks, function blocks, and the like. The set of actions to be performed is stored as a hash table across the corresponding project object blocks in database 118.For example, if the type of an engineering object is a specific type of motor, then such a specific type of motor is classified under the engineering object block "Motor". Similarly, if the type of an engineering object is a physical communication link cable between two engineering objects 108A-N, then the physical communication link cable is classified under "Physical Connection" and so on. Unique identifiers associated with one or more such engineering objects 108A-N help to classify them into corresponding one or more engineering object blocks. Exemplary engineering object block categories include basic block categories, variable and statement categories, statement categories, and so on.

[0066] Additionally, the object behavior model generation module 304 is configured to determine one or more engineering object attributes associated with each of the classified one or more engineering objects 108A-N. Object attributes include the object's domain context, associations and relationships with other engineering objects, object size, object identifier, engineering object type, and the like. Such object attributes are determined for each of the one or more engineering objects. This determination of the ontology enables engineering object heuristics and generalization, defining the attributes and relationships between engineering objects.

[0067] Once the object attributes are determined, the object behavior model generation module 304 is configured to determine the relationships between each of the one or more classified engineering objects 108A-N based on the defined relationships between each of them. The object behavior model generation module 304 is further configured to generate object behavior models for the one or more engineering objects.

[0068] In an embodiment, the object behavior model generation module 304 is also configured to manage graphical programs corresponding to each of one or more engineering objects 108A-N, physical connections between the one or more engineering objects 108A-N, and multiple parameter values ​​associated with the one or more engineering objects 108A-N and the physical connections. The graphical program includes program logic. Each graphical program includes a set of programmable instructions or statements corresponding to the program logic. Each graphical program may correspond to a functional block under an engineering design. An engineering design may include several such functional blocks. A user at client devices 120A-N uses engineering tools 122A-N to design or develop engineering programs by coding each of these graphical programs.

[0069] Analysis module 306 is configured to analyze the ontology pattern associated with the set of programming blocks. Specifically, analysis module 306 is configured to retrieve data and control parameters associated with each programming block in the set of programming blocks. The data and control parameters are key performance indicators, including information related to the set of programming blocks in the industrial domain associated with technical facility 106, such as sensor data, actuator data, environmental data, network data, any automation data, and the like. Additionally, analysis module 306 is configured to compare the retrieved data and control parameters associated with the set of programming blocks with data and control parameters stored in the object behavior model. Furthermore, analysis module 306 is configured to identify the deviation between the retrieved data and control parameters associated with the set of programming blocks and the data and control parameters stored in the object behavior model. The deviation indicates the difference between the retrieved data and control parameters and the data and control parameters stored in the object behavior model. Furthermore, analysis module 306 is configured to determine the behavior type of one or more engineering objects 108A-N corresponding to the identified deviation. Behavior types include normal, abnormal, stable, and requiring maintenance, and the like. Furthermore, the analysis module 306 is configured to analyze the behavior of one or more engineering objects 108A-N based on the determined behavior types. In one example, the analysis module 306 is configured to analyze multiple programming blocks by applying natural language processing algorithms to the source code of multiple programming blocks.

[0070] Modifier module 308 is configured to modify a set of programming blocks based on the analysis results of behavior and ontology patterns. Modification of the set of programming blocks is based on the analysis of ontology patterns. Modifications include any changes, such as adding, deleting, updating, replacing, or revising one or more variables, lines of code, classes, functions, or annotations in the set of programming blocks. In one example, the analysis results of the ontology patterns could be a behavior report indicating whether the behavior or characteristics of each programming block in the set of programming blocks, as defined in the ontology patterns, are acceptable, improvisational, enhanced, optimized, or the like. Therefore, the set of programming blocks is modified based on the relationships between the set of variables corresponding to each programming block in the set of programming blocks, the set of key performance indicators associated with the set of programming blocks, and the industrial domain of the technical facility 106. Thus, an engineering program is generated based on the relationships between the set of variables corresponding to each programming block in the set of programming blocks, the set of key performance indicators associated with the set of programming blocks, and the industrial domain of the technical facility 106. In other words, the set of programming blocks is customized based on ontology patterns to generate an engineering program applicable to one or more engineering objects 108A-N in the technical facility.

[0071] The project object database 310 is configured to generate a project object library, which includes generated object behavior models, one or more project objects 108A-N, physical connections between the one or more project objects 108A-N, and multiple parameter values ​​associated with the one or more project objects 108A-N and the physical connections. The project object database 310 is configured to continuously update the project object library with updated versions of the project program. Furthermore, the project object database 310 is configured to maintain the project object library in an ontology-based manner.

[0072] Verification module 312 is configured to generate simulation instances of one or more engineering objects 108A-N for the technical facility. In one example, the simulation instance is a digital twin of one or more engineering objects 108A-N. Verification module 312 is configured to simulate the execution of a generated engineering program by one or more engineering objects 108A-N of the technical facility 106 in a simulation environment by executing a set of programming blocks on the generated simulation instance. Verification module 312 is configured to determine that the generated engineering program is valid based on the results of the simulation execution of the generated second set of programming blocks. Additionally, verification module 312 is configured to simulate the behavior of a set of programming blocks in a simulation environment by executing the set of programming blocks on the generated simulation instance. The simulation environment mimics an actual technical facility, such as technical facility 106. Alternatively, the simulation environment can be a virtual setting of the actual technical facility 106. Furthermore, verification module 312 is configured to verify the behavior of the set of programming blocks based on the simulation results. If deployed in technical facility 106, the simulation results can indicate the success or failure of the engineering program or the set of programming blocks.

[0073] Deployment module 314 is configured to deploy the engineering program in real time to one or more engineering objects 108A-N installed in the technical facility 106 based on verification. Advantageously, after determining that the generated engineering program is valid, the generated engineering program is deployed only to one or more engineering objects 108A-N.

[0074] Figure 4A -D is a process flowchart illustrating an exemplary method 400 for generating an engineering program in an engineering system 102 according to an embodiment of the present disclosure.

[0075] At step 402, processor 202 receives a request to generate an engineering program associated with technical facility 106. This request is received via input / output unit 210. The request is received as at least one of a text command, a voice-based command, a gesture-based command, or as input from a pointer device of input / output unit 210. The request includes an industrial sector associated with technical facility 106. Technical facility 106 is at least one of an industrial manufacturing plant, an industrial processing plant, or an industrial power generation plant. Technical facility 106 includes one or more engineering objects 108A-N. The one or more engineering objects 108A-N are devices that operate together within technical facility 106 to achieve one or more objectives of technical facility 106. Examples of one or more engineering objects 108A-N include servers, robots, switches, automation equipment, programmable logic controllers (PLCs), human-machine interfaces (HMIs), motors, valves, pumps, actuators, sensors, and one or more other industrial equipment.

[0076] At step 404, processor 202 determines a set of programming blocks from a plurality of programming blocks corresponding to a set of industrial sectors associated with technical facility 106. In one example, each programming block in the set may include a sequence of programming code that, when executed by one or more engineering objects 108A-N, causes the one or more engineering objects 108A-N to perform one or more functions. The sequence of programming code may be machine-readable instructions written in natural language, a high-level programming language, assembly language, or compiled code. Advantageously, the set of programming blocks specific to the industrial sector of technical facility 106 is determined from a plurality of programming blocks associated with a set of industrial sectors. For example, the plurality of programming blocks includes programming blocks associated with a first industrial sector such as "bottle manufacturing industry," a second industrial sector such as "power generation industry," a third industrial sector such as "automobile manufacturing industry," and a fourth industrial sector such as "machine manufacturing industry." The industrial sector of technical facility 106 may be the first industrial sector. In such a case, processor 202 determines a set of programming blocks associated with the first industrial sector. Therefore, when the determined set of programming blocks is executed by one or more engineering objects 108A-N, multiple functions specific to the first industrial sector of the technical facility 106 are performed. The set of programming blocks applicable to the industrial sector of the technical facility 106 is automatically determined without manual intervention. Advantageously, the code development time and labor required to generate engineering programs specific to the industrial sector of the technical facility 106 are significantly reduced.

[0077] At step 406, processor 202 generates an ontology schema for the set of programming blocks. The ontology schema includes information about the relationships between the set of variables corresponding to each programming block in the set of programming blocks and the set of key performance indicators associated with the set of programming blocks. The set of variables includes multiple data and pointer variables defined and used in the set of programming blocks. When one or more engineering objects 108A-N execute the set of programming blocks, the set of key performance indicators associated with the set of programming blocks is the key performance indicator implemented by one or more engineering objects 108A-N. In one example, the ontology schema is a knowledge graph-based representation comprising multiple layers. The multiple layers include first, second, third, and fourth knowledge layers. The first knowledge layer includes knowledge associated with the industrial domain of the technical facility 106. The second knowledge layer indicates the relationships between the industrial domain and the set of variables in each programming block of the set of programming blocks. The third knowledge layer indicates the relationships between multiple program key performance indicators associated with the set of programming blocks and the set of variables in each block of the set of programming blocks. The fourth knowledge layer indicates the object behavior model associated with one or more engineering objects 108A-N in the technical facility 106. An object behavior model is a knowledge graph-based representation of one or more engineering objects 108A-N, overlaid with one or more behavioral information associated with one or more engineering objects 108A-N. The one or more behavioral information includes information relating to multiple parameter values ​​associated with the one or more engineering objects 108A-N and one or more thresholds and conditions associated with the industrial domain of the technical facility 106. For example, a first parameter value, such as the number of revolutions per minute (rpm) of a motor, can be controlled by a first engineering object such as a motor controller. A first condition, that the first parameter value must be below a specified threshold, can be applied to the first parameter value. The object behavior model can store information associated with the first condition.

[0078] In one example, to generate an ontology schema, processor 202 is configured to analyze the source code of a set of programming blocks using a natural language processing algorithm. The source code of the programming block set includes comments, data variables, functions, and classes. Processor 202 is configured to analyze the comments, data variables, functions, and classes in the source code into a first knowledge graph, which includes information about the industry domain and the context associated with the programming block set. Additionally, the first knowledge graph includes comments about the program logic of the programming block set. Processor 202 is further configured to analyze the source code to generate a second knowledge graph, which includes information about the program structure of the programming block set. Processor 202 is further configured to identify one or more programming blocks in the programming block set that have the same business context but structural differences. Processor 202 is further configured to analyze the first and second knowledge graphs to determine the maximum and minimum values ​​of each variable in the programming block set. Processor 202 is further configured to update the generated ontology schema based on the maximum and minimum values ​​determined for each variable in the programming block set. Advantageously, the updated ontology model includes information on how to establish industrial automation systems in technical facility 106.

[0079] At step 408, processor 202 analyzes the ontology schema associated with the set of programming blocks. At step 410, processor 202 generates an engineering program associated with the technical facility 106 by modifying the set of programming blocks. The programming block set is modified based on the analysis of the ontology schema. Modifications include any changes, such as the addition, deletion, updating, replacement, or revision of one or more variables, lines of code, classes, functions, or annotations in the set of programming blocks. In one example, the analysis result of the ontology schema could be a behavior report indicating whether the behavior or characteristics of each programming block in the set of programming blocks, as defined in the ontology schema, are acceptable, improvisational, enhanced, optimized, or the like. Therefore, the programming block set is modified based on the relationships between the set of variables corresponding to each programming block in the set of programming blocks, the set of key performance indicators associated with the set of programming blocks, and the industrial domain of the technical facility 106. Therefore, an engineering program is generated based on the relationships between the set of variables corresponding to each programming block in the set of programming blocks, the set of key performance indicators associated with the set of programming blocks, and the industrial domain of the technical facility 106. In other words, a set of programming blocks is customized based on the ontology pattern to generate an engineering program applicable to one or more engineering objects 108A-N in the technical facility 106.

[0080] At step 412, the processor 202 modifies a first programming block of the programming block set based on user instructions. The user instructions are at least one of text-based, voice-based, and gesture-based user instructions. In one example, a user, such as a code developer, can modify the first programming block by entering one or more lines of code into it.

[0081] At step 414, processor 202 predicts the occurrence of changes to one or more key performance indicators associated with the set of programming blocks based on analysis of the ontology schema. This change is predicted to occur as a result of a modification to the first programming block. This change may occur due to multiple control flow and data flow paths between each programming block in the set. These multiple control flow and data flow paths are the syntactic and semantic interconnections and relationships between each programming block in the set and one or more other programming blocks in the set. For example, the first programming block in the set may inherit one or more classes, functions, and / or variables from a second programming block in the set. Therefore, a single modification to any programming block in the set may result in compile-time errors in other programming blocks in the set. Alternatively, any modification to the first programming block may modify one or more key performance indicators associated with the set of programming blocks. This allows code developers to modify the set of programming blocks without having to manually analyze the set to identify multiple control flow and data flow paths.

[0082] At step 416, processor 202 determines one or more modifications to one or more programming blocks in the set of programming blocks, such that the implementation of the determined one or more modifications in the one or more programming blocks prevents predicted changes in one or more key performance indicators. In one example, a variable name defined in a first programming block is modified in that first programming block. In such a case, the method includes determining a second programming block in the set of programming blocks whose variable name has not been changed. Additionally, processor 202 predicts changes in key performance indicators such as compile time as a result of the variable name modification. Changes in compile time may occur because a modification to the variable name is missing in one or more references to the variable in the second programming block. In such a case, processor 202, based on analysis of the ontology schema, determines that the variable name in one or more references to the modified variable in the second programming block should be modified to prevent any changes in compile time. In another example, a variable value defined in a first programming block is modified in that first programming block. In such a case, processor 202 determines a second programming block in the set of programming blocks that includes one or more conditional statements associated with the modified variable. Furthermore, processor 202 is configured to predict changes in key performance metrics, such as compilation errors, as a result of variable value modifications. In such cases, processor 202 determines that one or more conditional statements in the second block need to be modified to prevent changes in the compilation time of the set of programming blocks. Advantageously, the code developer is informed of the changes in one or more key performance metrics before the modified set of programming blocks is executed.

[0083] At step 418, processor 202 modifies one or more programming blocks in the programming block set based on one or more determined modifications to one or more programming blocks to prevent changes in one or more key performance indicators associated with the programming block set. Advantageously, any possible changes in one or more key performance indicators due to the modification of the first programming block are prevented by automatic modification of the other programming blocks in the programming block set. Thus, if any one of the programming blocks in the set is modified, the method enables automatic readjustment of the other programming blocks in the programming block set to optimize one or more key performance indicators associated with the programming block set.

[0084] At step 420, processor 202 analyzes the set of programming blocks to identify one or more errors in a first programming block of the set. The method includes modifying the first programming block of the set by processor 202 to eliminate one or more errors identified in the first programming block. Advantageously, processor 202 automatically eliminates one or more errors.

[0085] At step 422, processor 202 predicts, based on analysis of the ontology pattern, the occurrence of changes in one or more key performance indicators associated with the set of programming blocks. This change is predicted to occur as a result of a modification to the first programming block.

[0086] At step 424, processor 202 determines one or more modifications for one or more programming blocks in the set of programming blocks, such that the implementation of the determined one or more modifications in one or more programming blocks prevents predicted changes in one or more key performance indicators from occurring.

[0087] At step 426, processor 202 modifies one or more programming blocks of the programming block set based on one or more determined modifications to one or more programming blocks to prevent changes in one or more key performance indicators associated with the programming block set.

[0088] At step 428, processor 202 generates simulation instances for one or more engineering objects 108A-N of technical facility 106. In one example, the simulation instance is a digital twin of one or more engineering objects 108A-N.

[0089] At step 430, the generated engineering program is executed in the simulation environment by one or more engineering objects 108A-N of the technical facility 106 by executing a set of programming blocks on the generated simulation instance.

[0090] At step 432, based on the simulation execution results of the generated second set of programming blocks, the processor 202 determines that the generated engineering program is valid.

[0091] At step 434, based on the determination that the generated engineering program is valid, the generated engineering program is deployed in real time by the processor 202 to one or more engineering objects 108A-N. Advantageously, after determining that the generated engineering program is valid, the generated engineering program is deployed only to one or more engineering objects 108A-N.

[0092] At step 436, the processor 202 displays the generated project program on a display device such as the client device 120A-N. Advantageously, this allows the user to save the generated project program.

[0093] At step 438, based on the determination that the generated engineering program is invalid, the processor 202 notifies the user of the invalidity of the generated engineering program. Advantageously, the user is notified that the generated engineering program is invalid. Therefore, the user is able to correct the engineering program and troubleshoot it.

[0094] At step 440, based on the determination that the generated engineering program is invalid, the processor 202 generates multiple error log files associated with the generated engineering program. These multiple error log files contain multiple errors from the generated engineering program. These errors are identified during the simulation execution of the generated engineering program.

[0095] At step 442, the processor 202 displays the generated multiple error log files on a display device.

[0096] Figure 5 This is a flowchart illustrating an exemplary method 500 for generating an engineering program in an engineering system 102 according to an embodiment of the present disclosure.

[0097] At step 502, processor 202 receives a set of programming blocks associated with one or more engineering objects 108A-N in technical facility 106.

[0098] At step 504, processor 202 receives a set of expected key performance indicators associated with the set of programming blocks.

[0099] At step 506, processor 202 generates an ontology schema for the set of programming blocks. The ontology schema includes information about the relationships between the set of variables corresponding to each programming block in the set of programming blocks and the set of key performance indicators associated with the set of programming blocks.

[0100] At step 508, processor 202 analyzes the ontology pattern associated with the set of programming blocks. At step 510, by modifying the set of programming blocks, processor 202 generates a first engineered program associated with technical facility 106. The first engineered program is generated based on the analysis of the ontology pattern. Several key performance indicators of the first engineered program are matched with the received set of expected key performance indicators.

[0101] At step 510, processor 202 receives a user request to optimize the set of programming blocks. At step 510, processor 202 determines an optimal set of key performance indicators (KPIs) for one or more engineering objects 108A-N based on ontology pattern analysis. At step 512, by modifying the set of programming blocks, processor 202 generates a second engineering program associated with technical facility 106. The second engineering program is generated based on ontology pattern analysis. Multiple KPIs of the second engineering program are matched with the determined optimal set of KPIs.

[0102] At step 512, processor 202 detects a decrease in one or more key performance indicators associated with the programming block set. At step 516, by modifying the programming block set, processor 202 generates a third engineered program associated with technical facility 106. The third engineered program is generated based on analysis of the ontology pattern. Multiple key performance indicators of the third engineered program compensate for the detected decrease in one or more key performance indicators associated with the programming block set.

[0103] Figure 6A -C is a schematic representation of an exemplary ontology schema according to embodiments of this disclosure. The ontology schema includes information about the relationship between a set of variables corresponding to each programming block in a set of programming blocks and a set of key performance indicators associated with the set of programming blocks. The set of variables includes multiple data and pointer variables defined and used in the set of programming blocks. When one or more project objects 108A-N execute the set of programming blocks, the set of key performance indicators associated with the set of programming blocks is the key performance indicators implemented by one or more project objects 108A-N. When the set of programming blocks is executed by the processor of one or more project objects 108A-N, examples of the set of key performance indicators include the processing speed, memory requirements, and processing efficiency of one or more project programs. In one example, the ontology schema is a knowledge graph-based representation comprising multiple layers. The multiple layers include a first, second, third, and fourth knowledge layer. Figure 6A The diagram depicts an exemplary first knowledge layer of the generated ontology model. This first knowledge layer includes knowledge related to the industrial domain of the technical facility 106. Figure 6B The example of an exemplary second knowledge layer of the ontology schema is depicted. This second knowledge layer indicates the relationships between the sets of variables in each programming block of the industry domain and the set of programming blocks, as well as the context of those variable sets within each programming block. Figure 6CThe diagram depicts an exemplary combination of a first knowledge layer and a second knowledge layer. A third knowledge layer indicates the relationships between multiple program key performance indicators associated with a set of programming blocks and the sets of variables within each block of the programming block set. A fourth knowledge layer indicates an object behavior model associated with one or more engineering objects 108A-N in the technical facility 106. The object behavior model is a knowledge graph-based representation of one or more engineering objects 108A-N overlaid with one or more behavioral information associated with them. The one or more behavioral information includes information relating to multiple parameter values ​​associated with the one or more engineering objects 108A-N and one or more thresholds and conditions associated with the industrial domain of the technical facility 106. For example, a first parameter value, such as the number of revolutions per minute (rpm) of a motor, may be controlled by a first engineering object, such as a motor controller. A first condition, that the first parameter value must be below a specified threshold, may apply to the first parameter value. The object behavior model may store information associated with the first condition.

[0104] This disclosure may take the form of a computer program product comprising program modules accessible from a computer-usable or computer-readable medium storing program code used by or in connection with one or more computers, processors, or instruction execution systems. For the purposes of this description, a computer-usable or computer-readable medium may be any means that may contain, store, communicate, propagate, or transport a program used by or in connection with an instruction execution system, apparatus, or device. The medium may be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium that is not included in the definition of a physical computer-readable medium as a signal carrier, including semiconductor or solid-state memory, magnetic tape, removable computer disks, random access memory (RAM), read-only memory (ROM), hard disks, and optical disks, such as optical disc read-only memory (CD-ROM), read / write optical discs, and DVDs. As known to those skilled in the art, both the processor and the program code used to implement each aspect of this technology may be centralized or distributed (or a combination thereof).

[0105] While this disclosure has been described in detail with reference to certain embodiments, it should be understood that this disclosure is not limited to those embodiments. In view of this disclosure, many modifications and variations will be possible on their own without departing from the scope of the various embodiments of this disclosure as described herein. Therefore, the scope of this disclosure is indicated by the following claims rather than the foregoing description. All changes, modifications, and variations within the meaning and scope of equivalents of the claims are considered to be within its scope. All advantageous embodiments claimed in the method claims can also be applied to the system / apparatus claims.

Claims

1. A method for generating engineering programs for one or more engineering objects in a technical facility, the method comprising: The processing unit receives a request to generate an engineering procedure associated with the technical facility, wherein the request includes an industrial sector associated with the technical facility; The processing unit determines a set of programming blocks from multiple programming blocks corresponding to a set of industrial sectors based on the industrial sectors associated with the technical facilities; The processing unit generates an ontology schema for the set of programming blocks, wherein the ontology schema includes information about the relationship between the set of variables and the set of key performance indicators. The variable set corresponds to each programming block in the programming block set, and The set of key performance indicators is associated with the set of programming blocks, and the key performance indicators are key performance indicators implemented by the one or more engineering objects; The processing unit analyzes the ontology pattern associated with the set of programming blocks; as well as The processing unit generates an engineering program associated with the technical facility by modifying a set of programming blocks, wherein the set of programming blocks is modified based on an analysis of the ontology schema.

2. The method according to claim 1, further comprising: The processing unit modifies the first programming block of the programming block set based on user instructions; Based on the analysis of the ontology pattern, the processing unit predicts the occurrence of changes in one or more key performance indicators associated with the set of programming blocks, wherein the changes are predicted to occur as a result of the modification of the first programming block. The processing unit determines one or more modifications to one or more programming blocks in the set of programming blocks, such that the implementation of the determined one or more modifications in one or more programming blocks prevents the occurrence of predicted changes in one or more key performance indicators. as well as The processing unit modifies one or more programming blocks of the programming block set based on one or more modifications determined for one or more programming blocks, in order to prevent changes in one or more key performance indicators associated with the programming block set.

3. The method according to claim 1, further comprising: The processing unit analyzes the set of programming blocks to identify one or more errors in the first programming block of the set. The processing unit modifies the first programming block of the programming block set to eliminate one or more identified errors in the first programming block of the programming block set; The processing unit predicts the occurrence of changes in one or more key performance indicators associated with the set of programming blocks based on the analysis of the ontology pattern, wherein the changes are predicted to occur as a result of the modification of the first programming block. The processing unit determines one or more modifications to one or more programming blocks in the set of programming blocks, such that the implementation of the determined one or more modifications in one or more programming blocks prevents the occurrence of predicted changes in one or more key performance indicators. as well as The processing unit modifies one or more programming blocks of the programming block set based on one or more modifications determined for one or more programming blocks, in order to prevent changes in one or more key performance indicators associated with the programming block set.

4. The method according to claim 1, further comprising: The processing unit generates simulation instances for one or more engineering objects of the technical facility; and The processing unit simulates the execution of the generated engineering program by one or more engineering objects of the technical facility in the simulation environment by executing a set of programming blocks on the generated simulation instance.

5. The method of claim 4, further comprising: Based on the simulation execution results of the generated second set of programming blocks, the processing unit determines whether the generated engineering program is valid; Based on the valid determination of the generated engineering program, the processing unit will deploy the generated engineering program to one or more engineering objects in real time. as well as The generated engineering program is displayed on a display device by the processing unit.

6. The method of claim 4, further comprising: Based on the determination that the generated engineering program is invalid, the processing unit notifies the processing unit of the invalidity of the generated engineering program; Based on the determination that the generated engineering program is invalid, the processing unit generates multiple error log files associated with the generated engineering program; as well as The processing unit displays the generated multiple error log files on the display device.

7. The method of claim 1, wherein the ontology schema is a knowledge graph-based representation comprising multiple layers, and The plurality of layers includes: The first knowledge layer includes knowledge related to the industrial sector of technological facilities. The second knowledge layer indicates the relationships between sets of variables within each programming block of the industrial domain and programming block set. The third knowledge layer indicates the relationships between multiple key performance indicators associated with the set of programming blocks and the sets of variables within each block of the set of programming blocks, as well as... The fourth knowledge layer indicates the object behavior model associated with multiple engineering objects in the technical facility.

8. A method for generating engineering programs for one or more engineering objects in a technical facility, comprising: The processing unit receives a set of programming blocks associated with one or more engineering objects in the technical facility; The processing unit receives the set of expected key performance indicators associated with the set of programming blocks; as well as The processing unit generates an ontology schema for the set of programming blocks, wherein the ontology schema includes information about the relationship between the set of variables and the set of key performance indicators. The variable set corresponds to each programming block in the programming block set, and The set of key performance indicators is associated with the set of programming blocks, and the key performance indicators are key performance indicators implemented by the one or more engineering objects; The processing unit analyzes the ontology pattern associated with the set of programming blocks; as well as The processing unit generates a first engineering program associated with the technical facility by modifying a set of programming blocks, wherein The first engineering program is generated based on the analysis of the ontology schema, and The first engineering procedure has several key performance indicators that match the received set of expected key performance indicators.

9. The method of claim 8, further comprising: The processing unit receives user requests for optimizing the set of programming blocks; The processing unit determines the optimal set of key performance indicators for one or more engineering objects. as well as The processing unit generates a second engineering program associated with the technical facility by modifying a set of programming blocks, wherein The second engineering program is generated based on the analysis of the ontology schema, and The second engineering procedure has multiple key performance indicators that match the optimal set of key performance indicators.

10. The method of claim 8, further comprising: The processing unit detects a decrease in one or more key performance indicators associated with the set of programming blocks; as well as The processing unit generates a third engineering program associated with the technical facility by modifying a set of programming blocks, wherein... The third-party engineering program is generated based on the analysis of the ontology schema, and The third engineering procedure compensates for a decrease in one or more key performance indicators detected in relation to the set of programming blocks.

11. The method of claim 8, wherein the ontology schema is a knowledge graph-based representation comprising multiple layers, and The plurality of layers includes: The first knowledge layer includes knowledge related to the industrial sector of technological facilities. The second knowledge layer indicates the relationships between sets of variables within each programming block of the industrial domain and programming block set. The third knowledge layer indicates the relationships between multiple key performance indicators associated with the set of programming blocks and the sets of variables within each block of the set of programming blocks, as well as... The fourth knowledge layer indicates the object behavior model associated with multiple engineering objects in the technical facility.

12. An engineering system for generating engineering programs for one or more engineering objects in a technical facility, wherein the engineering system comprises: One or more processors; and A memory coupled to the one or more processors, wherein the memory includes an automation module stored in the form of machine-readable instructions executable by the one or more processors, wherein the automation module is capable of performing the method according to any one of claims 1-11.

13. An industrial environment, comprising: The engineering system as described in claim 12; Technical facilities including one or more physical components; as well as One or more client devices are coupled to an engineering system via a network communication, wherein the engineering system is configured to perform the method according to any one of claims 1 to 11.

14. A computer program product storing machine-readable instructions that, when executed by one or more processors, cause the processors to perform the method according to any one of claims 1-11.