Method and system for providing engineering of industrial equipment in a cloud computing environment
By segmenting and deploying self-executing software units in a cloud computing environment, the problem of time-consuming PLC program updates is solved, enabling efficient industrial equipment engineering management and reducing hardware dependence and engineering effort.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- SIEMENS AG
- Filing Date
- 2021-09-09
- Publication Date
- 2026-05-19
AI Technical Summary
In a cloud computing environment, updating and deploying PLC programs for industrial equipment is time-consuming and dependent on hardware configuration, resulting in enormous engineering effort and difficulties in establishing direct communication links.
The control program is determined by receiving requests, divided into self-executable, self-configurable, and self-deployable software units, and dynamically generated and modified in a cloud computing environment. It is then deployed using virtual and physical instances and a real-time communication session is established.
It reduces the time and storage space required for PLC program updates and deployments, lowers the dependence on hardware configuration, simplifies engineering efforts, and improves the efficiency of communication links.
Smart Images

Figure CN116157774B_ABST
Abstract
Description
[0001] This invention relates to the engineering of industrial equipment, and more particularly to methods and systems for providing engineering of industrial equipment in a cloud computing environment.
[0002] Factories or industrial plants typically host several programmable logic controllers (PLCs). Each PLC controls a specific part of the plant or a specific machine. During the initial commissioning phase, control programs, such as PLC programs, are written using engineering applications to meet the plant's specific control conditions. These PLC programs are then compiled, tested, and deployed to the specific PLCs within the plant.
[0003] Once initial commissioning is complete, the PLC program may need to be continuously modified or adapted to meet the ever-changing needs of the factory. Furthermore, the PLC program needs to be modified whenever a problem arises in the factory that needs to be fixed or if a process needs to be improved. Such tasks of updating and deploying PLC programs are typically time-consuming. For example, when a PLC program needs modification, the PLC program, or a specific part of the PLC program, is built and compiled along with all related PLC programs. Afterwards, automated tests are performed on the modified PLC program, and the PLC program is downloaded to the required PLC devices. This results in increased time and effort spent developing automation solutions. Moreover, the entire PLC program is downloaded to a single PLC, consuming a large amount of memory space. Therefore, sharing the execution load of the PLC program between hardware and software is challenging due to the constant significant dependency on hardware configuration and the substantial engineering effort involved. Furthermore, establishing direct communication links with the physical hardware and simulation software always involves significant engineering effort.
[0004] In light of the above, there is a need for improved methods and systems to provide engineering for industrial equipment in cloud computing environments.
[0005] Therefore, the object of the present invention is to provide a method and system for engineering industrial equipment in a cloud computing environment.
[0006] The object of this invention is achieved by a method for providing engineering for industrial equipment in a cloud computing environment. The method includes receiving a request to perform an engineering action on at least one piece of industrial equipment. The method includes determining a control program block corresponding to at least one piece of industrial equipment based on the received request. In an exemplary embodiment, the control program block includes a PLC program. The PLC program includes multiple parts, referred to as function blocks. Each function block resides as part of an engineering project file in a separate part file.
[0007] The method includes segmenting a determined control block into one or more software units based on the content of the control block. The content of the control block includes device configuration information, device ID, device name, and the like. Furthermore, the method includes processing one or more software units based on one or more user requirements and requested engineering actions. Additionally, the method includes determining at least two instances of an industrial device for deploying the one or more processed software units, based on the segment type of the processed software units. The at least two instances of the industrial device include at least one virtual instance of the industrial device and at least one physical instance of the industrial device. Furthermore, the method includes deploying the corresponding one or more software units to each of the at least two determined instances of the industrial device.
[0008] The method includes dynamically generating a modified control program based on one or more modifications made in the control program. In an embodiment, the modified control program corresponds to a compiled PLC program. Additionally, the method includes outputting the modified control program to the user interface of at least one engineering system.
[0009] In determining a control program block corresponding to at least one of the industrial devices based on a received request, the method includes identifying at least one of the industrial devices by parsing the received request. Furthermore, the method includes comparing the identified at least one of the industrial devices with one or more pre-stored instances of the industrial devices. Each of the one or more pre-stored instances of the industrial devices is correspondingly mapped to one or more control program blocks. Additionally, the method includes determining the control program block corresponding to the identified at least one of the industrial devices based on this comparison.
[0010] In segmenting a determined control block into one or more software units based on its content, the method includes determining one or more attributes associated with the control block based on its content. Furthermore, the method includes generating one or more software units associated with the control block based on the determined one or more attributes. Additionally, the method includes segmenting the determined control block into the generated one or more software units. Each of the one or more software units includes a self-executable, self-configurable, and self-deployable sub-control block.
[0011] In processing one or more software units based on one or more user requirements and requests for engineering actions, the method includes determining one or more parameters associated with at least one piece of industrial equipment by parsing the engineering actions. Furthermore, the method includes identifying sub-control program blocks of the one or more software units corresponding to the determined one or more parameters associated with at least one piece of industrial equipment. The method includes determining whether the sub-control program blocks of the one or more software units need to be modified based on the determined one or more parameters associated with at least one piece of industrial equipment. Furthermore, the method includes modifying the sub-control program blocks of the one or more software units based on this determination.
[0012] In determining at least two instances of industrial equipment for deploying one or more processed software units, based on segment types of one or more processed software units, the method includes determining the type of segment associated with each of the one or more processed software units. Furthermore, the method includes determining one or more attributes associated with the determined type of segment associated with each of the one or more processed software units. Furthermore, the method includes determining the type of industrial equipment required for deploying the one or more processed software units based on the determined one or more attributes. Furthermore, the method includes determining whether the type of industrial equipment is suitable for deploying the one or more processed software units based on the determined one or more attributes. Furthermore, the method includes identifying at least two instances of industrial equipment determined to be suitable for deploying the one or more processed software units.
[0013] Furthermore, the method includes generating one or more virtual instances of the industrial equipment required to deploy one or more software units of processing if the type of industrial equipment required is not available.
[0014] When deploying one or more software units to each of at least two identified instances of industrial equipment, the method includes establishing a communication session with each of the at least two identified instances of industrial equipment via a network. Furthermore, the method includes determining whether one of the at least two instances of industrial equipment corresponds to a physical instance of industrial equipment installed in a technical installation. Additionally, if one of the at least two instances of industrial equipment corresponds to a physical instance of industrial equipment installed in the technical installation, the method includes deploying the one or more software units to the physical instance of industrial equipment installed in the technical installation.
[0015] Furthermore, the method includes determining whether one of at least two instances of the industrial equipment corresponds to a virtual instance of the industrial equipment simulated in a virtual environment. Additionally, if one of the at least two instances of the industrial equipment corresponds to the virtual instance of the industrial equipment, then generating a virtual instance of the industrial equipment in the virtual environment. Furthermore, the method includes deploying one or more corresponding software units into the virtual instance of the industrial equipment.
[0016] Furthermore, the method includes establishing a real-time communication session between at least two instances of the industrial equipment via a communication network. Additionally, the method includes using the established communication session to transmit real-time parameter values associated with each of the at least two virtual instances of the industrial equipment.
[0017] The objective of this invention is achieved through an automated engineering management system. The automated engineering management system includes one or more processors and a memory coupled to the processor(s). The memory includes an automated engineering management module stored in the form of machine-readable instructions executable by the processor(s). The automated engineering management module is configured to perform the method steps described above.
[0018] The objective of this invention is achieved through a cloud computing system, which includes a processing unit and a cloud platform, including an automated engineering management module stored therein in the form of machine-readable instructions executable by the processing unit. The automated engineering management module is configured to perform the method steps described above.
[0019] The object of the present invention is achieved by a computer program product having machine-readable instructions stored therein, which, when executed by one or more processing units, cause one or more processing units to perform the above-described method steps.
[0020] The above and other features of the present invention will now be described with reference to the accompanying drawings. The embodiments shown are intended to illustrate, not limit, the invention.
[0021] The invention will now be further described with reference to the embodiments illustrated in the accompanying drawings, in which:
[0022] Figure 1 This is a schematic representation of a cloud computing environment capable of managing engineering for industrial equipment according to an embodiment of the present invention;
[0023] Figure 2 Such as Figure 1 The block diagram shown is of an automated engineering management system in which embodiments of the present invention can be implemented;
[0024] Figure 3 Embodiments of the present invention can be implemented such as Figure 2A block diagram of the automated engineering management modules shown below;
[0025] Figure 4 This is a process flowchart illustrating an exemplary method for managing industrial equipment according to an embodiment of the present invention; and
[0026] Figure 5 This is an exemplary schematic representation of a graphical user interface for engineering applications in an engineering system that depicts the management of engineering processes according to an embodiment of the present invention.
[0027] Various embodiments are described with reference to the accompanying drawings, wherein the same reference numerals are used to refer to the drawings, and the same reference numerals are used to refer to the same elements throughout. In the following description, numerous specific details are set forth for purposes of explanation to provide a thorough understanding of one or more embodiments. It will be clear that such embodiments may be practiced without these specific details.
[0028] Throughout this manual, the terms "user equipment" and "engineering system" are used interchangeably.
[0029] Figure 1 This is a schematic representation of a cloud computing environment 100 capable of managing engineering work for industrial equipment 108A-N according to an embodiment of the present invention. Specifically, Figure 1 A cloud computing system 102 is described, capable of delivering cloud applications for managing a technical facility 106 comprising one or more industrial devices 108A-N. As used herein, a “cloud computing environment” refers to a processing environment comprising configurable computational physical and logical resources, such as networks, servers, storage devices, applications, services, and data distributed across a cloud platform. The cloud computing environment 100 provides on-demand network access to a shared pool of configurable computational physical and logical resources. In embodiments, the technical facility 106 may include a factory or industrial facility.
[0030] Cloud computing system 102 is connected via network 104 (e.g., the Internet) to one or more industrial devices 108A-N in technical facility 106. The one or more industrial devices 108A-N may include robots, switches, automation equipment such as programmable logic controllers (PLCs), human-machine interfaces (HMIs), field devices such as motors, valves, pumps, actuators, sensors, and (one or more) other industrial equipment. In a preferred embodiment, the one or more industrial devices 108A-N include control devices such as PLCs. Cloud computing system 102 may be a public cloud, private cloud, and / or hybrid cloud, configured to provide dedicated cloud services to its users. Although... Figure 1The illustration shows a cloud computing system 102 connected to a technical facility 106, but those skilled in the art will envision that the cloud computing system 102 may be connected via a network 104 to several technical facilities 106 located in different geographical locations.
[0031] Furthermore, cloud computing system 102 is also connected to user equipment 110A-N via network 104. User equipment 110A-N can access cloud computing system 102 to manage engineering of industrial equipment 108A-N. In an embodiment, user equipment 110A-N includes an engineering system capable of running industrial automation applications. User equipment 110A-N can be a laptop computer, desktop computer, tablet computer, smartphone, and the like. User equipment 110A-N can access cloud applications (such as providing performance visualization of one or more industrial devices 108A-N) via a web browser. Additionally, each of the users(s) using user equipment 110A-N is associated with defined privileges for accessing engineering project files. Defined privileges may include the user(s) geographic location(s), user role, version of the industrial automation application, associated licenses, and the like. Licenses may include read access, write access, read and write access, and read or write access.
[0032] The cloud computing system 102 includes a cloud computing platform 112, an automated engineering management system 114, a cloud computing infrastructure 116 including hardware resources and an operating system (OS), a network interface 118, and a database 120. The network interface 118 enables communication between the cloud computing system 102, the technical infrastructure 106, and the user equipment 110A-N. Furthermore, the network interface 118 enables communication between the cloud computing system 102 and the user equipment 110A-N. (Cloud interface...) Figure 1 (Not shown) This allows users at one or more user devices 110A-N to access one or more control programs stored at the cloud computing system 102 and perform one or more engineering actions on control program blocks that are instances of the same program. Cloud computing infrastructure 116 may include one or more servers on which an OS is installed. Cloud computing infrastructure 116 may include one or more processors, one or more storage devices, such as memory units for storing data and machine-readable instructions, applications and application programming interfaces (APIs) 122, and other peripheral devices required to provide cloud computing functionality. Cloud computing platform 112 is a platform that uses the hardware resources and OS of cloud computing infrastructure 116 to enable functionality such as data reception, data processing, data presentation, and data communication, and uses the application programming interface 122 deployed therein to deliver the aforementioned cloud services. Cloud computing platform 112 may include a combination of dedicated hardware and software built on top of the hardware and OS.
[0033] Database 120 stores information related to technical facilities 106 and user equipment 110A-N. Database 120 may be a Structured Query Language (SQL) data store or a data store that is not solely SQL (NoSQL). Database 120 is configured as a cloud-based database implemented in a cloud computing environment 100, where computing resources are delivered as a service on a cloud computing platform 112. According to another embodiment of the invention, database 120 resides on a file system directly accessible by a control program management system 114. Database 120 is configured to store one or more software units, one or more control program blocks, sub-control program blocks, one or more parameters associated with at least one of the industrial devices 108A-N, one or more attributes associated with the software units, virtual instances of the industrial devices 108A-N, real-time values of at least one of the industrial devices 108A-N, communication sessions, segment types, and the like.
[0034] Figure 2 Is it like this? Figure 1 The block diagram shown illustrates an automated engineering management system 114, in which embodiments of the present invention can be implemented. Figure 2 In the automated engineering management system 114, there are one or more processors 202, accessible memory 204, communication interface 206, input / output unit 208 and bus 210.
[0035] 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 (ASICs), single-chip computers, and the like.
[0036] Memory 204 may be a non-transitory volatile memory and a non-volatile memory. Memory 204 may be coupled for communication with one or more processors 202, such as a computer-readable storage medium. One or more processors 202 may execute machine-readable instructions and / or source code stored in memory 204. Various machine-readable instructions may be stored in and accessed from memory 204. Memory 204 may 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, removable media drive for handling compressed disks, digital video disk, floppy disk, cassette tape, memory card, and the like. In this embodiment, memory 204 includes an automated engineering management module 212, which is stored in the form of machine-readable instructions on any of the above-described storage media and can communicate with and be executed by one or more processors 202.
[0037] When executed by one or more processors 202, the automation engineering management module 212 causes one or more processors 202 to manage the engineering of industrial equipment 108A-N in the cloud computing environment 100. In an embodiment, the automation engineering management module 212 causes one or more processors 202 to receive a request to perform an engineering action on at least one of the industrial equipment 108A-N. Upon receiving a request, the automation engineering management module 212 causes one or more processors 202 to determine a control program block corresponding to at least one of the industrial equipment 108A-N based on the received request.
[0038] Furthermore, the automation engineering management module 212 causes one or more processors 202 to divide a determined control program block into one or more software units based on the content of the control program block. Furthermore, the automation engineering management module 212 causes one or more processors 202 to process one or more software units based on one or more user requirements and requested engineering actions. Furthermore, the automation engineering management module 212 causes one or more processors 202 to determine at least two instances of industrial equipment for deploying the one or more processed software units, based on the segment types of the processed software units. The at least two instances of industrial equipment include at least one virtual instance of the industrial equipment and at least one physical instance of the industrial equipment. Furthermore, the automation engineering management module 212 causes one or more processors 202 to deploy the corresponding one or more software units to each of the at least two determined instances of the industrial equipment.
[0039] In determining a control program block corresponding to at least one of the industrial devices 108A-N based on a received request, the automation engineering management module 212 causes one or more processors 202 to identify at least one of the industrial devices 108A-N by parsing the received request. Furthermore, the automation engineering management module 212 causes one or more processors 202 to compare the identified at least one of the industrial devices 108A-N with one or more pre-stored instances of the industrial devices. Each of the one or more pre-stored instances of the industrial devices is mapped to one or more corresponding control program blocks. Additionally, the automation engineering management module 212 causes one or more processors 202 to determine the control program block corresponding to the identified at least one of the industrial devices 108A-N based on the comparison.
[0040] In the process of dividing a determined control program block into one or more software units based on its content, the automation engineering management module 212 causes one or more processors 202 to determine one or more attributes associated with the control program block based on its content. Furthermore, the automation engineering management module 212 causes one or more processors 202 to generate one or more software units associated with the control program block based on the determined one or more attributes associated with it. Additionally, the automation engineering management module 212 causes one or more processors 202 to divide the determined control program block into one or more generated software units. Each of the one or more software units includes a self-executable, self-configurable, and self-deployable sub-control program block.
[0041] In processing one or more software units through engineering actions based on one or more user needs and requests, the automation engineering management module 212 causes one or more processors 202 to determine one or more parameters associated with at least one of the industrial devices 108A-N by parsing the engineering actions. Furthermore, the automation engineering management module 212 causes one or more processors 202 to identify sub-control program blocks corresponding to the determined one or more parameters associated with at least one of the industrial devices 108A-N. Additionally, the automation engineering management module 212 causes one or more processors 202 to determine, based on the determined one or more parameters associated with at least one of the industrial devices 108A-N, whether the sub-control program blocks in the one or more software units need to be modified. Furthermore, the automation engineering management module 212 causes one or more processors 202 to modify the sub-control program blocks of one or more software units based on the determination. One or more modifications include changing parameter values, swapping control program blocks, renaming software units, classifying control program blocks, adding, deleting, replacing, or removing one or more components of control program blocks, and the like.
[0042] In determining at least two instances of industrial equipment for deploying one or more processed software units respectively, based on the segment types of one or more processed software units, the automation engineering management module 212 causes one or more processors 202 to determine the type of segment associated with each of the one or more processed software units. Furthermore, the automation engineering management module 212 causes one or more processors 202 to determine one or more attributes associated with the determined type of the segment associated with each of the one or more processed software units. Additionally, the automation engineering management module 212 causes one or more processors 202 to determine, based on the determined one or more attributes, the type of industrial equipment 108A-N required for deploying the one or more processed software units. Moreover, the automation engineering management module 212 causes one or more processors 202 to determine, based on the determined one or more attributes, whether that type of industrial equipment is available for deploying the one or more processed software units. Furthermore, the automation engineering management module 212 causes one or more processors 202 to identify at least two instances of industrial equipment determined to be available for deploying the one or more processed software units.
[0043] Furthermore, if a specific type of industrial equipment is unavailable, the automation engineering management module 212 causes one or more processors 202 to generate one or more virtual instances of the industrial equipment required to deploy software units of one or more processes.
[0044] When deploying one or more corresponding software units to each of the at least two identified instances of industrial equipment, the automation engineering management module 212 causes one or more processors 202 to establish a communication session with each of the at least two identified instances of industrial equipment via a network. Furthermore, the automation engineering management module 212 causes one or more processors 202 to determine whether one of the at least two instances of industrial equipment corresponds to a physical instance of industrial equipment 108A-N installed in technical facility 106. If one of the at least two instances of industrial equipment corresponds to a physical instance of industrial equipment in technical facility 106, the automation engineering management module 212 causes one or more processors 202 to deploy the corresponding one or more software units to the physical instance of industrial equipment installed in technical facility 106. Alternatively, the automation engineering management module 212 causes one or more processors 202 to determine whether one of the at least two instances of industrial equipment corresponds to a virtual instance of industrial equipment simulated in a virtual environment. In this case, if one of the at least two instances of industrial equipment corresponds to a virtual instance of industrial equipment, the automation engineering management module 212 causes one or more processors 202 to generate a virtual instance of industrial equipment in the virtual environment. In addition, the automation engineering management module 212 enables one or more processors 202 to deploy one or more corresponding software units to virtual instances of industrial equipment.
[0045] Furthermore, the automation engineering management module 212 enables one or more processors 202 to establish a real-time communication session between at least two instances of the industrial equipment via the communication network 104. Additionally, the automation engineering management module 212 enables one or more processors 202 to use the established communication session to transmit real-time parameter values associated with each of the at least two instances of the industrial equipment.
[0046] Communication interface 206 is configured to establish a communication session between one or more engineering systems 110A-N and cloud computing system 102. Communication interface 206 allows one or more engineering applications running on user equipment 110A-N to import / import software units into cloud computing system 102. In an embodiment, communication interface 206 interacts with interfaces at one or more user equipment 110A-N to allow engineers to access control programs in engineering project files and perform one or more engineering actions on the control programs stored in cloud computing system 102. The engineering actions may be those known to those skilled in the art.
[0047] Input-output unit 208 may include an input device capable of receiving one or more input signals, such as a keypad, a touch-sensitive display, or a camera (e.g., a camera that receives gesture-based input). One or more input signals may be user commands to process project files. Furthermore, input-output unit 208 may be a display unit for displaying a graphical user interface that visualizes the behavioral model associated with the software unit and also displays status information associated with each set of engineering actions performed on the software unit. The sets of actions may include the execution of predefined tests, downloads, compilations, and deployments of the control program. Bus 210 serves as an interconnect between processor(s) 202, memory 204, and input-output unit 208.
[0048] Those skilled in the art will understand that Figure 2 The hardware depicted may vary for a particular implementation. For example, peripherals such as optical disc drives and others, 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 added to or used in place of the depicted hardware. The examples depicted are provided for illustrative purposes only and are not intended to imply any architectural limitations with respect to this disclosure.
[0049] Those skilled in the art will recognize that, for simplicity and clarity, the complete structure and operation of all data processing systems suitable for use with this disclosure are not depicted or described herein. Instead, only the cloud computing system 102, which is unique to or necessary for understanding this disclosure, is depicted and described. The remainder of the construction and operation of the cloud computing system 102 may conform to any of the various current implementations and practices known in the art.
[0050] Figure 3 Is it like this? Figure 2 The block diagram shown illustrates an automated engineering management module 212, in which embodiments of the present invention can be implemented. Figure 3 In the process, the automated engineering management module 212 includes a request handler 302, a control program block management module 304, a segmentation module 306, a processing module 308, a deployment module 310, a virtual environment 312, a communication interface 314, and a database 316.
[0051] Request processor 302 is configured to receive requests to perform engineering actions on at least one of the industrial devices 108A-N. The request includes at least one of the following: expected user requirements associated with technical facility 106; one or more expected parameter values associated with at least one of the industrial devices 108A-N; or a request to establish communication between a physical instance of industrial device 108A and a corresponding virtual instance of the industrial device. Engineering actions include upgrading firmware, changing hardware configuration, adding or removing any new industrial device, and the like. Industrial device 108A may be a PLC.
[0052] The control program block management module 304 is configured to determine a control program block corresponding to at least one of the industrial devices 108A-N based on a received request. The control program block includes program statements for controlling the operation and behavior of at least one of the industrial devices 108A-N. Upon receiving a request, the control program block management module 304 is configured to identify at least one of the industrial devices 108A-N by parsing the received request. Furthermore, the control program block management module 304 is configured to compare the identified at least one of the industrial devices 108A-N with one or more pre-stored instances of the industrial devices. Each of the one or more pre-stored instances of the industrial devices is correspondingly mapped to one or more control program blocks. For example, an instance of PLC A is mapped to PLC control block A, an instance of PLC B is mapped to PLC control block B, and so on.
[0053] Furthermore, the control program block management module 304 is configured to determine, based on comparison, the control program block corresponding to at least one of the identified industrial devices 108A-N. For example, if the request includes parameters related to PLC A, the corresponding control program A is determined.
[0054] The segmentation module 306 is configured to segment a determined control program block into one or more software units based on the content of the control program block. Specifically, the segmentation module 306 is configured to determine one or more attributes associated with the control program block based on the content of the control program block. The one or more attributes associated with the control program block include program block type, program block identifier, and program block path, and the like.
[0055] Furthermore, the segmentation module 306 is configured to generate one or more software units associated with the control block based on one or more determined attributes associated with it. Specifically, the segmentation module 306 modularizes the large control block into multiple downloadable entities to shift runtime to a virtual simulator, such as a PLC simulator (e.g., PLCSIM Advanced), which is then shifted to the cloud computing system 102. A software unit is a group of multiple programming artifacts behind the unit interface used for engineering and runtime. Such software units are self-contained, deployable, individually loadable "components" that form a consistent capsule based on a (lockable) common interface.
[0056] Further, the segmentation module 306 is configured to segment the determined control program block into one or more generated software units. Each of the one or more software units includes a self-executable, self-configurable, and self-deployable sub-control program block. In an embodiment, such software units are generated as a cleanly compiled PLC program, wherein the execution logic of the PLC program in an actual factory is segmented into two parts with multiple sub-units. For example, one segment includes a control program block and sub-control program blocks, which primarily performs pre-calculations and has little impact on the actual input or output (I / O) values of at least one of the industrial devices 108A-N. This segment of the control block is determined to be deployable on virtual software including a virtual instance of industrial device 318. The other segment includes a control program block and sub-control program blocks, which primarily focus on the execution or program logic that affects the actual I / O values of at least one of the industrial devices 108A-N. The output of the segmentation module 306 includes one or more segments of the control program block.
[0057] Processing module 308 is configured to process one or more software units based on one or more user requirements and requested engineering actions. The one or more user requirements include changes to the hardware configuration parameters of at least one of the industrial devices 108A-N. Specifically, processing module 308 is configured to determine one or more parameters associated with at least one of the industrial devices by parsing the engineering actions. The one or more parameters associated with at least one of the industrial devices 108A-N include the hardware configuration parameters of at least one of the industrial devices 108A-N, tag values, real-time input / output values, and any other known field parameters. Furthermore, processing module 308 is configured to identify sub-control program blocks corresponding to the one or more determined parameters associated with at least one of the industrial devices 108A-N. For example, if the determined one or more parameters correspond to a PLC 1 tag value, then the corresponding sub-control program, such as subroutine PLC 1 tag value, is identified.
[0058] Furthermore, processing module 308 is configured to determine whether a sub-control program block of one or more software units needs modification based on one or more determined parameters associated with at least one industrial device. For example, one or more parameters present in the identified sub-control program are compared with those of one or more determined parameters. If it is determined that the determined parameters are different from those of one or more parameters in the identified sub-control program, then it is determined that the identified sub-control program needs modification. Subsequently, processing module 308 is configured to modify the sub-control program block of one or more software units based on this determination.
[0059] Deployment module 310 is configured to determine at least two instances of an industrial device for deploying one or more software units of a process, based on the segment type of the one or more software units. The at least two instances of the industrial device include at least one virtual instance 318 of the industrial device and at least one physical instance of the industrial device. Deployment module 310 is also configured to deploy the corresponding one or more software units to each of the determined at least two instances of the industrial device. Specifically, deployment module 310 is configured to determine the type of segment associated with each of the one or more software units of the process. For example, the segment type includes a control program block executable on the virtual instance 318 of the industrial device, and another includes a control program block executable on a real-time hardware or physical instance of the industrial device (such as industrial device 108A). Furthermore, deployment module 310 is configured to determine one or more attributes associated with the determined type of the segment associated with each of the one or more software units of the process. The one or more attributes of the segment type include software-based, hardware-based, non-deployable, and the like. A software-based segment indicates that the software unit including the control program block can be deployed on the virtual instance 318 of the industrial device. Hardware-based segment indicators include software units that control program blocks and can be deployed on real-time hardware or physical instances of industrial equipment (such as industrial equipment 108A). Non-deployable segments include software units that are not ready for deployment.
[0060] Furthermore, deployment module 310 is configured to determine the type of industrial equipment required for deploying one or more processing software units based on one or more determined attributes. The type of industrial equipment includes virtual instances 318 of the industrial equipment or physical instances of the industrial equipment. Additionally, deployment module 310 is configured to determine whether this type of industrial equipment is suitable for deploying one or more processing software units based on one or more determined attributes. This is achieved by sending test signals to all industrial equipment 108A-N currently deployed in technical facility 106 and those present in the virtual environment. Subsequently, deployment module 310 is configured to identify at least two instances of the industrial equipment determined to be suitable for deploying one or more processing software units. For example, any combination of one virtual and one physical hardware, two virtual, or two physical hardware can be selected for deployment. This combination takes into account executing modular or segmented control programs in different runtime target industrial equipment within the virtual environment. Furthermore, this shared deployment helps save significant memory space and engineering effort at real-time hardware industrial equipment.
[0061] In an embodiment, if it is determined that such a type of industrial equipment is unavailable, the deployment module 310 generates one or more virtual industrial equipment required for deploying one or more software units of one or more processes.
[0062] Furthermore, communication interface 314 is configured to establish communication sessions with each of at least two identified instances of the industrial equipment via network 104. These communication sessions are established between a virtual PLC, such as PLCSIM, and the physical PLC hardware, for both data exchange and control of the execution of control program blocks from one target (i.e., the physical PLC hardware) to another target (i.e., PLCSIM). Thus, this automatically established communication session reduces significant engineering effort with the help of these software units. This is achieved by connecting at least one engineering system 110A-N to cloud computing system 102. Unit connectors are used to enable users at user equipment 110A-N to connect to the cloud computing infrastructure through their own accounts. Furthermore, communication between the virtual instance 318 of the industrial equipment and the physical instance 108A of the industrial equipment is established via standard mechanisms such as Open Platform Communication Union (OPC-UA) or Transmission Control Protocol / Internet Protocol (TCP / IP) to exchange information between the software units of the virtual instance of industrial equipment 318 downloaded to cloud computing system 102 and the software units executing in the physical industrial equipment 108A.
[0063] Furthermore, deployment module 310 is configured to determine whether one of at least two instances of the industrial equipment corresponds to a physical instance of industrial equipment 108A installed in technical facility 106. Additionally, deployment module 310 is configured to deploy one or more corresponding software units to the physical instance of industrial equipment 108A if one of the at least two instances of the industrial equipment corresponds to a physical instance of industrial equipment 108A installed in technical facility 106.
[0064] In addition, deployment module 310 is configured to determine whether one of at least two instances of the industrial equipment corresponds to a virtual instance of industrial equipment 318 simulated in a virtual environment.
[0065] In this configuration, virtual environment 312 is configured to generate a virtual instance 318 of the industrial equipment if at least two instances of the industrial equipment correspond to a virtual instance 318 of the industrial equipment. Furthermore, virtual environment 312 is configured to deploy one or more corresponding software units to the virtual instance 318 of the industrial equipment. The virtual instance 318 of the industrial equipment is hosted / promoted to cloud computing system 102 using standard engineering software or any other automation software, enabling the execution of an application created using the IECPL PLC programming language within cloud computing system 102. Virtual environment 312 is configured to simulate the behavior of a control program in a simulation environment with respect to one or more simulation instances associated with the virtual instance 318 of the industrial equipment.
[0066] In an embodiment, the virtual environment 312 includes one or more virtual instances 318 of industrial equipment. The virtual environment 312 simulates an actual technical facility, such as technical facility 106. Similarly, the virtual instances 318 of industrial equipment in the virtual environment 312 simulate one or more actual industrial devices 108A-N. In an exemplary environment, the virtual instances 318 of industrial equipment may correspond to robots, switches, automation equipment, programmable logic controllers (PLCs), human-machine interfaces (HMIs), motors, valves, pumps, actuators, sensors, and other industrial equipment. In a preferred embodiment, the virtual instances 318 of industrial equipment include control devices, such as PLCs. Furthermore, the virtual environment 312 may be a virtual setup of the actual technical facility 106.
[0067] Communication interface 314 is configured to establish a real-time communication session between at least two instances of the industrial equipment via communication network 104. Furthermore, communication interface 314 is configured to transmit real-time parameter values associated with each of the at least two instances of the industrial equipment using the established communication session.
[0068] Database 316 is configured to store one or more software units, one or more control program blocks, sub-control program blocks, one or more parameters associated with at least one of the industrial devices 108A-N, one or more attributes associated with the software units, virtual instance 318 of the industrial device, real-time values of at least one of the industrial devices 108A-N, communication sessions, segment types, and the like.
[0069] Figure 4 This is a process flowchart 400 illustrating an exemplary method for managing engineering of industrial equipment 108A-N according to an embodiment of the present invention. At step 402, a request to perform an engineering action on at least one of the industrial equipment 108A-N is received. At step 404, a control program block corresponding to at least one of the industrial equipment 108A-N is determined based on the received request. At step 406, the determined control program block is segmented into one or more software units based on the content of the control program block. At step 408, one or more software units are processed based on one or more user needs and requests for engineering actions. At step 410, at least two instances of the industrial equipment are determined based on the segment type of the processed one or more software units for deploying one or more processed software units respectively. At step 412, the corresponding one or more software units are deployed to each of the determined at least two instances of the industrial equipment respectively.
[0070] Figure 5 This is an exemplary schematic representation of a graphical user interface 500 for automated applications in a user device 110 for managing engineering processes according to an embodiment of the present invention. Specifically, Figure 5 A graphical user interface for an automated engineering management system 114 is depicted, which includes one or more engineering projects associated with technical facility 106. Each engineering project includes a unique name and a unique identifier (ID) associated with it. Furthermore, each engineering project includes one or more control programs associated with industrial equipment 108A-N. Each of these control programs includes a common part control program and a subordinate part control program. The common part control program has a unique ID and a unique name associated with it. The subordinate part control program also has a unique name and a unique ID associated with it. Figure 5 In the project files, such as Project 1 and Project 2, control programs such as PLC programs are included. Each PLC program includes slave control programs, such as motor logic, conveyor logic, and the like. These slave control programs are function blocks. The slave control programs have corresponding element libraries stored in database 120, such as... Figure 5 Those shown in the image.
[0071] Each of these project files, along with its control program, is stored in database 120. Furthermore, users with specific privileges can update any modifications made to the basic template of the project at any time. A typical user wanting to write certain PLC programs in a specific PLC project first obtains the corresponding project. The automation engineering management system 114 identifies the corresponding PLC program. This PLC program is then divided into one or more corresponding software units, such as 502. Each of these software units includes a subroutine block that allows the user to write specific parts of the PLC program. Once the compilation of the corresponding software unit is successful locally and the user has locally tested the software unit on engineering systems 110A-N, the automation engineering management system 114 determines the appropriate industrial equipment required to deploy each software unit. For example, if there are four software units, the automation engineering management system 114 determines which of those four software units will be deployed on a real PLC and which will be deployed on a virtual PLC. For example, software units 1 and 2 are determined to be deployable on a virtual PLC, and software units 3 and 4 are determined to be deployable on a real PLC. In this case, the automation engineering management system 114 considers the corresponding deployment of determined software units to each virtual and real PLC.
[0072] This invention can take the form of a computer program product comprising program modules accessible from a computer-usable or computer-readable medium storing program code for use 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 can be any means that can contain, store, transmit, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. The medium can be electronic, magnetic, optical, electromagnetic, infrared, or a semiconductor system (or apparatus or device) or a propagation medium that itself acts as a signal carrier, but is not included in the definition of a physical computer-readable medium, which includes semiconductor or solid-state memory, magnetic tape, removable computer floppy disks, random access memory (RAM), read-only memory (ROM), hard disks, and optical disks, such as optical disc read-only memory (CD-ROM), optical disc read / write, and DVDs. As those skilled in the art will appreciate, both the processor and the program code used to implement each aspect of this technology can be centralized or distributed (or a combination thereof).
[0073] While the invention has been described in detail with reference to certain embodiments, it should be understood that the invention is not limited to those embodiments. In view of this disclosure, many modifications and variations will appear to those skilled in the art without departing from the scope of the various embodiments of the invention described herein. Therefore, the scope of the invention is indicated by the appended claims rather than by the foregoing description. All changes, modifications, and variations falling within the meaning and scope of equivalents of the claims should be considered within their scope. All advantageous embodiments claimed in the method claims can also be applied to the system / apparatus claims.
Claims
1. A method (400) for engineering the management of industrial equipment (108A-N) in a cloud computing environment (100), comprising: a) The processor (202) receives (402) a request to perform an engineering action on at least one of the industrial devices (108A-N); b) The processor (202) determines (404) a control program block corresponding to at least one of the industrial devices (108A-N) based on the received request; c) The processor (202) divides (406) the determined control program block into one or more software units based on the content of the control program block; d) The processor (202) processes (408) the one or more software units based on engineering actions of one or more user needs and requests; e) The processor (202) determines (410) at least two instances of the industrial equipment for deploying at least one of the one or more processed software units, based on the segment type of the processed software units; and f) The processor (202) deploys (412) one or more corresponding software units to each of the determined at least two instances of the at least one of the industrial devices (108A-N); g) Wherein, at least two instances of determining the at least one of the industrial devices used to deploy the software units of the one or more processes based on the segment type of one or more software units of the process include: g0) Determine the type of each segment associated with each of the one or more software units being processed; g1) Determine one or more attributes associated with a defined type of each associated segment in the one or more software units being processed; g2) Determine the type of industrial equipment required to deploy the software unit of the one or more processes based on one or more determined attributes; g3) Determine whether a specific type of industrial equipment can be used to deploy the software unit for the one or more processes based on one or more determined attributes; and g4) Identifies at least two instances of the industrial equipment in which the software unit is determined to be usable for deploying the one or more processes.
2. The method according to claim 1, wherein the at least two instances (108A-N, 318) of the industrial equipment include at least one virtual instance (318) of the industrial equipment and at least one physical instance of the industrial equipment (108).
3. The method according to claim 1 or 2, wherein determining the control program block corresponding to at least one of the industrial devices (108A-N) based on the received request comprises: The received request is parsed to identify at least one of the industrial devices (108A-N); At least one of the identified industrial devices (108A-N) is compared with one or more pre-stored instances of the industrial device, each of the one or more pre-stored instances of the industrial device correspondingly mapped to one or more control program blocks; and Based on comparison, a control program block corresponding to at least one of the identified components in the industrial equipment (108A-N) is determined.
4. The method according to claim 1 or 2, wherein dividing the determined control program block into one or more software units based on the content of the control program block comprises: Based on the content of the control block, determine one or more attributes associated with the control block; One or more software units associated with the control block are generated based on one or more determined attributes associated with the control block. as well as The defined control program block is divided into one or more generated software units.
5. The method of claim 4, wherein processing the one or more software units based on one or more user requirements and requested engineering actions comprises: One or more parameters associated with at least one of the industrial equipment (108A-N) are determined by analyzing the engineering actions; A sub-control program block that identifies one or more software units that correspond to one or more determined parameters associated with at least one of the industrial equipment (108A-N); Based on one or more determined parameters associated with at least one of the industrial devices (108A-N), determine whether the sub-control program block of the one or more software units needs to be modified; as well as Based on the determination of modifying the sub-control program block of the one or more software units.
6. The method according to claim 1, further comprising: If the specified type of industrial equipment is not available, one or more virtual instances of the industrial equipment required to deploy the software units of the one or more processes are generated.
7. The method of claim 6, wherein deploying one or more corresponding software units to each of at least two determined instances of the industrial equipment comprises: A communication session is established with each of at least two identified instances of the industrial equipment via the network (104); Determine whether at least one of the two instances of the industrial equipment corresponds to a physical instance of the industrial equipment installed in the technical facility (106); and If at least two instances of the industrial equipment correspond to a physical instance of the industrial equipment installed in the technical facility (106), then one or more corresponding software units are deployed to the physical instance of the industrial equipment installed in the technical facility (106).
8. The method according to claim 7, further comprising: Determine whether at least one of the two instances of the industrial equipment corresponds to a virtual instance of the industrial equipment simulated in a virtual environment (318). If at least two instances of the industrial equipment correspond to a virtual instance (318) of the industrial equipment, then the virtual instance (318) of the industrial equipment is generated in the virtual environment; and The corresponding one or more software units are deployed to the virtual instance (318) of the industrial equipment.
9. The method of claim 8, further comprising: A real-time communication session is established between at least two instances of the industrial equipment via a communication network (104); as well as The established communication session is used to transmit real-time parameter values associated with each of at least two instances of the industrial equipment.
10. An automated engineering management system (114), comprising: One or more processors (202); as well as A memory (204) coupled to the one or more processors (202), wherein the memory (204) includes an automation engineering management module (212) stored in the form of machine-readable instructions and executable by the one or more processors (202), wherein the automation engineering management module (212) is capable of performing the method according to any one of claims 1-9.
11. A cloud computing system (102), comprising: A cloud computing platform (112) includes an automated engineering management system (114) stored therein in the form of machine-readable instructions, wherein the automated engineering management system (114) is configured to perform the method according to any one of claims 1-9.
12. A computer program product comprising machine-readable instructions stored therein, which, when executed by one or more processors (202), cause the one or more processors (202) to perform the method according to any one of claims 1-9.