Method and system for integrating a programming interface into code of an industrial automation environment

CN122963059APending Publication Date: 2026-10-23ROCKWELL AUTOMATION TECH INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202610429665.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2025-04-18
Filing Date
2026-04-02
Publication Date
2026-10-23

AI Technical Summary

Technical Problem

[0004]不幸的是,工业自动化环境不能有效且高效地生成和更新控制程序

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122963059A_ABST
    Figure CN122963059A_ABST
Patent Text Reader

Abstract

Methods and systems of integrating a programming interface into code of an industrial automation environment are disclosed. Various implementations include a system including processing circuitry of an integrated design environment (IDE) of the industrial automation environment. The processing circuitry generates a control program for an industrial device that is executable by a programmable logic controller (PLC). The control program includes code to implement a function of the industrial device. The processing circuitry generates a programming interface that defines the function of the industrial device. The processing circuitry adds the programming interface to the code. The processing circuitry provides the control program to the PLC. The PLC executes the code of the control program for the industrial device to implement the function defined by the programming interface.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The various implementation methods disclosed in this article relate to industrial automation environments, and more specifically, to integrating programming interfaces into the automation code of industrial automation environments. Background Technology

[0002] Industrial automation environments comprise computing and mechanical systems configured to perform industrial processes. Within an industrial automation environment, control systems drive various operations along the industrial production line. Control programs are developed by programmers using design applications within an integrated design environment (IDE). These design applications include programming tools for designing control programs for industrial manufacturing environments. Control programs consist of logic used to control industrial equipment to perform industrial operations. Different parts of the control program logic correspond to industrial assets, equipment, and sensors. The control programs are used by control systems such as programmable logic controllers (PLCs) to drive industrial assets, equipment, and sensors in industrial processes.

[0003] Industrial automation processes are complex and interconnected, involving numerous (e.g., thousands) assets, equipment, sensors, etc. Consequently, the logical components of the control program corresponding to these assets, equipment, sensors, and / or other automation systems are numerous and interdependent. This logical interdependence makes it difficult to make code changes in the control program to reflect variations in the industrial automation process. For example, a change to one part of the control program may require changes to many other parts of the control program to be successfully implemented. This increases the time and effort required to implement changes to the control program and reduces the overall efficiency of the industrial automation environment.

[0004] Unfortunately, industrial automation environments cannot effectively and efficiently generate and update control programs. Furthermore, industrial automation environments do not structure their control programs to facilitate physical changes to their automated processes. Summary of the Invention

[0005] This summary is provided to introduce, in a simplified form, a series of concepts further described in the detailed embodiments below. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used to help determine the scope of the claimed subject matter.

[0006] Various embodiments of this technology generally relate to solutions for industrial automation environments. Some embodiments include a method. This method includes generating a control program for industrial equipment, executable by a programmable logic controller (PLC), using an integrated design environment (IDE) for the industrial automation environment. The control program includes code for implementing the functions of the industrial equipment. The method also includes generating a programming interface defining the functions of the industrial equipment using the IDE. The method further includes adding the programming interface to the code using the IDE. The method also includes providing the control program to the PLC for execution by the PLC using the IDE.

[0007] Some implementations include providing a graphical user interface (GUI) via an IDE, which includes functions for designing control programs executable by a PLC. The control program, when executed by the PLC, implements the capabilities of industrial equipment. This functionality includes defining a programming interface describing the capabilities of the industrial equipment. It also includes incorporating the programming interface into the control program. Furthermore, it includes using the programming interface within the control program to isolate a first portion of the control program that implements the capabilities of the industrial equipment from a second portion of the control program that requests the capabilities of the industrial equipment via the programming interface.

[0008] Some implementations include a system. This system includes a processing circuitry system for an IDE (Industrial Automation Environment). The processing circuitry system generates a control program for industrial equipment, executable by a PLC. The control program includes code for implementing the functions of the industrial equipment. The processing circuitry system generates a programming interface that defines the functions of the industrial equipment. The processing circuitry system adds the programming interface to the code. The processing circuitry system provides the control program to the PLC for execution. Attached Figure Description

[0009] Many aspects of this disclosure can be better understood with reference to the following accompanying drawings. Components in the drawings are not necessarily drawn to scale. Furthermore, similar reference numerals are used throughout the drawings to denote corresponding parts. While several embodiments are described in conjunction with these drawings, this disclosure is not limited to the embodiments disclosed herein. Rather, it is intended to cover all alternatives, modifications, and equivalents.

[0010] Figure 1 An example of an industrial automation environment is shown.

[0011] Figure 2 An exemplary operation in an industrial automation environment is shown.

[0012] Figure 3 This shows another example of an industrial automation environment.

[0013] Figure 4 An example of a user interface is shown.

[0014] Figure 5 Another example of a user interface is shown.

[0015] Figure 6 Examples of computing devices that can be used according to various implementations of this technology are shown.

[0016] The accompanying drawings are not necessarily drawn to scale. Similarly, for the purpose of discussing some embodiments of the present technology, some components or operations may not be divided into different blocks or combined into a single block. Furthermore, although the present technology can be modified in various ways and alternatives, specific embodiments have been shown by way of example in the accompanying drawings and are described in detail below. However, it is not intended to limit the technology to the specific embodiments described. Rather, the technology is intended to cover all modifications, equivalents, and alternatives that fall within the scope of the technology as defined by the appended claims. Detailed Implementation

[0017] The following description and associated drawings teach the preferred mode of the invention. For the purpose of teaching the principles of the invention, some conventional aspects of the preferred mode may be simplified or omitted. The appended claims define the scope of the invention. Note that some aspects of the preferred mode may not fall within the scope of the invention as defined by the claims. Therefore, those skilled in the art will understand variations from the preferred mode that fall within the scope of the invention. Those skilled in the art will understand that the features described below can be combined in various ways to form multiple variations of the invention. Therefore, the invention is not limited to the specific examples described below, but is defined only by the claims and their equivalents.

