Patent Description:
The present disclosure relates to deployment of machine learning based industrial applications on interface devices. With the advent of machine learning and artificial intelligence techniques, a plurality of industrial applications based on these techniques have been developed. In conventional automation systems, artificial intelligence (AI) applications are typically run in controllers, servers and edge devices. Accordingly, the process data from field devices of automation system, has to be transmitted to the controllers and edge devices, via interface devices. This in turn has increased the load on the communication paths of the interface devices which often leads to increased cycle time or latency in the communication paths.

To address this additional load on the communication path of the interface devices, one approach is to address the communication channel. For example, a more efficient field bus, (such as Gigabit Ethernet Hardware) may be utilized. In another example, a secondary sensor system with a completely new cabling may be provided. However, both these cases result in higher costs and may requires downtime.

<CIT> teaches a method for configuring an interface device using a data pipeline consisting of interconnected data processing blocks for performing signal processing-based learning in a process plant or monitoring system.

Another approach is to shift the processing to the field devices themselves. In this case the AI applications would be executed directly on the field devices themselves. This approach, however, only works if all data is available on the field devices and if the field devices are sufficiently sophisticated. Additionally, if all the field devices are not from one provider, for each field device a different AI engineering framework has to be used. Accordingly, this results in additional complexity during engineering as AI engineering is not integrated in the engineering framework of the automation system. Therefore, there is a need for a method and an interface device which addresses the issues discussed above.

The problem is solved by a method comprising the features of claim <NUM>. Further the problem is solved by an interface device according to the features of claim <NUM>, and a non-transitory storage medium according to the features of claim <NUM>. The current disclosure describes a method and an interface device which addresses the issues mentioned above. In accordance with the method as disclosed in the current disclosure, machine learning applications are implemented in the interface devices. In accordance with the current disclosure, applications based on machine learning or artificial intelligence models, are divided into plurality of logical components connected in a pipeline and then a plurality of code blocks are generated using a translator based on the plurality of logical components.

These code blocks are connected in accordance with the pipeline, to generate a first output from at least one signal from at least one field device. Finally, the connected code blocks are deployed on the interface device to generate the first output. Accordingly, by implementing the machine learning applications in the interface devices, entire process data from the field devices do not have to transferred to the controllers. Additionally, since most machine learning applications typically transform or aggregate data, the amount of data to be transferred between the interface device and control device, is reduced even more.

Accordingly, in a first aspect, the current disclosure a method for configuring an interface device connected to a control device and at least one field device. The method comprises receiving a a first machine learning application comprising a plurality of logical components connected in a pipeline, generating a plurality of code blocks using a translator, based on the plurality of logical components, connecting the plurality of code blocks in accordance with the pipeline of the first machine learning application to generate a first output from at least one signal from the at least one field device, and deploying the connected code blocks on a firmware of the interface device. Deploying the connected code blocks includes creating at least one virtual port connectable to the control device. The at least one virtual port is for transmitting the first output to the control device. The first machine learning application is for analysing at least one signal from the at least one field device using a first machine learning model. Additionally, each code block is associated with a particular logical component from the plurality of logical components.

In an example, the creating at least one virtual port comprises identifying a first physical output port from a plurality of physical input and output ports, wherein the first physical output port is available for transmitting a signal to the control device. By enabling mapping between the virtual port and physical port, the first output can be transmitted via the physical port. Additionally, since the first output is connected to the virtual port, the virtual port may be mapped to a different physical port in case the original physical port is unavailable.

Additionally, the method further comprises generating a capability file associated with the interface device, the capability file comprising a definition of the at least one virtual port and transmitting the generated capability file associated with the interface device to an engineering tool for linking the at the least one virtual port with the control device. Through these steps, engineering of control systems comprising the interface device with the machine learning model, is enabled. The machine learning model functionality enabled in the interface device is abstracted and only the output of the functionality (realized by the connected code blocks) is defined in the capability file and used in engineering. Thereby, the need for complex artificial framework in engineering is eliminated as the machine learning application implemented in the interface device is abstracted and treated as a signal from interface device.

