METHOD AND AUTOMATION SYSTEM FOR CONTROLLING AND / OR MONITORING A MACHINE AND / OR PLANT

DE502020012014D1Active Publication Date: 2025-10-16LENZE SE
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
DE502020012014
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-08-07
Filing Date
2020-08-06
Publication Date
2025-10-16
Estimated Expiration
2040-08-06

AI Technical Summary

Technical Problem

Conventional operating systems, such as Windows or Linux, are not real-time capable, leading to instability and incompatibility issues when used in automation systems, and hypervisors create hardware-specific dependencies and complicate communication between real-time and non-real-time programs.

Method used

A method using a real-time capable Linux operating system with a PREEMPT_RT patch and a runtime environment that executes real-time and non-real-time programs in sandboxes, ensuring resource allocation and secure, modular communication via message passing or OPC UA, allowing independent execution and updates.

Benefits of technology

Ensures stable, secure, and modular execution of real-time and non-real-time programs, reducing hardware dependence and enabling scalable, flexible automation systems with cost-effective standard hardware.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader
Need to check novelty before this filing date? Find Prior Art

Description

[0001] The invention relates to a method for controlling and / or monitoring a machine or plant by means of an automation system and to an automation system for controlling and / or monitoring a machine and / or plant.

[0002] With the increasing automation of technical processes, the complexity of those control and / or monitoring tasks that must be carried out as intended, as independently as possible from active human involvement, has continued to increase. DIN IV 19233 defines automation as the equipping of a facility so that it functions as intended, entirely or partially, without human involvement.

[0003] Computers offer considerable potential, particularly with regard to complex automation tasks. This potential is based in particular on the fact that computers can be programmed relatively freely. An operating system usually forms an interface between the computer hardware and the computer programs, which generally do not access the computer hardware directly, but rather access functions provided by the operating system. This decouples the programs from the computer hardware, i.e. software developers do not have to deal with the specific characteristics of the hardware, but only have to make the software compatible with the respective operating system. This has led to the fact that for commercially available operating systems and / orwidespread, freely available operating systems provide an enormous pool of compatible software, i.e. programs that can run under the respective operating system.

[0004] However, the operating systems commonly used in computers such as servers, clients, desktop computers, portable computers, etc., are usually not real-time capable. This is also not necessary for most application programs used on such computers. A component of the operating system handles resource allocation. This component of an operating system is usually referred to as a "scheduler." Such an operating system can also have several such schedulers that manage different computer resources. In this context, schedulers manage processes and their execution. For example, time-slice-driven and / or priority-driven scheduling methods can be used. In particular, the schedulers determine the order in which individual programs can access the respective hardware resources.The respective hardware resource can be a processor, a processor core, a memory, a hard disk, an input and output buffer of a network card, etc.

[0005] However, such computers with conventional operating systems are of limited use for automation tasks, as operating systems commonly used outside of automation technology are generally unable to meet the real-time requirements of programs running on the operating system in the context of automation systems. However, programs in the field of automation technology often have real-time requirements, for example, because a specific program controls a specific actuator for control purposes. If this actuator receives a control command too late and therefore responds too late, this can have a disastrous impact on the ongoing operation of a machine or system.

[0006] Therefore, specific technical solutions have been developed in the field of automation technology. These often involve real-time operating systems that run on embedded computers in programmable logic controllers. However, such real-time operating systems are generally highly specialized and largely proprietary systems, for which virtually no software is available other than the programs for the automation function. This particularly applies to typical standard software, such as that available for standard operating systems such as Windows or Linux. This software is generally not executable on these proprietary systems. Furthermore, incompatibility arises because these proprietary systems use corresponding proprietary libraries, whose operating system calls are also proprietary.The effort required to provide "standard software" for each specific type of such a proprietary system is simply too high, so that in practice only a very limited software pool is available for these systems.

