Application module for a control device
Patent Information
- Application Number
- EP2023719757
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-05-13
- Filing Date
- 2023-04-17
- Publication Date
- 2025-01-29
Smart Images

Figure 1.1
Abstract
Description
[0001] Description
[0002] Application module for a control device
[0003] The present invention relates to an application module for a control device, wherein the application module is designed and configured for communication and interaction with further components of the control device within the scope of a control of a machine or system, and wherein the application module is designed and configured for generating additional functionality for the control device by using a user application.
[0004] Such application modules are known from the state of the art.
[0005] For example, European Patent EP 2 325 708 B1 discloses a real-time runtime system comprising a plurality of functional modules and a management module. The plurality of functional modules are configured to log on to the management module with an assigned module identification during a transition state between initialization and pre-operation, and to log off during a transition state between pre-operation and initialization.At least one of the multiple function modules is configured to establish communication connections to other function modules via the management module during the transition state between pre-operation and test operation, to terminate the communication connections during the transition state between test operation and pre-operation, to log on to the other function modules during the transition state between test operation and real-time operation, and to log off during the transition state between real-time operation and test operation. It is a disadvantage of the state of the art that control programs or other applications for control devices are developed and tested in the respective development systems for these programs (e.g., a so-called automation engineering system), and therefore, when executing them on corresponding control hardware, problems can arise because, for example,Special features of the control hardware used mean that the program runs differently in the development system than when the program runs on the control hardware itself.
[0006] Therefore, it is an object of the present invention to provide an improved method and a corresponding device that enables improved and / or simplified testing of software or applications for control systems.
[0007] This problem is solved by an application module having the features of patent claim 1.
[0008] 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 framework of a control of a machine or system.
[0009] The application module is further designed and configured to generate additional functionality for the control device by using a user application. The application module is designed and configured to execute an operating mode, wherein the additional functionality for the control device is generated in the operating mode using the user application. Furthermore, 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] Because the application module has a test mode according to the present description, or is designed and configured to execute such a test mode, improved and / or simplified testing of software or applications for the application module or a control system with such an application module is possible.
[0011] Such a test mode makes it possible, for example, to use the application module itself—and thus the hardware on which the user application will ultimately run—to test the user application. This can reduce or even prevent problems and errors that can arise due to differences in the execution of the user application on a development system for such a user application and on the control device or application module, since different hardware configurations on both systems can lead to different program executions.
[0012] Such a test mode can, for example, be designed and configured such that a user application in the application module can be tested or is testable within the scope of such a test mode. The test mode can be designed and configured such that when a user application runs within the scope of such a test mode, no control commands are issued to a machine or system controlled by the corresponding control device. The application module can, for example, be designed and configured as a hardware module. Such a hardware module can, for example, be designed and configured as a structurally independent module. Such a structurally independent hardware module can, for example, have a housing and / or comprise mechanical elements or devices for coupling to the control device or for mechanical integration into the control device.
[0013] Furthermore, the application module can be communicatively connected or connectable to the control device and / or other components of the control device. In a further embodiment, the application module can be communicatively detachably connected or connectable to the control device and / or other components of the control device.
[0014] Furthermore, the application module can be designed and configured as a software module. In this case, for example, a control device can comprise this software module, and the control device can also be designed and configured to execute this application module configured as a software module.
[0015] In an advantageous embodiment, the application module is part of the control device. In this case, the application module can, for example, be logically associated with the control device. Furthermore, the application module can be mechanically and / or communicatively coupled to the control device or mechanically and / or communicatively integrated into the control device. The application module can also be designed and configured as a software application, in which case the control device can then comprise the application module designed as a software application. An application module can be designed and configured as a freely programmable application module. A freely programmable application module makes it possible to use a freely programmable orto provide an independently programmable "application" or "app" that executes as part of a firmware of the application module and / or executes within a runtime environment provided by the application module.
[0016] A freely programmable application module can, for example, be designed and configured to execute software or programs created and executed in a programming language that is not supported by one or more other components and / or modules of the control device or the remaining components and / or modules of the control device. In particular, a freely programmable application module can, for example, be designed and configured to execute software or programs created and / or executed in a programming language that is not specified by the IEC standard IEC 61131 or comparable standards relating to control devices and / or programmable logic controllers as programming languages for such devices.
[0017] In an advantageous embodiment, a freely programmable application module is not designed or configured to run programs that were or are created in a programming language according to IEC 61131, IEC 61499 or a comparable standard. These are, for example, the programming languages: IL (Instruction List (IL)), LD (Ladder Diagram (LD)), FBS or FUP (Function Block Diagram (FBD)), SFC (Sequential Function Chart (SFC)) and ST (Structured Text (ST)).
[0018] A freely programmable application module for a control device can, for example, be designed and configured such that it is designed and configured to run a software application in addition to a control program running in the control device for controlling the machine or system. Such a freely programmable application module enables the implementation of a functionality of the control device in addition to a standard control functionality that is implemented, for example, by a central control module for the control device. The central control module can, for example, be designed and configured to run the control program for controlling the machine or system. The neutral control module can, for example, also be designed and configured according to the IEC 61131, IEC 61499 and / or comparable standards or can comprise at least one such functionality.
[0019] Examples of such application modules can be, for example, hardware and / or software modules for executing machine learning applications. Further examples of such application modules are, for example, hardware and / or software modules for implementing Boolean processors, for implementing or carrying out simulations or running simulation programs, for programming or executing mathematical algorithms, analytical methods or big data analyses, for running independent programs in one or more predefined programming languages (e.g., C, C++, Python, ...) or hardware and / or software modules for comparable applications. The control device can, for example, be designed and configured as an electronic device for controlling a device or system. It can, for example,A control device can be designed and configured as a programmable logic controller, a modular programmable logic controller, a computer with a control software application or control app, a so-called "soft PLC," or even just a control software application. Furthermore, a control device can also be designed and configured as computer hardware, a computer and / or IT network, or a cloud with control software installed, implemented, and / or instantiated on it. The control software can also be modular and consist of multiple software modules.
[0020] A control device can be designed and configured in such a modular way that several modules can be or are provided, wherein in addition to a so-called central module or CPU module, which is designed and configured to run a control program, e.g. to control a component, machine or system (or part thereof), one or more expansion modules can be provided. Such expansion modules can, for example, be designed and configured as a current / voltage supply or for the input and / or output of signals from or to a machine or system, or furthermore as a functional module for taking on special tasks (e.g. a counter, a converter, data processing with artificial intelligence methods (includes, for example, a neural network or another ML model)...).
[0021] The control device can also be designed and configured as a so-called EDGE device, wherein such an EDGE device can, for example, comprise an application for controlling devices or systems. For example, such an application can be designed and configured as an application with the functionality of a programmable logic controller. The EDGE device can, for example, be connected to another control device of a device or system or directly to a device or system to be controlled. Furthermore, the EDGE device can be designed and configured such 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.
[0022] The control device can, for example, also be designed and configured as a so-called programmable logic controller (PLC). Furthermore, the safety-related control device can also be designed and configured as a so-called modular programmable logic controller (modular PLC).
[0023] A programmable logic controller, or PLC for short, is a component that is programmed and used to regulate or control a plant or machine. Specific functions such as sequence control can be implemented in programmable logic controllers so that both the input and output signals of processes or machines can be controlled. The basic properties of a programmable logic controller are defined, for example, in the standard EN 61131, IEC 61131 and / or EN 61499. The programmable logic controller can, for example, be designed and set up in accordance with at least one of the standards EN 61131, IEC 61131 and / or EN 61499 and / or at least one of the sub-standards of the standards EN 61131, IEC 61131 and / or EN 61499.
[0024] A PLC can be implemented in various ways. That is, it can be implemented as a standalone electronic device, as a software emulation, as a PC plug-in card, etc. Modular solutions are also common, in which the PLC is assembled from several plug-in modules.
[0025] To control the machine or system, the control device can, for example, include appropriate interfaces and / or modules for communication with the machine or system.
[0026] The control device can, for example, be designed and configured for real-time control of the machine or system.
[0027] For communication with other components of the control device, the application module can, for example, comprise a corresponding interface for operating a communication connection with the other components of the control device. Such communication can take place, for example, via a corresponding internal bus, an external bus, or a combination of an internal and external bus. The aforementioned buses can, for example, be designed and configured, at least among other things, for real-time communication between the various components of the control device.
[0028] In a modular control device configured as hardware with multiple modules, such communication with other components of the control device can take place, for example, via a so-called backplane bus. In a control device implemented within a computing device, a computer, or a so-called industrial PC with multiple software modules, such communication can take place, for example, via a corresponding internal bus. The internal bus can, for example, be designed and configured, at least among other things, for real-time communication between different components of the control device.
[0029] An additional functionality for a control device can, for example, be a functionality for such a control device that is not provided by a central control component and / or other components of the control device. For example, an additional functionality for a control device can be designed and configured as a functionality that is not specified by a standard for control devices, for example the IEC 61131, IEC 61499, or comparable standards.Additional functionalities for a control device can, for example, be or include one or more of the functionalities listed below: a functionality for running software in a specific programming language, a functionality for implementing mathematical algorithms, analysis methods and / or big data analytics, a functionality for realizing and / or implementing machine learning methods, machine learning models, artificial intelligence processes and methods, neural networks or similar, a functionality for realizing Boolean processes, or comparable functionalities.
[0030] A user application can also be referred to as a user program and can be any type of software that is designed, configured and / or intended to run within the application module, to set up and / or parameterize the application module, to be used by the application module and / or to be stored within the application module. Furthermore, a user application can be any type of software that runs on the application module, with the use of which the application module is or was set up and / or parameterized, that is or was used by the application module and / or that is stored in the application module, in particular in a memory device of the application module. A user application can, for example, comprise an executable software program and / or data or parameters for use by the application module and / or the user application.
[0031] Software includes, for example, programs, associated documentation, and other data necessary for the operation of a computer. This is defined, for example, in the ISO / IEC standard 24765.
[0032] The additional functionality for the control device can then be realized, for example, by the execution of a corresponding user application or a corresponding user program in the application module, the execution of software already implemented in the application module and / or a corresponding operating system (firmware) using corresponding user data or parameters, or even a combination of these options.
[0033] In operating mode, the application module provides additional functionality for the control device.
[0034] In an advantageous embodiment, it can be provided that the application module provides the additional functionality for the control device in the operating mode, while the application module is integrated into the control device or interacts with other components of the control device within the framework of the control of the machine or system.
[0035] Furthermore, the application module can comprise operating system software which is designed and configured in such a way that the application module can be operated both in operating mode and in a test mode or that the application module is operated in an operating mode or a test mode.
[0036] The application module can be designed and configured such that, for example, after switching on and / or booting the application module, the application module enters operating mode unless corresponding parameters, triggers, signals, user inputs, or similar data or components are present that trigger an alternative procedure. Such an alternative procedure can, for example, be starting 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 starting comparable alternative modes.
[0037] The test mode can, for example, be designed and configured in such a way that activities of the application module performed during the test mode have no impact on any machines or systems controlled by the control device and / or the application module. In this way, for example, a user application can be tested in the application module without, for example, errors in the user application causing malfunctions and / or damage to other components of the automation system into which the application module is integrated. In particular, this way, no malfunctions and / or damage can occur during testing of the user application in a control device into which the application module is integrated, or in a correspondingly connected and / or controlled machine or system.
[0038] The test mode makes it possible to test user applications in configurable scenarios directly on the application module, ie with the module hardware that will later be used.
[0039] For example, the application module can enter or switch to test mode if corresponding parameters, triggers, signals, user inputs or similar data or components are present and are recognized or detected by the application module.
[0040] Such detection and / or recording of corresponding parameters, triggers, signals, user inputs or other information that initiate a test mode can be triggered, for example, by special operating states or changes to operating states, such as booting up, initializing, starting or restarting the application module. Furthermore, the test mode can also be triggered by separate queries. Such queries can be triggered, for example, by user input (e.g. a button on the application module or a corresponding input via a device connected to the application module or linked to it, such as a computer, an HMI, a mobile phone, a tablet or similar). Furthermore, such queries can also be carried out automatically by the application module, either once or regularly.The application module can further be designed and configured such that the application module is designed and configured to execute the test mode even if it is not connected or coupled to a corresponding control device. This makes it possible to test a user application for the application module without the complete control hardware or the complete control device with which the application module interacts in a later application to control a machine or system already being present.
[0041] Furthermore, the application module can also be designed and configured such that the application module is designed and configured to carry out the test mode when it is connected or coupled to the control device.
[0042] In an advantageous embodiment, the application module can be designed such that it is designed and configured to carry out the test mode, both when it is connected or coupled to the control device and when it is not connected or coupled to the control device.
[0043] As already explained above, the coupling or connection with the control device is understood to mean at least a communicative coupling or connection.
[0044] Testing the user application means, for example, that the user application runs and / or is implemented in a way that it will run when the user application interacts with other components of the control device for controlling a machine or system.
[0045] In particular, the testing of the user application can be designed and configured in such a way that, when testing the user application, the user application runs in the application module or is implemented there in the same way as later when controlling a machine or system, but no control signals are output to the machine or system during testing.
[0046] When testing the user application, configurations, parameterizations and / or process code of the user application can be tested in configurable scenarios.
[0047] The above-mentioned object is also achieved by an application module for a control device, wherein the application module is designed and configured for communication and interaction with further components of the control device within the framework of a control of a machine or system, wherein the application module is designed and configured for generating additional functionality for the control device by means of a user application, and wherein 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 further components of the control device.
[0048] In an advantageous embodiment, 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 connected, at least communicatively, to the control device.
[0049] In an advantageous embodiment, it can be provided that an automation engineering system for setting up the control device and an application engineering system for creating the user application are provided, wherein the application module is designed and set up in such a way that testing of the user application takes place or can be carried out by means of an interaction of the application module with the application engineering system.
[0050] The application module can further be designed and configured in such a way that testing of the user application is carried out or can be carried out by means of direct interaction of the application module with the application engineering system.
[0051] In a further advantageous embodiment, an automation engineering system for setting up the control device and an application engineering system for creating the user application can be provided, wherein the application module is designed and set up in such a way that testing of the user application takes place or can be carried out without involving the control device and / or the automation engineering system.
[0052] This design makes it possible to test a user application on the application module without having to involve or use the automation engineering system. It is also possible to test the user application on the application module directly in conjunction with the application engineering system, without having to involve the automation engineering system.
[0053] This configuration makes it possible, for example, to use the application engineering system, which is also used for designing, developing, creating, and / or parameterizing the user application, to also test the user application on the application module. Thus, apart from the specific application know-how required for testing the user application, relatively little, or even no, information or experience regarding other components of the control device is required, in particular, no knowledge of a corresponding automation engineering system.
[0054] This is particularly advantageous for user applications that require specialized know-how or knowledge, such as in the field of machine learning, artificial intelligence, neural networks, simulations, big data analysis, statistics, mathematical algorithms, specialized programming languages, or similar applications. This is due, for example, to the fact that a specialist in this specialized know-how does not necessarily also have the corresponding know-how in handling a corresponding automation engineering system or in creating control programs and / or setting up a control device.
[0055] This enables simplified and / or improved testing of software or applications for control systems.
[0056] An automation engineering system is understood to be a system or software with which control devices for controlling machines or systems are programmed, parameterized, and / or configured. In particular, an automation engineering system is used to create corresponding control programs for a
[0057] A control device is created, corresponding communication connections are set up for communication within the control device and / or for communication with corresponding computers, computer networks or a cloud, HMI devices, other control devices, edge devices, field devices, drives and / or sensors, and the control device itself is set up and / or parameterized. In the case of a control device that comprises several components, for example, the individual components are set up and / or parameterized using a corresponding automation engineering system, as well as their connection.
[0058] An automation engineering system can, for example, be designed and configured as a computer system with suitable software that is designed and configured to generate automation engineering data for a specific machine or production plant. Such automation engineering data is, for example, data that is created and / or intended for the automation and / or control of the production plant or machine. This includes, for example, the creation of corresponding control programs using such an automation engineering system and the corresponding parameterization of the components of the production plant or machine and the corresponding controllers. An example of such an engineering system is a computer system on which the commercially available software with the product name "T IA Portal" is installed.Automation engineering data can include a wide variety of engineering elements, for example one or more control programs, variables, so-called "tags", program modules, function modules, data modules, program blocks, so-called "program organizational units", data types used, ID information for components, configuration data, call information for program elements, comments, control programs and / or comparable engineering elements.
[0059] An application engineering system can, for example, be designed and configured as software installed on a computer, a computer network, or even in a cloud, which is designed and configured to develop a user application according to the present description.
[0060] In particular, an application engineering system can be designed and configured to create user applications in a specific technical field or user applications of a specific type. Application engineering systems can, for example, be designed and configured to create user applications in the field of machine learning, artificial intelligence, neural networks, simulations, big data analysis, analytics, statistics, mathematical algorithms, special programming languages (e.g., C, C++, Python, etc.), and / or comparable fields.
[0061] The fact that testing of the user application is carried out or can be carried out by means of interaction or direct interaction between the application module and the application engineering system can, for example, be designed and configured in such a way that a corresponding automation engineering system for the control device is not involved in such testing. In this way, for example, the development tools that were used in developing the user application or are provided by the application engineering system can also be used in testing the user application, or at least contribute to testing the user application.
[0062] Direct interaction is understood here, for example, to mean that no further logical unit is involved in the interaction between the application engineering system and the application module. The direct interaction can, for example, also be designed and configured in such a way that no significant data conversion takes place in the interaction between the application engineering system and the application module, nor does any data conversion take place in the context of a data transfer between the application engineering system and the application module.
[0063] The fact that the application module interacts directly with the application engineering system does not mean that there must be an uninterrupted communication connection, a direct communication connection or any communication connection at all between the application engineering system and the application module.
[0064] During testing, there must be no or no permanent communication connection between the application engineering system and the application module. For example, testing can be designed and configured such that, for example, data preparation or application preparation for testing is carried out by the application engineering system, and this data or this user application is then transferred to the application module for testing. The transfer can take place, for example, via a communication connection or a removable storage device (e.g., an SD card or similar) or similar means.
[0065] The application engineering system can also be communicatively connected to the application module during testing. In this case, testing of the user application on the application module can run, for example, without the involvement of the application engineering system or with the involvement of the application engineering system.
[0066] The above-mentioned object is also achieved by an application module for a control device, wherein the application module is designed and configured for communication and interaction with further components of the control device within the framework of a control of a machine or system, wherein the application module is designed and configured for generating additional functionality for the control device by means of a user application, wherein an automation engineering system is provided for setting up the control device and an application engineering system is provided for creating the user application, wherein the application module is designed and configured in such a way that testing of the user application takes place or can be carried out by means of interaction of the application module with the application engineering system.
[0067] The application module can further be designed and configured in such a way that testing 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.
[0068] The interaction or the direct interaction of the application module with the application engineering system can be designed and configured in such a way that the testing of the user application takes place or can be carried out without involving the control device and / or the automation engineering system.
[0069] The above-mentioned object is also achieved by an application module for a control device, wherein the application module is designed and configured for communication and interaction with further components of the control device within the framework of a control of a machine or system, wherein the application module is designed and configured for generating additional functionality for the control device by means of a user application, wherein an automation engineering system is provided for setting up the control device and an application engineering system is provided for creating the user application, wherein the application module is designed and configured in such a way that testing of the user application takes place or can be carried out without involving the control device and / or the automation engineering system.
[0070] The application module, the control device, the communication and / or the interaction of the application module with other components of the control device, the other components of the control device, the control of the machine or system, the additional functionality 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 of the application module with the application engineering system can be designed and configured according to the present description.
[0071] Such an application module makes it possible, for example, to use the application engineering system, which is also used for designing, developing, creating, and / or parameterizing the user application, to also test the user application on the application module. This means that, apart from the specific application know-how required for testing the user application, relatively little or no information or experience regarding other components of the control system, in particular, no knowledge of a corresponding automation engineering system, is required.
[0072] This enables simplified and / or improved testing of software or applications for control systems.
[0073] The application module can be designed and configured to execute an operating mode, wherein the additional functionality for the control device is generated in the operating mode using the user application. 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.
[0074] Such a test mode makes it possible, for example, to use the application module—and thus the hardware on which the user application will ultimately run—for testing the user application. This allows problems and / or errors to be identified early on, for example, caused by differences in the hardware (and / or hardware properties) between the application module and the system on which the user application was developed.
[0075] Because the application module has a test mode according to the present description or is designed and configured to execute such a test mode, improved and / or simplified testing of software or applications for the application module or a control system with such an application module is possible.
[0076] For example, the application module, the operating mode, the additional functionality, the control device, the user application and the test mode can be designed and configured according to the present description.
[0077] An application module according to the present description can further be designed and configured such that the application module has a control device
[0078] Simulation application for simulating a control functionality of the control device.
[0079] This configuration has the advantage that, via the simulation application, the application module itself is enabled, for example, during testing of a user application, to provide or assume functionalities that are provided by one or more other components of the control device during the normal workflow of the control device. This improves and / or simplifies testing of a user application with the application module, since the application module is thus less dependent on other components of the control device when testing a user application, or is even independent of other components of the control device.
[0080] In an advantageous embodiment, the application module can further be designed and configured to simulate a basic control functionality of the control device or a basic control functionality of the control device.
[0081] In this case, a basic control functionality of the control device can, for example, be designed and configured as a functionality such as that defined for programmable logic controllers, for example, in one or more of the standards EN 61131, IEC 61131, EN 61499, IEC 61499. Furthermore, a basic control functionality or basic control functionality can, for example, comprise those functionalities that are defined in one or more of the standards EN 61131, IEC 61131, EN 61499, IEC 61499, and which are or can be executed by a control device, a programmable logic controller or a central or CPU module of a modular programmable logic controller.
[0082] The application module may also further comprise a simulation of one or more external interfaces (e.g., external interfaces of the control device) (e.g., an Ethernet interface and / or an Ethernet port for an external camera, e.g., a GigE Vision camera) or simulations of other components (e.g., other components of the control device or external components (e.g., a camera simulation). The simulation of a control functionality of the control device may, for example, comprise a simulation of a firmware functionality of the control device.
[0083] Furthermore, the simulation of a control functionality of the control device can also be designed and configured as a control device simulation program.
[0084] The simulation of a control functionality of the control device can, for example, also be designed and configured as a simulation of a basic control functionality of the control device.
[0085] Furthermore, a basic control functionality can also be designed and configured as the functionality that is, must be, and / or can be made available to the application module by other components of the control device within the scope of the user application's execution. A basic control functionality can therefore be the functionality that must be and / or can be made available to the application module by one or more other components of the control device within the scope of the intended execution of the user application in the application module.
[0086] Such other components of the control device can be, for example, a central unit or a central module or CPU module of the control device or also, for example, an input and / or output module, a function module and / or an interface module (e.g. a fieldbus interface module, an Ethernet interface module, an OPC UA interface module or comparable interface modules). An example functionality of a simulation application for simulating a control functionality of the control device is described below. In this example, the application module is designed and configured to run a neural network application. The user application in this example is designed and configured to implement an automatic optical inspection (AOI) using a neural network.It includes the process of automatic optical inspection as well as all necessary information about the neural network. This can include, for example, the parameters of the neural network nodes, the number and / or layer arrangement of these nodes, or even the corresponding program code (e.g., in the Python language) for implementing the neural network.
[0087] The simulation of the control functionality then includes, for example, one, several or all of the following functionalities:
[0088] - the simulation of a trigger to start an image analysis by the application module with the AOI user application;
[0089] - Providing an image when an image is requested by the application module or the AOI user application;
[0090] - Providing a second image if requested by the application module or the AOI user application;
[0091] - Collecting the results after processing the data by the neural network;
[0092] - Transferring the aforementioned results to a target medium. The target medium can be, for example, a storage device in the application module, a detachably connectable storage device in the application module (e.g., a memory card or similar), or even an external computing device.
[0093] - Comparison of the results of the processing of the data by the neural network with specified target or goal results;
[0094] - Transferring the results of the aforementioned comparison of the results with the desired or target results to a target medium. The target medium can, for example, be a storage device in the application module, a detachably connectable storage device in the application module, or an external computing device or an external computing network.
[0095] The above-mentioned object is also achieved by an application module for a control device, wherein the application module is designed and configured for communication and interaction with further components of the control device within the framework of a control of a machine or system, wherein the application module is designed and configured for generating an additional functionality for the control device by means of a user application, characterized in that the application module comprises a control device simulation application for simulating a control functionality of the control device.
[0096] An application module designed in this way has the advantage that, via the simulation application, the application module itself is enabled, for example, to provide or assume functionalities during testing of a user application that are provided by other components of the control device during the normal operation of the control device. This improves and / or simplifies testing of a user application with the application module, since the application module is thus less dependent on other components of the control device when testing a user application, or is even independent of other components of the control device.
[0097] The application module, the control device, the communication and the interaction of the application module with other components of the control device, the other components of the control device, the control of the machine or system, the additional functionality for the control device, the user application, the control device simulation application and the simulation of a control functionality of the control device can be designed and configured according to the present description.
[0098] Furthermore, an automation engineering system for setting up the control device and an application engineering system for creating the user application can be provided, wherein the application module is designed and configured such that testing of the user application takes place or can be carried out by means of an interaction of the application module with the application engineering system.
[0099] The application module can further be designed and configured in such a way that testing of the user application is carried out or can be carried out by means of direct interaction of the application module with the application engineering system.
[0100] The application module, the automation
[0101] Engineering system, the control device, the application
[0102] Engineering system, the user application, the testing of the user application as well as the interaction or the direct interaction of the application module with the application engineering system must be designed and set up in accordance with this description.
[0103] Furthermore, the application module can be designed and configured to execute an operating mode, wherein in the operating mode the additional functionality for the control device is generated using the user application, and wherein the application module is further designed and configured to execute a test mode, wherein the test mode is designed and configured to test the user application.
[0104] The application module, the operating mode, the additional functionality for the control device, the user application, the test mode and the testing of the user application can be designed and configured according to the present description.
[0105] In an advantageous embodiment, a test identifier is provided, wherein the application module is further designed and configured to query and / or recognize the test identifier and to execute the test mode after the test identifier has been recognized. Furthermore, or alternatively, the application module can also be designed and configured to test the user application after the test identifier has been recognized.
[0106] The presence of such a test identifier makes it possible to initiate testing of a user application with the application module as needed. This further improves and / or simplifies testing of the user application. Setting up and / or saving such a test identifier can be performed, for example, by a user or semi-automatically or automatically, for example, by an application engineering system for creating the user application.
[0107] 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 storable in a storage device of the application module, for example, a storage device that can be detachably connected to the application module (e.g., an SD card or similar). Furthermore, the test identifier can also be an electromechanical or mechanical identifier, for example, the pressing of a button, the actuation of a switching device, or a comparable mechanical or electromechanical identifier.
[0108] Querying the test identifier can, for example, involve querying a corresponding variable or a corresponding memory location in a storage device, or querying, for example, the position or state of an electromechanical or mechanical identifier. Recognizing the test identifier involves the application module knowing which stored value or state of an electromechanical or mechanical identifier triggers or results in testing the user application or executing a corresponding test mode.
[0109] The test ID can be queried by the application module at a specified time, at several specified times (e.g., regularly), or by a corresponding user input. For example, the test ID can be queried when the application module boots or starts up and / or by a test trigger signal (e.g., via an external communications interface, a test button, a reset button, or similar).
[0110] Executing test mode after the test identifier is detected means that test mode is started after the test identifier is detected, or, if it has already been started, the test mode is maintained. Testing the user application after the test identifier is detected means that testing of the user application is performed after the test identifier is detected, or that an already running test of the user application is continued.
[0111] Furthermore, it can be provided that the application module comprises a test memory device or is connected to a test memory device, and that the test memory device can be written to without involving the control device and / or an automation engineering system according to the present description.
[0112] The fact that the test memory device can be written to without involving the control device and / or an automation engineering system has the advantage that it is possible to write to the test memory device without requiring the control device and / or the automation engineering system. This enables, for example, operation of the application module, for example for testing a user application, without involving the control device and / or the automation engineering system. This enables improved and / or simplified testing of a user application with an application module designed and configured in this way. The application module, the control device and the automation engineering system can be designed and configured according to the present description.
[0113] The test memory device and the application module can further be designed and configured such that the test memory device can be read by the application module if it is connected to the application module or the application module comprises the test memory device.
[0114] The test memory device can be written to or written to without involving the control device and / or an automation engineering system according to the present description. It can be designed and configured such that the test memory device can be written to or written to by an electronic device if the test memory device is communicatively connected to the electronic device and without the control device and / or an automation engineering system according to the present description having to be included or involved in the writing process. The communicative connection between the test memory device and the electronic device can exist permanently or only temporarily.
[0115] For example, the test memory device can be designed, configured, and mounted such that it can be written to and / or is written to by an application engineering system according to the present description when it is communicatively connected to this application engineering system and without the control device or an automation engineering system according to the present description having to be included or involved. The communicative connection between the test memory device and the application engineering system can be permanent or temporary.
[0116] The test memory device can, for example, be permanently connected to the application module, integrated into it, or detachably connected to the application module. The test memory device can, for example, be communicatively, mechanically, and / or electrically connected to the application module. A communicative connection between the test memory device and the application module can be designed and configured, for example, as a wireless communication connection (e.g., via mobile radio, WLAN, Bluetooth, NEC, or comparable communication connections) or as a wired communication connection.
[0117] The test memory device can be designed and configured, for example, as a RAM memory (RAM: Random Access Memory), an EPROM memory, or a comparable writable electronic memory. It can be designed, for example, as a memory permanently installed in the application module, or 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 comparable memory device. Furthermore, the test memory 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 a cloud, or a similar memory device.
[0118] Furthermore, the test memory device can also be writable by the control device and / or an automation engineering system according to the present description or can be read by such devices.
[0119] The application module can be designed and configured such that the test memory device is detachably connected to the application module.
[0120] In this case, the test storage device can in particular be communicatively detachably connected to the application module. In this case, the communication connection between the test storage device and the application module can be released or interrupted as required, or can also be restored or established. A test storage device that is communicatively detachably connected or connectable to the application module can be designed and configured, for example, as a memory card, an SD card, a USB stick or similar storage device. Furthermore, a test storage device that is communicatively detachably connected or connectable to the application module can be designed and configured as an external data drive, an external data server, an NFS (Network File System), a storage unit in a cloud or a similar storage device.
[0121] In addition, the test storage device can also be mechanically and / or electrically detachably connected to the application module. In this case, the mechanical and / or electrical connection can be interrupted or broken, or established or restored. Such a test storage device that is mechanically and / or electrically detachably connected to the application module can be designed and configured, for example, as a memory card, an SD card, a USB stick, or a comparable storage device. In this case, the application module can in turn be designed and configured according to the present description.
[0122] Such a configuration of the application module has the advantage that such a flexible connection 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 such an application module.
[0123] The application module can further be designed and configured such that the test memory device can be written to or is written to via an external communication interface of the application module.
[0124] The external communication interface of the application module can be designed and configured, for example, as a wired interface or as a wireless interface.
[0125] In the case of a wired interface, for example, a plug connector can be provided on the application module for connection to a corresponding plug counterpart of an associated communication line. The application module can comprise a corresponding protocol stack for communication via the external communication interface. Such a wired interface can, for example, be designed and configured as an Ethernet interface, a fieldbus interface or any other wired communication interface. Furthermore, the application module can also comprise a wireless interface. Such a wireless interface can, for example, be designed and configured as a WLAN, Bluetooth, RFID, Near Field Communication (NFC), mobile radio or any other wireless interface.For this purpose, the application module may optionally include a corresponding transmitting and / or receiving device and / or a corresponding antenna. Furthermore, the application module may also include a corresponding protocol stack for communication via the wireless interface.
[0126] For communication via the communication interface or for writing to the test memory device, the application module can, for example, have a corresponding network address. Furthermore, the test memory device itself can also include a specific network address or network identifier or network ID.
[0127] The application module can, for example, be designed and configured in such a way that it requests certain data from an external device, which is then transmitted to the application module via the communication interface and then stored in the test memory device.
[0128] Furthermore, the application module can also be designed and configured such that data is transmitted from an external device to the application module via the application module's communication interface and then stored in the test memory device. For example, it can be provided that the transmitted data is stored in the test memory device under the control of the external device. It can also be provided, for example, that the transmitted data is sent from the external device and transferred to the application module and then stored in the test memory device under the control of the application module.
[0129] It may further be provided that test data for testing the user application is stored on the test storage device.
[0130] In a further development, it can be provided that the test data further comprise test input data for use by the application module and / or target result data representing a predetermined result of the processing of the test input data by the application module. It can also advantageously be provided that the test data further comprise test input data for use by the user application in the application module and / or target result data representing a predetermined result of the processing of the test input data by the user application in the application module.
[0131] The test data can, for example, be designed and configured as software or a software application, or can include such software or a software application. This software can, for example, be designed and configured as executable code, for example as interpretable code (e.g., in the programming language "Python") or as translated or compiled code (e.g., in the programming languages C, Mendix, or similar). Such software or software applications can, for example, be or include a program for providing a specific functionality, a simulation program, a model trained using machine learning (a so-called ML model), or similar.
[0132] Furthermore, the test data may include test configurations, wherein such test configurations may include, for example, information about which test can or should be executed and how such a test should be executed or should run.
[0133] The test data may also include a test identifier according to the present description. Furthermore, the presence of test data in the test memory device may already constitute a test identifier according to the present description.
[0134] Test data can also be or include data used to test a user application. The test data can, for example, be configured and set up as test input data such that the user application runs using the test data. It can also be provided that test result data is also available, representing a planned result of the execution of associated test input data with the user application. For example, the test data can include such test input data and associated test result data, or be configured as such data.
[0135] For example, in a user application designed as a trained neural network, which is trained and configured to process image information, the test input data can be various images, with the associated test result data then representing the planned results of processing the respective images with the neural network, assigned to the respective test images. In this way, the application module could then be provided with data with which the proper functionality of the neural network implemented on the application module can be checked. This check can be particularly useful or necessary, for example, if hardware elements are installed on the application module that were not implemented on a development system for the neural network. Such hardware can be, for example, corresponding hardware accelerators for improved processing of neural networks.
[0136] Using test input data and associated test result data, it is then possible to check, for example, whether a corresponding user application also runs correctly on the hardware of the application module.
[0137] Furthermore, the test data can also be designed and configured as information relating to an external storage device, an external data processing device, and / or externally stored data, or can include such information. Such information relating to an external storage device, an external data processing device, and / or externally stored data can be designed and configured, for example, as hyperlinks, network addresses, file names, ID information, or the like.
[0138] Such externally stored data can, for example, be designed and configured as test data in accordance with the present description.
[0139] In this way, the application module can be enabled to obtain or receive corresponding test data according to the present description from external storage devices or data processing devices, such as a computer, an external data storage device, an NFS, a cloud, or the like. This further simplifies the testing of a corresponding user application, since corresponding test data only needs to be transferred to the application module when a test for a user application is performed, for example, and thus, for example, storage space for storing such test data in the application module can be reduced or saved.
[0140] Furthermore, it can also be provided that the test storage device comprises the user application and / or application configuration data for setting up the application module and / or the user application.
[0141] Application configuration data can, for example, be data with which the application module is configured for the intended execution of a user application embodied as a software application or execution code. Furthermore, such application configuration data can, for example, include data about hardware components connected to the application module or the control device, or about hardware components included in the control device. Thus, application configuration data can also include communication parameters or communication settings for communication between the application module and other hardware devices and / or other components of the control device.
[0142] Application configuration data may also include data for setting up the user application or for adapting the user application, for example, to specific specifications of the application module and / or the control device or other components of the control device. Application configuration data may also include data for preparing specific test input data and / or test result data for the application module and / or a specific user application.
[0143] Furthermore, the test storage device can comprise the test identifier.
[0144] The test identifier can, for example, be designed and configured in accordance with the present description.
[0145] In an advantageous embodiment, it can further be provided that the test storage device comprises ID information relating to an external storage device, wherein the application module is designed and configured to recognize data on the external storage device and / or to request and / or load data from the external storage device. In particular, the application module can be designed and configured to recognize, request, and / or load test data for testing the user application, application configuration data for setting up the application module, application configuration data for setting up the user application, and / or the test identifier according to the present description onto or from the external storage device.
[0146] This configuration has the advantage that, when needed, for example, during testing of a user application, data for performing or supporting a test of a user application can be transferred directly from an external storage device to the application module. In this way, for example, test data can be transferred to the application module in a simplified manner according to the present description. This can, for example, save storage space in the application module, or it can also be used to obtain updated test data for use in the application module, for example, during testing of a user application.
[0147] The ID information relating to the external storage device may, for example, be a name, an identifier, a network address, a hyperlink or similar information with which, for example, a storage device or data processing device within a computer network or a communications network can be or are recognizable.
[0148] The recognition of data on the external storage device can be, for example, by means of a corresponding file name, a file identifier, a data description and / or by means of comparable information.
[0149] For requesting and / or loading, the application module can, for example, comprise a communication component configured as a client, which can, for example, request specific data from an external storage device configured as a server. Furthermore, the application module can also be designed and configured to participate in a so-called "publish-subscribe" communication scheme, for example, to subscribe to specific data or information, within the framework of such or a similar mechanism.
[0150] The application module can also be designed and configured such that it provides information to an external storage device, which allows the external storage device to store data on the application module or in the test storage device.
[0151] The external storage device can be designed and configured, for example, as a data processing device, a computer, a network storage device, a so-called NFS, an external drive, an external hard disk, an SSD, or a comparable storage device.
[0152] The external storage device can be connected or connectable to the control device and / or the application module, for example, directly or indirectly via a data network or a communication connection. The external storage device can be connected to the application module and / or the control device, for example, via a corresponding wireless communication or wired communication.
[0153] The above-mentioned object is also achieved by a method for testing a user application with an application module according to the present description for a control device, wherein the method comprises the following method steps: loading test input data for testing the user application, loading target result data which represent a planned result of the processing of the test data by the user application, testing the user application using the test input data and the target result data, wherein the application module is designed and configured according to the present description and is in test mode when testing the user application. The method can be designed and configured, for example, as a computer-implemented method.
[0154] Furthermore or alternatively, the application module can be designed and configured according to the present description and furthermore the loading of the test input data and / or the loading of the target result data and / or the testing of the user application can take place without involving the control device and / or the automation engineering system.
[0155] In a further alternative, the application module can be designed and configured according to the present description, wherein the application module comprises a control device simulation application for simulating a control functionality of the control device, and wherein the testing of the user application takes place with the cooperation of the control device simulation application.
[0156] In this case, the user application, the application module, the test input data, the test result data, the test mode, the control device, the automation engineering system, the control device simulation application and / or the control functionality must be designed and configured in accordance with the present description.
[0157] In this case, in order to load test input data and / or target result data, loading of the test input data into the application module and / or into a test storage device of the application module can be provided in accordance with the present description. The loading of test input data and / or target result data can, for example, be designed and configured in such a way that a storage device which can be detachably connected to the application module is provided, for example a memory card or SD card, and the test input data and / or the target result data are stored on the storage device which can be detachably connected to the application module and in a first computer system or an external data processing device. When storing this data on this storage device, the storage device can, for example, not be connected to the application module, but only to the external data processing device.The external data processing device can, for example, comprise an application engineering system according to the present description and / or the storage of the test input data and / or target result data can be carried out by such an application engineering system.
[0158] As a further possible step for loading the test input data or target result data, the storage device which can be detachably connected to the application module and the data stored thereon can then be communicatively or mechanically and communicatively connected to the application module, so that, for example, an operating system of the application module and / or the user application then has access to the data stored in the storage device.
[0159] The loading of the test input data and / or target result data can, for example, also be carried out in such a way that this data is stored via a communication connection from an external storage device or an external data processing device or a comparable device in a storage device of the application module, for example a test storage device according to the present description.
[0160] The loading of test input data and / or target result data can, for example, also be carried out within the scope of testing directly from an external data processing device and / or storage device in accordance with the present description.
[0161] Testing the user application using the test input data and / or the target result data can then be carried out, for example, by loading the test input data from a memory device of the application module, or directly from an external data drive, and then running the user application using the test input data. Furthermore, testing the user application can be carried out such that, after a test of the user application has been completed, for example using test input data according to the present description, result data from this test are compared with associated target result data.
[0162] This comparison of the target result data with result data from testing the user application can then, for example, be carried out directly in the application module. Furthermore, it can also be provided that the result data determined during testing of the user application is, for example, stored again on a data carrier that can be detachably connected to the application module and then later compared with corresponding target result data in another data processing device. It can also be provided that the result data determined during testing of the user application is transferred 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 corresponding target result data.
[0163] Starting the test mode can, for example, be designed and configured according to the present description. The test mode can be started, for example, after a corresponding test identifier has been recognized by the application module according to the present description. Such a query or recognition of such a test identifier can occur, 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, for example, be triggered by a corresponding switch or a corresponding button on the application module itself.Furthermore, such a trigger signal can be a trigger signal transmitted via a communication connection, which is sent or triggered, for example, by an application engineering system, a control device, an automation engineering system or another data processing or computing device.
[0164] The above-mentioned object is also achieved by a method for writing a test memory device for an application module according to the present description by an application engineering system according to the present description, comprising the method steps:
[0165] Processing test input data by means of the user application and storing the resulting target result data. Writing the test input data and / or the target result data to the test storage device by the application engineering system. The method can be designed and configured, for example, as a computer-implemented method.
[0166] The test memory device, the application module, the application engineering system, the test input data, the user application, the target result data and the writing of the test memory device can be designed and configured according to the present description.
[0167] In order to prepare for testing a user application with the application module, the method mentioned here can, for example, be designed and configured in such a way that, for example, test input data is processed in the application engineering system by means of the user application and the result of this processing is stored as target result data.
[0168] For example, one goal of testing the user application on the application module might be that when the user application runs on the application module, the target result data is also generated as a result of the test input data being 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 is functioning correctly.
[0169] Within the scope of such a method, for example, it can be provided that test input data is stored in the test memory device. Then, it is 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, since the communication connection to the application module has already been established.
[0170] Subsequently, the user application is tested in the application module in such a way that the test input data is processed by means of a process of the user application and test result data is generated.
[0171] The test result data is then compared with the target result data. This comparison can also be performed in the application module, for example. For this purpose, 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 is also known to the application module.
[0172] Furthermore, the test result data determined during the user application test on the application module can also be transferred to another data processing device, for example, the application engineering system, where the test result data can be compared with the target result data. For this purpose, the test result data can, for example, also be stored in the test storage device and / or transferred from the application module to the external data processing device.
[0173] In an alternative embodiment, it can be provided that only target result data is written to the test storage device. Corresponding test input data can, for example, be transmitted directly from an external data processing device and / or corresponding devices, such as a camera, a camera simulation, a sensor, a sensor simulation, or comparable data processing devices or devices, to the application module via a communications connection. The target result data can, in turn, be generated, for example, in an external data processing device, for example the application engineering system.
[0174] The above-mentioned object is also achieved by a method for writing a test memory device for an application module according to the present description by an application engineering system according to the present description, comprising the method steps: processing test input data by means of the user application and storing target result data determined thereby, storing the test input data and / or the target result data in a memory device addressable by means of ID information, writing the test memory device with the ID information by the application engineering system.
[0175] The method can, for example, be designed and configured as a computer-implemented method.
[0176] In this embodiment, it can be provided, for example, that the target result data for testing the user application on the application module are generated, for example, by the execution of the user application on an external data processing device, for example the application engineering system, by corresponding test input data in the
[0177] The test input data and / or the target result data are then stored in a storage device, for example a storage device in the same data processing unit in which the application engineering system is running, or in a further storage device in a different data processing unit, or in another external storage device. Corresponding ID information is assigned to each of the storage devices mentioned. Such ID information can, for example, include a corresponding file name, a drive name, a folder structure, a network address, a hyperlink, and / or comparable ID information.Such ID information is designed and configured in such a way that upon receipt of this ID information, the application module is enabled to access the target result data and / or test input data stored in the corresponding storage device if a communication connection exists or has been established between the application module and the corresponding storage device.
[0178] In an advantageous embodiment, it can further be provided that a test identifier according to the present description is written into the test memory device.
[0179] The test identifier, the application module and the test storage device can be designed and configured, for example, in accordance with the present description.
[0180] The test identifier can, for example, be written into the test memory by the application module itself. This writing of the test identifier into the test memory by the application module can, for example, be initiated by a corresponding command from another component of the control device, a corresponding command from an external data processing and / or communications device, and / or by a user.
[0181] The test identifier can, for example, also be generated by another component of the control device, an external data processing device and / or an application
[0182] Engineering system according to the present description in the test storage device .
[0183] In the case where the application module includes the test memory device, when the test identifier is written into the test memory device, the external data processing device, the other component of the control device and / or the application engineering system must then be communicatively connected to the application module in order to write the test identifier into the test memory device.
[0184] Furthermore, the test memory device can also be detachably connected to the application module. In this case, it can be provided that when the test identifier is written to the test memory device, the test memory device is not communicatively connected to the application module. This can be implemented, for example, in such a way that the test memory device is designed and configured as an SD card and, in order to write the test identifier to the test memory device, is removed from the application module and, for example, is communicatively connected to an external data processing device and / or an application engineering system in accordance with the present description. Furthermore, it can be provided that the user application is written to the test memory device.
[0185] The user application, the application module and the test storage device can be designed and configured, for example, according to the present description.
[0186] The user application can, for example, be written into the test memory device by the application module itself. This writing of the user application into the test memory device by the application module can, for example, be initiated by a corresponding command from another component of the control device, a corresponding command from an external data processing and / or communication device, and / or by a user.
[0187] The user application can, for example, also be written into the test storage device by another component of the control device, an external data processing device and / or an application engineering system according to the present description.
[0188] In the case where the application module comprises the test storage device when writing the user application into the test storage device, the external data processing device, the other component of the control device and / or the application engineering system for writing the user application into the test storage device must then be communicatively connected to the application module.
[0189] Furthermore, the test memory device can also be detachably connected or connectable to the application module. In this case, it can be provided that when the user application is being written to the test memory device, the test memory device is not connected to the application module. This can be implemented, for example, by removing the test memory device from the application module for writing the user application and connecting it, for example, to an external data processing device and / or an application engineering system according to the present description.
[0190] Further advantageous embodiments can be found in the subclaims.
[0191] The present invention is explained in more detail below by way of example with reference to the attached figures.
[0192] They show:
[0193] Figure 1: Production system with automatic optical inspection (AOI) and a programmable logic controller (PLC) with an AI module;
[0194] Figure 2: Setup for setting up the AI module according to Figure 1 and for testing a neural network implemented in the AI module;
[0195] Figure 3: Alternative setup for setting up the AI module and testing the neural network according to Figure 1;
[0196] Figure 4: Alternative production system with AOI and a soft PLC with an AI app;
[0197] Figure 5: Setup for setting up the AI app according to Figure 4 and for testing a neural network implemented there; Figure 6: Alternative setup for setting up the AI app according to Figure 4 and testing the neural network;
[0198] Figure 1 shows a production system with a robot 500 controlled by a modular programmable logic controller (PLC) 100. The production system in Figure 1 further includes product control via an automatic optical inspection (AOI) using a camera 400, wherein the AOI system includes image analysis using an AI module 110 of the PLC 100 (AI: Artificial Intelligence).
[0199] The programmable logic controller 100 is an exemplary embodiment of a control device according to the present description. The AI module 110 is an exemplary embodiment of an application module according to the present description.
[0200] The AOI system works in such a way that the camera 400 photographs products manufactured by the robot 500 after their production, transmits these images to the AI module 110, and evaluates them in the AI module 110 of the PLC 100. Upon detecting a defective product, the robot 500 then removes it from the automated production process for further inspection.
[0201] The AI module 110 is designed and configured for image analysis using a neural network. For this purpose, the AI module 110 comprises a process environment 112 with an AI accelerator chip 114, which is designed and configured for accelerated operation or accelerated execution of a neural network application (NN application) 115 used in the AI module, or of a neural network 115 implemented in the AI module. The neural network application 115 is stored as executable code on an SD card 120, which is detachably connected to the AI module 110 in Figure 1. The neural network 115 is implemented as executable code, for example, in a corresponding programming language (e.g., "Python"). Here, the SD card 120 is an embodiment of a test storage device according to the present description and the neural network application (NN application) 115 orthe neural network 115 is an embodiment of a user application according to the present description.
[0202] In the following description, the neural network application 115 or NN application 115 is sometimes also called the neural network 115.
[0203] The NN application 115 stored on the SD card 120 is a neural network 115 trained, for example, using a supervised learning method. The neural network 115 was trained in such a way that, based on the images taken by the camera 400, it can distinguish between qualitatively perfect products and defective or potentially defective products. Such training can be carried out, for example, in such a way that, for a large number of product images, each image is assigned information (a so-called "label") indicating whether the product is qualitatively perfect or defective. Using these training images and the associated "labels," the neural network 115 can then be trained using a supervised learning method according to the prior art. In the present case, the NN application 115 was trained, for example, using such a method for detecting defective products.
[0204] The AI module further comprises an Ethernet interface 111, via which the AI module 110 is communicatively connected or connectable to the camera 400 or other external devices or data processing devices, such as computers or the like, via an Ethernet connection 402. Furthermore, the AI module 110 comprises a PLC simulation 116 and a camera simulation 118, the functionality of which will be explained in more detail in connection with the setup of the AI module 110 and / or the testing of the NN application 115 in connection with Figures 2 and 3.
[0205] The PLC 100 further comprises a central processing unit 102 or CPU 102, which is designed and configured, for example, to run a control program for controlling the robot 500 and an AOI quality control process using the camera 400. The central processing unit 102 of the PLC 100 further comprises an OPC UA interface 103 for communicating with an automation engineering system 600 via an OPC UA communication connection 602.
[0206] For communication between the PLC 100 and the robot 500, the PLC 100 further comprises an input / output module 104 or I / O module 104 with a fieldbus interface 105. The PLC 100 is designed and configured such that control signals from the PLC 100 are transmitted to the robot 500 via the IO module 104 and a fieldbus connection 502. Corresponding sensor signals or other information from the robot 500 to the PLC 100 are transmitted back to the IO module 104 of the PLC 100 via the fieldbus connection 502. Furthermore, the central unit 102, the IO module 104 and the AI module 110 are communicatively connected via a backplane bus 101 of the PLC 100, wherein the backplane bus 101 is designed and configured for real-time communication between the modules 102, 104, 110 of the PLC 100.
[0207] The PLC 100 can be designed and configured in such a way that control commands are generated, for example, as part of the execution of a corresponding control program in the central unit 102, are transmitted via the backplane bus 101 to the IO module 104 and then via the fieldbus interface
[0208] 105 of the IO module 104 and the fieldbus connection 502 to the robot 500. Corresponding sensor signals or other information from the robot 500 are then transmitted, for example, via the fieldbus connection 502 and the fieldbus interface 105 of the IO module 104 and further via the backplane bus 101 to the central unit 102 of the PLC 100, where they are used, for example, as an input variable for the control program.
[0209] The automation engineering system is designed and configured to set up the PLC 100. In this context, the above-mentioned control program(s) are created via the automation engineering system. Furthermore, the fieldbus connection 502 to the robot 500 and the communication via the backplane bus 101 between the modules 102, 104, and 110 of the PLC 100 are set up and parameterized. The modules 102, 104, and 110 of the PLC 100 are also parameterized, configured, and set up via the automation engineering system.
[0210] Figure 2 schematically shows a system and a method sequence for testing the NN application 115 with the AI module 110. The AI module 110 is designed and configured as already explained in more detail in connection with Figure 1, with the SD card 120 being removed from the AI module 110 in the state shown in Figure 2. In addition to the NN application 115, test images 732 and desired or target results 734 are also stored on the SD card 120, the design, creation, and use of the desired or target results 734 being explained in more detail below. The test images 732 are exemplary embodiments for test input data according to the present description, and the desired or target results 734 are exemplary embodiments for target result data according to the present description.
[0211] Furthermore, Figure 2 shows a PC 700 which includes a development environment 710 for creating and testing a neural network or the neural network application 115. This development environment 710 for creating and testing the neural network 115 is also referred to below as the NN development environment 710. The NN development environment 710 further includes an execution environment 740 for running and testing a neural network developed in the NN development environment 710.
[0212] Furthermore, the neural network development environment 710 includes a compiler 720 for various acceleration processors 114 or acceleration software applications 253, which are designed and configured for the accelerated execution of neural network applications. An example of such an acceleration processor is the AI processor 114 of the AI module 110. Using the compiler 720, a neural network developed in the neural network development environment 710 can be converted and / or adapted for improved or optimized execution on one of the aforementioned acceleration processors 114 or acceleration software applications 253. Conversion of a neural network application using the compiler 720 is generally necessary so that the neural network then runs correctly and in an optimized manner on a corresponding acceleration processor 114, 253, such as the AI processor 114.
[0213] Furthermore, the PC 700 comprises a database 730 which contains test images 732 for testing the NN application 115 developed in the NN development environment 710. Furthermore, the database comprises target results 734 which represent the results obtained by applying the test images 732 to the NN application 715 running in the neural network execution environment 740 of the NN development environment 710.
[0214] 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 an NN application 115 suitable or optimized for the AI processor 114.
[0215] Due to the conversion of the NN application 115 by the compiler 720, it may now be the case that the converted NN application 115 exhibits functionality that differs, at least in detail, when running in the AI processor 114, or at least in interaction with the AI processor 114. This must now be verified or tested as part of a test of this converted NN application 115 in the AI module 110.
[0216] The test runs as described below. In a first step 810, shown in Figure 2 as arrow 810, the converted or compiled NN application 115, hereinafter sometimes simply referred to as NN application 115, is saved to the memory card or SD card 120. Furthermore, the test images 732 and the desired or target results 734 are also saved to the SD card 120 in this step 810. Furthermore, a test flag is saved to the SD card in this step 810, which the AI module 110 uses to recognize that a test of the compiled NN application 115 stored on the SD card 120 is to be started. In a next step 820, the SD card 120 is then inserted into a corresponding SD card slot 121 of the AI module 110 and communicatively connected to the AI module 110 via a corresponding connector, which is not shown in Figure 2.The AI module 110 with the SD card 120 is now in the state in which these components are shown in Figure 1.
[0217] 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 an SD card 120 is present 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.
[0218] The test mode is designed and configured such that the NN application 115 can be executed in the AI module 110 without the need for additional modules 102, 104 of the PLC 100—or other components of the automation system, such as the camera 400 or the robot 500. Furthermore, the test mode of the AI module 110 is designed and configured such that information relating to test data for testing a corresponding NN application, for example, the compiled NN application 115 in the present embodiment, is searched for and read from the SD card. In the present example, such test data is, for example, the test images 732 for testing the compiled NN application 115.Such information regarding test data can also be, for example, a network address, a network name, a hyperlink, an IP address, or comparable information under which corresponding test data, for example, in this case, the test images 732, are stored and can be downloaded, for example, by the AI module. An exemplary embodiment of such a configuration is explained in more detail in connection with Figure 3.
[0219] The AI module 110 is designed and configured as an expansion module for the central module 102 of the PLC 100 and interacts with the central module 102 during normal operation of the PLC 100. To ensure that the AI module 110 functions properly in test mode even without the central module 102, the AI module 110 includes the PLC simulation 116, which includes the functionality required for the functioning of the AI module 110, which is normally provided by the central module 102.
[0220] Such basic functionality of the PLC simulation 116 in the present embodiment includes, for example:
[0221] (1) Simulation of triggers normally sent by the central module 102,
[0222] (2) Providing the image when an image is requested by the NN application 115,
[0223] (3) provision of the second image upon request of the NN application 115,
[0224] (4) Collecting the results 736 of processing the images with the compiled neural network 115, and
[0225] (5) Writing the results 736 to a file stored on the SD card with an identifier of the inputs used (this is not shown in Figure 2).
[0226] (6) In a final step, the results 736 of the execution of the compiled NN application 115 on the AI module 110 are compared with the desired or target results 734 and a corresponding message is output and / or stored on the SD card as to whether all results determined with the application module 110 correspond to the desired or target results 734, or for which of the test images 732 there are deviations between the results determined by the AI module 110 and the desired or target results 734.
[0227] (6a) In an alternative embodiment of the aforementioned step (6), this comparison of the results 736 determined by the AI module 110 with the target results 734 can also be performed in the PC 700. For this purpose, the results 736 determined by the AI module 110 are 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. These results 736 are then also stored in the database 730 in the PC 700, and the comparison between the target or target results 734 and the results of the AI module 736 is performed in the PC 700.
[0228] Since the AI module 110 in the present exemplary embodiment is designed and configured such that the neural networks 115 executed in the execution environment 102 expect images from a camera 400 via the Ethernet interface 111, the camera simulation 118 is provided in the AI module 110 for proper execution of the test mode independently of the camera 400. If the execution environment 112 now requests an image for processing with the neural network 115, the test mode of the AI module 110 is designed and configured such that the camera simulation 118 is addressed instead. The camera simulation 118 then takes over the reading of the test images 732 and forwards them accordingly to the execution environment 112.
[0229] Figure 3 shows a further embodiment of testing the compiled NN application 115 on the AI module 110. The basic method sequence for testing the NN application 115 corresponds to the sequence already explained in connection with Figure 2. In contrast to the method sequence explained in connection with Figure 2, in the alternative test sequence, as shown in Figure 3, the test images 732 are not stored on the SD card 120. Instead, in method step 810, in addition to the compiled neural network application 115 and the test flag, only a network address of the test images 732 is stored, under which the test images 732 can be loaded from the AI module 110 via an Ethernet connection 770.
[0230] After the SD card 120 has been inserted into the AI module 110 in method step 820, as part of the execution of the compiled neural network application 115, when one of the test images 732 is requested, the network address of the test images is read from the SD card 120 by the execution environment 112, and the corresponding image is read from the database 730 of the PC 700 via the camera simulation 118 and the Ethernet interface 111 via the Ethernet connection 770. For this purpose, a camera simulation 750 is also provided in the PCT 700, which, in an intermediate step 822, reads the requested one or more test images 732 from the database 730 and transmits them to the AI module 110 via an Ethernet interface 760 of the PC 700 and the Ethernet connection 770.
[0231] In the AI module 110, these one or more test images 732 are then made available to the process environment 112 via the camera simulation 118 and processed with the compiled neural network 115 using the AI processor 114.
[0232] In the embodiment shown in Figure 3, the test
[0233] The mode of the AI module 110 is designed and configured such that the results 736 obtained when processing the test images 732 with the compiled neural network 115 are stored directly in the database 730 via the Ethernet interface 111 of the AI module 110, the Ethernet connection 770 and the Ethernet interface 760.
[0234] In a subsequent step, the desired or target results 734 are then compared with the results 736 generated by the AI module 110, and the result of this comparison is output to a user.
[0235] Figure 4 shows the automation system already explained in connection with Figure 1 with an alternative control device 200 designed as an industrial PC 200 instead of the PLC 100 shown in Figure 1. The industrial PC 200 included a so-called "soft PLC" 210 or "virtual PLC" (vPLC) 210. The basic functionality of the system shown in Figure 4, apart from the specific design of the control device 200, corresponds to that of the system in Figure 1. Components provided with the same reference numerals in Figure 4 and Figure 1 correspond to one another.
[0236] The Soft-PLC 210 or vPLC 210 is designed and configured as a programmable logic controller 210 implemented in software. For this purpose, the Soft-PLC 210 is configured as a real-time execution environment 210 or real-time execution environment (RT environment) 210, with individual functionalities and / or modules of the PLC 210 being implemented as software applications in the RT environment 210.
[0237] The soft PLC 210 or vPLC 210, as well as the industrial PC 200, are exemplary embodiments of a control device according to the present description. The soft PLC 210 shown in Figure 2 comprises a PLC application 214 or PLC app 214, which essentially has the basic functionalities of a programmable logic controller, for example, according to the IEC 61131 and / or EN 61499 standard. The PLC app 214 can, for example, also have or include the functionality of a central module of a programmable logic controller, such as a functionality of the central module 102 shown in Figure 1.
[0238] Furthermore, the Soft-PLC 210 comprises a fieldbus interface application 217 or fieldbus app 217 for coupling the Soft-PLC 210 to a fieldbus 502. The fieldbus app 217 can be designed and configured, for example, as a Profinet app 217, an EtherCAT app 217, an EthernetIP app 217, a Profibus app 217 or a fieldbus app 217 for comparable fieldbuses.
[0239] The Soft-PLC 210 further comprises an Ethernet interface application 218 or Ethernet app 218 for communication of the Soft-PLC 210 via the Ethernet protocol or a corresponding communication connection 402. Furthermore, the Soft-PLC 210 also comprises an OPC UA app or OPC UA interface application 216 for communication of the Soft-PLC 210 via the OPC UA protocol, e.g., via a corresponding OPC UA communication connection 602.
[0240] Furthermore, the soft PLC 210 comprises three freely programmable applications 230, 240, and 250, which are designed and configured as an AI application 250 or AI app 250 (AI: Artificial Intelligence), a simulation application 240 or simulation app 240, and an analytics application 230 or analytics app 230. The AI app 250, the simulation app 240, and the analytics app 230 are examples of application modules according to this description.
[0241] The AI app 250 essentially has the functionality of the AI module 110 shown in Figure 1. For this purpose, the AI app 250 includes a runtime environment 252 for running a neural network application 115 or NN application 115 stored in a user data memory 256, which corresponds to the NN application 115 and / or compiled NN application 115, as already explained in connection with Figures 1-3. The NN application 115 is again an example of a user application according to the present description.
[0242] Furthermore, the execution environment 252 of the AI app 250 includes an AI software accelerator 253 configured as a software module, which is designed and configured to accelerate the execution of the NN application 115. Alternatively, the execution environment 252 of the AI app 250 can also access a hardware AI processor 114 of the IPC 200 to achieve accelerated execution of the NN application 115. The AI processor 114 of the IPC 200 corresponds to the AI processor 114, as already explained in connection with Figure 1.
[0243] Furthermore, the AI app 250 comprises a PLC simulation 254 and a camera simulation 255, which correspond in their functionality to the PLC simulation 116 and camera simulation 118 of the AI module 110 already explained in connection with Figures 1-3.
[0244] The simulation app 240 of the soft PLC 210 is designed and configured to run a simulation program stored in a user data memory 246 of the simulation app 240. The simulation program is an example of a user application according to the present description. For example, to enable testing of the simulation program within the simulation application 240 even if the simulation application 240 is not installed in the soft PLC 210, the simulation application 240 further includes a PLC simulation 244. This includes, for example, the functionalities of the PLC app 214 that are necessary for the proper execution of the simulation program in the simulation app 240.
[0245] The analytics app 230 is constructed in a similar manner, with a runtime environment 232 configured and configured for running an analytics program stored in a user data memory 236 for mathematically analyzing data. Here, too, the analytics program is an example of a user application according to the present description. To enable testing of the analytics program in the analytics app 230 when it is not implemented in the soft PLC 210, the analytics app 230 also includes a PLC simulation 234 for simulating those functionalities of the PLC app 314 that are necessary for the proper execution of the analytics program within the analytics app 230.
[0246] For communication within the Soft PLC 210, it includes a central data management and communication system 212, via which the applications 214, 216, 217, 218, 230, 240, and 250 of the Soft PLC 210 are communicatively connected. 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, and 250 of the Soft PLC 210 and for non-real-time communication between the applications 214, 216, 217, 218, 230, 240, and 250 of the Soft PLC 210. In this case, the central data management and communication system 212 can, for example, be designed and configured to transmit data at least, among other things, via a so-called publish-subscribe communication scheme (pub-sub communication scheme) - and / or at least, among other things, also use a so-called "shared memory" or a so-called "dual-port RAM".
[0247] The functionality of the IPC 200 or the Soft-PLC 210 corresponds to that of the PLC 100, as already described in connection with Figure 1. The robot 500 is controlled via a control program running within the PLC app 214, by outputting corresponding control signals to the robot 500 via the fieldbus app 217 and the fieldbus connection 502. Corresponding sensor signals from the robot 500 and other information from the robot 500 are transmitted back to the control program or the PLC app 214 via the same communication connection.
[0248] For process control of the products manufactured by robot 500, images of the manufactured products are captured by camera 400 and transmitted to soft PLC 210 via an internet connection 402 and Ethernet app 218. The captured images are evaluated within AI app 250 of soft PLC 210 by being analyzed by neural network 115 of AI app 250 in the manner already described in connection with Figure 1. Here, too, the analysis results are output from AI app 250 to PLC app 214 via central data management and communication system 212. If a result determined by AI app 250 indicates that a manufactured product may have defects and should be inspected, a corresponding message is output to a user.At the same time, in this case, a corresponding command can be issued to the robot 500 so that it immediately separates this product and places it in a designated location.
[0249] To set up the Soft-S PS 210 and create a control program for controlling the robot 500 and the AOI system using the camera 400, an automation engineering system 600 is also provided in the system shown in Figure 4, which corresponds to the automation engineering system 600 as already explained in connection with Figure 1. The automation engineering system 600 according to Figure 4 is in turn connected to the Soft-S PS 210 via an OPC UA communication connection 602 and the OPC UA app 216.
[0250] Figure 5 again shows the PC 700 with the NN development environment 710 and the database 730, which was already explained in more detail in connection with Figures 2 and 3. The same reference numerals correspond to the same components.
[0251] Figure 5 illustrates an exemplary embodiment of a test of an NN application 115 created in the NN development environment 710 with the AI app 250. The basic test sequence corresponds to that already presented and explained in connection with Figures 1-3. Therefore, the following essentially only discusses differences in the sequence that relate to differences between the sequences shown in Figures 2 and 3 and the sequence shown in Figure 5.
[0252] In the embodiment shown in Figure 5, the AI app 250 was installed in a container environment 770 in the PC 700. For container implementation of the AI app 250, Kubernetes and / or Docker technology, which is also available as open source, can be used, for example.
[0253] The NN application 115 was adapted with the compiler 720 of the NN development environment 710 for optimal operation with the AI software accelerator 253 of the AI app 250.
[0254] To test the compiled NN application 115, in a first step 910, which is shown in Figure 5 as arrow 910, it is transferred to the AI app 250 together with file information for the test images 732 and the test flag and stored there in its user data memory 256.
[0255] During a restart of the AI app 250 in the container 770, the test flag is queried. After the test flag has been recognized, the AI app 250 enters the test mode already explained in connection with Figures 1-3 and the present description. After recognizing the file information for the test images 732, the AI app 250 loads the test images 732 from the database 730 and processes them as part of the execution of the compiled neural network 115 in the execution environment 252 of the AI app 250. The test results 736 obtained in this process are then stored in the user data memory 256.
[0256] These test results 736 are then transferred to the database 730 in a subsequent step 940, which is also symbolized by an arrow in Figure 5, and stored there. Subsequently, the neural network development environment 710 compares the desired or target test results 734 with the test results 736 of the compiled neural network 115 and, if necessary, outputs corresponding comparison results to a user. Figure 6 shows a further exemplary embodiment for testing the compiled neural network 115 in the AI app 250. The compiler 720 of the neural network development environment 710 is configured such that the neural network 115 is adapted for execution using the hardware AI processor 114 of the industrial PC 200.
[0257] The AI app 250 is installed in the soft PLC 210 in the manner already shown and explained in Figure 4. However, in the exemplary embodiment shown in Figure 6 for testing the compiled neural network 115 in the AI app 250, the PLC app 214 of the soft PLC 210 does not yet include a control program and / or the soft PLC 210 is not yet, or not yet fully, configured to control the robot 500 and / or the AOI system with the camera 400, or does not yet control the aforementioned systems.
[0258] The test sequence shown in Figure 6 for testing the neural network application 115 compiled with the compiler 720 of the NN development environment 710 begins with a transfer of the compiled neural network 115 in a first step 908, which is shown as an arrow in Figure 6, to the Ethernet interface 760 of the PC 700. At the same time, the address information for the test images 732 and the test flag are also transferred to the Ethernet interface 160. This information is then transferred in a next step 910, again shown as an arrow in Figure 6, via an Ethernet connection 403 and the Ethernet app 218 of the soft PLC 210 to the AI app 250 of the soft PLC 210 and stored in its user data memory 256. As part of a restart of the AI app 250, the presence of a test flag in the user data memory 256 of the AI app 250 is now checked.After detecting the test flag transmitted in step 910, the AI app 250 is placed in test mode, whereupon testing of the compiled neural network 115 is started within the AI app 250. The general procedure for such a test corresponds to the procedure illustrated in connection with Figure 3.
[0259] Here, the PLC simulation 254 triggers the start of a test image 732 check. The camera simulation 255 then takes over the organization of the test image 732 by downloading one or more test images 732 from the PC 700 based on the address information for the test images 732 and making them available as test input data to the compiled neural network 115 running in the execution environment 252 of the AI app 250. The provision of the one or more test images in the PC 700 is also implemented by a camera simulation 750, which then retrieves the one or more test images 732 from the database 730 and transmits them to the AI app 250 via an Ethernet interface 760. The one or more test results 736 generated by the compiled neural network 115 by processing the one or more test images 732 are then stored in the user data memory 256.After the end of the test, in a further method step 940, also shown as an arrow in Figure 6, these are transferred to the PC 700 in the database 730 and stored there as test result 736.
[0260] Subsequently, in the NN development environment 710 of the PC 700, a comparison of the test results 736 with the desired or target results 734 is performed, and the result of this comparison is then output to a user. In the manner illustrated in particular with reference to Figures 2, 3, 5, and 6, the NN application 115 can be tested, for example, in a compiled version specifically adapted for the hardware and / or software of the AI app 250 or the AI module 110. As explained in the context of the aforementioned statements, testing on the AI module 110 or the AI app 250 can be carried out in direct interaction with the NN development environment 710 or the PC 700 on which the NN development environment 710 is running. In particular, testing of the neural network 115 or the compiled neural network 115 can be carried out without, for example, a central module 102 of the PLC 100 or the PLC app 214 of the IPC 200 being required.
[0261] In particular, it was shown how testing of the neural network 115 or the compiled neural network 115 can be carried out with the AI module 110 or the AI app 250 without them being connected to the PLC 100 or the IPC 200.
[0262] Because 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 app 250, it is not necessary for the automation engineering system 600 to be used or involved in the testing. This is particularly advantageous because the development of the neural network 115 can be carried out, for example, by specialists in artificial intelligence processes, who then do not need to have their own knowledge of automation engineering to test the neural network 115 on the AI module 110 or with the AI app 250. This simplifies testing a user application for a freely programmable application module for a control device.The methods for testing a neural network explained in Figures 1-6 can also be applied accordingly to testing a simulation program in the simulation application 240 or testing an analysis program in the analytics application 230. For example, specific starting conditions for a system to be simulated can then be used as test data when testing the simulation application 240. Corresponding test data can be used, for example, to test the analytics application 230.
Claims
Patent claims 1. Application module for a control unit (100, 200), wherein the application module (110, 230, 240, 250) is designed and configured for communication and interaction with other components (102, 104, 114, 214, 216, 217, 218, 230, 240) of the control unit (100, 200) within the framework of a control of a machine (400, 500) or plant, wherein the application module (110, 230, 240, 250) is designed and configured for generating additional functionality for the control unit (100, 200) by means of a user application (115), wherein an automation engineering system (600) for setting up the control unit (100, 200) and an application engineering system (700, 710) are provided for creating the user application (115), wherein the application module (110, 230, 240, 250) is designed and configured such that testing of the user application (115) by means of an interaction of the application module (110, 230, 240,250) is carried out or can be carried out with the application engineering system (700, 710).
2. ) 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 functionality for the control device (100, 200) is generated using the user application (115), and that 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. ) Application module according to one of the preceding claims, characterized in that the application module (110, 230, 240, 250) comprises a control device simulation application (116, 234, 244, 254) for simulating a control functionality of the control device (100, 200).
4. Application module for a control unit (100, 200), wherein the application module (110, 230, 240, 250) is designed and configured for communication and interaction with other components (102, 104, 114, 214, 216, 217, 218, 230, 240) of the control unit (100, 200) within the framework of a control of a machine (400, 500) or plant, wherein the application module (110, 230, 240, 250) is designed and configured for generating additional functionality for the control unit (100, 200) by means of a user application (115), characterized in that the application module (110, 230, 240, 250) is a control unit simulation application (116, 234, 244, 254) for the simulation of a control functionality of the control device (100, 200).
5. ) Application module according to claim 4, characterized in that an automation engineering system (600) for setting up 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 such that testing of the user application (115) by means of an interaction of the application module (110, 230, 240, 250) with the application engineering system (700, 710) is carried out or can be carried out.
6. ) 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 functionality for the control device (100, 200) is generated using the user application (115), and that 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 one of the preceding claims, characterized in that a test identifier is provided, wherein the application module (110, 230, 240, 250) is further designed and configured to query and / or recognize the test identifier and to execute the test mode after recognition of the test identifier, and / or to test the user application (115) after recognition of the test identifier.
8. ) Application module according to one of the preceding claims, characterized in that the application module (110, 230, 240, 250) comprises a test storage device (120, 236, 246, 256) or is connected to a test storage device (120, 236, 246, 256), and that the test storage device (120, 236, 246, 256) is writable without including the control device (100, 200) and / or an automation engineering system (600) according to one of claims 1 or 5. 9.) Application module according to claim 8, characterized in that, that the test storage device (120, 236, 246, 256) is detachably connected to the application module (110, 230, 240, 250).
10. ) Application module according to claim 8 or 9, characterized in that the test storage device (120, 236, 246, 256) is writable or is writable via an external communication interface (111) of the application module (110, 230, 240, 250).
11. ) Application module according to one of claims 8 to 10, characterized in that test data (732, 734) for testing the user application (115) are stored on the test storage device (120, 236, 246, 256), in particular that the test data (732, 734) further comprise test input data (732) for use by the application module (110, 230, 240, 250) and / or target result data (734) which represent a predetermined result of the processing of the test input data (732) by the application module (110, 230, 240, 250).
12. ) Application module according to one of claims 8 to 11, characterized in that the test storage device (120, 236, 246, 256) comprises the user application (115) and / or application configuration data for setting up the application module (110, 230, 240, 250) and / or the user application (115). 13.) Application module according to claim 7 and one of claims 8 to 12, characterized in that, that the test memory facility (120, 236, 246, 256) includes the test identifier. 14.) Application module according to any one of claims 8 to 13, characterized in that the test storage device (120, 236, 246, 256) comprises ID information relating to an external storage device (700, 730), wherein the application module (110, 230, 240, 250) is designed and configured to detect 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 to detect, request and / or load test data (732, 734) for testing the user application (115), application configuration data for setting up the application module (110, 230, 240, 250), application configuration data for setting up the user application (115) and / or the test identifier according to claim 9 is formed and configured on or by the external storage device (700, 730). 15.) Method for testing a user application (115) with an application module (110, 230, 240, 250) according to one of claims 1 to 14 for a control device, wherein the method comprises the following method steps: Loading test input data (732) to test the user application (115) , Loading target result data (734) which represents a planned result of the processing of 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), characterized by that the application module (110, 230, 240, 250) is configured and set up according to one of claims 1 to 14 and that 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) is carried out without involving the control unit (100, 200) and / or the automation engineering system (600), and / or that the application module (110, 230, 240, 250) is configured and set up according to one of claims 4 to 14 and that the application module (110, 230, 240, 250) is a control unit simulation application (116, 234, 244, 254) for simulating a control functionality of the control unit (110, 230, 240, 250) includes the testing of the user application (115) with the assistance of the control device simulation application (116, 234, 244, 254). 16.) 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 an application engineering system (700, 710) according to any one of claims 1 to 3 or 5 to 14, comprises the method steps: processing test input data (732) by means of the user application (115) and storing target result data (734) determined thereby, writing the test storage device (120, 236, 246, 256) with the test input data (732) and / or the target result data (734) by the application engineering system (700, 710). 17.) Method for writing a test memory device (120, 236, 246, 256) for an application module (110, 230, 240, 250) according to any one of claims 8 to 14, by an Ap- Application engineering system (700, 710) according to one of claims 1 to 3 or 5 to 14, comprising the method steps: Processing of test input data (732) by means of the user application (115) and storage of target result data (734) determined thereby, storage of the test input data (732) and / or the target result data (734) in a storage device (700, 730) addressable by means of an ID information, writing the test storage device (120, 236, 246, 256) with the ID information by the application engineering system (700, 710).
18. ) Method according to claim 16 or 17, characterized in that a test identifier according to one of claims 7 to 14 is further written into the test memory device (120, 236, 246, 256).
19. ) Method according to one of claims 16 to 18, characterized in that the user application (115) is further written to the test storage device (120, 236, 246, 256).