Industrial automation project design telemetry
By using an integrated development environment (IDE) system, the fragmented design problem of industrial automation systems was solved, and integrated programming and configuration of the system were realized, improving design efficiency and consistency, and providing optimization suggestions to support project telemetry data.
Patent Information
- Application Number
- CN202210960939.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-09-23
- Filing Date
- 2022-08-11
- Publication Date
- 2025-11-18
- Estimated Expiration
- 2042-08-11
AI Technical Summary
In existing technologies, different aspects of industrial automation systems require separate configuration and programming, resulting in fragmented design methods. This increases the difficulty of system integration and the workload of debugging, and the data docking and coordination between different system aspects require a lot of debugging.
An integrated development environment (IDE) system is provided, including a user interface component, a project generation component, a project telemetry component, and a project analysis component. It supports cross-system integrated programming and configuration through a unified development platform, generates project telemetry data, and provides design recommendations.
It simplifies the design and configuration process of industrial automation systems, improves system integration efficiency, reduces debugging workload, and provides design optimization suggestions through project telemetry data, promoting multidisciplinary programming and consistent development of the system.
Smart Images

Figure CN115857379B_ABST
Abstract
Description
Technical Field
[0001] The topics disclosed in this article generally relate to industrial automation systems, and, for example, to industrial programming development platforms. Background Technology
[0002] The need to program and configure different aspects of industrial automation systems using separate configuration tools has led to a fragmented design approach. This results in different, related, or overlapping aspects of the automation system being designed, configured, and programmed separately in different development environments. For example, a motion control system might require a control logic programming platform to program the industrial controller and adjust the control loop, another configuration platform to configure the motor driver, and a visual development platform to program the associated HMI. Related peripheral systems—such as vision systems, safety systems, etc.—may also require configuration using separate programming or development applications.
[0003] This separate development approach may also require considerable testing and debugging effort to ensure proper integration of the separately configured system aspects. In this respect, the anticipated data interoperability or coordination between different system aspects may require significant debugging due to a failure to properly coordinate the various programming efforts. Summary of the Invention
[0004] The following is a simplified overview to provide a basic understanding of some of the aspects described in this paper. This overview is not a comprehensive review, nor is it intended to identify key / important elements or to outline the scope of the various aspects described herein. Its sole purpose is to present some ideas in a simplified form as an introduction to the more detailed descriptions that follow.
[0005] In one or more embodiments, a system for providing design guidance for an industrial control system is provided, the system comprising: a user interface component configured to present an integrated development environment (IDE) interface and receive design input via interaction with the IDE interface, the design input defining aspects of a control item for monitoring and controlling an industrial system; a project generation component configured to generate system project data based on the design input, the system project data including at least one of an executable industrial control program, an industrial visualization application, or industrial equipment configuration data; a project telemetry component configured to generate project telemetry data based on a first analysis of the system project data, the project telemetry data identifying industrial equipment used by the control item, characteristics of the industrial equipment used by the control item, and unused available characteristics of the industrial equipment; and a project analysis component configured to generate recommendations for modifying the control item based on a second analysis performed on the project telemetry data.
[0006] Furthermore, one or more embodiments provide a method for providing design guidance for an industrial control system, the method comprising: presenting an integrated development environment (IDE) interface on a client device by a system including a processor; receiving industrial design input received from the client device by the system via interaction with the IDE interface, the industrial design input defining aspects of control items for monitoring and controlling the industrial system; generating system project data by the system based on the industrial design input, the system project data including at least one of an executable industrial control program, an industrial visualization application, or industrial equipment configuration data; generating project telemetry data by the system based on a first analysis of the system project data, the project telemetry data identifying industrial equipment used by the control project, characteristics of the industrial equipment used by the control project, and unused available characteristics of the industrial equipment; and generating recommendations for modifying the control project by the system based on a second analysis performed on the project telemetry data.
[0007] Furthermore, according to one or more embodiments, a non-transitory computer-readable medium is provided, on which instructions are stored, the instructions causing a system to perform operations in response to execution, the operations including: presenting an integrated development environment (IDE) interface on a client device; receiving industrial design input received from the client device via interaction with the IDE interface, the industrial design input defining aspects of control items for monitoring and controlling an industrial system; generating system project data based on the industrial design input, the system project data including at least one of an executable industrial control program, an industrial visualization application, or industrial equipment configuration data; generating project telemetry data based on a first analysis of the system project data, the project telemetry data identifying industrial equipment used by the control project, characteristics of the industrial equipment used by the control project, and unused available characteristics of the industrial equipment; and generating recommendations for modifying the control project based on a second analysis performed on the project telemetry data.
[0008] To achieve the foregoing and related objectives, certain illustrative aspects are described herein in conjunction with the following description and figures. These aspects indicate various modes that can be practiced, all of which are intended to be covered herein. Other advantages and novel features will become apparent from the following detailed description when considered in conjunction with the figures. Attached Figure Description
[0009] Figure 1 This is a block diagram of an example industrial control environment.
[0010] Figure 2 This is a block diagram of an example integrated development environment (IDE) system.
[0011] Figure 3 This is a diagram illustrating the general architecture of an industrial IDE system.
[0012] Figure 4 This is a diagram showing several example automated object properties that can be utilized by the IDE system in relation to building, deploying, and executing system projects.
[0013] Figure 5 This is a diagram illustrating an example data flow associated with creating a system project for an automation system designed using an industrial IDE system.
[0014] Figure 6 This is a diagram illustrating an example system project that incorporates automation objects into the project model.
[0015] Figure 7 This diagram illustrates the debugging process for a system project.
[0016] Figure 8 This is a diagram illustrating an example architecture for using cloud-based IDE services to develop industrial applications and deploy them to factory environments.
[0017] Figure 9 This is a diagram showing the extraction of project telemetry data from a control project developed using an IDE system.
[0018] Figure 10 This is a graph illustrating how project recommendations are generated based on the analysis of extracted project telemetry data.
[0019] Figure 11 This diagram illustrates the use of an IDE service as an intermediary between factory-based project developers and remote technical support personnel.
[0020] Figure 12a This is a flowchart of the first part of an example method for generating control design feedback based on the analysis of industrial control projects.
[0021] Figure 12b This is a flowchart of the second part of an example method for generating control design feedback based on the analysis of industrial control projects.
[0022] Figure 13 This is an example computing environment.
[0023] Figure 14 This is an example network environment. Detailed Implementation
[0024] This disclosure will now be described with reference to the accompanying drawings, in which similar reference numerals are used to refer to similar elements. In the following description, numerous specific details are set forth for illustrative purposes to provide a thorough understanding of this disclosure. However, it will be apparent that this disclosure can be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form to facilitate description.
[0025] As used herein, the terms “component,” “system,” “platform,” “layer,” “controller,” “terminal,” “station,” “node,” and “interface” are intended to refer to a computer-related entity or an entity related to or part of an operating device having one or more specific functions, wherein such an entity may be hardware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to, a process running on a processor, a processor, a hard disk drive, multiple storage drives (optical or magnetic storage media) including fixed (e.g., secured with screws or bolts) or removable fixed solid-state drives; an object; an executable file; an executing thread; a computer-executable program, and / or a computer. For illustration, a server and an application running on a server can both be components. One or more components may reside within an executing process and / or thread, and components may reside on one computer and / or be distributed among two or more computers. Furthermore, the components described herein may be executable from various computer-readable storage media storing various data structures. These components may communicate via local and / or remote processes, for example, based on signals having one or more data packets (e.g., data from a component interacting with another component in a local system, a distributed system, and / or interacting with other systems via signals through a network such as the Internet). As another example, a component may be a device having specific functions provided by mechanical parts operated by an electrical or electronic circuitry system, which is operated by software or firmware applications executed by a processor, wherein the processor may be internal or external to the device and execute at least a portion of the software or firmware application. As another example, a component may be a device providing specific functions by electronic components rather than mechanical parts, the electronic components including a processor to execute software or firmware that at least partially provides the functions of the electronic components. As yet another example, an interface may include input / output (I / O) components and associated processors, applications, or application programming interface (API) components. While the foregoing examples pertain to aspects of components, the illustrative aspects or features also apply to systems, platforms, interfaces, layers, controllers, terminals, etc.
[0026] As used herein, the terms “infer” and “inference” generally refer to the process of reasoning or inferring the state of a system, environment, and / or user based on a set of observations captured via events and / or data. For example, inference can be used to identify specific situations or actions, or it can generate probability distributions of states. Inference can be probabilistic, i.e., calculating the probability distribution of states of interest based on considerations of data and events. Inference can also refer to techniques used to compose higher-level events based on a set of events and / or data. Such inference results in the construction of new events or actions based on a set of observed events and / or stored event data, regardless of whether the events are closely related in time or whether the events and data come from one or more event and data sources.
[0027] Furthermore, the term "or" is intended to mean inclusive "or" rather than exclusive "or". That is, unless otherwise stated or clearly understood from the context, the phrase "X uses A or B" is intended to mean any of the natural inclusive arrangements. That is, any of the following examples satisfy the phrase "X uses A or B": X uses A; X uses B; or X uses both A and B. Additionally, the articles "a" and "an" used in this application and the appended claims should generally be interpreted as meaning "one or more" unless otherwise stated or clearly understood from the context to refer to the singular form.
[0028] Furthermore, as used herein, the term "set" excludes an empty set, such as a set containing no elements. Therefore, "set" as used in this disclosure includes one or more elements or entities. For illustration, a set of controllers includes one or more controllers; a set of data resources includes one or more data resources; and so on. Similarly, as used herein, the term "group" refers to a collection of one or more entities; for example, a group of nodes refers to one or more nodes.
[0029] Various aspects or features will be presented according to the system, which may include multiple devices, components, modules, etc. It should be understood and appreciated that various systems may include additional devices, components, modules, etc., and / or various systems may not include all the devices, components, modules, etc. discussed in conjunction with the accompanying drawings. Combinations of these methods may also be used.
[0030] Figure 1This is a block diagram of an example industrial control environment 100. In this example, multiple industrial controllers 118 are deployed throughout the industrial plant environment to monitor and control corresponding industrial systems or processes related to industrial functions such as product manufacturing, processing, motion control, batch processing, material handling, or others. The industrial controllers 118 typically execute corresponding control programs to monitor and control industrial equipment 120 (e.g., industrial machines) that constitute the controlled industrial assets or systems. One or more industrial controllers 118 may also include software controllers executing on a personal computer or other hardware platform or on a cloud platform. Some hybrid devices may also combine controller functionality with other functions (e.g., visualization). The control programs executed by the industrial controllers 118 may include virtually any type of code capable of processing input signals read from the industrial equipment 120 and controlling output signals generated by the industrial controllers 118, including but not limited to ladder logic, sequential function charts, function block diagrams, or structured text.
[0031] Industrial equipment 120 may include both input devices that provide data relating to the controlled industrial system to industrial controller 118 and output devices that respond to control signals generated by industrial controller 118 for controlling aspects of the industrial system. Example input devices may include telemetry devices (e.g., temperature sensors, flow meters, level sensors, pressure sensors, etc.), manual operator control devices (e.g., pushbuttons, selector switches, etc.), safety monitoring devices (e.g., safety mats, safety ropes, light curtains, etc.), and other such devices. Output devices may include motor drivers, pneumatic actuators, signaling devices, robot control inputs, valves, pumps, etc.
[0032] Industrial controller 118 can communicatively interface with industrial equipment 120 via hardwired or network connections. For example, industrial controller 118 may be equipped with local hardwired inputs and outputs for communicating with industrial equipment 120 to control these devices. Local controller I / O may include digital I / O that sends discrete voltage signals to and receives discrete voltage signals from field devices, or analog I / O that sends analog voltage or current signals to and receives analog voltage or current signals from devices. Controller I / O may communicate with the controller's processor via a backplane, allowing digital and analog signals to be read into and controlled by the control program. Industrial controller 118 may also communicate with industrial equipment 120 via a network using, for example, a communication module or an integrated networking port. Exemplary networks may include the Internet, intranet, Ethernet, DeviceNet, ControlNet, Data Highway and Data Highway Plus (DH / DH+), remote I / O, fieldbus, Modbus, Profibus, wireless networks, serial protocols, etc. The industrial controller 118 may also store persistent data values that can be referenced by its associated control programs and used for control decisions. These persistent data values include, but are not limited to, measured or calculated values representing the operating status of the controlled machine or process (e.g., tank level, location, alarms, etc.), or captured time-series data collected during the operation of the automated system (e.g., status information at multiple time points, diagnostic occurrences, etc.). Similarly, some intelligent devices—including, but not limited to, motor drives, instruments, or condition monitoring modules—may store data values used to control and / or visualize operating status. Such devices may also capture time-series data or events in logs for later retrieval and viewing.
[0033] Industrial automation systems typically include one or more personal machine interfaces (HMIs) 114 that allow factory personnel to view telemetry and status data associated with the automation system and control aspects of system operation. The HMI 114 can communicate with one or more industrial controllers 118 via a factory network 116 and exchange data with the industrial controllers to visualize information related to the controlled industrial process on one or more pre-developed operator interface screens. The HMI 114 can also be configured to allow operators to submit data to designated data tags or memory addresses of the industrial controllers 118, thereby providing a means for operators to issue commands to the controlled system (e.g., cyclic start commands, equipment actuation commands, etc.), modify setpoint values, etc. The HMI 114 can generate one or more display screens through which operators interact with the industrial controllers 118, thereby interacting with the controlled process and / or system. Example display screens can use graphical representations of processes displaying measured or calculated values to visualize the current status of an industrial system or its associated equipment, employing status-based color or location animations, presenting alarm notifications, or other such techniques to present relevant data to the operator. The data presented in this manner is read from the industrial controller 118 by the HMI 114 and displayed on one or more display screens according to a display format selected by the HMI developer. The HMI may include a fixed-location or mobile device with a user-installed or pre-installed operating system and user-installed or pre-installed graphical application software.
[0034] Some industrial environments may also include other systems or devices related to specific aspects of the controlled industrial system. These systems or devices may include, for example, a data historian 110 that aggregates and stores production information collected from industrial controller 118 or other data sources, an equipment document repository containing electronic documents of the various industrial devices constituting the controlled industrial system, an inventory tracking system, a work order management system, a repository of machine or process drawings and documents, a supplier product document repository, a supplier knowledge base, an internal knowledge base, a work scheduling application, or other such systems, some or all of which may reside on the office network 108 of the industrial environment.
[0035] Higher-level systems 126 can perform functions less directly related to the control of industrial automation systems on the factory floor, and instead focus on long-term planning, advanced supervisory control, analysis, reporting, or other such advanced functions. These systems 126 can reside on an office network 108 located external to the factory facilities, or on a cloud platform with access to the office and / or factory networks. Higher-level systems 126 can include, but are not limited to, cloud storage and analytics systems, big data analytics systems, manufacturing execution systems, data lakes, reporting systems, etc. In some scenarios, applications running at these higher levels within an enterprise can be configured to analyze control system operational data, and the results of this analysis can be fed back to operators at the control system level or directly to controllers 118 or devices 120 within the control system.
[0036] The various control, monitoring, and analysis devices constituting an industrial environment must be programmed or configured using appropriate configuration applications specific to each device. For example, control programming development applications such as ladder logic editors (e.g., executed on client device 124) are typically used to configure and program industrial controller 118. Using such a development platform, designers can write control programs (e.g., ladder logic, structured text, function block diagrams, etc.) to perform the desired industrial series or processes and download the resulting program files to controller 118. Separately, developers use an HMI development platform (e.g., executed on client device 122) to design visualization screens and associated navigation structures for HMI 114 and download the resulting visualization files to HMI 114. Some industrial devices 120—such as motor drives, telemetry devices, safety input devices, etc.—may also require configuration using separate device configuration tools (e.g., executed on client device 128) specific to the device being configured. Such device configuration tools can be used to set device parameters or operating modes (e.g., high / low limits, output signal format, scaling factor, energy consumption mode, etc.).
[0037] The need to program and configure different aspects of industrial automation systems using separate configuration tools has led to a fragmented design approach. This results in different, related, or overlapping aspects of the automation system being designed, configured, and programmed separately in different development environments. For example, a motion control system might require a control logic programming platform to program the industrial controller and adjust the control loop, another configuration platform to configure the motor driver, and a visual development platform to program the associated HMI. Related peripheral systems—such as vision systems, safety systems, etc.—may also require configuration using separate programming or development applications.
[0038] This separate development approach may also require considerable testing and debugging effort to ensure proper integration of the separately configured system aspects. In this respect, the anticipated data interoperability or coordination between different system aspects may require significant debugging due to a failure to properly coordinate the various programming efforts.
[0039] To address at least some of these and other issues, one or more implementations described herein provide an integrated development environment (IDE) for designing, programming, and configuring multiple aspects of industrial automation systems using a common design environment and data model. Implementations of industrial IDEs can be used to configure and manage automation system equipment in a generic manner, thereby facilitating integrated multidisciplinary programming of control, visualization, and other aspects of the control system.
[0040] Typically, industrial IDEs support features across the entire automation lifecycle, including design (e.g., equipment selection and sizing, controller programming, visualization development, equipment configuration, testing, etc.); installation, configuration and commissioning; operation, improvement and management; and troubleshooting, expansion and upgrades.
[0041] Industrial IDEs can be implemented by including modular code and visualization libraries specific to industrial vertical markets and common industrial applications within those vertical markets. These code and visualization modules can simplify development and shorten development cycles, while also supporting consistency and reusability across industrial enterprises.
[0042] Furthermore, some implementations of industrial IDE systems can generate project telemetry data based on the analysis of system projects developed by end customers. This project telemetry data can provide insights into the equipment and device topology of the system project and the automation system designed to monitor and control it. Project telemetry data can also serve as the basis for remote support for design recommendations and enhancements. IDE systems can also generate aggregated project telemetry data based on the analysis of system projects developed by multiple end customers and provide this data to equipment or software vendors. This aggregated project telemetry data can provide insights into how the vendor's products are being used.
[0043] Figure 2 This is a block diagram of an example integrated development environment (IDE) system 202 according to one or more embodiments of this disclosure. Aspects of the systems, apparatus, or processes described in this disclosure can constitute machine-executable components contained within a machine, such as machine-executable components contained in one or more computer-readable media (or media) associated with one or more machines. Such components, when executed by one or more machines such as computers, computing devices, automation equipment, virtual machines, etc., can enable the machines to perform the described operations.
[0044] IDE system 202 may include: a user interface component 204 including an IDE editor 224, a project generation component 206, a project deployment component 208, a collaboration management component 210, a project telemetry component 212, a project analysis component 214, an agent component 216, one or more processors 218, and a memory 220. In various embodiments, one or more of the user interface component 204, project generation component 206, project deployment component 208, collaboration management component 210, project telemetry component 212, project analysis component 214, agent component 216, one or more processors 218, and memory 220 may be electrically coupled and / or communicatively coupled to each other to perform one or more of the functions of IDE system 202. In some embodiments, components 204, 206, 208, 210, 212, 214, and 216 may include software instructions stored on memory 220 and executed by processor 218. IDE system 202 may also be compatible with... Figure 2 It may interact with other hardware and / or software components not depicted herein. For example, processor 218 may interact with one or more external user interface devices such as a keyboard, mouse, display monitor, touchscreen, or other such interface devices.
[0045] User interface component 204 can be configured to receive user input and present output to the user in any suitable format (e.g., visual, audio, haptic, etc.). In some embodiments, user interface component 204 can be configured to communicatively interface with an IDE client running on a client device (e.g., a laptop computer, tablet computer, smartphone, etc.) that is communicatively connected to IDE system 202 (e.g., via a hardwired or wireless connection). User interface component 204 can then receive user input data and present output data via the IDE client. In other embodiments, user interface component 204 can be configured to generate suitable interface screens (e.g., program development screens) and provide these interface screens to the client device, and to exchange data via these interface screens. Input data that can be received via various embodiments of user interface component 204 may include, but is not limited to, programming code, industrial design specifications or objectives, engineering drawings, AR / VR input, DSL definitions, video or image data, or other such input. Output data presented by various embodiments of user interface component 204 may include program code, programming feedback (e.g., errors and highlights, coding suggestions, etc.), programming and visual development screens, etc.
[0046] Project generation component 206 can be configured to create a system project comprising one or more project files based on design input received via user interface component 204 and industry knowledge, predefined code modules, and visualization and automation objects 222 maintained by IDE system 202. Project deployment component 208 can be configured to delegate the system project created by project generation component 206 to appropriate industrial devices (e.g., controllers, HMI terminals, motor drives, AR / VR systems, etc.) for execution. To this end, project deployment component 208 can identify appropriate target devices to which the corresponding parts of the system project should be sent for execution, convert these corresponding parts into a format understandable by the target devices, and deploy the converted project components to their corresponding devices.
[0047] The collaboration management component 210 can be configured to initiate a communication channel with field or automation experts who can provide design assistance, recommended improvements for the system project, or alert developers to available device features that can improve the performance of the system project.
[0048] Project telemetry component 212 can be configured to analyze industrial control projects submitted by users and generate project telemetry or statistical information for the submitted projects based on the analysis. Example project telemetry data that can be generated by project telemetry component 212 may include, but is not limited to, inventory of equipment used in the project, information on how the equipment is being used, reports indicating how close the equipment or associated software will operate to hardware or software capacity limits, estimated memory or energy consumption during project operation, or other such statistical information.
[0049] Project Analysis Component 214 is configured to analyze project telemetry data generated by Project Telemetry Component 212 and generate design recommendations or warnings based on the analysis. Project Analysis Component 214 can also generate equipment or equipment usage statistics inferred from multiple projects submitted by multiple end customers for use by equipment suppliers or OEMs.
[0050] Agent component 216 can be configured to manage the connectivity and sharing of project information between developers and remote technical support.
[0051] One or more processors 218 may perform one or more of the functions described herein with reference to the systems and / or methods disclosed herein. Memory 220 may be a computer-readable storage medium storing computer-executable instructions and / or information for performing the functions described herein with reference to the systems and / or methods disclosed herein with reference to the systems.
[0052] Figure 3This diagram illustrates the general architecture of an industrial IDE system 202 according to one or more implementations. The industrial IDE system 202 can realize a common set of services and workflows not only across design but also across commissioning, operation, and maintenance. In terms of design, the IDE system 202 can support not only industrial controller programming and HMI development but also system component sizing and selection, device / system configuration, AR / VR visualization, and other features. The IDE system 202 may also include tools to simplify and automate the commissioning of the resulting project and assist in the subsequent management of the deployed system during runtime.
[0053] The implementation of the IDE system 202 on the cloud platform also facilitates collaborative project development, whereby multiple developers 304 contribute design and programming input to the public automation system project 302. Collaboration tools supported by the IDE system can manage design contributions from multiple contributors and perform version control on the aggregated system project 302 to ensure project consistency. The collaborative features supported by the industrial IDE system are described in more detail here.
[0054] Based on design and programming input from one or more developers 304, the IDE system 202 generates a system project 302 comprising one or more project files. The system project 302 encodes one or more of the following: control programs; HMI, AR, and / or VR visualizations; device or subsystem configuration data (e.g., drive parameters, vision system configuration, telemetry device parameters, safety zone definitions, etc.); or other such aspects of the industrial automation system being designed. The IDE system 202 can identify appropriate target devices 306 (e.g., industrial controllers, HMI terminals, frequency converters, safety devices, etc.) on which the corresponding aspects of the system project 302 should be executed, convert the system project 302 into an executable file that can be executed on the corresponding target device, and deploy the executable file to its corresponding target device 306 for execution, thereby delegating the system project 302 to the factory floor for the implementation of an automation project.
[0055] To support enhanced development capabilities, some implementations of the IDE system 202 can be built on an object-based data model rather than a tag-based architecture. Automation objects 222 serve as building blocks for this object-based development architecture. Figure 4This is a diagram illustrating several example automation object attributes that can be utilized by the IDE system 202 in relation to building, deploying, and executing system project 302. Automation objects 222 can be created and expanded during design, integrated into larger data models, and consumed during runtime. These automation objects 222 provide a common data structure across the IDE system 202 and can be stored in an object library (e.g., a portion of memory 220) for reuse. The object library can store predefined automation objects 222 representing various categories of real-world industrial assets 402, including but not limited to pumps, tanks, valves, motors, motor drives (e.g., variable frequency drives), industrial robots, actuators (e.g., pneumatic or hydraulic actuators), or other such assets. Automation objects 222 can represent elements at virtually any level within an industrial enterprise, including individual devices, machines consisting of numerous industrial devices and components (some of which may be associated with their own automation objects 222), and entire production lines or process control systems.
[0056] An automation object 222 for a given type of industrial asset can be encoded with aspects such as 2D or 3D visualization, alarms, control codes (e.g., logic or other types of control programs), analysis, start-up procedures, test protocols, verification reports, simulations, charts, safety protocols, and other attributes associated with the industrial asset 402 represented by object 222. The automation object 222 can also be geotagged with location information identifying the location of the associated asset. During the runtime of system project 302, the automation object 222 corresponding to the given real-world asset 402 can also record data about the asset's status or operational history. Typically, the automation object 222 serves as a programmable representation of its corresponding industrial asset 402 and can be incorporated into system project 302 as an element of control codes, 2D or 3D visualizations, a knowledge base or maintenance guidance system for the industrial asset, or other such aspects.
[0057] Figure 5This diagram illustrates an example data flow associated with creating a system project 302 for an automation system designed using an IDE system 202 according to one or more implementations. A client device 504 (e.g., a laptop computer, tablet computer, desktop computer, mobile device, wearable AR / VR device, etc.) executing an IDE client application 514 can access and utilize the IDE system's project development tools to create a comprehensive system project 302 for the automation system being developed. Through interaction with the system's user interface component 204, developers can submit design inputs 512 to the IDE system 202 in various supported formats, including industry-specific control programs (e.g., control logic, structured text, sequential function charts, etc.) and HMI screen configuration inputs. Based on the design input 512 and the information stored in the industrial knowledge base 502 (predefined code modules 508 and visualizations 510, guardrail templates 506, physics-based rules 516, etc.), the user interface component 204 presents design feedback 518, which is designed to assist developers in developing system projects 302 for configuring, controlling, and visualizing industrial automation systems.
[0058] In addition to control programming and visualization definitions, some implementations of the IDE system 202 can be configured to receive digital engineering drawings (e.g., computer-aided design (CAD) files) as design input 512. In such implementations, the project generation component 206 can generate parts of the system project 302 based on analysis of existing design drawings, for example, by automatically generating control and / or visualization codes. Drawings that can be submitted as design input 512 can include, but are not limited to, P&ID drawings, mechanical drawings, flowcharts, or other such documents. For example, P&ID drawings can be imported into the IDE system 202, and the project generation component 206 can identify the elements (e.g., tanks, pumps, etc.) conveyed through the drawings and the relationships between them. The project generation component 206 can associate or map the elements identified in the drawings with appropriate automation objects 222 corresponding to these elements (e.g., tanks, pumps, etc.) and add these automation objects 222 to the system project 302. Equipment-specific and asset-specific automation objects 222 include appropriate codes and visualizations to be associated with the elements identified in the drawings. Typically, the IDE system 202 can examine one or more different types of drawings (mechanical, electrical, piping, etc.) to determine relationships between equipment, machines, and / or assets (including identifying common elements across different drawings) and intelligently associate these elements with appropriate automation objects 222, code modules 508, and / or visualizations 510. In generating code or project data for system project 302, the IDE system 202 can utilize physics-based rules 516, as well as predefined code modules 508 and visualizations 510, as needed.
[0059] The IDE system 202 can also determine whether predefined visualizations are applicable to any object found in the mapping and generate appropriate HMI screens or AR / VR content for the found objects based on these predefined visualizations. To this end, the IDE system 202 can store industry-specific, asset-specific, and / or application-specific visualizations 510 that can be accessed on demand by the project generation component 206. These visualizations 510 can be categorized according to industry or industry vertical market (e.g., automotive, food and pharmaceuticals, oil and gas, pharmaceuticals, etc.), type of industrial asset (e.g., type of machine or industrial equipment), type of industrial application (e.g., batch processing, flow control, web tension control, sheet metal stamping, water treatment, etc.), or other such categories. Predefined visualizations 510 can include visualizations in various formats, including but not limited to HMI screens or windows, mashups aggregating data from multiple pre-specified sources, AR overlays, VR objects representing 3D virtualizations of associated industrial assets, or other such visualization formats. The IDE system 202 can select an appropriate visualization for a given object based on a predefined association between object type and visualization content.
[0060] In another example, markings applied by the user to engineering drawings can be understood through some implementations of the project generation component 206 to convey specific design intent or parameters. For example, markings made in red ink can be interpreted as indicating a safety zone, two circles connected by a dashed line can be interpreted as a gear relationship, and a thick line can indicate a cam relationship. In this way, designers can draft design goals on existing drawings in a way that the IDE system 202 can understand and utilize to generate code and visualizations. In another example, the project generation component 206 can learn permissions and interlocks (e.g., valves and their associated states) used as necessary prerequisites for starting a machine based on analysis of the user's CAD drawings. The project generation component 206 can generate any suitable code (ladder logic, function blocks, etc.), device configurations, and visualizations for incorporation into the system project 302 based on the analysis of these drawings and markings. In some implementations, the user interface component 204 may include design tools for developing engineering drawings within the IDE platform itself, and the project generation component 206 may generate the code as a background process when the user creates a drawing for a new project. In some implementations, the project generation component 206 can also convert the state mechanism diagram into a corresponding programming sequence, thereby generating at least skeleton code that can be enhanced by developers with additional programming details as needed.
[0061] Furthermore, or additionally, some implementations of the IDE system 202 can support goal-based automation programming. For example, the user interface component 204 can allow a user to specify the production goals of the automation system being designed (e.g., specifying that the bottling plant being designed must be able to produce at least 5,000 bottles per second during normal operation) and any other relevant design constraints applied to the design project (e.g., budget constraints, available workshop space, available control cabinet space, etc.). Based on this information, the project generation component 206 will generate parts of the system project 302 to meet the specified design goals and constraints. These parts of the system project 302, which can be generated in this way, may include, but are not limited to, equipment and equipment selection (e.g., how many pumps, controllers, stations, conveyors, drives, or other assets will be needed to meet the definition of the specified goals), associated equipment configurations (e.g., regulation parameters, network settings, drive parameters, etc.), control codes, or HMI screens suitable for visualizing the automation system being designed.
[0062] Some implementations of the project generation component 206 can also generate at least some of the project code for system project 302 based on knowledge of parts already ordered for the project being developed. This may involve accessing customer account information maintained by the equipment supplier to identify equipment already purchased for the project. Based on this information, the project generation component 206 can add appropriate automation objects 222 and associated code modules 508 corresponding to the purchased assets, thereby providing a starting point for project development.
[0063] Some implementations of the project generation component 206 can also monitor customer-specific design approaches for co-programmed functions (e.g., pumping applications, batch processing, palletizing operations, etc.) and generate recommendations for design modules (e.g., code module 508, visualization 510, etc.) that the user might want to incorporate into the current design project, based on inferences about the designer's goals and methods learned to achieve those goals. To this end, some implementations of the project generation component 206 can be configured to monitor design input 512 over time and, based on this monitoring, learn the correlation between certain design actions (e.g., adding certain code modules or code snippets to the design project, selecting certain visualizations, etc.) and the type, industrial sequence, or industrial process being designed. The project generation component 206 can record these learned correlations and generate recommendations based on these correlations during subsequent project development phases. For example, if the project generation component 206 determines, based on the analysis of the design input 512, that the designer is currently developing a control project involving an industrial piece of equipment that has been programmed and / or visualized in the past in a repetitive and predictable manner, then the project generation component 206 can instruct the user interface component 204 to present recommended development steps or code modules 508 that the designer may wish to incorporate into the system project 302, based on how the equipment has been configured and / or programmed in the past.
[0064] In some implementations, the IDE system 202 may also store and implement guardrail templates 506, which define design guardrails designed to ensure that a project conforms to internal or external design standards. Based on design parameters defined by one or more selected guardrail templates 506, the user interface component 204 may provide dynamic recommendations or other types of feedback as a subset of design feedback 518, which is designed to guide developers in ensuring that system project 302 conforms to internal or external requirements or standards (e.g., certifications such as TUV certification, internal design standards, industry-specific or vertical market-specific design standards, etc.). This feedback 518 may take the form of text-based recommendations (e.g., recommendations to rewrite control code sections to conform to defined programming standards), syntax highlighting, error highlighting, code snippet auto-completion, or other such formats. In this way, the IDE system 202 can customize design feedback 518 according to the type of industrial system being developed and any applicable internal design standards, including programming recommendations, recommendations for predefined code modules 508 or visualizations 510, error highlighting, and syntax highlighting, etc.
[0065] Guardrail template 506 can also be designed to conform to global best practices applicable to other aspects of control programming or project development. For example, if a developer's control programming is deemed too complex (as defined by standards specified by one or more guardrail templates 506), the user interface component 204 can generate and present alerts. Because different vertical markets (e.g., automotive, pharmaceuticals, oil and gas, food and pharmaceuticals, marine, etc.) must comply with different standards and certifications, the IDE system 202 can maintain a library of guardrail templates 506 for different internal and external standards and certifications, including custom, user-specific guardrail templates 506. These guardrail templates 506 can be categorized based on industrial vertical markets, the type of industrial application, plant facilities (in the case of custom internal guardrail templates 506), or other such categories. During development, the project generation component 206 can select and apply a subset of guardrail templates 506 determined to be relevant to the project currently being developed, based on aspects such as the industrial vertical market associated with the project, the type of industrial application being programmed (e.g., flow control, span tension control, specific batch processing, etc.), or other such aspects. Project generation component 206 can utilize guardrail template 506 to enable rule-based programming, thereby presenting programming feedback (a subset of design feedback 518) based on industry expertise and best practices in coding (e.g., identifying inefficiencies in the code being developed and recommending appropriate corrections).
[0066] Users can also run their own internal guardrail template 506 against code provided by external vendors (such as OEMs) to ensure that the code conforms to internal programming standards. In such a scenario, vendor-provided code can be submitted to the IDE system 202, and the project generation component 206 can analyze the code against the internal coding standards specified by one or more custom guardrail templates 506. Based on the results of this analysis, the user interface component 204 can (e.g., using highlighting, overlay text, etc.) indicate the parts of the vendor-provided code that do not conform to the programming standards outlined in the guardrail template 506 and display suggestions for modifying the code to achieve compliance. As an alternative to recommending these modifications, or in addition to recommending these modifications, some implementations of the project generation component 206 can be configured to automatically modify the code to achieve compliance based on the recommendations.
[0067] When proposing coding suggestions as part of design feedback 518, project generation component 206 may invoke selected code modules 508 stored in a code module database (e.g., on memory 220). These code modules 508 include standardized coding segments for controlling common industrial tasks or applications (e.g., pallet packaging, flow control, web tension control, pick and place applications, conveyor control, etc.). In some embodiments, code modules 508 may be categorized based on one or more of the following: industrial vertical market (e.g., automotive, food and pharmaceutical, oil and gas, textiles, marine, pharmaceuticals, etc.), industrial application, or the type of machine or equipment to which code module 508 is applicable. In some embodiments, project generation component 206 may infer the programmer's current programming task or design goal based on program input provided by the programmer (as a subset of design input 512), and determine, based on the task or goal, whether one of the predefined code modules 508 can be appropriately added to the control program being developed to achieve the inferred task or goal. For example, project generation component 206 can infer, based on the analysis of design input 512, that the programmer is currently developing control code for transferring material from one tank to another, and in response, recommend including a predefined code module 508 containing standardized or frequently used code for controlling valves, pumps, or other assets required to achieve the material transfer.
[0068] Customized guardrail template 506 can also be defined to capture subtle differences in the client's site that should be considered in the project design. For example, guardrail template 506 can record the fact that the automation system being designed will be installed in an area where power outages are common, and this factor will be taken into account when generating design feedback 518, such as by recommending the implementation of backup uninterruptible power supplies and suggesting how these power supplies should be integrated, as well as recommending related programming or control strategies that take into account these power outages.
[0069] The IDE system 202 can also use the guardrail template 506 to guide users in selecting equipment or devices for a given design objective, for example, based on factors such as: the industrial vertical market, the type of control application (e.g., sheet metal stamping, die casting, pallet packaging, conveyor control, web tension control, batch processing, etc.), project budget constraints, physical constraints at the installation site (e.g., available floor, wall, or cabinet space; dimensions of the installation space, etc.), and existing equipment at the site. Some or all of these parameters and constraints can be provided as design input 512, and the user interface component 204 can present equipment recommendations as a subset of design feedback 518. In some implementations, the project generation component 206 can also determine whether some or all of the existing equipment can be repurposed for the new control system being designed. For example, since some bottling lines already exist, there may be opportunities to utilize existing equipment if a new bottling line is to be added to the production area. Decisions about which equipment and devices can be reused will affect the design of the new control system. Therefore, some of the design inputs provided to the IDE system 202 as design input 512 may include details of the customer's existing systems within or near the installation site. In some implementations, project generation component 206 may apply artificial intelligence (AI) or conventional analytical methods to the information to determine whether existing equipment specified in design input 512 can be repurposed or utilized. Based on the results of this analysis, project generation component 206 may generate a list of any new equipment that may need to be purchased as design feedback 518.
[0070] In some implementations, the IDE system 202 can provide design recommendations based on an understanding of the physical environment in which the automation system being designed will be installed. For this purpose, information about the physical environment can be submitted to the IDE system 202 in the form of 2D or 3D images or videos of the factory environment (as part of design input 512). In some implementations, this environmental information can also be obtained from an existing digital twin of the factory or through analysis of scanned environmental data obtained by wearable AR devices. The project generation component 206 can analyze this image, video, or digital twin data to identify physical elements within the installation area (e.g., walls, beams, safety fences, existing machines and equipment, etc.) and the physical relationships between these elements. This can include determining distances between machines, lengths of pipework, locations and distances of wiring harnesses or cable trays, etc. Based on the results of this analysis, the project generation component 206 can add context to the generated schematic diagram as part of system project 302, generate recommendations for optimal locations of equipment or machines (e.g., recommending minimum spacing between power cables and data cables), or make other improvements to system project 302. At least some of these design data can be generated based on physics-based rule 516, which can be referenced by project generation component 206 to determine physical design specifications such as: minimum safe distance from hazardous equipment (which can also be considered as a factor in determining the appropriate installation location of safety equipment relative to the equipment, given the expected human or vehicle reaction time defined by physics-based rule 516), material selection capable of withstanding the expected load, piping configuration and regulation for a specified flow control application, wiring specifications suitable for the expected electrical load, minimum distance between signal wiring and electromagnetic field (EMF) sources to ensure negligible electrical interference to data signals, or other such design features dependent on physics rules.
[0071] In the example use case, the relative positions of machines and equipment specified by the physical environment information submitted to the IDE system 202 can be used by the project generation component 206 to generate design data for an industrial safety system. For example, the project generation component 206 can analyze distance measurements between safety equipment and hazardous machines and, based on these measurements, determine the appropriate placement and configuration of safety equipment and associated safety controllers to ensure that machines will shut down within a sufficient safety reaction time to prevent injury (e.g., in the event of a person crossing a light curtain).
[0072] In some implementations, the project generation component 206 can also analyze photographic or video data of existing machines to determine inline mechanical characteristics such as gears or cams and incorporate that information as a factor into one or more guardrail templates 506 or design recommendations.
[0073] As described above, the system project 302 generated by the IDE system 202 for a given automation system being designed can be built on an object-based architecture using automation objects 222 as building blocks. Figure 6 This is a diagram illustrating an example system project 302 incorporating automation objects 222 into a project model. In this example, various automation objects 222 representing assets (e.g., processes, tanks, valves, pumps, etc.) of similar industrial equipment, systems, or automated systems have been incorporated into system project 302 as elements of a larger project data model 602. Project data model 602 also defines the hierarchical relationships between these automation objects 222. According to the example relationships, a process automation object representing a batch process can be defined as a parent object representing multiple child objects of equipment and apparatus such as tanks, pumps, and valves that perform the process. Each automation object 222 has object characteristics or attributes specific to its corresponding industrial asset (e.g., combined above). Figure 4 The ones discussed include executable control procedures for controlling assets (or for coordinating the actions of assets with other industrial assets) and visualizations that can be used to present relevant information about assets during runtime.
[0074] At least some of the attributes of each automation object 222 are default attributes defined by the IDE system 202 based on coded industry expertise related to the asset represented by the object. Developers can modify or add other attributes as needed (via design input 512) to customize the object 222 for the specific asset and / or industrial application for which they are developing the system project 302. This can include, for example, associated custom control code, HMI screens, AR demonstrations, or help files associated with the selected automation object 222. In this way, automation objects 222 can be created and expanded as needed during design for consumption or execution by the target control device during runtime.
[0075] Once the development of system project 302 has been completed, the debugging tools supported by IDE system 202 can simplify the process of debugging the project in the field. With system project 302 completed for a given automation system, system project 302 can be deployed to one or more target control devices for execution. Figure 7 This diagram illustrates the commissioning of system project 302. Project deployment component 208 can compile or otherwise convert the completed system project 302 into one or more executable files or configuration files that can be stored and executed on the corresponding target industrial equipment of the automation system (e.g., industrial controller 118, HMI terminal 114 or other types of visualization systems, motor drive 710, telemetry device, vision system, safety relay, etc.).
[0076] Conventional control program development platforms require developers to specify the type of industrial controller (e.g., controller model) that will run the control program before development, thus binding the control program to the specified controller. Controller-specific guardrails are then imposed during program development, limiting how the program can be developed given the capabilities of the chosen controller. In contrast, some implementations of the IDE system 202 can abstract project development based on specific controller types, allowing designers to develop the system project 302 as a logical representation of an automation system in a way that is agnostic to where and how the various control aspects of the system project 302 will operate. Once the project is developed and the system project 302 is ready for commissioning, the user can (via user interface component 204) specify the target device to execute the corresponding aspect of the system project 302. In response, the allocation engine of the project deployment component 208 converts the aspects of the system project 302 into corresponding executable files formatted for storage and execution on their respective target devices.
[0077] For example, among other project aspects, system project 302 may also include control code, visualization screen definitions, and motor driver parameter definitions. After project development is complete, the user can identify which target devices—including industrial controller 118, HMI terminal 114, and motor driver 710—will execute or receive these corresponding aspects of system project 302. Project deployment component 208 can then convert the controller code defined by system project 302 into a formatted control program file 702 for execution on the designated industrial controller 118 and send the control program file 702 to controller 118 (e.g., via factory network 116). Similarly, project deployment component 208 can convert the visualization definitions and motor driver parameter definitions into a visualization application 704 and a device configuration file 708, respectively, and deploy these files to their respective target devices for execution and / or device configuration.
[0078] Typically, project deployment component 208 performs any transformations necessary to allow aspects of system project 302 to be executed on designated devices. Regardless of how the elements of system project 302 are distributed, any inherent relationships, handshakes, or data sharing defined within system project 302 will be maintained. In this way, implementations of IDE system 202 can decouple the project from how and where it will run. This also allows the same system project 302 to be debugged at different plant facilities with different sets of control equipment. That is, some implementations of IDE system 202 can assign project code to different target devices based on the specific equipment found in the field. IDE system 202 can also allow portions of the project files to be debugged as emulators or on cloud-based controllers.
[0079] As an alternative to allowing users to specify the target control devices to which system project 302 should be deployed, some implementations of the IDE system 202 can proactively connect to the factory network 116 and discover available devices, identify the control hardware architecture present on the factory floor, infer appropriate target devices for the corresponding executable aspects of system project 302, and deploy system project 302 to these selected target devices. As part of this commissioning process, the IDE system 202 can also connect to a remote knowledge base (e.g., a web-based or cloud-based knowledge base) to determine which discovered devices are outdated or require firmware upgrades to properly execute system project 302. In this way, the IDE system 202 can serve as a link between the factory ecosystem of equipment vendors and customers via a trusted connection in the cloud.
[0080] Intelligent propagation can be used to propagate copies of system project 302 to multiple plant facilities with different equipment configurations, so that even if the field equipment does not perfectly match the defined target (e.g., if different pump types are found at different locations), project deployment component 208 intelligently associates project components with the correct industrial assets or control equipment. For target equipment that does not perfectly match the expected asset, project deployment component 208 can calculate the estimated impact of running system project 302 on non-optimal target equipment and generate warnings or recommendations to reduce the expected deviation from optimal project execution.
[0081] As described above, some implementations of the IDE system 202 can be implemented on a cloud platform. Figure 8 This diagram illustrates an example architecture for using a cloud-based IDE service 802 to develop and deploy industrial applications in a factory environment. In this example, the industrial environment includes one or more industrial controllers 118, HMI terminals 114, motor drives 710, a server 801 running higher-level applications (e.g., ERP, MES, etc.), and other such industrial assets. These industrial assets are connected to a factory network 116 (e.g., a generic industrial protocol network, Ethernet / IP network, etc.), which facilitates data exchange between industrial devices on the factory floor. The factory network 116 can be wired or wireless. In the example shown, the advanced server 810 resides on a separate office network 108 connected to the factory network 116 (e.g., via a router 808 or other network infrastructure device).
[0082] In this example, IDE system 202 resides on cloud platform 806 and executes as a collection of cloud-based IDE services 802 accessible to authorized remote client devices 504. Cloud platform 806 can be any infrastructure that allows shared computing services (such as IDE services 802) to be accessed and utilized by devices capable of connecting to the cloud. Cloud platform 806 can be a public cloud accessible via the Internet by appropriately authorized devices 504 with Internet connectivity and the ability to utilize IDE services 802. In some scenarios, cloud platform 806 can be provided by a cloud provider as Platform as a Service (PaaS), and IDE services 802 can reside on and execute on cloud platform 806 as a cloud-based service. In some such configurations, the owner of IDE services 802 can offer access to cloud platform 806 and associated IDE services 802 as a subscription service to customers. Alternatively, cloud platform 806 can be a private cloud operated internally by an industrial enterprise (owner of a factory facility). An example private cloud platform may include a collection of servers that host IDE services (802) and reside on a corporate network protected by a firewall.
[0083] Some implementations of the IDE system 202 may include project analysis features applicable to completed control projects 302 for the purpose of generating project recommendations. These recommendations aim to optimize control design or guide designers to previously unknown and unused equipment features that could improve control project performance if these features are utilized. To facilitate intelligent analysis of the completed system project 302, some implementations of the IDE system 202 may include a project telemetry component 212 that generates project telemetry data for the submitted system project 302. This project telemetry data can provide insights into both the control project itself and the equipment and device topology of the automation system for which the system project 302 is designed. Figure 9 This is a diagram illustrating the extraction of project telemetry data 902 from system project 302 developed using IDE system 202. Based on the analysis of system project 302, project telemetry component 212 can determine or infer characteristics of system project 302 itself, information about the equipment or apparatus constituting the automated system to be monitored and controlled by control project 302, predictions about the performance or resource utilization of the controlled system, the impact of control design on the estimated equipment lifecycle of one or more devices, or other such project metrics.
[0084] For example, based on analysis of industrial controller program files—which may include control code, I / O configuration data, and networking configuration data of the industrial controller on which the program files will be executed—project telemetry component 212 can identify input or output devices connected to the industrial controller (e.g., based on an examination of the I / O configuration or control code itself) and record the inventory of these devices in project telemetry data 902. Similar analysis can be used to determine I / O or control modules configured for use and information about how the controller's I / O is utilized. Project telemetry component 212 can also record inferred functional or topological relationships between any two or more devices or equipment identified as part of the automation system. Project telemetry component 212 can also estimate the total amount of network bandwidth or energy expected to be consumed by the automation system. To generate further insights into how the devices constituting the control system are being used, project telemetry data 902 can also record which subset of the available characteristics of the devices is currently being used by system project 302.
[0085] In addition to metrics used for the automated system to be controlled, the project telemetry component 212 can also estimate performance metrics used for the control code itself, such as the estimated amount of memory or processing power required to execute various aspects of the system project 302.
[0086] In some cases, project telemetry component 212 can enhance project telemetry data 902 generated for system project 302 by referencing vendor-specific device information stored in device profiles 906 on vendor repository 904. For example, project telemetry component 212 can identify specific device models (e.g., I / O modules, network infrastructure devices, motor drives, servers, actuators, etc.) being used as components of an automation system based on analysis of system project 302. Based on the identification of the device, project telemetry component 212 can access vendor repository 904 corresponding to the vendor of the device, determine whether device profile 906 is available for the device, and if device profile 906 is available for the device, retrieve the device's functional specification data from device profile 906 to include in project telemetry data 902. Depending on the device type, the functional specification data may include information such as the device's available I / O, available configuration parameters or functions, available memory or processing power, lifecycle information, response time, physical dimensions, rated power, networking capabilities, operating limitations (e.g., environmental requirements, such as the ambient temperature to which the device is rated), or other such supplemental device information.
[0087] Once the project telemetry data 902 has been extracted for system project 302, the project analysis component 214 can generate recommendations or notifications related to the project design based on the analysis of the project telemetry data 902 and coded industry expertise. Figure 10 This diagram illustrates the generation of project recommendation 1002 based on the analysis of extracted project telemetry data 902. By analyzing project telemetry data 902, project analysis component 214 can determine how to use the customer's industrial hardware and software assets and generate recommendations or notifications based on this assessment. This can include determining whether a proposed system project 302—caused by a control sequence defined by control programming or configuration parameters set for one or more industrial devices—will cause the hardware or software used in the control project to operate close to or above its rated operating threshold. For example, based on knowledge of the I / O utilization of the control project as recorded in project telemetry data 902 and the I / O capacity of the devices used in the control project (which can be determined based on specification data about those devices as recorded in device profile 906), project analysis component 214 can generate a notification that the proposed control design will cause one or more control devices (e.g., industrial controllers or I / O modules) to approach or exceed their maximum I / O capacity. Based on this assessment, Project Analysis Component 214 can also recommend alternative control devices with higher I / O capacity than the currently proposed I / O capacity in the control project, in order to increase the number of spare I / O points for future expansion.
[0088] Project analysis component 214 can also estimate equipment utilization over time based on analysis of project telemetry data 902, cross-reference this information with equipment lifecycle information recorded in equipment profile 906, and generate notifications indicating the expected lifecycle or failure time of the equipment if it is used as proposed in the control project. If an equivalent device with a longer expected lifecycle is available, project analysis component 214 can also generate a recommendation to replace the currently proposed device with the equivalent device. Alternatively, project analysis component 214 can recommend modifications to the control project that extend the equipment's lifespan (e.g., by reducing the frequency of equipment operation without otherwise affecting control outcomes).
[0089] In some implementations, project analysis component 214 may also identify unused features of the device that, if utilized, could improve one or more operational metrics of the control project. These features may be available features of the device that are unknown to the program developers (e.g., configuration parameters, potential functions that are inactive by default but can be activated or invoked, etc.). In an example scenario, project analysis component 214 may discover available features of the device based on the functional specifications documented in the device profile 906 and determine whether any unused features are likely to be relevant to aspects of system project 302 or can improve the performance metrics of system project 302. For example, project analysis component 214 may determine that invoking the device's currently unused operating modes could reduce the device's memory footprint or network bandwidth usage, increase the product throughput of the automation system, reduce overall project energy or material consumption, reduce product waste, or unlock another unforeseen improvement in the operation of the project. If such a potential design improvement is identified, user interface component 204 may send a notification recommending the design modification to the designer (or another user entity associated with the customer). In the example scenario, based on the device profile included as part of system project 302, project analysis component 214 can determine that unused features of the driver (e.g., regenerative braking) can reduce overall power consumption and generate a notification identifying the driver and indicating the unused feature. This notification can also provide recommendations on when the feature should be invoked during a control sequence to obtain the predicted benefits.
[0090] Project analysis component 214 can also determine whether any aspect of system project 302 deviates from industry standards or plant standards. This can be based on a comparison between project telemetry data 902 and industry standards recorded in standard definition 1014 (which may be stored in knowledge base 502) or internal standards recorded in plant standards 1010 stored in customer repository 1006. In the case of industry standards, the specific set of standards to be compared with system project 302 may be the functionality of the industrial vertical market in which system project 302 will operate (e.g., automotive, pharmaceutical, food and drug, oil and gas, etc.), as some types of industries may require compliance with a set of vertical market-specific control standards or requirements. Therefore, knowledge base 502 can categorize standard definition 1014 according to industrial vertical markets, thereby allowing project analysis component 214 to select an appropriate set of standards to apply to system project 302. Standard definition 1014 can define such an industry standard as the required amount of unused I / O that must be reserved as standby capacity, emission or energy consumption requirements, safety integrity level (SIL) requirements, interlocks or permissions that should be associated with a given type of control operation (e.g., associating a “valve open” command with the tank’s fill level, thereby preventing a machine start command from being executed until a specified safety interlock is met), or other such standards.
[0091] Example internal standards that can be documented in the customer’s factory standard 1010 and applied to system project 302 may include, but are not limited to, control coding standards, preferred suppliers whose equipment is approved for use within the factory, safety interlocks or licenses to be associated with certain control functions, or other such standards.
[0092] Project analysis component 214 can also perform any of the project analyses and generate any of the design feedbacks 518, as described above by project generation component 206. Some project analysis results may also trigger expert support checks, causing project analysis component 214 to initiate remote checks of the project by a technical support entity, subject to the designer's permission (as described below). Figure 11 (To be discussed in more detail).
[0093] Since the control project analysis performed by the project telemetry component 212 and the project analysis component 214 can identify or infer the equipment and networks to be used by the system project 302, the project analysis component 214 can also generate an inventory of industrial assets or equipment used by the customer's project 302. The IDE system 202 can store this asset inventory in a customer repository 1006 associated with the owner of the system project 302. Furthermore, if any of the discovered equipment or industrial assets has an associated digital device profile 906 available through the asset's supplier and stored in the supplier repository 904, the IDE system 202 can retrieve these device profiles 906 from the supplier repository 904 and store them in the customer repository 1006 as an asset model corresponding to the equipment. In this respect, the device profile 906 can represent a generic digital representation of the asset it represents, and the project analysis component 214 can convert these generic device profiles 906 into customized asset models representing assets with unique configurations for the customer based on the project telemetry data 902. A device profile 906 for a given industrial device (e.g., an industrial controller, motor drive, safety equipment, etc.) can be customized, for example, by applying specific configuration parameters for the device (such as those obtained from project telemetry data 902) to the device profile 906 to generate a customized asset model of the device. These asset models can be used as the basis for a digital twin of an automation system, which can be used to simulate and test system project 302.
[0094] The results of the analysis performed on the project telemetry data 902 can also be formatted and filtered for use by equipment providers (e.g., equipment suppliers, OEMs, etc.) participating in the ecosystem—which becomes possible through the cloud-based version of the IDE system 202—and this information can be made available to equipment providers as equipment usage statistics 1004. For example, for each equipment supplier using its equipment in system project 302, project analytics component 214 can provide the supplier with data reporting which of its equipment is being used, how much of each equipment is being used (e.g., how many of the supplier's controllers are being serviced at the customer's facility), and which features of those equipment are being utilized, as determined based on the analysis of system project 302. This data can be provided to the supplier in a manner that anonymizes the end customer and prevents the supplier from viewing the customer's proprietary information (e.g., formula data, production statistics, etc.). Typically, IDE system 202 protects the customer's proprietary data while providing sufficient access to provide services. User interface component 204 allows users to easily control how proprietary data is exposed or hidden from external entities that also participate in the IDE platform.
[0095] For a given equipment provider, user interface component 204 can compile statistics on these devices or equipment from multiple control projects 302 submitted by multiple different customers and present the aggregated equipment usage and feature utilization information in any suitable presentation format. For example, information about which of the equipment provider's devices or assets are being used can be presented as the number of each asset in use at customer sites, geographic details indicating where assets are used, charts indicating the relative popularity of the supplier's product lines, etc. Similar presentations can be used to convey, as determined based on aggregated project telemetry data 902 collected from multiple end customers using the supplier's products, which features (e.g., operating modes, configuration parameters, etc.) of each of the supplier's products are being used, or the exact extent to which their products are being utilized to their functional capabilities (e.g., what percentage of the controller's available memory is being used). Equipment providers can use this statistical information to make decisions about whether to discontinue a product due to unpopularity; identify potentially useful product features that their customers are not fully utilizing and therefore should be promoted; decide whether to increase or decrease the memory, processing, or I / O resources of certain products based on the extent to which customers use these resources; or make other informed decisions about product design and promotion.
[0096] While some equipment usage statistics 1004 can be presented to equipment providers in a manner that allows end customers to remain anonymous (e.g., for global product usage analysis purposes), other selected statistics 1004 can be presented on a per-customer basis based on service or licensing agreements between the equipment provider and its customers. For example, some equipment providers (e.g., OEMs) can offer their equipment usage as a subscription service, in which customers purchase licenses for a specified level of equipment usage (e.g., a specified number of operating cycles per month, a finite subset of available equipment features, etc.). In such a case, project analysis component 214 can determine the estimated frequency of use of the provider's equipment based on analysis of project telemetry data 902, and make this information (as usage statistics 1004) available to the equipment provider for licensing purposes.
[0097] Personalized usage statistics 1004 generated for specific customers (e.g., industrial companies purchasing equipment and gear from suppliers) can also be provided to and used by suppliers or other support entities to enhance the support provided by suppliers to customers. In an example scenario, a supplier can input a customer identifier of an interested customer into the IDE system 202 to access and examine the usage statistics 1004 of the identified customer. The usage statistics 1004 informs the supplier of information such as: which of the supplier's products are being used by the customer, how these products are configured, which product features are being used and which are not currently being utilized, the percentage of resources currently being consumed for each product (e.g., memory, processing power, I / O capacity, etc.), and other such usage behaviors. Suppliers can use this information as a basis for proactive recommendations, technical support, and feature guidance.
[0098] For example, based on customer usage statistics 1004—generated from telemetry data 902 obtained from customer project 302—the supplier can determine that the customer is not using a feature available on one of the supplier's products that, if utilized, could improve performance or reduce the frequency of errors currently being experienced on the customer's control system. The supplier can then arrange consultations with the customer to explain the available features and recommended modifications to the device configuration to appropriately unlock and configure the feature according to the customer's control application. In another example, customer usage statistics 1004 can indicate to the supplier that one of the control devices used by the customer is approaching maximum memory usage, processing power, or I / O capacity; based on this knowledge, the supplier can inform the customer that a similar product with higher available capacity is available.
[0099] Furthermore, in some implementations, project analysis component 214 may bundle usage statistics 1004 derived from project telemetry data 902—which provides information about how customers use the industrial assets that constitute their industrial automation systems—and information about the frequency of errors experienced by the automation system. This can assist suppliers or other technical support personnel in identifying correlations between customer design choices or asset utilization and the frequency of errors experienced by the industrial control system of the execution system project 302. For example, it may be determined that the use of a specific set of equipment functions by a customer—as determined from usage statistics 1004—may be associated with an excessive frequency of machine downtime.
[0100] Based on another type of analysis applicable to project telemetry data 902, project analysis component 214 can compare system project 302 or its extracted project telemetry data 902 with similar archived projects 1012 submitted by other end customers, and identify aspects of the submitted system project 302 that significantly deviate from the corresponding aspects of the similar archived projects 1012. User interface component 204 can then present a notification indicating the deviations of system project 302 and recommending project modifications as project recommendation 1002, which will bring system project 302 in line with common practices. In this way, IDE system 202 can leverage shared industry expertise or common practices to provide recommendations on best practices relative to the submitted control project. Aspects of the submitted system project 302 that can be compared in this way may include, but are not limited to, interlock design for a given type of control operation, device configuration parameters (e.g., motor drive settings, network infrastructure device settings, safety device settings, etc.), control setpoints, the operating sequence or timing of a given type of control operation or sequence, best control programming practices for various types of control operations, or other such project aspects.
[0101] The results of this deviation analysis can also be provided to the control equipment supplier as part of the usage statistics 1004. In this way, suppliers can be notified that customers using their equipment in a non-standard manner will be performing a given industrial control application, thus giving suppliers an opportunity to proactively consult with these customers to recommend control design changes that will bring their designs in line with standard practices. In some embodiments, the IDE system 202 can also bundle error frequency statistics of the customer's automation system with the results of the deviation analysis, thereby providing suppliers with useful information to determine whether system design deviations may be the cause of an excessively high frequency of operational errors relative to other customers operating similar industrial applications.
[0102] Remote support personnel can also utilize information about a given client’s project design, encoded through telemetry-based usage statistics 1004, to provide design recommendations, error correction, and feature guidance. Figure 11This diagram illustrates the use of an IDE service as an intermediary between a factory-based project developer and remote technical support personnel. In this implementation, the industrial IDE service 802 (a cloud-based implementation of IDE system 202) includes an associated agent service 1108 (implemented by agent component 216) that manages connectivity and data exchange between the developer's client device 504 and remote technical support. In the cloud-based implementation, each end-user's system project 302 (e.g., a completed system project 302 for a currently operating automation system or a pending system project 302 for the development of an automation system to be commissioned) is securely maintained on a cloud platform. Agent service 1108 may allow authorized technical support personnel (associated with client device 1110) to use IDE service 802 to access some or all of the usage project statistics 1004 for a given customer to act as an intermediary for the customer's data. The technical support entity may be, for example, an administrator of IDE service 802, an OEM manufacturing the machine for which control programs are being developed, a system integrator, an equipment supplier, or another such entity. In some implementations, end users may selectively allow access to a selected subset of their usage statistics 1004 data while prohibiting technical support personnel from accessing other parts of their usage statistics or system project 302, thereby protecting sensitive or proprietary project information.
[0103] In some scenarios, the collaboration management component 210 can initiate a communication channel with field or automation experts via the agent component 216. The automation experts can provide design assistance, recommended improvements to system project 302, or alert developers to available but currently unused features that can improve the performance of system project 302 and its associated automation systems. In some implementations, the IDE system 202 can automatically establish a connection with an expert in response to difficulties experienced by developers in reasoning related to a portion of system project 302 related to design goals. Alternatively, the IDE development interface may include a controller that allows end users to submit assistance requests to initiate collaboration with experts. Assistance requests may specify specific aspects of system project 302 requiring assistance (e.g., control code routines, visualization screens, device selection or compatibility, specifying industrial equipment configuration, etc.). In some implementations, the agent component 216 can perform additional processing on the assistance request before sending it to a remote support representative. The agent component 216 may perform this additional processing in part based on previously captured knowledge of the end user's automation system under development or the customer's larger plant facility. For example, the agent component 216 may gather additional customer-specific context that can help resolve the design problem for which assistance is requested. Such a scenario may include: additional information about the equipment and / or machines constituting the automation system being developed for system project 302 (e.g., the identity of such equipment and their roles within the industrial system and their functional relationships with each other), other upstream or downstream processes related to the automation system being designed, and their operation that may affect the operation of the new automation system, etc. In response to receiving an assistance request, agent component 216 may select available technical support personnel who are deemed qualified to assist the request—for example, based on information stored in the respective technical support personnel's competency profile indicating each person's training level, area of expertise, and the person's experience with the equipment, etc.—and open a remote communication channel to the selected technical support personnel.
[0104] Once the communication channel is established, technical support personnel can access, view, and modify a selected subset of the customer's system project 302, as well as usage statistics 1004 generated for project 302 by project analysis component 214 (based on project telemetry data 902 extracted from the project by project telemetry component 212). Based on the review of these usage statistics 1004, technical support personnel can submit project recommendations 1106 in the following forms: direct modifications to aspects of the end user's system project 302 (e.g., control code rewriting, device configuration settings, etc.), or design feedback, error correction, guidance on available but unused device features, or other design guidance submitted to the end user recommending certain design modifications. In some implementations, the cloud-based IDE system 202 can also be used as a trusted agent through which technical support personnel can remotely access equipment at the end user's factory facilities, for example, for remotely configuring user equipment, viewing or modifying control programs on industrial controllers, or visual screens on HMI terminals.
[0105] By extracting and analyzing project telemetry data from a customer's control system project 302—including assessing the equipment or assets in use within the control project, the characteristics and capacity utilization of these assets, and other such aspects of the customer's control system design—and generating design recommendations and guidance based on that analysis, the IDE system 202 described herein enables a design feedback loop that assists control system designers in refining and optimizing their control projects based on coded industry expertise, comparisons with peer projects, and knowledge of industry equipment specifications and characteristics.
[0106] Figures 12a to 12b Methods according to one or more embodiments of this application are illustrated. Although the methods shown herein are illustrated and described as a series of actions for the purpose of simplicity, it should be understood and appreciated that the invention is not limited to the order of actions, as some actions may occur in a different order than those shown and described herein and / or occur simultaneously with other actions according to the invention. For example, those skilled in the art will understand and appreciate that the method may alternatively be represented as a series of interrelated states or events, such as in a state diagram. Furthermore, not all actions shown are necessary to implement the method according to the invention. Additionally, interaction diagrams may represent methodologies or approaches according to this disclosure when different entities formulate different parts of the method. Furthermore, two or more of the disclosed example methods may be implemented in combination with each other to achieve one or more features or advantages described herein.
[0107] Figure 12aThe first part of an example method 1200a for generating control design feedback based on analysis of an industrial control project is shown. First, at 1202, industrial design data is received via interaction with an industrial IDE system, where the design data specifies design aspects of the industrial automation system being installed or updated. The industrial design data may be submitted in one or more of the following forms: industrial controller programs (e.g., ladder logic, sequential function charts, script control codes such as industrial DSLs, etc.), HMI screen development inputs, industrial equipment or gear selections, engineering drawing inputs, etc. In some embodiments, the industrial design data may also include complete engineering drawings (e.g., P&ID drawings, electrical drawings, mechanical drawings, etc.), which can be parsed and analyzed by the industrial IDE to identify the components of the industrial automation system being designed (e.g., industrial equipment, machines, gears, conduits, pipes, etc.) and the functional and physical relationships between these components.
[0108] At step 1204, a determination is made regarding whether project development is complete. For example, this determination could be made in response to an instruction from the developer that the automated system project is ready to be parsed and compiled. If development is not complete ("No" at step 1204), the method returns to step 1202. Steps 1202 and 1204 are repeated until development is complete ("Yes" at step 1204), at which point the method proceeds to step 1206.
[0109] At step 1206, the industrial design data received in step 1202 is compiled into a system project comprising one or more executable files, which can be deployed and executed on appropriate industrial equipment to facilitate the monitoring and control of the industrial automation system developed for it. The target industrial equipment to which the executable files can be deployed may include, for example, industrial control equipment (e.g., a PLC or another type of industrial control equipment), human-machine interface terminals, motor drives, or other types of equipment.
[0110] At point 1208, project telemetry data is generated based on the analysis of the control system project. The project telemetry data identifies at least the industrial equipment used in the automation system designed for the system project, as well as the characteristics of the industrial equipment being utilized by the control design.
[0111] At 1210, the project telemetry data generated in step 1208 is analyzed to determine whether a feature that is available but unused in one of the industrial devices could improve the performance metrics of the automation system if it were to be utilized. The available features of the device can be determined by the IDE system based on access to the specification data of the industrial device, which may be stored in a cloud-based vendor repository associated with the device's vendor. The determination of whether utilizing an unused feature could improve performance metrics can be based on the type of industrial application being performed by the automation system, coded expertise about the industrial application, how the unused features of the device could be used in the application's environment, a comparison of the system project with other system projects performing similar industrial applications using the device's features, or other such considerations.
[0112] Then the method proceeds to... Figure 12b The second part, 1200b, is shown. At 1212, if it is determined that an unused feature could improve performance metrics, the method proceeds to step 1214, where a recommendation to modify the system project to utilize the unused features of the industrial equipment is generated. This recommendation can be presented on the development interface of the IDE system, thus providing developers with the opportunity to implement the proposed modifications by submitting further design inputs via the interface. If no unused feature is identified that could improve performance metrics, the method returns to step 1202.
[0113] The embodiments, systems, and components described herein, as well as the control systems and automation environments capable of performing the various aspects set forth in this specification, may include computer or network components capable of interacting across networks, such as servers, clients, programmable logic controllers (PLCs), automation controllers, communication modules, mobile computers, onboard computers for mobile vehicles, wireless components, control components, etc. Computers and servers include one or more processors—electronic integrated circuits that perform logic operations using electrical signals—that are configured to execute instructions stored in media such as random access memory (RAM), read-only memory (ROM), hard disk drives, and removable memory devices, which may include memory sticks, memory cards, flash drives, external hard disk drives, etc.
[0114] Similarly, the term "PLC or automation controller" as used herein can include functionality that can be shared across multiple components, systems, and / or networks. As an example, one or more PLCs or automation controllers can communicate and collaborate with various network devices across a network. This can include virtually any type of controller, communication module, computer, input / output (I / O) device, sensor, actuator, and human-machine interface (HMI) communicating via a network, including control networks, automation networks, and / or public networks. PLCs or automation controllers can also communicate with and control a variety of other devices, such as standard or safety-rated I / O modules including analog modules, digital modules, programmable / intelligent I / O modules, other programmable controllers, communication modules, sensors, actuators, output devices, etc.
[0115] Networks can include public networks such as the Internet, intranets, and automation networks such as Control and Information Protocol (CIP) networks, including DeviceNet, ControlNet, security networks, and Ethernet / IP. Other networks include Ethernet, DH / DH+, remote I / O, fieldbus, Modbus, Profibus, CAN, wireless networks, serial protocols, etc. Additionally, network devices can include a wide variety of possibilities (hardware components and / or software components). These include components such as switches with Virtual Local Area Network (VLAN) capabilities, LANs, WANs, agents, gateways, routers, firewalls, Virtual Private Network (VPN) devices, servers, clients, computers, configuration tools, monitoring tools, and / or other device components.
[0116] In order to provide context for the various aspects of the disclosed topic, Figure 13 and Figure 14 The following discussion is intended to provide a brief, general description of suitable environments in which the various aspects of the disclosed subject matter can be implemented. Although the various embodiments have been described above in the general context of computer-executable instructions that can run on one or more computers, those skilled in the art will recognize that the various embodiments can also be implemented in combination with other program modules and / or as a combination of hardware and software.
[0117] Typically, program modules include routines, programs, components, data structures, etc., that perform specific tasks or implement specific abstract data types. Furthermore, those skilled in the art will understand that the methods of this invention can be practiced with other computer system configurations, including single-processor or multi-processor computer systems, minicomputers, mainframe computers, Internet of Things (IoT) devices, distributed computing systems, and personal computers, handheld computing devices, microprocessor-based or programmable consumer electronics, each of which can be operatively coupled to one or more associated devices.
[0118] The implementations shown herein can also be practiced in a distributed computing environment, where certain tasks are performed by remote processing devices linked via a communication network. In a distributed computing environment, program modules can reside on both local and remote memory storage devices.
[0119] Computing devices typically include various media, which may include computer-readable storage media, machine-readable storage media, and / or communication media, these terms being used herein to distinguish themselves from each other. A computer-readable storage medium or a machine-readable storage medium can be any available storage medium accessible by a computer and includes volatile and non-volatile media, removable media, and non-removable media. By way of example and not limitation, a computer-readable storage medium or a machine-readable storage medium can be implemented using any method or technique for storing information such as computer-readable instructions or machine-readable instructions, program modules, structured data, or unstructured data.
[0120] Computer-readable storage media may include, but are not limited to, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, optical disc read-only memory (CD-ROM), digital versatile disc (DVD), Blu-ray disc (BD) or other optical disc storage devices, magnetic tape cassettes, magnetic tape, disk storage devices or other magnetic storage devices, solid-state drives or other solid-state storage devices, or other tangible and / or non-transitory media that can be used to store desired information. In this regard, the terms “tangible” or “non-transitory” as used herein for storage devices, memories, or computer-readable media should be understood as modifiers that exclude the propagation of transient signals themselves and do not waive rights to all standard storage devices, memories, or computer-readable media that do not merely propagate transient signals themselves.
[0121] Computer-readable storage media can be accessed by one or more local or remote computing devices, for example via access requests, queries or other data retrieval protocols, to perform various operations on the information stored on the media.
[0122] Communication media typically embody computer-readable instructions, data structures, program modules, or other structured or unstructured data in the form of data signals, such as modulated data signals, carrier waves, or other transmission mechanisms, and include any information transmission or delivery medium. The term "modulated data signal" or signal refers to a signal that sets or alters one or more characteristics of its properties in a manner that encodes information in one or more signals. By way of example and not limitation, communication media include wired media such as wired networks or direct wired connections, as well as wireless media such as acoustic, RF, infrared, and other wireless media.
[0123] Refer again Figure 13 An example environment 1300 for implementing various embodiments of the aspects described herein includes a computer 1302, which includes a processing unit 1304, system memory 1306, and a system bus 1308. The system bus 1308 couples system components, including but not limited to system memory 1306, to the processing unit 1304. The processing unit 1304 can be any of a variety of commercially available processors. A dual-microprocessor or other multiprocessor architecture may also be used as the processing unit 1304.
[0124] System bus 1308 can be any of several types of bus architectures, which can also use any of a variety of commercially available bus architectures to interconnect to memory buses (with or without memory controllers), peripheral buses, and local buses. System memory 1306 includes ROM 1310 and RAM 1312. The Basic Input / Output System (BIOS) can be stored in non-volatile memory such as ROM, erasable programmable read-only memory (EPROM), or EEPROM, wherein the BIOS contains basic routines that facilitate the transfer of information between elements within computer 1302, for example, during startup. RAM 1312 may also include high-speed RAM such as static RAM for caching data.
[0125] Computer 1302 also includes an internal hard disk drive (HDD) 1314 (e.g., EIDE, SATA), one or more external storage devices 1316 (e.g., floppy disk drive (FDD) 1316, memory stick or flash drive reader, memory card reader, etc.), and an optical disc drive 1320 (e.g., capable of reading from or writing to CD-ROMs, DVDs, BDs, etc.). Although the internal HDD 1314 is shown as residing within computer 1302, it can also be configured for external use in a suitable chassis (not shown). Additionally, although not shown in environment 1300, a solid-state drive (SSD) can be used in addition to or in place of the HDD 1314. The HDD 1314, external storage devices 1316, and optical disc drive 1320 can be connected to system bus 1308 via HDD interface 1324, external storage interface 1326, and optical drive interface 1328, respectively. The interface 1324 for the external drive implementation may include at least one or both of Universal Serial Bus (USB) and Institute of Electrical and Electronics Engineers (IEEE) 1394 interface technologies. Other external drive connection technologies are considered in the implementations described herein.
[0126] The drive and its associated computer-readable storage medium provide non-volatile storage of data, data structures, computer-executable instructions, etc. For computer 1302, the drive and storage medium are adapted to store any data in a suitable digital format. Although the above description of computer-readable storage media refers to a corresponding type of storage device, those skilled in the art will understand that other types of computer-readable storage media, whether currently existing or developed in the future, may also be used in the example operating environment, and furthermore, any such storage medium may contain computer-executable instructions for performing the methods described herein.
[0127] Multiple program modules can be stored in the drive and RAM 1312, including an operating system 1330, one or more application programs 1332, other program modules 1334, and program data 1336. All or part of the operating system, applications, modules, and / or data can also be cached in RAM 1312. The systems and methods described herein can be implemented using various commercially available operating systems or combinations of operating systems.
[0128] Computer 1302 may optionally include emulation technology. For example, a hypervisor (not shown) or other intermediate program may emulate the hardware environment used for operating system 1330, and the emulated hardware may optionally be different from the hardware used for operating system 1330. Figure 13The hardware is shown in the diagram. In such an implementation, the operating system 1330 may include one of a plurality of virtual machines (VMs) hosted at the computer 1302. Furthermore, the operating system 1330 may provide a runtime environment for the application 1332, such as the Java Runtime Environment or the .NET Framework. A runtime environment is a consistent execution environment that allows the application 1332 to run on any operating system that includes that runtime environment. Similarly, the operating system 1330 may support containers, and the application 1332 may be in the form of a container, which is a lightweight, standalone, executable software package that includes, for example, code, runtime, system tools, system libraries, and settings specific to the application.
[0129] Furthermore, security modules such as Trusted Processing Modules (TPMs) can be used to enable computer 1302. For example, using a TPM, the boot component hashes the next boot component in time and waits for the result to match a security value before loading the next boot component. This process can occur at any level of the code execution stack of computer 1302, such as at the application execution level or at the operating system (OS) kernel level, thereby enabling security at any level of code execution.
[0130] Users can input commands and information into computer 1302 through one or more wired / wireless input devices such as keyboard 1338, touchscreen 1340, and pointing devices such as mouse 1342. Other input devices (not shown) may include microphone, infrared (IR) remote control, radio frequency (RF) remote control, or other remote control, joystick, virtual reality controller and / or virtual reality headset, gamepad, stylus, image input device (e.g., camera), gesture sensor input device, visual motion sensor input device, emotion or face detection device, biometric input device (e.g., fingerprint or iris scanner), etc. These and other input devices are typically connected to processing unit 1304 via input device interface 1344, which can be coupled to system bus 1308, but may also be connected via other interfaces such as parallel port, IEEE 1394 serial port, game port, USB port, IR interface, etc. Interfaces, etc., are connected.
[0131] Monitor 1344 or other types of display devices can also be connected to system bus 1308 via an interface such as video adapter 1346. In addition to monitor 1344, the computer typically includes other peripheral output devices (not shown), such as speakers, printers, etc.
[0132] Computer 1302 can operate in a networked environment via wired and / or wireless communications to one or more remote computers, such as remote computer 1348, using logical connections. Remote computer 1348 can be a workstation, server computer, router, personal computer, portable computer, microprocessor-based entertainment device, peer-to-peer device, or other common network node, and typically includes many or all of the elements described with respect to computer 1302; however, for simplicity, only memory / storage device 1350 is shown. The depicted logical connections include wired / wireless connections to a local area network (LAN) 1352 and / or a larger network such as a wide area network (WAN) 1354. Such LAN and WAN networking environments are common in offices and companies and facilitate enterprise-wide computer networks such as intranets, all of which can connect to global communication networks such as the Internet.
[0133] When used in a LAN networking environment, computer 1302 can connect to local area network 1352 via a wired and / or wireless communication network interface or adapter 1356. Adapter 1356 can facilitate wired or wireless communication to LAN 1352, and LAN 1352 may also include a wireless access point (AP) disposed thereon for communicating with adapter 1356 in wireless mode.
[0134] When used in a WAN networking environment, computer 1302 may include modem 1358, or may be connected to a communication server on WAN 1354 via other means for establishing communication over WAN 1354, such as via the Internet. Modem 1358, which may be internal or external and wired or wireless, may be connected to system bus 1308 via input device interface 1342. In a networking environment, program modules depicted relative to computer 1302 or parts thereof may be stored in remote memory / storage device 1350. It will be understood that the network connection shown is an example, and other means of establishing communication links between computers may be used.
[0135] When used in a LAN or WAN networking environment, in addition to the external storage device 1316 described above, computer 1302 can also access cloud storage systems or other network-based storage systems, or, instead of external storage device 1316 as described above, computer 1302 can access cloud storage systems or other network-based storage systems. Typically, the connection between computer 1302 and the cloud storage system can be established, for example, via adapter 1356 or modem 1358 through LAN 1352 or WAN 1354. When computer 1302 is connected to the associated cloud storage system, external storage interface 1326 can manage the storage provided by the cloud storage system, just as other types of external storage, with the help of adapter 1356 and / or modem 1358. For example, external storage interface 1326 can be configured to provide access to cloud storage sources as if those sources were physically connected to computer 1302.
[0136] Computer 1302 may be operable to communicate with any wireless device or entity operatively arranged wirelessly, such as a printer, scanner, desktop and / or laptop computer, portable data assistant, communications satellite, any equipment or location associated with a wirelessly detectable tag (e.g., kiosk, newsstand, shop shelf, etc.), and telephone. This may include Wi-Fi and Wireless technology. Therefore, communication can be a predefined structure like a conventional network or simply self-organized communication between at least two devices.
[0137] Figure 14This is a schematic block diagram of a sample computing environment 1400 with which the disclosed subject matter can interact. The sample computing environment 1400 includes one or more clients 1402. Clients 1402 can be hardware and / or software (e.g., threads, processes, computing devices). The sample computing environment 1400 also includes one or more servers 1404. Servers 1404 can also be hardware and / or software (e.g., threads, processes, computing devices). For example, server 1404 can accommodate threads to perform transformations by employing one or more implementations described herein. One possible communication between clients 1402 and server 1404 can be in the form of data packets suitable for transfer between two or more computer processes. The sample computing environment 1400 includes a communication framework 1406 that can be used to facilitate communication between clients 1402 and server 1404. Clients 1402 are operatively connected to one or more client data storage devices 1408, which can be used to locally store information on clients 1402. Similarly, server 1404 is operatively connected to one or more server data storage devices 1410, which can be used to locally store information to server 1404.
[0138] The foregoing description includes examples of the invention. It is certainly impossible to describe every conceivable combination of components or methods in order to describe the disclosed subject matter, but those skilled in the art will recognize that many other combinations and arrangements of the invention are possible. Therefore, the disclosed subject matter is intended to cover all such changes, modifications, and variations that fall within the spirit and scope of the appended claims.
[0139] In particular, and with regard to the various functions performed by the components, devices, circuits, systems, etc., described above, unless otherwise stated, the terminology used to describe such components (including references to "means") is intended to correspond to any component that performs the specific function of the described component (e.g., any functionally equivalent component), even if it is not structurally equivalent to the disclosed structure, the component still performs the functions of the exemplary aspects of the disclosed subject matter shown herein. In this regard, it will also be appreciated that the disclosed subject matter includes systems and computer-readable media having computer-executable instructions for actions and / or events of various methods for performing the disclosed subject matter.
[0140] Furthermore, while a particular feature of the disclosed subject matter may be disclosed only for one of several implementations, such features may be combined with one or more other features of other implementations, which may be desirable and advantageous for any given application or particular application. Moreover, with regard to the use of the terms "includes" and "including" and their variations in the detailed description or claims, these terms are intended to be inclusive in a manner similar to the term "comprising."
[0141] In this application, the word "exemplary" is used to indicate that it is used as an example, instance, or illustration. Any aspect or design described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, the use of the word "exemplary" is intended to present the concept in a concrete manner.
[0142] The various aspects or features described herein can be implemented as methods, apparatus, or articles of art using standard programming and / or engineering techniques. As used herein, the term "article of art" is intended to encompass any computer program accessible from any computer-readable device, carrier, or medium. For example, computer-readable media may include, but are not limited to: magnetic storage devices (e.g., hard disks, floppy disks, magnetic stripes…), optical discs (e.g., compact discs (CDs), digital versatile discs (DVDs)…), smart cards, and flash memory devices (e.g., cards, sticks, key drives…).
Claims
1. A system for providing design guidance for industrial control systems, comprising: Memory, the memory storing executable components; as well as A processor, operatively coupled to the memory, executes the executable component, the executable component comprising: User interface component, configured to present an integrated development environment (IDE) interface and receive design input via interaction with the IDE interface, the design input defining aspects of control items for monitoring and controlling industrial systems; A project generation component is configured to generate system project data based on the design input, the system project data including at least one of an executable industrial control program, an industrial visualization application, or industrial equipment configuration data. A project telemetry component is configured to generate project telemetry data based on a first analysis of system project data, the project telemetry data identifying industrial equipment used by the controlled project and characteristics of the industrial equipment used by the controlled project; and A project analysis component, configured to perform the following operations based on a second analysis performed on the project telemetry data: Retrieve digital device profiles from one or more vendor repositories, including a generic digital representation of the industrial equipment identified by the project's telemetry data, and The digital device profile is converted into a custom asset model representing industrial equipment configured by the system project data, wherein the custom asset model generates a digital twin capable of simulating the industrial system. The project telemetry data also identifies unused, usable features of the industrial equipment, and The project analysis component is further configured to: predict whether the use of an unused available feature of an industrial device, the use of multiple unused available features of the industrial device, will improve the performance metrics of the industrial system, and generate recommendations for modifying the control project to utilize the unused available features.
2. The system according to claim 1, wherein, The project analysis component is configured to predict whether the use of the unused available features will improve the performance metric based on at least one of the following: a reference to the supplier specifications of the industrial equipment, or a comparison of the control item with other control items used to monitor and control industrial systems similar to the industrial system.
3. The system according to claim 1, wherein, The project analysis component is also configured to: Based on the second analysis, it is determined that the control item will cause one of the industrial devices to operate near or above its rated resource capacity. Generate recommendations to replace one of the industrial devices with alternative industrial devices that have a larger resource capacity than one of the industrial devices.
4. The system according to claim 3, wherein, The rated resource capacity is at least one of memory capacity, processing capacity, or I / O capacity.
5. The system according to claim 1, wherein, The project analysis component is also configured to generate usage statistics for a subset of industrial equipment specific to the equipment supplier based on the second analysis, and to present the usage statistics accessible to the equipment supplier.
6. The system according to claim 5, wherein, The usage statistics include at least one of the following: an indication of which products of the equipment supplier are being used by the control project, an indication of which features of the equipment supplier's products are being used by the control project, and an indication of the resource capacity used by the equipment supplier's products.
7. The system according to claim 1, wherein, The project analysis component is also configured to generate usage statistics for the industrial equipment based on the second analysis. These usage statistics include at least one of the following: the identity of the industrial equipment used by the controlled project, characteristics of the industrial equipment used by the controlled project, unused availability characteristics of the industrial equipment, or the resource utilization rate of the industrial equipment by the controlled project. The executable component also includes a collaboration management component configured to send the usage statistics to a technical support entity.
8. The system according to claim 7, wherein, The collaborative management component is also configured to send the usage statistics together with error frequency data indicating the frequency of operational errors in the industrial system.
9. A method for providing design guidance for industrial control systems, comprising: The integrated development environment (IDE) interface is presented on the client device by the system, which includes the processor. The system receives industrial design input from the client device via interaction with the IDE interface. The industrial design input defines aspects of control items used for monitoring and controlling the industrial system. The system generates system project data based on the industrial design input, and the system project data includes at least one of executable industrial control programs, industrial visualization applications, or industrial equipment configuration data. The system generates project telemetry data based on a first analysis of the system's project data, the project telemetry data identifying the industrial equipment used by the controlled project and the characteristics of the industrial equipment used by the controlled project; The system performs a second analysis based on the project telemetry data to retrieve digital device profiles from one or more vendor repositories, the digital device profiles including generic digital representations of industrial equipment identified by the project telemetry data; as well as The system converts the digital device profile into a customized asset model representing industrial equipment configured by the system's project data, wherein the customized asset model generates a digital twin capable of simulating the industrial system. The project telemetry data also identifies unused, usable features of the industrial equipment, and The method further includes: The system determines, based on the second analysis, whether the use of one unused available feature of the industrial equipment, or the use of multiple unused available features of the industrial equipment, will improve the performance metrics of the industrial system. Generate recommendations that modify the control items to utilize unused available features.
10. The method according to claim 9, wherein, The determination includes determining whether the use of the unused available feature will improve the performance metric based on at least one of the following: reference to the supplier specifications of the industrial equipment, or a comparison of the control item with other control items used to monitor and control industrial systems similar to the industrial system.
11. The method of claim 9, further comprising: The system determines, based on the second analysis, that the control item will cause one of the industrial devices to operate near or above its rated resource capacity. The system generates recommendations to replace one of the industrial devices with alternative industrial devices that have a larger resource capacity than one of the industrial devices.
12. The method according to claim 11, wherein, The rated resource capacity is at least one of memory capacity, processing capacity, or I / O capacity.
13. The method of claim 9, further comprising: The system generates usage statistics for a subset of industrial equipment specific to the equipment supplier based on the second analysis. The system presents usage statistics that can be accessed by the equipment supplier.
14. The method according to claim 13, wherein, The usage statistics include at least one of the following: an indication of which products of the equipment supplier are being used by the control project, an indication of which features of the equipment supplier's products are being used by the control project, and an indication of the resource capacity used by the equipment supplier's products.
15. The method of claim 9, further comprising: The system generates usage statistics for the industrial equipment based on the second analysis. These statistics include at least one of the following: the identity of the industrial equipment used by the controlled project, characteristics of the industrial equipment used by the controlled project, unused availability characteristics of the industrial equipment, or the resource utilization rate of the industrial equipment by the controlled project. The system then sends the usage statistics to the technical support entity.
16. The method according to claim 15, wherein, The sending includes sending the usage statistics and error frequency data indicating the frequency of operational errors in the industrial system to the technical support entity.
17. A non-transitory computer-readable medium storing instructions that, in response to execution, cause a system including a processor to perform operations, the operations including: Presents the integrated development environment (IDE) interface on client devices; Industrial design input received from the client device is received via interaction with the IDE interface. This industrial design input defines aspects of control items used for monitoring and controlling industrial systems. System project data is generated based on the industrial design input, and the system project data includes at least one of executable industrial control programs, industrial visualization applications, or industrial equipment configuration data. Project telemetry data is generated based on a first analysis of the system project data, and the project telemetry data identifies the industrial equipment used by the controlled project and the characteristics of the industrial equipment used by the controlled project. Based on a second analysis performed on the project telemetry data, digital device profiles are retrieved from one or more vendor repositories, the digital device profiles including generic digital representations of industrial equipment identified by the project telemetry data; as well as The digital device profile is converted into a custom asset model representing industrial equipment configured by the system project data, wherein the custom asset model generates a digital twin capable of simulating the industrial system. The project telemetry data also identifies unused, usable features of the industrial equipment, and The operation also includes: Based on the second analysis, it is determined whether the use of one unused available feature of the industrial equipment, or the use of multiple unused available features of the industrial equipment, will improve the performance metrics of the industrial system. Generate recommendations that modify the control items to utilize unused available features.
Citation Information
Patent Citations
Predictive maintenance for industrial products using big data
US20140336791A1
Industrial simulation using redirected I / O module configurations
US20150019191A1
Development environment for a safety relay configuration system
US20150186118A1
Industrial automation recommendation engine
US20200103877A1
Design assistance device, design assistance method, and design assistance program
WO2021149116A1