Method and system for generating engineering programs compatible with a specific engineering environment

The method and system automate the conversion of engineering projects to ensure compatibility with different environments by analyzing data and control flows, generating logical blocks, and integrating knowledge graphs, thereby reducing manual effort and time for compatibility and deployment.

CN117882050BActive Publication Date: 2025-07-15SIEMENS AG
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202280058434.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-08-27
Filing Date
2022-08-26
Publication Date
2025-07-15
Estimated Expiration
2042-08-26

AI Technical Summary

Technical Problem

In the prior art, when migrating from one engineering environment to another, a large amount of code needs to be manually modified to ensure compatibility, which makes it time-consuming and difficult to automate, and poor readability and maintainability of the engineering project.

Method used

The processing unit receives the request, converts the first engineering project into a second engineering project compatible with the second engineering environment, uses natural language processing algorithm to analyze code statements, group them into logical blocks, generates knowledge graphs and ontology modes, and the automation module modularizes the engineering project and integrates code snippets to ensure compatibility.

Benefits of technology

It reduces the time and labor to manually modify the code, improves the readability and maintainability of the project, and simplifies the transplantation process of the project between different engineering environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117882050B_ABST
    Figure CN117882050B_ABST
Patent Text Reader

Abstract

The present invention provides a method and system for generating a project item compatible with a specific engineering environment. The method includes receiving, by a processing unit (202), a request to convert a first project item (702) compatible with a first engineering environment into a second project item (704) compatible with a second engineering environment. The method further includes determining, by the processing unit (202), a plurality of logic blocks (506a-f, 508a-f) from a plurality of project items (502), wherein each of the plurality of project items (502) is compatible with a specific engineering environment among a plurality of engineering environments. The method further includes generating, by the processing unit (202), a second project item (704) compatible with a second engineering environment (704a) by merging a set of logic blocks based on a generated ontology schema (600).
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of computer-aided programming engineering, and more particularly, to a method and system for generating engineering programs compatible with a specific engineering environment. Background Art

[0002] Typically, an engineering project includes a plurality of engineering programs. The engineering programs are configured to control the operation of a plurality of devices in a technical facility. Examples of the plurality of devices include, but are not limited to, programmable logic controllers, computers, motor drives, control units, microcontrollers, human-machine interfaces, edge servers, and industrial control systems. Each of the plurality of engineering programs is configured to control the operation of one or more of the plurality of devices in the technical facility. To effectively control the plurality of devices, it may be necessary to code the plurality of engineering programs based on specific conventions and constraints consistent with one or more requirements of the plurality of devices in the technical facility.

[0003] Thus, the plurality of engineering programs of an engineering project can be designed to be compatible with a first engineering environment associated with the technical facility. The first engineering environment includes information about conventions and constraints associated with coding languages, coding conventions, hardware configurations, software configurations, processing speed limitations, and memory limitations that the plurality of engineering programs in the engineering project must comply with. In the case where a program among the plurality of engineering programs does not conform to the constraints specified by the first engineering environment, the engineering project becomes incompatible with the first engineering environment.

[0004] In the case where the engineering project is incompatible with the first engineering environment, the engineering project may not be able to run in the technical facility associated with the first engineering environment. Therefore, before deploying the engineering project on the technical facility, the code developer may have to manually modify the engineering project to make it compatible with the constraints of the first engineering environment.

[0005] Generally, the code developer manually modifies the engineering project to make the engineering project compatible with the first engineering environment. To modify the engineering project, the code developer may have to modify thousands of lines of code in the plurality of engineering programs in the engineering project. Therefore, deploying the engineering project in the first engineering environment becomes very difficult and time-consuming.

[0006] In addition, to determine the error code that causes the engineering project to be incompatible with the first engineering environment, the code developer may have to analyze most of the engineering project line by line. This effort can be very time-consuming for the code developer. Traditional engineering systems cannot automatically determine the error code that causes the engineering project to be incompatible with the second engineering environment. Therefore, there is no mechanism for automated engineering in the process of generating an engineering project.

[0007] Currently, engineering projects include a large number of engineering procedures, each of which is large in terms of code length. Each of the multiple engineering procedures can have data and control flow interrelationships with other engineering procedures among the multiple engineering procedures. Any modification to any program of the multiple engineering procedures may cause an interruption in the data flow and control flow interrelationships among the multiple engineering procedures of the engineering project. In addition, the multiple engineering procedures may be unreadable and incomprehensible. To make the multiple engineering procedures readable, code developers may have to manually enter comments as well as annotations, and also modularize the multiple engineering procedures. Checking millions of codes existing in the multiple engineering procedures to modularize the multiple engineering procedures is almost beyond human capacity.

[0008] In addition, an engineering project can have a large number of programming elements, such as variables, classes, and functions that can define the engineering project. In the existing system, before modifying any one of the multiple engineering procedures, code developers may have to study a large number of such definitions and references of the multiple programming elements as well as the control and data flow interrelationships among the multiple engineering procedures. It is difficult for code developers to manually browse through the large number of engineering procedures and the large number of programming elements, and to identify the interrelationships among the multiple programming elements and the multiple engineering procedures in the engineering project. It is difficult for code developers to manually check the large number of engineering procedures and the large number of programming elements, and to identify the interrelationships among the multiple programming elements and the multiple engineering procedures in the engineering project. In addition, for the reasons mentioned above, it is very difficult for code developers to port an engineering procedure from a first engineering environment to a second engineering environment. Summary of the Invention

[0009] In view of the above situation, there is a need for an effective method and system for generating an engineering project compatible with a specific engineering environment.

[0010] Therefore, an object of the present invention is to provide a method and system for generating an engineering project compatible with a specific engineering environment.

[0011] The object of the present invention is achieved by a method for generating a project compatible with a specific engineering environment. The method includes receiving, by a processing unit, a request to convert a first project compatible with a first engineering environment into a second project compatible with a second engineering environment. The first project and the second project include a plurality of engineering programs designed to control the operation of a plurality of devices in a technical facility. Examples of the plurality of devices include, but are not limited to, programmable logic controllers, computers, motor drives, control units, microcontrollers, human-machine interfaces, edge servers, and industrial control systems. The first engineering environment and the second engineering environment include information associated with a plurality of constraints related to coding languages, coding conventions, hardware configurations, software configurations, processing speed limitations, and memory limitations that the plurality of engineering programs in the project must comply with. The plurality of constraints enable the plurality of engineering programs to effectively operate the plurality of devices of the technical facility. The technical facility is at least one of an industrial manufacturing plant, an industrial processing plant, or an industrial power plant.

[0012] In a preferred embodiment, the plurality of devices work together in the technical facility to achieve one or more goals of the technical facility. Each of the plurality of devices includes a processor and a memory. The memory is configured to store one or more of the plurality of engineering programs. The processors of the plurality of devices are configured to execute one or more of the engineering programs to achieve one or more key performance indicators associated with the one or more engineering programs. 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 when the one or more engineering programs are executed by the processors of one or more objects. One or more of the engineering programs may be compatible with one engineering environment and incompatible with other engineering environments. In other words, the plurality of constraints associated with the first engineering environment may be mutually exclusive with the plurality of constraints associated with the second engineering environment. Therefore, the received request includes an instruction to convert the first project compatible with the engineering program into a second project compatible with the second engineering environment. In one example, the first engineering environment is a single-user engineering environment and the second engineering environment is a multi-user engineering environment.

