Patent Description:
Machine learning algorithms are designed to recognize patterns and automatically improve through training and the use of data. Examples of machine learning algorithms include artificial neural networks, nearest neighbor methods, gradient-boosted trees, ensemble random forests, support vector machines, naive Bayes methods, and linear regressions. A machine learning algorithm comprises an input layer and an output layer, wherein complex analyzation takes places between the two layers. Various training methods are used to train machine learning algorithms wherein an algorithm is continually updated and optimized until a satisfactory model is achieved. One advantage of machine learning algorithms is their ability to learn by example, rather than needing to be manually programmed to perform a task, especially when the tasks would require a near-impossible amount of programming to perform the operations in which they are used. Unfortunately, machine learning systems are not effectively or efficiently integrated into the programming systems of industrial manufacturing environments. <CIT> discloses an industrial control programming development platform which simplifies generation of an industrial control program and associated tag definitions by generating at least a portion of the control program and tag definitions based on analysis of digital engineering drawings of an automation system to be monitored and controlled. The drawing-based program generation includes creation and configuration of smart data tags that model and contextualize controller data at the device level for processing by higher level analytic systems. The device-level contextualization can be based in part on inferences drawn from the digital engineering drawings. It is the object of the present invention to improve integration of machine learning models into industrial automation environments.

This Overview is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description.

According to the invention a system for making machine learning systems available to users of a design application of an industrial automation environment according to claim <NUM> is provided.

According to the invention a method to make machine learning systems available to users of a design application of an industrial automation environment according to claim <NUM> is provided.

According to the invention a non-transitory computer-readable medium stored thereon instructions to make machine learning systems available to users of a design application of an industrial automation environment according to claim <NUM> is provided.

The components in the drawings are not necessarily drawn to scale.

The drawings have not necessarily been drawn to scale. Similarly, some components or operations may not be separated into different blocks or combined into a single block for the purposes of discussion of some of the embodiments of the present technology. Moreover, while the technology is amendable to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and are described in detail below.

The following description and associated figures teach the best mode of the invention. For the purpose of teaching inventive principles, some conventional aspects of the best mode may be simplified or omitted. The following claims specify the scope of the invention.

Various embodiments of the present technology generally relate to solutions for integrating machine learning models into industrial automation environments. More specifically, embodiments of the present technology include systems and methods for surfacing machine learning models in programming environments for use in control programs. Generally, industrial control programs provide instructions for controlling and performing certain operations within an industrial environment via controllers like Programmable Logic Controllers (PLCs). The controllers execute the control code to control downstream devices, machinery, and automated processes.

The present technology serves to enhance industrial control by enabling the use of machine learning models within control programs for more advanced control. Industrial automation environments often fail to effectively integrate machine learning models into the design environment of industrial automation systems. In an implementation of the present technology, machine learning models may be made available to programmers in the industrial programming environment. Programming environments allow a programmer to "drag and drop" program tags that represent industrial assets into a control program. The program tags correspond to machinery in an automated process, machine settings, machine operations, and the like. The programmer can connect the tags to one another to construct a control program designed to implement an automated industrial process.

In accordance with the present disclosure, machine learning models may be connected with other elements within the industrial automation environment like design application servers in the programming environment or PLCs. In an embodiment, a programming environment may receive a user selection of a programming tag. In response, the programming environment may identify, and surface machine learning models related to the selected programming tag. For example, a tag selection may comprise a temperature sensor in an industrial automation process. The programming environment may identify a machine learning model that ingests data from the temperature sensor that is monitoring the temperature delta of a heat exchanger process as related to the selected tag. The programming environment surfaces a program tag for the identified machine learning model. The identified machine learning program tags may be integrated into an existing control program to utilize machine learning functionality in the control program.

In another example, a design application in a programming environment may generate a control program. The program may comprise a set of program tags the comprise control code configured for ingestion by a PLC. The design application may receive user input that selects a one of the program tags in the control program. The selection may indicate a command to optimize or make some type of change to the target variable represented by the selected program tag. For example, the target variable may comprise vessel pressure and the selected tag may comprise control code that monitors the vessel pressure. The design application may interface with a machine learning model and/or a data repository to identify machine learning models and data pipelines that are related to the selected program tag. The design application may present program tags represented the identified models and pipelines to a user and modify the control program using the program tags in response to user input.

In accordance with the present disclosure, a machine learning model comprises one or more machine learning algorithms that are trained based on historical data and/or other types of training data. A machine learning model may employ one or more machine learning algorithms through which data can be analyzed to identify patterns, make decisions, make predictions, or similarly produce output that can inform control code and/or parameters. Examples of machine learning algorithms that may be employed solely or in conjunction with one another include artificial neural networks, nearest neighbor methods, ensemble random forests, support vector machines, naive Bayes methods, linear regressions, or similar machine learning techniques or combinations thereof capable of predicting output based on input data. Determining which machine learning methods to use may depend on the specific purpose or functions required in a particular industrial setting. In some examples, the outputs and inputs of machine learning models are used to correlate models with programming tags in a design application of a programing environment.

Machine learning models may be deployed on premises in an industrial automation environment or off-site. For example, the machine learning model may be implemented in a data science environment and have a live connection with a programming environment configured to generate control programs. Machine learning models inherently have a useful lifecycle as the environment around it changes. Over time, the models become ubiquitous and can, in essence, wear out, just like any other machine or sensor on an industrial line. Thus, the machine learning assets disclosed herein may be periodically replaced and/or retrained to maintain the integrity of machine learning outputs.

To accompany the use of control program integrated models, corresponding faceplates, displays, Graphical User Interfaces (GUIs), and the like are contemplated herein to provide intuitive representations and interfaces to for surfacing machine learning models. A GUI may comprise basic controls and/or visuals relevant to generating the control program for implementation in an industrial automation environment. In this manner, machine learning can be brought into the programming environment. For example, a programmer may interact with a GUI to perform a task such as making tag selections, reviewing machine learning model tags, integrating surfaced machine learning tags into control programs, and/or other types of interactions. The GUI may also be useful for performing tasks such as offsetting parameters, providing inputs, tuning parameters of the model, overriding the model, checking the status of the model, or instantiating new models and data pipelines.