[0007] Such real-time systems are also optimized in terms of their software architecture for executing appropriately programmed real-time programs. Programs written for non-cyclic, event-oriented operation cannot be executed by such systems, or can only be executed with difficulty. This is particularly true in situations where real-time and non-real-time programs share common resources.

[0008] Approaches have been established to combine the functions of conventional – non-real-time – computers with the capabilities of real-time systems from automation technology. For example, a so-called hypervisor is used as an intermediate layer between the computer hardware and the operating system. In such an architecture, a real-time and a non-real-time operating system can run in parallel. The hypervisor ensures that the hardware resources are distributed by constantly switching back and forth between the operating systems.

[0009] The disadvantage of using such a hypervisor, however, is that they are highly hardware-specific. If such a hypervisor is used, for example, for a specific programmable logic controller, it must always be adapted to the respective hardware. This creates an undesirable dependency between the hardware and the software, between the hardware and the hypervisor.

[0010] Furthermore, the hypervisor strictly separates the real-time operating system from the non-real-time operating system. This makes communication between programs running on the real-time operating system and programs running on the non-real-time operating system significantly more difficult.

[0011] The resulting systems are therefore often highly specialized and only available for or compatible with specific hardware. The aforementioned advantage of computer technology—namely, the system's "openness" to extensions through new programs and the resulting independence from the hardware used—is thus lost or compromises real-time capability.

[0012] To overcome this problem, a common and "open" operating system is often used, one that has the appropriate real-time capability or has been made real-time capable through suitable extensions. This could be a Linux system, for example. To ensure the "openness" of the system, i.e., to offer users the opportunity to adapt the system's functionality to their needs, the user is often granted the option of accessing the system with so-called "root" privileges, meaning they can make extensive changes to the system.

[0013] This use of root privileges results in serious disadvantages. Firstly, it creates a major security vulnerability, as this privilege grants extensive rights. Furthermore, real-time behavior can be destabilized, as individual packages uncontrollably claim resources, such as memory and processing time. Furthermore, the knowledge required to perform such kernel-level interventions on an operating system is not so widespread that users can only perform such interventions with great effort and the corresponding risk of errors. Such interventions also make software lifecycle management (updates, security patches, etc.) more difficult or practically impossible. Ultimately, however, such a system represents, in particular, a coexistence of real-time and non-real-time programs.However, there is no coordination of real-time and non-real-time elements, in particular to enable stable real-time operation with simultaneous operation of non-real-time programs.

[0014] KarimYaghmour ET AL: "Building Embedded Linux Systems, Second Edition" and IGOR KALKOV ET AL: "Predictable Broadcasting of Parallel Intents in Real-Time Android" disclose operating systems (Linux and Android) in which real-time capability is implemented by a real-time patch and which allows the execution of real-time and non-real-time programs.

[0015] The invention is therefore based on the object of demonstrating a method and an automation system in which the disadvantages described above do not occur or at least occur to a lesser extent.

[0016] The problem is solved by a method and an automation system having the features of the independent claims. The features of the dependent claims relate to advantageous embodiments.

[0017] The method provides for the control of functions of the automation system by means of a computer. Control is carried out by programs executed on the computer. The computer has a real-time capable operating system for this purpose. The real-time capable operating system can, in particular, be a real-time capable Linux operating system. Such an operating system, a Linux with a corresponding extension for real-time capability (preemptive RT patch or PREEMPT_RT patch), is known in particular under the name "Linux RT." The method provides for the execution of the programs, which include both real-time programs and non-real-time programs, in a runtime environment that is superior to the operating system.It has been shown that the use of such a runtime environment, particularly as a layer between the programs and the operating system in the software architecture underlying the method, enables the simultaneous execution of real-time and non-real-time programs, ensuring a high degree of stability and security of the method. Furthermore, a high degree of modularity can be achieved at the software level, allowing the software used to implement the method to be adapted and / or extended.