[0018] In typical industrial automation environments, control programs for industrial equipment are designed in a space called an Integrated Design Environment (IDE). An IDE includes a set of programming tools for generating control programs. These control programs consist of instructions for controlling and performing operations using equipment within the industrial automation environment. Industrial controllers, such as Programmable Logic Controllers (PLCs), receive and execute these control programs. The PLC generates control signals based on the execution of the control program and transmits these signals to drive the operation of downstream equipment, machinery, and automated processes. Different parts of the control program correspond to different industrial equipment. Because industrial automation processes are typically highly interconnected (e.g., automated assembly lines), different parts of the control program can be interdependent, and their program logic is often linked. For example, one part of a control program executed on a PLC can generate an output that is consumed as an input to another part of the control program. This interdependence reduces the modularity of the control program and increases the difficulty of modifying it, as a change to one part of the program requires corresponding changes to other parts. Furthermore, due to the aforementioned interdependence, changes to industrial automation processes, such as the addition or replacement of industrial equipment, are difficult to implement within the control program itself.

[0019] To address the aforementioned problems in conventional industrial automation environments, various implementations of this technology involve integrating a programming interface into the control program. The programming interface defines the functionality of the code when executed by the PLC (e.g., required inputs, generated outputs, operating conditions, etc.). Each part of the control program corresponding to the industrial equipment is assigned a programming interface based on its corresponding equipment type. For example, the part of the control program corresponding to an actuator can be assigned an actuator interface, while the part corresponding to a conveyor can be assigned a conveyor interface. When executed by the PLC to implement and control industrial automation processes, the different parts of the control program communicate with each other through their respective interfaces. This hides the underlying code in the different parts of the control program from each other, reduces logical interdependencies, and improves code modularity. Advantageously, this reduces the difficulty of changing the control program and improves the ease of changing / adding equipment to automated industrial processes. Refer now to the accompanying drawings.

[0020] Figure 1 An industrial automation environment 100 for integrating programming interfaces into automation code is illustrated. The industrial automation environment 100 performs services such as factory automation, factory control, machine control, smart manufacturing, machine communication, and organization. The industrial automation environment 100 includes an IDE 110, a PLC 120, and an industrial automation processor 130. The IDE 110 includes a processing circuit system 111. The processing circuit system 111 implements a control program 112. The control program 112 includes industrial device code 113. The industrial device code 113 includes logic 114 and a programming interface 115. The industrial automation processor 130 includes industrial devices 131, upstream processing 132, and downstream processing 133. In other examples, the industrial automation environment 100 may include... Figure 1 The components shown may be fewer or more than those shown. Similarly, the components shown in the industrial automation environment 100 may include fewer or more components, assets, or connections than those shown. Each of the processing circuit system 111, PLC 120, industrial equipment 131, upstream processing 132, and downstream processing 133 may represent a single computing device or multiple computing devices.

[0021] This document describes various implementations of configuring and operating an industrial automation environment. In some examples, a processing circuit system 111 generates a control program 112. The control program (e.g., control program 112) includes multiple device code blocks (e.g., industrial device code 113), each device code block corresponding to a device in the industrial automation process 130. Each device code block includes logic (e.g., logic 114) that drives the operation of the corresponding device when executed by a PLC (e.g., PLC 120). When executed on the PLC, different device code blocks in the control program can generate outputs for or receive inputs from other device code blocks. Control program 112 includes a set of code blocks, ladder logic diagrams, smart objects, or other types of industrial automation code for implementing the industrial automation process 130. The codes, blocks, ladder logic, and smart objects correspond to industrial assets, equipment, and sensors in the industrial automation process 130. Control program 112 can be executed by a control system such as PLC 120 to drive industrial assets, equipment, and sensors (e.g., industrial equipment 131, upstream processing 132, downstream processing 133, etc.) in industrial automation processing 130. While control program 112 is shown as including industrial equipment code 113 corresponding to industrial equipment 131, it typically includes other equipment codes corresponding to upstream processing 132 and downstream processing 133. Industrial equipment code 113 includes logic 114 that implements the functions of industrial equipment 131. For example, PLC 120 can receive and execute logic 114 of control program 112. PLC 120 can generate control signaling based on the execution of logic 114 and transmit it to industrial equipment 131. Industrial equipment 131 can operate in response to the control signaling. The control signaling can drive actuators in industrial equipment 131 that govern the operation of industrial equipment 131.

[0022] The processing circuit system 111 generates a programming interface 115. The programming interface 115 defines the functions of the industrial device 131. For example... Figure 1As shown, programming interface 115 lists functions 1 through n of industrial equipment 131. For example, programming interface 115 can list the inputs and outputs required when industrial equipment code 113 is executed by PLC 120 to drive the operation of industrial equipment 131. Processing circuitry system 111 adds programming interface 115 to industrial equipment code 113 and provides control program 112 to PLC 120. For example, processing circuitry system 111 can transmit control program 112 to orchestration system (not shown), which then loads control program 112 into PLC 120. PLC 120 executes control program 112 to implement the functions defined by programming interface 115 and drive industrial automation processing 130. For example, PLC 120 can execute industrial equipment code 113 to drive the operation of industrial equipment 131, and can execute other parts of control program 112 (e.g., other industrial equipment code blocks) to drive upstream processing 132 and downstream processing 133. The various parts of the control program 112 executed on the PLC 120 can then communicate with each other via their respective interfaces.

[0023] In some examples, the processing circuitry 111 provides a graphical user interface (GUI) that includes functions for designing a control program 112 executable by the PLC 120. For example, the processing circuitry 111 may generate the control program 112, industrial equipment code 113, logic 114, and programming interface 115 in response to user input received via the GUI. As discussed above, the control program 112 implements the functions of the industrial equipment 131 when executed by the PLC 120. The GUI includes functions for defining the programming interface 115 that describes the functions of the industrial equipment 131 and for incorporating the programming interface 115 into the control program 112. The GUI includes additional functions for isolating the portion of the control program 112 that implements the functions of the industrial equipment 131 (e.g., industrial equipment code 113) from other portions of the control program 112 that request functions of the industrial equipment 131 via the programming interface 115 (e.g., for controlling upstream processing 132 and downstream processing 133). For example, other parts of the control program 112 can only interact with the logic 114 via the programming interface 115.