Now referring to the Figures, <FIG> illustrates industrial automation environment <NUM> to surface machine learning systems in a design application of the industrial automation environment. Industrial automation environment <NUM> performs services like factory automation, factory control, machine control, smart manufacturing, machine communication and organization, and the like. Industrial automation environment <NUM> comprises programming environment <NUM>, machine learning models <NUM>-<NUM>, industrial process <NUM>, and industrial devices <NUM>-<NUM>. Programming environment <NUM> comprises computing device <NUM>, user interface <NUM>, and control program <NUM>. Control program <NUM> comprises selected tag <NUM> and available models <NUM> displayed on user interface <NUM>. In other examples, industrial automation environment <NUM> may include fewer or additional components than those illustrated in <FIG>. Likewise, the illustrated components of industrial automation environment <NUM> may include fewer or additional components, assets, or connections than shown. Each of computing device <NUM>, user interface <NUM>, and/or machine learning models <NUM>-<NUM> may be representative of a single computing apparatus or multiple computing apparatuses.

Computing device <NUM> comprises one or more computing apparatuses configured to host an application(s) to generate control program <NUM>, to interface with models <NUM>-<NUM>, and to interface with industrial process <NUM>. It should be appreciated that the specific number of applications/modules hosted by computing device <NUM> is not limited. Exemplary applications hosted by computing device <NUM> to generate control program <NUM> include Studio <NUM>® and the like. Control program <NUM> comprises selected tag <NUM> and available models <NUM>. Control program <NUM> is representative of machine instructions that direct the operations of industrial process <NUM>. Control program <NUM> may comprise a functional block diagram, ladder logic, or some other type of machine instructions. Computing device <NUM> may transfer control program <NUM> to industrial devices <NUM>-<NUM> to implement and control the industrial process <NUM>. Selected tag <NUM> corresponds to a program instruction for one of industrial devices <NUM>-<NUM>. For example, selected tag <NUM> may comprise instructions that direct a motor of industrial device <NUM>-<NUM> to start, correspond to an output variable like temperature in process <NUM>, or represent some other type of operation, input, and/or output of process <NUM>. In some examples, control program <NUM> comprises additional program tags that correspond to additional program instructions. Available models <NUM> comprises a display feature that indicates a set of machine learning models associated with the underlying variable represented by selected tag <NUM>. For example, selected tag may represent output power of industrial device <NUM>. Models <NUM>-<NUM> may ingest machine learning inputs associated with the output power. The design application hosted by computing device <NUM> may query models <NUM>-<NUM> to determine that they ingest machine learning inputs associated with the output power. The design application may display available models <NUM> which list models <NUM>-<NUM> along with model attributes like Identity (ID) numbers, model types, and the like.

Computing device <NUM> is coupled to user interface <NUM>. User interface <NUM> comprises displays, keyboards, touchscreens, tablet devices, mobile user equipment, and the like. User interface <NUM> displays a Guided User Interface (GUI) that allows a user to interact with the application(s) hosted by computing device <NUM>, including the design application configured to generate control program <NUM>. A user may interact with the GUI via user interface <NUM> to generate control program <NUM>. For example, a user may select, drag-and-drop, or perform some type of action via user interface <NUM> to construct control program <NUM>.

Machine learning model <NUM>-<NUM> are representative of any machine learning models implemented within industrial automation environment <NUM> as described herein. Machine learning models <NUM>-<NUM> are configured to ingest process data generated by industrial devices <NUM>-<NUM> and generate machine learning outputs to affect the operation of devices <NUM>-<NUM> to optimize industrial process <NUM>. For example, the outputs may comprise suggestions to optimize the operation of devices <NUM>-<NUM>. Machine learning models <NUM>-<NUM> may be hosted by one or more machine learning repositories. The repositories may comprise computing systems configured to implement models <NUM>-<NUM>. The repositories may comprise application specific processing systems purpose built for machine learning implementations. Models <NUM>-<NUM> may be trained using input data generated from by computing device <NUM>, industrial devices <NUM>-<NUM>, storage system <NUM>, external sources, and/or some other type of training source. Models <NUM>-<NUM> are coupled to industrial devices <NUM>-<NUM> in process <NUM>. For example, model <NUM> may comprise industrial ethernet communication links with devices <NUM>-<NUM>.

Programming environment <NUM> is functionally coupled to industrial process <NUM>. For example, computing device <NUM> may be functionally coupled to a Programmable Logic Controller (PLC) that implements control programs to control industrial process <NUM>. Industrial process <NUM> is representative of a manufacturing, chemical production, food processing, or any other type of industrial process. Industrial devices <NUM>-<NUM> are representative of machines configured to carry out industrial process <NUM>. Industrial devices <NUM>-<NUM> are representative of pumps, motors, heat exchanges, reactors, food processing systems, or any other type of industrial device. Typically, the type of machines represented by industrial devices <NUM>-<NUM> depend in part on the type of process that industrial process <NUM> is representative of. Industrial devices <NUM>-<NUM> receive machine instructions generated in programming environment <NUM> and operate in response to the instructions to implement industrial process <NUM>. For example, industrial devices <NUM>-<NUM> may receive control signaling from a PLC and operate in response to the control signaling to implement industrial process <NUM>. The control signaling drives actuators in industrial devices <NUM>-<NUM> that dictate the operations of industrial devices <NUM>-<NUM>. For example, the control signaling may correspond to an actuator setting that sets a motor speed in industrial device <NUM> to a desired value. As industrial devices <NUM>-<NUM> operate in response to the control signaling, they generate process data which characterizes their operations. Industrial devices <NUM>-<NUM> transfer the process data that they generate to for delivery to machine learning models <NUM>-<NUM> to receive machine learning feedback.

Programming environment <NUM>, models <NUM>-<NUM>, and devices <NUM>-<NUM> communicate over various communication links using communication technologies like industrial ethernet, Institute of Electrical and Electronic Engineers (IEEE) <NUM> (ENET), IEEE <NUM> (WIFI), Bluetooth, Time Division Multiplex (TDM), Data Over Cable System Interface Specification (DOCSIS), Internet Protocol (IP), General Packet Radio Service Transfer Protocol (GTP), and/or some other type of wireline and/or wireless networking protocol. The communication links comprise metallic links, glass fibers, radio channels, or some other communication media. The links use ENET, WIFI, virtual switching, inter-processor communication, bus interfaces, and/or some other data communication protocols.