[0018] In particular, the computer's resources are allocated in such a way that it is ensured that the real-time programs have sufficient resources available to meet the respective real-time requirements. In particular, the runtime environment determines the priority of program processing. In particular, the runtime environment assigns the real-time programs to cyclic time slices that are processed in real time. In particular, the runtime environment determines suitable times at which the non-real-time applications can be processed without impairing the real-time processing of the real-time programs. The runtime environment transfers the programs to the operating system for processing, in particular with instructions relating to the priority of processing.In particular, the runtime environment ensures that the execution of the real-time programs in accordance with the respective real-time requirements is not impaired by the non-real-time programs.

[0019] In particular, the programs are executed in sandboxes. Preferably, each program is executed in its own sandbox. Running in sandboxes means that the respective program is shielded from the rest of the system. This prevents errors in the execution of a single program, such as an illegal operation such as division by zero, unauthorized memory access, a stack fault, etc., from negatively impacting the entire system or other programs. This is particularly important given the real-time requirements that must be met.

[0020] It is possible for each program to run in its own sandbox. Alternatively and / or additionally, multiple programs can run in a shared sandbox. The runtime environment can assign programs to sandboxes based on defined conditions. These conditions can include, in particular, memory requirements, processing power requirements, and / or real-time behavior.

[0021] In particular, running in a sandbox means that programs do not use shared or global variables. This prevents incorrect handling of these variables by one program from negatively impacting the execution of another program.

[0022] Furthermore, running in a sandbox means that no programs access shared memory areas. This particularly applies to the use of RAM.

[0023] Furthermore, the method can stipulate that the programs do not rely on common program components. These common program components can, in particular, be software libraries. Such a shared program component creates a dependency between the programs. While the use of such a shared program component has the advantage that this program component only needs to be stored once on the corresponding computer, where it can then be accessed by all programs using this shared program component, the disadvantage is that version changes of one program, which may also require a version change of the shared program component, can in turn lead to incompatibility with a program that also uses the shared program component.By avoiding shared program components, modularity is ensured, allowing the exchange of individual programs without affecting other programs. In principle, it is possible for different programs to use identical program components. However, these are then stored separately on a non-volatile data medium for each program that uses the respective program component. In other words, this means that program components used by multiple programs are stored in multiple copies on a non-volatile memory. In particular, each copy of the program component is only accessed by a specific program. Each program that uses this program component then only accesses "its own copy" of the respective program component.In other words, programs do not access the same memory area of ​​a non-volatile memory in order to use common program components by a plurality of programs.

[0024] In particular, the runtime environment can prevent programs from gaining root access. This increases system security. Furthermore, the runtime environment can monitor, prevent, and / or authorize all program access to functions of the real-time operating system subordinate to the runtime environment. Furthermore, the runtime environment can control, monitor, prevent, and / or authorize communication between programs and / or with counterparts outside the runtime environment, such as peripheral devices. This increases system security. In particular, attacks by malware that is "hidden" in individual programs can be made more difficult or even prevented.

[0025] In particular, the runtime environment controls communication between programs. Communication between programs occurs primarily through a message-passing system. The runtime environment assumes the role of message-oriented middleware or provides such a system for the programs. The controlled communication between programs enables the runtime environment to ensure that individual programs, particularly those running in their respective sandboxes, do not negatively influence one another. This also ensures a high level of security and modularity within the system. Communication between programs via message passing enables individual programs to be executed largely independently of one another. Furthermore, programs can be expanded, updated, added, and / or removed independently of one another.This improves the modularity of the automation system, especially at the software level. For example, message passing allows for a time delay between sending and receiving a message. For example, if a function of another program is called by one program, the program can "wait" for the other program's response over a comparatively longer period of time. This increases the flexibility in allocating resources among the programs running in the individual sandboxes. Furthermore, only the content of the "message" needs to be understood by the recipient. In particular, the individual programs running in the runtime environment do not directly call functions of other programs running in the runtime environment and / or do not access the memory occupied by other programs.This improves the independence of the programs from each other and thus the modularity of the automation system software.