[0024] Advantageously, the industrial automation environment 100 effectively and efficiently integrates the programming interface into the control program. Furthermore, the use of the control program improves its modularity, reduces its complexity, decreases the time required to implement changes within the control program, and facilitates the modification of equipment in the industrial automation process / the addition of equipment to the industrial automation process. These benefits enhance the overall efficiency of the industrial automation environment 100 compared to conventional industrial automation environments.

[0025] IDE 110 refers to programming tools used to generate control programs to control the operation of industrial equipment and implement industrial automation processing 130. Processing circuitry system 111 includes one or more computing devices configured to host integrated design applications to generate control programs. It should be understood that the specific number of applications / modules hosted by processing circuitry system 111 is not limited. Exemplary integrated design applications include Studio 5000. The processing circuitry system 111 may implement or additionally include a user interface. The user interface may include a display and facilitate user interaction with the integrated design application. The user interface may include one or more computing devices, displays, touchscreen devices, tablet devices, mobile user devices, keyboards, etc. The design application hosted by the processing circuitry system 111 may receive a series of user inputs via a user interface that drives the design application to generate a control program 112. The control program 112 includes machine instructions that direct the operation of industrial equipment 131, upstream processing 132, and downstream processing 133 to realize industrial automation processing 130. The control program 112 may include function block diagrams, ladder logic programs, smart objects, or some other type of machine instruction. The processing circuitry system 111 may transmit the control program for delivery to the PLC 120, thereby realizing and controlling industrial automation processing 130. The processing circuitry system 111 may include a transceiver system that enables the uploading of the control program 112 to the PLC 120.

[0026] PLC 120 may include one or more computing devices configured to implement a control program generated in IDE 110 to control industrial automation processing 130. For example, PLC 120 may receive and execute ladder logic in control program 112 and responsively transmit corresponding control signals to drive industrial automation processing 130. Industrial equipment 131, upstream processing 132, and downstream processing 133 operate in response to the control signals. The control signals drive actuators or other types of control elements in industrial equipment 131, upstream processing 132, and downstream processing 133. For example, the control signal may correspond to an actuator setting in industrial equipment 131 to set the speed of a motor to a desired value. In other examples, the control signal may correspond to an actuator setting in industrial equipment 131 to set a pump valve to an open position.

[0027] Industrial automation process 130 represents manufacturing process, chemical production process, energy generation process, food processing process, or any other type of industrial process. Industrial equipment 131, upstream processing 132, and downstream processing 133 represent machines configured to perform industrial automation process 130. Industrial equipment 131, upstream processing 132, and downstream processing 133 represent pumps, actuators, conveyors, generators, motors, turbines, heat exchangers, reactors, distillation systems, food processing systems, or any other type of industrial equipment. Typically, the type of machine represented by industrial equipment 131, upstream processing 132, and downstream processing 133 depends in part on the type of process represented by industrial automation process 130. Industrial equipment 131, upstream processing 132, and downstream processing 133 can receive control signals generated by a PLC in response to the execution of control program 112.

[0028] The IDE 110, PLC 120, and Industrial Automation Processor 130 communicate over various communication links using technologies such as Industrial Ethernet, IEEE 802.3 (Ethernet), IEEE 802.11 (WiFi), Bluetooth, Time Division Multiplexing (TDM), Data System Interface Specification for Cables (DOCSIS), Internet Protocol (IP), General Packet Radio Service Transport Protocol (GTP), and / or other types of wired and / or wireless network protocols. Communication links include metal links, fiber optics, radio channels, or other communication media. Links utilize Ethernet, WiFi, virtual switching, inter-processor communication, bus interfaces, and / or other data communication protocols.

[0029] The IDE 110, PLC 120, and Industrial Automation Processor 130 include microprocessors, software, memory, transceivers, bus circuitry, etc. Microprocessors include central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), analog computing circuits, etc. Memory includes random access memory (RAM), flash memory circuitry, hard disk drives (HDDs), solid-state drives (SSDs), and high-speed non-volatile memory (NVMe) SSDs, etc. Memory stores software such as operating systems, user applications, network applications, control applications, security applications, machine learning applications, etc. The microprocessor retrieves the software from memory and executes it to drive the operation of the industrial automation environment 100 as described herein.

[0030] In some examples, industrial automation environment 100 is implemented. Figure 2 The process 200 is shown in the diagram. It should be understood that the structure and operation of the industrial automation environment 100 may differ in other examples.

[0031] Figure 2 Process 200 is illustrated. Process 200 includes exemplary operations of integrating a programming interface (e.g., programming interface 115) into automation code (e.g., industrial equipment code 113) within an industrial automation environment 100. Process 200 may differ in other examples. Operations of process 200 include generating a control program comprising code for implementing the functions of industrial equipment in the automated industrial environment in response to execution by a PLC (step 201). Operations also include generating a programming interface that defines the functions of the industrial equipment (step 202). Operations also include adding the programming interface to the code (step 203). Operations also include providing the control program to the PLC for execution by the PLC (step 204). The PLC executes the code of the control program to implement the functions defined by the programming interface.