Computing device <NUM>, user interface <NUM>, machine learning model repository <NUM>, storage system <NUM>, and industrial devices <NUM>-<NUM> comprise microprocessors, software, memories, transceivers, bus circuitry, and the like. The microprocessors comprise Central Processing Units (CPU), Graphical Processing Units (GPU), Application-Specific Integrated Circuits (ASIC), and/or the like. The memories comprise Random Access Memory (RAM), flash circuitry, disk drives, and/or the like. The memories store software like operating systems, user applications, radio applications, and network functions. The microprocessors retrieve the software from the memories and execute the software to drive the operation of industrial automation environment <NUM> as described herein.

In some examples, industrial automation environment <NUM> implements process <NUM> illustrated in <FIG>. It should be appreciated that the structure and operation of industrial automation environment <NUM> may differ in other examples.

<FIG> illustrates process <NUM>. Process <NUM> comprises a machine learning surfacing process in a design application of the industrial automation environment. Program <NUM> may be implemented in program instructions in the context of any of the software applications, module components, or other such elements of one or more computing devices. The program instructions direct the computing device(s) to operate as follows, referred to in the singular for the sake of clarity.

In operation, process <NUM> begins by generating a control program configured for implementation by a Programmable Logic Controller (PLC) (step <NUM>). The operation continues by receiving a user input that selects a program tag that represents a target variable in an industrial automation process (step <NUM>). The operation continues by identifying, in response to the user selection, one or more machine learning models associated with the target variable (step <NUM>). The operation continues by displaying the one or more machine learning models (step <NUM>). The operation continues by receiving a user input that selects one or the one or more machine learning models (step <NUM>). The operation continues by integrating, in response to the user selection, another program tag that represents the selected machine learning model into the control program (step <NUM>).

Referring back to <FIG>, industrial automation environment <NUM> includes a brief example of process <NUM> as employed by one or more applications hosted programming environment <NUM>. In operation, a design application hosted by computing device <NUM> generates control program <NUM> that is configured for implementation by a PLC (step <NUM>). For example, the design application may receive user inputs via user interface <NUM> and responsively generate control program <NUM> based on the user inputs. The user inputs may comprise clicks, drag-and-drop actions, touch screen inputs, keyboard inputs, and the like. Control program <NUM> comprises a set of program tags, including selected tag <NUM>. The program tags comprise control code that drive the operation of industrial process <NUM>. For example, industrial process <NUM> may comprise a PLC. The PLC may be configured to ingest and execute control program <NUM> to control the operation of industrial devices <NUM>-<NUM>. The design application receives a user input via user interface <NUM> that selects one of the program tags of control program <NUM> (step <NUM>). The design application displays user selection as selected tag <NUM> on user interface <NUM>. Selected tag <NUM> represents a target variable in industrial process <NUM>. For example, selected tag <NUM> may represent the pressure in industrial device <NUM>.

In response to the user selection of selected tag <NUM>, the design application hosted by computing device <NUM> identifies one or more machine learning models associated with the target variable (step <NUM>). The design application may access a data storage system stores correlations machine learning models in environment <NUM> with variables of industrial devices <NUM>-<NUM>. For example, the design application may determine the target variable represented by selected tag <NUM>. The design application may then access the data storage system and retrieve the correlations to determine ones of machine learning models <NUM>-<NUM> associated with the target variable. The association may comprise machine learning inputs, machine learning outputs, and the like. For example, the target variable may comprise the temperature of device <NUM> and machine learning model <NUM> may ingest machine learning inputs that represent the temperature of device <NUM>.

After identifying the associated ones of models <NUM>-<NUM>, the design application displays the identified machine learning models on user interface <NUM> as available models <NUM> (step <NUM>). The design application may utilize animations, visuals, text, pictures, and the like to indicate the identified machine learning models. The display may further comprise information like model ID, model location, model type, and the like describing the identified machine learning models. For example, the design application may display information regarding indication that model <NUM> generates machine learning predictions for the target variable of selected tag <NUM>.

The design application receives a user input that selects one of the identified machine learning models displayed in available models <NUM> on user interface <NUM> (step <NUM>). For example, the design application may receive the user selection via a user generate mouseclick on user interface <NUM>. In response to the user selection, the design application integrates a program tag representing the selected machine learning model into control program <NUM> (step <NUM>). For example, the program tag may drive a PLC executing control program <NUM> to call the machine learning model represented by the program tag to receive machine learning feedback.

Advantageously, industrial automation environment <NUM> effectively surfaces machine learning model tags for use in a control program to implement an industrial process. Moreover, computing device <NUM> efficiently determines relationships between a selected tag in the control program and machine learning models in industrial automation environment <NUM>.

<FIG> illustrates an industrial automation environment <NUM> to surface machine learning systems in a design application of the industrial automation environment. Industrial automation environment <NUM> comprises an example of industrial automation environment <NUM>, however environment <NUM> may differ. Industrial automation environment <NUM> comprises programming environment <NUM>, Programmable Logic Controller (PLC) <NUM>, industrial automation process <NUM>, Original Equipment Manufacture (OEM) devices <NUM>-<NUM>, data pipelines <NUM>-<NUM>, and data science environment <NUM>. Programming environment <NUM> comprises server <NUM>, application <NUM>, user interface <NUM>, control program <NUM>, and machine learning (ML) model tags <NUM>. Control program <NUM> comprise program tags <NUM>-<NUM> and is representative of a ladder logic diagram configured for ingestion by PLC <NUM>. Machine learning model tags <NUM> comprises machine learning tags <NUM>-<NUM> and is representative of available machine learning program tags that may be integrated into control program <NUM>. Data science environment <NUM> comprises data center <NUM>, servers <NUM>-<NUM>, and machine learning model <NUM>-<NUM>.

Programming environment <NUM> is representative of one or more computing devices integrated into a network configured to generate control programs for industrial automation environment <NUM> and that communicate with data science environment <NUM>. Programming environment <NUM> comprises server <NUM>. Server <NUM> comprises one or more computing device configured to host application <NUM>. The one or more computing devices that comprise server <NUM> comprise processors, bus circuitry, storage devices, software, and the like. The processors may comprise Central Processing Units (CPUs), Graphical Processing Units (GPUs), Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), and the like. The storage devices comprise flash drives, Random Access Memory (RAM), Hard Disk Drives (HDDs), Solid State Drives (SSDs), Non-Volatile Memory Express (NVMe) SSDs, and the like. The storage devices store the software like application <NUM>. The processors may retrieve and execute software stored on the storage devices to drive the operation of application <NUM>.