In another example, the method further comprises creating at least one virtual input port associated with a data source of the interface module, wherein the at least one virtual input port is for providing input to at least one code block from the connected code blocks. By doing so, internal data available only in the interface devices may also be used by the connected code blocks for analyzing the signal from the at least one field device.

In an example the step of generating the plurality of code blocks comprises determining one or more predefined libraries associated with each logical component from the plurality of logical components. Each predefined library includes one or more library routines for realizing the corresponding logical component and accordingly, provides a standardized manner for realizing AI functions without requiring considerable technical know-how.

In another example, the step of generating a plurality of code blocks further comprises determining a plurality of values for a plurality of parameters associated with the first machine learning model based on a first optimization technique. This allows for easy configuration of the machine learning model without requiring considerable technical expertise in relation to the machine learning techniques. In another example, the first machine learning model is trained using the historic data of the signal from the at least one field device for determining one or more model parameters of the first machine learning model. Accordingly, the machine learning model is tuned for the at least one field device and therefore provides improved performance. Additionally, in an example, the determination of the values for the parameters associated with the first learning model is based on the historic data from the at least one field device. Accordingly, this allows for customization of the model in accordance with the particular field device and the industrial application and conditions in which the field device is deployed.

In a second aspect, the current disclosure describes an interface device connected to at least one field device and a control device. The interface device comprises one or more input and output ports for receiving and transmitting signals between the control device and the at least one field device, and a firmware module comprising a plurality of connected code blocks to receive at least one signal from at least one field device and produce to generate a first output. The one or more input and output ports include at least one virtual output port for transmitting the first output to the control device. The plurality of connected code blocks are generated using a translator, based on a plurality of logical components of a first machine learning application for analyzing at least one signal from the at least one field device using a first machine learning model. Each code block is associated with a particular logical component from the plurality of logical components.

In a third aspect, the current disclosure describes a non-transitory storage medium for configuring an interface device connected to a control device and at least one field device. the non-transitory storage medium having machine-readable instructions stored therein, which when executed by a processing unit, cause the processing unit to receive a first machine learning application comprising a plurality of logical components connected in a pipeline, generate a plurality of code blocks using a translator, connect the plurality of code blocks in accordance with the pipeline of the first machine learning application, to generate a first output from the at least one signal from the at least one field device; and deploy the connected code blocks on a firmware of the interface device including creating at least one virtual port connectable to the control device, the at least one virtual port for transmitting the first output to the control device. These aspects are explained further in reference to the <FIG>.

<FIG> illustrates an industrial automation system <NUM> in an industrial facility. Industrial facility herein refers to any environment where one or more industrial processes such as manufacturing, refining, smelting, assembly of equipment, etc., may take place. Examples of industrial facility includes process plants, oil refineries, automobile factories, etc. The industrial automation system <NUM> includes a plurality of control devices such as process controllers, programmable logic controllers (shown in the figure as controller or control device <NUM>), supervisory controllers, operator devices, etc..

The controllers (shown as control device <NUM>) are connected via a plurality of peripheral or interface devices (shown in the figure as interface module <NUM> and I/O module <NUM>), to a plurality of field devices such as actuators and sensor devices(for example, shown in figure as flowmeter <NUM> and pressure transmitter <NUM>) for monitoring and controlling industrial processes in the industrial facility. These field devices can include flowmeters, value actuators, temperature sensors, pressure sensors, etc. The field devices are connected to the I/O modules (shown as I/O module <NUM> in the figure). The I/O modules transmit process values to the interface module <NUM>. The interface module <NUM> is connected to the controller <NUM> and communicates the process values to the controller <NUM>. By way of the interface module <NUM>, the controller <NUM> receives process values from the sensors (<NUM> and <NUM>) that are connected to the I/O module <NUM>. Based on the process values process, the controller <NUM> generates control commands for the actuators connected to the I/O module <NUM> and the interface module <NUM>, for control and regulation of industrial processes in the industrial facility.