[0013] In a preferred embodiment, the plurality of devices in the technical facility may be interconnected through one or more physical connections. The one or more physical connections may include physical links (such as wiring or cables). In addition, the functions of the plurality of devices may be defined based on a plurality of parameter values. The plurality of parameter values include motor configuration parameters, network and communication parameters, valve control, temperature or pressure values of sensors, speed, torque, and the like.

[0014] In a preferred embodiment, the method further includes a processing unit determining a plurality of code statements from a plurality of engineering projects based on an analysis of the plurality of engineering projects. The plurality of engineering projects are stored in a central database. The plurality of engineering projects include engineering projects designed to control a plurality of technical facilities. Each of the plurality of technical facilities operates in a specific engineering environment among a plurality of engineering environments. Each of the plurality of engineering projects is compatible with a specific engineering environment among the plurality of engineering environments. Each of the plurality of engineering environments includes information specifying a plurality of constraints associated with coding language, coding convention, hardware configuration, software configuration, processing speed limit, and memory limit that a plurality of engineering programs in a specific engineering project among the plurality of engineering projects must comply with. The plurality of code statements include assignment statements, program element definition statements, and operation statements. The processing unit is configured to determine the plurality of code statements by applying natural language processing algorithms to the plurality of engineering programs of the plurality of engineering projects.

[0015] In a preferred embodiment, the method further includes a processing unit determining a data flow and a control flow between each of the determined plurality of code statements based on an analysis of the plurality of code statements. The data flow indicates a transformation of values of a plurality of data variables in the plurality of engineering programs. The control flow includes information regarding the order in which the processing unit executes the plurality of code statements. For example, due to the presence of loop and recursive statements in the plurality of engineering programs, the control flow includes information regarding statements that will be repeatedly executed by the processing unit.

[0016] In a preferred embodiment, the method further includes a processing unit determining a plurality of logical blocks from the plurality of engineering projects by grouping the plurality of statements into the plurality of logical blocks. The plurality of code statements are grouped based on an analysis of the determined data flow and the determined control flow between each of the determined plurality of statements. In other words, the method further includes a processing unit determining a plurality of logical blocks from the plurality of engineering projects. Advantageously, based on the data flow and control flow between the plurality of code statements in the plurality of engineering projects, the plurality of engineering projects are automatically segmented into meaningful logical blocks. Thus, the plurality of engineering projects are thereby modularized into the plurality of logical blocks. Advantageously, the readability and maintainability of the plurality of engineering projects are improved. Advantageously, the amount of manual labor and time involved in modularizing the plurality of engineering projects is reduced.

[0017] In a preferred embodiment, the method further includes generating, by a processing unit, a knowledge graph for each of the determined plurality of logic blocks. The knowledge graph generated for a particular logic block includes information about the data flow and control flow among a set of statements within the particular logic block. The method further includes generating, by the processing unit, an ontology schema for a plurality of engineering projects by merging the plurality of knowledge graphs generated for the plurality of logic blocks. The ontology schema includes information about the relationships among the determined plurality of logic blocks, and information about the data flow and control flow among each of the plurality of logic blocks of the plurality of engineering projects. In one example, the ontology schema includes information about the correspondence between the logic blocks of a first engineering project among the plurality of engineering projects and the logic blocks of a second engineering project among the plurality of engineering projects. The ontology schema further includes information about the functions performed by each of the plurality of logic blocks of the plurality of engineering projects. The ontology schema further includes information about the compatibility of each of the plurality of logic blocks with each of the plurality of engineering environments. The ontology schema further includes information associated with the interrelationships between one or more key performance indicators of the plurality of engineering programs of the plurality of logic blocks, the plurality of engineering environments, and the plurality of engineering projects. Advantageously, the interrelationships and dependencies among the plurality of logic blocks of the plurality of engineering programs are integrated into the ontology schema.

[0018] In a preferred embodiment, the method further includes determining, by a processing unit, a set of logic blocks compatible with a second engineering environment from the plurality of logic blocks based on an analysis of the generated ontology schema and a first engineering project. The method further includes generating, by the processing unit, a second engineering project compatible with the second engineering environment by merging the determined set of logic blocks based on the generated ontology schema. Advantageously, the first engineering project compatible with the first engineering environment is automatically converted into a second engineering project compatible with the second engineering environment. Advantageously, the manual labor and time involved in making the first engineering project compatible with the second engineering environment are reduced. Advantageously, the transplantation of the first engineering project from a first technical facility operating in the first engineering environment to a second technical facility operating in the second engineering environment is simplified.

[0019] In a preferred embodiment, the method further includes receiving, by a processing unit, a request to integrate a code snippet into the generated second engineering project. The method further includes generating, by the processing unit, an ontology representation of the code snippet based on an analysis of the code snippet. The method further includes determining, by the processing unit, a portion of the generated ontology schema that is similar to the generated ontology representation of the code snippet. The method further includes modifying, by the processing unit, the second engineering project by integrating the code snippet into the second engineering project based on an analysis of the determined portion of the ontology schema. Advantageously, the code snippet is integrated into the second engineering project such that the integrated code snippet is compatible with the second engineering environment.

[0020] In yet another preferred embodiment, the method further includes analyzing, by the processing unit, the generated ontology schema and the second engineering project to identify one or more errors in a first logic block of the identified set of logic blocks. In one example, the one or more errors correspond to one or more portions of the first logic block that cause the first logic block to be incompatible with the second engineering environment. The method further includes modifying, by the processing unit, the first logic block of the set of logic blocks to eliminate the identified one or more errors in the first logic block of the set of logic blocks. In one example, one or more portions of the first logic block are deleted or modified to make the first logic block compatible with the second engineering environment. The method is further configured to predict the occurrence of a change in one or more key performance indicators associated with the second engineering project based on an analysis of the ontology schema. The change is predicted to occur due to the modification of the first logic block. The method further includes modifying, by the processing unit, one or more programming blocks in the set of logic blocks based on an analysis of the ontology schema to prevent the occurrence of a change in one or more key performance indicators associated with the second engineering project. Advantageously, any change in one or more key performance indicators due to the conversion of the first engineering project to the second engineering project is eliminated.

[0021] In yet another preferred embodiment, the method further includes generating, by the processing unit, a simulation instance of a third engineering environment. The method further includes simulating, by the processing unit, the execution of the second engineering project generated in the third engineering environment by executing the second engineering project on the generated simulation instance.

[0022] In yet another preferred embodiment, the method further includes determining, by the processing unit, whether the generated second engineering project is compatible with the third engineering environment based on the results of the simulated execution of the generated second engineering project. The method further includes deploying, by the processing unit, the generated second engineering project to the third engineering environment in real time based on the determination that the generated second engineering project is compatible with the third engineering environment. The method further includes displaying, by the processing unit, the generated second engineering project on a display device. Advantageously, the second engineering project is tested for compatibility with the second engineering environment.

[0023] In yet another preferred embodiment, the method includes notifying, by the processing unit, the incompatibility of the generated second engineering project based on the determination that the generated second engineering project is incompatible. The method further includes generating, by the processing unit, a plurality of error log files associated with the generated second engineering project based on the determination that the generated engineering program is incompatible. The method further includes displaying, by the processing unit, the generated plurality of error log files on a display device. Advantageously, the user can analyze the plurality of error log files and remedy the incompatibility of the generated second engineering project with the second engineering environment.

[0024] In yet another preferred embodiment, the method includes analyzing, by a processing unit, a second engineering project and an ontology schema associated with a plurality of engineering projects. The method further includes mapping, by the processing unit, one or more logical blocks of the second engineering project to one or more logical blocks among the plurality of logical blocks based on the analysis. The method further includes generating, by the processing unit, a plurality of program modules from the second engineering project based on the mapping, wherein each of the plurality of program modules corresponds to a specific subroutine in the second engineering project.