Application <NUM> is representative of one or more design applications, machine learning interface applications, user interface applications, operating systems, modules, and the like. Application <NUM> is configured to receive user inputs via user interface <NUM>, generate control program <NUM>, and surface machine learning model tags <NUM> based on the user inputs and/or other types of inputs. For example, application <NUM> may surface machine learning model tags <NUM>-<NUM> in response to a user selection of one of program tags <NUM>-<NUM>.

User interface <NUM> is representative of a display that provides a graphical representation of application <NUM>. The graphical representation may include one or more visual indicators relevant to control program <NUM> and model tags <NUM>, such as visual indicators of visual code blocks, ladder logic, code chunks, functional block diagrams, machine learning optimizations, and/or other types of visual indictors. User interface <NUM> may comprise a faceplate for viewing or use by an operator or similar user within programming environment <NUM>. User interface <NUM> may include a computer, a mobile device, a kiosk, a touchscreen device, a Human Machine Interface (HMI) or some other type of computing device capable of performing the user interface functions described herein. A user may interact with application <NUM> via user interface <NUM> to generate control program <NUM>. Upon generation of control program <NUM>, application <NUM> may identify machine learning tags <NUM>-<NUM> and present tags <NUM>-<NUM> on user interface <NUM>. For example, a user may identify the variable represented by tag <NUM> as a target variable and select tag <NUM>. In response, application <NUM> may determine machine learning tags <NUM>-<NUM> are associated (e.g., machine learning input/output) with the target variable and display tags <NUM>-<NUM> on user interface <NUM>.

In some examples, application <NUM> may display other types of program tags associated with a selected target variable on user interface <NUM>. Application <NUM> may display program tags for process variables in industrial automation process <NUM> that are related to the target variable selected by a user. For example, the target variable identified by a user may comprise a conveyer belt speed of OEM device <NUM> and application may display a units produced program tag on user interface <NUM>. Application <NUM> may present program tags for data pipelines that communicatively connect industrial automation process <NUM> to machine learning models <NUM>. For example, the target variable identified by a user may comprise a process output of OEM device <NUM> that is consumed as a machine learning input by model <NUM> and application may display a program tag representing pipeline <NUM>.

In some examples, application <NUM> may present user options to generate new data pipelines and new machine learning models on user interface <NUM>. For example, the target variable selected by a user may not be associated with any machine learning models or data pipelines. In response, user interface <NUM> may present selectable options on user interface <NUM> to instantiate new data pipelines and new machine learning models for the selected target variable. In response to a user selection to generate a new model and or new pipeline, application <NUM> may retrieve or generate feature vectors representing the target variable of the selected program tag. Generating feature vectors may comprise a feature extraction process that creates a numerical representation of an object (e.g., the target variable). Application <NUM> may train a machine learning model using the feature vectors and direct data center <NUM> to instantiate the new model. Once the model is trained and instantiated, application <NUM> may present and integrate program tag representing the new machine learning model into control program <NUM>.

In addition to generating new machine learning models, application <NUM> may instantiate new data pipelines to create data connections between the data sources for the target variable (e.g., OEM devices <NUM>-<NUM>), and a data target for the target variable (e.g., models <NUM>-<NUM>). For example, application <NUM> may determine that model <NUM> is related to the target variable of the program tag selected by the user and also determine that model <NUM> lacks a data connection with a data source for the target variable. In response, application <NUM> may present a user selectable option on user interface <NUM> to instantiate a new data pipeline between the data source and the model <NUM>. A user may select the option on user interface <NUM> and application <NUM> may responsively instantiate a data pipeline between PLC <NUM> and model <NUM> to create the data connection.

Server <NUM> and is communicatively coupled to PLC <NUM>. PLC <NUM> comprises one or more computing devices configured to receive and execute control code to generate control signaling for OEM devices <NUM>-<NUM>. PLC <NUM> controls the automated and coordinated operation of industrial process <NUM>. PLC <NUM> may implement control program that may be designed using any number of programming tools in an integrated design environment such as text-based coding, functional block diagrams, ladder logic, graphics-based programming, or other types of programming interfaces. The control program may be designed or programmed on a design computer running an integrated design environment (e.g., application <NUM>), then transmitted or uploaded to PLC <NUM>. Alternatively, the control program may be implemented with a system of hardware connections in the PLC or in programmable PLC modules by which a PLC can be upgraded to add more control capacity as its industrial automation process grows in sophistication.

PLC <NUM> controls OEM devices <NUM>-<NUM> by sending the control signaling over one or more data channels that support synchronous or asynchronous to implement industrial process <NUM>. Industrial process <NUM> may comprises a process for manufacturing goods but may also comprise processes occurring within a utility plant (e.g., an electrical power plant), research or laboratory facility (e.g., a sample testing or processing facility), processes occurring within a food processing facility (e.g., a cattle processing plant), or any other suitable industrial automated environment. OEM devices <NUM>-<NUM> comprise factory or industrial machinery or manufacturing equipment such as conveyor belts or other conveyance mechanisms, robotic devices or other automated or programmable devices, packaging devices including boxing, capping, and sealing equipment, processing equipment, mixers, filling stations, quality control equipment, and other devices associated with manufacturing or other industrial processes.

PLC <NUM> comprises one or more computing devices. The one or more computing devices of PLC <NUM> comprise processors, bus circuitry, storage devices, software, and the like. The processors may comprise CPUs, GPUs, ASICs, FPGAs, and the like. The storage devices comprise flash drives, RAM, HDDs, SSDs, NVMe SSDs, and the like. The storage devices store the software. The processors may retrieve and execute software stored on the storage devices to drive the operation of PLC <NUM>.

Industrial automation process <NUM> is representative of a manufacturing process, chemical production process, food processing process, or any other type of industrial process. Although industrial automation process <NUM> is depicted with six industrial devices, in other examples automated systems may comprise a different number of industrial devices. OEM devices <NUM>-<NUM> may comprise devices like pumps, compressors, heat exchanges, centrifuges, mills, conveyers, filters, and the like. OEM devices <NUM>-<NUM> may comprise subcomponents (not illustrated for clarity) like motors, valves, electrical circuitry, processing circuitry, storage circuitry, transceivers, machined parts, and the like.

