EP3977301A1 - Laufzeitserver zum gleichzeitigen ausführen mehrerer laufzeitsysteme einer automatisierungsanlage - Google Patents

Laufzeitserver zum gleichzeitigen ausführen mehrerer laufzeitsysteme einer automatisierungsanlage

Info

Publication number
EP3977301A1
EP3977301A1 EP20735570.2A EP20735570A EP3977301A1 EP 3977301 A1 EP3977301 A1 EP 3977301A1 EP 20735570 A EP20735570 A EP 20735570A EP 3977301 A1 EP3977301 A1 EP 3977301A1
Authority
EP
European Patent Office
Prior art keywords
runtime
systems
server
runtime systems
control program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP20735570.2A
Other languages
English (en)
French (fr)
Inventor
Hans Beckhoff
Ramon Barth
Dirk Janssen
Josef Papenfort
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beckhoff Automation GmbH and Co KG
Original Assignee
Beckhoff Automation GmbH and Co KG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beckhoff Automation GmbH and Co KG filed Critical Beckhoff Automation GmbH and Co KG
Publication of EP3977301A1 publication Critical patent/EP3977301A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41835Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by programme execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • G05B19/4145Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by using same processor to execute programmable controller and numerical controller function [CNC] and PC controlled NC [PCNC]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • G05B19/4148Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by using several processors for different functions, distributed (real-time) systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41865Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23217Parallel processing
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24153System controller can control independent from host
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25369Control of states, real time
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34258Real time system, qnx, works together with non real time system, windows nt
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34273Pc and plc and nc integrated, pcnc concept
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Definitions

  • Runtime server for the simultaneous execution of several runtime systems in an automation system
  • the invention relates to a runtime server for the simultaneous execution of several runtime systems in an operating system for a data processing system for controlling an automation system.
  • the invention also relates to a computer program product with program code means for running the runtime server and the runtime systems.
  • the invention also includes an automation system.
  • PLC / NC programmable logic and numerical controls
  • B. an industrial PC
  • soft PLC / NC run under the host operating system of the data processing system, e.g. B. under Windows or Unix.
  • the word operating system is expanded to include a real-time kernel which can also be made available by the soft PLC / NC and which controls the computing time that the word operating system sends to the PLC / NC.
  • a soft PLC is described in the publication EP 2 341 405 B1.
  • the advantage compared to conventional PLC / NC is that the Soft PLC / NC is largely independent of the hardware used. If necessary, the hardware can easily be exchanged or replaced by more powerful hardware. Soft-PLC / NC automatically benefit from the constant increase in hardware performance. In addition, the soft PLC / NC generally makes the user independent of the hardware provider. In addition, changes to the process to be controlled can be implemented more easily with the Soft-PLC / NC than with conventional PLC / NC. With the conventional PLC / NC a special programming device is usually required to program the elements of the PLC / NC.
  • the PLC / NC is also distributed over several computers in a computer assembly, whereby the elements of the PLC / NC are often generated with different programming languages and thus also different ones Require configuration tools.
  • the configuration tool can also be located on the same hardware as the control software.
  • the modular structure of the PLC / NC makes it possible to develop the individual modules separately and to use the most suitable programming language or the necessary development tool. There is also the option of using standardized elements. As development tools for a logic control z. B. high-level languages, in control processes z. B. Bodedia programs or model controllers are used. However, the individual program modules are converted into an executable program using a separate computer, which is static and cannot be changed within the framework of the PLC / NC. All program modules must already be available in executable form when the PLC / NC starts up. The separate execution of the program modules also makes it necessary for the data exchange between the program modules to take place correctly and, in particular, it must be reliably guaranteed that the data types used are compatible with one another.
  • An interruption of the control program also means an interruption of the control and thus the operation of the automation system every time.
  • Another object is to provide a computer program product with program code means for executing the runtime server and the runtime systems.
  • Another task is to provide an improved automation system.
  • a runtime server for the simultaneous execution of several runtime systems in an operating system for a data processing system for controlling an automation system on the basis of a system control program, the runtime systems being designed for real-time execution of the system control program, and the runtime server comprising:
  • each runtime system for executing application modules of the system control program, with at least one application module for executing an application of the system control program being installed on each runtime system, with each runtime system having a data transmission interface for data transfer between running time systems and / or between application modules, each runtime system having an I / O configuration that allows an assignment between at least one variable of the application modules of the runtime systems and at least one hard
  • an I / O interface for data exchange between the at least two runtime systems and the hardware components of the automation system with at least one I / O input and / or I / O output;
  • an I / O mapping intermediate layer the I / O configurations of the at least two runtime systems being mapped in the I / O mapping intermediate layer.
  • a plurality of runtime systems can be executed independently of one another on the runtime server.
  • the runtime systems are designed to execute at least one application module for executing an application of the system control program.
  • Each runtime system comprises a data transmission interface, by means of which data transmission between several runtime systems of the runtime server is enabled.
  • data transmission between individual application modules of the runtime systems is made possible via the data transmission interface of the runtime systems.
  • Data transfer is also possible between different application modules within a runtime system.
  • each runtime system has an I / O configuration in which there is a clear assignment between variables of the application modules installed on the respective runtime system and hardware components the automation system to be controlled by means of the system control program is determined.
  • the runtime server also has an I / O interface, by means of which data exchange between the runtime systems installed on the runtime server and the hardware components of the automation system is made possible.
  • the I / O interface has at least one I / O input and / or one I / O output, by means of which a connection between the hardware components of the automation system and the respective application modules of the individual runtime systems is achieved.
  • the runtime server also has an I / O mapping intermediate layer in which the I / O configurations of the runtime systems installed on the runtime server are mapped.
  • the I / O mapping intermediate layer thus has all I / O configurations of the runtime systems installed on the runtime server at one point in time.
  • the I / O mapping intermediate layer enables the individual variables of the application modules installed on the respective runtime systems and the respective hardware components of the automation system to be controlled to be clearly assigned.
  • the I / O mapping intermediate layer also allows the change, modification or implementation of an update of individual application modules of the system control program while executing further application modules of the system control program that are not to be changed or modified at the given time.
  • the application module to be changed can be stopped while the other application modules that are independent of the application module to be changed continue to operate and the system control program can thus continue to run at least in part.
  • the modified application module can be started up and thus inserted into the additional system control program, provided that the change made is compatible with the additional system control program.
  • the entire runtime system on which the application module to be changed is installed can be removed from the runtime server and a new runtime system on which the changed version of the application module to be changed is installed can be installed on the runtime server and thus the corresponding modified application module can be inserted into the system control program.
  • the application module to be changed can simply be stopped and corresponding changes inserted into it and the application module thus changed can be inserted into the existing system control program when it is restarted.
  • a change to the application module to be changed provides for a change or modification of the I / O configuration, i.e. the assignment of the variables of the application module and the hardware components of the automation system to be controlled, then when the modified application module is reinstalled in the existing system control program, the The changed I / O configuration of the respective automation system is transferred to the I / O mapping intermediate layer of the runtime server so that the I / O configuration of the runtime server is updated with regard to the changes made.
  • This update of the I / O configuration of the runtime server by mapping the changed I / O configuration of the changed runtime system can be carried out independently of the I / O configurations of the existing and unchanged runtime systems or application modules, so that the I / O -Configurations of the unchanged application modules or runtime systems are not affected by changes to the I / O configuration of a changed runtime system or a changed application module.
  • the system control program can be executed without any problems while the changes are made to the application modules to be changed and while the changed application modules are being installed. Stopping the system control program and the associated shutdown of the automation system to be controlled can be dispensed with in order to carry out a change, modification or update of an application module or a plurality of application modules.
  • the system control program can also be expanded by adding a new application module that has not yet been in the system control program.
  • the application module to be added to the existing system control program can be installed on a new runtime system and the new runtime system can be integrated into the runtime server so that when the newly installed th application module this is maintained in the existing system control program, provided that the new application module is compatible with the existing system control program.
  • the corresponding I / O configuration of the newly inserted application module can be mapped in the I / O mapping intermediate layer and the I / O configuration of the runtime server can be updated with regard to the expansion of the system control program and the newly added application module. Stopping the system control program and the associated shutdown of the automation system to be controlled is therefore also not necessary for expanding the existing system control program to include additional application modules.
  • existing application modules can be removed from the system control program without having to stop the system control program and shut down the automation system to be controlled by removing the application module to be removed from the respective runtime system or directly removing the complete runtime system with the application module installed on it from the runtime server Will get removed.
  • the corresponding change in the I / O configuration can be taken into account on the I / O mapping intermediate layer by also transferring the respective I / O configuration of the remote application module or the remote runtime system to the I / O mapping - I / O configurations of the runtime systems of the runtime server shown in the intermediate layer are removed.
  • the runtime server and the runtime systems are designed for real-time execution of the system control program so that real-time control of the automation system is enabled.
  • the runtime server and the runtime systems installed on the runtime server, on which the individual application modules of the system control program are installed and executed, enable real-time capable and flexibly executable control of an automation system in which changes and modifications of the respective system control program are made in an online Mode of the system control program in which the system control program is at least partially executed can be carried out, so that stopping the system control program and shutting down the automation system to be controlled can be dispensed with.
  • a runtime system is a runtime environment on which a computer program can be executed in a runtime.
  • the runtime environment is a Data processing system can be inserted and ensures an execution environment for a computer program that is not supported by the respective operating system.
  • an application module is an independent part of a system control program by means of which an application of the system control program can be executed.
  • An application can include any area of the system control program.
  • An application can include, for example, the control of an actuator, the reading out of a sensor or the processing of measurement data or the display of processed measurement data.
  • a data transfer between two application modules can in the present case include the writing of certain data in a predetermined memory area by a first application module and the reading out of the data stored by the first application module in the memory area by a second application module.
  • Each runtime system can have a management module which manages the application modules on the basis of the control program description.
  • the application modules can switch from an inactive state in which the application modules are not initialized and are not able to execute applications to an active state in which the application modules can execute the respective applications.
  • the application modules can have an initialization state in which the application module is inactive and from which the application module can be activated for future execution or in which the application module can be deactivated after execution has ended.
  • each application module can have a pre-operating state in which the application module is activated but is not yet executing any applications. In the pre-operational state, resources, in particular processor time and memory space, can be allocated to the application module.
  • each application module can have a test state in which the functionality and compatibility of the application module with the control program can be checked before the application module is executed.
  • the application module In an execution state, the application module is able to execute the corresponding applications.
  • the application modules can be designed to log on to the administration module in the initialization state with an individual module identifier for activation or to log off for deactivation.
  • the application modules can be processing module establish communication connections to other application modules during the state transition from pre-operation to test operation and disconnect communication connections again during the state transition from test operation to pre-operation.
  • the application modules can log on to further application modules during the state transition from the test mode to the execution state with further application modules and log off from the state transition from the execution state to the test mode. By logging on, interaction between the application modules can be achieved.
  • the application modules can thus be managed dynamically for the execution of the system control program in the runtime system.
  • the application modules can be generated, started up and executed or shut down again and switched off during runtime.
  • the individual application modules can also be created with different tools or different programming languages.
  • the application modules work in the same time context and use a common memory space and common file types, so that data exchange is possible without additional linking. Thanks to the standardized structure of all application modules, changes and adjustments can also be easily made in the runtime system.
  • the application modules can occupy resources of the data processing system during the state transition from initialization to preliminary operation and release occupied resources again during the state transition from preliminary operation to initialization.
  • the application modules can secure resources from other application modules when the status changes from test mode to real-time mode and return occupied resources of the other application modules when the status transition from real-time mode to test mode. This procedure enables reliable operation of the runtime systems and effective resource management to be achieved.
  • the runtime system is assigned at least one memory area and / or one processor and / or one processor time of the data processing system from the runtime server.
  • runtime systems of the runtime server can be operated independently of one another.
  • each runtime system of the runtime ervers its own memory area and / or its own processor time or its own Processor or processor core is assigned, the application modules of the individual runtime systems can be executed without being influenced by other application modules of other runtime systems.
  • processor cores are used in the data processing system, individual runtime systems can be executed on different processor cores so that different application modules can be executed simultaneously. Due to its own processor time or its own processor core or processor, which is assigned to each runtime system of the runtime server, individual runtime systems can be easily removed from or added to the runtime server without the execution of the application modules of the other runtime systems being impaired becomes.
  • the runtime systems are instantiated.
  • runtime systems of the runtime server can be operated independently of one another.
  • Each individual runtime system is an independent runtime system.
  • the system control program can be executed entirely on a single runtime system.
  • the only runtime system can include all application modules of the system control program and execute them in accordance with the system control program. The installation of further runtime systems is not necessary for this.
  • a plurality of mutually independent runtime systems can be installed on the runtime server so that, for example, only one application module of the system control program is installed on each runtime system.
  • Data transmission between the individual application modules is made possible via the data transmission interfaces of the individual runtime systems, so that the system control program comprising the application modules can be executed via the majority of runtime systems.
  • the instantiation of the runtime systems enables the application modules installed on the runtime systems to be changed or the addition and removal of runtime systems to and from the runtime server without impairing or influencing other runtime systems and the respective application modules.
  • the application modules are self-sufficient and independent of one another. This has the technical advantage that application modules of the system control program can be changed, removed or added without affecting other application modules of the system control program.
  • the individual application modules are self-contained sub-units of the system control program and can be changed, modified, added or removed as self-contained units without the need to adapt the other application modules of the system control program.
  • the runtime systems can be operated in a real-time mode and / or in a non-real-time mode.
  • the runtime server further comprises at least one further runtime system, with at least one further application module for executing an application of the system control program being installed on the further runtime system, with the further runtime system having a data transmission interface for data transmission between the further runtime system and the runtime systems and / or between the further application module and the application modules, and where the further application module is not real-time capable and the further runtime system can be operated in a non-real-time mode.
  • This has the technical advantage that a higher flexibility of the runtime server is achieved in turn. Additional applications of the system control program can be carried out through the additional runtime systems on which additional application modules are installed.
  • the other runtime systems can only be operated in a non-real-time mode and the other application modules installed on the other runtime systems are designed exclusively for executing applications of the system control program for which real-time capability is not required.
  • Such applications can include, for example, the evaluation of measurement data or the graphic representation of evaluated measurement data.
  • improved structuring of the runtime server and the real-time-capable and non-real-time-capable runtime systems installed on it is made possible. This in turn makes it easier to allocate storage space or processor time or processor cores of the individual runtime systems of the runtime server.
  • the runtime server creates a hierarchy among the runtime systems and / or the other runtime systems, in which a prioritization of runtime systems that are operated in real-time mode over runtime systems and / or other runtime systems that are operated in non-real-time mode is guaranteed is.
  • the hierarchy among the runtime systems ensures that applications that are subject to compliance with a real-time requirement are executed with priority over applications that are not subject to real-time requirements, so that the execution of real-time applications is not interrupted by the execution of non-real-time applications.
  • the hierarchy within the runtime server can thus meet requirements for the real-time capability of the respective runtime systems.
  • the runtime server further comprises a data transmission router for connection to the data transmission interfaces of the runtime systems and of the other runtime systems, with data exchange between runtime systems and / or further runtime systems and / or between application modules and / or further application modules being enabled via the data transmission router.
  • a data exchange between runtime systems or application modules can include the storage of data in a memory area by a first runtime system or application module and the reading in of the stored data by a second runtime system or application module.
  • a data exchange or a data transfer between runtime systems and / or application modules can include data communication between the runtime systems and / or application modules.
  • data communication includes the transmission of information with an information content that is understood by both communication partners.
  • the data transmission router can include a script or a protocol for writing data to a predetermined memory area and for reading out data stored in the predetermined memory area.
  • the data transmission router can enable data transmission between different runtime systems.
  • the data transmission router can also enable data transmission between application modules that are each installed on different runtime systems.
  • the data transmission router can also enable data transmission between different application modules that are installed on the same runtime system.
  • At least one runtime system can be added and / or removed in an online state of the controller in which at least one runtime system is running.
  • a runtime system or a plurality of runtime systems on which the application modules to be expanded are installed can be entered into the server.
  • the other runtime systems that are already installed on the runtime server can continue to be operated during this time, so that the application modules installed on these runtime systems can continue to run and the automation system can thus continue to be operated via the system control program.
  • the application modules installed on them can be started and inserted into the existing system control program, provided they are compatible with the existing system control program.
  • the respective I / O configurations of the additional runtime systems can be mapped in the I / O mapping intermediate layer of the runtime server, so that the I / O configuration of the runtime server corresponds to the I / O mapped in the I / O mapping intermediate layer O configurations of the respective runtime systems of the runtime server corresponds to the changes can be updated according to.
  • an existing runtime system or a plurality of existing runtime systems can be removed from the runtime server, while at the same time additional application modules installed on other runtime systems of the runtime server can be executed and the automation system can be operated using the system control program.
  • a corresponding update of the I / O configuration of the runtime server can be achieved by means of a corresponding mapping of the I / O configurations of the individual runtime systems on the I / O mapping intermediate layer. This achieves a high level of flexibility in that the system control program can be expanded or reduced by additional or existing applications of the system control program while the system control program is being executed at the same time.
  • each of the runtime systems is executed on its own core or on several cores of the processor, with several runtime systems being executed on one core or on several cores.
  • runtime systems of the runtime server can be operated independently of one another. This allows a high degree of flexibility to be achieved. For example, a plurality of runtime systems can be executed on one processor. In this way it can be achieved that the runtime server according to the invention can be executed on a data processing system which comprises only one processor.
  • each runtime system of the runtime server can be run on its own processor or on its own processor core. This means that application modules from different runtime systems can be executed at the same time. Furthermore, it is achieved that the execution of the application modules of individual runtime systems can be prevented from influencing the execution of the application modules of other runtime systems.
  • individual runtime systems can be run on multiple processors or processor cores. This in turn enables the runtime server to be more flexible.
  • the runtime server can be integrated as a real-time environment into a non-real-time capable operating system and can be executed in this.
  • a computer program product having program code means for executing the runtime server and the runtime systems, and the computer program product running on a data processing system.
  • the computer program product is stored on a computer-readable recording medium.
  • an automation system with a data processing system for controlling the automation system is provided, the data processing system being set up with at least one runtime server and at least two runtime systems and being designed to execute a system control program set up on the runtime systems to control the automation system - ren.
  • Fig. 1 is a schematic representation of a runtime server according to one Ausry approximate form
  • FIG. 2 shows a schematic representation of a computer program product for executing the runtime server according to an embodiment
  • Fig. 3 is a schematic representation of an automation system with a data processing system for running the runtime server according to one Ausry approximate form.
  • Fig. 1 shows a schematic representation of a runtime server 100 according to one embodiment.
  • the runtime server 100 is designed to run several runtime systems 101 simultaneously in an operating system 103 for a data processing system for controlling an automation system 112 on the basis of a system control program.
  • the runtime systems 101 are designed for real-time execution of the system control program.
  • the runtime server 100 includes:
  • an I / O interface 111 for data exchange between the at least two runtime systems 101 and the hardware components 113 of the automation system 112 with at least one I / O input 115 and / or one I / O output 117, and
  • the runtime server 100 is embedded in the operating system 103.
  • Five runtime systems 101 are installed on the runtime server 100, on each of which two application modules 105 are installed.
  • Each of the runtime systems 101 has a data transmission interface 107 for data transmission and an I / O configuration 109.
  • Each I / O configuration 109 of each runtime system 101 establishes a direct assignment of variables of the respective application modules 105 installed on the runtime system 101 and hardware components 113 of the automation system 112 to be controlled.
  • the runtime server 100 also has the I / O mapping intermediate layer 119.
  • Each I / O configuration 109 of each runtime system 101 is mapped into the I / O mapping intermediate layer 119.
  • the I / O mapping intermediate layer 119 comprises five images of the five I / O configurations 109 of the five runtime systems 101.
  • the number of runtime systems 101 installed on runtime server 100 can differ from the number shown in FIG. 1 and can assume any value.
  • the runtime server 100 can be executed, for example, with only one runtime system 101 installed.
  • the number of two application modules 105 per runtime system 101 shown in FIG. 1 is only an example.
  • each runtime system 101 can have any number of application modules 105 or each runtime system 101 can comprise only one application module 105.
  • the runtime server 100 also includes five further runtime systems 125, on each of which two further application modules 106 are installed. Each of the five further runtime systems 125 has a data transmission interface 107. The other runtime systems 125 are operated in a non-real-time mode 127 and the other application modules 106 include applications that meet non-real-time requirements.
  • the five runtime systems 101 are operated in a real-time time mode 129, and the application modules 105 installed on the runtime systems 101 are designed to execute applications in accordance with a real-time requirement.
  • the runtime systems 101 which are operated in a real-time mode 129, and the further runtime systems 125, which are operated in a Non-real-time mode 127 are operated, angeord net in a corresponding hierarchy, which is shown in Fig. 1 by the two dashed boxes.
  • the hierarchy of the runtime systems 101 and the other runtime systems 125 defined on the runtime server 100 ensures a real-time-capable execution of the application modules 105 of the runtime systems 101 and prevents interference in the execution of the application modules 105 by executing the further application modules 106 of the further runtime systems 125 that operated in the non-real-time mode 127.
  • the runtime server 100 also has a data transfer router 121, which can be connected to the data transfer interfaces 107 of the runtime systems 101 and the further runtime systems 125 and enables data to be transferred between runtime systems 101, between runtime systems 101 and further runtime systems 125, or between further runtime systems 125.
  • a data transmission between application modules 105 and further application modules 106 is also made possible via the data transmission interface 107 of the respective runtime systems 101 and further runtime systems 125 and the data transmission router 121.
  • the data transmission router 121 is divided into two lines, of which the first line 120 enables direct data transfer between the other runtime systems 125 and the second line 122 enables direct data transfer between the runtime systems 101.
  • the hierarchy of the runtime systems 101 and further runtime systems 125 is made possible.
  • the runtime systems 101 can exchange data with one another directly via the second line 122 of the data communication router 121. Can a prioritization be achieved here compared to the other runtime systems and possible collisions in the data exchange avoided.
  • the data exchange between the runtime systems 101 via the second line 122 of the data communication router 121 can thus meet the real-time conditions.
  • the further runtime systems 125 can, however, exchange data directly with one another via the first line 120 of the data transmission router 121 without interference. No real-time conditions are met for the data transmission between the further runtime systems 125 via the first strand 120 of the data transmission router 121.
  • the arrows between the two strands of the data transmission router 121 show that the two strands 120, 122 of the data transmission router 121 also enable data transmission between the runtime systems 101 and the further runtime systems 125.
  • 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 enables data transmission between the runtime server 100 and the operating system 103 in which the runtime server 100 is embedded.
  • the communication interface 133 is connected both to the first line 120 of the data communication router 121 and to the second line 122 of the data communication router 121.
  • a hierarchically ordered transmission of data can also be achieved for the data transmission between the runtime systems 101 and the other runtime systems 125 and the operating system 103 by transferring data between the runtime systems 101 and the operating system 103 via the second strand 122 of the data communication router 121 and data can be transmitted between the further runtime systems 125 and the operating system 103 via the first strand 122 of the data communication router 121.
  • the runtime server 100 further comprises an I / O interface 11 1 with a plurality of I / O inputs 115 and I / O outputs 117.
  • the I / O outputs 1 17 and the I / O inputs 1 15 enable one Connection between the hardware components 1 13 of the automation system 112 and the application modules 105 of the runtime systems 101.
  • the I / O mapping intermediate layer 119 enables a clear assignment between variables of the application modules 105 and the hardware components 1 13 of the automation system 1 12.
  • the number of I / O inputs 115 and I / O outputs 115 in the embodiment in FIG. 1 is only an example and can vary according to the automation system 115 to be controlled.
  • the automation system 1 12 comprises a plurality of hardware components 1 13.
  • the hardware components 1 13 can for example comprise fieldbus terminals or sensors or actuators of an automation system.
  • the hardware components 113 are each connected to a bus master 123 via a data bus 131.
  • the data bus 131 can be operated using a common field bus protocol.
  • the bus masters 123 each have an I / O input 1 15 of the I / O interface 11 1 is connected to the runtime server 100.
  • the bus masters 123 can cause a data transfer between the control of the automation system 112 and the respective hardware components 113.
  • the application modules 105 of the runtime systems 101 which are operated in real-time mode 129, are used to execute applications of the system control program that must meet real-time requirements. These can include, for example, the control of actuators in the automation system 112 or the reading out of sensors in the automation system 112.
  • the further application modules 106 of the further runtime systems 125 which are operated in the non-real-time mode 127, on the other hand, serve to execute applications of the system control program that do not have to meet real-time requirements.
  • These applications can include, for example, an evaluation of measurement data, a graphic representation of evaluated measurement data, or similar applications that have a lower priority for real-time control of the automation system 112.
  • the runtime systems 101 are instantiated and can be operated completely independently of other runtime systems 101.
  • the application modules 105 installed on the runtime systems 101 are independent units of the system control program and can be executed independently of one another.
  • the other runtime systems 125 are also instantiated and represent units that can be operated independently and that can be operated independently of the other runtime systems 101 and / or other further runtime systems 125.
  • the further application modules 106 are also independent units of the system control program and can be executed independently of one another.
  • runtime systems 101 and / or further runtime systems 125 can be added to the runtime systems 101 and / or the further runtime systems 125 already installed on the runtime server 100. Also runtime systems 101 and / or further runtime systems 125 can be removed from runtime server 100. The remaining runtime systems 101 and / or the remaining further runtime systems 125 can continue to operate while runtime systems 101 and / or further runtime systems 125 are being added or removed and the application modules 105 and / or further application modules 106 installed on them can continue to run, so that the automation system 112 can still be operated via the system control program.
  • the application modules 105 installed on the runtime systems 101 and / or the further application modules 106 installed on the further runtime systems 125 can be changed and / or modified.
  • the application modules 105 and / or further application modules 106 that are not to be changed or modified can continue to be executed during the change of application modules 105 to be changed and / o of the further application modules 106.
  • the application modules 105 to be changed and / or other application modules 106 can be stopped and the corresponding changes made.
  • the changed application modules 105 and / or changed wide application modules 106 are started up again, these can be entered into the existing system control program.
  • the application modules 105 to be changed and / or further application modules 106 can be uninstalled from the respective runtime systems 101 and / or further runtime systems 125 and a changed version of the application modules 105 to be changed and / or further application modules 106 can be transferred to the respective runtime systems 101 and / or further runtime systems 125 can be installed.
  • the changed application modules 105 and / or further application modules 106 are started up, these can be entered into the existing system control program.
  • the respective changes in the I / O configurations 109 can be changed by means of a mapping of the changed I / O configurations 109 on the I / O mapping intermediate layer 119 are taken into account.
  • the I / O mapping intermediate layer 119 ensures a clear assignment of the variables of the individual application modules 105 of the runtime systems 101 to the hardware components 113 of the automation system 112 to be controlled for the runtime server 100.
  • the runtime server 100 thus has a variable I / O configuration with the I / O mapping intermediate layer 119, which can be changed while the system control program is running.
  • the I / O mapping intermediate layer 119 comprises all images of the I / O configurations 109 of the runtime systems 101 installed on the runtime server 100. Individual I / O configurations 109 of individual runtime systems 101 can be changed and the corresponding images of the changed I / O Configurations 109 are mapped onto the I / O mapping intermediate layer 119, while other runtime systems 101 and the application modules 105 installed thereon continue to be executed.
  • FIG. 2 shows a schematic illustration of a computer program product 200 for executing the runtime server 100 according to an embodiment.
  • the computer program 200 is arranged on a recording medium 201.
  • FIG 3 shows a schematic representation of an automation system 112 with a data processing system 114 for running the runtime server 100 according to one embodiment.
  • the automation system 112 comprises a data processing system 114 and a plurality of hardware components 113 which are connected to the data processing system 112 via a data bus 131.
  • An operating system 103 for running the data processing system 114 is set up on the data processing system 114.
  • a runtime server 100 for executing a system control program for controlling the automation system is configured on the operating system 103.
  • the runtime server 100 as well as the operating system 103, the hardware components 113 and the data bus 131 have the features cited for FIG. 1. List of reference symbols

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Automation & Control Theory (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Programmable Controllers (AREA)
  • Stored Programmes (AREA)

Abstract

Die Erfindung betrifft einen Laufzeitserver (100) zum gleichzeitigen Ausführen mehrerer Laufzeitsysteme (101) in einem Betriebssystem (103) für eine Datenverarbeitungsanlage zum Steuern einer Automatisierungsanlage auf Basis eines Anlagensteuerprogramms, wobei die Laufzeitsysteme (101) zur Echtzeitausführung des Anlagensteuerprogramms ausgebildet sind, umfassend: wenigstens zwei Laufzeitsysteme (101) zum Ausführen von Anwendungsmodulen (105) des Anlagensteuerprogramms, wobei auf jedem Laufzeitsystem (101) wenigstens ein Anwendungsmodul (105) zur Ausführung einer Anwendung des Anlagensteuerprogramms installiert ist, wobei jedes Laufzeitsystem (101) eine Datenübertragungsschnittstelle (107) zur Datenübertragung zwischen Laufzeitsystemen (101) und/oder zwischen Anwendungsmodulen (105) aufweist, wobei jedes Laufzeitsystem (101) eine I/O-Konfiguration (109) aufweist, die eine Zuordnung zwischen wenigstens einer Variable der Anwendungsmodule (105) der Laufzeitsysteme (101) und wenigstens einer Hardwareadresse einer Hardwarekomponente (113) einer zu steuernden Automatisierungsanlage (112) definiert, eine I/O-Schnittstelle (111) zum Datenaustausch zwischen den wenigstens zwei Laufzeitsystemen (101) und den Hardwarekomponenten (113) der Automatisierungsanlage (112) mit wenigstens einem I/O-Eingang (115) und/oder I/O-Ausgang (117) und eine I/O-Mapping-Zwischenschicht (119), wobei in der I/O-Mapping-Zwischenschicht (119) die I/O-Konfigurationen (109) der wenigstens zwei Laufzeitsysteme (101) abgebildet sind. Die Erfindung betrifft ferner ein Computerprogrammprodukt (200) zum Ausführen des Laufzeitservers (100).

Description

Beschreibung
Laufzeitserver zum gleichzeitigen Ausführen mehrerer Laufzeitsysteme einer Automatisie rungsanlage
Die Erfindung betrifft einen Laufzeitserver zum gleichzeitigen Ausführen mehrerer Lauf zeitsysteme in einem Betriebssystem für eine Datenverarbeitungsanlage zur Steuerung einer Automatisierungsanlage. Die Erfindung betrifft ferner ein Computerprogrammpro dukt mit Programmcodemitteln zum Ausführen des Laufzeitservers und der Laufzeitsys teme. Die Erfindung umfasst ferner eine Automatisierungsanlage.
Diese Patentanmeldung beansprucht die Priorität der deutschen Patentanmeldung DE 10 2019 1 17 954.8 vom 3. Juli 2019, deren Offenbarungsgehalt hiermit durch Rückbezug aufgenommen wird.
In der Industrieautomation werden speicherprogrammierbare und numerische Steuerun gen (SPS/NC) zunehmend in Software auf einer leistungsfähigen Standard-Hardware, z. B. einem Industrie-PC ausgeführt. Im Gegensatz zu konventionellen SPS/NC, die auf ei ner eigenständigen Rechenbaugruppe ausgeführt werden, laufen sogenannte Soft- SPS/NC unter dem Wirtsbetriebssystem der Datenverarbeitungsanlage, z. B. unter Windows oder Unix. Das Wrtsbetriebssystem wird hierzu um einen Echtzeitkernel erwei tert, der auch von der Soft-SPS/NC zur Verfügung gestellt werden kann und der die Re chenzeit, die das Wrtsbetriebssystem an die SPS/NC abgibt, steuert. Beispielsweise ist in der Druckschrift EP 2 341 405 B1 eine Soft-SPS beschrieben.
Der Vorteil im Vergleich zu konventionellen SPS/NC ist bei der Soft-SPS/NC die weitge hende Unabhängigkeit von der verwendeten Hardware. Die Hardware lässt sich damit im Bedarfsfall ohne weiteres austauschen bzw. durch leistungsfähigere Hardware ersetzen. Soft-SPS/NC profitieren so automatisch vom ständigen Leistungszuwachs der Hardware. Zudem macht die Soft-SPS/NC den Anwender in der Regel auch unabhängig vom Hard ware-Anbieter. Außerdem lassen sich bei der Soft-SPS/NC Änderungen des zu steuern den Prozesses einfacher als bei konventionellen SPS/NC umsetzen. Bei der konventio nellen SPS/NC ist üblicherweise ein spezielles Programmiergerät erforderlich, um die Ele mente der SPS/NC zu programmieren. Oftmals ist die SPS/NC auch auf mehrere Rech ner in einer Rechnerbaugruppe verteilt, wobei die Elemente der SPS/NC oft auch mit un terschiedlichen Programmiersprachen erzeugt werden und so dann auch unterschiedliche Konfigurationswerkzeuge erfordern. Bei der Soft-SPS/NC kann sich das Konfigurations werkzeug dagegen auch auf derselben Hardware befinden wie die Steuerungssoftware.
Um den Aufwand bei der Programmierung von konventionellen und Soft-SPS/NC- Lösungen zur Steuerung oder Regelung komplexer Maschinen und Anlagen zu reduzie ren, werden zunehmend modulare Konzepte eingesetzt. Einzelne Maschinenaggregate oder Anlagenbaugruppen bzw. Funktionalitäten werden als eigenständige Module be trachtet, für die jeweils eine nach außen gekapselte Steuerungssoftware erstellt wird. Die einzelnen Programmteile können dabei mit unterschiedlichen Entwicklungswerkzeugen bzw. Programmiersprachen erstellt werden, wobei der Quelltext dann von einem zugehö rigen Compiler in einen ausführbaren Programmcode übersetzt wird. Diese ausführbaren Programmmodule bilden zusammen das Anlagensteuerprogramm. Alle Programmmodule werden beim Start von einer zusätzlich vorgesehenen Softwareumgebung im Laufzeitsys tem zur Echtzeitausführung des Anlagensteuerprogramms geladen und ausgeführt. Die einzelnen Programmmodule weisen dabei eine definierte Schnittstelle zur Kommunikation untereinander und mit der Softwareumgebung auf.
Der modulare Aufbau der SPS/NC macht es möglich, die einzelnen Module getrennt zu entwickeln und dabei jeweils die am besten dafür geeignete Programmiersprache bzw. das hierfür erforderliche Entwicklungswerkzeug einzusetzen. Auch besteht so die Mög lichkeit, auf standardisierte Elemente zurückzugreifen. Als Entwicklungswerkzeuge für eine Logiksteuerung werden z. B. Hochsprachen, bei Regelungsprozessen z. B. Bodedia gramme oder Modellregler eingesetzt. Die einzelnen Programmmodule werden jedoch mit einem eigenen Computer in ein lauffähiges Programm umgesetzt, das im Rahmen der SPS/NC statisch und nicht veränderbar ist. Alle Programmmodule müssen beim Hochfah ren der SPS/NC bereits in ausführbarer Form vorliegen. Die getrennte Ausführung der Programmmodule macht es darüber hinaus erforderlich, dass der Datenaustausch zwi schen den Programmmodulen korrekt erfolgt und hierbei muss insbesondere zuverlässig garantiert werden, dass die verwendeten Datentypen miteinander kompatibel sind. Da die einzelnen Programmmodule vollständig voneinander getrennt sind, muss der Datenaus tausch dabei zwingend über Schnittstellen erfolgen. Ferner ist zum gemeinsamen Verbin den der Programmmodule ein sogenannter Linker erforderlich, der die Programmmodule zu einem gemeinsamen Programm zusammenstellt. Dieser Linker sorgt dafür, dass, wenn ein Programmmodul ein anderes Programmmodul verwendet, die Adressen der Funktio nen und Variablen des Moduls in Speicheradressen umgewandelt werden. Trotz der Vorteile, die durch die Modularisierung des Steuerprogramms erzielt werden können, besteht weiterhin die Problematik, dass für die Durchführung von Änderungen, Modifikationen oder Updates an dem bestehenden Steuerprogramm oder an einzelnen Programmmodulen des Steuerprogramms das Steuerprogramm wenigstens für den Zeit raum, in dem die Änderung oder das Update in das bestehende Steuerprogramm einge pflegt wird, unterbrochen werden muss. Gleiches gilt für den Fall, dass ein neues Pro grammmodul beispielsweise als Erweiterung des Steuerprogramms in dieses eingepflegt beziehungsweise ein bestehendes Programmmodul entfernt oder durch ein neues Pro grammmodul ersetzt werden soll. Eine Unterbrechung des Steuerprogramms bedeutet aber auch jedes Mal eine Unterbrechung der Steuerung und damit des Betriebs der Auto matisierungsanlage.
Es ist daher eine Aufgabe der Erfindung, einen Laufzeitserver zum gleichzeitigen Ausfüh ren mehrerer Laufzeitsysteme in einem Betriebssystem für eine Datenverarbeitungsan lage zur Steuerung einer Automatisierungsanlage bereitzustellen, der Änderungen und Modifikationen des Steuerprogramms in einem Online-Zustand der Automatisierungsan lage ermöglicht, in dem die Anlage durch das Steuerprogramm gesteuert wird, sodass Än derungen der Steuerprogramms vorgenommen werden können und gleichzeitig ein Be trieb der Automatisierungsanlage gewährleistet werden kann. Eine weitere Aufgabe ist es, ein Computerprogrammprodukt mit Programmcodemitteln zum Ausführen des Laufzeits ervers und der Laufzeitsysteme bereitzustellen. Eine weitere Aufgabe ist es, eine verbes serte Automatisierungsanlage bereitzustellen.
Die Aufgabe wird durch einen Laufzeitserver, ein Computerprogrammprodukt und eine Automatisierungsanlage gemäß den unabhängigen Ansprüchen gelöst. Bevorzugte Aus führungsformen sind in den abhängigen Ansprüchen angegeben.
Nach einem Aspekt der Erfindung wird ein Laufzeitserver zum gleichzeitigen Ausführen mehrerer Laufzeitsysteme in einem Betriebssystem für eine Datenverarbeitungsanlage zum Steuern einer Automatisierungsanlage auf Basis eines Anlagensteuerprogramms be reitgestellt, wobei die Laufzeitsysteme zur Echtzeitausführung des Anlagensteuerpro gramms ausgebildet sind, und wobei der Laufzeitserver umfasst:
wenigstens zwei Laufzeitsysteme zum Ausführen von Anwendungsmodulen des Anlagen steuerprogramms, wobei auf jedem Laufzeitsystem wenigstens ein Anwendungsmodul zur Ausführung einer Anwendung des Anlagensteuerprogramms installiert ist, wobei jedes Laufzeitsystem eine Datenübertragungsschnittstelle zur Datenübertragung zwischen Lauf- zeitsystemen und/oder zwischen Anwendungsmodulen aufweist, wobei jedes Laufzeitsys tem eine I/O-Konfiguration aufweist, die eine Zuordnung zwischen wenigstens einer Vari able der Anwendungsmodule der Laufzeitsysteme und wenigstens einer Hard
wareadresse einer Hardwarekomponente einer zu steuernden Automatisierungsanlage definiert;
eine I/O-Schnittstelle zum Datenaustausch zwischen den wenigstens zwei Laufzeitsyste men und den Hardwarekomponenten der Automatisierungsanlage mit wenigstens einem I/O-Eingang und/oder I/O-Ausgang;
und
eine I/O-Mapping-Zwischenschicht, wobei in der I/O-Mapping-Zwischenschicht die I/O- Konfigurationen der wenigstens zwei Laufzeitsysteme abgebildet sind.
Hierdurch wird der technische Vorteil erreicht, dass mittels des Laufzeitservers mehrere Laufzeitsysteme gleichzeitig betrieben werden können und auf diesen Laufzeitsystemen mehrere Anwendungsmodule des Anlagensteuerprogramms ausgeführt werden können, sodass bei einer vorzunehmenden Änderung, Modifikation oder bei einem durchzuführen den Update eines Anwendungsmoduls des Anlagensteuerprogramms das entsprechende Laufzeitsystem gestoppt werden kann, um die entsprechende Änderung bzw. das jewei lige Update durchzuführen, während Anwendungsmodule, die auf einem weiteren Lauf zeitsystem betrieben werden, weiterhin ausführbar sind. Hierdurch wird erreicht, dass für eine Änderung, eine Modifikation oder ein Update einzelner Anwendungsmodule des An lagensteuerprogramms nicht das vollständige Anlagensteuerprogramm beendet werden muss und somit die Automatisierungsanlage während der Durchführung der Änderungen, Modifikationen und Updates weiterbetrieben werden kann.
Auf dem Laufzeitserver kann eine Mehrzahl von Laufzeitsystemen unabhängig voneinan der ausgeführt werden. Die Laufzeitsysteme sind ausgebildet, wenigstens ein Anwen dungsmodul zur Ausführung einer Anwendung des Anlagensteuerprogramms auszufüh ren. Jedes Laufzeitsystem umfasst eine Datenübertragungsschnittstelle, mittels der eine Datenübertragung zwischen mehreren Laufzeitsystemen des Laufzeitservers ermöglicht ist. Über die Datenübertragungsschnittstelle der Laufzeitsysteme ist darüber hinaus eine Datenübertragung zwischen einzelnen Anwendungsmodulen der Laufzeitsysteme ermög licht. Eine Datenübertragung ist ebenfalls zwischen verschiedenen Anwendungsmodulen innerhalb eines Laufzeitsystems möglich. Darüber hinaus weist jedes Laufzeitsystem eine I/O-Konfiguration auf, in der eine eindeutige Zuordnung zwischen Variablen der auf dem jeweiligen Laufzeitsystem installierten Anwendungsmodule und Hardwarekomponenten der mittels des Anlagensteuerprogramms zu steuernden Automatisierungsanlage be stimmt ist.
Der Laufzeitserver weist ferner eine I/O-Schnittstelle auf, mittels welcher ein Datenaus tausch zwischen den auf dem Laufzeitserver installierten Laufzeitsystemen und den Hard warekomponenten der Automatisierungsanlage ermöglicht ist. Hierzu weist die I/O- Schnittstelle wenigstens einen I/O-Eingang und/oder einen I/O-Ausgang auf, mittels wel chem eine Verbindung der Hardwarekomponenten der Automatisierungsanlage und den jeweiligen Anwendungsmodulen der einzelnen Laufzeitsysteme erreicht wird.
Der Laufzeitserver weist ferner eine I/O-Mapping-Zwischenschicht auf, in der die I/O-Kon figurationen der auf dem Laufzeitserver installierten Laufzeitsysteme abgebildet sind. Die I/O-Mapping-Zwischenschicht weist somit alle I/O-Konfigurationen der zu einem Zeitpunkt auf dem Laufzeitserver installierten Laufzeitsysteme auf. Über die I/O-Mapping-Zwischen- schicht ist eine eindeutige Zuordnung der einzelnen Variablen der auf den jeweiligen Lauf zeitsystemen installierten Anwendungsmodule und der jeweiligen Hardwarekomponenten der zu steuernden Automatisierungsanlage ermöglicht. Die I/O-Mapping-Zwischenschicht erlaubt ferner die Änderung, Modifikation oder das Durchführen eines Updates einzelner Anwendungsmodule des Anlagensteuerprogramms bei gleichzeitigem Ausführen von wei teren Anwendungsmodulen des Anlagensteuerprogramms, die zu dem gegebenen Zeit punkt nicht zu ändern oder zu modifizieren sind.
Zu einer Änderung, Modifikation oder zur Durchführung eines Updates eines Anwen dungsmoduls des Anlagensteuerprogramms kann das zu ändernde Anwendungsmodul gestoppt werden, während die weiteren von dem zu ändernden Anwendungsmodul unab hängigen Anwendungsmodule weiterhin betrieben und das Anlagensteuerprogramm so mit zumindest teilweise weiter ausgeführt werden kann.
Zur Änderung eines Anwendungsmoduls kann dieses gestoppt und von dem jeweiligen Laufzeitsystem deinstalliert und eine entsprechende geänderte Version des Anwendungs moduls auf diesem Laufzeitsystem neu installiert werden. Nach vollständiger Installation kann das geänderte Anwendungsmodul hochgefahren und somit in das weitere Anlagen steuerprogramm eingefügt werden, sofern die durchgeführte Änderung mit dem weiteren Anlagensteuerprogramm kompatibel ist. Alternativ kann das gesamte Laufzeitsystem, auf dem das zu ändernde Anwendungsmodul installiert ist, von dem Laufzeitserver entfernt werden und ein neues Laufzeitsystem, auf dem die geänderte Version des zu ändernden Anwendungsmoduls installiert ist, auf dem Laufzeitserver installiert werden und somit das entsprechende geänderte Anwendungsmodul in das Anlagensteuerprogramm eingefügt werden. Alternativ kann das zu ändernde Anwendungsmodul lediglich gestoppt und ent sprechende Änderungen in dieses eingefügt und das somit geänderte Anwendungsmodul beim erneuten Hochfahren in das bestehende Anlagensteuerprogramm eingefügt werden.
Sieht eine Änderung des zu ändernden Anwendungsmoduls eine Änderung oder Modifi kation der I/O-Konfiguration, sprich der Zuordnung der Variablen des Anwendungsmoduls und der Hardwarekomponenten der zu steuernden Automatisierungsanlage, vor, so wird bei erneuter Installation des geänderten Anwendungsmoduls in das bestehende Anlagen steuerprogramm die geänderte I/O-Konfiguration des jeweiligen Automatisierungssystems in die I/O-Mapping-Zwischenschicht des Laufzeitservers übernommen, sodass die I/O- Konfiguration des Laufzeitservers bezüglich der vorgenommenen Änderungen aktualisiert ist. Diese Aktualisierung der I/O-Konfiguration des Laufzeitservers durch das Abbilden der geänderten I/O-Konfiguration des geänderten Laufzeitsystems kann in Unabhängigkeit von den I/O-Konfigurationen der bestehenden und nicht geänderten Laufzeitsysteme bzw. Anwendungsmodule vorgenommen werden, sodass die I/O-Konfigurationen der nicht ge änderten Anwendungsmodule bzw. Laufzeitsysteme durch Änderungen der I/O-Konfigura tion eines geänderten Laufzeitsystems bzw. eines geänderten Anwendungsmoduls nicht betroffen sind.
Auf Basis der durch die Änderungen der geänderten Anwendungsmodule nicht betroffe nen I/O-Konfigurationen der nicht zu ändernden Anwendungsmodule kann das Anlagen steuerprogramm während der vorgenommenen Änderungen der zu ändernden Anwen dungsmodule sowie während des Einbauens der geänderten Anwendungsmodule stö rungsfrei ausgeführt werden. Auf ein Stoppen des Anlagensteuerprogramms und ein da mit verbundenes Stilllegen der zu steuernden Automatisierungsanlage kann für das Durchführen einer Änderung, Modifikation oder eines Updates eines Anwendungsmoduls oder einer Mehrzahl von Anwendungsmodulen verzichtet werden.
Neben einer Änderung bzw. Modifikation eines bereits bestehenden in das Anlagensteu erprogramm eingepflegten Anwendungsmoduls kann darüber hinaus eine Erweiterung des Anlagensteuerprogramms durch das Hinzufügen eines neuen und bislang nicht in dem Anlagensteuerprogramm befindlichen Anwendungsmoduls vorgenommen werden. Hierzu kann das neu in das bestehende Anlagensteuerprogramm einzupflegende Anwen dungsmodul auf einem neuen Laufzeitsystem installiert und das neue Laufzeitsystem in den Laufzeitserver eingebunden werden, sodass bei einem Hochfahren des neu installier- ten Anwendungsmoduls dieses in das bereits bestehende Anlagensteuerprogramm einge pflegt wird, vorausgesetzt, dass das neue Anwendungsmodul mit dem bestehenden Anla gensteuerprogramm kompatibel ist.
Die entsprechende I/O-Konfiguration des neu eingefügten Anwendungsmoduls kann in die I/O-Mapping-Zwischenschicht abgebildet und somit die I/O-Konfiguration des Lauf zeitservers in Bezug auf die Erweiterung des Anlagensteuerprogramms und das neu hin zugefügte Anwendungsmodul aktualisiert werden. Ein Stoppen des Anlagensteuerpro gramms und ein damit verbundenes Stilllegen der zu steuernden Automatisierungsanlage ist somit für eine Erweiterung des bestehenden Anlagensteuerprogramms um weitere An- wendungsmodule ebenfalls nicht notwendig.
Analog können bereits bestehende Anwendungsmodule aus dem Anlagensteuerpro gramm entfernt werden, ohne hierzu das Anlagensteuerprogramm stoppen und die zu steuernde Automatisierungsanlage stilllegen zu müssen, indem das zu entfernende An wendungsmodul von dem jeweiligen Laufzeitsystem entfernt oder direkt das vollständige Laufzeitsystem mit dem darauf installierten Anwendungsmodul von dem Laufzeitserver entfernt wird. Die entsprechende Änderung der I/O-Konfiguration kann auf der I/O-Map- ping-Zwischenschicht berücksichtigt werden, indem die jeweilige I/O-Konfiguration des entfernten Anwendungsmoduls bzw. des entfernten Laufzeitsystems ebenfalls von den auf die I/O-Mapping-Zwischenschicht abgebildeten I/O-Konfigurationen der Laufzeitsys teme des Laufzeitservers entfernt wird.
Der Laufzeitserver sowie die Laufzeitsysteme sind zur Echtzeitausführung des Anlagen steuerprogramms ausgebildet, sodass eine echtzeitfähige Steuerung der Automatisie rungsanlage ermöglicht ist. Durch den Laufzeitserver und die auf dem Laufzeitserver in stallierten Laufzeitsysteme, auf denen wiederum die einzelnen Anwendungsmodule des Anlagensteuerprogramms installiert sind und ausgeführt werden, ist eine echtzeitfähige und flexibel ausführbare Steuerung einer Automatisierungsanlage ermöglicht, bei der Än derungen und Modifikationen des jeweiligen Anlagensteuerprogramms in einem Online- Modus des Anlagensteuerprogramms, in dem das Anlagensteuerprogramm zumindest teilweise ausgeführt wird, durchführbar sind, sodass auf ein Stoppen des Anlagensteuer programms und ein Stilllegen der zu steuernden Automatisierungsanlage verzichtet wer den kann.
Ein Laufzeitsystem ist vorliegend eine Laufzeitumgebung, auf der in einer Laufzeit ein Computerprogramm ausführbar ist. Die Laufzeitumgebung ist in ein Betriebssystem einer Datenverarbeitungsanlage einfügbar und gewährleistet eine Ausführungsumgebung für ein Computerprogramm, das von dem jeweiligen Betriebssystem nicht unterstützt wird.
Ein Anwendungsmodul ist vorliegend ein für sich eigenständiger Teil eines Anlagensteu erprogramms, mittels welchem eine Anwendung des Anlagensteuerprogramms ausführ bar ist. Eine Anwendung kann hierbei jeden Bereich des Anlagensteuerprogramms um fassen. Eine Anwendung kann beispielsweise das Ansteuern eines Aktors, das Auslesen eines Sensors oder die Verarbeitung von Messdaten bzw. das Darstellen von verarbeite ten Messdaten umfassen.
Eine Datenübertragung zwischen zwei Anwendungsmodulen kann vorliegend das Schrei ben bestimmter Daten in einen dafür vorbestimmten Speicherbereich durch ein erstes An wendungsmodul und das Auslesen der durch das erste Anwendungsmodul in den Spei cherbereich gespeicherten Daten durch ein zweites Anwendungsmodul umfassen.
Jedes Laufzeitsystem kann ein Verwaltungsmodul aufweisen, das die Anwendungsmo dule auf der Grundlage der Steuerprogrammbeschreibung verwaltet. Mittels des Verwal tungsmoduls können die Anwendungsmodule aus einem inaktiven Zustand, in dem die Anwendungsmodule nicht initialisiert und nicht in der Lage sind, Anwendungen auszufüh ren, in einen aktiven Zustand schalten, in dem die Anwendungsmodule die jeweiligen An wendungen ausführen können. Die Anwendungsmodule können hierzu einen Initialisie rungszustand aufweisen, in dem das Anwendungsmodul inaktiv ist und aus dem das An wendungsmodul für eine zukünftige Ausführung aktiviert beziehungsweise in den das An wendungsmodul nach beendeter Ausführung deaktiviert werden kann. Ferner kann jedes Anwendungsmodul einen Vorbetriebszustand aufweisen, in dem das Anwendungsmodul aktiviert ist jedoch noch keine Anwendungen ausführt. Im Vorbetriebszustand können dem Anwendungsmodul Ressourcen, insbesondere Prozessorzeit und Speicherplatz, zu geordnet werden. Darüber hinaus kann jedes Anwendungsmodul einen Prüfzustand auf weisen, in dem die Funktionalität und Kompatibilität des Anwendungsmoduls mit dem Steuerprogramm überprüft werden kann, bevor das Anwendungsmodul ausgeführt wird.
In einem Ausführungszustand ist das Anwendungsmodul befähigt, die entsprechenden Anwendungen auszuführen.
Die Anwendungsmodule können dabei ausgelegt sein, sich im Initialisierungszustand am Verwaltungsmodul mit einer individuellen Modulkennung zur Aktivierung anzumelden oder zur Deaktivierung abzumelden. Ferner können die Anwendungsmodule über das Verwal- tungsmodul beim Zustandsübergang vom Vorbetrieb zum Prüfbetrieb Kommunikations verbindungen zu anderen Anwendungsmodulen aufbauen und beim Zustandsübergang vom Prüfbetrieb zum Vorbetrieb Kommunikationsverbindungen wieder abbauen. Ferner können sich die Anwendungsmodule bei weiteren Anwendungsmodulen beim Zustands übergang vom Prüfbetrieb zum Ausführungszustand bei weiteren Anwendungsmodulen anmelden und beim Zustandsübergang vom Ausführungszustand zum Prüfbetrieb abmel den. Durch das Anmelden kann eine Interaktion zwischen den Anwendungsmodulen er reicht werden.
Die Anwendungsmodule können somit zur Ausführung des Anlagensteuerprogramms im Laufzeitsystem dynamisch verwaltet werden. Die Anwendungsmodule können während der Laufzeit erzeugt, hochgefahren und ausgeführt bzw. wieder heruntergefahren und ab geschaltet werden. Die einzelnen Anwendungsmodule können ferner mit unterschiedli chen Werkzeugen bzw. unterschiedlichen Programmiersprachen erstellt werden. Die An wendungsmodule arbeiten im selben Zeitkontext und verwenden einen gemeinsamen Speicherraum und gemeinsame Dateitypen, so dass ein Datenaustausch ohne zusätzli ches Verlinken ermöglicht ist. Durch den standardisierten Aufbau sämtlicher Anwen dungsmodule lassen sich im Laufzeitsystem außerdem auf einfache Weise Veränderun gen und Anpassungen vornehmen.
Die Anwendungsmodule können beim Zustandsübergang von Initialisierung zum Vorbe trieb Ressourcen des Datenverarbeitungssystems belegen und beim Zustandsübergang vom Vorbetrieb zur Initialisierung belegte Ressourcen wieder freigeben. Ferner können sich die Anwendungsmodule beim Zustandsübergang vom Prüfbetrieb zum Echtzeitbe trieb Ressourcen von weiteren Anwendungsmodulen sichern und beim Zustandsübergang vom Echtzeitbetrieb zum Prüfbetrieb belegte Ressourcen der weiteren Anwendungsmo dule zurückgeben. Durch diese Vorgehensweise kann ein zuverlässiger Betrieb der Lauf zeitsysteme und eine effektive Ressourcenverwaltung erreicht werden.
Nach einer Ausführungsform ist den Laufzeitsystemen vom Laufzeitserver wenigstens je weils ein Speicherbereich und/oder ein Prozessor und/oder eine Prozessorzeit der Daten verarbeitungsanlage zugeordnet.
Hierdurch wird der technische Vorteil erreicht, dass die Laufzeitsysteme des Laufzeitser vers unabhängig voneinander betreibbar sind. Indem jedem Laufzeitsystem des Laufzeits ervers ein eigener Speicherbereich und/oder eine eigene Prozessorzeit bzw. ein eigener Prozessor oder Prozessorkern zugewiesen wird, sind die Anwendungsmodule der einzel nen Laufzeitsysteme ohne Beeinflussung durch jeweils andere Anwendungsmodule ande rer Laufzeitsysteme ausführbar.
Werden in der Datenverarbeitungsanlage mehrere Prozessorkerne verwendet, so können einzelne Laufzeitsysteme auf verschiedenen Prozessorkernen ausgeführt werden, sodass verschiedene Anwendungsmodule gleichzeitig ausführbar sind. Durch die eigene Prozes sorzeit bzw. den eigenen Prozessorkern oder Prozessor, die bzw. der jedem Laufzeitsys tem des Laufzeitservers zugeordnet wird, können einzelne Laufzeitsysteme problemlos vom Laufzeitserver entfernt oder zu diesem hinzugefügt werden, ohne dass die Ausfüh rung der Anwendungsmodule der weiteren Laufzeitsysteme hierdurch beeinträchtigt wird.
Nach einer Ausführungsform sind die Laufzeitsysteme instanziiert.
Hierdurch wird der technische Vorteil erreicht, dass die Laufzeitsysteme des Laufzeitser vers unabhängig voneinander betreibbar sind. Jedes einzelne Laufzeitsystem ist ein für sich eigenständiges Laufzeitsystem. Beispielsweise kann das Anlagensteuerprogramm vollständig auf einem einzigen Laufzeitsystem ausgeführt werden. Hierzu kann das ein zige Laufzeitsystem alle Anwendungsmodule des Anlagensteuerprogramms umfassen und diese gemäß des Anlagensteuerprogramms ausführen. Die Installation weiterer Lauf zeitsysteme ist hierfür nicht notwendig.
Alternativ kann eine Mehrzahl von voneinander unabhängigen Laufzeitsystemen auf dem Laufzeitserver installiert werden, sodass beispielsweise auf jedem Laufzeitsystem ledig lich ein Anwendungsmodul des Anlagensteuerprogramms installiert ist. Über die Daten übertragungsschnittstellen der einzelnen Laufzeitsysteme ist eine Datenübertragung der einzelnen Anwendungsmodule untereinander ermöglicht, sodass das die Anwendungs module umfassende Anlagensteuerprogramm über die Mehrzahl von Laufzeitsystemen ausführbar ist.
Die Instanziierung der Laufzeitsysteme ermöglicht die Änderung der auf den Laufzeitsys temen installierten Anwendungsmodule bzw. das Hinzufügen und Entfernen von Laufzeit systemen zu und von dem Laufzeitserver, ohne dass eine Beeinträchtigung bzw. Beein flussung anderer Laufzeitsysteme und der jeweiligen Anwendungsmodule besteht.
Nach einer Ausführungsform sind die Anwendungsmodule autark und voneinander unab hängig. Hierdurch wird der technische Vorteil erreicht, dass Anwendungsmodule des Anlagen steuerprogramms geändert, entfernt oder hinzugefügt werden können, ohne dass andere Anwendungsmodule des Anlagensteuerprogramms beeinträchtigt werden. Die einzelnen Anwendungsmodule sind für sich abgeschlossene Untereinheiten des Anlagensteuerpro gramms und können als abgeschlossene Einheiten geändert, modifiziert, hinzugefügt o- der entfernt werden, ohne dass Anpassungen der anderen Anwendungsmodule des Anla gensteuerprogramms durchgeführt werden müssen.
Hierdurch wird eine höhere Flexibilität des Anlagensteuerprogramms erreicht. Ferner kön nen einzelne Anwendungsmodule unabhängig voneinander erstellt werden, wodurch eine höhere Programmiereffizienz erreicht werden kann. Darüber hinaus ist durch die Modula risierung des Anlagensteuerprogramms eine Fehleridentifikation erleichtert, indem eine Fehleranalyse auf einzelne Anwendungsmodule des Anlagensteuerprogramms begrenzt werden kann.
Nach einer Ausführungsform sind die Laufzeitsysteme in einem Echtzeit-Modus und/oder in einem Nichtechtzeit-Modus betreibbar.
Hierdurch wird der technische Vorteil erreicht, dass ein Anwendungsbereich des Lauf zeitservers vergrößert werden kann. Indem die Laufzeitsysteme des Laufzeitservers in ei nem Echtzeitmodus und/oder in einem Nichtechtzeitmodus betreibbar sind, können auf den jeweiligen Laufzeitsystemen echtzeitfähige bzw. nicht-echtzeitfähige Anwendungsmo dule des Anlagensteuerprogramms ausgeführt werden. Hierdurch können durch das Anla gensteuerprogramm verschiedene Anwendungen ausgeführt werden, die unterschiedli chen Anforderungen an eine Echtzeitfähigkeit genügen.
Nach einer Ausführungsform umfasst der Laufzeitserver ferner wenigstens ein weiteres Laufzeitsystem, wobei auf dem weiteren Laufzeitsystem wenigstens ein weiteres Anwen dungsmodul zur Ausführung einer Anwendung des Anlagensteuerprogramms installiert ist, wobei das weitere Laufzeitsystem eine Datenübertragungsschnittstelle zur Datenüber tragung zwischen dem weiteren Laufzeitsystem und den Laufzeitsystemen und/oder zwi schen dem weiteren Anwendungsmodul und den Anwendungsmodulen aufweist, und wo bei das weitere Anwendungsmodul nicht echtzeitfähig ist und das weitere Laufzeitsystem in einem Nichtechtzeit-Modus betreibbar ist. Hierdurch wird der technische Vorteil erreicht, dass wiederum eine höhere Flexibilität des Laufzeitservers erreicht wird. Durch die weiteren Laufzeitsysteme, auf denen weitere An- wendungsmodule installiert sind, können zusätzliche Anwendungen des Anlagensteuer programms ausgeführt werden. Die weiteren Laufzeitsysteme sind hierbei ausschließlich in einem Nichtechtzeitmodus betreibbar und die auf den weiteren Laufzeitsystemen instal lierten weiteren Anwendungsmodule sind ausschließlich zur Ausführung von Anwendun gen des Anlagensteuerprogramms ausgebildet, für die eine Echtzeitfähigkeit nicht gefor dert ist.
Derartige Anwendungen können beispielsweise die Auswertung von Messdaten oder die graphische Darstellung ausgewerteter Messdaten umfassen. Durch die Aufteilung der echtzeitfähigen Anwendung auf die echtzeitfähigen Laufzeitsysteme und der nicht-echt- zeitfähigen Anwendung auf die nicht-echtzeitfähigen Laufzeitsysteme ist eine verbesserte Strukturierung des Laufzeitservers und der darauf installierten echtzeitfähigen und nicht echtzeitfähigen Laufzeitsysteme ermöglicht. Hierdurch wird wiederum eine einfachere Zu teilung von Speicherplatz bzw. Prozessorzeit oder Prozessorkernen der einzelnen Lauf zeitsysteme des Laufzeitservers erreicht.
Nach einer Ausführungsform stellt der Laufzeitserver eine Hierarchie unter den Laufzeit systemen und/oder den weiteren Laufzeitsystemen her, in der eine Priorisierung von Lauf zeitsystemen, die im Echtzeitzeitmodus betrieben werden, gegenüber Laufzeitsystemen und/oder weiteren Laufzeitsystemen, die im Nichtechtzeitmodus betrieben werden, ge währleistet ist.
Hierdurch wird der technische Vorteil erreicht, dass Anforderungen an echtzeitfähige An wendungen erreicht werden können. Durch die Hierarchie unter den Laufzeitsystemen wird gewährleistet, dass Anwendungen, die der Einhaltung einer Echtzeitanforderung un terliegen, gegenüber Anwendungen, die Echtzeitanforderungen nicht unterliegen, vorran gig ausgeführt werden, sodass eine Ausführung von Echtzeitanwendungen nicht durch eine Ausführung von Nichtechtzeitanwendungen unterbrochen wird. Durch die Hierarchie innerhalb des Laufzeitservers können somit Anforderungen an die Echtzeitfähigkeit der jeweiligen Laufzeitsysteme erreicht werden.
Nach einer Ausführungsform umfasst der Laufzeitserver ferner einen Datenübertragungs router zur Verbindung mit den Datenübertragungsschnittstellen der Laufzeitsysteme und der weiteren Laufzeitsysteme, wobei über den Datenübertragungsrouter ein Datenaus tausch zwischen Laufzeitsystemen und/oder weiteren Laufzeitsystemen und/oder zwi schen Anwendungsmodulen und/oder weiteren Anwendungsmodulen ermöglicht ist.
Hierdurch wird der technische Vorteil erreicht, dass eine schnelle, störungsrobuste und zuverlässige Datenübertragung zwischen Laufzeitsystemen des Laufzeitservers und An wendungsmodulen der Laufzeitsysteme erreicht wird. Ein Datenaustausch zwischen Lauf zeitsystemen bzw. Anwendungsmodulen kann hierbei das Speichern von Daten in einen Speicherbereich durch ein erstes Laufzeitsystem bzw. Anwendungsmodul und das Einle sen der gespeicherten Daten durch ein zweites Laufzeitsystem bzw. Anwendungsmodul umfassen.
Ein Datenaustausch oder eine Datenübertragung zwischen Laufzeitsystemen und/oder Anwendungsmodulen kann eine Datenkommunikation zwischen den Laufzeitsystemen und/oder Anwendungsmodulen umfassen. Eine Datenkommunikation umfasst neben der Übertragung von Daten eine Übertragung von Information mit einem Informationsgehalt, der von beiden Kommunikationspartnern verstanden wird.
Der Datenübertragungsrouter kann hierbei ein Skript bzw. ein Protokoll zum Schreiben von Daten in einen vorbestimmten Speicherbereich und zum Auslesen von in dem vorbe stimmten Speicherbereich gespeicherten Daten umfassen. Der Datenübertragungsrouter kann eine Datenübertragung zwischen verschiedenen Laufzeitsystemen ermöglichen. Der Datenübertragungsrouter kann ferner eine Datenübertragung zwischen Anwendungsmo dulen, die jeweils auf unterschiedlichen Laufzeitsystemen installiert sind, ermöglichen. Der Datenübertragungsrouter kann ferner eine Datenübertragung zwischen verschiedenen Anwendungsmodulen, die auf demselben Laufzeitsystem installiert sind, ermöglichen.
Nach einer Ausführungsform kann in einem Online-Zustand der Steuerung, in dem we nigstens ein Laufzeitsystem ausgeführt wird, wenigstens ein Laufzeitsystem hinzugefügt und/oder entfernt werden.
Hierdurch wird der technische Vorteil erreicht, dass eine flexible Änderung bzw. Erweite rung oder Reduzierung des Anlagensteuerprogramms ermöglicht ist. Zum Erweitern des Anlagensteuerprogramms um weitere Anwendungen bzw. weitere Anwendungsmodule können ein Laufzeitsystem bzw. eine Mehrzahl von Laufzeitsystemen, auf denen die je weils zu erweiternden Anwendungsmodule installiert sind, in den Server eingepflegt wer den. Die weiteren Laufzeitsysteme, die bereits auf dem Laufzeitserver installiert sind, können währenddessen weiterhin betrieben werden, sodass die auf diesen Laufzeitsystemen in stallierten Anwendungsmodule weiter ausgeführt werden können und somit die Automati sierungsanlage über das Anlagensteuerprogramm weiterhin betreibbar ist. Nach Installa tion der zusätzlichen Laufzeitsysteme können die darauf installierten Anwendungsmodule gestartet und in das bestehende Anlagensteuerprogramm eingefügt werden, sofern diese mit dem bestehenden Anlagensteuerprogramm kompatibel sind.
Die jeweiligen I/O-Konfigurationen der zusätzlichen Laufzeitsysteme können in die l/O- Mapping-Zwischenschicht des Laufzeitservers abgebildet werden, sodass die I/O-Konfigu ration des Laufzeitservers, die der in der I/O-Mapping-Zwischenschicht abgebildeten I/O- Konfigurationen der jeweiligen Laufzeitsysteme des Laufzeitservers entspricht, den Ände rungen gemäß aktualisiert werden kann.
Analog können ein bestehendes Laufzeitsystem bzw. eine Mehrzahl von bestehenden Laufzeitsystemen von dem Laufzeitserver entfernt werden, während gleichzeitig weitere Anwendungsmodule, die auf weiteren Laufzeitsystemen des Laufzeitservers installiert sind, ausgeführt werden können und so die Automatisierungsanlage mittels des Anlagen steuerprogramms betrieben werden kann. Eine entsprechende Aktualisierung der I/O- Konfiguration des Laufzeitservers kann mittels einer entsprechenden Abbildung der I/O- Konfigurationen der einzelnen Laufzeitsysteme auf die I/O-Mapping-Zwischenschicht er reicht werden. Hierdurch ist eine hohe Flexibilität erreicht, indem Erweiterungen bzw. Re duzierungen des Anlagensteuerprogramms um zusätzliche oder bestehende Anwendun gen des Anlagensteuerprogramms während gleichzeitiger Ausführung des Anlagensteuer programms ermöglicht werden.
Nach einer Ausführungsform wird jedes der Laufzeitsysteme auf einem eigenen Core o- der auf mehreren Cores des Prozessors ausgeführt, wobei mehrere Laufzeitsysteme auf einem Core oder auf mehreren Cores ausgeführt werden.
Hierdurch wird der technische Vorteil erreicht, dass die Laufzeitsysteme des Laufzeitser vers voneinander unabhängig betreibbar sind. Hierdurch kann ein hoher Grad an Flexibili tät erreicht werden. Beispielsweise kann eine Mehrzahl von Laufzeitsystemen auf einem Prozessor ausgeführt werden. Hierdurch kann erreicht werden, dass der erfindungsge mäße Laufzeitserver auf einer Datenverarbeitungsanlage ausführbar ist, die lediglich ei nen Prozessor umfasst. Darüber hinaus kann jedes Laufzeitsystem des Laufzeitservers auf einem eigenen Pro zessor bzw. auf einem eigenen Prozessorkern ausgeführt werden. Hierdurch wird er reicht, dass Anwendungsmodule unterschiedlicher Laufzeitsysteme gleichzeitig ausführ bar sind. Ferner wird erreicht, dass eine Beeinflussung der Ausführung der Anwendungs module einzelner Laufzeitsysteme durch die Ausführung der Anwendungsmodule anderer Laufzeitsysteme unterbunden werden kann. Darüber hinaus können einzelne Laufzeitsys teme auf mehreren Prozessoren bzw. Prozessorkernen ausgeführt werden. Hierdurch kann wiederum ein erhöhter Grad an Flexibilität des Laufzeitservers erreicht werden.
Nach einer Ausführungsform ist der Laufzeitserver als eine Echtzeitumgebung in ein nicht-echtzeitfähiges Betriebssystem integrierbar und in diesem ausführbar.
Hierdurch wird der technische Vorteil erreicht, dass über den Laufzeitserver und die auf dem Laufzeitserver installierten Laufzeitsysteme Computerprogramme, insbesondere An lagensteuerprogramme, die Echtzeitanforderungen genügen müssen, ausgeführt werden können. Dies kann insbesondere in einem nicht-echtzeitfähigen Betriebssystem, bei spielsweise handelsüblichen Betriebssystemen für Personal Computer (PC) erreicht wer den. Somit kann über den Laufzeitserver und die darauf installierten Laufzeitsysteme ein echtzeitfähiges Anlagensteuerprogramm innerhalb eines nicht-echtzeitfähigen Betriebs systems ausgeführt werden.
Nach einem zweiten Aspekt der Erfindung wird ein Computerprogrammprodukt bereitge stellt, wobei das Computerprogrammprodukt Programmcodemittel zum Ausführen des Laufzeitservers und der Laufzeitsysteme aufweist, und wobei das Computerprogrammpro dukt auf einer Datenverarbeitungsanlage abläuft.
Nach einer Ausführungsform ist das Computerprogrammprodukt auf einem computerles baren Aufzeichnungsmedium abgespeichert.
Nach einem dritten Aspekt der Erfindung wird eine Automatisierungsanlage mit einer Da tenverarbeitungsanlage zum Steuern der Automatisierungsanlage bereitgestellt, wobei die Datenverarbeitungsanlage mit wenigstens einem Laufzeitserver und wenigstens zwei Laufzeitsystemen eingerichtet ist und ausgebildet ist, ein auf den Laufzeitsystemen einge richtetes Anlagensteuerprogramm auszuführen, um die Automatisierungsanlage zu steu- ern. Die Erfindung wird anhand der beigefügten Figuren näher erläutert. Hierbei zeigen:
Fig. 1 eine schematische Darstellung eines Laufzeitservers gemäß einer Ausfüh rungsform;
Fig. 2 eine schematische Darstellung eines Computerprogrammprodukts zum Aus führen des Laufzeitservers gemäß einer Ausführungsform; und
Fig. 3 eine schematische Darstellung einer Automatisierungsanlage mit einer Daten verarbeitungsanlage zum Ausführen des Laufzeitservers gemäß einer Ausfüh rungsform.
Fig. 1 zeigt eine schematische Darstellung eines Laufzeitservers 100 gemäß einer Aus führungsform.
Gemäß der Ausführungsform in Fig. 1 ist der Laufzeitserver 100 zum gleichzeitigen Aus führen mehrerer Laufzeitsysteme 101 in einem Betriebssystem 103 für eine Datenverar beitungsanlage zum Steuern einer Automatisierungsanlage 112 auf Basis eines Anlagen steuerprogramms ausgebildet. Die Laufzeitsysteme 101 sind zur Echtzeitausführung des Anlagensteuerprogramms ausgebildet. Der Laufzeitserver 100 umfasst:
wenigstens zwei Laufzeitsysteme 101 zum Ausführen von Anwendungsmodulen 105 des Anlagensteuerprogramms, wobei auf jedem Laufzeitsystem 101 wenigstens ein Anwen dungsmodul 105 zur Ausführung einer Anwendung des Anlagensteuerprogramms instal liert ist, wobei jedes Laufzeitsystem 101 eine Datenübertragungsschnittstelle 107 zur Da tenübertragung zwischen Laufzeitsystemen 101 und/oder zwischen Anwendungsmodulen 105 aufweist, wobei jedes Laufzeitsystem 101 eine I/O-Konfiguration 109 aufweist, die eine Zuordnung zwischen wenigstens einer Variable der Anwendungsmodule 105 der Laufzeitsysteme 101 und wenigstens einer Hardwareadresse einer Hardwarekomponente 113 einer zu steuernden Automatisierungsanlage 112 definiert,
eine I/O-Schnittstelle 111 zum Datenaustausch zwischen den wenigstens zwei Laufzeit systemen 101 und den Hardwarekomponenten 113 der Automatisierungsanlage 112 mit wenigstens einem I/O-Eingang 115 und/oder einem I/O-Ausgang 117, und
eine I/O-Mapping-Zwischenschicht 119, wobei in der I/O-Mapping-Zwischenschicht 119 die I/O-Konfigurationen 109 der wenigstens zwei Laufzeitsysteme 101 abgebildet sind. In der Ausführungsform der Fig. 1 ist der Laufzeitserver 100 in das Betriebssystem 103 eingebettet. Auf dem Laufzeitserver 100 sind fünf Laufzeitsysteme 101 installiert, auf de nen jeweils zwei Anwendungsmodule 105 installiert sind. Jedes der Laufzeitsysteme 101 weist eine Datenübertragungsschnittstelle 107 zur Datenübertragung und eine I/O-Konfi guration 109 auf. Jede I/O-Konfiguration 109 eines jeden Laufzeitsystems 101 stellt eine direkte Zuordnung von Variablen der jeweiligen auf dem Laufzeitsystem 101 installierten Anwendungsmodule 105 und Hardwarekomponenten 1 13 der zu steuernden Automatisie rungsanlage 112 auf.
Der Laufzeitserver 100 weist ferner die I/O-Mapping-Zwischenschicht 119 auf. In die l/O- Mapping-Zwischenschicht 119 ist jede I/O-Konfiguration 109 eines jeden Laufzeitsystems 101 abgebildet. Für die Ausführungsform in Fig. 1 umfasst die I/O-Mapping-Zwischen- schicht 1 19 fünf Abbildungen der fünf I/O-Konfigurationen 109 der fünf Laufzeitsysteme 101.
Die Anzahl der auf dem Laufzeitserver 100 installierten Laufzeitsysteme 101 kann von der in Fig. 1 dargestellten Anzahl abweichen und kann einen beliebigen Wert annehmen. Der Laufzeitserver 100 kann beispielsweise mit lediglich einem installierten Laufzeitsystem 101 ausgeführt werden. Darüber hinaus ist die in Fig. 1 dargestellte Anzahl von jeweils zwei Anwendungsmodulen 105 pro Laufzeitsystem 101 lediglich beispielhaft. So kann al ternativ ein jedes Laufzeitsystem 101 eine beliebige Anzahl von Anwendungsmodulen 105 aufweisen oder ein jedes Laufzeitsystem 101 lediglich ein Anwendungsmodul 105 umfassen.
Der Laufzeitserver 100 umfasst ferner fünf weitere Laufzeitsysteme 125, auf denen je weils zwei weitere Anwendungsmodule 106 installiert sind. Jedes der fünf weiteren Lauf zeitsysteme 125 weist eine Datenübertragungsschnittstelle 107 auf. Die weiteren Laufzeit systeme 125 werden in einem Nichtechtzeitmodus 127 betrieben und die weiteren An wendungsmodule 106 umfassen Anwendungen, die Nichtechtzeitanforderungen genügen.
Gemäß der Ausführungsform in Fig. 1 werden die fünf Laufzeitsysteme 101 in einem Echtzeitzeitmodus 129 betrieben, und die auf den Laufzeitsystemen 101 installierten An wendungsmodule 105 sind ausgebildet, Anwendungen gemäß einer Echtzeitanforderung auszuführen.
Gemäß der Ausführungsform in Fig. 1 sind die Laufzeitsysteme 101 , die in einem Echt zeitzeitmodus 129 betrieben werden, und die weiteren Laufzeitsysteme 125, die in einem Nichtechtzeitmodus 127 betrieben werden, in einer entsprechenden Hierarchie angeord net, die in Fig. 1 durch die beiden gestrichelten Kästchen dargestellt ist. Die auf dem Lauf zeitserver 100 definierte Hierarchie der Laufzeitsysteme 101 und der weiteren Laufzeit systeme 125 gewährleistet eine echtzeitfähige Ausführung der Anwendungsmodule 105 der Laufzeitsysteme 101 und verhindert eine Interferenz der Ausführung der Anwen dungsmodule 105 durch Ausführungen der weiteren Anwendungsmodule 106 der weite ren Laufzeitsysteme 125, die in dem Nichtechtzeitmodus 127 betrieben werden.
Der Laufzeitserver 100 weist ferner einen Datenübertragungsrouter 121 auf, der mit den Datenübertragungsschnittstellen 107 der Laufzeitsysteme 101 und der weiteren Laufzeit systeme 125 verbindbar ist und eine Datenübertragung zwischen Laufzeitsystemen 101 untereinander, zwischen Laufzeitsystemen 101 und weiteren Laufzeitsystemen 125 oder zwischen weiteren Laufzeitsystemen 125 untereinander ermöglicht. Eine Datenübertra gung zwischen Anwendungsmodulen 105 und weiteren Anwendungsmodulen 106 ist ebenfalls über die Datenübertragungsschnittstelle 107 der jeweiligen Laufzeitsysteme 101 und weiteren Laufzeitsysteme 125 und dem Datenübertragungsrouter 121 ermöglicht.
In der Ausführungsform in Fig.1 ist der Datenübertagungsrouter 121 in zwei Stränge auf geteilt, von denen der erste Strang 120 eine direkte Datenübertragung zwischen den wei teren Laufzeitsystemen 125 untereinander und der zweite Strang 122 eine direkte Daten übertragung zwischen den Laufzeitsystemen 101 untereinander ermöglicht. Durch die Aufteilung des Datenkommunikationsrouters in die ersten und zweiten Stränge 120, 122 wird die Hierarchie der Laufzeitsysteme 101 und weiteren Laufzeitsysteme 125 ermög licht. Indem die Laufzeitsysteme 101 untereinander direkt über den zweiten Strang 122 ds Datenkommunikationsrouters 121 Daten austauschen können. Kann hier eine Priorisie- rung gegenüber den weiteren Laufzeitsystemen erzielt und mögliche Kollisionen im Da tenaustausch vermieden werden. Der Datenaustausch zwischen den Laufzeitsystemen 101 über den zweiten Strang 122 des Datenkommunikationsrouters 121 kann somit die Echtzeitbedingungen erfüllen.
Die weiteren Laufzeitsysteme 125 können indessen störungsfrei und direkt untereinander über den ersten Strang 120 des Datenübertragungsrouter 121 Daten austauschen. Für die Datenübertragung zwischen den weiteren Laufzeitsystemen 125 über den ersten Strang 120 des Datenübertragungsrouters 121 werden keine Echtzeitbedingungen erfüllt. Mit den Pfeilen zwischen den beiden Strängen des Datenübertragungsrouters 121 ist dar gestellt, dass über die beiden Stränge 120, 122 des Datenübertragungsrouters 121 zu sätzlich eine Datenübertragung zwischen den Laufzeitsystemen 101 und den weiteren Laufzeitsystemen 125 ermöglicht ist.
Darüber hinaus weist der Laufzeitserver 100 eine Kommunikationsschnittstelle 133 auf, die eine Verbindung zwischen dem Datenübertragungsrouter 121 und dem Betriebssys tem 103 ermöglicht. Mittels der Kommunikationsschnittstelle 133 ist eine Datenübertra gung zwischen dem Laufzeitserver 100 und dem Betriebssystem 103, in das der Lauf zeitserver 100 eingebettet ist, ermöglicht.
In der Ausführungsform in Fig.1 ist die Kommunikationsschnittstelle 133 sowohl mit dem ersten Strang 120 des Datenkommunikationsrouters 121 als auch mit dem zweiten Strang 122 des Datenkommunikationsrouters 121 verbunden. Somit kann wiederum auch für die Datenübertragung zwischen den Laufzeitsystemen 101 und den weiteren Laufzeitsyste men 125 und dem Betriebssystem 103 eine hierarchisch geordnete Übertragung von Da ten erzielt werden, indem Daten zwischen den Laufzeitsystemen 101 und dem Betriebs system 103 über den zweiten Strang 122 des Datenkommunikationsrouters 121 und Da ten zwischen den weiteren Laufzeitsystemen 125 und dem Betriebssystem 103 über den ersten Strang 122 des Datenkommunikationsrouters 121 übertragen werden können.
Der Laufzeitserver 100 umfasst ferner eine I/O-Schnittstelle 11 1 mit einer Mehrzahl von I/O-Eingängen 115 und I/O-Ausgängen 117. Die I/O-Ausgänge 1 17 und die I/O-Eingänge 1 15 ermöglichen eine Verbindung zwischen den Hardwarekomponenten 1 13 der Automa tisierungsanlage 112 und den Anwendungsmodulen 105 der Laufzeitsysteme 101. Mittels der I/O-Mapping-Zwischenschicht 119 ist eine eindeutige Zuordnung zwischen Variablen der Anwendungsmodule 105 und den Hardwarekomponenten 1 13 der Automatisierungs anlage 1 12 ermöglicht. Die Anzahl der I/O-Eingänge 1 15 und der I/O-Ausgänge 1 17 in der Ausführungsform in Fig. 1 ist lediglich beispielhaft und kann gemäß der zu steuernden Au tomatisierungsanlage 1 12 variieren.
Gemäß der Ausführungsform in Fig. 1 umfasst die Automatisierungsanlage 1 12 eine Mehrzahl von Hardwarekomponenten 1 13. Die Hardwarekomponenten 1 13 können bei spielsweise Feldbusklemmen oder Sensoren oder Aktoren einer Automatisierungsanlage umfassen. Die Hardwarekomponenten 113 sind jeweils über einen Datenbus 131 mit ei nem Busmaster 123 verbunden. Der Datenbus 131 kann mittels eines gängigen Feld busprotokolls betrieben werden. Die Busmaster 123 sind jeweils mit einem I/O-Eingang 1 15 der I/O-Schnittstelle 11 1 mit dem Laufzeitserver 100 verbunden. Über eine Ausfüh rung der auf den Laufzeitsystemen 101 installierten Anwendungsmodule 105 kann eine Steuerung der Hardwarekomponenten 1 13 der Automatisierungsanlage 112 bewirkt wer den. Die Busmaster 123 können hierbei eine Datenübertragung zwischen der Steuerung der Automatisierungsanlage 1 12 und den jeweiligen Hardwarekomponenten 1 13 bewir ken.
Die Ausgestaltung der Ausführungsform in Fig. 1 mit jeweils drei Busmastern 123 und ins gesamt fünf Hardwarekomponenten 113 ist lediglich beispielhaft und die vorliegende Er findung soll nicht hierauf beschränkt werden.
Die Anwendungsmodule 105 der Laufzeitsysteme 101 , die im Echtzeitzeitmodus 129 be trieben werden, dienen zur Ausführung von Anwendungen des Anlagensteuerprogramms, die Echtzeitanforderungen genügen müssen. Diese können beispielsweise das Ansteuern von Aktoren der Automatisierungsanlage 1 12 oder das Auslesen von Sensoren der Auto matisierungsanlage 1 12 umfassen. Die weiteren Anwendungsmodule 106 der weiteren Laufzeitsysteme 125, die im Nichtechtzeitmodus 127 betrieben werden, dienen hingegen zur Ausführung von Anwendungen des Anlagensteuerprogramms, die keinen Echtzeitan forderungen genügen müssen. Diese Anwendungen können beispielsweise eine Auswer tung von Messdaten, eine graphische Darstellung von ausgewerteten Messdaten oder ähnliche Anwendungen umfassen, die für eine echtzeitfähige Steuerung der Automatisie rungsanlage 112 eine untergeordnete Priorität haben.
Gemäß der Ausführungsform in Fig. 1 sind die Laufzeitsysteme 101 instanziiert und sind von anderen Laufzeitsystemen 101 vollständig unabhängig betreibbar. Die auf den Lauf zeitsystemen 101 installierten Anwendungsmodule 105 sind eigenständige Einheiten des Anlagensteuerprogramms und sind unabhängig voneinander ausführbar. Die weiteren Laufzeitsysteme 125 sind ebenfalls instanziiert und stellen eigenständig betreibbare Ein heiten dar, die unabhängig von den anderen Laufzeitsystemen 101 und/oder anderen wei teren Laufzeitsystemen 125 betreibbar sind. Die weiteren Anwendungsmodule 106 sind ebenfalls eigenständige Einheiten des Anlagensteuerprogramms und können unabhängig voneinander ausgeführt werden.
Gemäß der Ausführungsform in Fig. 1 können Laufzeitsysteme 101 und/oder weitere Laufzeitsysteme 125 zu den bereits auf dem Laufzeitserver 100 installierten Laufzeitsyste men 101 und/oder den weiteren Laufzeitsystemen 125 hinzugefügt werden. Ebenfalls können Laufzeitsysteme 101 und/oder weitere Laufzeitsysteme 125 von dem Laufzeitser ver 100 entfernt werden. Die übrigen Laufzeitsysteme 101 und/oder die übrigen weiteren Laufzeitsysteme 125 können während des Hinzufügens oder Entfernens von Laufzeitsys temen 101 und/oder weiteren Laufzeitsystemen 125 weiterbetrieben und die darauf instal lierten Anwendungsmodule 105 und/oder weiteren Anwendungsmodule 106 weiter ausge führt werden, sodass die Automatisierungsanlage 112 über das Anlagensteuerprogramm weiterhin betrieben werden kann.
Darüber hinaus können die auf den Laufzeitsystemen 101 installierten Anwendungsmo dule 105 und/oder die auf den weiteren Laufzeitsystemen 125 installierten weiteren An wendungsmodule 106 verändert und/oder modifiziert werden. Die nicht zu verändernden oder modifizierenden Anwendungsmodule 105 und/oder weiteren Anwendungsmodule 106 können während der Änderung von zu ändernden Anwendungsmodulen 105 und/o der weiteren Anwendungsmodulen 106 weiterhin ausgeführt werden.
Zur Änderung der zu ändernden Anwendungsmodule 105 und/oder weiteren Anwen dungsmodule 106 können diese gestoppt und die entsprechenden Änderungen einge pflegt werden. Bei dem erneuten Hochfahren der geänderten Anwendungsmodule 105 und/oder geänderten weiten Anwendungsmodule 106 können diese in das bestehende Anlagensteuerprogramm eingepflegt werden. Alternativ können die zu ändernden Anwen dungsmodule 105 und/oder weiteren Anwendungsmodule 106 von den jeweiligen Lauf zeitsystemen 101 und/oder weiteren Laufzeitsystemen 125 deinstalliert werden und eine geänderte Version der zu ändernden Anwendungsmodule 105 und/oder weiteren Anwen dungsmodule 106 auf die jeweiligen Laufzeitsysteme 101 und/oder weiteren Laufzeitsys teme 125 installiert werden. Bei einem Hochfahren der geänderten Anwendungsmodule 105 und/oder weiteren Anwendungsmodule 106 können diese in das bestehende Anla gensteuerprogramm eingepflegt werden.
Bei einer Änderung der Anwendungsmodule 105 der Laufzeitsysteme 101 , die eine Ände rung der I/O-Konfigurationen 109 der jeweiligen Laufzeitsysteme 101 umfasst, können die jeweiligen Änderungen der I/O-Konfigurationen 109 mittels einer Abbildung der geänder ten I/O-Konfigurationen 109 auf die I/O-Mapping-Zwischenschicht 119 berücksichtigt wer den. Mittels der I/O-Mapping-Zwischenschicht 119 ist eine eindeutige Zuordnung der Vari ablen der einzelnen Anwendungsmodule 105 der Laufzeitsysteme 101 zu den Hardware komponenten 113 der zu steuernden Automatisierungsanlage 112 für den Laufzeitserver 100 gewährleistet. Der Laufzeitserver 100 weist somit mit der I/O-Mapping-Zwischenschicht 119 eine variier bare I/O-Konfiguration auf, die bei laufender Ausführung des Anlagensteuerprogramms veränderbar ist. Die I/O-Mapping-Zwischenschicht 119 umfasst alle Abbildungen der I/O- Konfigurationen 109 der auf dem Laufzeitserver 100 installierten Laufzeitsysteme 101. Einzelne I/O-Konfigurationen 109 einzelner Laufzeitsysteme 101 können hierbei verändert und die entsprechenden Abbildungen der geänderten I/O-Konfigurationen 109 auf die I/O- Mapping-Zwischenschicht 119 abgebildet werden, während andere Laufzeitsysteme 101 und die darauf installierten Anwendungsmodule 105 weiter ausgeführt werden.
Fig. 2 zeigt eine schematische Darstellung eines Computerprogrammprodukts 200 zum Ausführen des Laufzeitservers 100 gemäß einer Ausführungsform.
In der Ausführungsform in Fig. 2 ist das Computerprogramm 200 auf einem Aufzeich nungsmedium 201 angeordnet.
Fig. 3 zeigt eine schematische Darstellung einer Automatisierungsanlage 112 mit einer Datenverarbeitungsanlage 114 zum Ausführen des Laufzeitservers 100 gemäß einer Aus führungsform.
In der Ausführungsform in Fig. 3 umfasst die Automatisierungsanlage 112 eine Datenver arbeitungsanlage 114 und eine Mehrzahl von Hardwarekomponenten 113, die über einen Datenbus 131 mit der Datenverarbeitungsanlage 112 verbunden sind.
Auf der Datenverarbeitungsanlage 114 ist eine Betriebssystem 103 zum Ausführen der Datenverarbeitungsanlage 114 eingerichtet. Auf dem Betriebssystem 103 ist eine Lauf zeitserver 100 zum Ausführen eines Anlagensteuerungprogramms zum Steuern der Auto matisierungsanlage ausgebildet.
Der Laufzeitserver 100 wie auch das Betriebssystem 103, die Hardwarekomponenten 113 und der Datenbus 131 weisen die zu Fig. 1 angeführten Merkmale auf. Bezugszeichenliste
100 Laufzeitserver
101 Laufzeitsystem
103 Betriebssystem
105 Anwendungsmodul
106 weiteres Anwendungsmodul
107 Datenübertragungsschnittstelle 109 I/O-Konfiguration
111 I/O-Schnittstelle
112 Automatisierungsanlage
113 Hardwarekomponente
114 Datenverarbeitungsanlage
115 I/O-Eingang
117 I/O-Ausgang
119 I/O-Mapping-Zwischenschicht
120 erster Strang
121 Datenübertragungsrouter
122 zweiter Strang
123 Busmaster
125 weiteres Laufzeitsystem 127 Nicht-Echtzeitmodus
129 Echtzeitmodus
131 Datenbus
133 Kommunikationsschnittstelle
200 Computerprogrammprodukt
201 Aufzeichnungsmedium

Claims

Ansprüche
1. Laufzeitserver (100) zum gleichzeitigen Ausführen mehrerer Laufzeitsysteme (101) in einem Betriebssystem (103) für eine Datenverarbeitungsanlage zum Steuern ei ner Automatisierungsanlage (112) auf Basis eines Anlagensteuerprogramms, wobei die Laufzeitsysteme (101) zur Echtzeitausführung des Anlagensteuerprogramms ausgebildet sind, umfassend:
wenigstens zwei Laufzeitsysteme (101) zum Ausführen von Anwendungsmodulen (105) des Anlagensteuerprogramms, wobei die Laufzeitsysteme (101) als Laufzeit umgebungen ausgebildet sind, wobei auf jedem Laufzeitsystem (101) wenigstens ein Anwendungsmodul (105) zur Ausführung einer Anwendung des Anlagensteuer programms installiert ist, wobei jedes Laufzeitsystem (101) eine Datenübertragungs schnittstelle (107) zur Datenübertragung zwischen Laufzeitsystemen (101) und/oder zwischen Anwendungsmodulen (105) aufweist, wobei jedes Laufzeitsystem (101) eine I/O-Konfiguration (109) aufweist, die eine Zuordnung zwischen wenigstens ei ner Variable der Anwendungsmodule (105) der Laufzeitsysteme (101) und wenigs tens einer Hardwareadresse einer Hardwarekomponente (113) einer zu steuernden Automatisierungsanlage (112) definiert;
eine I/O-Schnittstelle (111) zum Datenaustausch zwischen den wenigstens zwei Laufzeitsystemen (101) und den Hardwarekomponenten (113) der Automatisie rungsanlage (112) mit wenigstens einem I/O-Eingang (115) und/oder I/O-Ausgang (117);
und
eine I/O-Mapping-Zwischenschicht (119), wobei in der I/O-Mapping-Zwischenschicht (119) die I/O-Konfigurationen (109) der wenigstens zwei Laufzeitsysteme (101) ab gebildet sind.
2. Laufzeitserver (100) nach Anspruch 1 , wobei den Laufzeitsystemen (101) vom Lauf zeitserver (100) wenigstens jeweils ein Speicherbereich und/oder ein Prozessor und/oder eine Prozessorzeit der Datenverarbeitungsanlage zugeordnet ist.
3. Laufzeitserver (100) nach Anspruch 1 oder 2, wobei die Laufzeitsysteme (101) in- stanziiert sind.
4. Laufzeitserver (100) nach einem der voranstehenden Ansprüche, wobei die Anwen- dungsmodule (105) autark und voneinander unabhängig sind.
5. Laufzeitserver (100) nach einem der voranstehenden Ansprüche, wobei die Lauf zeitsysteme (101) in einem Echtzeit-Modus (129) und/oder in einem Nichtechtzeit- Modus (127) betreibbar sind.
6. Laufzeitserver (100) nach einem der voranstehenden Ansprüche, ferner umfassend wenigstens ein weiteres Laufzeitsystem (125), wobei auf dem weiteren Laufzeitsys tem (125) wenigstens ein weiteres Anwendungsmodul (106) zur Ausführung einer Anwendung des Anlagensteuerprogramms installiert ist, wobei das weitere Laufzeit system (125) eine Datenübertragungsschnittstelle (107) zur Datenübertragung zwi schen dem weiteren Laufzeitsystem (125) und den Laufzeitsystemen (101) und/oder zwischen dem weiteren Anwendungsmodul (106) und den Anwendungsmodulen (105) aufweist, und wobei das weitere Anwendungsmodul (106) nicht echtzeitfähig ist und das weitere Laufzeitsystem (125) in einem Nichtechtzeit-Modus (127) be treibbar ist.
7. Laufzeitserver (100) nach Anspruch 6, wobei der Laufzeitserver (100) eine Hierar chie unter den Laufzeitsystemen (101) und/oder den weiteren Laufzeitsystemen (125) herstellt, in der eine Priorisierung von Laufzeitsystemen (101), die im Echtzeit zeitmodus (129) betrieben werden, gegenüber Laufzeitsystemen (101) und/oder weiteren Laufzeitsystemen (125), die im Nichtechtzeitmodus (127) betrieben wer den, gewährleistet ist.
8. Laufzeitserver (100) nach einem der voranstehenden Ansprüche, ferner umfassend einen Datenübertragungsrouter (121) zur Verbindung mit den Datenübertragungs schnittstellen (107) der Laufzeitsysteme (101) und der weiteren Laufzeitsysteme (125), wobei über den Datenübertragungsrouter (121) ein Datenaustausch zwischen Laufzeitsystemen (101) und/oder weiteren Laufzeitsystemen (125) und/oder zwi schen Anwendungsmodulen (105) und/oder weiteren Anwendungsmodulen (106) ermöglicht ist.
9. Laufzeitserver (100) nach einem der voranstehenden Ansprüche, wobei in einem Online-Zustand der Steuerung, in dem wenigstens ein Laufzeitsystem (101) ausge führt wird, wenigstens ein Laufzeitsystem (101) hinzugefügt und/oder entfernt wer den kann.
10. Laufzeitserver (100) nach einem der voranstehenden Ansprüche, wobei jedes der Laufzeitsysteme (101) auf einem eigenen Core oder auf mehreren Cores des Pro zessors ausgeführt wird, und wobei mehrere Laufzeitsysteme (101) auf einem Core oder auf mehreren Cores ausgeführt werden.
11. Laufzeitserver (100) nach einem der voranstehenden Ansprüche, wobei der Lauf zeitserver (100) als eine Echtzeitumgebung in ein nicht-echtzeitfähiges Betriebssys tem integrierbar und in diesem ausführbar ist.
12. Computerprogrammprodukt (200) mit Programmcodemitteln zum Ausführen des
Laufzeitservers (100) und der Laufzeitsysteme (101) nach einem der vorangehen den Ansprüche, wenn das Computerprogrammprodukt (200) auf einer Datenverar beitungsanlage abläuft.
13. Computerprogrammprodukt (200) nach Anspruch 12, wenn es auf einem computer lesbaren Aufzeichnungsmedium (201) abgespeichert ist.
14. Automatisierungsanlage (112) mit einer Datenverarbeitungsanlage (114) zum Steuern der Automatisierungsanlage (112), wobei die Datenverarbeitungsanlage (114) mit wenigstens einem Laufzeitserver (100) und wenigstens zwei Laufzeitsystemen (101) nach einem der Ansprüche 1 bis 11 eingerichtet ist und ausgebildet ist, ein auf den Laufzeitsystemen (101) eingerichtetes Anlagensteuerprogramm auszuführen, um die Automatisierungsanlage (112) zu steuern.
EP20735570.2A 2019-07-03 2020-06-30 Laufzeitserver zum gleichzeitigen ausführen mehrerer laufzeitsysteme einer automatisierungsanlage Pending EP3977301A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102019117954.8A DE102019117954A1 (de) 2019-07-03 2019-07-03 Laufzeitserver zum gleichzeitigen Ausführen mehrerer Laufzeitsysteme einer Automatisierungsanlage
PCT/EP2020/068413 WO2021001376A1 (de) 2019-07-03 2020-06-30 Laufzeitserver zum gleichzeitigen ausführen mehrerer laufzeitsysteme einer automatisierungsanlage

Publications (1)

Publication Number Publication Date
EP3977301A1 true EP3977301A1 (de) 2022-04-06

Family

ID=71409420

Family Applications (1)

Application Number Title Priority Date Filing Date
EP20735570.2A Pending EP3977301A1 (de) 2019-07-03 2020-06-30 Laufzeitserver zum gleichzeitigen ausführen mehrerer laufzeitsysteme einer automatisierungsanlage

Country Status (5)

Country Link
US (1) US12045038B2 (de)
EP (1) EP3977301A1 (de)
CN (1) CN114041121A (de)
DE (1) DE102019117954A1 (de)
WO (1) WO2021001376A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116155957B (zh) * 2023-04-19 2023-07-14 华芯(嘉兴)智能装备有限公司 一种分拣机控制程序的运行方法、装置和电子设备
CN116975567B (zh) * 2023-07-28 2024-03-15 上海优立检测技术股份有限公司 服务器辐射抗干扰度测试方法、系统、设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6922685B2 (en) * 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
CN101208649B (zh) * 2005-04-25 2010-12-08 因文西斯系统公司 用于处理制造环境所引起的生产事件的系统和方法
US7565654B2 (en) 2006-01-10 2009-07-21 National Instruments Corporation Programmatic control of tasks in a programmable logic controller
WO2011061045A1 (en) 2009-11-20 2011-05-26 Unilever Nv Detergent granule and its manufacture
DE102009047025B3 (de) 2009-11-23 2011-05-26 Beckhoff Automation Gmbh Echtzeit-Laufzeitsystem und Funktionsmodul für ein solches Laufzeitsystem
EP2341405B1 (de) 2009-12-30 2015-08-05 Robert Bosch GmbH Verfahren zum Betrieb einer Maschine
CN101894045A (zh) * 2010-06-18 2010-11-24 阳坚 一种实时Linux操作系统
DE102011107169A1 (de) 2011-07-13 2013-01-17 Kuka Roboter Gmbh Steuerung eines Roboter
CN102591306B (zh) * 2012-03-08 2013-07-10 南京埃斯顿机器人工程有限公司 双系统组件式的工业机器人控制器
DE202012013193U1 (de) 2012-06-26 2015-05-06 INTER CONTROL Hermann Köhler Elektrik GmbH & Co KG Vorrichtung für eine sicherheitskritische Anwendung
CN104808592B (zh) * 2015-03-13 2016-06-01 华中科技大学 一种基于虚拟上位机的数控系统

Also Published As

Publication number Publication date
US12045038B2 (en) 2024-07-23
DE102019117954A1 (de) 2021-01-07
CN114041121A (zh) 2022-02-11
US20220113709A1 (en) 2022-04-14
WO2021001376A1 (de) 2021-01-07

Similar Documents

Publication Publication Date Title
DE102009047025B3 (de) Echtzeit-Laufzeitsystem und Funktionsmodul für ein solches Laufzeitsystem
EP2422243B1 (de) Sicherheitssteuerung zum steuern einer automatisierten anlage und verfahren zum erstellen eines anwenderprogramms für eine sicherheitssteuerung
EP2182418B1 (de) Verfahren und Vorrichtung zum Zugreifen auf ein Funktionsmodul eines Automatiersierungssystems
EP3542232B1 (de) Steuerung für eine industrielle automatisierungsanlage und verfahren zum programmieren und betreiben einer derartigen steuerung
EP2506098B1 (de) Anordnung und Verfahren für den Betrieb einer industriellen Automatisierungsanordnung mit einer Mehrzahl programmierbarer Automatisierungskomponenten und einer Mehrzahl Automatisierungsprogramme
EP3538960B1 (de) Ablaufsteuerung von programmmodulen
EP3444682A1 (de) Verfahren zum rechnergestützten koppeln eines verarbeitungsmoduls in ein modulares technisches system und modulares technisches system
EP3977301A1 (de) Laufzeitserver zum gleichzeitigen ausführen mehrerer laufzeitsysteme einer automatisierungsanlage
EP2732347B1 (de) Verfahren und system zur dynamischen verteilung von programmfunktionen in verteilten steuerungssystemen
EP4235323A2 (de) Verfahren und vorrichtung zur automatischen validierung von sicherheitsfunktionen an einem modular aufgebauten sicherheitssystem
EP3039494B1 (de) Automatisierungssystem
EP3995960A1 (de) Computer programm zum austausch von daten zwischen programmmodulen
EP1643679A1 (de) Konfiguration von Baugruppen in Automatisierungssystemen
EP2685377B1 (de) Verfahren und Anordnung zur Synchronisierung von zwei auf einer Hardware-Plattform ablaufenden Prozessen
DE10055168A1 (de) Industrielle Steuerung auf der Basis verteilbarer Technologischer Objekte
EP2341405A2 (de) Verfahren zum Betrieb einer Maschine
EP1179428B1 (de) Verfahren und Vorrichtung zum Abarbeiten von Verfahrensschritten
WO2008052901A1 (de) Verfahren zum betreiben einer rechneranordnung
DE10253244B4 (de) Verfahren und System zum entfernten Aufruf und zur entfernten Ausführung von Funktionsbausteinen
EP4086754A1 (de) Verfahren zur rechnergestützten konfiguration eines endgeräts, endgerät und betriebsverfahren für das endgerät
EP4390581A1 (de) Verfahren und engineeringsystem zur projektierung und programmierung einer industriellen automatisierungsanordnung mit einer anzahl automatisierungskomponenten
EP4010798A1 (de) Verfahren und automatisierungssystem für die steuerung und/oder überwachung einer maschine und/oder anlage
EP2677381A1 (de) Verfahren zum Betreiben eines Automatisierungssystems
DE29622133U1 (de) Automatisierungsgerät
EP3553608A1 (de) Automatisierungsanlage und verfahren zum betreiben einer automatisierungsanlage

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20211230

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20220519

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
APBK Appeal reference recorded

Free format text: ORIGINAL CODE: EPIDOSNREFNE

APBN Date of receipt of notice of appeal recorded

Free format text: ORIGINAL CODE: EPIDOSNNOA2E

APBR Date of receipt of statement of grounds of appeal recorded

Free format text: ORIGINAL CODE: EPIDOSNNOA3E

APAF Appeal reference modified

Free format text: ORIGINAL CODE: EPIDOSCREFNE