[0026] Communication between programs can be achieved, in particular, using a publish-subscribe messaging pattern. The major advantage of such a publish-subscribe messaging pattern is that the sender does not need to know who the intended recipients of the message are. On the other hand, compared to a broadcast or message distribution system, for example, where the message would ultimately be forwarded to all possible recipients, the publish-subscribe messaging pattern reduces system load, since individual messages are only received by those recipients to whom the respective message is actually addressed (subscribers).

[0027] Alternatively and / or additionally, another communication structure, such as OPC UA, can be used for communication between the programs.

[0028] Advantageously, a nano messaging system such as NanoMSG NNG can be used for communication between programs. These are particularly advantageous due to their comparatively low system resource requirements. The advantage of OPC UA is that it is a uniform, cross-vendor, and open standard.

[0029] Furthermore, the method can provide for communication between the programs and peripheral devices, such as actuators or sensors. Communication can, for example, take place via a service-oriented communication structure. This can be, for example, OPC UA. In particular, a real-time version of OPC UA, e.g., the OPC UA-TSN version, can be used. Communication between the programs and peripheral devices is controlled, in particular, by the runtime environment. The runtime environment, in particular, mediates communication between the individual programs and the operating system. The operating system, in particular, mediates communication between the runtime environment and the hardware.

[0030] It is possible for a computer system to provide programs that can be executed in the runtime environment via a data connection. This makes it easy to transfer new programs to the computer used to execute the method, for example, via the Internet, and to expand its application possibilities. The programs can be made available, for example, by the computer system in the manner of a software store.

[0031] The method may provide for an integrated development environment that supports the creation of programs executable in the runtime environment.

[0032] The method can provide for the programs to be managed, in particular by the runtime environment. This particularly applies to programs that are made available by a computer system via a data connection. The runtime environment can in particular provide package management that manages software packages containing the corresponding programs. The programs and / or software packages are received, in particular, by the runtime environment, in particular the package management, from a computer system via a data connection and / or from a development environment. In particular, the runtime environment, in particular the package management, assigns sandboxes to the programs. In particular, the processing of the programs can also be started by the runtime environment, in particular the package management.The programs are received by the package management system, particularly in an executable state, and in particular, the programs are received as packages containing both the executable program code and configuration data and / or libraries. The programs are stored on a computer's data storage medium in such a way that both the program code and the configuration data of the program are stored separately from other software on the data storage medium.

[0033] Real-time programs can, in particular, be programs for controlling an electric drive system and / or a plurality of electric drive systems. Electric drive systems are typical components of machines and / or systems, whose control requires comparatively high real-time capability due to the high operating speeds of modern machines and / or systems. On the other hand, highly automated machines and / or systems regularly require precise coordination of the movements of a plurality (or even a large number) of driven axes.

[0034] Accordingly, at least one of the real-time programs can control the movement, movement speed, and / or position of an electric drive system when executing the method. Control can be effected, in particular, by means of a frequency converter of the drive system controlled by the computer. The movement speed can be, in particular, a rotational speed and / or angular velocity of a driven axis of the drive system. The position can be, in particular, an angular position to be assumed by an axis of the drive system, and / or the movement can be, in particular, an angular range to be covered by a rotation of an axis of the drive system.

[0035] Alternatively and / or additionally, at least one of the real-time programs can coordinate the positions, movements, and / or movement speeds of a plurality of axes driven by electric drive systems when executing the method. These axes can be axes of the same machine and / or system.

[0036] Alternatively and / or additionally, it is also conceivable that at least one of the real-time programs coordinates the positions, movements, and / or movement speeds of driven axes of different machines and / or systems when executing the method. For example, a scenario is conceivable in which a robot picks up workpieces from a conveyor belt and places them at specific positions. In such a case, a program can coordinate the movements of the driven axes of the conveyor belt and the movements of the driven axes of the robot.