OEM devices <NUM>-<NUM> are coupled to PLC <NUM>. PLC <NUM> transfers control signaling generated by the execution of control program <NUM> to OEM devices <NUM>-<NUM> to implement industrial automation process <NUM>. OEM devices <NUM>-<NUM> receive their respective control signaling and responsively operate according to the instructions. For example, OEM device <NUM> may comprise an electric motor to drive a pump. PLC <NUM> may execute the control program (e.g., control program <NUM>) and determine a current level to power the electric motor at to achieve a desired pressure differential in the pump. PLC <NUM> may transfer control signaling to the motor in OEM device <NUM>. Actuators in the motor of OEM device <NUM> may receive the control signaling and apply the indicated current level to achieve the necessary power level for the electric motor to drive the motor at the speed necessary to achieve the desired pressure differential.

As OEM devices <NUM>-<NUM> operate based on control signaling received from PLC <NUM>, they generate process data that characterizes their operations. The process data indicates the status of variables, operations, and/or processes of OEM devices <NUM>-<NUM>. OEM devices <NUM>-<NUM> report their operational process data to PLC <NUM>. For example, OEM <NUM> may comprise a ball mill and may report its rotations per minute to PLC <NUM> as process data.

Data pipelines <NUM>-<NUM> comprise data transfer systems that communicatively couple OEM devices <NUM>-<NUM> with data science environment <NUM>. For example, data pipelines <NUM>-<NUM> may be coupled to PLC <NUM> to transfer process data generated by OEM devices <NUM>-<NUM> for delivery to machine learning models <NUM>-<NUM>. Data pipelines <NUM>-<NUM> comprise a set data processing elements connected in series. The data processing elements comprise processors, bus circuitry, storage devices, software, and the like. The processors may comprise CPUs, GPUs, ASICs, FPGAs, and the like. The storage devices comprise flash drives, RAM, HDDs, SSDs, NVMe SSDs, and the like. The storage devices store the software. The processors may retrieve and execute software stored on the storage devices to drive the operation of data pipelines <NUM>-<NUM>.

Data pipelines <NUM>-<NUM> transfer process data generated by OEM devices <NUM>-<NUM> for delivery to machine learning models <NUM>-<NUM>. Data pipelines <NUM>-<NUM> may perform processing operations on the data prior to reception by machine learning models <NUM>-<NUM>. For example, data pipeline <NUM> may receive raw process data, implement a feature extraction process on process data to generate feature vectors that represent the process data, and transfer the feature vectors to server <NUM> for delivery to machine learning model <NUM>. Data pipelines <NUM>-<NUM> may correspond to tags within control programming environment <NUM>. For example, data pipeline <NUM> may correspond to tag <NUM>-<NUM>. In some examples, application <NUM> instantiates ones of data pipelines <NUM>-<NUM> in response to a user input via user interface <NUM>.

Data science environment <NUM> comprises data center <NUM>. Data center <NUM> is representative of one or more computing devices integrated into a network that communicates with programming environment <NUM>, PLC <NUM>, and/or OEM devices <NUM>-<NUM>. Examples of data center <NUM> may include server computers and data storage devices deployed on-premises, in the cloud, in a hybrid cloud, or elsewhere, by service providers such as enterprises, organizations, individuals, and the like. Data center <NUM> may rely on the physical connections provided by one or more other network providers such as transit network providers, Internet backbone providers, and the like for communication purposes. Data center <NUM> comprises server computers <NUM>-<NUM> which host machine learning models <NUM>-<NUM> respectively.

Server computers <NUM>-<NUM> comprises processors, bus circuitry, storage devices, software, and the like configured to host machine learning models <NUM>-<NUM>. The processors may comprise CPUs, GPUs, ASICs, FPGAs, and the like. The storage devices comprise flash drives, RAM, HDDs, SSDs, NVMe SSDs, and the like. The storage devices store the software. The processors may retrieve and execute software stored on the storage devices to drive the operation of machine learning models <NUM>-<NUM>. In some examples, application <NUM> trains and instantiates ones of models <NUM>-<NUM> in response to user input received via user interface <NUM>.

Machine learning models <NUM>-<NUM> comprises one or more machine learning algorithms that are trained to generate machine learning outputs (e.g., machine learning optimization predictions) to affect industrial automation process <NUM>. Machine learning models <NUM>-<NUM> employ one or more machine learning algorithms through which data can be analyzed to identify patterns, make decisions, make predictions, or similarly produce output that can inform control code and/or parameters. Examples of machine learning algorithms that may be employed solely or in conjunction with one another include artificial neural networks, nearest neighbor methods, ensemble random forests, support vector machines, naive Bayes methods, linear regressions, or other types of machine learning algorithms that predict output data based on input data. Determining which machine learning methods to use may depend on the specific purpose or functions required in a particular industrial setting. Machine learning models <NUM>-<NUM> may utilize supervised learning methods, unsupervised learning methods, and/or reinforcement learning methods to train itself. The training data may comprise feature vectors that comprise numeric representations of the training data.

<FIG> illustrates an exemplary operation of industrial automation environment <NUM> to surface machine learning systems in a design application of the industrial automation environment. The operation depicted by <FIG> comprises an example of process <NUM> illustrated in <FIG>, however process <NUM> may differ. In other examples, the structure and operation of industrial automation environment <NUM> may be different.

In operation, application (APP. ) <NUM> generates control program <NUM>. Control program <NUM> is configured for execution by PLC <NUM> to drive the operation of OEM devices <NUM>-<NUM>. Application <NUM> receives a user input via user interface <NUM> and responsively selects one of program tags <NUM>-<NUM> that represents a target variable in industrial automation process <NUM>. For example, tag <NUM> may represent the viscosity of a substance in OEM device <NUM>. An operator may wish to adjust the viscosity of the substance to a desired setpoint and in response, selects tag <NUM> via user interface <NUM>.

In response to the tag selection, application <NUM> identifies a set of machine learning models in industrial automation environment <NUM> that are associated with the selected program tag. For example, the tag selection may represent the power output of OEM device <NUM>. Application may query data center <NUM> to determine ones of machine learning models <NUM>-<NUM> that affect the power output of OEM device <NUM>. The association may comprise models that ingest machine learning inputs representing the power output of OEM device <NUM>, models that generate machine learning outputs that affect the power output of OEM device <NUM>, and/or models that possess some other type of relationship with the power output of OEM device <NUM>. Data center <NUM> responds to the query indicating ones of machine learning models <NUM>-<NUM> related to the target variable of the selected program tag. Alternatively, application <NUM> may access a local storage system in server <NUM> to determine correlations between the selected program tag and models <NUM>-<NUM>. For example, application <NUM> may track relationships between program tags and machine learning models and store a correlation matrix on a storage device of server <NUM> to track the relationships.

