WO2014146686A1 - Tool and method for simulating a technical installation - Google Patents
Tool and method for simulating a technical installation Download PDFInfo
- Publication number
- WO2014146686A1 WO2014146686A1 PCT/EP2013/055623 EP2013055623W WO2014146686A1 WO 2014146686 A1 WO2014146686 A1 WO 2014146686A1 EP 2013055623 W EP2013055623 W EP 2013055623W WO 2014146686 A1 WO2014146686 A1 WO 2014146686A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- component
- simulation
- components
- inputs
- processed
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total 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/41885—Total 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 modeling, simulation of the manufacturing system
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/32—Operator till task planning
- G05B2219/32345—Of interconnection of cells, subsystems, distributed simulation
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Definitions
- the invention relates to a tool for simulating a technical installation with at least one simulator instance comprising a plurality of components each realized as at least one application, wherein several of these components have inputs and outputs and for model-based, cyclical calculation of new output values in each simulation cycle Dependent on the respective input values are formed.
- the desire for integrated digital planning of the system to be realized is growing. Shortening the planning and construction phase while at the same time increasing quality means a lower return of investment for the plant operator.
- the digital planning of a virtual plant and its simulation makes it possible to test the planning results in order to avoid any unpleasant surprises during the later realization on the construction site and in the commissioning phase. Through simulation an attempt is made to get the most realistic possible test.
- system simulation does not end with the start of production on the system. For example, personnel can be trained on a virtual system during operation, regardless of the current production. In addition, optimizations and tests on the virtual system are possible without disturbing the real production.
- the simulation of the technical system then serves to optimize the operation of the plant or to improve the quality of the product produced on the plant.
- the invention has for its object to provide a tool and a method for simulating a technical system, which allow in a simple way an improved interaction of several simulators involved in the simulation.
- the new tool of the type mentioned in the features specified in claim 1.
- Advantageous developments of the tool are described in the dependent claims, a method for simulating a technical system in claim 10, a computer program and a digital storage medium in claims 11 and 12, respectively.
- the invention has the advantage that a wide variety of industry-specific and domain-specific simulation models and simulators can each interact as components of a simulator instance. This makes it possible to model and simulate a technical system from a holistic point of view. In this case, no central sequence control for coordinating the components involved in the simulation is required in an advantageous manner, which would mean increased control and communication effort. Rather, the process is controlled by the processing of the data from the components according to the component dependencies specified in the data flow, so that it is possible to speak of a data flow-controlled process.
- the simulation cycles have a nearly constant cycle duration and a component is designed as a so-called master to simulate simulation cycles.
- a time slice memory cell assigned to an input of a component is set to the status "not processed” and the components are informed of the valid system time.
- the model-based calculations of the components are simplified and simulation calculations In the normal case, that is, if there is no real-time violation, the time-slot memory cell is in the "processed" state before a new simulation cycle is started by the master.
- a so-called manager component for storing the data flow to be executed, in which the data flow is stored as a list of images of in each case one component output on one or more component inputs, wherein the illustrations additionally show the component input or the component inputs, respectively Identify associated memory cell.
- the data flow-oriented sequence control can thus be managed more easily since the memory cells and data connections assigned to the component inputs are stored in the same list.
- components of a simulator instance can added, removed or replaced at runtime.
- components with memory for example if a model-based computation has an integrator, to save the state of the component before replacement, and then to transition it to be able to restore.
- the requisite storage required for this purpose can likewise be realized in the manager component.
- a component for simulation coupling is provided, which is suitable for the application of any plant simulators to the simulator instance or supports the use of existing and specific plant models.
- Components for simulation coupling are therefore not only suitable for the connection of plant simulators, but also for the connection of other applications, such as executable models.
- Executable models may include different ones
- Simulators are generated or simply developed by hand in any programming language.
- Java Native Interface can advantageously be used for connection to the component for simulation coupling. This is advantageously not bound to platform-specific functions, for example Windows shared memory.
- a distribution of simulator components on several simulator instances is made possible if each instance is provided with a component for simulation coupling remotes, by means of which the coupling between the instances can be realized.
- OSGI framework is based on the Java programming language and is a modular and component-oriented software standard whose services can be offered locally and network-wide through a dynamic runtime system. Services are provided by the smallest modular unit of the OSGI framework, the so-called
- the bundles of an OSGI framework can be dynamically installed, uninstalled, or even updated without having to pause or restart the system.
- the invention is preferably implemented by loading suitable software onto one or more arithmetic units.
- the invention is thus on the one hand also a computer program with executable by a computer program code instructions and on the other hand, a storage medium with such a computer program, so a computer program product with program code means, as well as a tool for simulating a technical system, which is implemented with arithmetic units in their memory as means for Implementation of the simulation and its embodiments such a computer program is loaded or loadable.
- Figure 1 is a block diagram of a tool for
- FIGS. 2A to 2D show a component network in each case in one of four states for illustrating a nes event-driven execution of a simulation cycle
- FIG. 3 shows a section of a component network with concurrent processing.
- the exemplary embodiment explained below shows a tool for simulating a technical system, which is implemented on the basis of the software platform of the OSGIAlliance.
- other runtime frameworks are suitable, for example the so-called service-oriented framework
- a simulator instance 1 which can also be referred to as a co-simulation framework 1
- the components 2 ... 8 are dynamically integrated as so-called bundles 2 ... 8 by an OSGI framework 9.
- the OSGI framework 9 is based on the Java programming language and is a modular and component-oriented software standard of the OSGI
- the components 2... 8 of the simulator instance 1 realized as a co-simulation framework comprise a manager component 2, which can also be referred to as a simulation framework manager, components 3, 7 and 8 for simulation coupling, hereinafter also referred to as simulation couplings, of which the component 8 as Simulation coupling Remote for coupling the simulator instance 1 with another simulator instance 10 is used, as well as components 4, 5 and 6, which themselves contain models of sections of the technical system.
- the manager component 2 is responsible for the management of the simulator instance 1 and contains information about interdependencies of the components 3... 8 with one another and about their states. Due to the component dependencies, the sequence of simulation processing is defined as a function of the concatenation of the inputs and outputs of components 3 ... 8 to form a data flow path. Supported by the OSGI standard, the components 3 ... 8 of the simulator instance 1 can be added, removed or replaced at runtime. In order to avoid inconsistencies when exchanging components, for example jumps in the newly calculated values of outputs, for the components with memory, for example for the state of an integrator contained in a component, the state of the component before the exchange is stored in a state memory Managerkomponente 2 held in order to restore the state after replacement seamlessly. This state memory is advantageously also realized by the manager component 2.
- Components 3 and 7 for simulation coupling can be used to connect any plant simulator to the OSGI Framework 9 and support the integration of existing and specific plant models.
- the simulation tool SIMIT which is available from Siemens AG, connected as a system simulator 11.
- simulation coupling components can not only be used to connect to plant simulators, but also to couple other applications, such as executable models, to the OSGI framework 9.
- executable models can be used by different simulators. be developed or simply developed by hand in any programming language.
- the executable model 12 is connected to the OSGI framework 9 by the simulation coupling component 7.
- various types of interfaces are available in principle.
- FMI Flexible Mock-Up Interface
- FMUs Field-Mock-Up Units
- FMI Framework Mock-Up Units
- two interfaces 13 and 14 which serve to connect the SIMIT simulator 11 or the executable model 12, are designed as JNI (Java Native Interface). This has the advantage that the interfaces 13 and 14 can be used for simulators or models that are not available in the Java programming language, for example in the C programming language. Moreover, they are not bound to platform-specific functions, for example Windows shared memory.
- the component 8 for simulation coupling is in the simulator instance 1 and another component 15 in the simulator instance 10 Simulation coupling provided, which are interconnected via communication interfaces.
- the data exchange and the communication between different simulator instances are supported computer-localized or network-wide.
- the simulator instance 10 is represented by the component 8 with its data inputs and data outputs in the simulator instance 1.
- the simulator instance 10 has a manager component 16, an OSGI framework 17 and a simulation coupling component 18 to which an executable model 19 is coupled via a Java native interface 20.
- the components 4 5 and 6 implemented models are directly integrated in the programming language Java and integrated by the connection of the components 4 ... 6 to the OSGI framework 9 in the data flow.
- the process is controlled by processing the data from the components according to the component dependencies specified in the data flow path. This has the advantage over the alternative possibility of realizing a flow control for the component involved in the simulation in a central component, that the associated control and communication overhead, which the advantages of the OSGI framework with regard to parallelization and distribution severely restricted, is avoided.
- Each input of a component is a vector that includes both the state of the input and its value. This is generally formulated in the following equation for an input E m of a component K n : with state e ⁇ ; l ⁇ .
- the expression “value” stands for an integer variable, a vector, or an array of variables that are needed for the simulation calculations.
- the state of the input can be “zero” for “processed” and “1” for “ not processed. "Since each component is over can have more than one input, the set of all inputs can be represented in matrix notation, as shown by the following equation:
- FIG. 2A-2D show different states of a component network with three components K 1 ( K 2 and K 3 , as well as an example of a data flow based on connecting arrows between outputs which have no state and inputs with the respective marked state
- the input states are symbolized by circles in Figure 2, where a filled circle corresponds to a "not processed” and an empty circle corresponds to a "processed” state Since the initial values of the components K 1 ( K 2 and K 3 , which are transferred in accordance with the illustrated data flow, are irrelevant to the explanation of the sequence control, these are not shown for the sake of clarity in FIG 2.
- Event-controlled means, for example, that each output propagates in the framework with the calculation of a new output value listen to the newly provided data and thus recognize the new egg occurred event that the respective upstream component has provided new output data as its own input data. Since this state change must be represented in an implementation by coding in some form, this is simply referred to in the context of the present application as the state of a memory cell assigned to the respective input.
- 2A shows the initialization of the input states of the components K 1 ( K 2 and K 3) , which is carried out before the start of the simulation, whereby all inputs, to which outputs of follower components in the data flow are coupled, are set to the state "not processed".
- Figure 2B shows the state immediately after the initiation of a simulation cycle by a time slice event in which the previously not set input ⁇ was set by placing a time slice a vector, consisting of the respective state and a value, whereby the current system time is transferred here as value.
- all inputs of the component ⁇ are in the state "not processed.” Only if the state of all inputs of a component has the value "1 ", that is, the state" not processed ", has assumed new output calculated values for their outputs and provided in the data flow next component.
- the following formula describes the mapping of a newly calculated value of a component output to the input of the following component:
- the simulation cycle is terminated and returned to the initial state shown in Figure 2A. Only when a new time slice event occurs can the next simulation cycle be started. the.
- the processing is data flow-oriented in parallelizable processes without the need for a central sequence control.
- the additional boundary condition is observed that a recalculated output value may only be transferred to an input according to the stored data flow if the state of the input is "0", ie "processed". If this is not yet the case, the data transfer must be awaited.
- the "accumulation" of transfers is a means of synchronizing the components with each other and is unproblematic even with real-time simulations over a certain period of time.However, in a real-time simulation, a new simulation cycle should be initiated by applying a timeslice, even though the component input ⁇ of the time slice is still in the In this way, real-time violations can be reliably detected and reported without the need for central sequencing control for the calculations to be performed in the components, with the reliable detection of "1", ie "unprocessed” In the case of real-time violations, an uncontrolled behavior of the models used for the simulation is advantageously avoided.
- a special feature of the tool described in the present application is the simulation of a technical application In the concurrent and distributed processing of calculations in components, which will now be illustrated by FIG.
- each component represents an application or an independent process, which in the embodiment shown is realized as an OSGI bundle.
- OSGI bundle Several calculations can be performed at the same time in different components, provided that their inputs have all previously been in the state "1" or “not processed”. Due to the parallelization, the processing is very efficient.
- a start begins Part of a simulation cycle with the calculation of a new output value by a component K 4 . This value is transferred to one input each of three components K 5 , K 6 and K 7 , which can thereby begin simultaneously and in parallel with their calculations.
- the component K 8 can carry out its model-based calculations comparatively early.
- the component K 7 as a component for simulation coupling can represent a further simulator instance remotely.
- a new simulation tool and method in which different domain-specific and trade-specific simulators and their models can be coupled with one another. It provides the functionality required to efficiently couple distributed simulators, taking into account real-time compliance. If real-time can not be maintained in the course of the simulation, the tool provides a message about the injury that has occurred.
- simulators and models realized dynamically as so-called bundles can be added and removed during the simulation. There is no need for central sequencing for the components implemented as stand-alone processes, which would severely limit the performance of the tool.
- the SIMIT system simulator from Siemens AG was coupled with a simulator instance.
- the system simulator SIMIT realized the visualization of the model as well as the control algorithms for level control of a tank.
- the tank itself as well as the pipelines and the sensors were realized by components with integrated models within the simulator instance.
- different tank models were used, which represented for example an ideal and a leaky tank.
- these tank models were exchanged during the co-simulation coupled with SIMIT. Due to the above-described manager component with its properties, the signal integrity was advantageously retained despite model exchange.
Landscapes
- Engineering & Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
Beschreibung description
Werkzeug und Verfahren zur Simulation einer technischen Anlage Tool and method for simulating a technical plant
Die Erfindung betrifft ein Werkzeug zur Simulation einer technischen Anlage mit zumindest einer Simulatorinstanz, die mehrere, jeweils als zumindest eine Anwendung realisierte Komponenten umfasst, wobei mehrere dieser Komponenten Eingän- ge und Ausgänge aufweisen und zur modellgestützten, zyklischen Berechnung von neuen Ausgangswerten in jedem Simulationszyklus in Abhängigkeit von den jeweiligen Eingangswerten ausgebildet sind. Im Bau technischer Anlagen, insbesondere im verfahrenstechnischen Anlagenbau, wächst der Wunsch nach einer durchgängigen digitalen Planung der zu realisierenden Anlage. Die Verkürzung der Planungs- und Bauphase bei gleichzeitiger Steigerung der Qualität bedeutet für den Anlagenbetreiber einen schnei - leren Return-of-Invest . Die digitale Planung einer virtuellen Anlage und deren Simulation ermöglicht es, die Planungsergebnisse zu testen, um bei der späteren Realisierung auf der Baustelle und in der Inbetriebsetzungsphase keine unliebsamen Überraschungen zu erleben. Durch Simulation wird versucht, eine möglichst realitätsnahe Prüfung zu erhalten. The invention relates to a tool for simulating a technical installation with at least one simulator instance comprising a plurality of components each realized as at least one application, wherein several of these components have inputs and outputs and for model-based, cyclical calculation of new output values in each simulation cycle Dependent on the respective input values are formed. In the construction of technical systems, especially in process plant engineering, the desire for integrated digital planning of the system to be realized is growing. Shortening the planning and construction phase while at the same time increasing quality means a lower return of investment for the plant operator. The digital planning of a virtual plant and its simulation makes it possible to test the planning results in order to avoid any unpleasant surprises during the later realization on the construction site and in the commissioning phase. Through simulation an attempt is made to get the most realistic possible test.
Der Einsatz von Anlagensimulation endet aber nicht mit dem Start der Produktion auf der Anlage. Beispielsweise kann während des Betriebs unabhängig von der laufenden Produktion Personal an einer virtuellen Anlage geschult werden. Daneben sind Optimierungen und Tests an der virtuellen Anlage möglich, ohne die reale Produktion zu stören. Die Simulation der technischen Anlage dient dann zur Optimierung des Betriebs der Anlage oder zur Verbesserung der Qualität des auf der An- läge hergestellten Produkts. However, the use of system simulation does not end with the start of production on the system. For example, personnel can be trained on a virtual system during operation, regardless of the current production. In addition, optimizations and tests on the virtual system are possible without disturbing the real production. The simulation of the technical system then serves to optimize the operation of the plant or to improve the quality of the product produced on the plant.
Am Bau einer Anlage sind unterschiedliche Gewerke beteiligt, die alle ihre eigenen Modelle und Simulatoren haben. Die Bedienung der Simulatoren und die Ermittlung der Einsatzgrenzen der Modelle erfordern ein tiefes Verständnis der Gewerke. Oft variieren je nach Anwendungsfall und Testszenario die notwendigen Simulationsmodelle. In vielen unterschiedlichen Industriezweigen werden verfahrenstechnische Anlagen zur Produkti- on benötigt. Neben der klassischen Chemie sind beispielsweise die pharmazeutische Industrie, Nahrung- und Genussmittelindustrie und der Bereich Wasser und Abwasser zu nennen. Je nach Anwendungsfall sind für die Simulation domänenspezifische Modelle und Simulatoren im Einsatz. Nicht zuletzt ist zu nennen, dass jede verfahrenstechnische Anlage im Detail ein Unikat darstellt. The construction of a facility involves different trades, all of which have their own models and simulators. The operation of the simulators and the determination of the application limits The models require a deep understanding of the trades. Depending on the application and the test scenario, the necessary simulation models often vary. Process engineering plants are required for production in many different branches of industry. In addition to classical chemistry, for example, the pharmaceutical industry, food and beverage industry and the field of water and wastewater are mentioned. Depending on the application, domain-specific models and simulators are used for the simulation. Last but not least, every procedural plant is unique in its detail.
Bisher werden zur Anlagensimulation notwendige Modelle oftmals neu entwickelt, unabhängig davon, dass in der Planung bereits Modelle entstanden sind. Zum Einsatz kommt dann meist nur ein Simulationswerkzeug mit einem Modell für die gesamte Anlage. Bestehende Modelle und Simulatoren werden dann nicht mehr eingesetzt. Sollen dennoch beispielsweise aus der Planung vorhandene Modelle weiter verwendet werden, so müssen diese in passende Formate transformiert werden. In automatisierter Weise gelingt dies nur selten. Eine manuelle Übertragung der Modelle ist dagegen zeitintensiv und fehleranfällig. Simulationsmodelle enthalten Prozess-Know-how und beschreiben damit einen wesentlichen Teil des Firmenkapitals des Anlagenbetreibers. Diese Modelle werden entsprechend unter Verschluss gehalten, um das Wissen vor Nachahmern zu schützen. Für eine Simulation steht dann lediglich das von außen erkennbare Verhalten nach Art einer Black Box zur Verfügung . So far, models required for system simulation are often newly developed, regardless of the fact that models have already been developed in the planning. Usually only a simulation tool with a model for the entire system is used. Existing models and simulators will no longer be used. If, for example, existing models are still to be used from the planning, they must be transformed into suitable formats. In an automated way, this rarely succeeds. Manual transmission of the models, however, is time-consuming and prone to error. Simulation models contain process know-how and thus describe a substantial part of the capital of the plant operator. These models are kept under lock and key to protect the knowledge from imitators. For a simulation then only the externally recognizable behavior in the manner of a black box is available.
Um bestehende Modelle mit den unterschiedlichen domänenspezifischen und gewerkespezifischen Simulatoren nutzen zu können, wird versucht, die Simulationswerkzeuge zu koppeln. Eine Punkt-zu-Punkt-Kopplung zwischen zwei Simulatoren löst das Problem nur singulär. Eine derartige Lösung ist sehr statisch und oftmals nur für einen speziellen Anwendungsfall geeignet. Änderungen der Randbedingungen bewirken eine Programmänderung der Kopplung. Modelländerungen oder gar Modellrekonfigura- tionen zur Simulationslaufzeit sind vor diesem Hintergrund kaum realisierbar. Zur Koordination der an einer Co-Simula- tion beteiligten Simulatoren und zum Datenaustausch wird eine zentrale Ablaufsteuerung benötigt, die durch ihren proprietären Charakter test- und anwendungsfallbedingt diversen Anpas- sungen unterworfen ist. Ein sehr wichtiger Bestandteil im Zusammenspiel der beteiligten Simulatoren ist die Vermeidung oder zumindest Erkennung einer Echtzeitverletzung. In order to be able to use existing models with the different domain-specific and trade-specific simulators, an attempt is made to couple the simulation tools. A point-to-point link between two simulators only solves the problem singularly. Such a solution is very static and often suitable only for a specific application. Changes to the boundary conditions cause a program change in the coupling. Model changes or even model reconfigurations for the simulation runtime are against this background hardly realizable. To coordinate the simulators involved in a co-simulation and to exchange data, a central sequential control system is required, which, due to its proprietary character, is subject to various adaptations due to test and application circumstances. A very important component in the interaction of the participating simulators is the avoidance or at least detection of a real-time violation.
Der Erfindung liegt die Aufgabe zugrunde, ein Werkzeug und ein Verfahren zur Simulation einer technischen Anlage zu schaffen, die auf einfache Weise ein verbessertes Zusammenspiel von mehreren, an der Simulation beteiligten Simulatoren ermöglichen . Zur Lösung dieser Aufgabe weist das neue Werkzeug der eingangs genannten Art die in Anspruch 1 angegebenen Merkmale auf. Vorteilhafte Weiterbildungen des Werkzeugs sind in den abhängigen Ansprüchen, ein Verfahren zur Simulation einer technischen Anlage in Anspruch 10, ein Computerprogramm und ein digitales Speichermedium in den Ansprüchen 11 bzw. 12 beschrieben . The invention has for its object to provide a tool and a method for simulating a technical system, which allow in a simple way an improved interaction of several simulators involved in the simulation. To solve this problem, the new tool of the type mentioned in the features specified in claim 1. Advantageous developments of the tool are described in the dependent claims, a method for simulating a technical system in claim 10, a computer program and a digital storage medium in claims 11 and 12, respectively.
Die Erfindung hat den Vorteil, dass unterschiedlichste gewerkespezifische und domänenspezifische Simulationsmodelle und Simulatoren jeweils als Komponenten einer Simulatorinstanz zusammenspielen können. Dadurch wird es möglich, eine technische Anlage unter gesamtheitlichen Gesichtspunkten zu modellieren und zu simulieren. Dabei ist in vorteilhafter Weise keine zentrale Ablaufsteuerung zur Koordination der an der Simulation beteiligten Komponenten erforderlich, die einen erhöhten Kontroll- und Kommunikationsaufwand bedeuten würde. Vielmehr wird der Ablauf durch die Bearbeitung der Daten von den Komponenten entsprechend den im Datenfluss festgelegten Komponentenabhängigkeiten gesteuert, so dass von einem daten- flussgesteuerten Ablauf gesprochen werden kann. The invention has the advantage that a wide variety of industry-specific and domain-specific simulation models and simulators can each interact as components of a simulator instance. This makes it possible to model and simulate a technical system from a holistic point of view. In this case, no central sequence control for coordinating the components involved in the simulation is required in an advantageous manner, which would mean increased control and communication effort. Rather, the process is controlled by the processing of the data from the components according to the component dependencies specified in the data flow, so that it is possible to speak of a data flow-controlled process.
In einer vorteilhaften Weiterbildung haben die Simulationszyklen eine nahezu konstante Zyklendauer und eine Komponente ist als so genannter Master dazu ausgebildet, Simulationszyk- len zu starten, indem jeweils eine Zeitscheibenspeicherzelle, die einem Eingang einer Komponente zugeordnet ist, auf den Zustand „nicht verarbeitet" gesetzt und den Komponenten die jeweils gültige Systemzeit mitgeteilt wird. Bei nahezu kon- stanter Zyklendauer werden die modellbasierten Berechnungen der Komponenten vereinfacht und Simulationsberechnungen können in den Komponenten in einfacher Weise an Schwankungen der Zyklendauer angepasst werden. Im Normalfall, das heißt, wenn keine Echtzeitverletzung vorliegt, befindet sich die Zeitscheibenspeicherzelle in dem Zustand „verarbeitet", bevor durch den Master ein neuer Simulationszyklus gestartet wird. Wird jedoch bei einer Echtzeitsimulation durch den Master versucht, einen neuen Simulations- zyklus einzuleiten, obwohl sich die Zeitscheibenspeicherzelle noch im Zustand „nicht verarbeitet" befindet, liegt eine Echtzeitverletzung vor und wird als Fehler angezeigt. Obwohl die Abarbeitung der Simulation durch die beteiligten Simulatoren nicht von einer zentralen Ablaufsteuerung kontrolliert wird, können durch diese Vorgehensweise Echtzeitverletzungen in besonders effektiver und einfacher Weise detektiert und gemeldet werden, die ansonsten möglicherweise unerkannt bleiben würden und ein unkontrolliertes Simulatorverhalten zur Folge hätten. In an advantageous development, the simulation cycles have a nearly constant cycle duration and a component is designed as a so-called master to simulate simulation cycles. In each case, a time slice memory cell assigned to an input of a component is set to the status "not processed" and the components are informed of the valid system time.With virtually constant cycle time, the model-based calculations of the components are simplified and simulation calculations In the normal case, that is, if there is no real-time violation, the time-slot memory cell is in the "processed" state before a new simulation cycle is started by the master. However, if a real-time simulation by the master attempts to initiate a new simulation cycle, even though the time slice memory cell is still in the "not processed" state, there is a real-time violation and it is displayed as an error, although the simulators involved do not process the simulation Controlled by a central flow control, real-time violations can be detected and reported in a particularly effective and simple manner by this procedure, which would otherwise remain undetected and would result in an uncontrolled simulator behavior.
In einer weiteren vorteilhaften Ausgestaltung ist zur Hinterlegung des auszuführenden Datenflusses eine so genannte Managerkomponente vorgesehen, in welcher der Datenfluss als eine Liste von Abbildungen von jeweils einem Komponentenausgang auf einen oder mehrere Komponenteneingänge abgespeichert ist, wobei die Abbildungen zusätzlich die dem Komponenteneingang bzw. den Komponenteneingängen jeweils zugeordnete Speicherzelle kennzeichnen. Die datenflussorientierte Ablaufsteuerung kann damit einfacher verwaltet werden, da in derselben Liste die den Komponenteneingängen zugeordneten Speicherzellen und Datenverbindungen hinterlegt sind. In a further advantageous refinement, a so-called manager component is provided for storing the data flow to be executed, in which the data flow is stored as a list of images of in each case one component output on one or more component inputs, wherein the illustrations additionally show the component input or the component inputs, respectively Identify associated memory cell. The data flow-oriented sequence control can thus be managed more easily since the memory cells and data connections assigned to the component inputs are stored in the same list.
Bei Verwendung eines geeigneten Frameworks zur Implementierung des Werkzeugs können Komponenten einer Simulatorinstanz zur Laufzeit hinzugefügt, entfernt oder ausgetauscht werden. Damit beim Austausch von Komponenten keine Inkonsistenzen, zum Beispiel Sprünge von Ausgangswerten, entstehen, ist es bei Komponenten mit Gedächtnis, zum Beispiel wenn eine mo- dellbasierte Berechnung einen Integrator aufweist, notwendig, den Zustand der Komponente vor dem Austausch abzuspeichern, um ihn anschließend übergangsfrei wieder herstellen zu können. In vorteilhafter Weise kann der dazu erforderliche Zu- standsspeicher ebenfalls in der Managerkomponente realisiert werden. When using a suitable framework to implement the tool, components of a simulator instance can added, removed or replaced at runtime. In order to avoid inconsistencies in the exchange of components, for example jumps in output values, it is necessary for components with memory, for example if a model-based computation has an integrator, to save the state of the component before replacement, and then to transition it to be able to restore. In an advantageous manner, the requisite storage required for this purpose can likewise be realized in the manager component.
In einer besonders vorteilhaften Ausgestaltung ist eine Komponente zur Simulationskopplung vorgesehen, die zur Anwendung von beliebigen Anlagensimulatoren an die Simulatorinstanz ge- eignet ist oder die Verwendung von bereits vorhandenen und spezifischen Anlagenmodellen unterstützt. Komponenten zur Simulationskopplung sind daher nicht nur zur Anbindung von Anlagensimulatoren, sondern auch zur Anbindung von anderen Anwendungen, beispielsweise ausführbaren Modellen, geeignet. Ausführbare Modelle können unter anderem von verschiedenenIn a particularly advantageous embodiment, a component for simulation coupling is provided, which is suitable for the application of any plant simulators to the simulator instance or supports the use of existing and specific plant models. Components for simulation coupling are therefore not only suitable for the connection of plant simulators, but also for the connection of other applications, such as executable models. Executable models may include different ones
Simulatoren generiert oder einfach von Hand in einer beliebigen Programmiersprache entwickelt werden. Simulators are generated or simply developed by hand in any programming language.
Sofern die Schnittstelle eines anzubindenden Anlagensimula- tors oder eines ausführbaren Modells nicht in der Programmiersprache Java vorliegt, sondern in C/C++, kann in vorteilhafter Weise das Java Native Interface (JNI) zur Anbindung an die Komponente zur Simulationskopplung genutzt werden. Dieses ist in vorteilhafter Weise nicht an plattformspezifische Funktionen, zum Beispiel Windows-Shared-Memory, gebunden. If the interface of a system simulator or an executable model to be connected is not present in the Java programming language, but in C / C ++, the Java Native Interface (JNI) can advantageously be used for connection to the component for simulation coupling. This is advantageously not bound to platform-specific functions, for example Windows shared memory.
In vorteilhafter Weise wird eine Verteilung von Simulator- Komponenten auf mehrere Simulatorinstanzen ermöglicht, wenn jede Instanz mit einer Komponente zur Simulationskopplung Re- mote versehen ist, durch welche die Kopplung zwischen den Instanzen realisiert werden kann. Advantageously, a distribution of simulator components on several simulator instances is made possible if each instance is provided with a component for simulation coupling remotes, by means of which the coupling between the instances can be realized.
Prinzipiell sind verschiedene Runtime-Frameworks zur Realisierung des Simulationswerkzeugs geeignet, zum Beispiel das Service-Oriented-Framework (SOF) . Als besonders vorteilhaft hat sich jedoch die Realisierung einer Simulatorinstanz als Co-Simulationsframework auf der OSGI -Serviceplattform erwiesen. Alle Komponenten werden als so genannte Bundles von ei- nem OSGI -Framework dynamisch eingebunden. Das OSGI -Framework basiert auf der Programmiersprache Java und ist ein modularer und komponentenorientierter Softwarestandard, dessen Dienste lokal und netzwerkweit durch ein dynamisches Laufzeitsystem angeboten werden können. Dienste werden durch die kleinste modulare Einheit des OSGI -Frameworks, den so genannten In principle, different runtime frameworks are suitable for realizing the simulation tool, for example the Service Oriented Framework (SOF). However, the realization of a simulator instance as a co-simulation framework on the OSGI service platform has proven to be particularly advantageous. All components are dynamically integrated as so-called bundles by an OSGI framework. The OSGI framework is based on the Java programming language and is a modular and component-oriented software standard whose services can be offered locally and network-wide through a dynamic runtime system. Services are provided by the smallest modular unit of the OSGI framework, the so-called
Bundles bereitgestellt. In vorteilhafter Weise können die Bundles eines OSGI -Frameworks dynamisch, das heißt ohne das System anhalten oder neu starten zu müssen, installiert, deinstalliert oder auch aktualisiert werden. Bundles provided. Advantageously, the bundles of an OSGI framework can be dynamically installed, uninstalled, or even updated without having to pause or restart the system.
Die Erfindung wird bevorzugt durch Laden einer geeigneten Software auf eine oder mehrere Recheneinheiten implementiert. Die Erfindung ist damit einerseits auch ein Computerprogramm mit durch einem Computer ausführbaren Programmcodeanweisungen und andererseits ein Speichermedium mit einem derartigen Computerprogramm, also ein Computerprogrammprodukt mit Programmcodemitteln, sowie ein Werkzeug zur Simulation einer technischen Anlage, das mit Recheneinheiten realisiert ist, in deren Speicher als Mittel zur Durchführung der Simulation und seiner Ausgestaltungen ein solches Computerprogramm geladen oder ladbar ist. The invention is preferably implemented by loading suitable software onto one or more arithmetic units. The invention is thus on the one hand also a computer program with executable by a computer program code instructions and on the other hand, a storage medium with such a computer program, so a computer program product with program code means, as well as a tool for simulating a technical system, which is implemented with arithmetic units in their memory as means for Implementation of the simulation and its embodiments such a computer program is loaded or loadable.
Anhand der Zeichnungen, in denen ein Ausführungsbeispiel der Erfindung dargestellt ist, werden im Folgenden die Erfindung sowie Ausgestaltungen und Vorteile näher erläutert. With reference to the drawings, in which an embodiment of the invention is shown, the invention and refinements and advantages are explained in more detail below.
Es zeigen: Show it:
Figur 1 ein Blockschaltbild eines Werkzeugs zur Figure 1 is a block diagram of a tool for
Simulation einer technischen Anlage, Simulation of a technical plant,
Figuren 2A bis 2D ein Komponentennetz in jeweils einem von vier Zuständen zur Veranschaulichung ei- nes ereignisgesteuerten Ablaufs eines Simulationszyklus und FIGS. 2A to 2D show a component network in each case in one of four states for illustrating a nes event-driven execution of a simulation cycle and
Figur 3 einen Ausschnitt eines Komponentennetzes mit nebenläufiger Abarbeitung. 3 shows a section of a component network with concurrent processing.
Das im Folgenden erläuterte Ausführungsbeispiel zeigt ein Werkzeug zur Simulation einer technischen Anlage, welches auf der Basis der Softwareplattform der OSGIAlliance realisiert ist. Alternativ sind auch andere Runtime-Frameworks geeignet, zum Beispiel das so genannte Service-Oriented-Framework The exemplary embodiment explained below shows a tool for simulating a technical system, which is implemented on the basis of the software platform of the OSGIAlliance. Alternatively, other runtime frameworks are suitable, for example the so-called service-oriented framework
(SOF) . Als besonders vorteilhaft hat sich jedoch die Verwendung der Plattform der OSGI Alliance erwiesen. Wie in Figur 1 dargestellt, setzt sich eine Simulatorinstanz 1, die auch als Co-Simulationsframework 1 bezeichnet werden kann, aus unterschiedlichen Komponenten 2...8 zusammen. Die Komponenten 2...8 werden als so genannte Bundles 2...8 von einem OSGI -Framework 9 dynamisch eingebunden. Das OSGI -Framework 9 basiert auf der Programmiersprache Java und ist ein modularer und komponentenorientierter Softwarestandard der OSGI (SOF). However, the use of the OSGI Alliance platform proved particularly advantageous. As shown in FIG. 1, a simulator instance 1, which can also be referred to as a co-simulation framework 1, is composed of different components 2. The components 2 ... 8 are dynamically integrated as so-called bundles 2 ... 8 by an OSGI framework 9. The OSGI framework 9 is based on the Java programming language and is a modular and component-oriented software standard of the OSGI
Alliance, dessen Dienste lokal und netzwerkweit durch ein dynamisches Laufzeitsystem angeboten werden können. Dienste werden durch die kleinste modulare Einheit des Co-Simula- tionsframeworks 1, den so genannten Bundles 2...8, bereitgestellt. Das hat den Vorteil, dass die Bundles 2...8 dynamisch, das heißt ohne das System anhalten oder neu starten zu müssen, installiert, deinstalliert oder auch aktualisiert werden können. Die Komponenten 2...8 der als Co-Simulationsframework realisierten Simulatorinstanz 1 umfassen eine Managerkomponente 2, die auch als Simulationsframeworkmanager bezeichnet werden kann, Komponenten 3, 7 und 8 zur Simulationskopplung, im Folgenden auch als Simulationskopplungen bezeichnet, von welchen die Komponente 8 als Simulationskopplung Remote zur Kopplung der Simulatorinstanz 1 mit einer weiteren Simulatorinstanz 10 dient, sowie Komponenten 4, 5 und 6, welche selbst Modelle von Teilbereichen der technischen Anlage enthalten. Die Komponenten 2...8 weisen in der Figur nicht weiter dargestellte Eingänge und Ausgänge auf und dienen zur modellge- stützten, zyklischen Berechnung von neuen Ausgangswerten in jedem Simulationszyklus in Abhängigkeit von den jeweiligen Eingangswerten. Dabei können interne Modelle, wie bei den Komponenten 4, 5 und 6, externe Modelle 11 und 12, wie bei den Komponenten 3 bzw. 7, oder eine externe Simulatorinstanz 10 bei der Komponente 8, die zur Simulationskopplung Remote dient, Anwendung finden. Alliance, whose services can be offered locally and network-wide through a dynamic runtime system. Services are provided by the smallest modular unit of co-simulation framework 1, the Bundles 2 ... 8. This has the advantage that the bundles 2 ... 8 can be dynamically installed, uninstalled or even updated without having to stop or restart the system. The components 2... 8 of the simulator instance 1 realized as a co-simulation framework comprise a manager component 2, which can also be referred to as a simulation framework manager, components 3, 7 and 8 for simulation coupling, hereinafter also referred to as simulation couplings, of which the component 8 as Simulation coupling Remote for coupling the simulator instance 1 with another simulator instance 10 is used, as well as components 4, 5 and 6, which themselves contain models of sections of the technical system. The components 2... 8 have inputs and outputs which are not shown further in the figure and are used to model supported, cyclic calculation of new output values in each simulation cycle as a function of the respective input values. Internal models, as in components 4, 5 and 6, external models 11 and 12, as in components 3 and 7, or an external simulator instance 10 in component 8, which serves for remote simulation coupling, can be used.
Die Managerkomponente 2 ist für die Verwaltung der Simulator- instanz 1 zuständig und beinhaltet Informationen über Abhängigkeiten der Komponenten 3...8 untereinander sowie über deren Zustände. Durch die Komponentenabhängigkeiten wird die Reihenfolge der Simulationsabarbeitung in Abhängigkeit der Verkettung der Ein- und Ausgänge der Komponenten 3...8 zu einem Datenflusspfad definiert. Unterstützt durch den OSGI -Standard können die Komponenten 3...8 der Simulatorinstanz 1 zur Laufzeit hinzugefügt, entfernt oder ausgetauscht werden. Damit beim Austausch von Komponenten keine Inkonsistenzen, zum Beispiel Sprünge bei den neu berechneten Werten von Ausgängen, entstehen, wird für die Komponenten mit Gedächtnis, beispielsweise für den Zustand eines in einer Komponente enthaltenen Integrators, der Zustand der Komponente vor dem Austausch in einem Zustandsspeicher der Managerkomponente 2 festgehalten, um den Zustand nach Austausch übergangsfrei wieder herstellen zu können. Dieser Zustandsspeicher ist vorteilhaft ebenfalls durch die Managerkomponente 2 realisiert. The manager component 2 is responsible for the management of the simulator instance 1 and contains information about interdependencies of the components 3... 8 with one another and about their states. Due to the component dependencies, the sequence of simulation processing is defined as a function of the concatenation of the inputs and outputs of components 3 ... 8 to form a data flow path. Supported by the OSGI standard, the components 3 ... 8 of the simulator instance 1 can be added, removed or replaced at runtime. In order to avoid inconsistencies when exchanging components, for example jumps in the newly calculated values of outputs, for the components with memory, for example for the state of an integrator contained in a component, the state of the component before the exchange is stored in a state memory Managerkomponente 2 held in order to restore the state after replacement seamlessly. This state memory is advantageously also realized by the manager component 2.
Die Komponenten 3 und 7 zur Simulationskopplung können zur Anbindung von beliebigen Anlagensimulatoren an das OSGI- Framework 9 genutzt werden und unterstützen die Integration von bereits vorhandenen und spezifischen Anlagenmodellen. Als Beispiel ist in Figur 1 durch die Komponente 3 in Figur 1 das Simulationswerkzeug SIMIT, das von der Siemens AG erhältlich ist, als Anlagensimulator 11 angebunden. Simulationskopp- lungskomponenten können jedoch nicht ausschließlich zur Anbindung von Anlagensimulatoren, sondern auch zur Kopplung von anderen Anwendungen, wie beispielsweise ausführbaren Modellen, an das OSGI -Framework 9 genutzt werden. Ausführbare Modelle können beispielsweise von verschiedenen Simulatoren ge- neriert oder einfach von Hand in einer beliebigen Programmiersprache entwickelt werden. In dem dargestellten Ausführungsbeispiel ist das ausführbare Modell 12 durch die Komponente 7 zur Simulationskopplung an das OSGI -Framework 9 ange- bunden. Zur Realisierung einer Kommunikationsverbindung zwischen Komponente 3 und Simulator 11 oder zwischen Komponente 7 und ausführbare Modell 12 sind prinzipiell verschiedene Arten von Schnittstellen verfügbar. Hierzu zählt beispielsweise der OPC (Object Linking and Embedding for Process Control) - Standard, der von vielen Anlagensimulatoren unterstützt wird. Als standardisierte Modellschnittstelle kann beispielsweise eine FMI (Functional Mock-Up Interface) -konforme Simulationskopplung verwendet werden. FMI ist eine standardisierte Components 3 and 7 for simulation coupling can be used to connect any plant simulator to the OSGI Framework 9 and support the integration of existing and specific plant models. As an example, in Figure 1 by the component 3 in Figure 1, the simulation tool SIMIT, which is available from Siemens AG, connected as a system simulator 11. However, simulation coupling components can not only be used to connect to plant simulators, but also to couple other applications, such as executable models, to the OSGI framework 9. For example, executable models can be used by different simulators. be developed or simply developed by hand in any programming language. In the illustrated embodiment, the executable model 12 is connected to the OSGI framework 9 by the simulation coupling component 7. In order to realize a communication connection between component 3 and simulator 11 or between component 7 and executable model 12, various types of interfaces are available in principle. These include, for example, the OPC (Object Linking and Embedding for Process Control) standard, which is supported by many plant simulators. As a standardized model interface, for example, an FMI (Functional Mock-Up Interface) -conforming simulation coupling can be used. FMI is a standardized one
Schnittstelle für rechnergestützte Simulationen, um komplexe Systeme mit einem modellbasierten Ansatz entwickeln zu können. Damit sind Simulatoren in der Lage, ausführbare Modelle, so genannte FMUs (Functional Mock-Up Units) mit einer FMI- Schnittstelle zur Kopplung an andere Modelle zu exportieren. Im gezeigten Ausführungsbeispiel sind zwei Schnittstellen 13 und 14, die zur Anbindung des SIMIT-Simulators 11 bzw. des ausführbaren Modells 12 dienen, als JNI (Java Native Interface) ausgebildet. Das hat den Vorteil, dass die Schnittstellen 13 und 14 für Simulatoren oder Modelle genutzt werden können, die nicht in der Programmiersprache Java vorliegen, zum Beispiel in der Programmiersprache C. Zudem sind sie nicht an plattformspezifische Funktionen, zum Beispiel Windows Shared Memory, gebunden. Interface for computer-aided simulations to develop complex systems with a model-based approach. Simulators are thus able to export executable models, so-called FMUs (Functional Mock-Up Units) with an FMI interface for coupling to other models. In the exemplary embodiment shown, two interfaces 13 and 14, which serve to connect the SIMIT simulator 11 or the executable model 12, are designed as JNI (Java Native Interface). This has the advantage that the interfaces 13 and 14 can be used for simulators or models that are not available in the Java programming language, for example in the C programming language. Moreover, they are not bound to platform-specific functions, for example Windows shared memory.
Um die in Figur 1 dargestellte Verteilung von Simulationskom- ponenten auf zwei Co-Simulationsframeworks 1 und 10, die beide jeweils eine Simulatorinstanz realisieren, zu ermöglichen, ist in der Simulatorinstanz 1 die Komponente 8 zur Simulationskopplung und in der Simulatorinstanz 10 eine weitere Komponente 15 zur Simulationskopplung vorgesehen, die über Kom- munikationsschnittstellen miteinander verbunden sind. Mit derartigen Komponenten zur Simulationskopplung Remote werden der Datenaustausch und die Kommunikation zwischen verschiedenen Simulatorinstanzen rechnerlokal oder netzwerkweit unterstützt. In der jeweiligen Instanz, in der sie sich befinden, repräsentieren sie die jeweils angekoppelte Simulatorinstanz. Beispielsweise wird in Figur 1 die Simulatorinstanz 10 durch die Komponente 8 mit ihren Dateneingängen und Datenausgängen in der Simulatorinstanz 1 repräsentiert. Die Simulatorinstanz 10 weist beispielhaft eine Managerkomponente 16, ein OSGI- Framework 17 und eine Komponente 18 zur Simulationskopplung auf, an welche ein ausführbares Modell 19 über ein Java Nati- ve Interface 20 angekoppelt ist. In die Komponenten 4, 5 und 6 sind in der Programmiersprache Java realisierte Modelle unmittelbar integriert und durch die Anbindung der Komponenten 4...6 an das OSGI-Framework 9 in den Datenfluss integriert. In jeder Simulatorinstanz wird der Ablauf durch die Bearbeitung der Daten von den Komponenten entsprechend den im Daten- flusspfad festgelegten Komponentenabhängigkeiten gesteuert. Gegenüber der alternativen Möglichkeit, in einer zentralen Komponente eine Ablaufsteuerung für die an der Simulation be- teiligten Komponente zu realisieren, hat dies den Vorteil, dass der damit verbundene Kontroll- und Kommunikationsmehraufwand, der die Vorteile des OSGI -Frameworks im Hinblick auf Parallelisierung und Verteilung stark einschränken würde, vermieden wird. Anstelle einer zentralen Ablaufsteuerung wird nun eine ereignisgesteuerte und datenflussorientierte Abarbeitung in Simulatorinstanzen durchgeführt. Jeder Eingang einer Komponente ist ein Vektor, der sowohl den Zustand des Eingangs als auch dessen Wert beinhaltet. Dies wird allgemein in der folgenden Gleichung für einen Eingang Em einer Kompo- nente Kn formuliert: mit Zustand e {θ ; l} .In order to enable the distribution of simulation components shown in FIG. 1 on two co-simulation frameworks 1 and 10, which in each case implement a simulator instance, the component 8 for simulation coupling is in the simulator instance 1 and another component 15 in the simulator instance 10 Simulation coupling provided, which are interconnected via communication interfaces. With such remote simulation coupling components, the data exchange and the communication between different simulator instances are supported computer-localized or network-wide. In the particular instance in which they are located they represent the respectively connected simulator instance. For example, in FIG. 1, the simulator instance 10 is represented by the component 8 with its data inputs and data outputs in the simulator instance 1. By way of example, the simulator instance 10 has a manager component 16, an OSGI framework 17 and a simulation coupling component 18 to which an executable model 19 is coupled via a Java native interface 20. In the components 4, 5 and 6 implemented models are directly integrated in the programming language Java and integrated by the connection of the components 4 ... 6 to the OSGI framework 9 in the data flow. In each simulator instance, the process is controlled by processing the data from the components according to the component dependencies specified in the data flow path. This has the advantage over the alternative possibility of realizing a flow control for the component involved in the simulation in a central component, that the associated control and communication overhead, which the advantages of the OSGI framework with regard to parallelization and distribution severely restricted, is avoided. Instead of a central sequence control, an event-controlled and data-flow-oriented processing is now carried out in simulator instances. Each input of a component is a vector that includes both the state of the input and its value. This is generally formulated in the following equation for an input E m of a component K n : with state e {θ; l}.
Dabei steht der Ausdruck „Wert" zum Beispiel für eine Integer-Variable, einen Vektor oder ein Array von Variablen, die für die Simulationsberechnungen benötigt werden. Der Zustand des Eingangs kann die Werte „Null" für „verarbeitet" und „1" für „nicht verarbeitet" annehmen. Da jede Komponente über mehr als einen Eingang verfügen kann, ist die Menge aller Eingänge in Matrix-Schreibweise darstellbar, wie dies die folgende Gleichung zeigt : For example, the expression "value" stands for an integer variable, a vector, or an array of variables that are needed for the simulation calculations.The state of the input can be "zero" for "processed" and "1" for " not processed. "Since each component is over can have more than one input, the set of all inputs can be represented in matrix notation, as shown by the following equation:
Beispielhaft ist die Formel für die Komponente Kn mit k Eingängen KnEi„.KnEk dargestellt. Im Folgenden wird die ereignisgesteuerte Abarbeitung, deren Reihenfolge sich an dem in einer Managerkomponente abgelegten Datenfluss orientiert, näher erläutert. Die Figuren 2A...2D zeigen verschiedene Zustände eines Komponentennetzes mit drei Komponenten K1( K2 und K3, sowie ein Beispiel eines Datenflus- ses anhand von Verbindungspfeilen zwischen Ausgängen, welche über keinen Zustand verfügen, und Eingängen mit dem jeweils markierten Zustand. Die Eingangszustände sind in Figur 2 mit Kreisen symbolisiert, wobei ein ausgefüllter Kreis einem „nicht verarbeiteten" und ein leerer Kreis einem „verarbeite- ten" Zustand entspricht. Da die in einem Simulationszyklus neu berechneten Ausgangswerte der Komponenten K1( K2 und K3, welche gemäß dem dargestellten Datenfluss übergeben werden, für die Erläuterung der Ablaufsteuerung unerheblich sind, sind diese in Figur 2 der Übersichtlichkeit wegen nicht dar- gestellt. Ereignisgesteuert bedeutet beispielsweise, dass jeder Ausgang mit der Berechnung eines neuen Ausgangswerts diesen im Framework propagiert. Eingänge hören auf die neu bereitgestellten Daten und erkennen somit das neu eingetretene Ereignis, dass die jeweils vorgeschaltete Komponente neue Ausgangsdaten als eigene Eingangsdaten bereitgestellt hat. Da diese Zustandsänderung in einer Realisierung durch Codierung in irgendeiner Form dargestellt werden muss, wird dies im Rahmen der vorliegenden Anmeldung einfach als Zustand einer dem jeweiligen Eingang zugeordneten Speicherzelle bezeichnet. Figur 2A zeigt die Initialisierung der Eingangszustände der Komponenten K1( K2 und K3, die vor Beginn der Simulation durchgeführt wird. Dabei werden alle Eingänge, auf welche Ausgänge von Folgekomponenten im Datenfluss gekoppelt sind, auf den Zustand „nicht verarbeitet" gesetzt. Der Zustand nach der Initialisierung ist in Figur 2A dargestellt. Figur 2B zeigt den Zustand unmittelbar nach der Einleitung eines Simulationszyklus durch ein Zeitscheibenereignis, bei welchem der bisher nicht gesetzte Eingang ΚχΕχ durch Auflegen einer Zeit- scheibe gesetzt wurde. Eine Zeitscheibe ist wie alle anderen Komponenteneingänge ein Vektor, bestehend aus dem jeweiligen Zustand und einem Wert, wobei als Wert hier die aktuelle Systemzeit übergeben wird. In Figur 2B sind alle Eingänge der Komponente Κχ im Zustand „nicht verarbeitet". Erst wenn der Zustand aller Eingänge einer Komponente den Wert „1", das heißt den Zustand „nicht verarbeitet", angenommen hat, werden neue Ausgangswerte für ihre Ausgänge berechnet und der im Datenfluss nächsten Komponente bereitgestellt. Die folgende Formel beschreibt die Abbildung eines neu berechneten Werts eines Komponentenausgangs auf den Eingang der Folgekomponente : By way of example, the formula for the component K n with k inputs K n Ei ".K n E k is shown. In the following, the event-driven execution, the sequence of which is based on the data flow stored in a manager component, is explained in more detail. FIGS. 2A-2D show different states of a component network with three components K 1 ( K 2 and K 3 , as well as an example of a data flow based on connecting arrows between outputs which have no state and inputs with the respective marked state The input states are symbolized by circles in Figure 2, where a filled circle corresponds to a "not processed" and an empty circle corresponds to a "processed" state Since the initial values of the components K 1 ( K 2 and K 3 , which are transferred in accordance with the illustrated data flow, are irrelevant to the explanation of the sequence control, these are not shown for the sake of clarity in FIG 2. Event-controlled means, for example, that each output propagates in the framework with the calculation of a new output value listen to the newly provided data and thus recognize the new egg occurred event that the respective upstream component has provided new output data as its own input data. Since this state change must be represented in an implementation by coding in some form, this is simply referred to in the context of the present application as the state of a memory cell assigned to the respective input. 2A shows the initialization of the input states of the components K 1 ( K 2 and K 3) , which is carried out before the start of the simulation, whereby all inputs, to which outputs of follower components in the data flow are coupled, are set to the state "not processed". The state after the initialization is shown in Figure 2A Figure 2B shows the state immediately after the initiation of a simulation cycle by a time slice event in which the previously not set input ΚχΕχ was set by placing a time slice a vector, consisting of the respective state and a value, whereby the current system time is transferred here as value.In FIG. 2B, all inputs of the component Κχ are in the state "not processed." Only if the state of all inputs of a component has the value "1 ", that is, the state" not processed ", has assumed new output calculated values for their outputs and provided in the data flow next component. The following formula describes the mapping of a newly calculated value of a component output to the input of the following component:
KnAm (i + 1) >-> Κη+1Ει ι) mit i eine natürliche Zahl. Die Formel bedeutet, dass der Wert des m-ten Ausgangs Am der n-ten Komponente Kn des Simulationszyklus Nr. i+1 abgebildet wird auf beispielsweise den 1-ten Eingang Εχ der (n+1) -ten Komponente Kn+1 im Simulationszyklus i . In Folge der Verarbeitung der Eingänge der Komponente K± wird in den in Figur 2C dargestellten Zustand übergegangen, in welchem die Eingänge der Komponente K2 gesetzt sind. Die Komponente K2 führt ihre Berechnungen durch und es wird in den in Figur 2D dargestellten Zustand des Komponentennetzes ge- wechselt. Nun führt die Komponente K3 eine Neuberechnung des Werts ihres Ausgangs durch. Damit wird der Simulationszyklus beendet und zum in Figur 2A dargestellten Ausgangszustand zurückgekehrt. Erst wenn ein neues Zeitscheibenereignis eintritt, kann mit dem nächsten Simulationszyklus begonnen wer- den. Damit erfolgt, wie bereits oben angedeutet, die Abarbeitung datenflussorientiert in parallelisierbaren Prozessen ohne eine zentrale Ablaufsteuerung zu benötigen. Zur Vermeidung von unzulässigen Berechnungsfolgen wird die zusätzliche Rand- bedingung beachtet, dass ein neuberechneter Ausgangswert erst dann entsprechend dem hinterlegten Datenfluss an einen Eingang übergeben werden darf, wenn der Zustand des Eingangs „0", d. h. „verarbeitet", ist. Ist dies noch nicht der Fall, muss mit der Datenübergabe weiter abgewartet werden. Das „Auflaufen" von Übergaben ist ein Mittel zur Synchronisation der Komponenten untereinander und ist selbst bei Echtzeitsimulationen über einen gewissen Zeitraum hinweg unproblematisch. Soll jedoch bei einer Echtzeitsimulation ein neuer Simulationszyklus durch Auflegen einer Zeitscheibe eingeleitet werden, obwohl sich der Komponenteneingang ΚχΕχ der Zeitscheibe noch im Zustand „1", das heißt „nicht verarbeitet", befindet, liegt eine Echtzeitverletzung vor. Auf diese Weise können EchtZeitverletzungen zuverlässig detektiert und gemeldet werden, ohne dass eine zentrale Ablaufsteuerung für die in den Komponenten durchzuführenden Berechnungen erforderlich wäre. Mit der zuverlässigen Detektion von Echtzeitverletzungen wird in vorteilhafter Weise ein unkontrolliertes Verhalten der zur Simulation genutzten Modelle vermieden. Wie bereits einleitend erwähnt, liegt eine Besonderheit des in der vorliegenden Anmeldung beschriebenen Werkzeugs zur Simulation einer technischen Anlage in der nebenläufigen und verteilten Abarbeitung von Berechnungen in Komponenten, die nun durch Figur 3 veranschaulicht werden soll. Im Unterschied zu einer zentralen Ablaufsteuerung für sequentiell abzuarbeitende Komponenten stellt in der vorliegenden Anmeldung jede Komponente eine Anwendung oder einen eigenständigen Prozess dar, der in dem gezeigten Ausführungsbeispiel als OSGI-Bundle realisiert ist. Es können gleichzeitig mehrere Berechnungen in unterschiedlichen Komponenten erfolgen, sofern sich deren Eingänge zuvor alle im Zustand „1" oder „nicht verarbeitet" befunden haben. Bedingt durch die Parallelisierung erfolgt die Abarbeitung somit sehr effizient. Bei dem in Figur 3 als Beispiel dargestellten Teil eines Datenflusses beginnt ein Ausschnitt eines Simulationszyklus mit der Berechnung eines neuen Ausgangswerts durch eine Komponente K4. Dieser Wert wird an jeweils einen Eingang von drei Komponenten K5, K6 und K7 übergeben, die dadurch gleichzeitig und parallel mit ihren Berechnungen beginnen können. Liegen alle neu berechneten Ausgangswerte der Komponenten K5, K6 und K7 für die entsprechenden Eingänge der Komponente K8 bereit, kann die Komponente K8 vergleichsweise früh ihre modellgestützten Berechnungen durchführen. Darüber hinaus kann beispielsweise die Komponen- te K7 als Komponente zur Simulationskopplung Remote eine weitere Simulatorinstanz repräsentieren. Zusammengefasst ist es also möglich, zur Simulation einer technischen Anlage erforderliche Berechnungen parallel und verteilt auf mehrere Rechner abzuarbeiten, was eine erhebliche Steigerung der Leistungsfähigkeit bedeutet. Selbst wenn für die Abarbeitung der Berechnungen in den Komponenten K5, K6 und K7 unterschiedliche Zeiträume verstreichen würden, bliebe die Gesamtsimulation dennoch konsistent, da durch die zuvor beschriebene da- tenflussorientierte Abarbeitung automatisch eine Synchronisa- tion in der Komponente K8 stattfindet, ohne dass hierzu eine zentrale Ablaufsteuerung erforderlich wäre. K n A m (i + 1)>-> Κ η + 1 Ει ι) where i is a natural number. The formula means that the value of the mth output A m of the nth component K n of the simulation cycle No. i + 1 is mapped to, for example, the 1 th input Εχ of the (n + 1) th component K n + 1 in the simulation cycle i. As a result of the processing of the inputs of the component K ± is transferred to the state shown in Figure 2C, in which the inputs of the component K 2 are set. Component K 2 carries out its calculations and changes to the state of the component network shown in FIG. 2D. Now, component K 3 recalculates the value of its output. Thus, the simulation cycle is terminated and returned to the initial state shown in Figure 2A. Only when a new time slice event occurs can the next simulation cycle be started. the. Thus, as already indicated above, the processing is data flow-oriented in parallelizable processes without the need for a central sequence control. In order to avoid impermissible calculation sequences, the additional boundary condition is observed that a recalculated output value may only be transferred to an input according to the stored data flow if the state of the input is "0", ie "processed". If this is not yet the case, the data transfer must be awaited. The "accumulation" of transfers is a means of synchronizing the components with each other and is unproblematic even with real-time simulations over a certain period of time.However, in a real-time simulation, a new simulation cycle should be initiated by applying a timeslice, even though the component input ΚχΕχ of the time slice is still in the In this way, real-time violations can be reliably detected and reported without the need for central sequencing control for the calculations to be performed in the components, with the reliable detection of "1", ie "unprocessed" In the case of real-time violations, an uncontrolled behavior of the models used for the simulation is advantageously avoided As already mentioned in the introduction, a special feature of the tool described in the present application is the simulation of a technical application In the concurrent and distributed processing of calculations in components, which will now be illustrated by FIG. In contrast to a central sequence control for components to be processed sequentially, in the present application each component represents an application or an independent process, which in the embodiment shown is realized as an OSGI bundle. Several calculations can be performed at the same time in different components, provided that their inputs have all previously been in the state "1" or "not processed". Due to the parallelization, the processing is very efficient. In the part of a data flow shown as an example in FIG. 3, a start begins Part of a simulation cycle with the calculation of a new output value by a component K 4 . This value is transferred to one input each of three components K 5 , K 6 and K 7 , which can thereby begin simultaneously and in parallel with their calculations. If all the newly calculated output values of the components K 5 , K 6 and K 7 are available for the corresponding inputs of the component K 8 , the component K 8 can carry out its model-based calculations comparatively early. In addition, for example, the component K 7 as a component for simulation coupling can represent a further simulator instance remotely. In summary, it is possible to process the calculations required to simulate a technical installation in parallel and distributed over several computers, which means a considerable increase in performance. Even if different time periods would elapse for the processing of the computations in the components K 5 , K 6 and K 7 , the overall simulation would nevertheless remain consistent, since a synchronization takes place automatically in the component K 8 due to the above-described data-flow-oriented processing. without requiring a central flow control would be required.
Zusammenfassend wird also ein neues Simulationswerkzeug und Verfahren beschrieben, in welchem unterschiedliche domänen- spezifische und gewerkespezifische Simulatoren und deren Modelle miteinander gekoppelt werden können. Dabei wird die erforderliche Funktionalität bereitgestellt, um verteilte Simulatoren unter Berücksichtigung der Einhaltung der Echtzeit effizient miteinander zu koppeln. Kann im Ablauf der Simula- tion die Echtzeit nicht eingehalten werden, liefert das Werkzeug eine Meldung über die aufgetretene Verletzung. Zur An- bindung von Modellen oder Simulatoren steht eine große Bandbreite an standardisierten Schnittstellen für das Werkzeug zur Verfügung. Weiterhin können während der Simulation dyna- misch als so genannte Bundles realisierte Simulatoren und Modelle hinzugefügt und entfernt werden. Es wird keine zentrale Ablaufsteuerung für die als eigenständige Prozesse realisierten Komponenten benötigt, durch welche die Leistungsfähigkeit des Werkzeugs erheblich eingeschränkt würde. Für eine prototypische Realisierung des Werkzeugs wurde der Anlagensimulator SIMIT der Siemens AG mit einer Simulatorinstanz gekoppelt. Der Anlagensimulator SIMIT realisierte dabei die Visualisierung des Modells sowie die regel- und steuerungstechnischen Algorithmen zur Füllstandsregelung eines Tanks. Der Tank selbst sowie die Rohrleitungen und die Senso- rik wurden durch Komponenten mit integrierten Modellen innerhalb der Simulatorinstanz realisiert. Zur Abarbeitung mehrerer Testfälle wurden unterschiedliche Tankmodelle eingesetzt, die beispielsweise einen idealen und einen undichten Tank darstellten. Um die dynamische Modellrekonfiguration des Co- Simulationsframeworks zu evaluieren, wurden diese Tankmodelle während der mit SIMIT gekoppelten Co-Simulation ausgetauscht. Durch die zuvor beschriebene Managerkomponente mit ihren Eigenschaften blieb in vorteilhafterweise trotz Modellaustausch die Signalintegrität dabei erhalten. In summary, a new simulation tool and method is described in which different domain-specific and trade-specific simulators and their models can be coupled with one another. It provides the functionality required to efficiently couple distributed simulators, taking into account real-time compliance. If real-time can not be maintained in the course of the simulation, the tool provides a message about the injury that has occurred. For connecting models or simulators, a wide range of standardized interfaces is available for the tool. Furthermore, simulators and models realized dynamically as so-called bundles can be added and removed during the simulation. There is no need for central sequencing for the components implemented as stand-alone processes, which would severely limit the performance of the tool. For a prototype implementation of the tool, the SIMIT system simulator from Siemens AG was coupled with a simulator instance. The system simulator SIMIT realized the visualization of the model as well as the control algorithms for level control of a tank. The tank itself as well as the pipelines and the sensors were realized by components with integrated models within the simulator instance. For the processing of several test cases different tank models were used, which represented for example an ideal and a leaky tank. In order to evaluate the dynamic model reconfiguration of the co-simulation framework, these tank models were exchanged during the co-simulation coupled with SIMIT. Due to the above-described manager component with its properties, the signal integrity was advantageously retained despite model exchange.
Claims
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/EP2013/055623 WO2014146686A1 (en) | 2013-03-19 | 2013-03-19 | Tool and method for simulating a technical installation |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/EP2013/055623 WO2014146686A1 (en) | 2013-03-19 | 2013-03-19 | Tool and method for simulating a technical installation |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2014146686A1 true WO2014146686A1 (en) | 2014-09-25 |
Family
ID=48236857
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/EP2013/055623 Ceased WO2014146686A1 (en) | 2013-03-19 | 2013-03-19 | Tool and method for simulating a technical installation |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2014146686A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114518734A (en) * | 2022-02-17 | 2022-05-20 | 杭州和利时自动化有限公司 | Control model integration method, device and medium thereof |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20090089030A1 (en) * | 2007-09-28 | 2009-04-02 | Rockwell Automation Technologies, Inc. | Distributed simulation and synchronization |
| US20100017179A1 (en) * | 2000-06-19 | 2010-01-21 | Oleg Wasynczuk | Distributed simulation |
| DE102009043425A1 (en) * | 2009-09-29 | 2011-04-07 | Siemens Aktiengesellschaft | Simulation system and method for a technical plant |
| DE102010060924A1 (en) * | 2009-12-01 | 2011-06-09 | Emerson Process Management Power & Water Solutions, Inc. | Improved distributed industrial process simulation system |
| US20120084062A1 (en) * | 2010-10-01 | 2012-04-05 | Rockwell Automation Technologies, Inc. | Dynamically selecting master clock to manage non-linear simulation clocks |
-
2013
- 2013-03-19 WO PCT/EP2013/055623 patent/WO2014146686A1/en not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100017179A1 (en) * | 2000-06-19 | 2010-01-21 | Oleg Wasynczuk | Distributed simulation |
| US20090089030A1 (en) * | 2007-09-28 | 2009-04-02 | Rockwell Automation Technologies, Inc. | Distributed simulation and synchronization |
| DE102009043425A1 (en) * | 2009-09-29 | 2011-04-07 | Siemens Aktiengesellschaft | Simulation system and method for a technical plant |
| DE102010060924A1 (en) * | 2009-12-01 | 2011-06-09 | Emerson Process Management Power & Water Solutions, Inc. | Improved distributed industrial process simulation system |
| US20120084062A1 (en) * | 2010-10-01 | 2012-04-05 | Rockwell Automation Technologies, Inc. | Dynamically selecting master clock to manage non-linear simulation clocks |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114518734A (en) * | 2022-02-17 | 2022-05-20 | 杭州和利时自动化有限公司 | Control model integration method, device and medium thereof |
| CN114518734B (en) * | 2022-02-17 | 2023-11-03 | 杭州和利时自动化有限公司 | Control model integration method, device and medium thereof |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP2685382B1 (en) | Method and device for producing and testing a control device program | |
| WO1997012301A1 (en) | Drafting method for industrial and building systems and computer-controlled planning system for use in said method | |
| DE102014110096A1 (en) | Test device for real-time test of a virtual control device | |
| EP2330469B1 (en) | Method and development environment for generating an executable total control program | |
| EP3451202B1 (en) | Method for generating a model of a technical system which can be run on a test device and a test device | |
| EP2718774A1 (en) | Simulation system, method for carrying out a simulation, guidance system and computer program product | |
| DE102018110018A1 (en) | A method for providing an integrated process for the ECU development and simulation device for the ECU development | |
| DE10327614A1 (en) | Apparatus and method for programming and / or executing programs for industrial automation systems | |
| DE102014219711A1 (en) | Method for power plant simulation | |
| EP3058425A1 (en) | Device and method for changing operating settings of a technical installation | |
| DE102009002432A1 (en) | Method for the feedback-based optimization of a measurement data life cycle in joining processes in production | |
| WO2014154281A1 (en) | Object-based configuration of a process and/or production installation | |
| WO2014146686A1 (en) | Tool and method for simulating a technical installation | |
| EP2517129B1 (en) | Method and system for calculating the state variables of a hybrid differential-algebraic process model | |
| WO2017029087A1 (en) | Method for automatically creating a process model and device for performing the method | |
| EP2191338B1 (en) | System for writing a simulation program | |
| EP4010765B1 (en) | System and method for providing a digital simulation of an installation, and corresponding computer program product | |
| DE102017212612A1 (en) | Method for automatically generating tests for the software of a vehicle | |
| DE102013010783A1 (en) | Method and control device for testing an automation solution based on a PLC control | |
| DE102018207172A1 (en) | Method and apparatus for simulating a cyber-physical system | |
| DE102016121788A1 (en) | Configuration of an automation system | |
| WO2012013203A1 (en) | System and method for distributing and exchanging elements for planning and/or for operating automation operating equipment | |
| EP3432139B1 (en) | A computer implemented method for generating computer program code | |
| EP3696621A1 (en) | Computer-implemented method and device for controlling a modular technical system | |
| EP1958101B1 (en) | System and method for the automatic verification of planning results |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13719739 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 13719739 Country of ref document: EP Kind code of ref document: A1 |