As mentioned above, the interface module <NUM> and I/O module <NUM> are collectively referred to as interface devices. Interface device as mentioned herein refers to as one or more devices between the field devices and the devices on and above the control network. Interface devices establish connection between the field devices and the other devices in the industrial automation system <NUM>. Examples of interface devices includes interface modules, I/O modules (analog and digital), gateway devices, remote terminal units (RTUs), etc..

In accordance with the current disclosure, one or more industrial applications based on machine learning models are deployed on the interface devices. The industrial applications analyze signals from the field devices connected to the interface devices. The industrial applications include one or more machine learning models <NUM> which are used in the analysis of the signals (also referred to as process data or data) from the field devices. The output from the industrial applications on the interface devices are then transmitted to the control devices. The control devices utilize the output from the industrial applications to control or regulate the processes in the industrial facility via actuators, raise alarms in case of process or device anomalies, etc. Examples of industrial applications include a ball bearing monitoring application based on neural network, motor monitoring application based on Z score statistical model, etc..

Additionally, the industrial automation system <NUM> includes a configuration tool <NUM> for configuring the interface module <NUM> and deploying the industrial application on the interface module <NUM>. The configuration tool <NUM> is connected to the interface module <NUM> and to a repository (not shown in <FIG>) comprising one or more industrial applications based on machine learning models (shown in figure as machine learning model <NUM>). The configuration tool <NUM> deploys one or more industrial applications on the interface module <NUM>. The configuration tool <NUM> is configured to generate code blocks from the one or more machine learning industrial applications and deploy the code blocks associated with the applications on the interface <NUM>. Further the configuration tool <NUM> creates one or more virtual ports on the interface module <NUM> for meaningfully transmitting output from the code blocks deployed on the interface module <NUM>.

Additionally, the configuration tool <NUM> updates the capability file associated with the interface module <NUM> to reflect the virtual ports created. Subsequently, the configuration tool <NUM> transmits the updated capability file to an engineering tool for use in engineering of control loops including virtual ports of the interface device. These aspects are further explained in the description of <FIG>. While the current disclosure is explained using interface module <NUM>, the methods as disclosed herein are equally applicable to I/O module <NUM> and various other interface devices.

<FIG> illustrates a method <NUM> for configuring an interface device (<NUM> or <NUM>) connected to a control device <NUM> and at least one field device (<NUM> or <NUM>) using the configuration tool <NUM>. At step <NUM>, the configuration tool <NUM> receives a first machine learning application comprising a plurality of logical components connected in a pipeline. Pipeline herein refers to connection amongst the logical components in a sequence wherein each preceding logical component acts as a producer producing an output, and the succeeding logical component acts as a consumer, consuming the output from the preceding logical component. Pipeline may include serial and parallel paths. The first machine learning application is for analyzing at least one signal from the at least one field device using a first machine learning model <NUM>. The logical components are connected in a pipeline and act as a chain of producer and consumers routines. Each logical component is associated with a processing operation to be performed on the signal from the at least one field device (<NUM> or <NUM>) or an output from another logical component. The plurality of components includes a component associated with the first machine learning model <NUM>, one or more components for preprocessing the at least one signal from the at least one field device (<NUM> or <NUM>) in accordance with first machine learning model <NUM>.

In an example, the first machine learning application is a ball bearing monitoring application based on neural network. The ball bearing monitoring application comprises four logical components. The first logical component is an input normalization component. The input to the input normalization component is a signal from a vibration sensor attached on a ball bearing. The input normalization component normalizes the vibration signal from the vibration sensor using a linear normalization technique. Then the normalized signal is provided to the windowing component. The windowing component receives the normalized signal from the input normalization component and creates multiple windows or segments of the normalized vibration signal. Then, the segments of the normalized vibration signal are provided to the Fast Fourier transformation component. The Fast Fourier transformation component applies fast Fourier transformation on the segments of the normalized vibration signal and transforms the signal from time domain to frequency domain. Then the transformed signal segments are provided to the two-layer neural network component. The two-layer neural network is trained for classifying the transformed signals for detecting a condition of the ball bearing. In an example, two-layer neural network is trained based on historic vibration data from a plurality of ball bearings in various conditions. On the basis of this training, the neural network is capable of determining the health of the current ball bearing by classifying the vibration signal from the vibration sensor.

