Application module for controlling device
By designing an application module that can communicate with other components in the control device, the problems caused by hardware differences during development and testing are solved, and user application testing is realized without affecting the actual control device, and the testing is improved Reliability and simplification of the process.
Patent Information
- Application Number
- CN202380040117.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-05-13
- Filing Date
- 2023-04-17
- Publication Date
- 2024-12-24
AI Technical Summary
In the control system, during the development and testing process, due to the particularity of the control hardware, there are differences in the program running on the development system and the control hardware, resulting in problems and errors.
Design and configure an application module that is able to communicate and interact with other components in the control device and reduce or avoid errors caused by hardware differences through test modes, providing additional functionality to support testing of user applications.
Through the test mode of the application module, it is possible to test user applications without affecting the actual control device, reduce errors, improve the reliability of the test and simplify the process.
Smart Images

Figure CN119183552A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to an application module for a control device, wherein the application module is designed and configured to communicate and interact with other components of the control device within the control range of a machine or a facility, and wherein the application module is designed and configured to generate additional functions for the control device by means of using a user application. Background Art
[0002] Such application modules are known from the prior art.
[0003] For example, European patent EP 2 325 708 B1 discloses a real-time runtime system, which includes a large number of functional modules and management modules. A plurality of functional modules are configured so that the functional modules log into the management module with the aid of the assigned module identifier during the transition state between initialization and pre-operation, and log out during the transition state between pre-operation and initialization. At least one of the plurality of functional modules is configured to: establish a communication connection to other functional modules via the management module during the transition state between pre-operation and test operation, remove the communication connection during the transition state between test operation and pre-operation, log in to another functional module during the transition state between test operation and real-time operation, and log out during the transition state between real-time operation and test operation.
[0004] A disadvantage of the prior art is that control programs or other applications for control devices are developed and tested in a corresponding development system for the programs (e.g. a so-called automation engineering system), which can cause problems when they are executed on the corresponding control hardware because, for example, due to peculiarities in the control hardware used, the program is executed differently in the development system than when the program is executed on the control hardware itself. Summary of the invention
[0005] It is therefore an object of the present invention to provide an improved method and a corresponding device which allow improved and / or simplified testing of software or applications for control systems.
[0006] This object is achieved by an application module having the features of patent claim 1 .
[0007] Such an application module is designed and configured for use in a control device, wherein the application module is designed and configured for communication and interaction with other components of the control device within the control scope of a machine or a facility.
[0008] The application module is also designed and configured to generate additional functions for the control device by using the user application. Here, the application module is designed and configured to execute an operating mode, wherein in the operating mode, the additional functions for the control device are generated using the user application.
[0009] In addition, the application module is designed and configured to execute a test mode, wherein the test mode is designed and configured to test the user application.
[0010] By virtue of the application module having a test mode according to the present description or being designed and configured to carry out such a test mode, an improved and / or simplified testing of software or applications for an application module or a control system having such an application module is possible.
[0011] This test mode enables, for example, that the application module itself and therefore the hardware on which the user application is ultimately to run is already used for testing the user application. Problems and errors can thus be reduced or even avoided, which could occur if the user application runs differently on a development system for such a user application and on a control device or application module q, since the different hardware configurations of the two systems can lead to differences in the program running.
[0012] Such a test mode can be designed and configured, for example, so that a user application in an application module can be tested or is testable within the scope of such a test mode. For this purpose, the test mode can be designed and configured so that, when the user application is running within the scope of such a test mode, no control commands are issued to a machine or installation controlled by a corresponding control device.
[0013] The application module can be designed and configured as a hardware module, for example. Such a hardware module can be designed and configured as a structurally independent module, for example. Such a structurally independent hardware module can, for example, have a housing and / or a mechanical element or device for coupling to a control device or for mechanical integration into the control device.
[0014] In addition, the application module can be connected to the control device and / or other components of the control device in a communicative manner or can be connected thereto. In another configuration, the application module can be connected to the control device and / or other components of the control device in a communicative manner or can be connected thereto.
[0015] In addition, the application module can be designed and configured as a software module. In this case, for example, the control device can include the software module, and the control device can also be designed and configured to execute the application module configured as the software module.
[0016] In an advantageous configuration, the application module is part of the control device. In this case, the application module can, for example, logically belong to the control device. Furthermore, the application module can be coupled to the control device mechanically and / or communicatively or can be integrated into the control device mechanically and / or communicatively. The application module can also be designed and configured as a software application, wherein the control device can then include the application module configured as a software application.
[0017] The application module can be designed and configured as a freely programmable application module. The freely programmable application module realizes: providing a freely programmable or independently programmable "application" or "app" which is executed as part of the firmware of the application module and / or executed within the scope of the operating environment provided by the application module.
[0018] For example, a freely programmable application module can be designed and configured for executing software or a program created and executed in a programming language that is not supported by one or more further components and / or modules of the control device or by the remaining components and / or modules of the control device. In particular, a freely programmable application module can be designed and configured, for example, for executing software or a program created and / or executed in a programming language that is not recognized as a programming language for such devices by the IEC standard IEC 61131 for control devices and / or programmable logic controllers or similar standards.
[0019] In an advantageous configuration, the freely programmable application module is not designed and configured to run programs that have been created or created in a programming language in accordance with IEC 61131, IEC 61499 or similar standards. These are, for example, the following programming languages: AWL (Instruction List (IL)), KOP (Ladder Diagram (LD)), FBS or FUP (Function Block Language (FBD)), AS (Sequential Function Chart (SFC)) and ST (Structured Text (ST)).
[0020] A freely programmable application module for a control device can be designed and configured, for example, so that the application module is designed and configured for: in addition to the control program running in the control device, running a software application for controlling a machine or a facility. Such a freely programmable application module enables: the implementation of functions of the control device in addition to standard control functions, for example, implemented by a central control module for the control device. For example, the central control module can be designed and configured for running a control program for controlling a machine or a facility. The central control module can also be designed and configured, for example, according to standards IEC 61131, IEC 61499 and / or similar standards, or can include at least one such function.
[0021] Examples of such application modules can be, for example, hardware and / or software modules for executing machine learning applications. Other examples of such application modules are, for example, hardware and / or software modules for implementing Boolean processors, for implementing or executing simulations or running simulation programs, for programming or executing mathematical algorithms, analytical methods or big data analysis, for running independent programs in one or more preset programming languages (e.g., C, C++, Python, etc.), or hardware and / or software modules for similar purposes or applications.
[0022] The control device can be designed and configured, for example, as an electronic device for controlling an apparatus or facility. The control device can be designed and configured, for example, as a programmable logic controller, a modular programmable logic controller, a computer with a control software application or a control program application, a so-called "soft PLC", or only a control software application. In addition, the control device can also be designed and configured as computer hardware, a computer network and / or an IT network or a cloud with control software installed, implemented and / or instantiated thereon. Here, the control software can also be modularly constructed and designed from a plurality of software modules.
[0023] Here, the control device can be designed and configured in a modular manner, so that in addition to the so-called central module or CPU module, one or more expansion modules can be provided, wherein the central module or CPU module is designed and configured to run a control program, for example, to control a component, a machine or a facility (or a part thereof). Such an expansion module can be designed and configured, for example, as a current / voltage supply device or also for inputting signals from a machine or a facility and / or outputting signals to a machine or a facility, or can also be designed and configured as a functional module for performing specific tasks (e.g., a counter, an inverter, data processing by means of artificial intelligence methods (e.g., including neural networks or other machine learning models)...).
[0024] The control device can also be designed and configured as a so-called EDGE device, wherein such an EDGE device can, for example, include an application for controlling a device or an installation. For example, such an application can be designed and configured as an application with the functionality of a programmable logic controller. In this case, the EDGE device can, for example, be connected to another control device of the device or installation or also directly to the device or installation to be controlled. In addition, the EDGE device can be designed and configured so that it is additionally connected to a data network or a cloud, or is designed and configured for connection to a corresponding data network or a corresponding cloud.
[0025] The control device can also be designed and configured, for example, as a so-called programmable logic controller (SPC). Furthermore, the safety-oriented control device can also be designed and configured as a so-called modular programmable logic controller (modular SPC).
[0026] A programmable logic controller, or SPS for short, is a component that is programmed and used to regulate or control an installation or a machine. In a programmable logic controller, specific functions can be implemented, i.e., process control, for example, so that input and output signals of a process or a machine can be controlled in this way. For example, the basic properties of a programmable logic controller are defined in the standards EN 61131, IEC 61131 and / or EN 61499. It can, for example, be designed and configured according to at least one of the standards EN 61131, IEC 61131, IEC 61131 and / or EN 61499 and / or at least one of the substandards of the standards EN 61131, IEC 61131 and / or EN 61499.
[0027] The SPS can be implemented in different ways and methods. That is, the SPS can be implemented as a single electronic device, as a software simulation, as a PC plug-in card, etc. Usually, there are other modular solutions, in which the SPS is assembled from a plurality of plug-in modules.
[0028] In order to control the machine or the installation, the control device can, for example, include corresponding interfaces and / or modules for communicating with the machine or the installation.
[0029] For example, control devices can be designed and configured to perform real-time control of a machine or facility.
[0030] In order to communicate with other components of the control device, the application module can, for example, include corresponding interfaces for operating a communication connection with other components of the control device. In this case, such communication can, for example, be carried out via a corresponding internal bus, an external bus or also a combination of an internal and an external bus. In this case, for example, the bus mentioned can at least include, but is not limited to, being designed and configured for real-time communication between different components of the control device.
[0031] In the case of a modular control device configured as hardware with a plurality of modules, such communication with other components of the control device can take place, for example, via a so-called backplane bus. In the case of a control device with a plurality of software modules, implemented in a computing device, a computer or a so-called industrial PC, such communication can take place, for example, via a corresponding internal bus. In this case, for example, the internal bus can at least include, but is not limited to, being designed and configured for real-time communication between different components of the control device.
[0032] Additional functions for a control device can be, for example, functions for such a control device that are not provided by a central control component and / or other components of the control device. For example, additional functions for a control device can be designed and configured as functions that are not predefined by a standard for control devices (e.g., standard IEC 61131, IEC 61499 or similar standards). Additional functions for a control device can, for example, be or include one or more of the functions listed below: functions for running software in a specific programming language, functions for implementing mathematical algorithms, analysis methods and / or big data analysis, functions for realizing and / or implementing machine learning methods, machine learning models, artificial intelligence methods and approaches, neural networks or the like, functions for implementing Boolean methods or the like.
[0033] A user application can also be referred to as a user program and can be any type of software designed, configured and / or provided for running in an application module, configuring and / or parameterizing an application module, used by an application module and / or stored in an application module. Furthermore, a user application can be any type of software running on an application module, with which an application module is configured and / or parameterized or has been configured and / or parameterized, which is or has been used by an application module and / or which is stored in an application, in particular in a storage device of an application module. In this case, a user application can, for example, include executable software programs and / or data or parameters for use by an application module and / or a user application.
[0034] Software includes, for example, programs as well as associated documentation and other data required for operating a computer. This is defined in ISO / IEC Standard 24765, for example.
[0035] Additional functions for controlling the device can then be implemented, for example, by running a corresponding user application or a corresponding user program in an application module, running software already implemented in the application module and / or a corresponding operating system (firmware) using corresponding user data or parameters, or also a combination of options.
[0036] In operating mode, the application module provides additional functionality for controlling the device.
[0037] In one advantageous configuration, it can be provided that the application module provides additional functions for the control device in an operating mode, while the application module is integrated into the control device or interacts with other components of the control device within the scope of controlling the machine or the installation.
[0038] Furthermore, the application module can include operating system software which is designed and configured such that the application module can be run in an operating mode and a test mode, or the application module runs in an operating mode or a test mode.
[0039] Here, the application module can be designed and configured such that, for example, after the application module is switched on and / or turned on, if there is no corresponding parameter, trigger, signal, user input or similar data or component that triggers an alternative processing mode, the application module enters the operating mode. Such an alternative processing mode can be, for example, the activation of a test mode for testing a user application, an update mode for updating an installed application, an operating system or firmware of the application module, or the activation of a similar alternative mode.
[0040] For example, the test mode can be designed and configured such that the activities of the application module carried out within the scope of the test mode have no influence on the machine or installation that may be operated by the control device and / or the control module. In this way, for example, a user application can be tested in the application module without causing disturbances and / or damage to other components of the automation system in which the application module is integrated, for example in the case of errors in the user application. In particular, in this way, when testing the user application, disturbances and / or damage are not caused in the control device in which the application module is integrated or in the correspondingly connected and / or controlled machine or installation.
[0041] The test mode thus makes it possible to test the user application in a configurable scenario directly on the application module, ie, on the module hardware that is used later on.
[0042] If corresponding parameters, triggers, signals, user inputs or similar data or components are present and recognized or detected by the application module, the application module can, for example, enter or switch into a test mode.
[0043] Such identification and / or detection of corresponding parameters, triggers, signals, user inputs or other information that trigger the test mode can be triggered, for example, by a specific operating state or a change in operating state, i.e., for example, by turning on, initializing or starting or restarting the application module. Furthermore, the test mode can also be triggered by a separate query. Such a query can be triggered, for example, by a user input (e.g., a button at the application module or also via a corresponding input connected to the application module or to it, such as a computer, HMI, mobile phone, tablet computer, etc.). Furthermore, such a query can also be automatically performed once or periodically by the application module.
[0044] In this case, the application module can also be designed and configured such that the application module is designed and configured to execute a test mode even if the application module is not connected or coupled to a corresponding control device. In this way, it is possible to test a user application for the application module without already having complete control hardware or a complete control device, wherein in the subsequent application the application module interacts with the control hardware or the control device to control a machine or an installation.
[0045] Furthermore, the application module can also be designed and configured such that the application module is designed and configured to execute a test mode when it is connected or coupled to the control device.
[0046] In an advantageous configuration, the application module can be designed such that it is designed and configured to execute the test mode both when the application module is connected or coupled to the control device and when the application module is not connected or coupled to the control device.
[0047] In this context, as already explained above, coupling or connection to a control device is to be understood to mean at least communicatively coupling or connection.
[0048] Testing a user application is understood to mean, for example, that the user application is run and / or executed in an operating mode when the user application interacts with other components of a control device for controlling a machine or an installation.
[0049] In particular, the test of the user application can be designed and configured so that when testing the user application, although the user application runs in the application module or in real time in the same way as it will later control the machine or facility, no control signals are output to the machine or facility during the test.
[0050] When testing a user application, it is possible to test the configuration, parameterization, and / or running code of the user application in a configurable scenario.
[0051] The above object is also achieved by an application module for controlling a device,
[0052] The application modules are designed and configured to communicate and interact with other components of the control device within the control scope of the machine or facility.
[0053] wherein the application module is designed and configured to generate additional functions for the control device by using a user application,
[0054] And the application module is further designed and configured such that the user application can be tested on the application module even if the application module is not connected to the control device or other components of the control device.
[0055] In an advantageous configuration, the application module can be designed and configured in such a way that the user application can be tested on the application module even if the application module is not at least not communicatively connected to the control device.
[0056] In one advantageous configuration, it can be provided that an automation engineering system is provided for configuring the control device and an application engineering system is provided for creating a user application.
[0057] The application module is designed and configured such that the test of the user application is performed or can be executed by means of the interaction between the application module and the application engineering system.
[0058] In this case, the application module can also be designed and configured in such a way that a test of the user application is carried out or can be performed by means of a direct interaction of the application module with the application engineering system.
[0059] In another advantageous configuration, an automation engineering system for configuring the control device and an application engineering system for creating a user application can be provided, wherein the application module is designed and configured such that a test of the user application can be carried out or executed including the control device and / or the automation engineering system.
[0060] The configuration concept enables the user application to be tested on the application module without the need for the involvement or use of an automation engineering system. It is therefore also possible to test the user application on the application module directly in conjunction with the application engineering system without the need for the inclusion of an automation engineering system.
[0061] The configuration concept enables, for example, that the application engineering system, which is also used to configure, develop, create and / or parameterize the user application, is also used to test the user application on the application module. In addition to the application-specific know-how for testing the user application, relatively little information or experience with other components of the control device is required or even not required, in particular knowledge of the corresponding automation engineering system is not required.
[0062] This is particularly advantageous in the case of user applications that require specific technical know-how or specific understanding, i.e., for example in the field of machine learning, artificial intelligence, neural networks, simulations, big data analysis, statistics, mathematical algorithms, special programming languages or similar applications. This is because, for example, a specialist with this specific technical know-how does not usually necessarily have the corresponding technical know-how when handling the corresponding automation engineering system or creating a control program and / or when configuring a control device.
[0063] This allows simplified and / or improved testing of software or applications for the control system.
[0064] An automation engineering system is understood here to be a system or software with the aid of which a control device for controlling a machine or a facility is programmed, parameterized and / or configured. In particular, for example, a corresponding control program for the control device is created with the aid of an automation engineering system, corresponding communication connections for communication within the control device and / or for communication with corresponding computers, computer networks or clouds, HMI devices, other control devices, edge devices, field devices, drives and / or sensors are configured and / or parameterized, and the control device itself is configured and / or parameterized. In a control device comprising a plurality of components, for example, individual components are configured and / or parameterized with the aid of a corresponding automation engineering system, and also their connections are configured and parameterized.
[0065] For example, an automation engineering system can be designed and configured as a computer system with suitable software, and the computer system is designed and configured to generate automation engineering data for a specific machine or production facility. Such automation engineering data is, for example, data created and / or set for the automation and / or control of a production facility or machine. This includes, for example, creating corresponding control programs with the aid of such automation engineering systems, and correspondingly parameterizing the components of the production facility or machine and the corresponding control devices. An example of such an engineering system is, for example, a computer system with software called "TIA-Portal" installed on a commercial product. Here, automation engineering data can include various engineering elements, such as one or more control programs, variables, so-called "tags", program blocks, function blocks, data blocks, program blocks, so-called "program organization units", the data types used, the ID information of the components, configuration data, the call information of the program elements, comments, control programs and / or similar engineering elements.
[0066] The application engineering system can be designed and configured, for example, as software installed on a computer, a computer network or also in the cloud, the software being designed and configured for developing a user application according to the present description.
[0067] In particular, the application engineering system can be designed and configured to create user applications in a specific technical field or a specific type of user application. For example, the application engineering system can be constructed and configured to create user applications in the fields of machine learning, artificial intelligence, neural networks, simulation, big data analysis, parsing, statistics, mathematical algorithms, special programming languages (such as C, C++, Python, etc.) and / or similar fields.
[0068] Testing of the user application by means of an interaction or direct interaction of the application module with the application engineering system can be designed and configured, for example, in such a way that a corresponding automation engineering system for controlling the device is not involved in such a test.
[0069] For example, in this way a development tool can also be used when testing a user application, or at least interacted with when testing a user application, wherein the development tool is used when developing the user application or is provided by the application engineering system.
[0070] In this context, direct interaction is understood, for example, to mean that no other logic units are involved in the interaction between the application engineering system and the application module. Direct interaction can also be designed and configured, for example, such that no significant data conversion occurs in the exchange of interaction between the application engineering system and the application module or in the transmission of data between the application engineering system and the application module.
[0071] The direct interaction of the application module with the application engineering system does not mean that there must be an uninterrupted communication connection, a direct communication connection or even a communication connection between the application module and the application engineering system.
[0072] In the context of the test, there must be no or no permanent communication connection between the application engineering system and the application module. For example, the test can be designed and configured such that, for example, the application engineering system is used to prepare the test data or application, and the data or the user application is then transferred to the user application for testing. This transfer can be carried out, for example, via a communication connection or also a removable storage device (e.g. SD card, etc.) or similar.
[0073] The application engineering system can also be connected to the application module during the test. In this case, for example, the test of the user application can be run on the application module without the application engineering system or also with the application engineering system.
[0074] The above object is also achieved by an application module for controlling a device,
[0075] The application modules are designed and configured to communicate and interact with other components of the control device within the control scope of the machine or facility.
[0076] The application module is designed and configured to generate additional functions for the control device by using the user application,
[0077] It includes automation engineering for configuring controls and application engineering for creating user applications.
[0078] The application module is designed and configured in such a way that testing of the user application is carried out or can be carried out by means of interaction of the program module with the application engineering system.
[0079] In this case, the application module can also be designed and configured in such a way that a test of the user application takes place or can be carried out by means of a direct interaction of the application module with the application engineering system.
[0080] In this case, the interaction or direct interaction of the application module with the application engineering system can be designed and configured in such a way that a test of the user application is carried out or can be performed without the involvement of a control device and / or an automation engineering system.
[0081] The above object is also achieved by an application module for controlling a device,
[0082] The application modules are designed and configured to communicate and interact with other components of the control device within the control scope of the machine or facility.
[0083] The application module is designed and configured to generate additional functions for the control device by using the user application,
[0084] It includes automation engineering for configuring controls and application engineering for creating user applications.
[0085] The application module is designed and configured in such a way that a test of the user application can be carried out or executed without the inclusion of a control device and / or an automation engineering system.
[0086] Here, the application module, the control device, the communication and / or interaction between the application module and other components of the control device, other components of the control device, the control device of a machine or facility, additional functions for the control device, the user application, the automation engineering system, the application engineering system, the testing of the user application and the direct interaction between the application module and the application engineering system are designed and configured according to this specification.
[0087] Such an application module enables, for example, an application engineering system that is also used to configure, develop, create and / or parameterize a user application to also be used to test the user application on the application module. In addition to the specific application know-how for testing the user application, relatively little or no information or experience is required about other components of the control device, in particular no knowledge about the corresponding automation engineering system.
[0088] This allows simplified and / or improved testing of software or applications for the control system.
[0089] The application module can be designed and configured to execute an operating mode, wherein additional functions for controlling the device are generated with the user application in the operating mode. The application module can also be designed and configured to execute a test mode, wherein the test mode is designed and configured to test the user application.
[0090] Such a test mode enables, for example, that the application module and thus the hardware on which the user application is ultimately to run have been used or can be used for testing the user application. This makes it possible, for example, to identify problems and / or errors that are caused, for example, by differences in the hardware (and / or hardware properties) between the application module and the system on which the user application has been developed.
[0091] By virtue of the application module having a test mode according to the present description or being designed and configured to carry out such a test mode, an improved and / or simplified testing of software or applications for the application module or a control system having such an application module is possible.
[0092] In this context, for example, application modules, operating modes, additional functions, control devices, user applications and test modes can be designed and configured according to this description.
[0093] The application module according to the present specification can also be designed and configured such that the application module includes a simulation application for simulating a control function of a control device.
[0094] The configuration concept has the advantage that, via the simulation application, the application module itself can be placed, for example, within the scope of testing a user application, to provide or assume functions that are provided by one or more other components of the control device during normal operation of the control device. This improves and / or simplifies the testing of the user application with the aid of the application module, since in this way the application module is less dependent on other components of the control device or even independent of other components of the control device when testing the user application.
[0095] In an advantageous configuration, the application module can also be designed and configured to simulate the underlying control functions of the control device or the basic control functions of the control device.
[0096] Here, the underlying control functions of the control device can be designed and configured, for example, as functions defined, for example, for a programmable logic controller in one or more of the standards EN 61131, IEC 61131, EN 61499, IEC 61499. Furthermore, the underlying control functions or basic control functions can, for example, include functions defined in one or more of the standards EN 61131, IEC 61131, EN 61499, IEC 61499 and executed or executable by a central or CPU module of the control device, programmable logic controller or modular programmable logic controller.
[0097] Furthermore, the application module may also comprise one or more external interfaces (e.g. an external interface of a control device), (e.g. an Ethernet interface and / or an Ethernet port for an external camera (e.g. a GigE Vision camera)), or also a simulation of other components (e.g. other components of a control device or also external components (e.g. a camera simulation)).
[0098] The simulation of the control functions of the control device may include, for example, a simulation of firmware functions of the control device.
[0099] Furthermore, a simulation of the control functions of the control device can also be designed and configured as a control device simulation program.
[0100] The simulation of the control functions of the control device can, for example, also be designed and configured as a simulation of the underlying control functions of the control device.
[0101] In addition, the underlying control function can also be designed and configured as a function that is provided, must be provided, and / or can be provided by other components of the empty box device to the application module within the scope of the operation of the user application. Therefore, the underlying control function can be a function that must and / or can be provided by one or more other components of the control device to the application module within the normal operation scope of the user application in the application module.
[0102] Such other components of the control device can be, for example, a central unit or a central module or a CPU module of the control device, or also, for example, input and / or output modules, function modules and / or interface modules (for example, a fieldbus interface module, Ethernet interface module, OPC UA interface module or similar interface modules).
[0103] Below, an exemplary function of a simulation application for simulating the control functions of a control device is described. In the example, the application module is designed and configured for running a neural network application. In the example, the user application is designed and configured for implementing an automatic optical inspection (AOI) using a neural network. In this case, the user application includes the process of the automatic optical inspection and all necessary information about the neural network. These can be, for example, parameters of the nodes of the neural network and the number of nodes and / or the layer arrangement, or also a corresponding program code (for example in the "Python" language) for implementing the neural network.
[0104] In this case, the simulation of the control function then includes, for example, one, several or all of the following functions:
[0105] - Simulation of triggers for starting image evaluation via the application module with the AOI user application;
[0106] - Provide images when requested by an application module or AOI user application;
[0107] - providing a second image if this is requested by the application module or the AOI User Application;
[0108] - Collect the results after processing the data through the neural network;
[0109] - The above results are transmitted to a target medium. Here, the target medium can be, for example, a storage device in the application module, a detachable or connectable storage device (such as a memory card, etc.) in the application module, or also an external computing device;
[0110] -Comparing the results of processing the data through the neural network with a preset predetermined or target result;
[0111] - Transmitting the comparison result of the above result with the predetermined or target result to a target medium. The target medium can be, for example, a storage device in the application module, a detachably connected storage device in the application module or also an external computing device or an external computing network.
[0112] The above object is also achieved by an application module for controlling a device,
[0113] wherein the application module is designed and configured to communicate and interact with other components of the control device within the control scope of the machine or facility,
[0114] The application module is designed and configured to generate additional functions for the control device by using the user application,
[0115] The invention is characterized in that the application module comprises a control device simulation application for simulating the control function of the control device.
[0116] An application module designed in this way has the advantage that, for example, the application module itself can be placed in the context of testing a user application via a simulation application to provide or assume functions that are provided by other components of the control device during normal operating mode of the control device. This improves and / or simplifies the testing of the user application with the aid of the application module, since the application module is in this way less dependent on other components of the control device or even independent of other components of the control device when testing the user application.
[0117] Here, application modules, control devices, communication and interaction between application modules and other components of the control device, other components of the control device, control of machines or facilities, additional functions for the control device, user applications, control device simulation applications, and simulation of control functions of the control device can be designed and configured according to this specification.
[0118] Furthermore, an automation engineering system for configuring the control device and an application engineering system for creating a user application can be provided.
[0119] The application module is designed and configured such that the test of the user application is performed or can be executed by means of the interaction between the application module and the application engineering system.
[0120] In this case, the application module is also designed and configured in such a way that a test of the user application is carried out or can be performed by means of a direct interaction of the application module with the application engineering system.
[0121] Here, application modules, automation engineering systems, control devices, application engineering systems, user applications, testing of user applications, and interaction or direct interaction of application modules with application engineering systems can be designed and configured according to this specification.
[0122] Furthermore, the application module can be designed and configured to execute an operating mode, wherein in the operating mode additional functions for controlling the device are generated with the user application, and wherein the application module is also designed and configured to execute a test mode, wherein the test mode is designed and configured for testing the user application.
[0123] In this case, application modules, operating modes, additional functions for controlling the device, user applications, test modes and tests of user applications can be designed and configured according to this description.
[0124] In an advantageous configuration, a test identifier is provided, wherein the application module is also designed and configured to query and / or identify the test identifier and to execute the test mode after identifying the test identifier. In addition or alternatively, the application module is also designed and configured to test the user application after identifying the test identifier.
[0125] Due to the presence of such a test identifier, it becomes possible to initiate testing of the user application by means of the application module as required. This also improves and / or simplifies the testing of the user application. The configuration and / or storage of such a test identifier can be performed, for example, by the user or also semi-automatically or automatically, for example, by an application engineering system for creating the user application.
[0126] Here, the test identifier can be any suitable, for example digital and / or electronically storable quantity or any digital data that can be stored in a storage device. For example, the test identifier can be stored or can be stored in a storage device of the application module, for example, also in a storage device (such as an SD card, etc.) that can be detachably connected to the application module. In addition, the test identifier can also be an electromechanical or mechanical identifier, such as a push button, an operating switch device or a similar mechanical or electromechanical identifier.
[0127] Querying the test identifier can for example include querying a corresponding variable or a corresponding storage location in a storage device or also querying for example the position or state of an electromechanical or mechanical identifier. Identifying the test identifier includes knowing the application module, i.e. which storage value or which state of the electromechanical or mechanical identifier triggers or causes the test user to apply or execute the corresponding test mode.
[0128] Here, the test identifier can be queried by the application module at a preset time point, at multiple preset time points (e.g., periodically), or by corresponding user input. For example, the query of the test identifier can be triggered when the application module is booted or turned on and / or by a test trigger signal (e.g., via an external communication interface, a test button, a reset button, etc.).
[0129] Executing the test mode after identifying the test identifier means starting the test mode after identifying the test identifier, or maintaining the test mode if already started. Executing the test of the user application after identifying the test identifier means executing the test of the user application after identifying the test identifier, or continuing the user application test that is already running.
[0130] Furthermore, it can be provided that the application module comprises a test memory device or is connected to a test memory device and can write to the test memory device without a control device and / or an automation engineering system according to the present description.
[0131] The fact that the test memory device can be written without the involvement of a control device and / or an automation engineering system has the following advantages: Writing to the test memory device is possible without the need for a control device and / or an automation engineering system. This enables, for example, the operation of the application module, for example for testing a user application, without the involvement of a control device and / or an automation engineering system. This enables improved and / or simplified testing of the user application with the aid of an application module designed and configured in this way.
[0132] In this case, the application modules, the control devices and the automation engineering system can be designed and configured according to this description.
[0133] The test storage device and the application module can also be designed and configured such that when the test storage device is connected to the application module or the application module includes the test storage device, the test storage device can be read by the application module.
[0134] The test storage device can be written or described without involving a control device and / or an automation engineering system according to the present description, and can be designed and configured such that the test storage device can be written to or written by the electronic device when the test storage device is communicatively connected to the electronic device and does not need to jointly contain or involve a control device and / or an automation engineering system according to the present description when writing. In this case, the communication connection between the test storage device and the electronic device can exist permanently or only temporarily.
[0135] For example, the test storage device can be designed, arranged and attached in such a way that, when it is communicatively connected to an application engineering system and hereby necessarily includes or involves an automation engineering system or a control device according to the present description, the test storage device can be written to or written to by the application engineering system according to the present description. In this case, the communication connection between the test storage device and the application engineering system can exist permanently or only temporarily.
[0136] The test storage device can be connected to the application module fixedly or integrated into the application module or can be connected to the application module detachably, for example. In this case, the test storage device can be connected to the application module in a communicative, mechanical and / or electrical manner, for example. The communication connection between the test storage device and the application module can be designed and configured, for example, as a wireless communication connection (for example via mobile radio, WLAN, Bluetooth, NFC or similar communication connection) or also as a wired communication connection.
[0137] The test storage device can be designed and configured, for example, as a RAM memory (RAM: Random Access Memory), an EPROM memory or a similar writable electronic memory. For example, the test storage device can be designed as a memory that is fixedly installed in the application module, or it can also be designed as a memory that can be detachably connected to the application module. Such a memory that can be detachably connected to the application module can be designed and configured, for example, as an SD card, a USB stick or a similar storage device. In addition, the test storage device can be designed and configured as a computer, an external data drive, an external data server, an NFS (Network File System), a storage unit in the cloud or a similar storage device.
[0138] Furthermore, the test memory device can also additionally be written to by a control device and / or an automation engineering system according to the present description or can be read from such a device.
[0139] In this case, the application module can be designed and configured such that the test storage device can be detachably connected to the application module.
[0140] Here, the test storage device can be in particular detachably connected to the application module in communication. In this case, the communication connection between the test storage device and the application module can be disconnected or interrupted as required or the connection can also be restored or established. The test storage device detachably connected to the application module in communication or connectable can be designed and configured as a memory card, SD card, USB stick or similar storage device, for example. In addition, the test storage device detachably connected to the application module in communication or connectable can be designed and configured as an external data drive, an external data server, an NFS (Network File System), a storage unit in the cloud or a similar storage device.
[0141] In addition, the test storage device can also be detachably connected to the application module mechanically and / or electrically. In this case, the mechanical and / or electrical connection can be interrupted or disconnected, or the connection can also be established or restored. Such a test storage device detachably connected to the application module mechanically and / or electrically can be designed and configured, for example, as a memory card, SD card, USB stick or similar storage device.
[0142] In this case, the application module can again be designed and configured according to the present description.
[0143] Such an arrangement of the application module has the advantage that such a flexible coupling of the test memory device enables simplified communication with the application module, for example for testing a user application. This improves and / or simplifies testing of a user application with the aid of such an application module.
[0144] The application module can also be designed and configured such that the test storage device is or can be written to via an external communication interface of the application module.
[0145] In this case, the external communication interface of the application module can be designed and configured, for example, as a wired interface or a wireless interface.
[0146] For example, in the case of a wired interface, a plug connector can be provided at the application module to connect with a corresponding plug counterpart of the associated communication line. The application module can include a corresponding protocol stack for communication via an external communication interface. Such a wired interface can be designed and configured, for example, as an Ethernet interface, a fieldbus interface or any other wired communication interface.
[0147] In addition, the application module can also include a wireless interface. Such a wireless interface can be designed and configured, for example, as a WLAN interface, a Bluetooth interface, an RFID interface, a near field communication (NFC) interface, a mobile radio interface or any other wireless interface. For this purpose, the application module can include corresponding transmitting and / or receiving devices and / or corresponding antennas if necessary. In addition, the application module can also include a corresponding protocol stack to communicate via the wireless interface.
[0148] For communication via the communication interface or for writing to the test storage device, the application module can, for example, have a corresponding network address. In addition, the test storage device itself can also include a specific network address or a network identifier or a network ID.
[0149] In this case, for example, the application module can be designed and configured in such a way that it requests certain data in the external device, the data are then transmitted to the application module via the communication interface and are then stored in the test memory device.
[0150] Furthermore, the application module can also be designed and configured such that data is transmitted from the external device to the application module via the communication interface of the application module and then stored in the test storage device. Here, for example, it can be provided that the transmitted data is stored in the test storage device under the control of the external device. For example, it can also be provided that the transmitted data is sent from the external device and transmitted to the application module and then stored in the test storage device under the control of the application module.
[0151] It can also be provided that test data for testing the user application are stored on the test storage device.
[0152] In an improved form, it can be proposed that the test data also constitutes test input data and / or target result data for use by the application module, and the target result data constitutes a preset result of processing the test input data by the application module. It can also be advantageously proposed that the test data also includes test input data for use by a user application in the application module, and / or includes test input data and / or target result data for use by a user application in the application module, and the target result data constitutes a preset result of processing the test input data by the user application in the application module.
[0153] In this case, the test data can be designed and configured as software or software applications or include such software or such software applications, for example. For example, the software can be designed and configured as executable code, for example, as interpretable code (for example, in the programming language "Python") or as translated or compiled code (for example, in the programming language C, Mendix, etc.). Such software or software applications can be or include, for example, programs for providing specific functions, simulation programs, models trained by means of machine learning (so-called ML models), etc.
[0154] Furthermore, the test data can include a test configuration, wherein such a test configuration can include, for example, information about which test can or should be carried out and how such a test should be carried out or run.
[0155] The test data can also include a test identifier according to the present description. In this case, the presence of the test data in the test storage device can also constitute a test identifier according to the present description.
[0156] The test data can also be or include data for testing the user application. For example, the test data can be designed and configured as test input data so that the user application is run with the test data. It can also be provided that there are also test result data, which constitute the planned results of running the associated test input data with the user application. For example, the test data can therefore include such test input data and associated test result data or can be designed as such data.
[0157] For example, in the case of a user application designed as a trained neural network, the test input data can be different images, wherein the user application is designed and configured for processing image information, wherein the associated test result data then constitute the planned result of the processing of the corresponding image by means of the neural network, which is associated with the corresponding test image. In this way, for example, the application module can then be provided with data with the help of which the correct function of the neural network implemented on the application module can be checked. The check is then particularly meaningful or necessary if, for example, hardware elements are installed on the application module that were not implemented on the development system for the neural network. For example, such hardware can be a corresponding hardware accelerator for improving the processing of the neural network.
[0158] With the aid of the test input data and the associated test result data, it can then be checked, for example, whether the corresponding user application also runs properly on the hardware of the application module.
[0159] In addition, the test data can also be designed and configured as information related to an external storage device, an external data processing device and / or externally stored data, or can include such information. Here, such information about the external storage device, the external data processing device and / or the externally stored data can be designed and configured as, for example, a hyperlink, a network address, a file name, ID information, etc.
[0160] Such externally stored data can, for example, in turn be designed and configured as test data according to the present description.
[0161] In this way, the application module can obtain or receive corresponding test data according to the present description from an external storage device or data processing device, ie, for example, a computer, an external data storage, NFS, the cloud, etc.
[0162] This further simplifies the testing of the corresponding user application, since, for example, the corresponding test data need not be transferred to the application module until the test for the user application is carried out, so that, for example, the storage space for reserving such test data in the application module can be reduced or omitted.
[0163] Furthermore, it can be provided that the test memory device comprises a user application and / or application configuration data for configuring an application module and / or a user application.
[0164] Application configuration data can be, for example, data by means of which an application module is configured for normal operation of a user application designed as a software application or runtime code. In addition, such application configuration data can include, for example, data about hardware components connected to the application module or the control device or included by the control device. In addition, the application configuration data can also include communication parameters or communication settings for the application module to communicate with other hardware devices and / or other components of the control device.
[0165] The application configuration data can also include data for configuring the user application or for adapting the user application to specific specifications, for example, of an application module and / or a control device or other components of a control device.
[0166] Furthermore, application configuration data can also be data for preparing specific test input data and / or test result data for an application module and / or a specific user application.
[0167] Additionally, the test storage can include a test identifier.
[0168] In this case, the test identifier can be designed and configured, for example, according to the present description.
[0169] In an advantageous configuration, it can also be provided that the test storage device includes ID information about the external storage device, wherein the application module is designed and configured to identify data on the external storage device and / or request and / or load data from the external storage device. In particular, the application module can be designed and configured to identify, request and / or load test data for testing a user application, application configuration data for configuring the application module, application configuration data for configuring a user application and / or a test identifier according to the present specification on or from the external storage device.
[0170] The configuration concept has the advantage that, when necessary, for example within the context of testing a user application, data for carrying out or supporting a user application test can be transferred directly from an external storage device to the application module. In this way, for example, the test data can be trained in a simplified manner according to the current description of the application module. In this way, for example, storage space in the application module can be saved or updated test data can also be used in this way for use in the application module, for example within the context of testing a user application.
[0171] The ID information about the external storage device can be, for example, a name, an identifier, a network address, a hyperlink or similar information, by means of which, for example, a data processing device or a storage device within a computer network or a communication network can be identified or can be identified.
[0172] The data on the external storage device can be identified, for example, by means of a corresponding file name, a file identifier, a data description and / or by means of similar information.
[0173] For requesting and / or loading, the application module can, for example, include a communication component designed in the manner of a client, which can, for example, request specific data from an external storage device designed as a server. Furthermore, the application module can also be designed and configured within the scope of this or similar mechanisms for participating in so-called "publish-subscribe" communication schemes, for example for subscribing to specific data or information.
[0174] The application module can also be designed and configured so that it provides information to the external storage device that allows the external storage device to store data on the application module or in the test storage device.
[0175] The external storage device can be designed and configured, for example, as a data processing device, a computer, a network storage, a so-called NFS, an external drive, an external hard drive, an SSD or a similar storage device.
[0176] The external storage device can be directly or indirectly connected to or can be connected to the control device and / or the application module via a data network or communication connection, for example. Here, the external storage device can be connected to the application module and / or the control device via corresponding wireless communication or wired communication, for example.
[0177] The above object is also achieved by a method for testing a user application by means of an application module for a control device,
[0178] The method comprises the following steps:
[0179] Load test input data for testing user applications,
[0180] Load the target result data, which is the result of the plan to process the test input data through the user application.
[0181] Test user applications using test input data and target result data,
[0182] The application module is designed and configured according to this specification and is in test mode when testing user applications.
[0183] In this case, the method can be designed and configured, for example, as a computer-implemented method.
[0184] Additionally or alternatively, an application module can be designed and configured according to the present description and the loading of test input data and / or the loading of target result data and / or the testing of the user application can also be performed without involving a control device and / or an automation engineering system.
[0185] In a further alternative, an application module can be designed and configured according to the present description, wherein the application module includes a control device simulation application for simulating control functions of the control device, and wherein the user application is tested with the involvement of the control device simulation application.
[0186] Here, tests of user applications, user applications, application modules, test input data, test result data, test modes, control devices, automation engineering systems, control device simulation applications and / or control functions are designed and configured according to the present description.
[0187] In order to load the test input data and / or the target result data, provision can be made here to load the test input data into the application module according to the present description and / or into a test memory device of the application module.
[0188] The loading of test input data and / or target result data can be designed and configured, for example, so that a storage device, such as a memory card or an SD card, which is detachably connected to the application module is provided, and the test input data and / or target result data are stored in the storage device detachably connected to the application module for the first computer system or an external data processing device. When the data is stored in the storage device, the storage device can, for example, not be connected to the application module, but only be connected to the external data processing device. Here, the external data processing device can, for example, include an application engineering system according to this specification and / or store the test input data and / or target result data by such an application engineering system.
[0189] Thus, as another possible step for loading test input data or target result data, a storage device that is detachably connected to the application module can be communicated or mechanically connected to the application module so that, for example, an operating system and / or a user application of the application module can access data stored in the storage device, wherein the storage device has data stored thereon.
[0190] The loading of test input data and / or target result data can also be performed such that the data is stored via a communication connection from an external memory device or a similar device in an external data processing device or a memory device of the application module, for example a test memory device according to the present description.
[0191] The loading of test input data and / or target result data can also take place, for example, within the scope of a test directly from an external data processing device and / or storage device according to the present description.
[0192] Then, the user application can be tested, for example, with the test input data and / or the target result data, such that the test input data are loaded from the storage device of the application module, or also directly from the external data drive, and then the user application is run with the test input data. Furthermore, the user application can be tested, such that after the test run of the user application, for example with the test input data according to the present specification, the result data of the test are compared with the associated target result data.
[0193] Then, for example, a comparison of the target result data with the result data from the test of the user application can be performed directly in the application module. Furthermore, it can also be provided that the result data determined in the context of the test of the user application are stored again, for example, on a data carrier that is detachably connected to the application module and then subsequently compared with the corresponding target result data in another data processing device. It can also be provided that the result data determined when testing the user application are transmitted to another data processing device or data storage device and then read from there on a corresponding other computing device or data processing device and compared with the corresponding target result data.
[0194] For example, the activation of the test mode can be designed and configured according to the present description. In this case, for example, the test mode is activated after the corresponding test identifier has been able to be recognized by the application module according to the present description. This query or recognition of such a test identifier is performed, for example, when booting or restarting the application module, or also in response to a corresponding user input or a corresponding electrical or electronic trigger signal. Such a trigger signal can be triggered, for example, by a corresponding switch or a corresponding button at the application module itself. Furthermore, such a trigger signal can be a trigger signal transmitted via a communication connection, the trigger signal being sent or triggered, for example, by an application engineering system, a control device, an automation engineering system or another data processing device or a computing device.
[0195] The above object is also achieved by a method for writing a test storage device for an application module according to the present specification by an application engineering system according to the present specification,
[0196] The method comprises the following steps:
[0197] processing the test input data by means of the user application and storing the target result data determined therein,
[0198] The test storage device is written with test input data and / or target result data by the application engineering system.
[0199] In this case, the method can be designed and configured, for example, as a computer-implemented method.
[0200] Here, a test storage device, an application module, an application engineering system, test input data, a user application, target result data, and a test storage device can be designed and configured according to this specification.
[0201] To prepare for testing the user application with the application module, the method mentioned above can be designed and configured, for example, such that test input data are processed, for example, with the user application in the application engineering system and the results of the processing are stored as target result data.
[0202] Thus, for example, the goal of testing a user application on an application module is that when the user application is run on the application module, target result data is also generated as a result when the test input data is processed by the user application running on the application module. If this is the case, this indicates that the user application on the application module functions correctly.
[0203] In the context of this method, it can be provided, for example, that the test input data are stored in a test memory device. It is then ensured that the application module also has access to the test memory device, for example by connecting the test memory device to the application module. If the test memory device is already part of the application module, this step is omitted because the communication connection to the application module has already been established.
[0204] The user application is then tested in the application module, so that the test input data are processed by means of the execution of the user application and test result data are generated in the process.
[0205] Next, the test result data are compared with the target result data. For example, this comparison can also be performed in the application module. For this purpose, for example, in addition to the test input data, the corresponding target result data can also be written to the test storage device (for example, by the application engineering system), so that the target result data are known to the application module.
[0206] In addition, the test result data determined within the scope of testing the user application on the application module can also be transmitted to another data processing device, such as an application engineering system, and the test result data can be compared with the target result data there. For this purpose, the test result data can also be stored in a test storage device and / or can also be transmitted from the application module to an external data processing device.
[0207] In an alternative configuration, it can be provided that only the target result data are written to the test storage device. The associated test input data can be transmitted to the application module directly from an external data processing device and / or a corresponding device, i.e., for example, a camera, camera simulation, sensor, sensor simulation or similar data processing device or device, for example, via a communication connection. The generation of the target result data can in turn be performed, for example, in an external data processing device, such as an application engineering system.
[0208] The above object is also achieved by a method for writing a test storage device for an application module according to the present specification by an application engineering system according to the present specification,
[0209] The method comprises the following steps:
[0210] processing the test input data by means of the user application and storing the target result data determined therein,
[0211] storing the test input data and / or the target result data in a storage device that can be addressed by means of the ID information,
[0212] The test storage device is written with ID information by the application engineering system.
[0213] In this case, the method can be designed and configured, for example, as a computer-implemented method.
[0214] In the configuration scheme, it can be provided, for example, that target result data for testing a user application on an application module are generated, for example, by running the user application on an external data processing device (for example, an application engineering system) in the following way: corresponding test input data are processed by the user application within the scope of the operation of the user application.
[0215] Subsequently, the test input data and / or target result data are stored in a storage device, for example, stored in a storage device in the same data processing unit in which the application engineering system is also operated, or stored in another storage device in another data processing unit or also stored in another external storage device. Here, the corresponding ID information is associated with the proposed storage device respectively. Such ID information can for example include corresponding file name, drive name, folder structure, network address, hyperlink and / or similar ID information. Here, such ID information design and configuration is so that by receiving the ID information, the application module can be placed in: when there is or has been constructed a communication connection between the application module and the corresponding storage device, the target result data and / or the test input data stored in the corresponding storage device are accessed.
[0216] In one advantageous configuration, provision can also be made for a test identifier according to the present description to be written into the test memory device.
[0217] Here, for example, the test identifier, the application module, and the test storage device can be designed and configured according to the present specification.
[0218] The test identifier can be written into the test storage device by the application module itself, for example. Writing the test identifier into the test storage device by the application module can be initiated, for example, by a corresponding command from another component of the control device, a command from an external data processing device and / or a communication device, and / or by a user.
[0219] The test identifier can also be written into the test memory device, for example, by another component of the control device, an external data processing device and / or an application engineering system according to the present description.
[0220] If the application module includes a test memory device, when the test identifier is written into the test memory device, then the external data processing device, other components of the control device and / or the application engineering system must be communicatively connected to the application module in order to write the test identifier into the test memory device.
[0221] Furthermore, the test storage device can also be detachably connected to the application module. It can be provided that the test storage device is not communicatively connected to the application module when the test identifier is written into the test storage device. This can be realized, for example, in that the test storage device is designed and configured as an SD card and is removed from the application module to write the test identifier onto the test storage device and to be connected, for example, to an external data processing device and / or an application engineering system according to the present description.
[0222] Furthermore, it can be provided that the user application is written into the test memory device.
[0223] In this case, the user application, the application module, and the test memory device can be designed and configured, for example, according to this description.
[0224] The user application can be written into the test storage device by the application module itself, for example. Writing the user application into the test storage device by the application module can be initiated, for example, by a corresponding command from another component of the control device, a corresponding command from an external data processing device and / or a communication device, and / or by a user.
[0225] The user application can also be written into the test memory device, for example, by another component of the control device, an external data processing device and / or an application engineering system according to the present description.
[0226] Therefore, in the case where the application module includes the test storage device when writing the user application into the test storage device, the external data processing device, other components of the control device and / or the application engineering system must be communicatively connected to the application module to write the user application into the test storage device.
[0227] Furthermore, the test memory device can also be detachably connected to the application module or can be connected thereto. It can be provided that the test memory device is not connected to the application module when the user application is written into the test memory device. This can be realized, for example, in that the test memory device is removed from the application module to write the user application and is connected or connected thereto, for example, to an external data processing device and / or an application engineering system according to the present description.
[0228] Further advantageous configurations are revealed in the dependent claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0229] In the following, the invention is explained in more detail by way of example with reference to the attached drawings.
[0230] The accompanying drawings show:
[0231] Figure 1 A production system with automated optical inspection (AOI) and a programmable logic controller (SPS) with an AI module is shown;
[0232] Figure 2 Shown for configuration according to Figure 1 an AI module and a setup for testing a neural network implemented in the AI module;
[0233] Figure 3 Shown for configuration according to Figure 1 AI modules and alternative setups for testing neural networks;
[0234] Figure 4 Shows an alternative production system with AOI and soft SPS with AI applications;
[0235] Figure 5 Shown for configuration according to Figure 4 AI applications and setups for testing neural networks implemented there;
[0236] FIG6 shows a method for configuring Figure 4 AI applications and alternative setups for testing neural networks; DETAILED DESCRIPTION
[0237] Figure 1 A production system is shown with a robot 500 which is controlled by a modular programmable logic controller (SPS) 100 . Figure 1 The production system in also includes product control via automatic optical inspection (AOI) using a camera 400 , wherein the AOI system includes image evaluation using an AI module 110 (AI: Artificial Intelligence) of the SPS 100 .
[0238] Here, the programmable logic controller 100 is an embodiment of a control device according to the present specification. The AI module 110 is an embodiment of an application module according to the present specification.
[0239] Here, the AOI system works as follows: the camera 400 takes a picture of the product manufactured by the robot 500 after it is manufactured, and the image is transmitted to the AI module 110 and evaluated in the AI module 110 of the SPS 100. When a defective product is identified, the robot 500 then removes it from the automated production process for subsequent inspection.
[0240] Here, the AI module 110 is designed and configured for image evaluation using a neural network. To this end, the AI module 110 includes an operating environment 112 with an AI accelerator chip 114, which is designed and configured for accelerating the operation or accelerating the operation of a neural network application (NN application) 115 used in the AI module or a neural network 115 implemented in the AI module. Here, the neural network application 115 is stored as an executable code on an SD card 120, which is detachably connected to the AI module 110. Here, the neural network 115 is implemented as an executable code in a corresponding programming language (e.g., "Python"), for example.
[0241] Here, the SD card 120 is an example of a test storage device according to the present specification, and the neural network application (NN application) 115 or the neural network 115 is an example of a user application according to the present specification.
[0242] In the following description, a neural network application 115 or a NN application 115 is sometimes also referred to as a neural network 115 .
[0243] Here, the NN application 115 stored on the SD card 120 is a neural network 115 that has been trained, for example, by means of a supervised learning method. Here, the neural network 115 is trained in such a way that the neural network can qualitatively distinguish non-defective products from defective or possibly defective products based on the images recorded by the camera 400. For example, such training can be carried out in such a way that in a large number of product images, information (so-called "labels") is associated with each image as to whether it is a non-defective product or a defective product. Then, with the aid of the training images and the associated "labels", the neural network 115 can then be trained with the aid of a supervised learning method according to the prior art. In the present case, the NN application 115 has, for example, been trained with the aid of this method to recognize defective products.
[0244] The AI module also includes an Ethernet interface 111, via which the AI module 110 is or can be connected to a camera 400 or other external devices or data processing devices, such as a computer, via an Ethernet connection 402. In addition, the AI module 110 includes an SPS simulation 116 and a camera simulation 118, the functions of which are incorporated within the scope of configuring the AI module 110 and / or testing the NN application 115. Figure 2 and Figure 3 Explain in more detail.
[0245] Furthermore, the SPS 100 comprises a central unit 102 or a CPU 102, which is designed and configured, for example, for running a control program for controlling the robot 500 and an AOI quality control method using the camera 400. The central unit 102 of the SPS 100 also comprises an OPC-UA interface 103 for communicating with an automation engineering system 600 via an OPC-UA communication connection 602.
[0246] In order for the SPS 100 to communicate with the robot 500, the SPS 100 also includes an input-output module 104 or IO module 104 with a fieldbus interface 105. In this case, the SPS 100 is designed and configured so that control signals from the SPS 100 are transmitted to the robot 500 via the IO module 104 and the fieldbus connection 502. Corresponding sensor signals or other information from the robot 500 to the SPS 100 are transmitted back to the IO module 104 of the SPS 100 via the fieldbus connection 502. In addition, the central unit 102, the IO module 104 and the AI module 110 are communicatively connected via the backplane bus 101 of the SPS 100, wherein the backplane bus 101 is designed and configured for real-time communication between the modules 102, 104, 110 of the SPS 100.
[0247] In this case, the SPS 100 can be designed and configured such that, for example, control commands are generated within the scope of a corresponding control program running in the central unit 102, transmitted to the IO module 104 via the backplane bus 101, and then transmitted to the robot 500 via the fieldbus interface 105 and the fieldbus connection 502 of the IO module 104. Then, corresponding sensor signals or other information from the robot 500 are transmitted, for example, again via the fieldbus interface 105 and the fieldbus connection 502 of the IO module 104 and also via the backplane bus 101 to the central unit 102 of the SPS 100 and are used there, for example, as input variables for the control program.
[0248] The automation engineering system design and configuration is used to configure the SPS 100. In this context, for example, one or more of the above-mentioned control programs are created via the automation engineering system. In addition, for example, the fieldbus connection 502 to the robot 500 and the communication between the modules 102, 104, 110 of the SPS 100 via the backplane bus 101 are configured and parameterized. The modules 102, 104, 110 of the SPS 100 are also parameterized, configured and configured via the automation engineering system.
[0249] exist Figure 2Schematically shows a system and method flow for testing NN application 115 by means of AI module 110. Here, AI module 110 is as already combined Figure 1 As explained in detail, the SD card 120 is designed and configured Figure 2 In the state shown, it is removed from the AI module 110. In addition to the NN application 115, a test image 732 and a predetermined or target result 734 are also stored on the SD card 120, wherein the configuration, establishment and use of the predetermined or target result 734 are explained in more detail below.
[0250] Here, test image 732 is an embodiment of test input data according to the present specification, and predetermined or target result 734 is an embodiment of target result data according to the present specification.
[0251] also, Figure 2 1 shows a PC 700 including a development environment 710 for creating and testing a neural network or a neural network application 115. This development environment 710 for creating and testing a neural network 115 is also referred to hereinafter as a NN development environment 710. The NN development environment 710 also includes an operating environment 740 for running and testing a neural network developed in the NN development environment 710.
[0252] In addition, the NN development environment 710 includes a compiler 720 for various acceleration processors 114 or acceleration software applications 253, which are designed and configured to accelerate the operation of neural network applications. An example of such an acceleration processor is the AI processor 114 of the AI module 110. With the help of the compiler 720, the neural network developed in the NN development environment 710 can be converted and / or adapted to run improved or optimized on one of the mentioned acceleration processors 114 or acceleration software applications 253. Generally, it is necessary to convert the neural network application with the help of the compiler 720 so that the neural network then runs correctly and optimally on the corresponding acceleration processor 114, 253 (e.g., AI processor 114).
[0253] In addition, the PC 700 includes a database 730 containing test images 732 for testing the NN application 115 developed in the NN development environment 710. The database also includes a predetermined or target result 734, which is achieved by applying the test image 732 to the NN application 715 running in the neural network execution environment 740 of the NN development environment 710.
[0254] In order to use the NN application 115 developed in the NN development environment 710 in the PC 700 in the AI module 110, the NN application 115 must now be converted by the compiler 720 into a NN application 115 suitable for or optimized for the AI processor 114.
[0255] By converting the NN application 115 by the compiler 720, there is now a situation where the converted NN application 115 has at least in detail different functionality when running in the AI processor 114, or at least interacting with the AI processor 114. This must now be checked or tested within the scope of testing the converted NN application 115 in the AM module 110.
[0256] Here, the test is run as described below. Figure 2 In the first working step 810 shown as an arrow 810 in FIG. 1 , the converted or compiled NN application 115 (hereinafter sometimes simply referred to as NN application 115) is stored on the memory card or SD card 120. In addition, in working step 810, the test image 732 and the predetermined or target result 734 are also stored on the SD card 120. In addition, in step 810, a test flag is also stored on the SD card, and the AI module 110 recognizes based on the test flag that the test of the compiled NN application 115 stored on the SD card 120 should be started.
[0257] In the next working step 820, the SD card 120 is then inserted into the corresponding SD card slot 121 of the AI module 110 and connected via the corresponding plug connector ( Figure 2 The AI module 110 with the SD card 120 is now in the state where these components are as shown. Figure 1 In the state shown in .
[0258] The AI module 110 is designed and configured such that when the AI module 110 is booted, started, and / or restarted, the operating system of the AI module 110 checks whether the SD card 120 exists in the AI module 110, and if so, whether a test flag is stored on the SD card 120. If the operating system of the AI module 110 finds such a test flag on the SD card 120, a test mode is started in the AI module 110.
[0259] Here, the test mode is designed and configured so that the NN application 115 can run in the AI module 110 without the need for other modules 102, 104 of the SPS 100 - or also other components of the automation system, such as the camera 400 or the robot 500. In addition, the test mode of the AI module 110 is designed and configured so that information about test data for testing the corresponding NN application (for example, the compiled NN application 115 in the present embodiment) is searched for and read on the SD card. In the present example, such test data is, for example, a test image 732 for testing the compiled NN application 115. However, such information about the test data can also be, for example, a network address, a network name, a hyperlink, an IP address or similar information, and the corresponding test data, for example, in the present case the test image 732, is stored as information and can, for example, be downloaded from the AI module. For example, in combination Figure 3 An embodiment of this arrangement is explained in more detail.
[0260] The AI module 110 is designed and configured such that it is designed and configured as an extension module of the central module 102 of the SPS 100 and interacts with the central module 102 during the normal operating flow of the SPS 100. In order for the AI module 110 to function normally in the test mode even without the central module 102, the AI module 110 includes a PLC simulation 116, which includes the functions required for the corresponding AI module 110 to work, and the functions are usually provided by the central module 102.
[0261] Such basic functions belonging to the PLC simulation 116 in the present embodiment include, for example:
[0262] (1) Simulate the trigger normally sent by the central module 102,
[0263] (2) when an image is requested from the NN application 115, provide the image,
[0264] (3) providing a second image in response to a request from the NN application 115,
[0265] (4) collecting the results 736 of processing the image using the compiled neural network 115, and
[0266] (5) Write the result 736 to a file stored on the SD card with the identifier of the input used (this is in Figure 2 not shown).
[0267] (6) In the final step, the result 736 of running the compiled NN application 115 on the AI module 110 is compared with the predetermined or target result 734, and a corresponding message is output and / or stored on the SD card: that is, whether all results determined with the aid of the application module 110 are consistent with the predetermined or target result 734, or in which test images 732 there are deviations between the results determined by the AI module 110 and the predetermined or target result 734.
[0268] (6a) In an alternative configuration of the above step (6), this comparison of the result 736 determined by the AI module 110 with the target result 734 can also be performed in the PC 700. For this purpose, the result 736 determined by the AI module 110 is then written to the SD card 120, and in a further execution step 840, the SD card is again communicatively connected to the PC 700. Then, the result 736 is also stored in the database 730 in the PC 700, and a comparison between the predetermined or target result 734 and the result of the AI module 736 in the PC 700 is performed.
[0269] Since in the present exemplary embodiment the AI module 110 is designed and configured such that the neural network 115 executed in the operating environment 102 expects images from the camera 400 via the Ethernet interface 111, a camera simulation 118 is provided in the AI module for the normal execution of the test mode 110 independently of the camera 400. If an image is now requested by the operating environment 112 for processing with the aid of the neural network 115, the test mode of the AI module 110 is designed and configured such that the camera simulation 118 is used instead. The camera simulation 118 then takes over the reading of the test image 732 and accordingly forwards the image to the operating environment 112.
[0270] Figure 3 Another embodiment of testing the compiled NN application 115 on the AI module 110 is shown. Here, the basic method flow of testing the NN application 115 corresponds to the method already combined with Figure 2 Explain the process. Combined with Figure 2 The processing flow of explanation is different. Figure 3 In the alternative test run shown in , test image 732 is not stored on SD card 120. Instead, in method step 810, in addition to compiled neural network application 115 and the test flag, only the network address of test image 732 is stored, at which test image 732 can be loaded from AI module 110 via Ethernet connection 770.
[0271] After the SD card 120 has been introduced into the AI module 110 in method step 820, within the scope of the operation of the compiled neural network application 115, when one of the test images 732 is requested, the network address of the test image is read from the SD card 120 by the operating system 112, and the Ethernet interface 111 reads the corresponding image from the database 730 of the PC 700 via the Ethernet connection 770. For this purpose, the PCT 700 is also provided with a camera simulation 750, which reads the requested test image or images 732 from the database 730 in an intermediate step 822 and transmits the test images to the AI module 110 via the Ethernet interface 760 and the Ethernet connection 770 of the PC 700.
[0272] Then, in the AI module 110 , one or more test images 732 are provided to the operating environment 112 via the camera simulation 118 and processed by the AI processor 114 with the aid of the compiled neural network 115 .
[0273] Here, in Figure 3 In the illustrated embodiment, the test mode of the AI module 110 is designed and configured so that the result 736 obtained when processing the test image 732 with the aid of the compiled neural network 115 is directly stored in the database 730 via the Ethernet interface 111, the Ethernet connection 770, and the Ethernet interface 760 of the AI module 110.
[0274] In a subsequent step, the predetermined or target result 734 is then compared to the result 736 generated by the AI module 110, and the result of the comparison is output to the user.
[0275] exist Figure 4 Shown in the combined Figure 1 An automation system is explained, which has a control device 200 designed as a replacement for an industrial PC 200 instead of Figure 1 The SPS 100 shown in FIG. 200 includes a so-called "soft SPS" 210 or a "virtual PLC" (vPLC) 210. In this case, Figure 4 The underlying functions of the system shown in FIG. 1 correspond to the configuration scheme of the system in FIG. 1 except for the specific configuration of the control device 200. Figure 4 and Figure 1 Components provided with the same reference numerals correspond to each other.
[0276] The soft PLC 210 or vPLC 210 is designed and configured as a programmable logic controller 210 implemented in software. To this end, the soft SPS 210 is designed as a real-time operating environment 210 or a real-time operating environment (RT environment) 210, wherein each function and / or module of the SPS 210 is implemented as a software application implemented in the RT environment 210.
[0277] In this case, the soft SPS 210 or the vPLC 210 and also the industrial PC 200 are exemplary embodiments of a control device according to the present description.
[0278] Here, Figure 2 The soft SPS 210 shown in FIG. 2 comprises a PLC application 214 or a PLC application program 214 which essentially has the underlying functionality of a programmable logic controller, for example, functionality according to standards IEC 61131 and / or EN 61499. The PLC application program 214 can, for example, also have or include the functionality of a central module of a programmable logic controller, i.e., for example Figure 1 The functionality of the central module 102 is shown in FIG.
[0279] In addition, the soft SPS 210 includes a fieldbus interface application 217 or a fieldbus application 217 for coupling the soft SPS 210 to the fieldbus 502. Here, the fieldbus application 217 can be designed and configured as a Profinet application 217, an EtherCAT application 217, an Ethernet IP application 217, a Profibus application 217, or a fieldbus application 217 for a similar fieldbus, for example.
[0280] The soft SPS 210 also includes an Ethernet interface application 218 or Ethernet application 218 to communicate the soft SPS 210 via the Ethernet protocol or the corresponding communication connection 402. The soft SPS 210 also includes an OPC-UA application or OPC-UA interface application 216 to communicate the soft SPS 210 via the OPC-UA protocol, for example, via the corresponding OPC-UA communication connection 602.
[0281] Furthermore, the soft SPS 210 includes three freely programmable applications 230, 240, 250, which can be designed and configured as an AI application 250 or AI application 250 (AI: Artificial Intelligence), a simulation application 240 or simulation application 240, and an analysis application 230 or analysis application 230. Here, the AI application 250, the simulation application 240, and the analysis application 230 are examples of application modules according to the present specification.
[0282] Here, the AI application 250 basically has Figure 1 To this end, the AI application 250 includes an operating environment 252 for running a neural network application 115 or NN application 115 stored in a user data memory 256, the operating environment corresponding to the NN application 115 and / or the compiled NN application 115, as it has been combined with Figure 1-3The NN application 115 is again an example of a user application according to the present specification.
[0283] In addition, the operating environment 252 of the AI application 250 includes an AI software accelerator 253 configured as a software module, and the AI software accelerator is designed and configured to accelerate the operation of the NN application 115. Alternatively, the operating environment 252 of the AI application 250 can also use the AI processor 114 designed in hardware of the IPC 200 to achieve accelerated operation of the NN application 115. Here, the AI processor 114 of the IPC 200 corresponds to the AI processor 114 already described in conjunction with Figure 1 The AI processor 114 explains.
[0284] In addition, the AI application 250 includes a PLC simulation 254 and a camera simulation 255, and the functions of the PLC simulation and the camera simulation correspond to the functions of the AI module 110 that have been integrated. Figure 1-3 The functions of the PLC simulation 116 and the camera simulation 118 are explained.
[0285] The simulation application 240 of the soft SPS 210 is designed and configured to run a simulation program stored in a user data memory 246 of the simulation application 240. Here, the simulation program is an example of a user application according to the present specification. For example, in order to make it possible to test the simulation program in the simulation application 240 even if the simulation application 240 is not installed in the soft PLC 210, the simulation application 240 also includes a PLC simulation 244. The PLC simulation includes, for example, the functions of the PLC application 214, which are necessary for the normal operation of the simulation program in the simulation application 240.
[0286] The analysis application 230 is also constructed in a similar manner and can provide an operating environment 232, which is designed and configured to run an analysis program stored in a user data memory 236 for mathematically analyzing data. Here, the analysis program is also an example of a user application according to the present specification. If the analysis application is not implemented in the soft SPS 210, in order to implement the testing of the analysis program in the analysis application 230, the analysis application 230 also includes a PLC simulation 234, which is used to simulate the functions of the PLC application 314 that are necessary for the normal operation of the analysis program in the analysis application 230.
[0287] For communication within the soft SPS 210, the soft SPS includes a central data management and communication system 212, and the applications 214, 216, 217, 218, 230, 240, 250 of the soft SPS 210 are connected in communication via the central data management and communication system. Here, the central data management and communication system 212 is designed and configured for both real-time communication between the applications 214, 216, 217, 218, 230, 240, 250 of the soft SPS 210, and non-real-time communication between the applications 214, 216, 217, 218, 230, 240, 250 of the soft SPS 210. Here, the central data management and communication system 212 can be designed and configured, for example, to at least include but not limited to data transmission via a so-called publish-subscribe communication scheme (Pub-Sub communication scheme, publish-subscribe communication scheme) and / or at least include but not limited to also using a so-called "shared memory" or a so-called "dual-port RAM".
[0288] Here, the functions of the IPC 200 or the soft SPS 210 correspond to the functions of the SPS 100 that have been combined Figure 1 The robot 500 is controlled via a control program running in the PLC application 214 by outputting corresponding control signals to the robot 500 via the fieldbus application 217 and the fieldbus connection 502. Corresponding sensor signals of the robot 500 and also other information from the robot 500 are transmitted back to the control program or PLC application 214 via the same communication connection.
[0289] In order to control the process of the product manufactured by the robot 500, the camera 400 records the image of the manufactured product and transmits the image to the soft SPS 210 via the Internet line 402 and the Ethernet application 218. Figure 1 The recorded images are analyzed in the manner described above, and the recorded images are evaluated in the AI application 250 of the soft SPS 210. Here, the analysis results are also output from the AI application 250 to the PLC application 214 via the central data management and communication system 212. If it is concluded from the results determined by the AI application 250 that the manufactured products may have defects and should be rechecked, then a corresponding message is output to the user. At the same time, in this case, a corresponding command can be output to the robot 500 so that the robot simultaneously separates the products and places them at the position provided for this purpose.
[0290] In order to configure the software SPS210 and create a control program for controlling the robot 500 and the AOI system using the camera 400, also Figure 4 The system shown in FIG. 1 is also provided with an automation engineering system 600, which corresponds to the automation engineering system already described in conjunction with FIG. Figure 1 Explain the automation engineering system 600. According to Figure 4 The automation engineering system 600 is in turn connected to the soft SPS 210 via an OPC-UA communication connection 602 and an OPC-UA application 216 .
[0291] Figure 5 Also shown is a PC 700 having a NN development environment 710 and a database 730, which has been integrated with Figure 2 and Figure 3 Here, too, the same reference numerals correspond to the same components.
[0292] Figure 5 An embodiment for testing an NN application 115 created in an NN development environment 710 with the aid of an AI application 250 is shown. Here, the basic flow of the test corresponds to the one that has been combined with Figure 1-3 Therefore, in the following, basically only the process related to Figure 2 and Figure 3 The process shown is similar to Figure 5 The differences in the processes shown are related to process differences.
[0293] exist Figure 5 In the illustrated embodiment, the AI application 250 is installed in a container environment 770 in the PC 700. For example, the container of the AI application 250 can be implemented using technologies including, but not limited to, Kubernetes and / or Docker, which are also available as open source.
[0294] Here, the NN application 115 is adapted with the aid of the compiler 720 of the NN development environment 710 to optimally run with the AI software accelerator 253 of the AI application program 250 .
[0295] To test the compiled NN application 115, Figure 5 In a first step 910 , indicated as arrow 910 , the NN application transmits the file information of the test image 732 and the test identifier to the AI application 250 and stores them there in the user data memory 256 of the AI application.
[0296] The test flag is queried in the scope of the AI application 250 in the restart container 770. After identifying the test flag, the AI application 250 enters the already combined Figure 1-3After identifying the file information of the test image 732, the test image 732 is loaded from the database 730 by the AI application 250 and processed by the compiled neural network 115 in the operating environment 252 of the AI application 250 within the scope of the operation of the compiled neural network 115. The test result 736 obtained here is then stored in the user data memory 256.
[0297] The test result 736 is then transmitted to the database 730 in a subsequent step 940 and stored there, which is also the case in step 940. Figure 5 Then, the predetermined or target test result 734 is compared with the test result 736 of the compiled neural network 115 by the NN development environment 710, and the corresponding comparison result is output to the user when necessary.
[0298] 6 shows another embodiment for testing a compiled neural network 115 in an AI application 250. Here, a compiler 720 of an NN development environment 710 is configured to adapt the neural network 115 to run using an AI processor 114 of an industrial PC 200 designed as hardware.
[0299] Here, the AI application 250 is Figure 4 The manner and method already shown and explained in the above are installed in the soft SPS 210. Of course, in the embodiment shown in FIG6 , it is proposed to test the compiled neural network 115 in the AI application 250: the PLC application 214 of the soft SPS 210 does not yet include a control program, and / or the soft SPS 210 is not yet, or not yet completely involved in controlling the robot 500 and / or the AOI system with the camera 400, or has not yet controlled the mentioned system.
[0300] The test process shown in FIG6 for testing a neural network application 115 compiled by means of a compiler 720 of an NN development environment 710 begins with the transmission of the compiled neural network 115 to the Ethernet interface 760 of the PC 700 in a first step 908, shown as an arrow in FIG6 . At the same time, the address information and the test flag of the test image 732 are also transmitted to the Ethernet interface in 760. Then, in the next working step 910, again shown as an arrow in FIG6 , the information is transmitted to the AI application 250 of the soft SPS 210 via the Ethernet application 218 of the soft SPS 210 and the Ethernet connection 403 and stored in the user data memory 256.
[0301] As part of restarting AI application 250, the presence of a test flag in user data memory 256 of AI application 250 is now checked. After the test flag transmitted in step 910 is detected, AI application 250 is placed in a test mode, thereby starting a test of compiled neural network 115 within AI application 250. The general procedure of such a test corresponds to the procedure described in conjunction with Figure 3 The process shown.
[0302] In this case, the start of the check of the test image 732 is triggered by the PLC simulation 254. The camera simulation 255 now downloads one or more test images 732 from the PC 700 according to the address information of the test image 732 and provides them as test input data to the compiled neural network 115 running in the runtime environment 252 of the AI application 250. In this case, the provision of one or more test images is also realized in the PC 700 by the camera simulation 750, which then calls one or more test images 732 from the database 730 and transmits them to the AI application 250 via the Ethernet interface 760. Then, one or more test results 736 generated by processing one or more test images 732 from the compiled neural network 115 are stored in the user data memory 256. After the test is completed, in a further method step 940, which is also shown as an arrow in FIG. 6, the test results are transmitted to the PC 700 into the database 730 and stored there as test results 736.
[0303] Subsequently, a comparison of the test result 736 with the predetermined or target result 734 is performed in the NN development environment 710 of the PC 700, and the result of the comparison is then output to the user.
[0304] With special reference Figure 2 , 3 , 5 and 6, the NN application 115 is tested, for example, with a compiled version that is particularly adapted to the hardware and / or software of the AI application 250 or the AI module 110. In this case, as explained in the context of the mentioned embodiments, the tests on the AI module 110 or the AI application 250 can be performed under direct interaction with the NN development environment 710 or the PC 700 on which the NN development environment in 710 is running. In particular, the tests of the neural network 115 or the compiled neural network 115 can be run without the need for, for example, the central module 102 of the SPS 100 or the PLC application 214 of the IPC 200.
[0305] In particular, it has been shown how to test a neural network 115 or a compiled neural network 115 with the aid of an AI module 110 or an AI application 250 , without having to connect them to an SPS 100 or an IPC 200 .
[0306] Since the testing of the neural network 115 or the compiled neural network 115 takes place directly in the interaction of the NN development environment 710 with the AI module 110 or the AI application 250, it is not necessary to use or involve the automation engineering system 600 for the testing. This is particularly advantageous because the development of the neural network 115 can be carried out, for example, by experts in artificial intelligence methods, who then do not have to have knowledge in automation engineering in order to test the neural network 115 on the AI module 110 or with the aid of the AI application 250. This simplifies the testing of user applications of freely programmable application modules for control devices.
[0307] Figure 1 The method for testing a neural network explained in the context of FIG-6 can also be transferred accordingly to the test of a simulation program in the simulation application 240 or to the test of an analysis program in the analysis application 230. Thus, for example, specific start conditions for the system to be simulated can be used as test data when testing the simulation application 240. For example, the corresponding test data can be used to test the analysis application 230.
Claims
1. An application module for a control device (100, 200), wherein: The application module (110, 230, 240, 250) is designed and configured to communicate and interact with other components (102, 104, 114, 214, 216, 217, 218, 230, 240) of the control device (100, 200) within the control scope of the machine (400, 500) or the facility, wherein the application module (110, 230, 240, 250) is designed and configured to generate additional functions for the control device (100, 200) by using a user application (115), Therein, an automation engineering system (600) for configuring the control device (100, 200) and an application engineering system (700, 710) for creating the user application (115) are provided. The application module (110, 230, 240, 250) is designed and configured so that the test of the user application (115) is performed or can be executed by means of the interaction between the application module (110, 230, 240, 250) and the application engineering system (700, 710).
2. The application module according to claim 1, characterized in that: The application module (110, 230, 240, 250) is designed and configured to execute an operating mode, wherein in the operating mode, the additional functions for the control device (100, 200) are generated using the user application (115), And the application module (110, 230, 240, 250) is designed and configured to execute a test mode, wherein the test mode is designed and configured to test the user application (115).
3. The application module according to any one of the preceding claims, characterized in that The application module (110, 230, 240, 250) includes a control device simulation application (116, 234, 244, 254) for simulating a control function of the control device (100, 200).
4. An application module for a control device (100, 200), wherein: The application module (110, 230, 240, 250) is designed and configured to communicate and interact with other components (102, 104, 114, 214, 216, 217, 218, 230, 240) of the control device (100, 200) within the control scope of the machine (400, 500) or the facility, wherein the application module (110, 230, 240, 250) is designed and configured to generate additional functions for the control device (100, 200) by using a user application (115), It is characterized in that the application module (110, 230, 240, 250) comprises a control device simulation application (116, 234, 244, 254) for simulating the control function of the control device (100, 200).
5. The application module according to claim 4, characterized in that: An automation engineering system (600) for configuring the control device and an application engineering system (700, 710) for creating the user application (115) are provided, And wherein, the application module (110, 230, 240, 250) is designed and configured so that the test of the user application (115) is performed or can be executed by means of the interaction between the application module (110, 230, 240, 250) and the application engineering system (700, 710).
6. The application module according to claim 4 or 5, characterized in that: The application module (110, 230, 240, 250) is designed and configured to execute an operating mode, wherein in the operating mode, the additional functions for the control device (100, 200) are generated using the user application (115), And the application module (110, 230, 240, 250) is designed and configured to execute a test mode, wherein the test mode is designed and configured to test the user application (115).
7. Application module according to any one of the preceding claims, characterized in that A test identifier is provided, wherein the application module (110, 230, 240, 250) is also designed and configured to query and / or identify the test identifier and to execute the test mode after identifying the test identifier, and / or to test the user application (115) after identifying the test identifier.
8. Application module according to any one of the preceding claims, characterized in that The application module (110, 230, 240, 250) comprises a test memory device (120, 236, 246, 256) or is connected to a test memory device (120, 236, 246, 256) and is capable of writing to the test memory device (120, 236, 246, 256) without comprising the automation engineering system (600) according to claim 1 or 5 and / or the control device (100, 200).
9. The application module according to claim 8, characterized in that: The test storage device (120, 236, 246, 256) is detachably connected to the application module (110, 230, 240, 250).
10. The application module according to claim 8 or 9, characterized in that: The test storage device (120, 236, 246, 256) can be written or has been written via the external communication interface (111) of the application module (110, 230, 240, 250).
11. The application module according to any one of claims 8 to 10, characterized in that: storing test data (732, 734) for testing the user application (115) on the test storage device (120, 236, 246, 256), In particular, the test data (732, 734) also constitutes test input data (732) and / or target result data (734) for use by the application module (110, 230, 240, 250), and the target result data constitutes a preset result of processing the test input data (732) by the application module (110, 230, 240, 250).
12. The application module according to any one of claims 8 to 11, characterized in that: The test storage device (120, 236, 246, 256) includes the user application (115) and / or application configuration data for configuring the application module (110, 230, 240, 250) and / or the user application (115).
13. The application module according to claim 7 and any one of claims 8 to 12, characterized in that: The test storage device (120, 236, 246, 256) includes the test identifier.
14. The application module according to any one of claims 8 to 13, characterized in that: The test storage device (120, 236, 246, 256) includes ID information about the external storage device (700, 730), wherein the application module (110, 230, 240, 250) is designed and configured to identify data on the external storage device (700, 730) and / or to request and / or load data from the external storage device (700, 730), In particular, the application module is designed and configured to identify, request and / or load test data (732, 734) for testing the user application (115) on and / or from the external storage device (700, 730), application configuration data for configuring the application module (110, 230, 240, 250), application configuration data for configuring the user application (115) and / or a test identifier according to claim 9.
15. A method for a control device for testing a user application (115) using an application module (110, 230, 240, 250) according to any one of claims 1 to 14, in, The method comprises the following method steps: loading test input data (732) for testing the user application (115), loading target result data (734) constituting a planned result of processing the test input data (732) by the user application (115), testing the user application (115) using the test input data (732) and the target result data (734), It is characterized in that The application module (110, 230, 240, 250) is designed and configured according to any one of claims 1 to 14, and the loading of the test input data (732) and / or the loading of the target result data (734) and / or the testing of the user application (115) are performed without the control device (100, 200) and / or the automation engineering system (600), And / or the application module (110, 230, 240, 250) is designed and configured according to any one of claims 4 to 14, and the application module (110, 230, 240, 250) includes a control device simulation application (116, 234, 244, 254) for simulating the control function of the control device (110, 230, 240, 250), wherein the user application (115) is tested with the participation of the control device simulation application (116, 234, 244, 254).
16. A test storage device (120, 236, 246, 250) for writing, by means of an application engineering system (700, 710) according to any one of claims 1 to 3 or 5 to 14, a data storage device for an application module (110, 230, 240, 250) according to any one of claims 8 to 14. 256) method, The method comprises the following steps: processing the test input data (732) by means of the user application (115) and storing the target result data (734) determined in the process, The test input data (732) and / or the target result data (734) are written into the test storage device (120, 236, 246, 256) by the application engineering system (700, 710).
17. A method for writing a test storage device (120, 236, 246, 256) for an application module (110, 230, 240, 250) according to any one of claims 8 to 14 by means of an application engineering system (700, 710) according to any one of claims 1 to 3 or 5 to 14, The method comprises the following steps: processing the test input data (732) by means of the user application (115) and storing the target result data (734) determined in the process, storing the test input data (732) and / or the target result data (734) in a storage device (700, 730) addressable by means of ID information, The ID information is written into the test storage device (120, 236, 246, 256) through the application engineering system (700, 710).
18. The method according to claim 16 or 17, characterized in that A test identifier according to any one of claims 7 to 14 is also written into the test storage device (120, 236, 246, 256).
19. The method according to any one of claims 16 to 18, characterized in that The user application (115) is also written into the test storage device (120, 236, 246, 256).
Citation Information
Patent Citations
Real-time run-time system and functional module for such a run-time system
EP2325708B1
An animal foodstuff
IE61131B1
Preparation of oxophthalazinyl acetic acids having benzothiazole or other heterocyclic side chains
IE61499B1
