EP-4379482-B1 - AUTOMATION PROGRAM CONTROLLER ALLOCATION
Inventors
- CARRARA, ANTHONY
- Majewski, Lorenzo P.
- STANEK, CHRISTOPHER E.
Dates
- Publication Date
- 20260506
- Application Date
- 20231128
Claims (13)
- A system, comprising: a memory (1906) that stores executable components; and a processor (1904), operatively coupled to the memory, that executes the executable components, the executable components comprising: a user interface component (304) configured to render a project development interface (602) and to receive, via interaction with the project development interface, programming input that defines an industrial control program as part of an industrial control project (502), wherein the industrial control program is unassigned to an industrial controller (118); the system being characterized in that the processor (1904) further executes the following executable components: a project generation component (306) configured to, in response to receipt, via interaction with the project development interface, of an instruction to assign a portion of the industrial control program to a controller definition (508) representing an industrial controller (118), define, as part of the industrial control project, a binding between the portion of the industrial control program and the controller definition, wherein the binding configures the industrial control project to assign a copy of the portion of the industrial control program to the industrial controller represented by the controller definition, wherein the portion of the industrial control program is a selected subset of control routines of the industrial control program less than an entirety of the control routines; and a project deployment component (308) configured to, in response to receipt of an instruction to export executable content associated with the controller definition, export, based on the binding, the portion of the industrial control program in a format capable of execution on the industrial controller represented by the controller definition.
- The system of claim 1 wherein the user interface component is configured to render a list of controller definitions, including the controller definition, that are defined as part of the industrial control project, and to receive a selection of the controller definition to which the portion of the industrial control program is to be assigned via interaction with the list; and/or wherein the controller definition defines at least one of a type of the industrial controller, an I/O configuration of the industrial controller, a vendor of the industrial controller, a model number of the industrial controller, functionality supported by the industrial, a processing capacity of the industrial controller, or an amount of storage capacity supported by the industrial controller.
- The system of claim 1 or 2, wherein the controller definition is a first controller definition, the portion is a first portion of the industrial control program, and the project generation component is further configured to, in response to receipt, via interaction with the project development interface, of an instruction to assign a second portion of the industrial control program to a second controller definition, define, as part of the industrial control project, a binding between the second portion of the industrial control program and the second controller definition, wherein the second portion of the industrial control program is different than the first portion.
- The system of one of claims 1 to 3, wherein the project generation component is configured to create a smart object definition (506) that represents the portion of the industrial control program based on the programming input, and in response to receipt of the instruction to assign the portion of the industrial control program to the controller definition, bind an instance of the smart object to the controller definition.
- The system of claim 4, wherein the user interface component is further configured to render a navigation tree that comprises browsable smart object nodes representing smart object definitions, including the smart object definition, that are defined for the industrial control project, and receive the instruction to assign the portion of the industrial control program to the controller definition via interaction with the navigation tree.
- The system of one of claims 1 to 5, wherein the industrial control program is at least one of a ladder logic program, a sequential function chart, structured text, a function block diagram, or an industrial domain-specific language.
- A method, comprising: receiving (1802), by a system comprising a processor (1904) via interaction with a project development interface (602), programming input that defines an industrial control program as part of an industrial control project (502), wherein the industrial control program is unallocated to an industrial controller (118); the method being characterized in that it further comprises: in response to receiving (1810), via interaction with the project development interface, an instruction to allocate a portion of the industrial control program to a controller definition (508) corresponding to an industrial controller (118), binding (1812), by the system, the portion of the industrial control program to the controller definition, wherein the binding configures the industrial control project to allocate a copy of the portion of the industrial control program to the industrial controller represented by the controller definition, wherein the portion of the industrial control program is a selected subset of control routines of the industrial control program less than an entirety of the control routines; and in response to receiving (1814) an instruction to export executable content associated with the controller definition, exporting (1816), by the system based on the binding, the portion of the industrial control program in a format capable of execution on the industrial controller represented by the controller definition.
- The method of claim 7, wherein the receiving of the instruction comprises: rendering a list of controller definitions, including the controller definition, that are defined as part of the industrial control project, and/or receiving a selection of the controller definition to which the portion of the industrial control program is to be allocated via interaction with the list; and/or wherein the controller definition defines at least one of a type of the industrial controller, an I/O configuration of the industrial controller, a vendor of the industrial controller, a model number of the industrial controller, functionality supported by the industrial, a processing capacity of the industrial controller, or an amount of storage capacity supported by the industrial controller.
- The method of claim 7 or 8, wherein the controller definition is a first controller definition, the subset is a first subset of the industrial control program, and the method further comprises: in response to receiving, via interaction with the project development interface, an instruction to allocate a second subset of the industrial control program to a second controller definition, binding, by the system, the second subset of the industrial control program and the second controller definition, wherein the second subset of the industrial control program is different than the first subset.
- The method of one of claims 7 to 9, further comprising: creating, by the system, a smart object definition (506) that represents the portion of the industrial control program based on the programming input, and in response to the receiving of the instruction to allocate the portion of the industrial control program to the controller definition, binding, by the system, an instance of the smart object to the controller definition.
- The method of claim 10, wherein the receiving of the instruction comprises: displaying a navigation tree that comprises browsable smart object nodes representing smart object definitions, including the smart object definition, that are defined for the industrial control project, and receiving the instruction to allocate the industrial control program to the controller definition via interaction with the navigation tree.
- The method of one of claims 7 to 10, wherein the industrial control program is at least one of a ladder logic program, a sequential function chart, structured text, a function block diagram, or an industrial domain-specific language.
- A non-transitory computer-readable medium having stored thereon instructions that, in response to execution, cause a system comprising a processor (1904) to perform operations, the operations comprising: receiving, via interaction with a project development interface (602), design input that defines an industrial control project (502) comprising an industrial control program, wherein the industrial control program is unassigned to an industrial controller; the non-transitory computer-readable medium characterized in that the processor further performs the following operations: in response to receiving, via interaction with the project development interface, an instruction to assign a portion of the industrial control program to a controller definition (508) representing an industrial controller (118), defining, as part of the industrial control project, a binding between the portion of the industrial control program and the controller definition, wherein the binding configures the industrial control project to assign a copy of the industrial control program to the industrial controller represented by the controller definition, wherein the portion of the industrial control program is a selected subset of control routines of the industrial control program less than an entirety of the control routines; and in response to receiving an instruction to export executable content associated with the controller definition, exporting, by the system based on the binding, the portion of the industrial control program in a format capable of execution on the industrial controller represented by the controller definition.
Description
TECHNICAL FIELD The subject matter disclosed herein relates generally to industrial automation systems, and, for example, to industrial programming development platforms. BACKGROUND ART Control program development platforms typically support a workflow whereby a given control project - comprising the industrial control program to be executed on an industrial controller and any relevant device settings for the controller- is created for a single industrial controller, to which the project is bound at an early stage of project development. Since there is typically a one-to-one relationship between a control project and the industrial controller for which the project is being developed (that is, only a single controller can be defined for the control project), the developer initially defines the controller for which the control project is being developed. Once the controller has been defined, the developer writes the control program that is to be executed on the controller. When development of the control program is complete, the program is compiled and exported to the physical industrial controller for execution. US 2021/096704 A1 discloses an industrial integrated development environment (IDE) which comprises a development interface that affords a user control over the editing tools, workspace canvases, and project information rendered at a given time. The industrial IDE system automatically filters the tools, panels, and information available for selection based on a current project development task, such that a focused subset of editing tools relevant to a current development task or context are made available for selection while other tools are hidden. The development interface also allows the user to selectively render or hide selected tools or information from among the relevant, filtered set of tools. This can reduce or eliminate unnecessary clutter and aid in quickly and easily locating and selecting a desired editing function. The IDE's development interface can also conform to a structured organization of workspace canvases and panels that facilitates intuitive workflow. US 8 898 633 B2 discloses a system that can comprise a user interface renderer, which can be adapted to render a plurality of distinct user interfaces. Each user interface from the plurality of distinct user interfaces can be adapted to configure a corresponding software application from a plurality of software applications associated with operating a programmable logic controller (PLC). EP 1 213 633 A1 discloses a procedure (user program) in which a PLC 2 controls operation of input-output apparatuses is generated on a ladder window by using a ladder editor. A screen (user screen) on which a programmable display apparatus displays states of the input-output apparatuses is generated on a screen generating window by a screen generating editor. For example, when a symbol on a ladder diagram on the ladder window next to the screen generating window is dragged and dropped onto the screen generating window, attribute data including a name and address of the input-output apparatus that relates to the symbol is copied from a ladder file for registering the user program to a screen file for registering the user screen, and a mark corresponding to the attribute data is displayed on the screen generating window. This eliminates a need of a common database for registering the attribute data. BRIEF DESCRIPTION It is the object of the present invention to provide an improved method and system for automation program controller allocation. This object is solved by the subject matter of the independent claims. Preferred embodiments are defined by the dependent claims. The following presents a simplified summary in order to provide a basic understanding of some aspects described herein. This summary is not an extensive overview nor is intended to identify key/critical elements or to delineate the scope of the various aspects described herein. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is presented later. In one or more embodiments, a system is provided, comprising a user interface component configured to render a project development interface and to receive, via interaction with the project development interface, programming input that defines an industrial control program as part of an industrial control project, wherein the industrial control program is initially unassigned to an industrial controller; and a project generation component configured to, in response to receipt, via interaction with the project development interface, of an instruction to assign the industrial control program to a controller definition representing an industrial controller, define, as part of the industrial control project, a binding between industrial control program and the controller definition, wherein the binding configures the industrial control project to assign a copy of the industrial co