In response to determining ones of models <NUM>-<NUM> that are related to the selected program tag, application <NUM> displays program tags that represent the identified machine learning models as available models <NUM>. Application <NUM> receives a user input via user interface <NUM> that selects one or more of the machine learning program tags displayed in available models <NUM>. In response to the user selection, application <NUM> integrates the selected machine learning program tag into control program <NUM>.

Application <NUM> uploads control program <NUM> to PLC <NUM> and directs PLC <NUM> to implement control program <NUM>. For example, application <NUM> may drive server <NUM> to transfer control program <NUM> to PLC <NUM> via an industrial ethernet link. PLC <NUM> receives control program <NUM> from application <NUM>. PLC <NUM> executes control program <NUM> and transfers corresponding control signaling to OEM devices <NUM>-<NUM>. For example, OEM device <NUM> may comprise a heat exchanger and tag <NUM> may dictate a temperature differential setting for OEM <NUM>. PLC <NUM> may execute instructions of tag <NUM> and determine a valve setting to achieve a cold-water flow rate that results in the desired temperature differential. PLC <NUM> may transfer executed instructions of tag <NUM> to OEM device <NUM>. In response, OEM device <NUM> may activate valve actuators and set the valve to the position indicated by the instructions.

OEM devices <NUM>-<NUM> of industrial automation process <NUM> receive the control signaling from PLC <NUM>. OEM devices <NUM>-<NUM> implement industrial automation process <NUM> as dictated by the control signaling generated by the execution of control program <NUM>. OEM devices <NUM>-<NUM> generate process data based on their operations and transfer the process data to PLC <NUM>. PLC <NUM> transfers a call to data center <NUM> to receive machine learning feedback to optimize process <NUM>. For example, control program <NUM> may comprise a machine learning program tag that drives PLC <NUM> to request machine learning feedback from model <NUM> regarding a process variable in industrial automation process <NUM>. In response to executing the machine learning program tag, PLC <NUM> transfers the call to data center <NUM> for delivery to machine learning model <NUM>.

Data center <NUM> receives the call and forwards the call for the intended one of machine learning models <NUM>-<NUM>. Models <NUM>-<NUM> generate machine learning outputs and transfer the outputs to PLC <NUM>. PLC <NUM> implements the machine learning output and transfers corresponding control signaling to OEM devices <NUM>-<NUM>. For example, the machine learning output may comprise a machine learning prediction that OEM device <NUM> will fall out of a target operating range. In response, PLC <NUM> may receive the prediction and generate correctional signaling to keep OEM device <NUM> in the target operating range. OEM devices <NUM>-<NUM> receive and implement the control signaling.

<FIG> illustrates user interface <NUM> to surface machine learning models. User interface <NUM> comprises an example of user interface <NUM> and user interface <NUM>, however user interface <NUM> and user interface <NUM> may differ. User interface <NUM> comprises a programming environment presented on a display screen which is representative of any user interface for generating control code. For example, user interface <NUM> may comprise a Guided User Interface (GUI) configured to allow a user to interact with a design application to generate control program represented as a ladder logic diagram.

User interface <NUM> includes navigation panel <NUM> that allows a user to access the various features available through user interface. Navigation panel <NUM> comprises tabs like "FILE", "EDIT", "VIEW", "LIBRARY MANAGEMENT", "TOOLS", "WINDOW", and "HELP". In other examples, navigation panel <NUM> may comprise fewer tabs, more tabs, and/or different types of tabs. A user may select a tab to access the functionality of the tab. Upon selection, the tabs may open drop down menus that list their functionality. For example, a user may select the "FILE" tab and select an option from a drop-down menu to save a project to memory. Navigation panel <NUM> is located on a top portion of user interface <NUM> however navigation panel <NUM> may be located on a different portion of user interface <NUM>. For example, navigation panel <NUM> may be located on the bottom portion of user interface <NUM>.

User interface <NUM> incudes explore panel <NUM>. Explore <NUM> panel comprises a file navigation system that allows a user to access various projects and view information. The files comprise names like "Projects", "HMI_Proj", "Area_2", "Area_2", "Area_3", "L75", "Hardware", and "Line_1". The files are organized in a hierarchy. A user may select one of the files to access the contents stored within the file. For example, a user may select the "L75" folder to access its contents. Explore panel <NUM> is located on a left portion of user interface <NUM> however explore panel <NUM> may be located on a different portion of user interface <NUM>. For example, explore panel <NUM> may be located on the right portion of user interface <NUM>.

User interface <NUM> includes workspace <NUM>. Workspace <NUM> comprises ladder logic <NUM>. Ladder logic <NUM> is an example of a control program configured implementation of a Programmable Logic Controller (PLC). A user may interact with user interface <NUM> to construct ladder logic <NUM> on workspace <NUM>. Ladder logic <NUM> is organized into rungs <NUM>-<NUM>. In this example, each of rungs <NUM>-<NUM> comprise a set of program tags that comprise control instruction for an industrial device within an industrial automation environment. Device rung <NUM> comprises tags <NUM>-<NUM>, device rung <NUM> comprises tags <NUM>-<NUM>, device rung <NUM> comprises tags <NUM>-<NUM>, and device rung <NUM> comprises tags <NUM>-<NUM>. For example, a PLC may execute the control instructions formed by tags <NUM>-<NUM> of device rung <NUM> to control the operation of a corresponding industrial device. Each of tags <NUM>-<NUM> comprise control instructions that direct their corresponding industrial device to perform a specific action. For example, tag <NUM> comprises a sensor start command, tag <NUM> comprises a sensor stop command, and tag <NUM> comprises a sensor output command. In other examples, some or all of tags <NUM>-<NUM> may comprise different types of control instructions. Tag <NUM> comprises a "selected tag". For example, user interface <NUM> may receive one or more user inputs to select <NUM>. The selection comprises a machine learning surfacing request for the variable represented by tag <NUM>. In this example, tag <NUM> comprises a temperature output command and the machine learning surfacing request may wish to identify machine learning models related to the temperature output of tag <NUM>. In response to the selection on user interface <NUM>, a design application may identify one or more machine learning models associated with tag <NUM>.

