Invented by Ryan Dunn, Karl Staas, Andrew Stump, Anthony Carrara, Eashwer Srinivasan, Christopher Como, Sharon Billi-Duran, Rockwell Automation Technologies Inc

The market for Industrial Programming Development with an extensible Integrated Development Environment (IDE) Platform In today’s fast-paced and technology-driven world, industrial programming development has become an integral part of various industries. From manufacturing to automation, businesses are increasingly relying on software solutions to streamline their operations and enhance productivity. To meet the growing demand, developers are constantly seeking innovative tools and platforms that can facilitate efficient and scalable programming development. One such solution that has gained significant traction is an extensible Integrated Development Environment (IDE) platform. An IDE platform serves as a comprehensive software suite that provides developers with all the necessary tools and features to write, test, and debug code. It offers an integrated environment that combines a code editor, compiler, debugger, and other essential components into a single interface. This seamless integration allows developers to streamline their workflow, reduce development time, and improve code quality. The market for industrial programming development with an extensible IDE platform is witnessing rapid growth due to several key factors. Firstly, the increasing complexity of industrial processes necessitates the use of advanced software solutions. An extensible IDE platform provides developers with the flexibility to customize and extend the functionality of the software to meet specific industrial requirements. This adaptability is crucial in industries where unique programming needs arise, such as in robotics, process automation, and control systems. Secondly, the demand for real-time monitoring and control systems has surged in recent years. Industries are increasingly relying on software solutions to monitor and control their operations in real-time, ensuring optimal performance and efficiency. An extensible IDE platform enables developers to build robust and reliable software applications that can handle real-time data processing, communication with hardware devices, and integration with existing industrial systems. Furthermore, the market for industrial programming development with an extensible IDE platform is driven by the need for seamless collaboration and integration. In industrial settings, multiple developers often work on the same project simultaneously. An extensible IDE platform offers features like version control, code sharing, and collaborative editing, enabling developers to work together efficiently and effectively. Additionally, these platforms provide seamless integration with other software tools and frameworks commonly used in industrial programming, such as PLC programming languages, SCADA systems, and industrial communication protocols. The market for industrial programming development with an extensible IDE platform is highly competitive, with several key players vying for market share. Established software companies, as well as startups, are investing heavily in research and development to create cutting-edge IDE platforms tailored to the specific needs of industrial programming. These platforms are designed to support multiple programming languages, provide extensive libraries and frameworks, and offer advanced debugging and profiling tools. In conclusion, the market for industrial programming development with an extensible IDE platform is experiencing significant growth due to the increasing demand for software solutions in various industries. The flexibility, real-time capabilities, and collaborative features offered by these platforms make them essential tools for developers working on industrial projects. As technology continues to advance, the market for industrial programming development with an extensible IDE platform is expected to expand further, providing developers with even more powerful and efficient tools to meet the evolving needs of the industrial sector.

The Rockwell Automation Technologies Inc invention works as follows

An industrial Integrated Development Environment (IDE) supports extensible or open application programming interfaces that allow end users (e.g. plant asset owners (PAO), original equipment manufacturers (OEM), and system integrators to name a few) to build upon the IDE’s development platform. The IDE’s platform can be used to develop custom views and functionality. This could include, for instance, defining a programming language supported by the industrial IDE. Customizing a view of the development environment provided by the IDE interface. Modifying or creating editing functions.

Background for Industrial Programming Development with an extensible Integrated Development Environment (IDE) Platform

The subject matter disclosed herein is generally related to industrial automation systems and, for instance, industrial programming development platforms.


The following is a simplified overview to help you understand some of the aspects discussed here. This summary does not provide an exhaustive overview, nor is it intended to identify critical elements or delineate scope of various aspects described. The sole purpose of this summary is to simplify some concepts as a precursor to the detailed description which will be presented later.

The system includes a project generation module configured to generate project data based upon the industrial design data. An editor definition component is configured to receive interface definition data specifying a customization of the IDE, or IDEs interfaces.

The system generates system project data based upon the industrial design data. It also receives interface definition data from the user interface component that describes a customization to an IDE-interface.

The IDE editor controls industrial automation project editing features of the IDE Interfaces. System project data is generated based on industrial design input.

In order to achieve the above and related goals, certain illustrative elements are described in the following description as well as the annexed illustrations. These aspects represent various methods that can be used, and all are intended to covered in this document. “When viewed in conjunction with the illustrations, the detailed description may reveal other advantages and novel features.

The subject disclosure will now be described in reference to the drawings. Like reference numbers are used throughout to refer to similar elements. To provide a complete understanding of the subject disclosure, many specific details will be provided in the following description. However, it may be obvious that the disclosure in question can be implemented without these details. Other times, well-known devices and structures are shown as block diagrams to make a description easier.