[0032] Figure 3 An industrial automation environment 300 integrating a programming interface into automation code is illustrated. Industrial automation environment 300 includes an example of industrial automation environment 100, however, environment 100 can differ. Industrial automation environment 300 includes an IDE 310, a PLC 360, and an automated production line 370. IDE 310 includes a server 311. Server 311 hosts a design application 312. Design application 312 includes an automated production line control program 313, which in turn includes a servo actuator program 320, a servo actuator program 330, a pneumatic actuator program 340, and a conveyor program 350. Servo actuator program 320 includes ladder logic A 321 and an actuator interface 322. Servo actuator program 330 includes ladder logic A 321 and an actuator interface 322. Pneumatic actuator program 340 includes ladder logic B 341 and an actuator interface 322. The conveyor program 350 includes a ladder logic C and a conveyor interface 352. The automated production line 370 includes servo actuators 371 and 372, a pneumatic actuator 373, a conveyor 374, and original equipment manufacturer (OEM) equipment 375. The automated production line control program 313 includes... Figure 1 The example shown is of control program 112; however, control program 112 can be different. Programs 320, 330, 340, and 350 include... Figure 1 The example shown is industrial equipment code 113; however, industrial equipment code 113 can be different. Ladder logic 321, 341, and 351 include... Figure 1 The example shown is logic 114; however, logic 114 can be different. Interfaces 322 and 352 include... Figure 1 The example shown is of programming interface 115; however, programming interface 115 can be different. Automated production line 370 includes... Figure 1The example shown is of an industrial automation process 130; however, industrial automation process 130 can differ. Industrial automation environment 300 typically includes additional components such as human-machine interfaces (HMIs), orchestration systems, machine learning systems, etc.; however, these additional components are omitted for clarity. In other examples, the industrial automation environment may include... Figure 3 The components shown are different from or additional components.

[0033] In some examples, server 311 executes design application 312. Design application 312 receives a set of user inputs via a graphical user interface (not shown) to generate an automated production line control program 313, thereby driving the operation of various devices that make up the automated production line 370. For example, user input may include clicks, drag-and-drop actions, touchscreen input, keyboard input, etc. Design application 312 adds servo actuator program 320 to automated production line control program 313 and designs ladder logic A 321 to control servo actuator 371. Ladder logic A 321 is industrial automation code that can be interpreted by PLC 360 and includes a group of program tags. Program tags include blocks of control code and correspond to operations, variables, and / or other data related to the functionality of servo actuator 371. Design application 312 defines actuator interface 322 based on the tags included in ladder logic A 321. Actuator interface 322 includes a contract listing the functions required by ladder logic A 321 when executed by PLC 360 to control servo actuator 371. The functions listed in actuator interface 322 are typically the only outputs / inputs exposed by the execution of servo actuator program 320. In this example, actuator interface 322 lists functions for extension, retraction, reset, status, and operating conditions. For example, when PLC 360 executes ladder logic A, PLC 360 can generate corresponding control signals to extend, retract, reset, report operating conditions, and / or report the status of servo actuator 371. Design application 312 adds servo actuator program 330 to automated production line control program 313 to control servo actuator 372. Since servo actuator 372 includes the same actuator type as servo actuator 371, design application 312 copies ladder logic A 321 and actuator interface 322 into servo actuator program 330.

[0034] Application 312 adds pneumatic actuator program 340 to automated production line control program 313 and designs ladder logic B 341 to control pneumatic actuator 373. Ladder logic B 341 is industrial automation code that can be interpreted by PLC 360 and includes a different group of program tags than ladder logic A 321. This is because pneumatic actuator 373 includes a different actuator type than servo actuators 371 and 372 (e.g., the underlying code controlling a pneumatic actuator differs from that controlling a servo actuator). However, since actuators 371 to 373 all include the same device category (i.e., actuator), their functionality is the same even though the underlying codes are different. Application 312 adds actuator interface 322 to pneumatic actuator program 340 based on the shared device category.

[0035] Design application 312 adds conveyor program 350 to automated production line control program 313 and designs ladder logic C 351 for conveyor 374. Ladder logic C 351 is industrial automation code that can be interpreted by PLC 360 and includes a different set of program tags than ladder logic A 321 and ladder logic B 341. Design application 312 defines conveyor interface 352 based on the tags included in ladder logic C 351. Because conveyor 374 has a different equipment category and different functions than actuators 371 to 373, design application 312 includes a different programming interface in conveyor program 350. Conveyor interface 352 includes a contract listing the functions required by ladder logic C 351 when executed by PLC 360 to control conveyor 374. In this example, the listed functions of conveyor interface 352 include start, stop, speed, running condition, and stop condition. Application 312 typically generates additional equipment programs and includes them in the automated production line control program 313 to control OEM equipment 375; however, for clarity, these additional programs are omitted.

[0036] Once the automated production line control program 313 is complete, the design application 312 pushes the control program 313 into production. The server 311 transmits the automated production line control program 313 for delivery to the PLC 360. For example, the design application 312 can drive the transceiver circuitry in the server 311 to provide the control program 313 to the PLC 360. The server 311 can transmit the automated production line control program 313 to a scheduling system in the industrial automation environment 300, which then loads the automated production line control program 313 into the PLC 360. An exemplary scheduling system includes Pavilion8. The PLC 360 executes control program 313 to generate control signals and transmits the resulting control signals to actuators 371 to 373, conveyor 374, and OEM equipment 375 to drive the operation of automated production line 370. Specifically, the PLC 360 executes programs 320, 330, 340, and 350 that constitute the automated production line control program 313. Programs 320, 330, 340, and 350 executed on the PLC 360 (and the program for OEM equipment 375) communicate with each other via their respective programming interfaces. Programs 320, 330, 340, and 350 generate outputs and receive inputs from each other based on their respective interfaces, effectively hiding their underlying ladder logic from each other. This suppresses functional interdependencies between their respective ladder logics, thereby making it easy and efficient to modify control program 313. Advantageously, the programming interface enables efficient modification of existing control programs. For example, a user can exchange a pneumatic actuator program for a servo actuator program, but because these programs use the same interface type, the output, input, and interaction between the device programs remain unchanged.