[0025] In yet another preferred embodiment, the method includes determining, by a processing unit, two or more logical blocks in the set of logical blocks that correspond to different parts of a common subroutine. The method further includes generating, by the processing unit, a combined logical block by combining the two or more logical blocks determined in the set of logical blocks.

[0026] In yet another preferred embodiment, the method further includes mapping, by the processing unit, the set of logical blocks to a plurality of subroutines in the second engineering project. The method further includes grouping, by the processing unit, into a plurality of groups based on the mapping of the set of logical blocks to the plurality of subroutines, wherein each group of the plurality of groups contains one or more logical blocks in the set of logical blocks that are mapped to a specific subroutine among the plurality of subroutines.

[0027] The object of the present invention is also achieved by an engineering system for generating an engineering project compatible with a specific engineering environment. The engineering system includes one or more processors and a memory coupled to the processors. The memory includes automation modules stored in the form of machine-readable instructions executable by the processors. The automation modules are configured to execute the method as described above.

[0028] The object of the present invention is also achieved by an industrial environment. The industrial environment includes an engineering system, a technical facility including 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 execute the above method steps.

[0029] The object of the present invention is also achieved by a computer program product having machine-readable instructions stored therein, which, when executed by one or more processors, cause the one or more processors to execute the method steps as described above.

[0030] The above and other features of the present invention will now be described with reference to the drawings of the present invention. The illustrated embodiments are intended to illustrate rather than limit the present invention. Brief Description of the Drawings

[0031] The present invention will be further described below with reference to the embodiments shown in the drawings, wherein:

[0032] Figure 1is a block diagram of an industrial environment that can generate engineering projects compatible with a specific engineering environment according to an embodiment of the present invention;

[0033] Figure 2 is a block diagram of an engineering system such as an Figure 1 as shown, in which embodiments of the present invention can be implemented;

[0034] Figure 3 is a block diagram of an automation module such as an Figure 2 as shown, in which embodiments of the present invention can be implemented;

[0035] Figure 4A -F is a process flow diagram showing an exemplary method of generating an engineering project in an engineering system according to an embodiment of the present invention;

[0036] Figure 5 is a schematic representation of the modularization of a set of engineering projects according to an embodiment of the present invention;

[0037] Figure 6 is a schematic representation of an exemplary ontology schema according to an embodiment of the present invention; and

[0038] Figure 7 is a schematic representation of the conversion of a first engineering project to a second engineering project according to an embodiment of the present invention. Detailed Description of the Invention

[0039] Various embodiments are described with reference to the accompanying drawings, in which the same reference numerals are used to refer to the drawings, and the same reference numerals are used throughout to refer to the same elements. In the following description, for the purpose of explanation, many specific details are set forth in order to provide a thorough understanding of one or more embodiments. Obviously, such embodiments can be practiced without these specific details.

[0040] Figure 1 is a block diagram of an industrial environment 100 that can generate engineering projects compatible with a specific engineering environment according to an embodiment of the present invention. In Figure 1In this case, the industrial environment 100 includes an engineering system 102, a technical facility 106, and one or more client devices 120A-N. As used herein, an "industrial environment" refers to a processing environment that includes configurable computing physical and logical resources (such as networks, servers, storage devices, applications, services, etc.) and data distributed on a platform such as a cloud computing platform. The industrial environment 100 provides on-demand network access to a shared pool of configurable computing physical and logical resources. The engineering system 102 is communicatively connected to the technical facility 106 via a network 104 (such as a local area network (LAN), a wide area network (WAN), Wi-Fi, the Internet, any short-range wide area communication). The engineering system 102 is also connected to one or more client devices 120A-N via the network 104.

[0041] The engineering system 102 is connected to one or more engineering objects 108A-N. The one or more engineering objects 108A-N are devices in the technical facility 106 that are interconnected with each other via the network 104. The one or more engineering objects 108A-N may include servers, robots, switches, automation devices, programmable logic controllers (PLCs), human-machine interfaces (HMIs), motors, valves, pumps, actuators, sensors, and other industrial devices. The one or more engineering objects 108A-N may be interconnected with each other or connected to several other components ( Figure 1 not shown in the figure) via a physical connection. The physical connection may be through wiring between the one or more engineering objects 108A-N. Alternatively, the one or more engineering objects 108A-N may also be connected via a non-physical connection (such as the Internet of Things (IoT)) and a 5G network. Although Figure 1 the engineering system 102 is shown connected to one technical facility 106, those skilled in the art can envision that the engineering system 102 may be connected to several technical facilities 106 located at different geographical locations via the network 104.

[0042] The client devices 120A-N may be desktop computers, laptop computers, tablets, smartphones, etc. Each client device 120A-N is equipped with engineering tools 122A-N for generating and / or editing multiple engineering projects, respectively. The multiple engineering projects include engineering projects designed to control the technical facility 106. The technical facility 106 operates in a specific engineering environment among multiple engineering environments. Each of the multiple engineering projects is compatible with a specific engineering environment among the multiple engineering environments. Each of the multiple engineering environments includes information specifying multiple constraints associated with coding languages, coding conventions, hardware configurations, software configurations, processing speed limitations, and memory limitations that the multiple engineering programs in a specific engineering project among the multiple engineering projects must comply with.

[0043] Client devices 120A-N can access the engineering system 102 to automatically generate engineering projects. The 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 the specification, the terms "client device" and "user device" may be used interchangeably.

[0044] The engineering system 102 can be a stand-alone server deployed at a control station or can be a remote server on a cloud computing platform. In a preferred embodiment, the engineering system 102 can be a cloud-based engineering system. The engineering system 102 is capable of delivering applications (such as cloud applications) for managing a technical facility 106 that includes one or more engineering objects 108A-N. The engineering system 102 can include a platform 110 (such as a cloud computing platform), an automation module 112, a server 114 that includes hardware resources and an operating system (OS), a network interface 116, and a database 118. The network interface 116 enables communication between the engineering system 102, the technical facility 106, and the client device(s) 120A-N. An interface (such as a cloud interface) ( Figure 1 not shown in the figure) can allow engineers at one or more client devices 120A-N to access engineering project files stored at the engineering system 102 and perform one or more actions on the engineering project files as the same instance. The server 114 can include one or more servers on which the OS is installed. The server 114 can include one or more processors, one or more storage devices (such as memory units) for storing data and machine-readable instructions (such as applications and application programming interfaces (APIs)), and other peripheral devices required to provide computing (such as cloud computing) capabilities. The platform 110 uses the hardware resources and the OS of the server 114 to implement functions such as data reception, data processing, data presentation, data communication, etc., and uses the application programming interfaces deployed therein to deliver the foregoing services. The platform 110 can include a combination of dedicated hardware and software built on top of the hardware and the OS. In an exemplary embodiment, the platform 110 can correspond to an integrated development environment (IDE) that includes a program editor and a compiler, which allows users of the client devices 120A-N to generate engineering programs. The platform 110 can further include an automation module 112 configured to generate engineering programs. Details of the automation module 112 are explained in Figure 3 the following.

[0045] The database 118 stores information related to the technical facility 106 and the client devices 120A-N. The database 118 is, for example, a structured query language (SQL) data store or a not only SQL (NoSQL) data store. In an exemplary embodiment, the database 118 can be configured as a cloud-based database implemented in the industrial environment 100, where computing resources are delivered as a service on the platform 110. According to another embodiment of the present invention, the database 118 is a location on a file system directly accessible by the automation module 112. The database 118 is configured to store engineering project files, engineering programs, object behavior models, parameter values associated with one or more engineering objects 108A-N, test results, simulation results, status messages, one or more simulation instances, graphical programs, program logic, program logic patterns, engineering objects 108A-N and engineering object attributes, one or more engineering object blocks, relationship information between engineering objects, requirements, program update messages, and the like.