[0037] It is understood that, alternatively and / or additionally, at least one of the real-time programs can, in principle, control positions, movements and / or movement speeds of at least one axis driven by an electric drive system when executing the method, taking into account at least one arbitrary peripheral device, in particular coordinate the control of positions, movements and / or movement speeds with an action of an actuator and / or control positions, movements and / or movement speeds depending on a signal from a sensor.

[0038] The automation system for a machine or plant, which is particularly designed to carry out a method described above, has a plurality of peripheral devices connected to a computer via data connections. The peripheral devices can be, in particular, all types of field devices, in particular sensors and / or actuators. The peripheral devices serve to execute automation functions, such as the drive functions of a motor, in particular acceleration and deceleration. In this case, the peripheral device can be a motor controller, for example, by means of a frequency converter. However, the peripheral devices can also be any other sensors and / or actuators that serve to implement a positioning profile of a pick-and-place robot, for example, a robot with delta kinematics.The automation functions can also include tracking management functions, such as the visual tracking of workpieces. In In this context, the peripheral device can be a camera, for example. The computer has a real-time operating system, in particular a real-time Linux operating system. Furthermore, the automation system has programs for controlling the execution of the automation functions by the peripheral devices, which can be executed in a runtime environment superimposed on the operating system. These programs include both real-time programs and non-real-time programs.

[0039] The automation system can include identification modules that can be connected to the computer via a data connection and identify the programs required for a specific machine, system, and / or peripheral device. For example, the identification modules can have memory chips that store instructions that cause a specific program to first be retrieved from a computer system via a data connection and then executed in the runtime environment. In this way, a type of "plug-and-play" function can be implemented, in which only the required software needs to be identified by identification modules. The identification modules are assigned to the machine, system, and / or peripheral device. In particular, they are an integral part of the machine, system, and / or peripheral device.If the system, machine, and / or peripheral device is integrated into the automation system via a data line, the respective identification module is also integrated into the automation system in this context. Integration via the data line enables communication between the runtime environment and the identification module.

[0040] Alternatively and / or additionally, programs and / or configuration files that are specific to the respective machine, system, and / or peripheral device can also be integrated into the memory modules of the identification modules. In this variant, the machine, system, and / or peripheral device, when integrated into the automation system, supplies the software required for its operation directly to the runtime environment. It is understood that hybrid designs of the identification modules described above are also possible. For example, a "basic version" of the software can be supplied, and a data connection can be used to obtain updates and / or extensions, which may only be made available at a later date, from a computer system via a data connection.

[0041] The automation system can comprise peripheral devices of a plurality of machines. The advantage of the automation system in this context is in particular that the system is scalable. As long as sufficient resources are available on the computer to ensure smooth operation, in particular of the real-time programs, theoretically any number of peripheral devices of any number of machines and / or systems can be controlled and / or monitored by one computer. The assignment between the computers and the machines, systems and / or peripheral devices is also flexible, i.e. it can be changed with little effort. For example, it is possible at any time to subsequently assign further machines, systems and / or peripheral devices to a computer, which are then also controlled and / or monitored by this computer.Likewise, a machine, system, and / or peripheral device that is controlled and / or monitored by a first computer can subsequently be assigned to another computer instead of the first computer, by means of which the machine, system, and / or peripheral device is subsequently controlled and / or monitored. This represents a significant advance over the previous state of the art, in which a corresponding control and / or monitoring unit, such as a programmable logic controller, was permanently assigned to a machine, system, and / or peripheral device, and this assignment could hardly be subsequently changed or could only be changed with great effort.