The terms “component” and “system” are used interchangeably in this application. ?system,? ?platform,? ?layer,? ?controller,? ?terminal,? ?station,? ?node,? ?interface? Interfaces are meant to be a computer or entity that is related to or part of an operational apparatus, with one or several specific functionalities. These entities can either be hardware, a combination between hardware and software or software. Components can include, but are not limited to, a program running on a CPU, a hard drive, multiple storage devices (of magnetic or optical storage medium), including fixed (e.g. screwed-in or bolted-in) or removable solid-state drives, an object, an executable, a thread, an executable program and/or computer. As an example, a server application and the server itself can both be components. A component may reside in a thread or process. It can also be localized to one computer or distributed across two or more computers. Components described herein may also be executed from a variety of computer-readable storage media that have various data structures thereon. Components may communicate using local or remote processes, such as a signal with one or more packets of data (e.g. data from one system interacting with another system in a distributed system and/or over a network, such as the Internet, with other systems). Another example is an apparatus that provides specific functionality through mechanical parts controlled by electronic or electric circuitry, which are operated by software or firmware applications executed by a computer. The processor can be either internal or external to apparatus, and can execute at least part of the application. Another example is an apparatus with specific functionality provided by electronic components, without mechanical components. The electronic components may include a processor to execute software or hardware that provides the functionality. Interfaces can also include I/O components, processors, applications, and Application Programming Interfaces (API) components. The examples above are directed at aspects of a particular component. However, these aspects or features can also be applied to a platform, interface layer, controller, terminal and other similar systems.

As used herein the terms ‘to infer? “To infer?” and “inference?” are used interchangeably herein. Inference refers to reasoning about or inferring the states of a system, environment, or user from a collection of observations captured through events and/or other data. Inference can be used to identify a context or act, or generate a probability distribution of states. Probabilistic inference is the calculation of a probability distribution for states of interest using data and events. Inference may also be used to construct higher-level events using a collection of data and events. This inference allows for the creation of new events or actions using a collection of events and/or data. It does not matter if the events are closely correlated or if the data comes from one or more event and data sources.

In addition, the expression?or? “In addition, the term?or? is meant to refer to an inclusive?or. It is not intended to be an exclusive ‘or.? This means that the phrase ‘X employs A and B, unless otherwise stated or made clear by the context. is meant to refer to any of the natural inclusive permutations. The phrase “X uses A or B?” is intended to mean that the phrase “X” can be used in any of the natural inclusive permutations. X employs either A or B, or both A and B. The articles?a? Additionally, the articles?a????? and?an?? As used in this application and the attached claims, it should be understood to refer to?one or more? Except where otherwise stated or made clear by context, the meaning of “one or more” is to refer to a single form.

Furthermore the term’set? The term?set? as used herein excludes an empty set, i.e., a set that has no elements. A?set? is thus defined. A?set? in the subject disclosure can refer to one or more elements, entities or combinations. A set of controllers may include one or more controllers. A set of data resources can contain one or more data resource. The term “group” is also used herein. As used herein, the term “group” refers to a collection or combination of entities. For example, a group consisting of one or several nodes.

Various features and aspects will be described in terms of systems, which may include multiple devices, components, or modules. It should be understood that different systems could include additional components, modules, or devices. All of the components, devices, modules, etc. may not be included. These are discussed in conjunction with the figures. These approaches can also be combined.

FIG. The block diagram 1 shows an example of a control environment for industrial processes. In this example, industrial controllers 118 have been deployed in an industrial plant to monitor and control industrial processes or systems relating to manufacturing, machining motion control, batch processing or material handling. The industrial controllers 118 execute control programs that facilitate the monitoring and control industrial devices 120 comprising controlled industrial assets or system (e.g. industrial machines). Soft controllers may be used on a computer, other hardware platform or cloud platform. Some hybrid devices combine controller functionality with additional functions (e.g. visualization). “The control programs executed by the industrial controllers can be composed of any code capable of processing the input signals read from industrial devices 120 and controlling the output signals generated by industrial controllers. This includes but is not limited to ladder logic or sequential function charts.