[0037] Actuators 371 to 373, conveyor 374, and OEM device 375 are coupled to PLC 360. PLC 360 transmits control signals generated by the execution of control program 313 to actuators 371 to 373, conveyor 374, and OEM device 375. Actuators 371 to 373, conveyor 374, and OEM device 375 receive their respective control signals and operate according to the instructions. For example, one of the OEM devices in OEM device 375 may include an electric motor for driving a pump and is controlled by servo actuator 371. PLC 360 may execute servo actuator program 320 and determine the current level for powering the electric motor to achieve the desired pressure differential in the pump. PLC 360 may transmit control signals to servo actuator 371 to control the motor in one of the OEM devices in OEM device 375. In one of the OEM devices 375, a servo actuator 371 in the motor of the OEM device can receive control signals and apply an indicated current level to achieve the necessary power level for the electric motor to achieve the speed required to drive the motor to the desired pressure difference.

[0038] IDE 310 refers to one or more computing devices integrated into the network and configured to generate control programs for an industrial automation environment 300. Server 311 includes one or more computing devices configured to host design applications 312. The one or more computing devices of server 311 include processors, bus circuitry, storage devices, software, etc. Processors may include CPUs, GPUs, DSPs, ASICs, FPGAs, etc. Storage devices include flash drives, RAM, HDDs, SSDs, NVMe SSDs, etc. The storage devices store software, such as design applications 312. The processor can retrieve and execute the software stored on the storage devices to drive the operation of design applications 312. Design application 312 refers to one or more integrated design applications, user interface applications, operating systems, modules, etc. Design application 312 is configured to receive user input via a user interface and generate control programs 313 based on user input and / or other types of input.

[0039] The PLC 360 includes one or more computing devices configured to receive and execute control programs to generate control signals for an automated production line 370. The PLC 360 controls the automation and coordinated operation of the automated production line 370 based on the execution of the control program 313. The PLC 360 can implement control programs that can be designed using any number of programming tools within an integrated design environment (e.g., design application 312), such as text-based coding, smart objects, function block diagrams, ladder logic, graphical programming, or other types of programming interfaces. The control program can be designed or programmed on a design computer running an integrated design environment (e.g., design application 312) and then transmitted or uploaded to the PLC 360.

[0040] The PLC 360 controls the automated production line 370 by sending control signaling on one or more data channels that support synchronous or asynchronous communication. The PLC 360 includes one or more computing devices. These computing devices include processors, bus circuitry, storage devices, software, etc. Processors may include CPUs, GPUs, DSPs, ASICs, FPGAs, etc. Storage devices include flash drives, RAM, HDDs, SSDs, NVMe SSDs, etc. The storage devices store the software. The processor can retrieve and execute the software stored on the storage devices to drive the operation of the PLC 360.

[0041] Automated production line 370 represents manufacturing processes, chemical production processes, food processing processes, or any other type of industrial process. Automated production line 370 may include processes for manufacturing goods, but may also include processes occurring in utility plants (e.g., power plants), research or laboratory facilities (e.g., sample testing or processing facilities), food processing facilities (e.g., cattle processing plants), chemical processing facilities (e.g., oil refineries), or any other suitable industrial automation environment. Actuators 371 to 373, conveyors 374, and OEM equipment 375 include factory or industrial machinery or manufacturing equipment, such as conveyors or other conveying mechanisms, robotic equipment or other automated or programmable equipment, packaging equipment including boxing, capping, and sealing equipment, processing equipment, mixers, filling stations, quality control equipment, pumps, compressors, heat exchangers, centrifuges, grinders, conveyors, filters, and / or other equipment associated with manufacturing or other industrial processes. However, automated production line 370 may include any number of industrial devices. Actuators 371 to 373, conveyor 374, and OEM equipment 375 may include sub-components (not shown for clarity), such as motors, valves, electrical circuit systems, processing circuit systems, storage circuit systems, transceivers, machined parts, etc.

[0042] Figure 4 User interface 400 is shown. User interface 400 includes... Figure 5 The user interface 500 shown and about Figure 1 and Figure 3 The graphical user interface described is an example; however, user interface 400 can differ. User interface 400 includes a workspace 401, conveyor ladder logic 402, program labels 403, navigation panel 404, and selection panel 405, as well as other display elements. The workspace 401, conveyor ladder logic 402, program labels 403, navigation panel 404, and selection panel 405, and / or other display elements included in user interface 400, can differ in other examples. Conveyor ladder logic 402 includes... Figure 1 The logic 114 shown is Figure 3 Examples of ladder logic 321, 341 and 351 are shown, however logic 114 and ladder logic 321, 341 and 351 can be different.

[0043] User interface 400 represents a display that provides a graphical representation of a design application (e.g., design application 312). The graphical representation may include one or more visual indicators associated with a control program (e.g., automated production line control program 313), such as visual code blocks, ladder logic, code groups, function block diagrams, and / or other types of visual indicators. In this example, the control program includes conveyor ladder logic 402 and program labels 403; however, user interface 400 may display different visual indicators for different control program types (e.g., smart objects, function code blocks, etc.). User interface 400 may be generated on a display screen for viewing or use by an operator or similar user within an IDE (e.g., IDE 310). For example, user interface 400 may be displayed on a computer, mobile device, self-service terminal, touchscreen device, or some other type of computing device such as the IDE described herein. Users can interact with the design application via user interface 400 to generate control programs. When generating control programs, the design application can transmit the control programs to a PLC (e.g., PLC 360) to enable industrial automation processes (e.g., automated production line 370).

[0044] Workspace 401 includes display elements that enable users to construct control programs for execution by a PLC in a design application. In this example, workspace 401 includes conveyor ladder logic 402. For example, a design application that generates user interface 400 can receive a set of user inputs to construct conveyor ladder logic 402, and user interface 400 can responsively display conveyor ladder logic 402 in workspace 401. Workspace 401 is located in the central portion of user interface 400; however, in other examples, workspace 401 may be located in different portions of user interface 400. Ladder logic is a graphical PLC programming language that expresses logical operations using a symbolic notation called program labels. Ladder logic consists of logic ladders, each with a label. Conveyor ladder logic 402 includes logic that can be executed by the PLC to drive the operation of a conveyor. Program labels 403 are arranged on the ladders of conveyor ladder logic 402. Program label 403 corresponds to operations (e.g., run, stop), variables (e.g., speed, start time, etc.) and states (e.g., run, automatic mode, stop, etc.) associated with the conveyor. Program label 403 defines the function of the conveyor (or other industrial equipment in other examples). For example, when the PLC executes the conveyor ladder logic 402, the arrangement and type of program labels 403 in the conveyor ladder logic 402 drive the PLC to generate control signals to drive the operation of the conveyor.