[0046] Figure 2 is a block diagram of an engineering system 102 such as Figure 1 shown in which embodiments of the present invention can be implemented. In Figure 2 this, the engineering system 102 includes a processing unit 202, an accessible memory 204, a storage unit 206, a communication interface 208, an input / output unit 210, a network interface 212, and a bus 214.

[0047] The processing unit 202 used herein represents any type of computing circuit, 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 explicitly parallel instruction computing microprocessor unit, a graphics processing unit, a digital signal processing unit, or any other type of processing circuit. The processing unit 202 may also include an embedded controller, such as a general or programmable logic device or array, an application specific integrated circuit, a single-chip computer, and the like.

[0048] The memory 204 can be non - transient volatile memory and non - volatile memory. The memory 204 can be coupled for communication with the processing unit 202, such as being a computer - readable storage medium. The processing unit 202 can execute machine - readable instructions and / or source code stored in the memory 204. Various machine - readable instructions can be stored in and accessed from the memory 204. The memory 204 can include any suitable elements 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 drives, removable media drives for handling compact discs, digital video discs, magnetic disks, cassette tapes, memory cards, etc. In this embodiment, the memory 204 includes an integrated development environment (IDE) 216. The IDE 216 includes an automation module 112, which is stored in any of the above - mentioned storage media in the form of machine - readable instructions and can communicate with and be executed by the processing unit 202.

[0049] When executed by the processing unit 202, the automation module 112 causes the processing unit 202 to generate a project item compatible with a specific engineering environment in the engineering system 102. In one embodiment, the automation module 112 causes the processing unit 202 to receive a request to convert a first project item compatible with a first engineering environment into a second project item compatible with a second engineering environment. The first project item and the second project item include a plurality of engineering programs designed to control the operation of a plurality of devices, such as one or more engineering objects 108A - N in the technical facility 106. The first engineering environment and the second engineering environment include information associated with a plurality of constraints related to the coding language, coding convention, hardware configuration, software configuration, processing speed limit, and memory limit that the plurality of engineering programs in the project item must comply with. The plurality of constraints enable the plurality of engineering programs to effectively operate the plurality of devices of the technical facility.

[0050] The automation module 112 also causes the processing unit 202 to determine a plurality of code statements from the plurality of project items based on an analysis of the plurality of project items. The automation module 112 also causes the processing unit 202 to determine the plurality of code statements in the plurality of project items by applying natural - language processing algorithms to the plurality of engineering programs of the plurality of project items.

[0051] The automation module 112 also causes the processing unit 202 to determine the data flow and control flow between each of the determined plurality of code statements based on an analysis of the plurality of code statements. The data flow indicates the transformation of the values of the plurality of data variables in the plurality of engineering programs. The control flow includes information about the order in which the processing unit executes the plurality of code statements. For example, the control flow includes information about the statements that will be repeatedly executed by the processing unit 202 because there are loop and recursive statements in the plurality of engineering programs.

[0052] Automation module 112 also causes processing unit 202 to determine a plurality of logical blocks from a plurality of engineering projects by grouping a plurality of statements into a plurality of logical blocks. The plurality of code statements are grouped based on an analysis of the determined data flow and the determined control flow between each of the plurality of statements that are determined. Automation module 112 causes processing unit 202 to determine a plurality of logical blocks from a plurality of engineering projects. Advantageously, the plurality of engineering projects are automatically segmented into meaningful logical blocks based on the data flow and control flow between the plurality of code statements in the plurality of engineering projects. Thus, the plurality of engineering projects are thereby modularized into a plurality of logical blocks. Advantageously, the readability and maintainability of the plurality of engineering projects are improved. Advantageously, the amount of manual labor and time involved in modularizing the plurality of engineering projects is reduced.

[0053] Automation module 112 also causes processing unit 202 to generate a knowledge graph for each of the plurality of determined logical blocks. The knowledge graph generated for a particular logical block includes information about the data flow and control flow between a set of statements within the particular logical block. Automation module 112 also causes processing unit 202 to generate an ontology schema for the plurality of engineering projects by combining the plurality of knowledge graphs generated for the plurality of logical blocks. The ontology schema includes information about the relationships between the plurality of determined logical blocks, and information about the data flow and control flow between each of the plurality of logical blocks of the plurality of engineering projects. In one example, the ontology schema includes information about the correspondence between a logical block of a first engineering project among the plurality of engineering projects and a logical block of a second engineering project among the plurality of engineering projects. The ontology schema also includes information about the functions performed by each of the plurality of logical blocks of the plurality of engineering projects. The ontology schema also includes information about the compatibility of each of the plurality of logical blocks with each of the plurality of engineering environments. The ontology schema also includes information associated with the interrelationships between the plurality of logical blocks of the plurality of engineering programs of the plurality of engineering projects, the plurality of engineering environments, and one or more key performance indicators. Advantageously, the interrelationships and dependencies between the plurality of logical blocks in the plurality of engineering programs are integrated into the ontology schema.

[0054] The storage unit 206 can be a non-transitory storage medium configured to store a database (such as database 118) that includes a server version of a plurality of programming blocks associated with the set of industrial domains.

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

[0056] The input / output unit 210 may include input devices, a keyboard, a touch-sensitive display, a camera (such as a camera that receives gesture-based input), etc., which are capable of receiving one or more input signals, such as user commands for processing engineering project files. Additionally, the input / output unit 210 may be a display unit for displaying a graphical user interface that visualizes the behavior model associated with the modified engineering program and also displays the 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. The bus 214 serves as an interconnection between the processor 202, the memory 204, and the input / output unit 210.

[0057] The network interface 212 may be configured to handle network connections, bandwidth, and network traffic between the engineering system 102, the client devices 120A-N, and the technical facility 106.

[0058] Those of ordinary skill 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, local area networks (LANs), wide area networks (WANs), wireless (e.g., Wi-Fi) adapters, graphics adapters, disk controllers, input / output (I / O) adapters, etc. may also be used additionally or in place of the described hardware. The examples depicted are provided for illustrative purposes only and are not meant to imply an architectural limitation of the present disclosure.

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

[0060] Figure 3 is a block diagram of an automation module 112 such as that shown in Figure 2 in which embodiments of the present invention may be implemented. InFigure 3 In this case, the automation module 112 includes a request processor module 302, an object behavior model generation module 304, an analysis module 306, a modifier module 308, a project engineering database 310, a verification module 312, and a deployment module 314. In combination with Figure 1 and Figure 2 explanation Figure 3 .

[0061] The request processor module 302 is configured to receive a request to convert a first project engineering of the technical facility 106 into a second project engineering. For example, the request is received via a network from one of one or more users external to the industrial environment 100. In an alternative embodiment, the request is received via a network from one or more client devices 120A-N.