[0042] Since the computer only needs to be compatible with the operating system underlying the runtime environment, comparatively inexpensive standard hardware, such as an industrial PC or even a conventional PC, can be used. A correspondingly large number of peripheral devices can be automated, allowing the automation of even large, complex production systems to be controlled and / or monitored from a single central computer. If the resources of one computer are not sufficient, multiple computers can be used to control, for example, a complex production process, such as an entire factory. In this case, individual systems and / or machines, or their peripheral devices connected to the computer, can be distributed among the computers so that the individual computers can be sensibly utilized in terms of the required resources.In this way, the previously common multitude of decentralized control units can be eliminated, resulting in cost savings, particularly through simplified maintenance of the entire system, thus reducing costs over the life cycle.

[0043] Further practical embodiments and advantages of the invention are described below in conjunction with the drawings. They show: Fig. 1 is a schematic representation of a software architecture of a computer of an automation system according to the prior art, Fig. 2 is a schematic representation of the software architecture of a computer of an exemplary automation system according to the present invention, Fig. 3 is a schematic representation of the functioning of an exemplary automation system according to the present invention, Fig. 4 is the functioning of an exemplary automation system according to the present invention for controlling and / or monitoring a plurality of machines and / or systems.

[0044] In Figure 11 shows an example of a software architecture of a computer 10 of an automation system according to the prior art. A hypervisor 18 is provided as a further layer of the software architecture between the hardware layer 12 and a layer formed by a real-time operating system 14 and a non-real-time operating system 16. The hypervisor 18 ensures, by constantly switching back and forth, that the resources of the hardware 12 are distributed between the real-time operating system 14 and the non-real-time operating system 16.

[0045] In such a software architecture, commercially available operating systems such as Windows or Linux can be used as the non-real-time operating system 16. The real-time operating system 14 is typically a specialized operating system that enables the execution of the real-time programs 20 in the application layer superimposed on the real-time operating system 14. Accordingly, the non-real-time operating system 16 enables the execution of non-real-time programs 22, which can thus be executed with the real-time programs 20 on the same computer 10.

[0046] Although the hypervisor 18 makes the hardware 12 of the computer 10 available to one of the systems as needed, from the user's perspective, this results in at least an apparent simultaneous usability of the computer 10 for real-time programs 20, which can be used in particular to control and / or monitor a machine and / or a system, and non-real-time programs 22, which can be, for example, CAD applications, document generation programs such as PDF generators, or documentation programs such as an electronic machine or system logbook. In particular, the non-real-time applications 22 are typically available for commercially available, non-real-time capable operating systems such as Windows.The use of a hypervisor 18 thus makes it possible to easily integrate such software into the otherwise highly specialized infrastructure of state-of-the-art programmable logic controllers. However, there is still a high degree of dependence on the compatibility of the hardware 12 with the hypervisor 18. In addition, there are the disadvantages already described above, which are caused by the comparatively strict separation of the real-time operating system 14 from the non-real-time operating system 16.

[0047] In Figure 2An exemplary software architecture of a computer 10 of an exemplary automation system according to the invention is schematically illustrated. In this architecture, too, the hardware 12 of the computer 10 forms the lowest layer. Overlying this is a real-time capable operating system 14. This real-time capable operating system 14 can, in particular, be a Linux operating system, which, for example, has the necessary real-time capability through a suitable extension 24 (for example, a so-called "PREEMPT_RT patch"). Overlying the layer of the real-time capable operating system 14 is a runtime environment 26. This represents the link between the application layer with real-time programs 20 and non-real-time programs 22 and the real-time capable operating system 14. The real-time programs 20 and the non-real-time programs 22 are executed in the runtime environment 26.

[0048] During the execution of a method for controlling and / or monitoring an automation system of a machine and / or plant, the computer 10 executes functions of the automation system by means of programs 20, 22, in particular by means of the real-time programs 20.

[0049] Within the scope of such a method, the resources of computer 10, in particular the hardware 12, are allocated in such a way as to ensure that the real-time programs 20 have sufficient resources available to fulfill the respective real-time requirements. In particular, the runtime environment 26 determines the priority for processing the programs 20, 22.