In an example, the first machine learning application includes an application template or a model exchange format comprising component information on each logical component from the plurality of logical components. The component information includes one or more parameters for configuration of the logical component and a reference to a library routine for implementing the logical component. In an example, the first machine learning application is predefined using an IEC <NUM>-<NUM> language (such as function block diagram, structured text, ladder diagram, sequential function chart, etc.). In another example, the first machine learning application is defined using predictive model markup language (PMML). In yet another example, the first machine learning application is defined using Open Neural Network Exchange (ONNX) format. In an example the first machine learning application is stored on a cloud repository and is selected by operators or engineering personnel during engineering of the industrial system <NUM> or operation of the same.

At step <NUM>, the configuration tool <NUM> generates a plurality of code blocks using a translator (for example compiler or interpreter) of the configuration tool <NUM>, based on the plurality of logical components of the first machine learning application. Each code block is associated with a particular logical component from the plurality of logical components. Each code block is composed of program code (for example, mid or low-level language code such as Very High Speed Integrated Circuit Hardware Description Language (VHDL), assembly language code, binary code or machine executable code) and is executable on the interface device (interface module <NUM> or I/O module <NUM>) for realizing the processing operation associated with the corresponding logical component.

In an example, the configuration tool <NUM> is connected to a repository <NUM> containing a plurality of libraries associated with the one or more interface devices in the industrial automation system <NUM>. Each library includes one or more library routines, which after compilation by the translator, may be executed by the associated interface device for realizing a particular processing operation. For example, a first library may include one or more library routines which may be executed by interface devices of a particular type from a particular manufacturer for performing fast Fourier transformation.

While generating the plurality of code blocks, the translator of the configuration tool <NUM> determines one or more predefined libraries associated with one or more logical components from the plurality of logical components. Each predefined library includes one or more library routines for realizing the corresponding logical component. The translator of the configuration tool <NUM> utilizes the one or more predefined libraries in generating the code blocks by linking library routines from the predefined libraries.

In an embodiment, one or more code blocks are generated by the translator on the basis of a plurality of configuration parameters (also referred to as parameters) associated with the corresponding logical component. The configuration parameters determine the configuration of the code block generated from the associated logical block. In an example, the values of the configuration parameters are included in the logical component. In another example, the values of the configuration parameters are determined on the basis of training and validation data from the at least one field device. Training and validation data include historic signal data from the at least one field device.

In an example, the configuration parameters of a logical component associated with the first machine learning model includes a learning rate, batch size, number of epochs, etc. For example, the configuration parameters associated the neural network component includes weights of the network nodes, number of hidden nodes in the intermediate layers, number of intermediate layers, etc..

Similarly, in another example, a configuration parameter associated with a normalization component determines the type of normalization to be applied on the input data. For example, a configuration parameter of a normalization component is for determining if z score normalization or min-max normalization is to be applied on the signal or data from the field device. In an example, the configuration parameters of the normalization component are determined based on statistical distribution of training data (i.e. historic data of the field device). This allows for customization of the machine learning model according to the at least one field device without requiring considerable human intervention.

In an embodiment, the configuration parameters of a logical component associated the first machine learning model <NUM> includes one or more model parameters and one or more model hyperparameters. The one or more model parameters are determined based on training data of the field device. In an example, the one or more model parameters of a neural network component such as the weights of the nodes in the neural network are determined from the training data. Similarly, the one or more model hyperparameters of a neural network component (for example number of hidden nodes in the intermediate layers, number of intermediate layers, etc.) are determined using a hyperparameter tuning technique such as grid search, Bayesian optimization, evolutionary optimization, etc..

