Runtime server for running multiple runtime systems simultaneously on automated equipment
By managing multiple runtime systems through a runtime server and an I/O mapping middleware layer, the problem of equipment interruption caused by online changes or upgrades to the control program is solved, enabling flexible control and efficient maintenance of automated equipment.
Patent Information
- Application Number
- CN202080048638.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-07-03
- Filing Date
- 2020-06-30
- Publication Date
- 2025-10-31
- Estimated Expiration
- 2040-06-30
AI Technical Summary
The control program of existing automated equipment needs to be interrupted when it is changed, modified or upgraded, which leads to the interruption of automated equipment.
A runtime server is used to construct multiple runtime systems for executing device control programs in real time. Each system has a data transmission interface and I/O configuration. Dynamic management and data exchange of application modules are realized through an I/O mapping middleware layer, allowing the control program to be changed or upgraded while online.
It enables the modification or upgrading of control programs without interrupting the operation of automated equipment, improving the flexibility and maintainability of equipment control programs and reducing equipment downtime.
Smart Images

Figure CN114041121B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to a runtime server for simultaneously executing multiple runtime systems within an operating system for controlling automated equipment and data processing devices. The invention further relates to a computer program product having means for executing program code for the runtime server and runtime systems. The invention also includes an automated device. Background Technology
[0002] This patent application claims priority to German patent application DE 10 2019 117 954.8, dated July 3, 2019, the disclosure of which is hereby incorporated by reference.
[0003] In industrial automation, Memory Programmable and Digital Control (SPS / NC) is increasingly being executed as software on high-efficiency standard hardware, such as industrial PCs. Compared to traditional SPS / NC, which runs on separate computing components, so-called software SPS / NC operates under the host operating system of the data processing device, such as Windows or Unix. The host operating system is extended with a real-time kernel, which can also be provided by the software SPS / NC, and controls the computation time allocated by the host operating system to the SPS / NC. For example, software SPS is described in document EP 2 341 405 B1.
[0004] The advantages of software SPS / NC compared to traditional SPS / NC lie largely in its independence from the hardware used. This allows the hardware to be easily replaced or replaced with more efficient hardware as needed. Software SPS / NC thus automatically benefits from continuous improvements in hardware efficiency. Furthermore, software SPS / NC typically makes the user independent of the hardware vendor. Additionally, changes to the controlled process can be implemented more easily in software SPS / NC compared to traditional SPS / NC. Traditional SPS / NC usually requires specialized programming equipment to program the SPS / NC elements. Typically, SPS / NC is also distributed across multiple computers in a computer component, with the SPS / NC elements often generated using different programming languages and therefore requiring different configuration tools. In software SPS / NC, the configuration tools can reside on the same hardware as the control software.
[0005] To reduce the overhead of programming traditional and soft SPS / NC solutions for controlling or regulating complex machines and equipment, a modular concept is increasingly being used. Individual machine assemblies, equipment components, or functionalities are treated as independent modules, with externally packaged control software created for each module. Here, different development tools or programming languages can be used to create individual program parts, where the source text is then translated into executable program code by a corresponding compiler. These executable program modules collectively constitute the equipment control program. At startup, all program modules are loaded and executed by an additionally configured software environment within the runtime system for real-time execution of the equipment control program. Each program module has defined interfaces for communicating with each other and with the software environment.
[0006] SPS / NC's modular structure makes it possible to develop individual modules separately, using the most suitable programming language or development tools for each. This also allows for the use of standardized elements. Development tools for logic control can be high-level languages, while in the case of regulation processes, Bode plots or model regulators can be used. However, each program module is converted into an executable program using its own computer; this executable program is static and immutable within the scope of SPS / NC. All program modules must already exist in executable form when SPS / NC is started. Executing program modules separately further necessitates proper data exchange between them, and in this case, reliable data type compatibility is particularly crucial. Since the program modules are completely separate, data exchange via interfaces is mandatory. Furthermore, a linker is needed to connect the program modules, arranging them into a common program. The linker is responsible for translating the addresses of variables and functions of one program module into memory addresses when that module uses another.
[0007] While modularizing the control program offers advantages, it also presents the following problems: To make changes, modifications, or upgrades to an existing control program or its individual modules, the control program must be interrupted at least for the period during which the changes or upgrades are applied to the existing program. The same applies when new program modules should be applied to the control program, for example, as extensions, or when existing modules should be removed or replaced by new ones. However, each interruption of the control program also means an interruption of control and, consequently, an interruption of the operation of the automated equipment. Summary of the Invention
[0008] Therefore, one object of the present invention is to provide a runtime server for simultaneously executing multiple runtime systems within an operating system for a data processing device used to control automated equipment. This runtime server enables the modification and alteration of a control program while the automated equipment is online, wherein the equipment is controlled by the control program, allowing for changes to the control program while simultaneously ensuring the operation of the automated equipment. Another object is to provide a computer program product having means for executing program code for a runtime server and runtime systems. Yet another object is to provide an improved automated equipment.
[0009] The task is accomplished by a runtime server, computer program product, and automated device according to the independent claims. Preferred embodiments are given in the dependent claims.
[0010] According to one aspect of the present invention, a runtime server is provided for simultaneously executing multiple runtime systems in an operating system of a data processing device for controlling automated equipment based on a device control program, wherein the runtime systems are configured to execute the device control program in real time, and wherein the runtime server comprises: at least two runtime systems for executing application modules of the device control program, wherein at least one application module for executing the application of the device control program is installed on each runtime system, wherein each runtime system has a data transmission interface for transmitting data between runtime systems and / or between application modules, wherein each runtime system has an I / O configuration that defines an allocation between at least one variable of the application module of the runtime system and at least one hardware address of a hardware component of the automated equipment to be controlled;
[0011] An I / O interface having at least one I / O input and / or I / O output for exchanging data between at least two running systems and hardware components of the automation equipment; and
[0012] I / O mapping intermediate layer, wherein the I / O configurations of the at least two runtime systems are mapped in the I / O mapping intermediate layer.
[0013] This achieves the following technical advantages: multiple runtime systems can run simultaneously using runtime servers, and multiple application modules of the device control program can be executed on these runtime systems. This allows the corresponding runtime system to be stopped during planned changes, modifications, or upgrades to the application modules of the device control program, so that the changes or upgrades can be implemented, while the application modules running on other runtime systems can continue to execute. Thus, changes, modifications, or upgrades to individual application modules of the device control program do not require terminating the entire device control program, and therefore the automated equipment can continue to operate during the implementation of changes, modifications, and upgrades.
[0014] Multiple runtime systems can be executed independently on a runtime server. Each runtime system is configured to execute at least one application module for executing a device control program. Each runtime system includes a data transfer interface, by means of which data transfer is enabled between the multiple runtime systems on the runtime server. Furthermore, the data transfer interface of the runtime system enables data transfer between the various application modules of the runtime system. Data transfer is also possible between different application modules within a runtime system. Additionally, each runtime system has an I / O configuration that defines an explicit allocation between variables of the application modules installed on their respective runtime systems and the hardware components of the automated device to be controlled by the device control program.
[0015] The runtime server also has an I / O interface, which enables data exchange between the runtime system installed on the runtime server and the hardware components of the automation equipment. For this purpose, the I / O interface has at least one I / O input and / or I / O output, which facilitates the connection between the hardware components of the automation equipment and the respective application modules of the runtime system.
[0016] The runtime server also has an I / O mapping middleware layer, in which the I / O configuration of the runtime system installed on the runtime server is mapped. Therefore, the I / O mapping middleware layer has all the I / O configurations of the runtime system installed on the runtime server at a given point in time. Through the I / O mapping middleware layer, explicit allocation of variables of application modules installed on their respective runtime systems and the respective hardware components of the automation devices to be controlled can be achieved. The I / O mapping middleware layer further allows for the modification, alteration, or upgrade of individual application modules of the device control program, while simultaneously executing other application modules of the device control program that should not be changed or modified at a given point in time.
[0017] In order to change, modify, or upgrade the application module of the device control program, the application module to be changed can be stopped, while other application modules unrelated to the application module to be changed can continue to run, and thus the device control program can continue to run at least partially.
[0018] To modify an application module, the application module can be stopped and uninstalled from its respective runtime system, and the modified version of the application module can be reinstalled on that runtime system. Provided the implemented changes are compatible with other device controllers, the modified application module can be started and thus inserted into the other device controller after a complete installation. Alternatively, the entire runtime system on which the application module to be modified is installed can be removed from the runtime server, and a new runtime system on which the modified version of the application module to be modified is installed can be installed on the runtime server, thereby inserting the corresponding modified application module into the device controller. Alternatively, the application module to be modified can simply be stopped and the corresponding changes inserted into it, and upon restart, the modified application module can be inserted into the existing device controller.
[0019] If the change to the application module to be modified specifies a change or modification to the I / O configuration—that is, a change or modification to the allocation of variables in the application module and the hardware components of the automation device to be controlled—then when the modified application module is reinstalled into the existing device control program, the modified I / O configuration of each automation system is taken over by the runtime server's I / O mapping intermediate layer, so that the runtime server's I / O configuration is updated with respect to the changes made. This update of the runtime server's I / O configuration by mapping the modified I / O configuration of the runtime system can be performed independently of the existing and unchanged I / O configurations of the runtime system or application module, so that the I / O configurations of the unchanged application module or runtime system are not affected by the changes in the I / O configurations of the modified runtime system or modified application module.
[0020] Based on the I / O configuration of the application modules to be changed and unaffected by the changes made to the application modules, the device control program can be executed without interference during the modification of the application modules to be changed and during the loading of the modified application modules. To execute changes, modifications, or upgrades to one or more application modules, the stopping of the device control program and the associated shutdown of the automated equipment to be controlled can be omitted.
[0021] In addition to changing or modifying existing application modules that have been flashed into the device control program, the device control program can also be extended by adding new application modules that are not currently present in the device control program. To do this, the application modules to be flashed into the existing device control program can be installed on a new runtime system, and the new runtime system can be included in the runtime server. This ensures that when the newly installed application module is launched, it is flashed into the existing device control program, provided that the new application module is compatible with the existing device control program.
[0022] The corresponding I / O configuration of the newly inserted application module can be mapped to the I / O mapping intermediate layer, and thus the runtime server's I / O configuration can be updated with respect to the expansion of the device control program and the addition of new application modules. Therefore, for extending an existing device control program with additional application modules, stopping the device control program and the associated shutdown of the automated device to be controlled are not necessary.
[0023] Similarly, existing application modules can be removed from the device control program without stopping the program and shutting down the automated device. This can be done by removing the application module from its respective runtime system or by removing the entire runtime system containing the application module from the runtime server. The corresponding changes to the I / O configuration can be considered at the I / O mapping intermediate layer by removing the I / O configuration of the removed application module or runtime system from the runtime server's mapping of the runtime system to the I / O mapping intermediate layer.
[0024] A runtime server and runtime system are configured to execute device control programs in real time, enabling real-time control of automated equipment. Through the runtime server and the runtime system installed on it, real-time and flexible control of automated equipment can be achieved. Various application modules for the device control programs are installed on and execute the runtime system. Changes and modifications to these device control programs can be performed in online mode, allowing for the abandonment of stopping the device control programs and shutting down the automated equipment to be controlled. The device control programs are at least partially executed in this online mode.
[0025] Currently, a runtime system is a runtime environment on which computer programs can be executed at runtime. A runtime environment can be inserted into the operating system of a data processing device, ensuring an execution environment for computer programs not supported by their respective operating systems.
[0026] Currently, the application module is a separate part of the device control program, through which the application of the device control program can be executed. In this case, the application can include each area of the device control program. The application may, for example, include manipulating actuators, reading sensors, or processing or representing measurement data.
[0027] Currently, data transfer between two application modules may include writing specific data into a predetermined storage area via a first application module, and reading data stored in the storage area by the first application module via a second application module.
[0028] Each runtime system may have a management module that manages application modules according to a control program description. The management module enables application modules to transition from an inactive state (where they are not initialized and cannot execute applications) to an active state (where they can execute their respective applications). For this purpose, application modules may have an initialization state, in which they are inactive and can be activated for future execution, or deactivated after execution. Furthermore, each application module may have a pre-running state, in which it is activated but not yet executing its application. In the pre-running state, resources, particularly processor time and storage space, can be allocated to the application module. Additionally, each application module may have a verification state, in which compatibility and functionality with the control program can be verified before execution. In the execution state, the application module is capable of executing its corresponding application.
[0029] Here, application modules can be configured to log in to the management module using a separate module identifier in the initialization state for activation or log out for deactivation. Furthermore, application modules can establish communication connections with other application modules via the management module during the transition from the pre-run to the test run state, and dismantle these connections during the transition from the test run to the pre-run state. Additionally, during the transition from the test run to the execution state, application modules can log in to other application modules and log out during the transition from the execution state to the test state. Login enables interaction between application modules.
[0030] Therefore, application modules can be dynamically managed to execute device control programs within the runtime system. Application modules can be created, started, and executed, or shut down and terminated again during runtime. Furthermore, individual application modules can be created using different tools or different programming languages. Application modules operate within the same time context and use shared storage and file types, enabling data exchange without additional links. Due to the standardized structure of all application modules, modifications and adaptations within the runtime system can be easily made.
[0031] Application modules can occupy data processing system resources during the transition from initialization to pre-running state, and release the occupied resources again during the transition from pre-running to initialization state. Furthermore, application modules can secure resources for other application modules during the transition from test run to real-time run, and return the occupied resources of other application modules during the transition from real-time run to test run. This behavior enables reliable operation and effective resource management of the runtime system.
[0032] According to one embodiment, at least one storage area and / or processor and / or processor time of the data processing device are allocated to the runtime system of the runtime server.
[0033] This achieves the following technical advantage: the runtime systems of the runtime server can be run independently of each other. By allocating their own storage area and / or their own processor time or their own processor or processor core to each runtime system of the runtime server, the application modules of each runtime system can be executed without being affected by the corresponding application modules of other runtime systems.
[0034] If multiple processor cores are used in a data processing device, individual runtime systems can be executed on different processor cores, allowing different application modules to be executed simultaneously. By allocating their own processor time, processor cores, or processors to each runtime system on the runtime server, individual runtime systems can be removed from or added to the runtime server without any problems, and without thereby impairing the execution of application modules of other runtime systems.
[0035] According to one implementation, the runtime system is instantiated.
[0036] This achieves the following technical advantage: the runtime systems of the runtime server can run independently of each other. Each individual runtime system is self-contained. For example, a device control program can be executed entirely on a single, unique runtime system. To this end, this single runtime system can include all application modules of the device control program and execute those application modules according to the device control program. Therefore, no additional runtime system needs to be installed.
[0037] Alternatively, multiple independent runtime systems can be installed on the runtime server, allowing, for example, only one application module of the device control program to be installed on each runtime system. Data transfer between the application modules can be achieved through the data transfer interfaces of the various runtime systems, enabling the device control program, including the application module, to be executed through multiple runtime systems.
[0038] Instantiation of a runtime system allows for changes to application modules installed on the runtime system, or for adding or removing the runtime system from the runtime server, without harming or affecting other runtime systems and their respective application modules.
[0039] In one implementation, the application modules are self-sufficient and independent of each other.
[0040] This achieves the following technical advantages: application modules of the device control program can be changed, removed, or added without harming other application modules of the device control program. Each application module is an independent sub-unit of the device control program and can be changed, modified, added, or removed as an independent unit without having to adapt to other application modules of the device control program.
[0041] This enables greater flexibility in the device control program. Furthermore, the individual application modules can be created independently, resulting in higher programming efficiency. Additionally, the modularity of the device control program facilitates error identification, as error analysis can be confined to the individual application modules of the device control program.
[0042] According to one implementation, the runtime system can be run in real-time mode and / or in non-real-time mode.
[0043] This achieves the following technical advantages: it expands the application scope of runtime servers. The runtime system of a runtime server can run in real-time and / or non-real-time mode, and real-time or non-real-time application modules of the device control program can be executed on their respective runtime systems. Therefore, the device control program can execute various applications that meet different real-time capability requirements.
[0044] According to one embodiment, the runtime server further includes at least one additional runtime system, wherein at least one additional application module of the application for executing the device control program is installed on the additional runtime system, wherein the additional runtime system has a data transmission interface for data transmission between the additional runtime system and / or between the additional application module and the application module, and wherein the additional application module does not have real-time capabilities and the additional runtime system can be run in a non-real-time mode.
[0045] This achieves the following technical advantages: greater flexibility for the runtime server. Additional applications for the device control program can be executed through a separate runtime system with additional application modules installed. In this case, the separate runtime system can only run in non-real-time mode, and the additional application modules installed on the separate runtime system are only constructed to execute applications for the device control program that do not require real-time capabilities.
[0046] Such applications may, for example, include evaluating measurement data or graphically representing the evaluated measurement data. By dividing real-time applications into real-time runtime systems and non-real-time applications into non-real-time runtime systems, an improved structure can be achieved for the runtime server and the real-time and non-real-time runtime systems installed on it. This, in turn, enables simpler allocation of storage space, processor time, or processor cores for each runtime system within the runtime server.
[0047] According to one implementation, the runtime server establishes a hierarchical structure under the runtime system and / or the other runtime system, wherein priority is guaranteed for the runtime system running in real-time mode over the runtime system running in non-real-time mode and / or the other runtime system.
[0048] This achieves the following technical advantages, namely, meeting the requirements of real-time applications. The hierarchical structure within the runtime system ensures that applications requiring real-time performance are executed with priority over those not subject to real-time requirements, preventing the execution of real-time applications from being interrupted by the execution of non-real-time applications. Therefore, the hierarchical structure within the runtime server can meet the real-time capabilities required by each runtime system.
[0049] According to one embodiment, the runtime server further includes a data transmission router for connecting to a data transmission interface of the runtime system and other runtime systems, wherein data exchange between the runtime system and / or other runtime systems and / or between application modules and / or other application modules can be realized via the data transmission router.
[0050] This achieves the following technical advantages: enabling fast, interference-resistant, and reliable data transmission between the runtime system of the runtime server and its application modules. In this case, data exchange between the runtime system or application modules may include storing data in a storage area via a first runtime system or application module and reading the stored data via a second runtime system or application module.
[0051] Data exchange or data transfer between the runtime system and / or application modules can include data communication between the runtime system and / or application modules. In addition to data transmission, data communication also includes the transmission of information with content understood by both communicating parties.
[0052] In this case, a data transmission router may include scripts or protocols for writing data to a predetermined storage area and for reading data stored in the predetermined storage area. The data transmission router can enable data transmission between different runtime systems. Furthermore, the data transmission router can enable data transmission between application modules installed on different runtime systems. Additionally, the data transmission router can enable data transmission between different application modules installed on the same runtime system.
[0053] According to one embodiment, while the control device executing at least one runtime system is online, it is possible to add and / or remove at least one runtime system.
[0054] This achieves the following technical advantages: it enables flexible modification, expansion, or reduction of the device control program. To extend the device control program with additional applications or modules, one or more runtime systems, each containing the application modules to be extended, can be updated to a server.
[0055] During this period, additional runtime systems already installed on the runtime server can continue to run, allowing application modules installed on these runtime systems to continue executing, and thus enabling the automated equipment to continue operating through the system control program. After installing additional runtime systems, as long as the application modules installed on them are compatible with the existing equipment control program, the application modules installed on them can be started and inserted into the existing equipment control program.
[0056] The I / O configurations of the additional runtime systems can be mapped to the I / O mapping middleware of the runtime server, so that the I / O configuration of the runtime server can be updated as needed, the I / O configuration corresponding to the I / O configuration of the respective runtime system of the runtime server mapped to the I / O mapping middleware.
[0057] Similarly, one or more existing runtime systems can be removed from the runtime server while additional application modules installed on other runtime systems can be executed, thus enabling the operation of automated devices via the device control program. Corresponding updates to the runtime server's I / O configuration can be achieved by mapping the I / O configurations of each runtime system to an I / O mapping intermediate layer. This achieves high flexibility by allowing the device control program to be expanded or reduced with additional or existing applications during concurrent execution.
[0058] According to one implementation, each of the runtime systems is executed on one or more cores of the processor, and the multiple runtime systems are executed on one or more cores.
[0059] This achieves the following technical advantage: the runtime systems of the runtime server can be run independently of each other. This enables a high degree of flexibility. For example, multiple runtime systems can be executed on a single processor. Thus, the runtime server according to the invention can be executed on a data processing device comprising only one processor.
[0060] Furthermore, each runtime system of the runtime server can be executed on its own processor or processor core. This allows application modules from different runtime systems to be executed simultaneously. Additionally, it prevents the execution of application modules from other runtime systems from affecting the execution of application modules on individual runtime systems. Moreover, each runtime system can be executed on multiple processors or processor cores, thus increasing the flexibility of the runtime server.
[0061] According to one implementation, the runtime server can be integrated as a real-time environment into a non-real-time operating system and can be executed within the non-real-time operating system.
[0062] This achieves the following technical advantages: computer programs, especially device control programs, that must meet real-time requirements can be executed via a runtime server and a runtime system installed on the runtime server. This is particularly feasible in non-real-time operating systems, such as those commonly found in the personal computer (PC) market. Therefore, real-time device control programs can be executed within a non-real-time operating system via a runtime server and the runtime system installed on it.
[0063] According to a second aspect of the present invention, a computer program product is provided, wherein the computer program product has means for executing program code for a runtime server and a runtime system, and wherein the computer program product runs on a data processing device.
[0064] According to one implementation, the computer program product is stored on a computer-readable recording medium.
[0065] According to a third aspect of the invention, an automation device is provided having a data processing device for controlling automated equipment, wherein the data processing device is provided with at least one runtime server and at least two runtime systems and is configured to execute a device control program established on the runtime systems in order to control the automated equipment. Attached Figure Description
[0066] The invention will be described in more detail with reference to the accompanying drawings. In this context:
[0067] Figure 1 A schematic diagram of a runtime server according to one embodiment is shown;
[0068] Figure 2 A schematic diagram of a computer program product for executing a runtime server according to one embodiment is shown; and
[0069] Figure 3 A schematic diagram of an automated device having a data processing apparatus for performing a runtime server is shown according to one embodiment. Detailed Implementation
[0070] Figure 1 A schematic diagram of a runtime server 100 according to one embodiment is shown.
[0071] according to Figure 1 In this implementation, runtime server 100 is configured to simultaneously execute multiple runtime systems 101 within an operating system 103 for data processing devices used to control automated equipment 112 based on device control programs. Runtime system 101 is configured to execute device control programs in real time. Runtime server 100 includes:
[0072] At least two runtime systems 101 for executing application module 105 of the device control program, wherein at least one application module 105 for executing the device control program is installed on each runtime system 101, wherein each runtime system 101 has a data transfer interface 107 for data transfer between runtime systems 101 and / or between application modules 105, wherein each runtime system 101 has an I / O configuration 109, the I / O configuration defining the allocation between at least one variable of the application module 105 of the runtime system 101 and at least one hardware address of the hardware component 113 of the automation device 112 to be controlled.
[0073] An I / O interface 111 for exchanging data between hardware components 113 of at least two runtime systems 101 and automation equipment 112, having at least one I / O input 115 and / or one I / O output 117, and an I / O mapping intermediate layer 119, wherein the I / O configurations 109 of at least two runtime systems 101 are mapped in the I / O mapping intermediate layer 119.
[0074] exist Figure 1 In this implementation, the runtime server 100 is embedded in the operating system 103. Five runtime systems 101 are installed on the runtime server 100, and two application modules 105 are installed on each of the runtime systems 101. Each of the runtime systems 101 has a data transfer interface 107 and an I / O configuration 109 for data transfer. Each I / O configuration 109 of each runtime system 101 establishes a direct allocation of variables of the respective application module 105 installed on the runtime system 101 and the hardware components 113 of the automation equipment 112 to be controlled.
[0075] The runtime server 100 also has an I / O mapping middleware 119. Each I / O configuration 109 of each runtime system 101 is mapped to the I / O mapping middleware 119. Figure 1 In the implementation of the above, the I / O mapping intermediate layer 119 includes five mappings of five I / O configurations 109 of five runtime systems 101.
[0076] The number of runtime systems 101 installed on runtime server 100 can be different Figure 1 The quantities shown can take any value. Runtime server 100 can, for example, be implemented using only one installed runtime system 101. Furthermore, for each runtime system 101... Figure 1 The two application modules 105 shown are merely examples. Therefore, alternatively, each runtime system 101 may have any number of application modules 105 or each runtime system 101 may include only one application module 105.
[0077] The runtime server 100 further includes five additional runtime systems 125, on which two additional application modules 106 are installed respectively. Each of the five additional runtime systems 125 has a data transmission interface 107. The additional runtime systems 125 are run in a non-real-time mode 127 and the additional application modules 106 include applications that meet non-real-time requirements.
[0078] according to Figure 1In the implementation of this method, five runtime systems 101 are run in real-time mode 129, and application modules 105 installed on runtime systems 101 are configured to execute applications according to real-time requirements.
[0079] according to Figure 1 In the implementation of the above, a runtime system 101 running in real-time mode 129 and another runtime system 125 running in non-real-time mode 127 are arranged in a corresponding hierarchical structure, the hierarchical structure being... Figure 1 The hierarchy defined on runtime server 100 by runtime system 101 and another runtime system 125 ensures the real-time execution of application module 105 of runtime system 101 and prevents interference with the execution of application module 105 by executing another application module 106 of another runtime system 125 running in non-real-time mode 127.
[0080] The runtime server 100 further includes a data transmission router 121, which can be connected to the data transmission interfaces 107 of the runtime system 101 and the other runtime system 125, enabling data transmission between runtime systems 101, between runtime systems 101 and the other runtime system 125, or between the other runtime systems 125. Similarly, data transmission between application module 105 and other application modules 106 can be achieved via the data transmission interfaces 107 of the respective runtime systems 101 and the other runtime system 125 and the data transmission router 121.
[0081] exist Figure 1 In the implementation of this method, the data transmission router 121 is divided into two branches. The first branch 120 enables direct data transmission between other runtime systems 125, while the second branch 122 enables direct data transmission between runtime systems 101. By dividing the data communication router into first and second branches 120 and 122, a hierarchical structure between runtime system 101 and other runtime systems 125 can be achieved. The method by which runtime systems 101 can directly exchange data with each other via the second branch 122 of the data communication router 121 allows for prioritization relative to other runtime systems and avoids potential conflicts during data exchange. Data exchange between runtime systems 101 via the second branch 122 of the data communication router 121 thus meets real-time requirements.
[0082] Meanwhile, other runtime systems 125 can exchange data with each other directly and without interference via the first branch 120 of the data transmission router 121. Data transmission between other runtime systems 125 via the first branch 120 of the data transmission router 121 does not meet real-time requirements.
[0083] The arrow between the two branches of the data transmission router 121 indicates that data transmission between runtime system 101 and another runtime system 125 can be additionally realized via the two branches 120 and 122 of the data transmission router 121.
[0084] Furthermore, the runtime server 100 has a communication interface 133, which enables a connection between the data transmission router 121 and the operating system 103. The communication interface 133 facilitates data transmission between the runtime server 100 and the operating system 103, in which the runtime server 100 is embedded.
[0085] exist Figure 1 In the implementation of the above, the communication interface 133 is connected not only to the first branch 120 of the data communication router 121 but also to the second branch 122 of the data communication router 121. Therefore, again, to enable data transmission between the runtime system 101 and other runtime systems 125 and operating systems 103, a hierarchical data transmission can be implemented, whereby data can be transmitted between the runtime system 101 and operating system 103 via the second branch 122 of the data communication router 121, and data can be transmitted between other runtime systems 125 and operating system 103 via the first branch 122 of the data communication router 121.
[0086] The runtime server 100 further includes an I / O interface 111 with multiple I / O inputs 115 and I / O outputs 117. The I / O outputs 117 and I / O inputs 115 enable connection between the hardware components 113 of the automation device 112 and the application module 105 of the runtime system 101. An explicit allocation between variables in the application module 105 and the hardware components 113 of the automation device 112 can be achieved through an I / O mapping intermediate layer 119. Figure 1 The number of I / O input terminals 115 and I / O output terminals 117 in the embodiments described are merely exemplary and may vary depending on the automation equipment 112 to be controlled.
[0087] according to Figure 1In this implementation, the automation device 112 includes multiple hardware components 113. The hardware components 113 may include, for example, fieldbus terminals, sensors, or actuators of the automation device. The hardware components 113 are connected to a bus master 123 via a data bus 131. The data bus 131 can be operated using a common fieldbus protocol. The bus master 123 is connected to the runtime server 100 via I / O inputs 115 of the I / O interface 111. Control of the hardware components 113 of the automation device 112 can be initiated by executing an application module 105 installed on the runtime system 101. In this case, the bus master 123 can initiate data transmission between the control device of the automation device 112 and the respective hardware components 113.
[0088] Each has three bus master controllers 123 and a total of five hardware components 113 Figure 1 The design schemes of the embodiments described herein are merely exemplary, and the present invention should not be limited thereto.
[0089] The application module 105 of the runtime system 101, running in real-time mode 129, is used to execute applications for device control programs that must meet real-time requirements. These application modules may include, for example, actuators that control the automated equipment 112 or sensors that read out the automated equipment 112. Meanwhile, another application module 106 of the other runtime system 125, running in non-real-time mode 127, is used to execute applications for device control programs that do not need to meet real-time requirements. These applications may include, for example, applications that evaluate measurement data, graphically represent the evaluated measurement data, or have a secondary priority for real-time control of the automated equipment 112.
[0090] according to Figure 1 In this implementation, runtime system 101 is instantiated and can run completely independently of other runtime systems 101. Application module 105, installed on runtime system 101, is an independent unit of the device control program and can be executed independently of each other. Similarly, another runtime system 125 is instantiated and represents an independently runnable unit that can run independently of other runtime systems 101 and / or other additional runtime systems 125. Another application module 106 is also an independent unit of the device control program and can be executed independently of each other.
[0091] according to Figure 1In the implementation described above, runtime system 101 and / or additional runtime system 125 can be added to runtime system 101 and / or additional runtime system 125 already installed on runtime server 100. Runtime system 101 and / or additional runtime system 125 can also be removed from runtime server 100. The remaining runtime system 101 and / or the remaining additional runtime system 125 can continue to run during the addition or removal of runtime system 101 and / or additional runtime system 125, and application modules 105 and / or additional application modules 106 installed thereon can continue to be executed, allowing the automated device 112 to continue operating via the device control program.
[0092] Furthermore, application module 105 installed on runtime system 101 and / or additional application module 106 installed on another runtime system 125 can be changed and / or modified. Application module 105 and / or additional application module 106 that do not need to be changed or modified can continue to be executed while the application module 105 and / or additional application module 106 to be changed are being modified.
[0093] To modify application module 105 and / or other application module 106, these application modules 105 and / or other application modules 106 can be stopped and the corresponding changes refreshed. Upon restarting the modified application module 105 and / or the modified other application module 106, these application modules and / or other application modules can be refreshed into the existing device control program. Alternatively, application module 105 and / or other application module 106 can be uninstalled from their respective runtime systems 101 and / or other runtime systems 125, and modified versions of application module 105 and / or other application module 106 can be installed on their respective runtime systems 101 and / or other runtime systems 125. Upon starting the modified application module 105 and / or other application module 106, these application modules and / or other application modules can be refreshed into the existing device control program.
[0094] In the event of changes to the application modules 105 of runtime system 101, including changes to the I / O configurations 109 of their respective runtime systems 101, these changes can be accounted for by mapping the modified I / O configurations 109 to the I / O intermediate layer 119. The I / O mapping intermediate layer 119 ensures the explicit allocation of variables of each application module 105 of runtime system 101 to the hardware components 113 of the automation device 112 to be controlled by runtime server 100.
[0095] The runtime server 100 therefore utilizes an I / O mapping middleware 119 with a variable I / O configuration that can be changed during the continuous execution of device control procedures. The I / O mapping middleware 119 includes all mappings of the I / O configurations 109 of the runtime systems 101 installed on the runtime server 100. In this case, the individual I / O configurations 109 of each runtime system 101 can be changed, and the corresponding mappings of the changed I / O configurations 109 can be mapped onto the I / O mapping middleware 119, while other runtime systems 101 and the application modules 105 installed thereon continue to be executed.
[0096] Figure 2 A schematic diagram is shown of a computer program product 200 for executing a runtime server 100 according to one embodiment.
[0097] exist Figure 2 In one embodiment, computer program 200 is arranged on recording medium 201.
[0098] Figure 3 A schematic diagram of an automation device 112 having a data processing device 114 for executing a runtime server 100, according to one embodiment, is shown.
[0099] exist Figure 3 In one embodiment, the automation device 112 includes a data processing device 114 and a plurality of hardware components 113, which are connected to the data processing device 112 via a data bus 131.
[0100] An operating system 103 for executing data processing device 114 is installed on data processing device 114. A runtime server 100 for executing device control programs for controlling automated equipment is configured on operating system 103.
[0101] The runtime server 100, along with the operating system 103, hardware components 113, and data bus 131, has features designed for... Figure 1 The listed features.
[0102] List of reference numerals
[0103] 100 Runtime Server
[0104] 101 Runtime System
[0105] 103 Operating System
[0106] 105 Application Modules
[0107] 106 Other application modules
[0108] 107 Data Transmission Interface
[0109] 109I / O Configuration
[0110] 111I / O interface
[0111] 112 Automated Equipment
[0112] 113 Hardware Components
[0113] 114 Data processing equipment
[0114] 115I / O Input Terminals
[0115] 117I / O Output Terminal
[0116] 119I / O Mapping Intermediate Layer
[0117] 120 First Branch Road
[0118] 121 Data Transmission Router
[0119] 122 Second Branch Road
[0120] 123 Bus Master
[0121] 125 Other runtime systems
[0122] 127 Non-real-time mode
[0123] 129 Real-time Mode
[0124] 131 Data Bus
[0125] 133 Communication Interface
[0126] 200 computer program products
[0127] 201 Recording medium.
Claims
1. A runtime server (100) for simultaneously executing multiple runtime systems (101) in an operating system (103) for a data processing device that controls an automated device (112) based on a device control program, wherein the runtime systems (101) are configured to execute the device control program in real time, the runtime server comprising: At least two runtime systems (101) for executing the application module (105) of the device control program, wherein the runtime system (101) is configured as a runtime environment, wherein at least one application module (105) for executing the application program of the device control program is installed on each runtime system (101), wherein each runtime system (101) has a data transfer interface (107) for data transfer between runtime systems (101) and / or between application modules (105), wherein an I / O configuration (109) is defined in each runtime system (101), the I / O configuration (109) defining the allocation between at least one variable of the application module (105) of the runtime system (101) and at least one hardware address of the hardware component (113) of the automated device (112) to be controlled; An I / O interface (111) having at least one I / O input (115) and / or I / O output (117) for exchanging data between hardware components (113) of at least two running systems (101) and the automation equipment (112); and An I / O mapping intermediate layer (119) is provided, wherein the I / O configurations (109) of at least two runtime systems (101) are mapped in the I / O mapping intermediate layer (119), the I / O mapping intermediate layer (119) represents the I / O configuration of the runtime server (100) and defines the explicit allocation of variables of the application modules (105) of the runtime system (101) and the hardware components of the automation device (112), and wherein the data connection between the runtime system (101) and the I / O interface (111) is defined through the I / O mapping intermediate layer (119), wherein the I / O configuration (109) of the runtime system (101) can be modified by at least one application module (105) during the execution of the device control program, and the I / O configuration of the runtime server (100) can be changed by mapping the modified I / O configuration of the runtime system (101) into the I / O mapping intermediate layer (119) during the execution of the device control program.
2. The runtime server (100) according to claim 1, wherein at least one storage area and / or processor and / or processor time of the data processing device are respectively allocated to the runtime system (101) of the runtime server (100).
3. The runtime server (100) according to claim 1 or 2, wherein the runtime system (101) is instantiated.
4. The runtime server (100) according to claim 1 or 2, wherein the application module (105) is designed as an independent unit of the device control program.
5. The runtime server (100) according to claim 1 or 2, wherein the runtime system (101) is capable of being run in real-time mode (129).
6. The runtime server (100) according to claim 1 or 2, further comprising at least one additional runtime system (125), wherein at least one additional application module (106) for executing the device control program is installed on the additional runtime system (125), wherein the additional runtime system (125) has a data transmission interface (107) for data transmission between the additional runtime system (125) and the runtime system (101) and / or between the additional application module (106) and the application module (105), and wherein the additional application module (106) does not have real-time capability, and the additional runtime system (125) can be run in a non-real-time mode (127).
7. The runtime server (100) according to claim 6, wherein the runtime server (100) establishes a hierarchical structure under the runtime system (101) and / or the additional runtime system (125), wherein priority is guaranteed for the runtime system (101) running in real-time mode (129) relative to the runtime system (101) and / or the additional runtime system (125) running in non-real-time mode (127).
8. The runtime server (100) according to claim 6, further comprising a data transmission router (121) for connection to a data transmission interface (107) of the runtime system (101) and the additional runtime system (125), wherein data exchange between the runtime system (101) and / or the additional runtime system (125) and / or between the application module (105) and / or the additional application module (106) is enabled via the data transmission router (121).
9. The runtime server (100) according to claim 1 or 2, wherein the runtime server (100) is configured to add and / or remove at least one runtime system (101) while the automation device (112) is online, wherein the automation device (112) is controlled by a control program and executes at least one runtime system (101) while the automation device (112) is online.
10. The runtime server (100) of claim 2, wherein each of the plurality of runtime systems (101) is executed on one or more cores of the processor, or the plurality of runtime systems (101) are executed on one core of the processor.
11. A system having a data processing device (114) for controlling an automated device (112) and an automated device (112), wherein the data processing device (114) is provided with at least one runtime server (100) according to any one of claims 1 to 10, and is configured to execute a device control program set on a runtime system (101) to control the automated device (112).
Citation Information
Patent Citations
Method for operating a machine
EP2341405B1
Interchanging real-time data between program modules
CN109937404A
Dual-system component-based industrial robot controller
US20140074294A1