[0045] Navigation panel 404 enables users to access various functions provided through user interface 400. Navigation panel 404 includes tabs such as File, Edit, View, Library Management, Tools, Windows, and Help. In other examples, navigation panel 404 may include fewer tabs, more tabs, and / or different types of tabs. Users can select tabs to access their functions. When selected, a tab may open a drop-down menu listing its functions. For example, a user can select the File tab and choose an option from the drop-down menu to save a project. Navigation panel 404 is located at the top of user interface 400; however, in other examples, navigation panel 404 may be located in different parts of user interface 400.

[0046] Selection panel 405 includes a set of selectable options providing access to control programs, programming interfaces, etc. Selection panel 405 includes selectable options for Add-On instructions, Smart Conveyor, logic, smart objects, data types, interfaces, and IConveyor. In other examples, selection panel 405 may include fewer or different types of selectable options. A user can select a selectable option to access its functionality. Upon selection, the option may open sub-options and / or its contents may be displayed in workspace 401. In this example, the user selects the logic sub-option of the Smart Conveyor option. In response, user interface 400 displays the conveyor ladder logic 402 in workspace 401. Selection panel 405 is located on the left side of user interface 400; however, selection panel 405 may be located on different parts of user interface 400.

[0047] Figure 5 User interface 500 is shown. User interface 500 includes... Figure 4 The user interface 400 shown and about Figure 1 and Figure 3 The graphical user interface 500 is described as an example; however, the user interface 500 can differ. The user interface 500 includes a workspace 501, a conveyor interface 502, a navigation panel 503, and a selection panel 504, as well as other display elements. The workspace 501, conveyor interface 502, navigation panel 503, selection panel 504, and other display elements included in the user interface 500 can differ in other examples. The conveyor programming interface 502 includes... Figure 1 The programming interface 115 shown is Figure 3 Examples of interfaces 322 and 352 are shown; however, programming interface 115 and interfaces 322 and 352 may differ.

[0048] Similar to user interface 400, user interface 500 represents a display that provides a graphical representation of the design application. The graphical representation may include one or more visual indicators associated with the control program, such as visual code blocks, ladder logic, code groups, function block diagrams, and / or other types of visual indicators. User interface 500 may be displayed on the screen for viewing or use by an operator or similar user within the IDE. Workspace 501, navigation panel 503, and selection panel 504 include information related to About Figure 4 The workspace 401, navigation panel 404, and selection panel 405 described have similar functions. In this example, the user selects the "My Conveyor" option in selection panel 504, causing the conveyor programming interface 502 to appear in workspace 501.

[0049] The conveyor programming interface 502 defines the functions (e.g., inputs, outputs, and operating conditions) of the conveyor ladder logic 402 when executed by the PLC. The conveyor programming interface 502 can be user-defined or automatically defined. The conveyor programming interface 502 is added to or otherwise attached to the conveyor ladder logic 402 to hide the underlying logic of the program label 403. When executed by the PLC, the conveyor ladder logic 402 interacts with other control programs for other devices controlled by the PLC via the conveyor programming interface 502. For example, the conveyor ladder logic 402 can receive inputs from other control programs and send outputs to other control programs based on the functions listed in the conveyor programming interface 502. The conveyor ladder logic 402 typically does not receive inputs or generate outputs not listed in the conveyor programming interface 502. The conveyor programming interface 502 can be reused by other conveyor control programs based on shared device categories.

[0050] Figure 6A computing system 601 according to an implementation of the present technology is illustrated. The computing system 601 represents any system or set of systems in which the various operating architectures, processes, scenarios, and sequences disclosed herein are used to implement the programming of interfaces into automation code. For example, the computing system 601 may represent a processing circuit system 111, a PLC 120, an industrial device 131, an upstream processing unit 132, a downstream processing unit 133, a server 311, a PLC 360, actuators 371 to 373, a conveyor 374, an OEM device 375, and / or any other computing device contemplated herein. The computing system 601 may be implemented as a single device, system, or device, or may be implemented in a distributed manner as multiple devices, systems, or devices. The computing system 601 includes, but is not limited to, a storage system 602, software 603, a communication interface system 604, a processing system 605, and a user interface system 606. The processing system 605 is operatively coupled to the storage system 602, the communication interface system 604, and the user interface system 606.

[0051] Processing system 605 loads and executes software 603 from storage system 602. Software 603 includes and implements programming interface processing 610, which represents any IDE processing that integrates the programming interface into the automation code discussed with respect to the foregoing figures, including but not limited to control program generation, programming interface creation, and user interface operation described with respect to the foregoing figures. For example, programming interface processing 610 could represent... Figure 2 The process 200 is shown. When executed by the processing system 605 to integrate the programming interface into the automation code, the software 603 instructs the processing system 605 to operate at least for the various processes, operation scenarios, and sequences discussed in the foregoing implementations as described herein. The computing system 601 may optionally include additional devices, features, or functions not discussed for the sake of brevity.

[0052] Processing system 605 may include a microprocessor and other circuitry that retrieves and executes software 603 from storage system 602. Processing system 605 may be implemented within a single processing device, but may also be distributed across multiple processing devices or subsystems that cooperate in executing program instructions. Examples of processing system 605 include general-purpose CPUs, GPUs, DSPs, ASICs, FPGAs, and logic devices, as well as any other type of processing device, combinations thereof, or variations thereof.