[0050] In particular, the real-time programs 20 and the non-real-time programs 22 are executed in sandboxes 28. It is possible to execute each program 20 or 22 in its own sandbox 28. However, multiple programs 20, 22 can also be executed in a common sandbox 28.

[0051] In Figure 3 An exemplary automation system for a machine and / or system 30 is shown. The automation system comprises a computer 10 with a real-time capable operating system 14, which in turn has a runtime environment 26 superimposed thereon.

[0052] Peripheral devices 32 are connected to the computer 10 via data connections 34. These data lines enable communication between the programs 20, 22 on the one hand, and the peripheral devices 32 on the other. The peripheral devices are, in particular, field devices such as actuators and / or sensors. For example, they can be electric drives that are supplied with electrical energy and controlled, in particular, by frequency converters. Communication can take place via the data connections according to the OPC UA specification. The communication between the programs 20, 22 on the one hand, and the peripheral devices 32 on the other hand, is controlled, in particular, by the runtime environment 26.

[0053] The system can enable communication between a user 36 and a computer 10 via a user interface 38. The user interface 38 can, in particular, comprise data input and / or data output devices, such as a screen, a printer, a keyboard, and / or a pointing device such as a mouse and / or a touch-sensitive screen. The user interface 38 represents, in particular, a component of the hardware 12. In this way, a user 36 is enabled to actively influence the automation system and, in particular, to directly influence a method for controlling and / or monitoring the automation system by means of the computer 10.

[0054] Programs 20, 22 can be provided by a computer system 40 via a data connection 42. The provision of the programs 20, 22 occurs, in particular, in the manner of a software store, from which the programs 20, 22 can be retrieved or obtained by the runtime environment 26 via the data connection 42. In this context, the runtime environment 26 can, in particular, have a suitable package management system, by means of which the installation of the programs on the computer 10 is controlled by the runtime environment 26.

[0055] Alternatively and / or additionally, an integrated development environment 44 can be provided which enables a user 36 to create and / or modify programs 20, 22 via a user interface 38. The integrated development environment 44 can, in particular, be provided spatially separate from the computer 10 and / or the computer system 40. Consequently, the user environment 44 can be software that is executed on any other computer. In this way, users 36 are conveniently enabled to provide new programs 20, 22 for operating the automation system, for example from the office of a development engineer. Data connections 42 can connect the integrated development environment to the computer 10 and / or a computer system 40, for example via the Internet and / or an intranet.

[0056] Furthermore, it is possible for the machine and / or system 30 to have an identification module 46. This is in particular also connected to the computer 10 via a data connection 34. In this case, the data connection 34 between the computer 10 and the identification module 46 is in particular also controlled by the runtime environment 26. The identification module 46 can contain suitable data carriers with stored real-time programs 20, non-real-time programs 22 and / or data 48 relating to the system and / or machine. In this way, it is possible for the machine and / or system 30 to be identified by the computer 10. The programs 20, 22 required for the method for controlling and / or monitoring the automation system of the machine and / or system 30 can then be obtained separately from a computer system 40, for example via a data connection 42.Alternatively and / or additionally, the programs can also be made available to the machine and / or system 30 via the identification module 46. In this way, after establishing the data connections 34 between the components of the automation system assigned to the machine and / or system 30 and the computer 10, commissioning of the automation system can be realized according to the "plug-and-play" principle.

[0057] Such an automation system offers a high degree of variability. For example, as shown in Figure 4As shown, automation systems can be implemented which comprise peripheral devices 32 of a plurality of machines and / or systems 30. These peripheral devices 32 can all be connected to a single computer 10; an automation system formed in this way can advantageously be adapted to changing requirements, in particular individual programs 20, 22 can be easily supplemented, replaced and / or updated. Likewise, replacing the hardware 12 of the computer 10 is comparatively simple, since the runtime environment 26 enables the use of common, real-time capable operating systems, such as a Linux operating system. This results in a high degree of flexibility in the selection of the hardware 12 of the computer 10. It is also comparatively easy to subsequently integrate peripheral devices 32 - and thus also further machines and / or systems 30 - into the automation system.to be removed and / or replaced. The resulting modularity of the system allows the lifecycle costs of such an automation system to be reduced compared to conventional solutions, where such adaptations are comparatively difficult. List of reference symbols