[0062] The object behavior model generation module 304 is configured to generate an ontology schema for multiple project engineering items. In a preferred embodiment, the generated ontology schema includes information about the relationships between a set of variables corresponding to each of the multiple logic blocks of multiple project engineering items 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 multiple logic blocks. When one or more engineering objects 108A-N execute the multiple logic blocks of multiple project engineering items, a set of key performance indicators associated with the multiple logic blocks are the key performance indicators achieved by one or more engineering objects 108A-N. In one example, the ontology schema is a knowledge graph-based representation including multiple layers. The multiple layers include first, second, third, and fourth knowledge graph layers. The first knowledge graph layer includes knowledge associated with the compatibility between each of the multiple project engineering items and multiple engineering environments. The second knowledge graph layer includes information about the compatibility of each of the multiple logic blocks with multiple engineering environments. The third knowledge graph layer includes information about the multiple data flow and multiple control flow paths between the multiple logic blocks of multiple project engineering items. In addition, based on the functions of the multiple logic blocks, the third knowledge graph layer includes information about the mapping between two or more of the multiple logic blocks. For example, if a first logic block and a second logic block among the multiple logic blocks perform the same function, the third knowledge graph layer includes information indicating that the first logic block is mapped to the second logic block. The fourth knowledge graph layer includes information associated with the multiple data flow paths and control flow paths between the multiple code statements in multiple project engineering items.

[0063] The fourth knowledge graph layer further includes information indicating an object behavior model associated with the relationship between the multiple logic blocks in the technical facility 106 and one or more engineering objects 108A-N. In addition, the ontology schema includes one or more rules associated with one or more relationships between one or more engineering objects 108A-N and multiple logic blocks.

[0064] In addition, the object behavior model generation module 304 is configured to determine one or more engineering object attributes associated with each of the one or more classified engineering objects 108A-N. Object attributes are the domain context of the object, associations and relationships with other engineering objects, object size, object identifier, type of engineering object, etc. This determines such object attributes for each of the one or more engineering objects. This determination using the ontology enables engineering object acquisition and generalization, and defines the attributes and relationships between engineering objects.

[0065] 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 and a plurality of logical blocks based on the determined relationships between each of the one or more classified engineering objects 108A-N. The object behavior model generation module 304 is also configured to generate an object behavior model for the one or more engineering objects 108A-N.

[0066] In one embodiment, the object behavior model generation module 304 is further configured to manage a plurality of logical blocks corresponding to each of the one or more engineering objects 108A-N, physical connections between the one or more engineering objects 108A-N, and a plurality of parameter values associated with the one or more engineering objects 108A-N and the physical connections. Each of the plurality of logical blocks includes a set of programmable instructions or code statements corresponding to the program logic of each of the plurality of engineering objects. Each logical block in the plurality of logical blocks may correspond to a functional block under an engineering design. The engineering design may include several such functional blocks. Users at the client devices 120A-N use the engineering tools 122A-N to design or develop a plurality of engineering projects.

[0067] The analysis module 306 is configured to analyze the ontology patterns associated with multiple engineering projects. Specifically, the analysis module 306 is configured to retrieve the data and control parameters associated with each of the multiple logic blocks. The data and control parameters are key performance indicators, including information related to the set of programming blocks associated with the industrial domain of the technical facility 106, such as sensor data, actuator data, environmental data, network data, any automation data, etc. In addition, the analysis module 306 is configured to compare the retrieved data and control parameters associated with the set of programming blocks with the data and control parameters stored in the object behavior model. In addition, the 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. In addition, the analysis module 306 is configured to determine the type of behavior of one or more engineering objects 108A-N corresponding to the identified deviation. The types of behavior include normal, abnormal, stable, and requiring maintenance, etc. In addition, the analysis module 306 is configured to analyze the behavior of one or more engineering objects 108A-N based on the determined type of behavior. 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 the multiple programming blocks.

[0068] The modifier module 308 is configured to modify the multiple logic blocks based on the results of the analysis of the ontology patterns. Modify the multiple logic blocks based on the analysis of the ontology patterns. The modification includes any change, such as the addition, deletion, update, replacement, or revision of one or more variables, lines of code, classes, functions, or comments in the multiple logic blocks. In one example, the result of the analysis of the ontology patterns can be a behavior report that indicates whether the behavior or characteristics of each of the multiple logic blocks defined in the ontology pattern are acceptable, improvisational, enhanced, optimized, etc. Therefore, modify the multiple logic blocks based on the relationship between the set of variables corresponding to each of the multiple logic blocks, the set of key performance indicators associated with the multiple logic blocks, and the industrial domain of the technical facility 106. Therefore, generate multiple engineering projects based on the relationship between the set of variables corresponding to each of the multiple logic blocks, the set of key performance indicators associated with the multiple logic blocks, and the industrial domain of the technical facility 106. In other words, customize the multiple logic blocks based on the ontology patterns to generate a set of engineering projects compatible with one or more of the multiple engineering environments.

[0069] The project database 310 is configured to store a project library including a plurality of engineering projects, a plurality of logic blocks, and a generated ontology schema. The project database 310 is also configured to store information about one or more engineering objects 108A-N, such as physical connections between the one or more engineering objects 108A-N and a plurality of parameter values associated with the one or more engineering objects 108A-N and the physical connections. The project database 310 is configured to continuously update the project library with updated versions of the engineering projects. In addition, the project database 310 is configured to maintain the project library in the generated ontology schema.

[0070] The verification module 312 is configured to generate a simulation instance of a second engineering environment. In one example, the simulation instance is a digital twin of one or more engineering objects 108A-N operating based on the second engineering environment. The verification module 312 is configured to simulate the execution of the generated second engineering project in the second engineering environment in a simulation environment by executing the set of logic blocks on the generated simulation instance. The verification module 312 is configured to determine that the generated second engineering project is compatible with the second engineering environment based on the results of the simulated execution of the generated logic blocks. In addition, the verification module 312 is configured to simulate the behavior of the set of logic blocks in a simulation environment by executing the set of logic blocks on the generated simulation instance. The simulation environment simulates an actual technical facility, such as the technical facility 106. In addition, the simulation environment can be a virtual setting of the actual technical facility 106. In addition, the verification module 312 is configured to verify the behavior of the set of logic blocks based on the simulation results. The results of the simulation can indicate the success or failure of the second engineering project if deployed in the second engineering environment.

[0071] The deployment module 314 is configured to deploy the second engineering project to the second engineering environment in real time based on the verification. Advantageously, the generated engineering program is only deployed after it is determined that the generated engineering program is compatible.

[0072] Figure 4A -F is a process flow diagram showing an exemplary method 400 for generating an engineering project compatible with a specific engineering environment in the engineering system 102 according to an embodiment of the present invention.

[0073] In step 402, a request to convert a first engineering project compatible with a first engineering environment into a second engineering project compatible with a second engineering environment is received by the processing unit 202. The first engineering project and the second engineering project include a plurality of engineering programs designed to control the operation of a plurality of devices (such as one or more engineering objects 108A-N) in the technical facility 106. Examples of the plurality of devices include, but are not limited to, programmable logic controllers, computers, motor drives, control units, microcontrollers, human-machine interfaces, edge servers, and industrial control systems.

[0074] The first engineering environment and the second engineering environment include information associated with a plurality of constraints, which are associated with programming languages, coding conventions, hardware configurations, software configurations, processing speed limitations, and memory limitations that must be adhered to by a plurality of engineering procedures in an engineering project. The plurality of constraints enable the plurality of engineering procedures to operate a plurality of devices of the technical facility 106 effectively. The technical facility 106 is at least one of an industrial manufacturing plant, an industrial processing plant, or an industrial power plant.

[0075] The plurality of devices work together in the technical facility 106 to achieve one or more purposes of the technical facility 106. Each of the plurality of devices includes a processor and a memory. The memory is configured to store one or more of the plurality of engineering procedures. The processors of the plurality of devices are configured to execute one or more of the engineering procedures to achieve one or more key performance indicators associated with the one or more engineering procedures. Examples of the one or more key performance indicators include the processing speed, memory requirements, and processing efficiency of one or more of the engineering procedures when the one or more engineering procedures are executed by the processors of one or more engineering objects.