In an example, the configuration tool <NUM> determines a number of nodes in the hidden layers and dropout values of a neural network logical component. Dropout determines the percentage of nodes which are zeroed out during training for each training sample/iteration. With a random search, the hyperparameters are sampled from predefined distributions. This can be a binominal distribution for the hidden nodes and a beta distribution for the dropout. Accordingly, a random parameter set could be
(hidden nodes, dropout) = {(<NUM>,<NUM>), (<NUM>,<NUM>), (<NUM>,<NUM>), (<NUM>,<NUM>), (<NUM>,<NUM>), (<NUM>,<NUM>), (<NUM>,<NUM>), (<NUM>,<NUM>), (<NUM>,<NUM>)}.

Sampled with parameters (size=<NUM>, p=<NUM>) for the binominal distribution and (<NUM>,<NUM>) for the beta distribution. From the current gaussian process, an acquisition function can be derived. The acquisition function can for example propose the point with the biggest expected improvement or maximize the knowledge.

At step <NUM>, the configuration tool <NUM> connects the generated code blocks accordingly to the pipeline of the first machine learning application to generate a first output. Accordingly, the output of a first code block is connected to the second code block as input as per the pipeline of the first machine learning application. Accordingly, the outputs and inputs of the code blocks are chained in accordance to the pipeline of the first machine learning application. Finally, the output of the connected code blocks, referred to as the first output, is generated.

At step <NUM>, the connected code blocks are deployed on the firmware module on the interface device. The connected code blocks are installed on the interface device. Then, at least one virtual port is created for connecting and providing the first output to the control device. The at least one virtual port transmits the first output to the control device. To create at least one virtual port in the interface device, the configuration tool <NUM> identifies a first physical output port from a plurality of physical input and output ports of the interface device, where the first physical output port is available for transmitting a signal to the control device. Firmware module herein refers to an execution environment in which the code blocks may be executed, and accordingly refers to processors and memory units collectively. This is further explained in relation to <FIG>.

<FIG> illustrates an interface device (for example an interface module <NUM>) with the connected code blocks deployed on the interface module <NUM>. The interface module <NUM> include one or more I/O interface (shown as I/O interfaces <NUM> and <NUM>) Each of the I/O module includes a plurality of ports. The plurality of ports includes input ports (shown in the figure as ports <NUM>, <NUM> and <NUM>), output ports (shown in the figure as ports <NUM>, <NUM>, <NUM> and <NUM>) and virtual ports (shown in the figure as virtual ports <NUM>, <NUM> and <NUM>).

The input port <NUM> is connected to a field device <NUM> (for example vibration sensor installed on a ball bearing) for receiving a vibration signal associated with the ball bearing. The input port <NUM> is connected to a field device <NUM> (for example a current sensor on a motor) for receiving current data of the motor. The input port <NUM> is connected to a field device <NUM> (for example a voltage sensor on a motor) for receiving voltage data of the motor. The virtual port <NUM> is a virtual input port and is connected to a data source <NUM> internal to the interface module <NUM>. In an example, the data source <NUM> includes voltage applied on a laser sensor and is utilized by the interface device in determining if the laser sensor is working with anomalies and if the distance readings from the laser sensors may be utilized.

The virtual port <NUM> is connected to a first set of connected code blocks <NUM> for transmitting the output from the first set of connected code blocks <NUM>. The virtual port <NUM> is mapped to the physical port <NUM> and is capable of transmitting the output of the first set of the connected code blocks <NUM> to the control device <NUM>. Similarly, the virtual port <NUM> is connected to a second set of connected code blocks <NUM> for transmitting the output from the second set of connected code blocks <NUM>. The virtual port <NUM> is mapped to the physical port <NUM> and is capable of transmitting the output of the second set of the connected code blocks <NUM>. The output port <NUM> is connected to a second interface device <NUM>. The output port <NUM> is available for transmission of signal.