[0058] 10Computer 12Hardware 14Real-time operating system 16Non-real-time operating system 18Hypervisor 20Real-time program 22Non-real-time program 24Extension 26Runtime environment 28Sandbox 30System / machine 32Peripherals 34Data connection 36User 38User interface 40Computer system 42Data connection 44Development environment 46Identification module 48Data

Claims

1. Method for controlling and / or monitoring an automation system of a machine and / or installation (30), wherein functions of the automation system are controlled by a computer (10), wherein control is executed by programs (20, 22) that are executed on the computer (10), wherein the computer (10) is equipped with a real-time-capable operating system (14), in particular a real-time-capable Linux operating system, wherein the programs include both real-time programs (20) and non-real-time programs (22) which are executed in a runtime environment (26) that is superordinate to the operating system (14, 16), wherein the runtime environment (26) is used as a layer between the programs and the operating system in the software architecture which the method is based on, wherein least one of the real-time programs (20) controls the movement, movement speed and / or position of an electrical drive system while executing the method, wherein the resources of the computer (10) are allocated in such a manner that it is made sure that the real-time programs (20) have sufficient resources to meet the respective real-time requirements, wherein the real-time programs (20) are assigned to cyclical time slices by the runtime environment (26), which time slices are processed in real time, wherein the runtime environment determines suitable points in time at which the non-real-time programs can be processed without negatively impacting the real-time processing of the real-time programs.

2. Method according to Claim 1, characterized in that the programs are executed in sandboxes (28), wherein, in particular, each program (20, 22) can be executed in its own sandbox (28).

3. Method according to one of the preceding claims, characterized in that the programs (20, 22) communicate with each other via a message passing system, in particular, using a publish-subscribe message pattern.

4. Method according to one of the preceding claims, characterized in that the programs (20, 22) communicate with peripheral devices (32) to execute control functions, wherein, in particular, communication is executed via a service-oriented communications structure, in particular, according to the OPC UA specification.

5. Method according to one of the preceding claims, characterized in that programs (20, 22) executable in the runtime environment (26) are provided by a computer system (40) via a data link (42).

6. Method according to one of the preceding claims, characterized in that an integrated development environment (44) is provided that supports the creation of programs (20, 22) executable in the runtime environment (26).

7. Method according to one of the preceding claims, characterized in that multiple copies of program components that are used by multiple programs (20, 22) are stored in a non-volatile memory, wherein, in particular, each copy of the program component is only accessed by a specific program (20, 22).

8. Method according to one of the preceding claims, characterized in that while executing the method, at least one of the real-time programs (20) coordinates the positions, movements and / or movement speeds of multiple axes driven by electrical drive systems.

9. Automation system for controlling and / or monitoring a machine or installation (30) according to a method according to one of the preceding claims, wherein the automation system is equipped with multiple peripheral devices (32), connected to a computer (10) via data links (42), to execute automation functions, wherein the computer (10) is equipped with a real-time-capable operating system (14), in particular a real-time-capable Linux operating system, wherein the automation system is equipped with programs (20, 22) for controlling the execution of the automation functions by the peripheral devices (32) which programs can be executed in a runtime environment (26) that is superordinate to the operating system (14, 16), wherein the programs include both real-time programs (20) and non-real-time programs (22).

10. Automation system according to Claim 9, characterized in that the automation system includes identification modules (46) connectable to the computer (10) via a data link (42) to identify and / or provide required programs (20, 22).

11. Automation system according to Claim 9 or 10, characterized in that the control system includes peripheral devices (32) of multiple machines (30).