[0076] One or more engineering procedures may be compatible with one engineering environment and incompatible with other engineering environments. In other words, the plurality of constraints associated with the first engineering environment may be mutually exclusive with the plurality of constraints associated with the second engineering environment. Accordingly, the received request includes an instruction to convert a first engineering project that is compatible with an engineering procedure into a second engineering project that is compatible with the second engineering environment. In one example, the first engineering environment is a single-user engineering environment, and the second engineering environment is a multi-user engineering environment.

[0077] In a preferred embodiment, the plurality of devices in the technical facility may be interconnected by one or more physical connections. The one or more physical connections may include physical links (such as wiring or cables). Additionally, the functions of the plurality of devices may be defined based on a plurality of parameter values. The plurality of parameter values include motor configuration parameters, network and communication parameters, valve control, temperature or pressure values of sensors, speed, torque, and the like.

[0078] At 404, the processing unit 202 determines a plurality of code statements from a plurality of engineering projects based on an analysis of the plurality of engineering projects. The plurality of engineering projects are stored in a central database such as the engineering project database 310. The plurality of engineering projects include engineering projects designed to control a plurality of technical facilities. Each of the plurality of technical facilities operates in a specific engineering environment among the plurality of engineering environments. Each of the plurality of engineering projects is compatible with a specific engineering environment among the plurality of engineering environments. Each of the plurality of engineering environments includes information specifying a plurality of constraints associated with coding languages, coding conventions, hardware configurations, software configurations, processing speed limits, and memory limits that the plurality of engineering procedures in a specific engineering project among the plurality of engineering projects must comply with. The plurality of code statements include assignment statements, program element definition statements, and operation statements. The processing unit 202 is configured to determine the plurality of code statements by applying natural language processing algorithms to the plurality of engineering procedures of the plurality of engineering projects.

[0079] At 406, the processing unit 202 determines the data flow and control flow between each of the determined plurality of code statements based on an analysis of the plurality of code statements. The data flow indicates the transformation of the values of the plurality of data variables in the plurality of engineering procedures. The control flow includes information regarding the order in which the processing unit 202 executes the plurality of code statements. For example, the control flow includes information regarding statements that will be repeatedly executed by the processing unit 202 because there are loop and recursive statements in the plurality of engineering procedures.

[0080] In step 408, the processing unit 202 determines a plurality of logical blocks from the plurality of engineering projects by grouping the plurality of statements into the plurality of logical blocks. The processing unit 202 groups the plurality of code statements based on an analysis of the determined data flow and the determined control flow between each of the determined plurality of statements. In other words, the processing unit 202 determines the plurality of logical blocks from the plurality of engineering projects. Advantageously, based on the data flow and control flow between the plurality of code statements in the plurality of engineering projects, the plurality of engineering projects are automatically segmented into meaningful logical blocks. Thus, the plurality of engineering projects are thereby modularized into the plurality of logical blocks. Advantageously, the readability and maintainability of the plurality of engineering projects are improved. Advantageously, the amount of manual labor and time involved in modularizing the plurality of engineering projects is reduced.

[0081] In step 410, the processing unit 202 generates a knowledge graph for each of the determined plurality of logical blocks. The knowledge graph generated for a specific logical block includes information regarding the data flow and control flow between a set of statements within the specific logical block. Thus, the processing unit 202 generates a plurality of knowledge graphs for the plurality of logical blocks.

[0082] In step 412, the processing unit 202 generates an ontology schema for multiple engineering projects by combining multiple knowledge graphs generated for multiple logical blocks. The ontology schema includes information about the relationships between the identified multiple logical blocks, as well as information about the data flow and control flow between each of the multiple logical blocks of the multiple engineering projects. In one example, the ontology schema includes information about the correspondence between the logical blocks of the first engineering project among the multiple engineering projects and the logical blocks of the second engineering project among the multiple engineering projects. The ontology schema further includes information about the functions performed by each of the multiple logical blocks of the multiple engineering projects. The ontology schema further includes information about the compatibility of each of the multiple logical blocks with each of the multiple engineering environments. The ontology schema further includes information associated with the interrelationships between one or more key performance indicators of the multiple engineering programs of the multiple logical blocks, the multiple engineering environments, and the multiple engineering projects. Advantageously, the interrelationships and dependencies between the multiple logical blocks of the multiple engineering programs are integrated into the ontology schema.

[0083] In step 414, the processing unit 202 determines a set of logical blocks that are compatible with the second engineering environment from the multiple logical blocks based on an analysis of the generated ontology schema and the first engineering project.

[0084] In step 416, the second engineering project is generated by the processing unit 202. The second engineering project is compatible with the second engineering environment. The second engineering project is generated by the processing unit 202 by combining the determined set of logical blocks based on the generated ontology schema. Advantageously, the first engineering project that is compatible with the first engineering environment is automatically converted into the second engineering project that is compatible with the second engineering environment. Advantageously, the manual labor and time involved in making the first engineering project compatible with the second engineering environment are reduced. Advantageously, the transplantation of the first engineering project from the first technical facility operating in the first engineering environment to the second technical facility operating in the second engineering environment is simplified.

[0085] In step 418, a request to integrate a code snippet into the generated second engineering project is received by the processing unit 202.

[0086] In step 420, the processing unit 202 generates an ontology representation of the code snippet based on an analysis of the code snippet.

[0087] In step 422, the processing unit 202 determines a part of the generated ontology schema that is similar to the generated ontology representation of the code snippet.

[0088] In step 424, the processing unit 202 modifies the second engineering project by integrating code snippets into the second engineering project based on the analysis of the determined part of the ontology schema. Advantageously, the code snippets are integrated into the second engineering project such that the integrated code snippets are compatible with the second engineering environment.

[0089] In step 426, the processing unit 202 analyzes the generated ontology schema and the second engineering project to identify one or more errors in a first logical block of the determined set of logical blocks. In one example, the one or more errors correspond to one or more parts of the first logical block that cause the first logical block to be incompatible with the second engineering environment.

[0090] In step 428, the processing unit 202 modifies the first logical block of the set of logical blocks to eliminate the one or more errors identified in the first logical block of the set of logical blocks. In one example, one or more parts of the first logical block are deleted or modified to make the first logical block compatible with the second engineering environment.

[0091] In step 430, the processing unit 202 predicts the occurrence of a change in one or more key performance indicators associated with the second engineering project based on the analysis of the ontology schema. The change is predicted to occur due to the modification of the first logical block.

[0092] In step 432, the processing unit 202 determines one or more logical blocks in the set of logical blocks to prevent the occurrence of a change in one or more key performance indicators associated with the second engineering project based on the analysis of the ontology schema. Advantageously, any change in one or more key performance indicators caused by the conversion of the first engineering project to the second engineering project is eliminated.

[0093] In step 434, the processing unit 202 generates a simulation instance of the second engineering environment. The processing unit 202 is also configured to simulate the execution of the generated second engineering project in the second engineering environment by executing the second engineering project on the generated simulation instance.

[0094] In step 436, the processing unit 202 determines whether the generated second engineering project is compatible with the second engineering environment based on the results of the simulated execution of the generated second engineering project.

[0095] In step 438, the processing unit 202 deploys the generated second engineering project to the second engineering environment in real time based on determining that the generated second engineering project is compatible.