<FIG> illustrates user interface user interface <NUM> to surface machine learning models. User interface <NUM> comprises an example of user interface <NUM> and user interface <NUM>, however user interface <NUM> and user interface <NUM> may differ. User interface <NUM> comprises a programming environment presented on a display screen which is representative of any user interface for generating control code.

User interface <NUM> includes navigation panel <NUM> that allows a user to access the various features available through user interface. Navigation panel <NUM> comprises tabs like "FILE", "EDIT", "VIEW", "LIBRARY MANAGEMENT", "TOOLS", "WINDOW", and "HELP". In other examples, navigation panel <NUM> may comprise fewer tabs, more tabs, and/or different types of tabs. A user may select a tab to access the functionality of the tab. Upon selection, the tabs may open drop down menus that list their functionality. Navigation panel <NUM> is located on a top portion of user interface <NUM> however navigation panel <NUM> may be located on a different portion of user interface <NUM>.

User interface <NUM> incudes explore panel <NUM>. Explore <NUM> panel comprises a file navigation system that allows a user to access various projects and view information. The files comprise names like "Projects", "HMI_Proj", "Area_2", "Area_2", "Area_3", "L75", "Hardware", and "Line_1". The files are organized in a hierarchy. A user may select one of the files to access the contents stored within the file. Explore panel <NUM> is located on a left portion of user interface <NUM> however explore panel <NUM> may be located on a different portion of user interface <NUM>.

User interface <NUM> includes workspace <NUM>. Workspace <NUM> comprises selected tag <NUM> and related models <NUM>. Related models comprise machine learning tags <NUM>-<NUM>. For example, a user input may comprise selected tag <NUM> and user interface <NUM> may responsively display related models <NUM> which comprise machine learning models associated with the variable represented by selected tag <NUM>. Machine learning tags <NUM>-<NUM> comprise model info panels that comprise information describing the machine learning models represented by tags <NUM>-<NUM>. The model info panels comprise information like model type, model ID, model location, feature IDs, output type, status, related tag, related pipelines, and related processes. In other examples, model info panels may comprise different types of information describing the machine learning models.

<FIG> illustrates user interface <NUM> to apply machine learning optimizations into an industrial process. User interface <NUM> comprises an example of user interface <NUM> and user interface <NUM>, however user interface <NUM> and user interface <NUM> may differ. User interface <NUM> comprises a programming environment presented on a display screen which is representative of any user interface for generating control code. For example, user interface <NUM> may comprise a graphical representation on a display screen of a computing device that allows a user to interact with a design application to generate a control program formed by a ladder logic diagram.

User interface <NUM> incudes explore panel <NUM>. Explore <NUM> panel comprises a file navigation system that allows a user to access various projects and view information. The files comprise names like "Projects", "HMI_Proj", "Area_2", "Area_2", "Area_3", "L75", "Hardware", and "Line_1". The files are organized in a hierarchy. A user may select one of the files to access the contents stored within the file. Explore panel <NUM> is located on a left portion of user interface <NUM> however, explore panel <NUM> may be located on a different portion of user interface <NUM>.

User interface <NUM> includes workspace <NUM>. Workspace <NUM> comprises ladder logic <NUM>. Ladder logic <NUM> is an example of a control program configured implementation of a PLC. A user may interact with user interface <NUM> to construct ladder logic <NUM> on workspace <NUM>. Ladder logic <NUM> is organized into rungs <NUM>-<NUM>. Each of rungs <NUM>-<NUM> comprise a set of program tags that comprise control instruction for an industrial device within an industrial automation environment. Device rung <NUM> comprises tags <NUM>-<NUM>, device rung <NUM> comprise tags <NUM>-<NUM>, device rung <NUM> comprises tags <NUM>-<NUM>, and device rung <NUM> comprises tags <NUM>-<NUM>. Each of tags <NUM>-<NUM> comprise control instructions that direct their corresponding industrial device to perform a specific action. In other examples, some or all of tags <NUM>-<NUM> may comprise different types of control instructions.

Tag <NUM> comprises the "selected tag" generated by a user input to optimize the target variable represented by tag <NUM>. In response to the selection of tag <NUM> and a corresponding machine learning model tag, user interface <NUM> populates ladder logic <NUM> with machine learning model tag <NUM>. Machine learning tag <NUM> is presented on device rung <NUM>. Machine learning tag <NUM> comprises a programming tag correlated with the selected tag that was chosen by a user, which in this example comprises tag <NUM>.

<FIG> illustrates computing system <NUM> according to an implementation of the present technology. Computing system <NUM> is representative of any system or collection of systems with which the various operational architectures, processes, scenarios, and sequences disclosed herein surfacing machine learning systems within industrial automation environments may be employed. For example, computing system <NUM> may be representative of computing device <NUM>, server <NUM>, PLC <NUM>, data center <NUM>, and/or any other computing device contemplated herein. Computing system <NUM> may be implemented as a single apparatus, system, or device or may be implemented in a distributed manner as multiple apparatuses, systems, or devices. Computing system <NUM> includes, but is not limited to, storage system <NUM>, software <NUM>, communication interface system <NUM>, processing system <NUM>, and user interface system <NUM>. Processing system <NUM> is operatively coupled with storage system <NUM>, communication interface system <NUM>, and user interface system <NUM>.

Processing system <NUM> loads and executes software <NUM> from storage system <NUM>. Software <NUM> includes and implements model surfacing process <NUM>, which is representative of any of the machine learning system surfacing processes discussed with respect to the preceding Figures, including but not limited to the industrial control, machine learning surfacing, and user interface operations described with respect to the preceding Figures. For example, model surfacing process <NUM> may be representative of process <NUM> illustrated in <FIG> and/or the exemplary operation of environment <NUM> illustrated in <FIG>. When executed by processing system <NUM> to surface a machine learning model in an integrated design environment, software <NUM> directs processing system <NUM> to operate as described herein for at least the various processes, operational scenarios, and sequences discussed in the foregoing implementations. Computing system <NUM> may optionally include additional devices, features, or functionality not discussed for purposes of brevity.