Industrial devices 120 can include input devices (which provide data about the controlled industrial system to the industrial controllers 128) and output devices (which respond to control signals generated from the industrial controllers 128) to control the industrial system. Example input devices can include telemetry devices (e.g., temperature sensors, flow meters, level sensors, pressure sensors, etc. ), manual operator control devices (e.g., push buttons, selector switches, etc. Safety monitoring devices, such as safety mats and safety cords or light curtains are also available. Other devices of this type may also be used. “Output devices can include motor drives (pneumatic actuators), signaling devices, robot inputs, valves and pumps.

Industrial controllers 118 can communicate with industrial devices via hardwired or a networked connection. Industrial controllers 118, for example, can have native inputs and out put that communicate with industrial devices 120 in order to control the devices. Native controller I/O may include digital I/O, which transmits discrete voltages to and receives them from field devices. Analog I/O transmits or receives analog voltages or currents to and from devices. The controller I/O may communicate with the controller processor via a backplane so that digital and analog signals are read and controlled by control programs. Industrial controllers can communicate with industrial devices over a network, using a communication port or a module. Examples of networks include Ethernet, DeviceNet and ControlNet, Data Highway, Data Highway Plus, Remote I/O and Fieldbus, Modbus and Profibus. Wireless networks, serial protocols and wireless networks are also examples. The industrial controllers can also store data values which can be referenced and used by their associated control program for control decisions. This includes but is not limited to values such as measured or calculated values representing the operational state of a controlled machine (e.g. tank levels, alarms etc.). Or captured time series data collected by the automation system during operation (e.g. status information at multiple points in space, diagnostic events, etc.). Some intelligent devices, such as motor drives, condition monitoring modules, and instruments, may also store data values used to control or visualize state of operation. These devices can also record time-series events or data on a log to be retrieved and viewed later.

Industrial automation systems include human-machine (HMI) interfaces 114, which allow plant personnel access to telemetry data and system status information and control certain aspects of the operation. HMIs can communicate with industrial controllers over a network 116 and exchange data to visualize information about controlled industrial processes. HMIs can be configured so that operators can submit data to specific data tags or addresses in the memory of industrial controllers. This allows them to send commands to controlled systems, such as cycle start commands and device actuation command. Setpoint values can be modified, for example. HMIs can create one or more displays screens that allow the operator to interact with industrial controllers and, therefore, with controlled processes and/or system. Display screens may visualize the current states of industrial systems and their associated devices by using graphical representations that show metered or calculated value, color or position animations, rendering alarm notifications, etc. HMIs read data from industrial controllers and display it on one or several display screens in the format chosen by the HMI developers. HMIs can be mobile or fixed devices, with user-installed and pre-installed operating system software.

Some industrial environments may include additional systems or devices that relate to specific aspects within the controlled industrial system. They may include, for instance, a data historian (110), which aggregates and stores information from industrial controllers (118) or other data sources. Other systems or devices may also be included in some industrial environments, such as device documentation stores, which contain electronic documentation of the various industrial devices that make up the controlled industrial system. Inventory tracking systems, Work Order Management Systems, repositories of machine or process drawings or documentation, vendor product documentation storage and vendor knowledgebases.

These “higher-level” systems 126 can perform functions less directly related to the control of industrial automation systems in the plant facility, but are instead directed towards long-term planning, high level supervisory control and analytics, reporting or other high-level functions. These systems 126 can reside either on an office network 108 located at a remote location from the plant facility or on a cloud-based platform that has access to both the office and plant networks. These higher-level systems may include but are not restricted to cloud storage and analytics systems, big data systems, manufacturing executions systems, data lakes or reporting systems. “In some scenarios, these higher-level systems of the enterprise can be configured to analyze operational data from the control system, and then feed the results back to the operator or directly to the controller 118, or device 120, in the control.

The various control, monitoring and analytical devices which make up an industrial setting must be configured or programmed using configuration applications that are specific to each device. Industrial controllers 118, for example, are configured and programmed by a control programming application, such as a logic editor, which is typically executed on a client device (e.g. 124). A designer can create control programming using such platforms (e.g. ladder logic, structured texts, function block diagrams etc.). Download the program files resulting from the desired industrial process or sequence and upload them to the controller. Developers design HMIs 114 visualization screens, navigation structures, and other related features using an HMI Development Platform (e.g. executing on a client device 122), and then download the resulting visualisation files to the HMI 114. Some industrial devices 120, such as motor drives and telemetry devices or safety input devices etc., may require configuration using separate device configuration tools (e.g., running on client device 128). Some industrial devices 120?such as motor drives, telemetry devices, safety input devices etc.?may require configuration using separate device configuraton tools (e.g. executing on client device 126), that are specific to device being configured. These device configuration tools can be used to configure device parameters or operating mode (e.g. high/low limits and output signal formats.

The need to use separate configuration tools in order to program and configure disparate elements of an industrial automation systems results in a piecemeal approach, whereby different, but related, or overlapping, aspects of the automation system are designed separately, configured and programmed on different development platforms. A motion control system, for example, may require that an industrial controller be programmed, and a loop of control tuned, using a platform for control logic programming, while a motor driver is configured on another platform and the HMI associated with it programmed via a platform for visualization development. Other peripheral systems such as safety systems, vision systems and other peripherals may also be required. It may also be necessary to configure the system using separate development or programming applications.

Click here to view the patent on Google Patents.