EP4193225A1 - Method and system for providing engineering of an industrial device in a cloud computing environment - Google Patents

Method and system for providing engineering of an industrial device in a cloud computing environment

Info

Publication number
EP4193225A1
EP4193225A1 EP21773600.8A EP21773600A EP4193225A1 EP 4193225 A1 EP4193225 A1 EP 4193225A1 EP 21773600 A EP21773600 A EP 21773600A EP 4193225 A1 EP4193225 A1 EP 4193225A1
Authority
EP
European Patent Office
Prior art keywords
industrial device
software units
control program
industrial
instances
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP21773600.8A
Other languages
German (de)
French (fr)
Inventor
Sudeepthi Bollineni
Christian Fischer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Publication of EP4193225A1 publication Critical patent/EP4193225A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13144GUI graphical user interface, icon, function bloc editor, OI operator interface

Definitions

  • the present invention relates to engineering of industrial devices, and more particularly relates to a method and system for providing engineering of an industrial device in a cloud computing environment .
  • a factory or a plant typically hosts several programmable logic controllers (PLC) .
  • PLC programmable logic controllers
  • Each PLC controls a specific part of the factory or a specific machine.
  • control programs such as PLC programs are written using an engineering application to meet specific control conditions of the factory. These PLC programs are compiled, tested, and deployed to specific PLC' s in the factory.
  • the PLC programs may need continuous changes or adaptations in order to meet the changing requirements of the factory. Also, each time when an issue arising in the factory needs to be fixed or if a process needs to be improved, the PLC program needs to be modified. Such a task of updating and deploying of PLC program often is a time-consuming. For example, when a PLC program needs to be modified, the PLC program or specific part of the PLC program is built and compiled with all relevant PLC programs. Later, automated tests are executed on those modified PLC programs, and the PLC program are downloaded on the desired PLC device. These leads to increased time and efforts spent on developing automation solutions. Further, the entire PLC program is downloaded on a single PLC, which consumes huge memory space.
  • the object of the present invention is achieved by a method for providing engineering of an industrial device in a cloud computing environment.
  • the method comprises receiving a request for performing an engineering action on at least one of the industrial devices.
  • the method comprises determining a control program block corresponding to the at least one of the industrial devices based on the received request.
  • the control program block comprises a PLC program.
  • the PLC program comprises multiple parts referred as function blocks. Each function block resides in a separate part file as part of the engineering project f ile .
  • the method comprises segmenting the determined control program block into one or more software units based on content of the control program block.
  • the content of the control program block comprises device configuration information, device ID, device name and the like.
  • the method comprises processing the one or more software units based on one or more user requirements and the requested engineering action.
  • the method comprises determining at least two instances of the industrial devices for deploying the one or more proces sed software unit s separately based on segment type of the proces sed one or more software unit s .
  • the at least two instances of the industrial devices comprises at least one virtual instance of the industrial device and at least one phys ical instance of the industrial device .
  • the method comprises deploying separately the re spect ive one or more software unit s into each of the determined at least two instances of the industrial device .
  • the method comprises dynamically generating a modified control program based on the one or more modi ficat ions made in the control program .
  • the modified control program corresponds to a compiled PLC program .
  • the method comprises outputting the modified control program on a user interface of the at least one engineering system .
  • the method comprises identi fying the at least one of the industrial devices by parsing the received request . Further, the method comprises comparing the ident ified at least one of the industrial devices with one or more pre-stored instance of the industrial device . Each of the one or more pre-stored instance of the industrial device is correspondingly mapped to one or more control program blocks . Also, the method compri ses determining the control program block corre sponding to the identified at least one of the industrial devices based on the compari son .
  • the method In segmenting the determined control program block into one or more software unit s based on content of the control program block , the method compri ses determining one or more properties as sociated with the cont rol program block based on the content of the control program block. Further, the method comprises generating one or more software units associated with the control program block based on the determined one or more properties associated with the control program block. Also, the method comprises segmenting the determined control program block into the generated one or more software units. Each of the one or more software units comprises sub-control program blocks which are self-executable, self- configurable and self-deployable.
  • the method comprises determining one or more parameters associated with the at least one of the industrial devices by parsing the engineering action. Further, the method comprises identifying a sub control program block of the one or more software units corresponding to the determined one or more parameters associated with the at least one of the industrial devices. The method comprises determining whether the sub control program block of the one or more software units require a modification based on the determined one or more parameters associated with the at least one of the industrial devices. Furthermore, the method comprises modifying the sub control program block of the one or more software units based on the determination.
  • the method comprises determining type of segment associated with each of the one or more processed software units. Further, the method comprises determining one or more properties associated with the determined type of segment associated with each of the one or more processed software units. Furthermore, the method comprises determining type of industrial device required for deploying the one or more processed software units based on the determined one or more properties. Also, the method comprises determining whether the type of industrial device is available for deploying the one or more processed software units based on the determined one or more properties. Furthermore, the method comprises identifying the at least two instances of the industrial device which are determined to be available for deploying the one or more processed software units.
  • the method comprises generating one or more virtual instances of the industrial device required for deploying the one or more processed software units if the type of industrial device required is unavailable.
  • the method comprises establishing a communication session with each of the determined at least two instances of the industrial device via a network. Further, the method comprises determining whether one of the at least two instances of the industrial device corresponds to a physical instance of the industrial device installed on a technical installation. Also, the method comprises deploying separately the respective one or more software units into the physical instance of the industrial device installed on the technical installation if the one of the at least two instances of the industrial device corresponds to a physical instance of the industrial device installed in a technical installation. Furthermore, the method comprises determining whether one of the at least two instances of the industrial device corresponds to a virtual instance of the industrial device simulated in a virtual environment.
  • the method comprises generating a virtual instance of the industrial device in the virtual environment if the one of the at least two instances of the industrial device corresponds to the virtual instance of the industrial device. Further, the method comprises deploying the respective one or more software units into the virtual instance of the industrial device. Further, the method comprises establishing a real time communication session between the at least two instances of the industrial device via a communication network. Furthermore, the method comprises communicating real time parameter values associated with each of the at least two virtual instances of the industrial device using the established communication session.
  • the object of the present invention is achieved by an automation engineering management system.
  • the automation engineering management system comprises one or more processor (s) and a memory coupled to the processor (s) .
  • the memory comprises an automation engineering management module stored in the form of machine- readable instructions executable by the processor (s) .
  • the automation engineering management module is configured for performing the method steps described above.
  • the object of the present invention is achieved by a cloud computing system comprising a processing unit, and a cloud platform comprising an automation engineering management module stored therein in the form of machine-readable instructions executable by the processing unit.
  • the automation engineering management module is configured to perform the method steps described above.
  • the object of the present invention is achieved by a computerprogram product having machine-readable instructions stored therein, that when executed by one or more processing unit (s) , cause the one or more processing unit (s) to perform method steps described above.
  • FIG 1 is a schematic representation of a cloud computing environment capable of managing engineering of industrial devices, according to an embodiment of the present invention
  • FIG 2 is a block diagram of an automation engineering management system, such as shown in FIG 1, in which an embodiment of the present invention can be implemented;
  • FIG 3 is a block diagram of an automation engineering management module, such as those shown in FIG 2, in which an embodiment of the present invention can be implemented;
  • FIG 4 is a process flowchart illustrating an exemplary method of managing engineering of industrial devices, according to an embodiment of the present invention.
  • FIG 5 is an exemplary schematic representation of a graphical user interface of an engineering application in an engineering system depicting management of engineering process, according to an embodiment of the present invention .
  • FIG 1 is a schematic representation of a cloud computing environment 100 capable of managing engineering of industrial devices 108A-N, according to an embodiment of the present invention. Particularly, FIG 1 depicts a cloud computing system 102 capable of delivering cloud applications for managing a technical installation 106 comprising one or more industrial devices 108A-N.
  • cloud computing environment refers to a processing environment comprising configurable computing physical and logical resources, for example, networks, servers, storage, applications, services, etc., and data distributed over the cloud platform.
  • the cloud computing environment 100 provides on-demand network access to a shared pool of the configurable computing physical and logical resources.
  • the technical installation 106 may comprise a plant or an industry.
  • the cloud computing system 102 is connected to the one or more industrial devices 108A-N in the technical installation 106 via a network 104 (e.g., Internet) .
  • the one or more industrial devices 108A-N may include robots, switches, automation devices such as programmable logic controllers (PLC) s, human machine interfaces (HMIs) , field devices such as motors, valves, pumps, actuators, sensors, and other industrial device (s) .
  • the one or more industrial devices 108A-N comprises a control device, such as the PLC.
  • the cloud computing system 102 may be a public cloud, a private cloud, and/or a hybrid cloud configured to provide dedicated cloud services to its users.
  • FIG 1 illustrates the cloud computing system 102 connected to one technical installation 106, one skilled in the art can envision that the cloud computing system 102 can be connected to several technical installations 106 located at different geographical locations via the network 104.
  • the cloud computing system 102 is also connected to user devices 110A-N via the network 104.
  • the user devices 110A-N can access the cloud computing system 102 for managing engineering of industrial devices 108A-N.
  • the user devices 110A- N comprises an engineering system capable of running an industrial automation application.
  • the user devices 110A-N can be a laptop computer, desktop computer, tablet computer, smartphone and the like.
  • the user devices 110A-N can access cloud applications (such as providing performance visualization of the one or more industrial devices 108A-N) via a web browser.
  • each of the user (s) using the user devices 110A-N is associated with a defined privilege for accessing the engineering project files.
  • the defined privileges may include geographical location (s) of the user, role of the user, version of the industrial automation application, associated permissions and the like.
  • the permissions may comprise read access, write access, read and write access, and read or write access .
  • the cloud computing system 102 comprises a cloud computing platform 112, an automation 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 installation 106, and the user devices 110A-N. Also, the network interface 118 enables communication between the cloud computing system 102 and the user devices 110A-N.
  • the cloud interface (not shown in FIG 1) may allow the users at the 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 the control program blocks as same instance.
  • the cloud computing infrastructure 116 may include one or more servers on which the OS is installed.
  • the cloud computing infrastructure 116 may comprise one or more processors, one or more storage devices, such as, memory units, for storing data and machine-readable instructions for example, applications and application programming interfaces (APIs) 122, and other peripherals required for providing cloud computing functionality.
  • the cloud computing platform 112 is a platform which enables functionalities such as data reception, data processing, data rendering, data communication, etc. using the hardware resources and the OS of the cloud computing infrastructure 116 and delivers the aforementioned cloud services using the application programming interfaces 122 deployed therein.
  • the cloud computing platform 112 may comprise a combination of dedicated hardware and software built on top of the hardware and the OS.
  • the database 120 stores the information relating to the technical installation 106 and the user devices 110A-N.
  • the database 120 is, for example, a structured query language (SQL) data store or a not only SQL (NoSQL) data store.
  • SQL structured query language
  • NoSQL not only SQL
  • the database 120 is configured as cloud-based database implemented in the cloud computing environment 100, where computing resources are delivered as a service over the cloud computing platform 112.
  • the database 120 according to another embodiment of the present invention, is a location on a file system directly accessible by the control program management system 114.
  • the database 120 is configured to store the one or more software units, one or more control program blocks, sub control program blocks, one or more parameters associated with the at least one of the industrial device 108A-N, one or more properties associated with the software units, virtual instances of the industrial devices 108A-N, real time values of the at least one of the industrial device 108A-N, communication session, types of segments, and the like.
  • FIG 2 is a block diagram of an automation engineering management system 114, such as those shown in FIG 1, in which an embodiment of the present invention can be implemented.
  • the automation engineering management system 114 includes a processor (s) 202, an accessible memory 204, a communication interface 206, an input-output unit 208, and a bus 210.
  • the processor(s) 202 means any type of computational circuit such as but not limited to a microprocessor unit, microcontroller, complex instruction set computing microprocessor unit, reduced instruction set computing microprocessor unit, very long instruction word microprocessor unit, explicitly parallel instruction computing microprocessor unit, graphics processing unit, digital signal processing unit, or any other type of processing circuit.
  • the processor (s) 202 may also include embedded controllers, such as generic or programmable logic devices or arrays, application specific integrated circuits, single-chip computers, and the like.
  • the memory 204 may be non-t ransitory volatile memory and nonvolatile memory.
  • the memory 204 may be coupled for communication with the processor (s) 202, such as being a computer-readable storage medium.
  • the processor (s) 202 may execute machine-readable instructions and/or source code stored in the memory 204.
  • a variety of machine-readable instructions may be stored in and accessed from the memory 204.
  • the memory 204 may 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, a hard drive, a removable media drive for handling compact disks, digital video disks, diskettes, magnetic tape cartridges, memory cards, and the like.
  • the memory 204 includes an automation engineering management module 212 stored in the form of machine-readable instructions on any of the above-mentioned storage media and may be in communication with and executed by the processor (s) 202.
  • the automation engineering management module 212 When executed by the processor (s) 202, the automation engineering management module 212 causes the processor (s) 202 to manage engineering of the industrial devices 108A-N in the cloud computing environment 100. In an embodiment, the automation engineering management module 212 causes the processor (s) 202 to receive a request for performing an engineering action on at least one of the industrial devices 108A-N. Upon receiving the request, the automation engineering management module 212 causes the processor (s) 202 to determine a control program block corresponding to the at least one of the industrial devices 108A- N based on the received request.
  • the automation engineering management module 212 causes the processor (s) 202 to segment the determined control program block into one or more software units based on content of the control program block. Furthermore, the automation engineering management module 212 causes the processor (s) 202 to process the one or more software units based on one or more user requirements and the requested engineering action. Furthermore, the automation engineering management module 212 causes the processor (s) 202 to determine at least two instances of the industrial device for deploying the one or more processed software units separately based on segment type of the processed one or more software units. The at least two instances of the industrial device comprises at least one virtual instance of the industrial device and at least one physical instance of the industrial device. Additionally, the automation engineering management module 212 causes the processor (s) 202 to deploy separately the respective one or more software units into each of the determined at least two instances of the industrial device.
  • the automation engineering management module 212 causes the processor (s) 202 to identify the at least one of the industrial devices 108A-N by parsing the received request. Further, the automation engineering management module 212 causes the processor (s) 202 to compare the identified at least one of the industrial devices 108A-N with one or more pre-stored instances of the industrial device. Each of the one or more pre-stored instances of the industrial device is mapped to one or more corresponding control program blocks. Further, the automation engineering management module 212 causes the processor (s) 202 to determine the control program block corresponding to the identified at least one of the industrial devices 108A-N based on the comparison.
  • the automation engineering management module 212 causes the processor (s) 202 to determine one or more properties associated with the control program block based on the content of the control program block. Further, the automation engineering management module 212 causes the processor (s) 202 to generate one or more software units associated with the control program block based on the determined one or more properties associated with the control program block. Also, the automation engineering management module 212 causes the processor (s) 202 to segment the determined control program block into the generated one or more software units.
  • Each of the one or more software units comprises sub-control program blocks which are self-executable, self-configurable and self- deployable .
  • the automation engineering management module 212 In processing the one or more software units based on one or more user requirements and the requested engineering action, the automation engineering management module 212 causes the processor (s) 202 to determine one or more parameters associated with the at least one of the industrial devices 108A-N by parsing the engineering action. Further, the automation engineering management module 212 causes the processor (s) 202 to identify a sub control program block of the one or more software units corresponding to the determined one or more parameters associated with the at least one of the industrial devices 108A-N. Furthermore, the automation engineering management module 212 causes the processor (s) 202 to determine whether the sub control program block in the one or more software units require a modification based on the determined one or more parameters associated with the at least one of the industrial devices 108A- N.
  • the automation engineering management module 212 causes the processor (s) 202 to modify the sub control program block of the one or more software units based on the determination.
  • the one or more modifications comprises changing parameter values, swapping control program blocks, rename software unit, classify control program block, addition, deletion, replace or remove one or more components of the control program block and the like.
  • the automation engineering management module 212 causes the processor (s) 202 to determine type of segment associated with each of the one or more processed software units. Further, the automation engineering management module 212 causes the processor (s) 202 to determine one or more properties associated with the determined type of segment associated with each of the one or more processed software units. Furthermore, the automation engineering management module 212 causes the processor (s) 202 to determine type of at least one of the industrial devices 108A-N required for deploying the one or more processed software units based on the determined one or more properties.
  • the automation engineering management module 212 causes the processor (s) 202 to determine whether the type of industrial device is available for deploying the one or more processed software units based on the determined one or more properties. Also, the automation engineering management module 212 causes the processor (s) 202 to identify the at least two instances of the industrial device which are determined to be available for deploying the one or more processed software units.
  • the automation engineering management module 212 causes the processor (s) 202 to generate one or more virtual instance of the industrial device required for deploying the one or more processed software units if the determined type of industrial device is unavailable.
  • the automation engineering management module 212 causes the processor (s) 202 to establish a communication session with each of the determined at least two instances of the industrial device via a network. Further, the automation engineering management module 212 causes the processor (s) 202 to determine whether one of the at least two instances of the industrial device corresponds to a physical instance of the industrial device 108A-N installed in a technical installation 106.
  • the automation engineering management module 212 causes the processor (s) 202 to deploy separately the respective one or more software units into the physical instance of the industrial device installed in the technical installation 106 if the one of the at least two instances of the industrial device corresponds to the physical instance of the industrial device in the technical installation 106.
  • the automation engineering management module 212 causes the processor (s) 202 to determine whether one of the at least two instances of the industrial device corresponds to a virtual instance of the industrial device simulated in a virtual environment. In this case, the automation engineering management module 212 causes the processor (s) 202 to generate a virtual instance of the industrial device in the virtual environment if the one of the at least two instances of the industrial device corresponds to the virtual instance of the industrial device. Further, the automation engineering management module 212 causes the processor (s) 202 to deploy separately the respective one or more software units into the virtual instance of the industrial device.
  • the automation engineering management module 212 causes the processor (s) 202 to establish a real-time communication session between the at least two instances of the industrial device via a communication network 104. Further, the automation engineering management module 212 causes the processor (s) 202 to communicate real-time parameter values associated with each of the at least two instances of the industrial device using the established communication session.
  • the communication interface 206 is configured for establishing communication sessions between the one or more engineering systems 110A-N and the cloud computing system 102.
  • the communication interface 206 allows the one or more engineering applications running on the user devices 110A-N to import /import software units into the cloud computing system 102.
  • the communication interface 206 interacts with the interface at the one or more user devices 110A-N for allowing the engineers to access the control programs in the engineering project file and perform one or more engineering actions on the control program stored in the cloud computing system 102.
  • the engineering actions may be those which are known to a person skilled in the art .
  • the input-output unit 208 may include input devices a keypad, touch-sensitive display, camera (such as a camera receiving gesture-based inputs) , etc. capable of receiving one or more input signals, such as user commands to process an engineering project file. Also, the input-output unit 208 may be a display unit for displaying a graphical user interface which visualizes the behavior model associated with the software unite and also displays the status information associated with each set of engineering actions performed on the software units. The set of actions may include execution of predefined tests, download, compile and deploy of control programs.
  • the bus 210 acts as interconnect between the processor 202, the memory 204, and the input-output unit 208.
  • FIG 2 may vary for particular implementation.
  • peripheral devices such as an optical disk drive and the like, Local Area Network (LAN) , Wide Area Network (WAN) , Wireless (e.g., Wi-Fi) adapter, graphics adapter, disk controller, input/output (I/O) adapter also may be used in addition or in place of the hardware depicted.
  • LAN Local Area Network
  • WAN Wide Area Network
  • Wireless (e.g., Wi-Fi) adapter e.g., Wi-Fi) adapter
  • graphics adapter e.g., disk controller
  • I/O input/output
  • FIG 3 is a block diagram of an automation engineering management module 212, such as those shown in FIG 2, in which an embodiment of the present invention can be implemented.
  • the automation engineering management module 212 comprises 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.
  • the request handler 302 is configured for receiving a request for performing an engineering action on at least one of the industrial devices 108A-N.
  • the request comprises at least one of desired user requirements associated with the technical installation 106, one or more desired parameter values associated with at least one of the industrial devices 108A-N, a request to establish communication between a physical instance of the industrial device 108A and corresponding virtual instance of the industrial device.
  • the engineering action comprises upgrading a firmware, changing hardware configuration, addition or deletion of any new industrial device, and the like.
  • the industrial device 108A may be a PLC.
  • the control program block management module 304 is configured for determining a control program block corresponding to the at least one of the industrial devices 108A-N based on the received request.
  • the control program block comprises program statements for controlling the operation and behavior of the at least one of the industrial devices 108A-N.
  • the control program block management module 304 is configured for identifying the at least one of the industrial devices 108A-N by parsing the received request .
  • the control program block management module 304 is conf igured for comparing the identified at least one of the industrial devices 108A-N with one or more pre-stored instances of the industrial device .
  • Each of the one or more prestored instance s of the industrial device is correspondingly mapped to one or more control program blocks . For example , instance of PLC A is mapped to PLC Control Block A, instance of PLC B is mapped to PLC control block B and so on .
  • control program block management module 304 i s conf igured for determining the control program block corresponding to the identified at least one of the industrial devices 108A-N based on the comparison . For example , if the reque st comprise s parameters related to PLC A, then corre sponding control program A is determined .
  • the segmentation module 306 is configured for segmenting the determined control program block into one or more software unit s based on content of the control program block . Specifically, the segmentat ion module 306 is configured for determining one or more propertie s as sociated with the control program block based on the content of the control program block .
  • the one or more propertie s as sociated with the cont rol program block comprises program block type , program block identif ier, and program block path, and the like .
  • the segmentation module 306 is conf igured for generating one or more software unit s as sociated with the control program block based on the determined one or more propert ie s as sociated with the cont rol program block .
  • the segmentat ion module 306 modularizes the huge control program block into multiple downloadable entities to shift the runtime to a virtual simulator such as PLC Simulator (for example, PLCSIM Advanced) which in turn is shifted to the cloud computing system 102.
  • PLC Simulator for example, PLCSIM Advanced
  • a software unit is a group of multiple programming artifacts behind a unit interface for engineering as well as for runtime. Such software units are self-contained deployable, separately loadable 'assemblies' constituting a consistency capsule on basis of (lockable) public interfaces .
  • the segmentation module 306 is configured for segmenting the determined control program block into the generated one or more software units.
  • Each of the one or more software units comprises sub-control program blocks which are self-executable, self-configurable and self-deployable.
  • such software units are generated as a complied clean PLC program, where the logic of execution of the PLC program in real plant is segmented into two sections with multiple sub-units.
  • one segment comprises control program blocks and sub control program blocks which majorly performs pre-calculat ions , and which does not have much influence on real input or output (I/O) values of the at least one of the industrial devices 108A-N.
  • This segment of control block is determined to be deployable on a virtual software comprising virtual instance of the industrial device 318.
  • Another segment comprises control program blocks and sub control program blocks which mainly focuses on executions or program logic which have an influence on the real I ⁇ O values of the at least one of the industrial devices 108A-N.
  • the output of segmentation module 306 comprises one or more segments of the control program block.
  • the processing module 308 is configured for processing the one or more software units based on one or more user requirements and the requested engineering action.
  • the one or more user requirements comprises changes to hardware configuration parameters of the at least one of the industrial devices 108A-N.
  • the processing module 308 is configured for determining one or more parameters associated with the at least one of the industrial devices by parsing the engineering action.
  • the one or more parameters associated with the at least one of the industrial devices 108A-N comprises hardware configuration parameters, tag values, real time input output values of the at least one of the industrial devices 108A-N and any other known field parameters.
  • processing module 308 is configured for identifying a sub control program block of the one or more software units corresponding to the determined one or more parameters associated with the at least one of the industrial devices 108A-N. For example, if the determined one or more parameters corresponds to PLC 1 tag values, then corresponding sub control program, say sub program PLC 1 tag values is identified.
  • the processing module 308 is configured for determining whether the sub control program block of the one or more software units require a modification based on the determined one or more parameters associated with the at least one industrial device. For example, the one or more parameters present in the identified sub control program are compared with those of the one or more determined parameters. If it is determined that the determined parameters are not same as that of the one or more parameters in the identified sub control program, then it is determined that the identified sub control program requires a modification. Subsequently, the processing module 308 is configured for modifying the sub control program block of the one or more software units based on the determination.
  • the deployment module 310 is configured for determining at least two instances of the industrial devices for deploying the one or more proces sed software unit s separately based on segment type of the proces sed one or more software unit s .
  • the at least two instances of the industrial device comprises at least one virtual instance 318 of the industrial device and at least one physical instance of the indust rial device .
  • the deployment module 310 is also configured for deploying separately the respective one or more software unit s into each of the determined at least two instances of the indust rial device .
  • the deployment module 310 i s configured for determining type of segment as sociated with each of the one or more proces sed software unit s .
  • the type of segment comprises cont rol program blocks executable on virtual instance 318 of the industrial device and the other comprises control program blocks executable on a real time hardware or physical instance of the industrial device (such as the industrial device 108A) .
  • the deployment module 310 is conf igured for determining one or more properties as sociated with the determined type of segment as sociated with each of the one or more proce s sed software unit s .
  • the one or more properties of the type of segment comprises software based, hardware based, undeployable and the like .
  • the software based segment indicate s that the software unit s comprising cont rol program blocks are deployable on a virtual instance 318 of the industrial device .
  • the hardware based segment indicates that the software unit s comprising control program blocks are deployable on a real t ime hardware or phys ical instance of the industrial device (such as the industrial device 108A) .
  • the undeployable segment compri ses software unit s which are not ready for deployment .
  • the deployment module 310 is conf igured for determining type of industrial device required for deploying the one or more processed software units based on the determined one or more properties.
  • the type of industrial device comprises a virtual instance 318 of the industrial device or a physical instance of industrial device.
  • the deployment module 310 is configured for determining whether such type of industrial device required is available for deploying the one or more processed software units based on the determined one or more properties. This is achieved by sending a test signal to all the industrial devices 108A-N currently deployed in the technical installation 106 and those present in the virtual environment. Later, the deployment module 310 is configured for identifying the at least two instances of the industrial device which are determined to be available for deploying the one or more processed software units.
  • any of the one combination among one virtual-one real hardware, two virtual, two real hardware may be selected for deployment.
  • Such combination allows for executing the modularized or segmented control programs in different runtime target industrial device where one being in virtual environment. Also, such shared deployment helps in saving huge memory space and engineering efforts at the real time hardware industrial device.
  • the deployment module 310 if it is determined that such type of industrial device required is unavailable, then the deployment module 310 generates one or more virtual industrial device required for deploying the one or more processed software units.
  • the communication interface 314 is configured for establishing a communication session with each of the determined at least two instances of the industrial devices via a network 104.
  • the communication session is established between for example a virtual PLC such as PLCSIM and PLC real hardware for both data exchange and for controlling the execution of control program block from one target (i.e., PLC real hardware) to another target (i.e., PLCSIM) .
  • PLCSIM virtual PLC
  • the communication between the virtual instance 318 of the industrial device and the physical instance of the industrial device 108A is established via standard mechanisms such as Open Platform Communications United Architecture (OPC-UA) or Transmission Control Protocol/Internet Protocol, (TCP/IP) to exchange the information between the software units which are downloaded to the virtual instance of the industrial device 318 which is in the cloud computing system 102 to the software units which are getting executed in the physical industrial device 108A.
  • OPC-UA Open Platform Communications United Architecture
  • TCP/IP Transmission Control Protocol/Internet Protocol
  • the deployment module 310 is configured for determining whether one of the at least two instances of the industrial device corresponds to a physical instance of the industrial device 108A installed in a technical installation 106. Further, the deployment module 310 is configured for deploying separately the respective one or more software units into the physical instance of the industrial device 108A installed in the technical installation 106 if the one of the at least two instances of the industrial device corresponds to a physical instance of the industrial device 108A installed in the technical installation 106.
  • the deployment module 310 is configured for determining whether one of the at least two instances of the industrial device corresponds to a virtual instance of the industrial device 318 simulated on a virtual environment .
  • the virtual environment 312 is configured for generating a virtual instance 318 of the industrial device in the virtual environment if the one of the at least two instances of the industrial device corresponds to the virtual instance 318 of the industrial device. Further, the virtual environment 312 is configured for deploying separately the respective one or more software units into the virtual instance 318 of the industrial device.
  • the virtual instance 318 of the industrial device is hosted/lifted to the cloud computing system 102 using standard engineering software or any other automation software so that applications created using IECPL PLC programming language are executed in the cloud computing system 102.
  • the virtual environment 312 is configured for simulating behavior of the control program in a simulation environment on one or more simulation instance associated with the virtual instance 318 of the industrial device.
  • the virtual environment 312 comprises one or more virtual instances 318 of the industrial device.
  • the virtual environment 312 emulates an actual technical installation, such as technical installation 106.
  • the virtual instance 318 of the industrial device in the virtual environment 312 emulates the actual industrial device (s) 108A-N.
  • the virtual instance 318 of the industrial device (s) may correspond to robots, switches, automation devices, programmable logic controllers (PLC) s, human machine interfaces (HMIs) , motors, valves, pumps, actuators, sensors and other industrial devices.
  • the virtual instance 318 of the industrial device comprises a control device, such as the PLCs .
  • the virtual environment 312 may be a virtual setup of the actual technical installation 106.
  • the communication interface 314 is configured for establishing a real time communication session between the at least two instances of the industrial device via a communication network 104. Further, the communication interface 314 is configured for communicating real time parameter values associated with each of the at least two instances of the industrial device using the established communication session.
  • the database 316 is configured for storing the one or more software units, one or more control program blocks, sub control program blocks, one or more parameters associated with the at least one of the industrial devices 108A-N, one or more properties associated with the software units, virtual instance 318 of the industrial device, real time values of the at least one of the industrial devices 108A-N, communication session, types of segments, and the like .
  • FIG 4 is a process flowchart 400 illustrating an exemplary method of managing engineering of the industrial devices 108A-N, according to an embodiment of the present invention.
  • a request for performing an engineering action on at least one of the industrial devices 108A-N is received.
  • a control program block corresponding to the at least one of the industrial devices 108A-N based on the received request is determined.
  • the determined control program block is segmented into one or more software units based on content of the control program block.
  • the one or more software units are processed based on one or more user requirements and the requested engineering action.
  • At step 410 at least two instances of the industrial devices are determined for deploying the one or more processed software units separately based on segment type of the processed one or more software units.
  • the respective one or more software units are separately deployed into each of the determined at least two instances of the industrial device.
  • FIG 5 is an exemplary schematic representation of a graphical user interface 500 of an automation application in an user device 110 for management of engineering process, according to an embodiment of the present invention.
  • FIG 5 depicts a graphical user interface of the automation engineering management system 114 comprising one or more engineering projects associated with the technical installation 106.
  • Each of the engineering project comprise a unique name and a unique identifier (ID) associated with it.
  • each engineering project comprises one or more control programs associated with industrial devices 108A-N.
  • Each of such control programs comprises a common part control program and a dependent part control program.
  • a common part control program has a unique ID and unique name associated with it.
  • a dependent part control program also has a unique name and unique ID associated with it.
  • the engineering project files such as Project 1 and Project 2 comprises control program such as a PLC program.
  • Each PLC program comprises dependent control programs such as Motor logic, Conveyer Logic and so on. These dependent control programs are the function blocks.
  • the dependent control programs have corresponding library of elements stored in the database 120 such as those shown in FIG 5.
  • Each of these engineering project files along with the control programs are stored in the database 120. Further, any modifications done to the basic template of engineering project can be updated any time by users with the specific privileges.
  • a typical user who wants to write some PLC program in a specific PLC project first fetches the corresponding project.
  • the automation engineering management system 114 identifies the corresponding PLC program. Then, such PLC program is segmented into one or more respective software units such as 502. Each of these software units comprises sub program blocks allowing the users to write specific PLC program parts. Once the compilation of the respective software units is locally successful and user has tested the software unit locally on the engineering system 110A-N, the automation engineering management system 114 determines suitable industrial device required for deploying each of the software units.
  • the automation engineering management system 114 determines which of those four software units are to be deployed on real PLC and which software units are to be deployed on virtual PLC. For example, software units 1 and 2 are determined to be deployable over virtual PLC and software units 3 and 4 are determined to be deployable over real PLC. In this case, the automation engineering management system 114 allows for respective deployment of the software units into each virtual and real PLCs based on determination.
  • the present invention can take a form of a computer program product comprising program modules accessible from computer-usable or computer-readable medium storing program code for use by or in connection with one or more computers, processors, or instruction execution system.
  • a computer- usable or computer-readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
  • the medium can be electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation mediums in and of themselves as signal carriers are not included in the definition of physical computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, random access memory (RAM) , a read only memory (ROM) , a rigid magnetic disk and optical disk such as compact disk read-only memory (CD- ROM) , compact disk read/write, and DVD.
  • RAM random access memory
  • ROM read only memory
  • CD- ROM compact disk read-only memory
  • DVD compact disk read/write

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Abstract