Processing system <NUM> may comprise a micro-processor and other circuitry that retrieves and executes software <NUM> from storage system <NUM>. Processing system <NUM> may be implemented within a single processing device but may also be distributed across multiple processing devices or sub-systems that cooperate in executing program instructions. Examples of processing system <NUM> include general purpose CPUs, GPUs, ASICs, FPGAs, and logic devices, as well as any other type of processing device, combinations, or variations thereof.

Storage system <NUM> may comprise any computer readable storage media readable by processing system <NUM> and capable of storing software <NUM>. Storage system <NUM> may include volatile, nonvolatile, removable, and/or non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Examples of storage media include RAM, read only memory, magnetic disks, optical disks, optical media, flash memory, virtual memory and non-virtual memory, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other suitable storage media. In no case is the computer readable storage media a propagated signal.

Software <NUM> (including model surfacing process <NUM>) may be implemented in program instructions and among other functions may, when executed by processing system <NUM>, direct processing system <NUM> to operate as described with respect to the various operational scenarios, sequences, and processes illustrated herein. For example, software <NUM> may include program instructions for receiving user input on a user interface and surfacing machine learning models based on the user input as described herein.

In particular, the program instructions may include various components or modules that cooperate or otherwise interact to carry out the various processes and operational scenarios described herein. The various components or modules may be embodied in compiled or interpreted instructions, or in some other variation or combination of instructions. The various components or modules may be executed in a synchronous or asynchronous manner, serially or in parallel, in a single threaded environment or multi-threaded, or in accordance with any other suitable execution paradigm, variation, or combination thereof. Software <NUM> may include additional processes, programs, or components, such as operating system software, virtualization software, or other application software. Software <NUM> may also comprise firmware or some other form of machine-readable processing instructions executable by processing system <NUM>.

In general, software <NUM> may, when loaded into processing system <NUM> and executed, transform a suitable apparatus, system, or device (of which computing system <NUM> is representative) overall from a general-purpose computing system into a special-purpose computing system customized to surface machine learning outputs in a design environment, receive user selections via a user interface, and integrate machine learning tags into control programs as described herein. Indeed, encoding software <NUM> on storage system <NUM> may transform the physical structure of storage system <NUM>. The specific transformation of the physical structure may depend on various factors in different implementations of this description. Examples of such factors may include, but are not limited to, the technology used to implement the storage media of storage system <NUM> and whether the computer-storage media are characterized as primary or secondary storage, as well as other factors.

For example, if the computer readable storage media are implemented as semiconductor-based memory, software <NUM> may transform the physical state of the semiconductor memory when the program instructions are encoded therein, such as by transforming the state of transistors, capacitors, or other discrete circuit elements constituting the semiconductor memory. A similar transformation may occur with respect to magnetic or optical media. Other transformations of physical media are possible without departing from the scope of the present description, with the foregoing examples provided only to facilitate the present discussion.

Communication interface system <NUM> may include communication connections and devices that allow for communication with other computing systems (not shown) over communication networks (not shown). Examples of connections and devices that together allow for inter-system communication may include network interface cards, antennas, power amplifiers, radiofrequency circuitry, transceivers, and other communication circuitry. The connections and devices may communicate over communication media to exchange communications with other computing systems or networks of systems, such as metal, glass, air, or any other suitable communication media. The aforementioned media, connections, and devices are well known and need not be discussed at length here.

Communication between computing system <NUM> and other computing systems (not shown), may occur over a communication network or networks and in accordance with various communication protocols, combinations of protocols, or variations thereof. Examples include intranets, internets, the Internet, local area networks, wide area networks, wireless networks, wired networks, virtual networks, software defined networks, data center buses and backplanes, or any other type of network, combination of networks, or variation thereof. The aforementioned communication networks and protocols are well known and an extended discussion of them is omitted for the sake of brevity.

While some examples provided herein are described in the context of computing devices for machine learning model surfacing, it should be understood that the condition systems and methods described herein are not limited to such embodiments and may apply to a variety of other industrial automation environments and their associated systems. As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method, computer program product, and other configurable systems.

Unless the context clearly requires otherwise, throughout the description and the claims, the words "comprise," "comprising," and the like are to be construed in an inclusive sense, as opposed to an exclusive or exhaustive sense; that is to say, in the sense of "including, but not limited to. " As used herein, the terms "connected," "coupled," or any variant thereof means any connection or coupling, either direct or indirect, between two or more elements; the coupling or connection between the elements can be physical, logical, or a combination thereof. Additionally, the words "herein," "above," "below," and words of similar import, when used in this application, refer to this application as a whole and not to any particular portions of this application. Where the context permits, words in the above Detailed Description using the singular or plural number may also include the plural or singular number, respectively. The word "or" in reference to a list of two or more items, covers all of the following interpretations of the word: any of the items in the list, all of the items in the list, and any combination of the items in the list.

The phrases "in some embodiments," "according to some embodiments," "in the embodiments shown," "in other embodiments," and the like generally mean the particular feature, structure, or characteristic following the phrase is included in at least one implementation of the present technology and may be included in more than one implementation. In addition, such phrases do not necessarily refer to the same embodiments or different embodiments.

The teachings of the technology provided herein can be applied to other systems, not necessarily the system described above. The elements and acts of the various examples described above can be combined to provide further implementations of the technology. Some alternative implementations of the technology may include not only additional elements to those implementations noted above, but also may include fewer elements.

Claim 1:
A system for making machine learning systems (<NUM>-<NUM>) available to users of a design application of an industrial automation environment (<NUM>), the system comprising:
a memory that stores executable components; and
a processor, operatively coupled to the memory, that executes the executable components, the executable components comprising:
a design component (<NUM>) configured to:
generate a control program (<NUM>) configured for implementation by a Programmable Logic Controller, PLC, (<NUM>) and receive a user input that selects a program tag (<NUM>; <NUM>-<NUM>) that represents a target variable in an industrial automation process;
in response to the user selection, identify one or more machine learning models (<NUM>-<NUM>; <NUM>-<NUM>) associated with the target variable and display the one or more machine learning models (<NUM>-<NUM>; <NUM>-<NUM>); and
receive a user input that selects one of the one or more machine learning models (<NUM>-<NUM>; <NUM>-<NUM>)
characterised in that the design component (<NUM>) is configured to responsively integrate a first new program tag (<NUM>) that represents the selected machine learning model (<NUM>-<NUM>; <NUM>-<NUM>) into the control program (<NUM>).