[0096] In step 440, the processing unit 202 displays the generated second engineering project on a display device (such as one or more client devices 120A-N). Advantageously, the second engineering project is tested for compatibility with the second engineering environment.

[0097] In step 442, the processing unit 202 notifies the incompatibility of the generated second engineering project based on the determined incompatibility of the generated second engineering project.

[0098] In step 444, the processing unit 202 generates a plurality of error log files associated with the generated second engineering project based on the determined incompatibility of the generated engineering program.

[0099] In step 446, the processing unit 202 displays the generated plurality of error log files on the display device. Advantageously, the user is enabled to analyze the plurality of error log files and remedy the incompatibility of the generated second engineering project with the second engineering environment.

[0100] In step 448, the processing unit 202 analyzes the second engineering project and the ontology schema associated with the plurality of engineering projects.

[0101] In step 450, the processing unit 202 maps one or more logical blocks of the second engineering project to one or more logical blocks in the plurality of logical blocks based on the analysis.

[0102] In step 452, the processing unit 202 generates a plurality of program modules from the second engineering project based on the mapping. Each of the plurality of program modules corresponds to a specific subroutine in the second engineering project.

[0103] In step 454, the processing unit 202 determines two or more logical blocks from the set of logical blocks such that the determined two or more logical blocks correspond to different parts of a common subroutine.

[0104] In step 456, the processing unit 202 generates a combined logical block by combining the two or more logical blocks determined from the set of logical blocks.

[0105] In step 458, the processing unit 202 maps the set of logical blocks to a plurality of subroutines in the second engineering project.

[0106] In step 460, the processing unit 202 groups the set of logical blocks into a plurality of groups based on the mapping of the set of logical blocks to the plurality of subroutines, wherein each of the plurality of groups contains one or more logical blocks of the set of logical blocks, and the one or more logical blocks are mapped to a specific subroutine in the plurality of subroutines.

[0107] Figure 5 is a schematic representation of the modularization of a group of engineering projects according to an embodiment of the present invention. In conjunction with Figure 1 、 2 、3 and 4A-F for description Figure 5 。 Figure 5Depicts engineering project group 502. Engineering project group 502 includes two or more engineering projects 504A and 504B. The two or more engineering projects 504A and 504B are designed to control two or more technical facilities. Each of the two or more technical facilities operates in a specific engineering environment among a plurality of engineering environments. Each of the two or more engineering projects 504A and 504B is compatible with a specific engineering environment among the plurality of engineering environments. Each of the plurality of engineering environments includes information specifying a plurality of constraints associated with coding language, coding convention, hardware configuration, software configuration, processing speed limit, and memory limit that the two or more engineering projects 504A and 504B must comply with.

[0108] The processing unit 202 is configured to analyze the engineering project group 502 based on at least one natural language processing algorithm. The processing unit 202 is configured to extract two or more engineering projects 504A and 504B from the engineering project group 502 based on the analysis.

[0109] The processing unit 202 is configured to determine a plurality of code statements from the two or more engineering projects 504A and 504B based on the analysis of the two or more engineering projects 504A and 504B. The plurality of code statements include assignment statements, program element definition statements, and operation statements.

[0110] The processing unit 202 is further configured to determine the data flow and control flow between each of the determined plurality of code statements based on the analysis of the plurality of code statements by the processing unit 202. The data flow indicates the transformation of the values of a plurality of data variables in the two or more engineering projects 504A and 504B. The control flow includes information about the order in which the processing unit 202 executes the plurality of code statements. For example, the control flow includes information about statements that will be repeatedly executed by the processing unit 202 because there are loop and recursive statements in the plurality of engineering programs.

[0111] The processing unit 202 also determines a first set of logic blocks 506A-F and a second set of logic blocks 508A-F from the two or more engineering projects 504A and 504B. The processing unit 202 is further configured to generate an ontology schema of the engineering project group 502.

[0112] Figure 6 Is a schematic representation of an exemplary ontology schema according to an embodiment of the present invention. In conjunction with Figure 1 、 2 、3, 4A-F and Figure 5 Described Figure 6 . Figure 6Depicts an exemplary ontology schema 600 generated by processing unit 202. The ontology schema 600 can be a knowledge graph. The ontology schema 600 includes a plurality of nodes 602. Each of the plurality of nodes corresponds to a specific logic block among the first set of logic blocks 506A-F and the second set of logic blocks 508A-F.

[0113] The ontology schema 600 includes information about the relationships between the first set of logic blocks 506A-F and the second set of logic blocks 508A-F, as well as information about the data flow and control flow between each of the first set of logic blocks 506A-F and the second set of logic blocks 508A-F of the engineering project group 502. In one example, the ontology schema 600 includes information about the correspondence between the logic blocks of the first engineering project (such as 504A) and the logic blocks of the second engineering project (such as 504B) of the engineering project group 502. The ontology schema 600 also includes information about the functions performed by each of the first set of logic blocks 506A-F and the second set of logic blocks 508A-F in the engineering project group 502. The ontology schema 600 also includes information about the compatibility of each of the first set of logic blocks 506A-F and the second set of logic blocks 508A-F with each of the multiple engineering environments. The ontology schema 600 also includes information associated with the interrelationships between one or more key performance indicators of each of the first set of logic blocks 506A-F and the second set of logic blocks 508A-F, the multiple engineering environments, and the engineering project group 502.

[0114] Figure 7 Is a schematic diagram of the conversion of a first engineering project to a second engineering project according to an embodiment of the present invention. In conjunction with Figure 1 、 2 、3, 4A-E, 5 for description Figure 7。The processing unit 202 is configured to receive a request to convert a first engineering project 702 into a second engineering project 704. The first engineering project 702 is compatible with a first engineering environment 702A, and the second engineering project 704 is compatible with a second engineering environment 704A. The processing unit 202 is further configured to generate an ontology representation of the first engineering project 702. In addition, the processing unit 202 is configured to compare the generated ontology representation of the first engineering project 702 with an ontology schema generated for the engineering project group 502. The processing unit 202 is also configured to determine a third set of logic blocks (506A, 506D, 508C, and 508F) from a first set of logic blocks 506A-F and a second set of logic blocks 508A-F based on the comparison. The third set of logic blocks (506A, 506D, 508C, and 508F) is determined such that the third set of logic blocks (506A, 506D, 508C, and 508F) has the same functions as a plurality of engineering programs in the first engineering project 702. The third set of logic blocks (506A, 506D, 508C, and 508F) is further determined based on the compatibility of the third set of logic blocks (506A, 506D, 508C, and 508F) with the second engineering environment. The processing unit 202 is also configured to generate the second engineering project 704 by combining the third set of logic blocks (506A, 506D, 508C, and 508F).

[0115] The present invention may take the form of a computer program product that includes program modules accessible from a computer-usable or computer-readable medium storing program code, which is used by or in conjunction with one or more computers, processors, or instruction execution systems. For the purposes of this specification, a computer-usable or computer-readable medium may be any device that can contain, store, communicate, propagate, or transport a program used by or in conjunction 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 or is itself a signal carrier, and the physical computer-readable medium includes semiconductor or solid-state memory, magnetic tape, removable computer disk, random access memory (RAM), read-only memory (ROM), hard disk, and optical disk, such as compact disk read-only memory (CD-ROM), compact disk read / write, and DVD. As is known to those skilled in the art, the processor and program code for implementing each aspect of the technology may be centralized or distributed (or a combination thereof).