A method and system for managing engineering of an industrial device in a cloud computing environment is disclosed. The method comprises receiving a request for performing an engineering action on at least one of the industrial devices (108A-N). The method comprises determining a control program block corresponding to the at least one of the industrial devices (108A-N) based on the received request. Further, the method comprises segmenting the determined control program block into one or more software units based on content of the control program block. Furthermore, the method comprises processing the one or more software units based on one or more user requirements and the requested engineering action. Also, the method comprises determining at least two instances of the industrial devices for deploying the one or more processed software units based on segment type of the processed one or more software units. Moreover, the method comprises deploying the respective one or more software units into each of the determined at least two instances of the industrial device.

Description

METHOD AND SYSTEM FOR PROVIDING ENGINEERING OF AN INDUSTRIAL DEVICE IN A CLOUD COMPUTING ENVIRONMENT
The present invention relates to engineering of industrial devices, and more particularly relates to a method and system for providing engineering of an industrial device in a cloud computing environment .
A factory or a plant typically hosts several programmable logic controllers (PLC) . Each PLC controls a specific part of the factory or a specific machine. During initial commissioning phase, control programs such as PLC programs are written using an engineering application to meet specific control conditions of the factory. These PLC programs are compiled, tested, and deployed to specific PLC' s in the factory.
Once the initial commissioning is completed, the PLC programs may need continuous changes or adaptations in order to meet the changing requirements of the factory. Also, each time when an issue arising in the factory needs to be fixed or if a process needs to be improved, the PLC program needs to be modified. Such a task of updating and deploying of PLC program often is a time-consuming. For example, when a PLC program needs to be modified, the PLC program or specific part of the PLC program is built and compiled with all relevant PLC programs. Later, automated tests are executed on those modified PLC programs, and the PLC program are downloaded on the desired PLC device. These leads to increased time and efforts spent on developing automation solutions. Further, the entire PLC program is downloaded on a single PLC, which consumes huge memory space. Hence, sharing execution load of the PLC programs in between a hardware and a software is challenging as there is always a huge dependency with hardware configuration and because of huge engineering efforts involved. Moreover, establishing direct communication link with a physical hardware and a simulated software always involve huge engineering efforts.
In light of above, there is a need for an improved method and system for providing engineering of an industrial device in a cloud computing environment.
Therefore, it is an object of the present invention to provide a method and system for providing engineering of an industrial device in a cloud computing environment.
The object of the present invention is achieved by a method for providing engineering of an industrial device in a cloud computing environment. The method comprises receiving a request for performing an engineering action on at least one of the industrial devices. The method comprises determining a control program block corresponding to the at least one of the industrial devices based on the received request. In an exemplary embodiment, the control program block comprises a PLC program. The PLC program comprises multiple parts referred as function blocks. Each function block resides in a separate part file as part of the engineering project f ile .
The method comprises segmenting the determined control program block into one or more software units based on content of the control program block. The content of the control program block comprises device configuration information, device ID, device name and the like. Further, the method comprises processing the one or more software units based on one or more user requirements and the requested engineering action. Also, the method comprises determining at least two instances of the industrial devices for deploying the one or more proces sed software unit s separately based on segment type of the proces sed one or more software unit s . The at least two instances of the industrial devices comprises at least one virtual instance of the industrial device and at least one phys ical instance of the industrial device . Further, the method comprises deploying separately the re spect ive one or more software unit s into each of the determined at least two instances of the industrial device .
The method comprises dynamically generating a modified control program based on the one or more modi ficat ions made in the control program . In an embodiment , the modified control program corresponds to a compiled PLC program . Additionally, the method comprises outputting the modified control program on a user interface of the at least one engineering system .
In determining the control program block corresponding to the at least one of the indust rial devices based on the received request , the method comprises identi fying the at least one of the industrial devices by parsing the received request . Further, the method comprises comparing the ident ified at least one of the industrial devices with one or more pre-stored instance of the industrial device . Each of the one or more pre-stored instance of the industrial device is correspondingly mapped to one or more control program blocks . Also, the method compri ses determining the control program block corre sponding to the identified at least one of the industrial devices based on the compari son .
In segmenting the determined control program block into one or more software unit s based on content of the control program block , the method compri ses determining one or more properties as sociated with the cont rol program block based on the content of the control program block. Further, the method comprises generating one or more software units associated with the control program block based on the determined one or more properties associated with the control program block. Also, the method comprises segmenting the determined control program block into the generated one or more software units. Each of the one or more software units comprises sub-control program blocks which are self-executable, self- configurable and self-deployable.
In processing the one or more software units based on one or more user requirements and the requested engineering action, the method comprises determining one or more parameters associated with the at least one of the industrial devices by parsing the engineering action. Further, the method comprises identifying a sub control program block of the one or more software units corresponding to the determined one or more parameters associated with the at least one of the industrial devices. The method comprises determining whether the sub control program block of the one or more software units require a modification based on the determined one or more parameters associated with the at least one of the industrial devices. Furthermore, the method comprises modifying the sub control program block of the one or more software units based on the determination.
In determining the at least two instances of the industrial device for deploying the one or more processed software units separately based on segment type of the processed one or more software units, the method comprises determining type of segment associated with each of the one or more processed software units. Further, the method comprises determining one or more properties associated with the determined type of segment associated with each of the one or more processed software units. Furthermore, the method comprises determining type of industrial device required for deploying the one or more processed software units based on the determined one or more properties. Also, the method comprises determining whether the type of industrial device is available for deploying the one or more processed software units based on the determined one or more properties. Furthermore, the method comprises identifying the at least two instances of the industrial device which are determined to be available for deploying the one or more processed software units.
Furthermore, the method comprises generating one or more virtual instances of the industrial device required for deploying the one or more processed software units if the type of industrial device required is unavailable.
In deploying separately, the respective one or more software units into each of the determined at least two instances of the industrial devices, the method comprises establishing a communication session with each of the determined at least two instances of the industrial device via a network. Further, the method comprises determining whether one of the at least two instances of the industrial device corresponds to a physical instance of the industrial device installed on a technical installation. Also, the method comprises deploying separately the respective one or more software units into the physical instance of the industrial device installed on the technical installation if the one of the at least two instances of the industrial device corresponds to a physical instance of the industrial device installed in a technical installation. Furthermore, the method comprises determining whether one of the at least two instances of the industrial device corresponds to a virtual instance of the industrial device simulated in a virtual environment. Further, the method comprises generating a virtual instance of the industrial device in the virtual environment if the one of the at least two instances of the industrial device corresponds to the virtual instance of the industrial device. Further, the method comprises deploying the respective one or more software units into the virtual instance of the industrial device. Further, the method comprises establishing a real time communication session between the at least two instances of the industrial device via a communication network. Furthermore, the method comprises communicating real time parameter values associated with each of the at least two virtual instances of the industrial device using the established communication session.
The object of the present invention is achieved by an automation engineering management system. The automation engineering management system comprises one or more processor (s) and a memory coupled to the processor (s) . The memory comprises an automation engineering management module stored in the form of machine- readable instructions executable by the processor (s) . The automation engineering management module is configured for performing the method steps described above.
The object of the present invention is achieved by a cloud computing system comprising a processing unit, and a cloud platform comprising an automation engineering management module stored therein in the form of machine-readable instructions executable by the processing unit. The automation engineering management module is configured to perform the method steps described above. The object of the present invention is achieved by a computerprogram product having machine-readable instructions stored therein, that when executed by one or more processing unit (s) , cause the one or more processing unit (s) to perform method steps described above.
The above-mentioned and other features of the invention will now be addressed with reference to the accompanying drawings of the present invention. The illustrated embodiments are intended to illustrate, but not limit the invention.
The present invention is further described hereinafter with reference to illustrated embodiments shown in the accompanying drawings, in which:
FIG 1 is a schematic representation of a cloud computing environment capable of managing engineering of industrial devices, according to an embodiment of the present invention;
FIG 2 is a block diagram of an automation engineering management system, such as shown in FIG 1, in which an embodiment of the present invention can be implemented;
FIG 3 is a block diagram of an automation engineering management module, such as those shown in FIG 2, in which an embodiment of the present invention can be implemented; FIG 4 is a process flowchart illustrating an exemplary method of managing engineering of industrial devices, according to an embodiment of the present invention; and
FIG 5 is an exemplary schematic representation of a graphical user interface of an engineering application in an engineering system depicting management of engineering process, according to an embodiment of the present invention .
Various embodiments are described with reference to the drawings, wherein like reference numerals are used to refer the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for the purpose of explanation, numerous specific details are set forth in order to provide thorough understanding of one or more embodiments. It may be evident that such embodiments may be practiced without these specific details.
Throughout the specification, the terms "user devices" and "engineering systems" are used interchangeably.
FIG 1 is a schematic representation of a cloud computing environment 100 capable of managing engineering of industrial devices 108A-N, according to an embodiment of the present invention. Particularly, FIG 1 depicts a cloud computing system 102 capable of delivering cloud applications for managing a technical installation 106 comprising one or more industrial devices 108A-N. As used herein, "cloud computing environment" refers to a processing environment comprising configurable computing physical and logical resources, for example, networks, servers, storage, applications, services, etc., and data distributed over the cloud platform. The cloud computing environment 100 provides on-demand network access to a shared pool of the configurable computing physical and logical resources. In an embodiment, the technical installation 106 may comprise a plant or an industry.
The cloud computing system 102 is connected to the one or more industrial devices 108A-N in the technical installation 106 via a network 104 (e.g., Internet) . The one or more industrial devices 108A-N may include robots, switches, automation devices such as programmable logic controllers (PLC) s, human machine interfaces (HMIs) , field devices such as motors, valves, pumps, actuators, sensors, and other industrial device (s) . In a preferred embodiment, the one or more industrial devices 108A-N comprises a control device, such as the PLC. The cloud computing system 102 may be a public cloud, a private cloud, and/or a hybrid cloud configured to provide dedicated cloud services to its users. Although, FIG 1 illustrates the cloud computing system 102 connected to one technical installation 106, one skilled in the art can envision that the cloud computing system 102 can be connected to several technical installations 106 located at different geographical locations via the network 104.
Further, the cloud computing system 102 is also connected to user devices 110A-N via the network 104. The user devices 110A-N can access the cloud computing system 102 for managing engineering of industrial devices 108A-N. In an embodiment, the user devices 110A- N comprises an engineering system capable of running an industrial automation application. The user devices 110A-N can be a laptop computer, desktop computer, tablet computer, smartphone and the like. The user devices 110A-N can access cloud applications (such as providing performance visualization of the one or more industrial devices 108A-N) via a web browser. Also, each of the user (s) using the user devices 110A-N is associated with a defined privilege for accessing the engineering project files. The defined privileges may include geographical location (s) of the user, role of the user, version of the industrial automation application, associated permissions and the like. The permissions may comprise read access, write access, read and write access, and read or write access .
The cloud computing system 102 comprises a cloud computing platform 112, an automation 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 installation 106, and the user devices 110A-N. Also, the network interface 118 enables communication between the cloud computing system 102 and the user devices 110A-N. The cloud interface (not shown in FIG 1) may allow the users at the 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 the control program blocks as same instance. The cloud computing infrastructure 116 may include one or more servers on which the OS is installed. The cloud computing infrastructure 116 may comprise one or more processors, one or more storage devices, such as, memory units, for storing data and machine-readable instructions for example, applications and application programming interfaces (APIs) 122, and other peripherals required for providing cloud computing functionality. The cloud computing platform 112 is a platform which enables functionalities such as data reception, data processing, data rendering, data communication, etc. using the hardware resources and the OS of the cloud computing infrastructure 116 and delivers the aforementioned cloud services using the application programming interfaces 122 deployed therein. The cloud computing platform 112 may comprise a combination of dedicated hardware and software built on top of the hardware and the OS.
The database 120 stores the information relating to the technical installation 106 and the user devices 110A-N. The database 120 is, for example, a structured query language (SQL) data store or a not only SQL (NoSQL) data store. The database 120 is configured as cloud-based database implemented in the cloud computing environment 100, where computing resources are delivered as a service over the cloud computing platform 112. The database 120, according to another embodiment of the present invention, is a location on a file system directly accessible by the control program management system 114. The database 120 is configured to store the one or more software units, one or more control program blocks, sub control program blocks, one or more parameters associated with the at least one of the industrial device 108A-N, one or more properties associated with the software units, virtual instances of the industrial devices 108A-N, real time values of the at least one of the industrial device 108A-N, communication session, types of segments, and the like.
FIG 2 is a block diagram of an automation engineering management system 114, such as those shown in FIG 1, in which an embodiment of the present invention can be implemented. In FIG 2, the automation engineering management system 114 includes a processor (s) 202, an accessible memory 204, a communication interface 206, an input-output unit 208, and a bus 210.
The processor(s) 202, as used herein, means any type of computational circuit such as but not limited to a microprocessor unit, microcontroller, complex instruction set computing microprocessor unit, reduced instruction set computing microprocessor unit, very long instruction word microprocessor unit, explicitly parallel instruction computing microprocessor unit, graphics processing unit, digital signal processing unit, or any other type of processing circuit. The processor (s) 202 may also include embedded controllers, such as generic or programmable logic devices or arrays, application specific integrated circuits, single-chip computers, and the like.
The memory 204 may be non-t ransitory volatile memory and nonvolatile memory. The memory 204 may be coupled for communication with the processor (s) 202, such as being a computer-readable storage medium. The processor (s) 202 may execute machine-readable instructions and/or source code stored in the memory 204. A variety of machine-readable instructions may be stored in and accessed from the memory 204. The memory 204 may 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, a hard drive, a removable media drive for handling compact disks, digital video disks, diskettes, magnetic tape cartridges, memory cards, and the like. In the present embodiment, the memory 204 includes an automation engineering management module 212 stored in the form of machine-readable instructions on any of the above-mentioned storage media and may be in communication with and executed by the processor (s) 202.
When executed by the processor (s) 202, the automation engineering management module 212 causes the processor (s) 202 to manage engineering of the industrial devices 108A-N in the cloud computing environment 100. In an embodiment, the automation engineering management module 212 causes the processor (s) 202 to receive a request for performing an engineering action on at least one of the industrial devices 108A-N. Upon receiving the request, the automation engineering management module 212 causes the processor (s) 202 to determine a control program block corresponding to the at least one of the industrial devices 108A- N based on the received request.
Further, the automation engineering management module 212 causes the processor (s) 202 to segment the determined control program block into one or more software units based on content of the control program block. Furthermore, the automation engineering management module 212 causes the processor (s) 202 to process the one or more software units based on one or more user requirements and the requested engineering action. Furthermore, the automation engineering management module 212 causes the processor (s) 202 to determine at least two instances of the industrial device for deploying the one or more processed software units separately based on segment type of the processed one or more software units. The at least two instances of the industrial device comprises at least one virtual instance of the industrial device and at least one physical instance of the industrial device. Additionally, the automation engineering management module 212 causes the processor (s) 202 to deploy separately the respective one or more software units into each of the determined at least two instances of the industrial device.
In determining the control program block corresponding to the at least one of the industrial device 108A-N based on the received request, the automation engineering management module 212 causes the processor (s) 202 to identify the at least one of the industrial devices 108A-N by parsing the received request. Further, the automation engineering management module 212 causes the processor (s) 202 to compare the identified at least one of the industrial devices 108A-N with one or more pre-stored instances of the industrial device. Each of the one or more pre-stored instances of the industrial device is mapped to one or more corresponding control program blocks. Further, the automation engineering management module 212 causes the processor (s) 202 to determine the control program block corresponding to the identified at least one of the industrial devices 108A-N based on the comparison.
In segmenting the determined control program block into one or more software units based on content of the control program block, the automation engineering management module 212 causes the processor (s) 202 to determine one or more properties associated with the control program block based on the content of the control program block. Further, the automation engineering management module 212 causes the processor (s) 202 to generate one or more software units associated with the control program block based on the determined one or more properties associated with the control program block. Also, the automation engineering management module 212 causes the processor (s) 202 to segment the determined control program block into the generated one or more software units. Each of the one or more software units comprises sub-control program blocks which are self-executable, self-configurable and self- deployable .
In processing the one or more software units based on one or more user requirements and the requested engineering action, the automation engineering management module 212 causes the processor (s) 202 to determine one or more parameters associated with the at least one of the industrial devices 108A-N by parsing the engineering action. Further, the automation engineering management module 212 causes the processor (s) 202 to identify a sub control program block of the one or more software units corresponding to the determined one or more parameters associated with the at least one of the industrial devices 108A-N. Furthermore, the automation engineering management module 212 causes the processor (s) 202 to determine whether the sub control program block in the one or more software units require a modification based on the determined one or more parameters associated with the at least one of the industrial devices 108A- N. Further, the automation engineering management module 212 causes the processor (s) 202 to modify the sub control program block of the one or more software units based on the determination. The one or more modifications comprises changing parameter values, swapping control program blocks, rename software unit, classify control program block, addition, deletion, replace or remove one or more components of the control program block and the like.
In determining the at least two instances of the industrial device for deploying the one or more processed software units separately based on segment type of the processed one or more software units, the automation engineering management module 212 causes the processor (s) 202 to determine type of segment associated with each of the one or more processed software units. Further, the automation engineering management module 212 causes the processor (s) 202 to determine one or more properties associated with the determined type of segment associated with each of the one or more processed software units. Furthermore, the automation engineering management module 212 causes the processor (s) 202 to determine type of at least one of the industrial devices 108A-N required for deploying the one or more processed software units based on the determined one or more properties. Also, the automation engineering management module 212 causes the processor (s) 202 to determine whether the type of industrial device is available for deploying the one or more processed software units based on the determined one or more properties. Also, the automation engineering management module 212 causes the processor (s) 202 to identify the at least two instances of the industrial device which are determined to be available for deploying the one or more processed software units.
Furthermore, the automation engineering management module 212 causes the processor (s) 202 to generate one or more virtual instance of the industrial device required for deploying the one or more processed software units if the determined type of industrial device is unavailable.
In deploying separately, the respective one or more software units into each of the determined at least two instances of the industrial device, the automation engineering management module 212 causes the processor (s) 202 to establish a communication session with each of the determined at least two instances of the industrial device via a network. Further, the automation engineering management module 212 causes the processor (s) 202 to determine whether one of the at least two instances of the industrial device corresponds to a physical instance of the industrial device 108A-N installed in a technical installation 106. Further, the automation engineering management module 212 causes the processor (s) 202 to deploy separately the respective one or more software units into the physical instance of the industrial device installed in the technical installation 106 if the one of the at least two instances of the industrial device corresponds to the physical instance of the industrial device in the technical installation 106. Alternatively, the automation engineering management module 212 causes the processor (s) 202 to determine whether one of the at least two instances of the industrial device corresponds to a virtual instance of the industrial device simulated in a virtual environment. In this case, the automation engineering management module 212 causes the processor (s) 202 to generate a virtual instance of the industrial device in the virtual environment if the one of the at least two instances of the industrial device corresponds to the virtual instance of the industrial device. Further, the automation engineering management module 212 causes the processor (s) 202 to deploy separately the respective one or more software units into the virtual instance of the industrial device.
Furthermore, the automation engineering management module 212 causes the processor (s) 202 to establish a real-time communication session between the at least two instances of the industrial device via a communication network 104. Further, the automation engineering management module 212 causes the processor (s) 202 to communicate real-time parameter values associated with each of the at least two instances of the industrial device using the established communication session.
The communication interface 206 is configured for establishing communication sessions between the one or more engineering systems 110A-N and the cloud computing system 102. The communication interface 206 allows the one or more engineering applications running on the user devices 110A-N to import /import software units into the cloud computing system 102. In an embodiment, the communication interface 206 interacts with the interface at the one or more user devices 110A-N for allowing the engineers to access the control programs in the engineering project file and perform one or more engineering actions on the control program stored in the cloud computing system 102. The engineering actions may be those which are known to a person skilled in the art .
The input-output unit 208 may include input devices a keypad, touch-sensitive display, camera (such as a camera receiving gesture-based inputs) , etc. capable of receiving one or more input signals, such as user commands to process an engineering project file. Also, the input-output unit 208 may be a display unit for displaying a graphical user interface which visualizes the behavior model associated with the software unite and also displays the status information associated with each set of engineering actions performed on the software units. The set of actions may include execution of predefined tests, download, compile and deploy of control programs. The bus 210 acts as interconnect between the processor 202, the memory 204, and the input-output unit 208.
Those of ordinary skilled in the art will appreciate that the hardware depicted in FIG 2 may vary for particular implementation. For example, other peripheral devices such as an optical disk drive and the like, Local Area Network (LAN) , Wide Area Network (WAN) , Wireless (e.g., Wi-Fi) adapter, graphics adapter, disk controller, input/output (I/O) adapter also may be used in addition or in place of the hardware depicted. The depicted example is provided for the purpose of explanation only and is not meant to imply architectural limitations with respect to the present disclosure.
Those skilled in the art will recognize that, for simplicity and clarity, the full structure and operation of all data processing systems suitable for use with the present disclosure is not being depicted or described herein. Instead, only so much of a cloud computing system 102 as is unique to the present disclosure or necessary for an understanding of the present 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 implementation and practices known in the art .
FIG 3 is a block diagram of an automation engineering management module 212, such as those shown in FIG 2, in which an embodiment of the present invention can be implemented. In FIG 3, the automation engineering management module 212 comprises 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.
The request handler 302 is configured for receiving a request for performing an engineering action on at least one of the industrial devices 108A-N. The request comprises at least one of desired user requirements associated with the technical installation 106, one or more desired parameter values associated with at least one of the industrial devices 108A-N, a request to establish communication between a physical instance of the industrial device 108A and corresponding virtual instance of the industrial device. The engineering action comprises upgrading a firmware, changing hardware configuration, addition or deletion of any new industrial device, and the like. The industrial device 108A may be a PLC.
The control program block management module 304 is configured for determining a control program block corresponding to the at least one of the industrial devices 108A-N based on the received request. The control program block comprises program statements for controlling the operation and behavior of the at least one of the industrial devices 108A-N. Upon receiving the request, the control program block management module 304 is configured for identifying the at least one of the industrial devices 108A-N by parsing the received request . Further, the control program block management module 304 is conf igured for comparing the identified at least one of the industrial devices 108A-N with one or more pre-stored instances of the industrial device . Each of the one or more prestored instance s of the industrial device is correspondingly mapped to one or more control program blocks . For example , instance of PLC A is mapped to PLC Control Block A, instance of PLC B is mapped to PLC control block B and so on .
Further, the control program block management module 304 i s conf igured for determining the control program block corresponding to the identified at least one of the industrial devices 108A-N based on the comparison . For example , if the reque st comprise s parameters related to PLC A, then corre sponding control program A is determined .
The segmentation module 306 is configured for segmenting the determined control program block into one or more software unit s based on content of the control program block . Specifically, the segmentat ion module 306 is configured for determining one or more propertie s as sociated with the control program block based on the content of the control program block . The one or more propertie s as sociated with the cont rol program block comprises program block type , program block identif ier, and program block path, and the like .
Further, the segmentation module 306 is conf igured for generating one or more software unit s as sociated with the control program block based on the determined one or more propert ie s as sociated with the cont rol program block . Specif ically, the segmentat ion module 306 modularizes the huge control program block into multiple downloadable entities to shift the runtime to a virtual simulator such as PLC Simulator (for example, PLCSIM Advanced) which in turn is shifted to the cloud computing system 102. A software unit is a group of multiple programming artifacts behind a unit interface for engineering as well as for runtime. Such software units are self-contained deployable, separately loadable 'assemblies' constituting a consistency capsule on basis of (lockable) public interfaces .
Furthermore, the segmentation module 306 is configured for segmenting the determined control program block into the generated one or more software units. Each of the one or more software units comprises sub-control program blocks which are self-executable, self-configurable and self-deployable. In an embodiment, such software units are generated as a complied clean PLC program, where the logic of execution of the PLC program in real plant is segmented into two sections with multiple sub-units. For example, one segment comprises control program blocks and sub control program blocks which majorly performs pre-calculat ions , and which does not have much influence on real input or output (I/O) values of the at least one of the industrial devices 108A-N. This segment of control block is determined to be deployable on a virtual software comprising virtual instance of the industrial device 318. Another segment comprises control program blocks and sub control program blocks which mainly focuses on executions or program logic which have an influence on the real I\O values of the at least one of the industrial devices 108A-N. The output of segmentation module 306 comprises one or more segments of the control program block.
The processing module 308 is configured for processing the one or more software units based on one or more user requirements and the requested engineering action. The one or more user requirements comprises changes to hardware configuration parameters of the at least one of the industrial devices 108A-N. Specifically, the processing module 308 is configured for determining one or more parameters associated with the at least one of the industrial devices by parsing the engineering action. The one or more parameters associated with the at least one of the industrial devices 108A-N comprises hardware configuration parameters, tag values, real time input output values of the at least one of the industrial devices 108A-N and any other known field parameters. Further, the processing module 308 is configured for identifying a sub control program block of the one or more software units corresponding to the determined one or more parameters associated with the at least one of the industrial devices 108A-N. For example, if the determined one or more parameters corresponds to PLC 1 tag values, then corresponding sub control program, say sub program PLC 1 tag values is identified.
Furthermore, the processing module 308 is configured for determining whether the sub control program block of the one or more software units require a modification based on the determined one or more parameters associated with the at least one industrial device. For example, the one or more parameters present in the identified sub control program are compared with those of the one or more determined parameters. If it is determined that the determined parameters are not same as that of the one or more parameters in the identified sub control program, then it is determined that the identified sub control program requires a modification. Subsequently, the processing module 308 is configured for modifying the sub control program block of the one or more software units based on the determination. The deployment module 310 is configured for determining at least two instances of the industrial devices for deploying the one or more proces sed software unit s separately based on segment type of the proces sed one or more software unit s . The at least two instances of the industrial device comprises at least one virtual instance 318 of the industrial device and at least one physical instance of the indust rial device . The deployment module 310 is also configured for deploying separately the respective one or more software unit s into each of the determined at least two instances of the indust rial device . Specif ically, the deployment module 310 i s configured for determining type of segment as sociated with each of the one or more proces sed software unit s . For example , the type of segment comprises cont rol program blocks executable on virtual instance 318 of the industrial device and the other comprises control program blocks executable on a real time hardware or physical instance of the industrial device ( such as the industrial device 108A) . Further, the deployment module 310 is conf igured for determining one or more properties as sociated with the determined type of segment as sociated with each of the one or more proce s sed software unit s . The one or more properties of the type of segment comprises software based, hardware based, undeployable and the like . The software based segment indicate s that the software unit s comprising cont rol program blocks are deployable on a virtual instance 318 of the industrial device . The hardware based segment indicates that the software unit s comprising control program blocks are deployable on a real t ime hardware or phys ical instance of the industrial device ( such as the industrial device 108A) . The undeployable segment compri ses software unit s which are not ready for deployment .
Further, the deployment module 310 is conf igured for determining type of industrial device required for deploying the one or more processed software units based on the determined one or more properties. The type of industrial device comprises a virtual instance 318 of the industrial device or a physical instance of industrial device. Further, the deployment module 310 is configured for determining whether such type of industrial device required is available for deploying the one or more processed software units based on the determined one or more properties. This is achieved by sending a test signal to all the industrial devices 108A-N currently deployed in the technical installation 106 and those present in the virtual environment. Later, the deployment module 310 is configured for identifying the at least two instances of the industrial device which are determined to be available for deploying the one or more processed software units. For example, any of the one combination among one virtual-one real hardware, two virtual, two real hardware may be selected for deployment. Such combination allows for executing the modularized or segmented control programs in different runtime target industrial device where one being in virtual environment. Also, such shared deployment helps in saving huge memory space and engineering efforts at the real time hardware industrial device.
In an embodiment, if it is determined that such type of industrial device required is unavailable, then the deployment module 310 generates one or more virtual industrial device required for deploying the one or more processed software units.
Further, the communication interface 314 is configured for establishing a communication session with each of the determined at least two instances of the industrial devices via a network 104. The communication session is established between for example a virtual PLC such as PLCSIM and PLC real hardware for both data exchange and for controlling the execution of control program block from one target (i.e., PLC real hardware) to another target (i.e., PLCSIM) . Hence, such automatically established communication sessions reduces significant amount of engineering efforts with the help of these software units. This is achieved by connecting the at least one engineering system 110A-N to the cloud computing system 102. A unit connector is used to enable a user at the user devices 110A-N to connect to cloud computing infrastructure through his own account. Further, the communication between the virtual instance 318 of the industrial device and the physical instance of the industrial device 108A is established via standard mechanisms such as Open Platform Communications United Architecture (OPC-UA) or Transmission Control Protocol/Internet Protocol, (TCP/IP) to exchange the information between the software units which are downloaded to the virtual instance of the industrial device 318 which is in the cloud computing system 102 to the software units which are getting executed in the physical industrial device 108A.
Further, the deployment module 310 is configured for determining whether one of the at least two instances of the industrial device corresponds to a physical instance of the industrial device 108A installed in a technical installation 106. Further, the deployment module 310 is configured for deploying separately the respective one or more software units into the physical instance of the industrial device 108A installed in the technical installation 106 if the one of the at least two instances of the industrial device corresponds to a physical instance of the industrial device 108A installed in the technical installation 106.
Further, the deployment module 310 is configured for determining whether one of the at least two instances of the industrial device corresponds to a virtual instance of the industrial device 318 simulated on a virtual environment .
In this case, the virtual environment 312 is configured for generating a virtual instance 318 of the industrial device in the virtual environment if the one of the at least two instances of the industrial device corresponds to the virtual instance 318 of the industrial device. Further, the virtual environment 312 is configured for deploying separately the respective one or more software units into the virtual instance 318 of the industrial device. The virtual instance 318 of the industrial device is hosted/lifted to the cloud computing system 102 using standard engineering software or any other automation software so that applications created using IECPL PLC programming language are executed in the cloud computing system 102. The virtual environment 312 is configured for simulating behavior of the control program in a simulation environment on one or more simulation instance associated with the virtual instance 318 of the industrial device.
In an embodiment, the virtual environment 312 comprises one or more virtual instances 318 of the industrial device. The virtual environment 312 emulates an actual technical installation, such as technical installation 106. Similarly, the virtual instance 318 of the industrial device in the virtual environment 312 emulates the actual industrial device (s) 108A-N. In an exemplary environment, the virtual instance 318 of the industrial device (s) may correspond to robots, switches, automation devices, programmable logic controllers (PLC) s, human machine interfaces (HMIs) , motors, valves, pumps, actuators, sensors and other industrial devices. In a preferred embodiment, the virtual instance 318 of the industrial device comprises a control device, such as the PLCs . Further, the virtual environment 312 may be a virtual setup of the actual technical installation 106.
The communication interface 314 is configured for establishing a real time communication session between the at least two instances of the industrial device via a communication network 104. Further, the communication interface 314 is configured for communicating real time parameter values associated with each of the at least two instances of the industrial device using the established communication session.
The database 316 is configured for storing the one or more software units, one or more control program blocks, sub control program blocks, one or more parameters associated with the at least one of the industrial devices 108A-N, one or more properties associated with the software units, virtual instance 318 of the industrial device, real time values of the at least one of the industrial devices 108A-N, communication session, types of segments, and the like .
FIG 4 is a process flowchart 400 illustrating an exemplary method of managing engineering of the industrial devices 108A-N, according to an embodiment of the present invention. At step 402, a request for performing an engineering action on at least one of the industrial devices 108A-N is received. At step 404, a control program block corresponding to the at least one of the industrial devices 108A-N based on the received request is determined. At step 406, the determined control program block is segmented into one or more software units based on content of the control program block. At step 408, the one or more software units are processed based on one or more user requirements and the requested engineering action. At step 410, at least two instances of the industrial devices are determined for deploying the one or more processed software units separately based on segment type of the processed one or more software units. At step 412, the respective one or more software units are separately deployed into each of the determined at least two instances of the industrial device.
FIG 5 is an exemplary schematic representation of a graphical user interface 500 of an automation application in an user device 110 for management of engineering process, according to an embodiment of the present invention. Specifically, FIG 5 depicts a graphical user interface of the automation engineering management system 114 comprising one or more engineering projects associated with the technical installation 106. Each of the engineering project comprise a unique name and a unique identifier (ID) associated with it. Further, each engineering project comprises one or more control programs associated with industrial devices 108A-N. Each of such control programs comprises a common part control program and a dependent part control program. A common part control program has a unique ID and unique name associated with it. A dependent part control program also has a unique name and unique ID associated with it. In FIG 5, the engineering project files such as Project 1 and Project 2 comprises control program such as a PLC program. Each PLC program comprises dependent control programs such as Motor logic, Conveyer Logic and so on. These dependent control programs are the function blocks. The dependent control programs have corresponding library of elements stored in the database 120 such as those shown in FIG 5.
Each of these engineering project files along with the control programs are stored in the database 120. Further, any modifications done to the basic template of engineering project can be updated any time by users with the specific privileges. A typical user who wants to write some PLC program in a specific PLC project, first fetches the corresponding project. The automation engineering management system 114 identifies the corresponding PLC program. Then, such PLC program is segmented into one or more respective software units such as 502. Each of these software units comprises sub program blocks allowing the users to write specific PLC program parts. Once the compilation of the respective software units is locally successful and user has tested the software unit locally on the engineering system 110A-N, the automation engineering management system 114 determines suitable industrial device required for deploying each of the software units. For example, if there are four software units, the automation engineering management system 114 determines which of those four software units are to be deployed on real PLC and which software units are to be deployed on virtual PLC. For example, software units 1 and 2 are determined to be deployable over virtual PLC and software units 3 and 4 are determined to be deployable over real PLC. In this case, the automation engineering management system 114 allows for respective deployment of the software units into each virtual and real PLCs based on determination.
The present invention can take a form of a computer program product comprising program modules accessible from computer-usable or computer-readable medium storing program code for use by or in connection with one or more computers, processors, or instruction execution system. For the purpose of this description, a computer- usable or computer-readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation mediums in and of themselves as signal carriers are not included in the definition of physical computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, random access memory (RAM) , a read only memory (ROM) , a rigid magnetic disk and optical disk such as compact disk read-only memory (CD- ROM) , compact disk read/write, and DVD. Both processors and program code for implementing each aspect of the technology can be centralized or distributed (or a combination thereof) as known to those skilled in the art .
While the present invention has been described in detail with reference to certain embodiments, it should be appreciated that the present invention is not limited to those embodiments. In view of the present disclosure, many modifications and variations would be present themselves, to those skilled in the art without departing from the scope of the various embodiments of the present invention, as described herein. The scope of the present invention is, therefore, indicated by the following claims rather than by the foregoing description. All changes, modifications, and variations coming within the meaning and range of equivalency of the claims are to be considered within their scope. All advantageous embodiments claimed in method claims may also be apply to system/apparatus claims.