The first set of connected code blocks <NUM> receives vibration signal from the field device <NUM> via the input port <NUM>. The first set of connected code blocks <NUM> comprises of four code blocks (code blocks <NUM>, <NUM>, <NUM> and <NUM>) connected in a first pipeline. The first set of the connected code blocks is generated and deployed on the interface module <NUM> by a configuration tool <NUM> based on the first industrial application <NUM> (also referred to as machine learning application) as shown in <FIG>.

The first machine learning application <NUM> is a ball bearing monitoring application based on neural network. The ball bearing monitoring application <NUM> comprises four logical components (<NUM>, <NUM>, <NUM>, and <NUM>). The first logical component <NUM> is an input normalization component and receives vibration signal from the vibration sensor attached on a ball bearing as input <NUM>. The input normalization component <NUM> performs a normalization operation on the vibration signal <NUM> from the vibration sensor. Then the normalized signal is passed to the windowing component <NUM>. The windowing component <NUM> receives the normalized signal from the input normalization component and creates multiple windows or segments of the normalized vibration signal. Then, the segments of the normalized vibration signal are provided to the Fast Fourier transformation component <NUM>. The Fast Fourier transformation component <NUM> applies fast Fourier transformation on the segments of the normalized vibration signal and transforms the signal from time domain to frequency domain. Then the transformed signal segments are provided to the two-layer neural network component <NUM>. The two-layer neural network <NUM> is trained for classifying the transformed signals for detecting a condition of the ball bearing. In an example, two-layer neural network <NUM> is trained based on historic vibration data from a plurality of ball bearing in various conditions. Based on the signal segments, the neural network <NUM> determines a condition of the ball bearing as the first output <NUM>.

The code blocks (code blocks <NUM>, <NUM>, <NUM> and <NUM>) are generated by a translator of the configuration tool <NUM> based on the logical components (<NUM>, <NUM>, <NUM> and <NUM>). In an example, the code block <NUM> corresponding to the neural network component <NUM> is generated based a plurality of parameters determined by the configuration tool <NUM>. The plurality of parameters includes one or more model parameters such as node weights. The one or more model parameters are determined from historic vibration data from the field device <NUM> by training the neural network model using the historic vibration data. Additionally, the plurality of parameters include one or more model hyperparameters such as number of nodes in the intermediate layers, etc. The one or more hyperparameters are determined using the historic vibration data and a hyperparameter tuning technique such as Grid search, Bayesian optimization, evolutionary optimization, etc., as described above.

The second set of connected code blocks <NUM> receives current data from the field device <NUM> via the input port <NUM> and voltage data from the field device <NUM> via the input port <NUM>. The second set of connected code blocks <NUM> comprises of two code blocks (code blocks <NUM> and <NUM>) connected in a second pipeline. The second set of the connected code blocks is generated and deployed on the interface module <NUM> by a configuration tool <NUM> based on the second industrial application <NUM> (also referred to as machine learning application) as shown in <FIG>.

The second machine learning application <NUM> is a motor monitoring application based on Z score normalization and polynomial model as shown in <FIG>. The motor monitoring application <NUM> comprises two logical components (<NUM> and <NUM>). The first logical component <NUM> is a normalization component which receives as current, voltage and motor speed as inputs <NUM>, <NUM> and <NUM>. The normalization component <NUM> applies normalization on the speed, current and voltage data from the field devices connected. The second logical component <NUM> is a polynomial model modeling the speed-voltage characteristics of the motor. Based on the current value of the motor current, motor speed and voltage, the polynomial model component <NUM> determines is an anomalous condition is present or not.

The configuration tool <NUM> generates a capability file associated with the interface device. The capability file comprises a definition of the at least one virtual port. Then, the configuration tool <NUM> transmits the generated capability file associated with the interface device to an engineering tool. The engineering tool utilizes the capability file for linking the at the least one virtual port with the control device <NUM>. The definition of the virtual port comprises a mapping between the at least one virtual port and the first physical output port, and information associated with the first output. Accordingly, during engineering the machine learning application is abstracted and is simply seen as an output from an output port in the interface device. This accordingly reduces complexity in engineering.