[0053] Storage system 602 may include any computer-readable storage medium that can be read by processing system 605 and is capable of storing software 603. Storage system 602 may include volatile, non-volatile, removable, and / or non-removable media implemented using any method or technology for storing information, such as computer-readable instructions, data structures, program modules, or other data. Examples of storage media include RAM, read-only memory, magnetic disks, optical disks, optical media, flash memory, virtual and non-virtual memory, magnetic tape cassettes, magnetic tape, disk storage devices or other magnetic storage devices, or any other suitable storage medium. In any case, computer-readable storage media are not for transmitting signals.

[0054] In addition to computer-readable storage media, in some implementations, storage system 602 may also include a computer-readable communication medium through which at least some of the software in software 603 can communicate internally or externally. Storage system 602 may be implemented as a single storage device, but may also be implemented across multiple storage devices or subsystems located or distributed relative to each other. Storage system 602 may include additional elements, such as a controller, capable of communicating with processing system 605 or potentially other systems.

[0055] Software 603 (including programming interface processing 610) can be implemented as program instructions, and when executed by processing system 605, software 603, among other functions, can instruct processing system 605 to operate as described herein with respect to the various operating scenarios, sequences, and processes illustrated herein. For example, software 603 may include program instructions for generating a programming interface for functions such as generating code describing industrial equipment as described herein, and for adding the programming interface to the code.

[0056] Specifically, program instructions may include various components or modules that cooperate or otherwise interact to perform the various processing and operational scenarios described herein. These components or modules may be implemented as compiled or interpreted instructions or as some other variation or combination of instructions. These components or modules may execute synchronously or asynchronously, serially or in parallel, in a single-threaded environment or in multiple threads, or according to any other suitable execution paradigm, variation, or combination thereof. Software 603 may include additional processing, programs, or components, such as operating system software, virtualization software, or other application software. Software 603 may also include firmware or some other form of machine-readable processing instructions executable by processing system 605.

[0057] Typically, when software 603 is loaded into and executed by processing system 605, it can transform a suitable apparatus, system, or device (represented by computing system 601) from a general-purpose computing system into a dedicated computing system, which is customized to generate programming interfaces defining the functions of automation code as described herein and integrate these programming interfaces into the automation code. In practice, coding software 603 on storage system 602 can transform the physical structure of storage system 602. The specific transformation of the physical structure can depend on various factors in different implementations of this specification. Examples of such factors may include, but are not limited to, the technology used to implement storage system 602 and whether the computer storage medium is characterized as a primary or secondary storage device, among other factors.

[0058] For example, if the computer-readable storage medium is implemented as a semiconductor-based memory, then when program instructions are encoded in software 603, software 603 can, for example, transform the physical state of the semiconductor memory by changing the state of the transistors, capacitors, or other discrete circuit elements constituting the semiconductor memory. Similar transformations can occur relative to magnetic or optical media. Other transformations of the physical medium are possible without departing from the scope of this specification; the foregoing examples are provided only for the convenience of this discussion.

[0059] The communication interface system 604 may include communication connections and devices that enable communication with other computing systems (not shown) via a communication network (not shown). Examples of connections and devices that enable inter-system communication may include network interface cards, antennas, power amplifiers, radio frequency circuitry systems, transceivers, and other communication circuitry systems. The connections and devices may communicate via communication media such as metal, glass, air, or any other suitable communication medium to exchange communication with other computing systems or system networks. The aforementioned media, connections, and devices are well-known and do not need to be discussed in detail here.

[0060] Communication between computing system 601 and other computing systems (not shown) can be achieved through one or more communication networks, and according to various communication protocols, combinations of protocols, or variations thereof. Examples include intranets, the Internet, local area networks (LANs), wide area networks (WANs), wireless networks, wired networks, virtual networks, software-defined networks, data center buses and backplanes, or any other type of network, combination of networks, or variations thereof. The aforementioned communication networks and protocols are well known, and for the sake of brevity, further discussion of them is omitted.

[0061] While some examples provided herein are described in the context of computing devices used to integrate programming interfaces into automation code, it should be understood that the conditions, systems, and methods described herein are not limited to such implementations and can be applied to a variety of other industrial automation environments and their associated systems. As those skilled in the art will understand, aspects of the invention can be implemented as systems, methods, computer program products, and other configurable systems. Therefore, aspects of the invention can take the form of entirely hardware implementations, entirely software implementations (including firmware, resident software, microcode, etc.), or implementations combining software and hardware aspects, all of which can generally be referred to herein as “circuit,” “module,” or “system.” Furthermore, aspects of the invention can take the form of computer program products implemented in one or more computer-readable media having computer-readable program code implemented thereon.

[0062] Based on the specific description above, these and other changes can be made to the technology. While the above description illustrates certain examples of the technology and describes the expected best mode, the technology can be practiced in many ways, however detailed it may be in the text. The details of the system can vary considerably in its specific implementation, but are still covered by the technology disclosed herein. As noted above, specific terms used in describing certain features or aspects of the technology should not be construed as implying that such terms are redefined herein as limited to any particular characteristic, feature, or aspect of the technology associated with that term. Generally, the terms used in the appended claims should not be construed as limiting the technology to the specific examples disclosed in the specification, unless these terms are expressly defined in the detailed description section above. Therefore, the actual scope of the technology includes not only the disclosed examples but also all equivalent ways of practicing or implementing the technology under the claims.

Claims

1. A method comprising: An integrated design environment for industrial automation environments is used to generate control programs for industrial equipment that can be executed by a programmable logic controller, wherein the control programs include code for implementing the functions of the industrial equipment; The integrated design environment generates programming interfaces that define the functions of the industrial equipment. The programming interface is added to the code through the integrated design environment; and The control program is provided to the programmable logic controller through the integrated design environment for the programmable logic controller to execute.

2. The method according to claim 1, wherein, The industrial automation environment includes other industrial equipment, which has the same equipment type as the industrial equipment; and the method further includes: The control program is modified through the integrated design environment to include additional code that implements additional functions of the other industrial equipment, wherein the additional code is identical to the code used for the industrial equipment, and the additional functions are identical to the functions of the industrial equipment; and Based on the same device type, the programming interface used for the code is added to the other code through the integrated design environment.