Claims

1. A method for managing engineering of industrial devices (108A-N) in an cloud computing environment (100) , comprising: receiving, by a processor (202) , a request for performing an engineering action on at least one of the industrial devices (108A-N) ; determining, by the processor (202) , a control program block corresponding to the at least one of the industrial devices (108A-N) based on the received request; segmenting, by the processor (202) , the determined control program block into one or more software units based on content of the control program block; processing, by the processor (202) , the one or more software units based on one or more user requirements and the requested engineering action; determining, by the processor (202) , at least two instances of the industrial device for deploying the one or more processed software units separately based on segment type of the processed one or more software units; and deploying, by the processor (202) , the respective one or more software units into each of the determined at least two instances of the industrial device.
2. The method according to claim 1, wherein the at least two instances of the industrial device (108A-N, 318) comprises at least one virtual instance (318) of the industrial device and at least one physical instance of the industrial device (108) .
3. The method according to claims 1 or 2, wherein determining the control program block corresponding to the at least one of the industrial devices (108A-N) based on the received request comprises: identifying the at least one of the industrial devices (108A-N) by parsing the received request; comparing the identified at least of the industrial devices (108A-N) with one or more pre-stored instances of the industrial device, wherein each of the one or more prestored instances of the industrial device is correspondingly mapped to one or more control program blocks; and determining the control program block corresponding to the identified at least one of the industrial device (108A- N) based on the comparison. The method according to claims 1 to 3, wherein segmenting the determined control program block into one or more software units based on content of the control program block comprises: determining one or more properties associated with the control program block based on the content of the control program block; generating one or more software units associated with the control program block based on the determined one or more properties associated with the control program block; and segmenting the determined control program block into the generated one or more software units. The method according to claim 4, wherein processing the one or more software units based on one or more user requirements and the requested engineering action comprises: determining one or more parameters associated with the at least one of the industrial devices (108A-N) by parsing the engineering action; identifying a sub control program block of the one or more software units corresponding to the determined one or more parameters associated with the at least one of the industrial devices (108A-N) ; determining whether the sub control program block of the one or more software units require a modification based on the determined one or more parameters associated with the at least one of the industrial devices (108A-N) ; and modifying the sub control program block of the one or more software units based on the determination. The method according to claim 5, wherein determining the at least two instances of the industrial device for deploying the one or more processed software units based on segment type of the processed one or more software units comprises: determining type of segment associated with each of the one or more processed software units; determining one or more properties associated with the determined type of segment associated with each of the one or more processed software units; determining type of industrial device required for deploying the one or more processed software units based on the determined one or more properties; determining whether the determined type of industrial device is available for deploying the one or more processed software units based on the determined one or more properties; and identifying the at least two instances of the industrial device which are determined to be available for deploying the one or more processed software units. The method according to claim 6, further comprising: generating one or more virtual instances of the industrial device required for deploying the one or more processed software units if the determined type of industrial device required is unavailable. The method according to claim 7, wherein deploying the respective one or more software units into each of the determined at least two instances of the industrial device comprises : establishing a communication session with each of the determined at least two instances of the industrial device via a network (104) ; determining whether one of the at least two instances of the industrial device corresponds to a physical instance of the industrial device installed in a technical installation (106) ; and deploying the respective one or more software units into the physical instance of the industrial device installed in the technical installation (106) if the one of the at least two instances of the industrial device corresponds to a physical instance of the industrial device installed in the technical installation (106) . The method according to claim 8, further comprising: determining whether one of the at least two instance of the industrial device corresponds to a virtual instance (318) of the industrial device simulated in a virtual environment; generating the virtual instance (318) of the industrial device in the virtual environment if the one of the at least two instances of the industrial device corresponds to the virtual instance (318) of the industrial device; and deploying the respective one or more software units into the virtual instance (318) of the industrial device.
10. The method according to claim 9, further comprising: establishing a real time communication session between the at least two instances of the industrial device via a communication network (104) ; and communicating real time parameter values associated with each of the at least two instances of the industrial device using the established communication session.
11. An automation engineering management system (114) comprising : one or more processor(s) (202) ; and a memory (204) coupled to the one or more processor (s) (202) , wherein the memory (204) comprises an automation engineering management module (212) stored in the form of machine-readable instructions and executable by the one or more processor (s) (202) , wherein the automation engineering management module (212) is capable of performing a method according to any of the claims 1-10.
12. A cloud computing system (102) comprising: a cloud computing platform (112) comprising an automation engineering management system (114) stored therein in the form of machine-readable instructions, wherein the automation engineering management system (114) is configured to perform a method according claims 1-10.
13. A computer program product comprising machine-readable instructions stored therein, that when executed by one or more processors (202) , cause the one or more processors (202) to perform a method according to any of the claims 1-10.
EP21773600.8A 2020-09-17 2021-09-09 Method and system for providing engineering of an industrial device in a cloud computing environment Pending EP4193225A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP20196662.9A EP3971660A1 (en) 2020-09-17 2020-09-17 Method and system for providing engineering of an industrial device in a cloud computing environment
PCT/EP2021/074815 WO2022058235A1 (en) 2020-09-17 2021-09-09 Method and system for providing engineering of an industrial device in a cloud computing environment