In an example, the method further comprises creating at least one virtual input port associated with a data source of the interface module. The at least one virtual input port is for providing input to at least one code block from the connected code blocks. As explained above, this helps in utilizing data from internal sources in the interface device for analysis.

The present disclosure can take a form of a computer program product comprising program modules accessible from computer-usable or computer-readable medium storing program code for use by or in connection with one or more computers, processing units, or instruction execution system. Accordingly, the current disclosure as describes a non-transitory storage medium containing instructions for for configuring an interface device connected to a control device and at least one field device. In an example, the non-transitory storage medium is a part of the configuration tool <NUM>. The configuration tool <NUM> includes a network interface connected to the interface device, and one or more processors (also referred to as processing unit) connected to the non-transitory storage medium or memory module storing one or more instructions. The one or more processors on execution of the one or more instructions, are configured to receive a first machine learning application comprising a plurality of logical components connected in a pipeline, generate a plurality of code blocks using a translator, based on the plurality of logical components of the first machine learning application, connect the plurality of code blocks in accordance with the pipeline of the first machine learning application, to generate a first output from the at least one signal from the at least one field device; and deploy the connected code blocks on a firmware of the interface device; wherein deploying the connect-ed code blocks comprises creating at least one virtual port connectable to the control device, the at least one virtual port for transmitting the first output to the control device. The non-transitory storage medium further comprises machine-readable instructions stored therein, which when executed by the processing unit to generate a capability file associated with the interface device, wherein the capability file comprises a definition of the at least one virtual port and transmit the generated capability file associated with the interface device to an engineering tool for linking the at the least one virtual port with the control device. In another example, the non-transitory storage medium further comprises machine-readable instructions stored therein, which when executed by the processing unit to create at least one virtual input port associated with a data source of the interface module, wherein the at least one virtual input port is for providing input to at least one code block from the connected code blocks.

Claim 1:
A method (<NUM>) for configuring an interface device (<NUM>) connected to a control device (<NUM>) and at least one field device (<NUM>), the method (<NUM>) comprising
a. receiving (<NUM>), by a configuration tool, a first machine learning application comprising a plurality of logical components (<NUM>, <NUM>, <NUM>, <NUM>) connected in a pipeline, wherein the first machine learning application is for analysing at least one signal from the at least one field device (<NUM>, <NUM>) using a first machine learning model (<NUM>);
b. generating (<NUM>), by the configuration tool, a plurality of code blocks (<NUM>, <NUM>, <NUM>, <NUM>) using a translator, based on the plurality of logical components (<NUM>, <NUM>, <NUM>, <NUM>) of the first machine learning application, wherein each code block is associated with a particular logical component from the plurality of logical components (<NUM>, <NUM>, <NUM>, <NUM>);
c. connecting (<NUM>), by the configuration tool, the plurality of code blocks (<NUM>, <NUM>, <NUM>, <NUM>) in accordance with the pipeline of the first machine learning application, to generate a first output from the at least one signal from the at least one field device (<NUM>); and
d. deploying, by the configuration tool, the connected code blocks (<NUM>, <NUM>, <NUM>, <NUM>) on a firmware of the interface device (<NUM>); wherein deploying the connected code blocks comprises creating at least one virtual port (<NUM>) connectable to the control device (<NUM>), the at least one virtual port (<NUM>) for transmitting the first output to the control device (<NUM>),
wherein the method (<NUM>) further comprises
e. generating a capability file associated with the interface device (<NUM>), wherein the capability file comprises a definition of the at least one virtual port (<NUM>) and
f. transmitting the generated capability file associated with the interface device (<NUM>) to an engineering tool for linking the at the least one virtual port (<NUM>) with the control device (<NUM>).