[0116] Although the present invention has been described in detail with reference to certain embodiments, it should be understood that the present invention is not limited to these embodiments. In light of the present disclosure, many modifications and variations will be apparent to those skilled in the art without departing from the scope of the various embodiments of the present invention as described herein. Accordingly, the scope of the present invention is represented by the following claims rather than the foregoing description. All changes, modifications, and variations within the meaning and scope of the claims are considered to be within its scope. All advantageous embodiments claimed in the method claims may also be applied to the system / apparatus claims.

[0117] Reference numeral

[0118] 100 Industrial environment

[0119] 102 Engineering system

[0120] 120A-N One or more client devices

[0121] 104 Network

[0122] 108A-N One or more engineering objects

[0123] 120A-N One or more client devices

[0124] 110 Platform

[0125] 112 Automation module

[0126] 114 Server

[0127] 116 Network interface

[0128] 118 Database

[0129] 202 (Multiple) processors

[0130] 204 Accessible memory

[0131] 206 Storage unit

[0132] 208 Communication interface

[0133] 210 Input / output unit

[0134] 212 Network interface

[0135] 214 Bus

[0136] 216 Integrated development environment (IDE)

[0137] 302 Request processor module

[0138] 304 Object behavior model generation module

[0139] 306 Analysis Module

[0140] 308 Modifier Module

[0141] 310 Engineering Project Database

[0142] 312 Verification Module

[0143] 314 Deployment Module

[0144] Two or more engineering projects 504A and 504B

[0145] 502 Engineering Project Group

[0146] 506A-F First Group of Logic Blocks

[0147] 508A-F Second Group of Logic Blocks

[0148] 602 Multiple Nodes

[0149] 600 Ontology Schema

[0150] 702 First Engineering Project

[0151] 704 Second Engineering Project.

Claims

1. A method for generating a project for a specific engineering environment, wherein the project for the project includes a plurality of engineering programs and is configured to control the operation of equipment in a technical facility, wherein the engineering programs are configured to control the operation of one or more of the equipment in the technical facility, and wherein the engineering environment is associated with the technical facility and includes information about the conventions and constraints that a plurality of engineering programs in the project for the project must comply with, the method comprising: Receiving, by a processing unit (202), a request to convert a first project for the project (702) compatible with a first engineering environment (702A) into a second project for the project (704) compatible with a second engineering environment (704A), wherein the first engineering environment (702A) is a single-user engineering environment and the second engineering environment (704A) is a multi-user engineering environment; Determining, by the processing unit (202), a plurality of logical blocks (506A-F, 508A-F) from a plurality of projects for the project (502), wherein each of the plurality of projects for the project (502) is compatible with a specific engineering environment among a plurality of engineering environments, and wherein the plurality of logical blocks are determined by grouping a plurality of code statements into a plurality of logical blocks based on an analysis of the data flow and control flow between the plurality of code statements in the plurality of projects for the project (502); Generating, by the processing unit (202), an ontology schema (600) for the plurality of projects for the project (502), wherein the ontology schema (600) includes: a) Information about the relationships between the determined plurality of logical blocks (506A-F and 508A-F), and b) Information about the data flow and control flow between each of the plurality of logical blocks (506A-F and 508A-F) of the plurality of projects for the project (502); Determining, by the processing unit (202), a set of logical blocks compatible with the second engineering environment (704A) from the plurality of logical blocks (506A-F and 508A-F) based on an analysis of the generated ontology schema (600) and the first project for the project (702), wherein the generated ontology schema (600) includes information about the correspondence between the logical blocks of the first project for the project and the second project for the project and information about the compatibility of the plurality of logical blocks with the plurality of engineering environments; and Generating, by the processing unit (202), a second project for the project (704) compatible with the second engineering environment (704A) by merging the determined set of logical blocks based on the generated ontology schema.

2. The method according to claim 1, wherein the generation of the ontology schema includes: Generating, by the processing unit (202), a knowledge graph for each of the determined plurality of logical blocks (506A-F and 508A-F), wherein the knowledge graph generated for a specific logical block includes information about the data flow and control flow between a set of statements within the specific logical block; And Generating, by the processing unit (202), an ontology schema (600) for the plurality of projects for the project (502) by merging the plurality of knowledge graphs generated for the plurality of logical blocks (506A-F and 508A-F).

3. The method according to claim 1, further comprising: Receive, by a processing unit (202), a request to integrate a code snippet into a generated second engineering project (704); Generate, by the processing unit (202), an ontology representation of the code snippet based on an analysis of the code snippet; Determine, by the processing unit (202), a part of the generated ontology schema (600) that is similar to the generated ontology representation of the code snippet; And Modify, by the processing unit (202), the second engineering project (704) by integrating the code snippet into the second engineering project (704) based on an analysis of the determined part of the ontology schema (600), such that the integrated code snippet is compatible with the second engineering environment.

4. The method according to claim 1, further comprising: Analyze, by the processing unit (202), the generated ontology schema (600) and the second engineering project (704) to determine one or more errors in a first logic block of a determined set of logic blocks, wherein the one or more errors correspond to one or more parts of the first logic block that cause the first logic block to be incompatible with the second engineering environment; Modify, by the processing unit (202), the first logic block of the set of logic blocks to make the first logic block compatible with the second engineering environment to eliminate the determined one or more errors in the first logic block of the set of logic blocks; Predict, by the processing unit (202), the occurrence of a change in one or more key performance indicators associated with the second engineering project (704) based on an analysis of the ontology schema (600), wherein the change is predicted to occur due to the modification of the first logic block; And Modify, by the processing unit (202), one or more programming blocks of the set of logic blocks based on an analysis of the ontology schema (600) to prevent the occurrence of a change in one or more key performance indicators associated with the second engineering project (704).

5. The method according to claim 1, further comprising: Generate, by the processing unit (202), a simulation instance of a third engineering environment; And Simulate, by the processing unit (202), the execution of the generated second engineering project (704) in the third engineering environment by executing the second engineering project (704) on the generated simulation instance.

6. The method according to claim 5, further comprising: Determine, by the processing unit (202), whether the generated second engineering project (704) is compatible with the third engineering environment based on the results of the simulated execution of the generated second engineering project (704); Deploy, by the processing unit (202), the generated second engineering project (704) to the third engineering environment in real time based on the determination that the generated second engineering project is compatible; And Display, by the processing unit (202), the generated second engineering project (704) on a display device (120A-N).

7. The method according to claim 5, further comprising: Notify, by the processing unit (202), that the generated second engineering project (704) is incompatible with the third engineering environment based on the determination that the generated second engineering project (704) is incompatible with the third engineering environment; The processing unit (202) generates a plurality of error log files associated with the generated second engineering project based on the determination that the generated second engineering project is incompatible with the third engineering environment; and The processing unit (202) displays the generated plurality of error log files on the display devices (120A-N).

8. The method according to claim 1, further comprising: The processing unit (202) determines two or more logic blocks in the set of logic blocks that correspond to different parts of a common subroutine; and The processing unit (202) generates a combined logic block by combining the two or more determined logic blocks in the set of logic blocks.

9. The method according to claim 1, further comprising: The processing unit (202) maps the set of logic blocks to a plurality of subroutines in the second engineering project; and The processing unit (202) groups the set of logic blocks into a plurality of groups based on the mapping of the set of logic blocks to the plurality of subroutines, wherein each group in the plurality of groups includes one or more logic blocks in the set of logic blocks that are mapped to a specific subroutine in the plurality of subroutines.

10. A computer program product having machine-readable instructions stored therein that, when executed by a processing unit (202), cause the processor to perform the method according to any one of claims 1-9.

Citation Information

Patent Citations

  • Cross-environment application compatibility

    CN103370689A

  • Code snippet marking and reusing system based on body

    CN104881285A