3. The method according to claim 1, wherein, The industrial automation environment includes other industrial equipment, which has the same equipment type as the industrial equipment; and the method further includes: The control program is modified through the integrated design environment to include additional code for implementing additional functions of the other industrial equipment, wherein the additional code is different from the code used for the industrial equipment, and the additional functions are the same as the functions of the industrial equipment; and Based on the same device type, the programming interface used for the code is added to the other code through the integrated design environment.

4. The method according to claim 1, wherein, The industrial automation environment includes other industrial equipment, which includes equipment types different from the industrial equipment; and the method further includes: The control program is modified through the integrated design environment to include additional code for implementing additional functions of the other industrial equipment, wherein the additional code is different from the code used for the industrial equipment, and the additional functions are different from the functions of the industrial equipment. The integrated design environment generates additional programming interfaces that define other functions of the other industrial equipment; and Based on the different device types, the other programming interfaces are added to the other code through the integrated design environment.

5. The method according to claim 1, wherein, The control program includes ladder logic.

6. The method according to claim 1, wherein, The control program includes function blocks.

7. The method according to claim 1, wherein, The control program includes intelligent objects.

8. A method comprising: A graphical user interface is provided via an integrated design environment, the graphical user interface including functions for designing control programs executable by a programmable logic controller (PLC), wherein the control programs, when executed by the PLC, realize the capabilities of industrial equipment; and The functions include: Define a programming interface that describes the capabilities of the industrial equipment; Integrate the programming interface into the control program; and The first part of the control program that implements the capabilities of the industrial equipment is isolated from the second part of the control program that requests the capabilities of the industrial equipment via the programming interface.

9. The method according to claim 8, wherein: The control program, when executed by the programmable logic controller, enables other capabilities of other industrial equipment; The other industrial equipment includes the same type of equipment as the industrial equipment mentioned above; The other capabilities are the same as those of the industrial equipment; and The functions include: Based on the fact that the other capabilities of the other industrial equipment are the same as those of the industrial equipment, the third part of the control program that implements the other capabilities of the other industrial equipment is isolated from the fourth part of the control program that requests the other capabilities of the other industrial equipment via the programming interface.

10. The method according to claim 8, wherein: The control program, when executed by the programmable logic controller, enables other capabilities of other industrial equipment; The other industrial equipment includes equipment types that are different from the industrial equipment mentioned above; The other capabilities are the same as those of the industrial equipment; and The functions include: Based on the fact that the other capabilities of the other industrial equipment are the same as those of the industrial equipment, the third part of the control program that implements the other capabilities of the other industrial equipment is isolated from the fourth part of the control program that requests the other capabilities of the other industrial equipment via the programming interface.

11. The method according to claim 8, wherein: The control program, when executed by the programmable logic controller, enables other capabilities of other industrial equipment; The other industrial equipment includes equipment types that are different from the industrial equipment mentioned above; The other capabilities are different from the capabilities of the industrial equipment; and The functions include: Define additional programming interfaces that describe other capabilities of the industrial equipment; Integrate the other programming interfaces into the control program; Based on the fact that the other capabilities of the other industrial equipment are different from the capabilities of the industrial equipment, the third part of the control program that implements the other capabilities of the other industrial equipment is isolated from the fourth part of the control program that requests the other capabilities of the other industrial equipment via the other programming interface, using other programming interfaces in the control program.

12. The method according to claim 8, wherein, The control program includes ladder logic.

13. The method according to claim 8, wherein, The control program includes function blocks.

14. The method according to claim 8, wherein, The control program includes intelligent objects.

15. A system comprising: The processing circuitry system of the integrated design environment for industrial automation environments is configured to: Generate a control program for industrial equipment that can be executed by a programmable logic controller, wherein the control program includes code for implementing the functions of the industrial equipment; Generate a programming interface that defines the functions of the industrial equipment; Add the programming interface to the code; and The control program is provided to the programmable logic controller for execution by the programmable logic controller.

16. The system according to claim 15, wherein, The industrial automation environment includes other industrial equipment, which includes equipment of the same type as the industrial equipment; and wherein the processing circuit system is further configured to: The control program is modified to include additional code for implementing other functions of the other industrial equipment, wherein the additional code is the same as the code for the industrial equipment, and the additional functions are the same as the functions of the industrial equipment; Based on the same device type, the programming interface used for the code is added to the other code.

17. The system according to claim 15, wherein, The industrial automation environment includes other industrial equipment, which includes equipment of the same type as the industrial equipment; and wherein the processing circuit system is further configured to: The control program is modified to include additional code for implementing additional functions of the other industrial equipment, wherein the additional code differs from the code used for the industrial equipment, and the additional functions are identical to the functions of the industrial equipment; and Based on the same device type, the programming interface used for the code is added to the other code.

18. The system according to claim 15, wherein, The industrial automation environment includes other industrial equipment, which includes different types of equipment than the industrial equipment mentioned above; and wherein the processing circuit system is further configured to: The control program is modified to include additional code for implementing other functions of the other industrial equipment, wherein the additional code is different from the code used for the industrial equipment, and the additional functions are different from the functions of the industrial equipment. Generate additional programming interfaces that define other functions of the other industrial equipment; and Based on the different device types, the other programming interfaces are added to the other code.

19. The system according to claim 15, wherein, The processing circuit system is also configured to: A graphical user interface is provided, the graphical user interface including the ability to design control programs that can be executed by the programmable logic controller; and The capabilities include: Define the programming interface that describes the functions of the industrial equipment; Integrate the programming interface into the control program; and The programming interface in the control program is used to isolate the first part of the control program that implements the functions of the industrial equipment from the second part of the control program that requests the functions of the industrial equipment via the programming interface.

20. The system according to claim 15, wherein, The control program includes one or more of ladder logic, function blocks, or smart objects.