Publications (1)

Publication Number Publication Date
EP4193225A1 true EP4193225A1 (en) 2023-06-14

Family

ID=72560456

Family Applications (2)

Application Number Title Priority Date Filing Date
EP20196662.9A Withdrawn EP3971660A1 (en) 2020-09-17 2020-09-17 Method and system for providing engineering of an industrial device in a cloud computing environment
EP21773600.8A Pending EP4193225A1 (en) 2020-09-17 2021-09-09 Method and system for providing engineering of an industrial device in a cloud computing environment

Family Applications Before (1)

Application Number Title Priority Date Filing Date
EP20196662.9A Withdrawn EP3971660A1 (en) 2020-09-17 2020-09-17 Method and system for providing engineering of an industrial device in a cloud computing environment

Country Status (4)

Country Link
US (1) US20230315038A1 (en)
EP (2) EP3971660A1 (en)
CN (1) CN116157774A (en)
WO (1) WO2022058235A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117591565B (en) * 2024-01-19 2024-04-30 深圳市极限网络科技有限公司 Instance processing method, instance processing device and storage medium for virtual robot

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6104962A (en) * 1998-03-26 2000-08-15 Rockwell Technologies, Llc System for and method of allocating processing tasks of a control program configured to control a distributed control system
EP2359237A4 (en) * 2008-11-28 2012-04-25 Siemens Ag Automatic control system and method for executing control program in parallel
US20180052451A1 (en) * 2016-08-19 2018-02-22 Rockwell Automation Technologies, Inc. Remote industrial automation site operation in a cloud platform

Also Published As

Publication number Publication date
CN116157774A (en) 2023-05-23
US20230315038A1 (en) 2023-10-05
EP3971660A1 (en) 2022-03-23
WO2022058235A1 (en) 2022-03-24

Similar Documents

Publication Publication Date Title
US11880680B2 (en) Industrial automation distributed project control with milestone rollback
WO2021140176A1 (en) Method and system for managing engineering workflow in a cloud computing environment
US20230315038A1 (en) Method and system for providing engineering of an industrial device in a cloud computing environment
EP3734379A1 (en) Method and system for generating control programs in a cloud computing environment
US11900082B2 (en) Industrial automation multi-developer control code synchronization
EP4073626B1 (en) Method and system for generating engineering diagrams in an engineering system
EP4148584A1 (en) Method and system for generating and optimizing test cases for an engineering program
US20220334807A1 (en) Method and system for generating engineering programs for an industrial domain
EP4060479A1 (en) Notifications from an industrial automation development environment
EP3905027A1 (en) Method and system for generating engineering designs in an engineering system
EP4254200A1 (en) Method and system for eradicating programmatical errors from engineering programs in a technical installation
US20230237249A1 (en) Method and system for generating an automation engineering project in a technical installation using multidisciplinary approach
EP4156050A1 (en) Method and system for optimizing an engineering project in a technical installation
EP4141653A1 (en) Method and system for generating engineering programs which are compatible with a specific engineering environment
EP4227824A1 (en) Method and system for generating metadata tags for a plurality of engineering objects
EP4328683A1 (en) Method and system for generating user recommendations to aid generation of an engineering project
EP3716062A1 (en) Method and system of generating microservices for cloud computing systems
CN116301885A (en) Data and logic calculation separation method, device, equipment and storage medium
CN117891462A (en) Modelica language-based embedded code generation method and device
CN117742282A (en) Virtual deployment of distributed control systems for control logic testing
JP2024084362A (en) Development support device, development support method, and development support program
CN117196187A (en) System and method for operating high-density RPA robot
CN117348886A (en) Method for realizing downward compatibility of native compilation on OpenEuler system
CN118011860A (en) Vehicle control simulation method, device, computer equipment and storage medium
CN110595278A (en) Universal launch vehicle launching control equipment

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20230306

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: GRANT OF PATENT IS INTENDED

INTG Intention to grant announced

Effective date: 20240422