WO2001093114A2 - Method for optimizing the execution time for conversions of state or operational sequence oriented models into real solutions - Google Patents

Method for optimizing the execution time for conversions of state or operational sequence oriented models into real solutions Download PDF

Info

Publication number
WO2001093114A2
WO2001093114A2 PCT/EP2001/005536 EP0105536W WO0193114A2 WO 2001093114 A2 WO2001093114 A2 WO 2001093114A2 EP 0105536 W EP0105536 W EP 0105536W WO 0193114 A2 WO0193114 A2 WO 0193114A2
Authority
WO
WIPO (PCT)
Prior art keywords
model
condition
chain
networks
processing
Prior art date
Application number
PCT/EP2001/005536
Other languages
German (de)
French (fr)
Other versions
WO2001093114A3 (en
Inventor
Jens V. Aspern
Original Assignee
Aspern Jens V
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 Aspern Jens V filed Critical Aspern Jens V
Priority to AU2001267443A priority Critical patent/AU2001267443A1/en
Publication of WO2001093114A2 publication Critical patent/WO2001093114A2/en
Publication of WO2001093114A3 publication Critical patent/WO2001093114A3/en

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/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • 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/23002Petrinet
    • 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/23257Grafcet
    • 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/23267Program derived from sequence time diagram and stored in table
    • 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/34325Speed up, optimize execution by combining instructions belonging together
    • 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

  • the chain optimization (Ko), according to claim 2 is applicable to all images of a model and can be used simultaneously with the element optimization (Eo), according to claim 3, whereby the strategies according to claim 5 change arbitrarily within one image, multiple times and simultaneously are.
  • the flag can also be a FIFO, a counter or another mechanism.
  • the flag is used here only as an example. Control network elements can also function as a flag.
  • co-flags even if they can be represented by model elements, are not explicitly specified in the model, since they only take on the function of code optimization. Possibly. Explicit representation in software tools as an operating mode of these tools can be helpful.
  • An efficient variant provided that the programming language and / or the operating system and / or the development environment supports this, is that a predecessor element (when switching) all the successor elements, which can then cause a change of state due to the model state, in a dynamic list entries and removes himself and possibly others from this list.
  • the list contains all model elements that have to be edited due to the model state, or do not have to be edited, depending on which is more useful. Often the administrative effort of the lists is very high, so that the benefits are only available from a certain network size. In this case, the flags can represent a pointer or similar mechanisms.
  • the upper program code (example 1) shows that only the program lines up to the RET command are subject to constant processing, while the part from T2 to the last line is only processed if the co-flag allows it.
  • the lower program code is completely (every line) subject to processing.
  • the element optimization (Eo), according to claim 3, is essentially suitable for PLC and PLC-like processing mechanisms.
  • the model elements responsible for the state transitions it can also be used for states (magnifying glasses) and actions (IEC61131) and other model elements.
  • the individual model elements are structured ( Figure 2). That is, the switching condition (or similar mechanisms) is determined by the switching action (or similar
  • Example 1 Illustration of the model from Figure 1 with the PLC programming language AWL standardized with DIN EN 61131-3. above with Ko and below without Ko (the necessary variable declaration has been dispensed with).
  • the latter is only processed if the condition of the switching action is fulfilled and the so-called switching (or similar) takes place. This could be done, for example, with a jump distributor, a list or a table.
  • Example 2 Realized implementation of the model element T1 from Figure 3 (above with Eo and below without Eo) with the PLC programming language STL, standardized with DIN EN 61131-3
  • mapping of the elements of the same model can include both mapping variants.
  • the entire network optimization (Ko and Eo) can also be represented as a tree structure, in which elements of lower levels are managed (executed) via more control structures than elements in higher levels. Elements of the highest level are always processed.
  • control tasks are implemented by means of a program generator and / or compiler or assembler, interpreter, by a special operating system or runtime libraries (runtime), such as in the case of a PLC (programmable logic controller) and / or languages close to the processor become.
  • the control tasks also include business management, organizational or other control tasks.
  • a source code (solutions) generated with this invention is therefore in particular Basis for a program, the processing time (time it takes a processor to execute it) is significantly reduced. This is of particular interest for the real-time capability of control solutions (automation technology).
  • the actual speed increase depends on the topology of the model and ultimately on the selected platform (compiler tool, hardware on which the control solution is implemented, the chosen programming language, such as C, C ++, Pascal, assembler, programming languages of DIN EN 61131-3 , such as STL, ST and possibly more).
  • Petri nets (short: Netz or Petri net (PN)) have been known since 1962 (automata theory has been around for a long time) as a typical representative of state- or process-oriented models for discrete processes. There are various variants and classes of theories, which are discussed in detail in various publications. The theory finds practical, industrial use only in exceptional cases, although the number of applications has increased in recent years. In control technology, however, these models can be used effectively regardless of the platform.
  • causal chains [vA93], [vA94], [A94] and [F94] are mapped by stringing together the program code of the chains without additional checking of the need for general processing.
  • the mapping to high-level languages according to claim 2 is therefore subject to the claim here.
  • Linear models are usually processed completely by the processor system (entire model), so that the causal structure of the model topology is not taken into account.
  • a change of state in a model can only take place on active states (marked states).
  • the topology of the networks (Petri networks, SFC, Grafcet, state machines, automatons, IEC 61499), which assume certain (marking) states, gives rise to a number of options for minimizing the computing time required.
  • the network elements here essentially transitions, but also actions or step-by-step magnifiers
  • a network element itself or its processing time in particular if it is implemented in STL, can be significantly shortened in one case or another. The logical program length is reduced.
  • the target language of the coding offers (e.g. dynamic jump targets) Frequency of processing (actions twice, transitions once) Frequency of switching or non-switching of transitions Number the standard pre-edges, other pre-edges, post edges, scope of other switching conditions, scope of the instruction block
  • Period of time that fulfills or does not meet a partial condition of the switching condition (very different, almost the same) (time interval between the fulfillment of a partial condition and the fulfillment of the entire condition)
  • Dead networks or dead subnetworks (BK e.g. initialized or network hierarchies) Degree of conflict as small as possible Number of conflicts as small as possible
  • Control systems process their programs so quickly that in the process the ratio of simultaneous events to the sum of the possible process events is often significantly smaller than the ratio of the PLC cycles without status change to the sum of the PLC cycles with status change.
  • PLC Physical Control systems
  • combinations of all strategies can be used simultaneously, individually and repeatedly to map (code) a network on a target system, using all system and language properties.
  • Edit instruction block of specialized transition (delete, instruction ..)
  • instruction block and / or the switching operation or even the entire transition can also be accommodated in separate program modules. It is suitable to implement the switching operation or the associated instruction block using subroutine techniques, as is supported by some environments.
  • the 3 source parts of the switching condition are designated with conditions 1 to 3.
  • a further division in the given individual case is possible and may make sense.
  • the switching operation consists of code for the implementation
  • switching operation the source part of the switching operation is represented by the box, titled "switching operation”.
  • parts can be omitted and additional source parts can also be added.
  • Transformation of coding suggestions from STL to ST or other languages follow simple rules. Jumps are to be replaced by IF instructions, etc.
  • Network elements are all elementary elements from which a network can consist, such as nodes (space and transition), edges, task, action, step magnifiers, etc.
  • Linear coding is the standard coding.
  • a special feature is that the time required for switching is just as long as that for not switching.
  • the splitting breaks down the complete switching condition into partial conditions.
  • the link result of each subcondition acts on a jump that ends the processing if the transition condition is not met.
  • the non-switching of a transition T n is considerably shortened in that a program branch (conditional jump) decides after a partial condition whether the next transition T n + 1 or further program lines of the transition T n are subject to processing.
  • the splitting could almost be interpreted as a decomposition of a transition into partial transitions. Each sub-transition actually only represents a sub-condition.
  • the order in which the individual conditions of the switching condition are placed in the source can be important. Automatically generated code should choose an order in which the partial condition runs from the shortest processing time to the longest.
  • the jump distributor (SpV) first introduces a virtual place (transition flag) for each transition.
  • the saving effect is achieved by processing only the higher-level branch distributor (i.e. 2 instructions per transition; flag query and branch). Only the transition whose flag is set is subject to further testing of the switching condition. In principle, the separate coding can then additionally be implemented.
  • transition If the transition is not switchable, there is a return to the jump distributor. In the event that it is switchable, there are 2 variants, a) to switch back to the SPV after switching and b) to check the switching condition of the subsequent transition. However, the latter only makes sense if the successor transition may become switchable by switching its predecessor transition. The switching action of a transition in the jump distributor must reset its flag and set the flags of the successor transitions that could become switchable by switching according to the network topology. These are all transitions that have a successor position to the switched transition as a predecessor position.
  • a special form of SpV can be useful for coding special network classes or certain network topologies.
  • Networks that are referred to as so-called one-brand networks have only one brand in the entire network.
  • transition whose predecessor location is owned by the brand cannot switch, then no other transition can switch in this network. For coding, this means that if a transition is not switched, the rest of the code does not have to be processed either. There is no new marking that enables switching.
  • an IEC 61131 SFC network is to underpin the discussion. It has a chain (10 steps) followed by a simultaneous branching (40 steps in total).
  • the chain (10 steps) is a typical representative for a single-brand area, so it can be ESpV-coded 3 . Chains are interpreted as independent ESpV.
  • the jump does not take place at the end of the network but at the beginning of the simultaneous branching.
  • the coding of the simultaneous branch also consisting of two chains, also uses a jump distributor.
  • This strategy is based on the fact that there is always a signal that the last one contributes to the fulfillment of the switching condition. It is often the same signal.
  • Each edge and possibly also the additional condition (e.g. comparison) that belong to a switching condition are considered as signals. For example, there is a transition with a predecessor position (engine turns) and an input (limit switch reached). Here it is usually the input that ultimately triggers the switching.
  • the event signal of a transition is the first to be queried. Since it only occurs for a short time and it is the last signal that is still missing to fulfill the switching condition for switching.
  • the signal (which should not exceed 2 signals), which ultimately triggers the switching, is the first condition
  • the rest of the condition from which the signal was extracted may remain as an independent sub-condition with a program branch, or b) the rest is connected to another sub-condition to form a new one.
  • condition groups precants, signal precursors, additional condition
  • the signal is in place of the flag and the flag can be omitted entirely. This also reduces the time required to implement switching, since flag management is no longer necessary.
  • the signals are reorganized to subconditions.
  • the last condition often contains the most complex conditions (eg comparators) and / or signals that are actually always met in terms of the switching condition. The number of conditions is arbitrary.
  • An unbranched chain is only processed if there is at least one mark in the chain. Efficient localization of existing brands within a chain uses special transitions, the chain entry and exit exits.
  • the entry transition creates a brand in this chain and at the same time sets a chain flag. If several brands can occur, a counter is used as a flag. Chain processing is only to be carried out if the chain flag is set or if the chain flag is greater than zero. If a mark leaves the chain, the exit transition resets the chain flag or decrements the counter.
  • control network can also be understood as an administration network that is closely linked to the control network.
  • Suitable entry transitions are those whose switching conditions are rarely met. Transitions whose switching condition contains a date, a time, a large delay time or a rather rare process signal may be mentioned here as an example.
  • the segmentation means extends the chain flag to a structured chain flag mechanism and is suitable for very long chains. For this purpose, long chains are divided into areas, the segments. Each segment has its own segment flag. The principle of segment management is the same as that of the chain flag. There are separate entry and exit transitions for each segment. An extreme case of segmentation leads to jump distributor coding of the transitions.
  • chain flag is on the top level, including the first level of the segments.
  • Another segmentation means that a segment controls the segments of its lower level. It then acts like the chain flag that controls the next segment level.
  • Figure 1.9 shows how the behavior of chain optimization (thin using Petri nets) can be designed with simple means. As soon as the first step of a chain or segment is activated by the transition, one or more chain flags are also set. The flag is reset as soon as the last step of the chain or segment is deactivated.
  • a flag (LeerFlag) is used, which indicates whether the steps of the entire chain are deactivated and a flag, which indicates whether a segment (SgFlag1 ... n) has an active state.
  • the empty flag can be dispensed with; it serves to ensure that only one query in the case of a deactivated chain, instead of 3 (SgFlagl ... n). In this case, almost the entire processing time of the chain is saved. The processing time is reduced to almost a third if there is an active step within the chain, assuming that all segments take the same processing time.
  • a CASE instruction can also be used. Each transition then represents a CASE case. This means that only one of all transitions of a CASE statement can switch. When switching a transition, it enters its successor transition in the CASE selector.
  • the dispatcher is very complex. It is particularly suitable for networks whose number of transitions that could switch due to the network marking are very much smaller than those of those that are not ready to switch.
  • the basic principle is quite simple. There is a list (e.g. array) of transitions that could switch due to the network marking. Transitions that switch are deleted from this list and enter all transitions in the list that have one of their successor positions as the previous position.
  • the list can consist of jump destinations or pointers.
  • the dispatcher is particularly suitable for implementation directly in the PLC runtime, but can also be implemented in the IEC code.
  • the dynamic jump distributor can replace the simple jump distributor or the dispatcher or supplement it in part. If you replace the entire jump distributor with a variable and a jump command with a dynamic jump destination, each transition, in its switching action, must enter the subsequent transition in the variable instead of managing the transition flags. A segregation can be omitted. The management of parallel switchable transitions must not take place in this way without further measures.
  • the use of dynamic jump distributors for parallel switchable transitions is more complex. Either lists or loops have to be managed or a jump distributor must be available for every possible parallel connection.
  • the splitting, the jump distributor, and the single-mark considerations, as well as the chain flag, the segmentation, possibly the dispatcher and the DSpV are important for the automatic code generation. Semi-automatic fine tuning can also be available.
  • the mechanisms for optimizing transitions can be used to determine the execution. Splitting, fine-tuning over the signal duration and possibly the dispatcher are particularly important.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Devices For Executing Special Programs (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

In order to take topology into account in an appropriate manner when a model is converted, a flag is set when a marker enters a causal chain and re-set when it leaves. This results in a decision criterion for a program branch, ensuring that the chain will only be processed if a marker is located therein. Long causal chains can be divided into areas. Each area is provided with one such flag and is controlled thereby. The model elements are converted into SPS languages, during a transition for example, in the following manner: switching is processed only when necessary, said switching being dependent upon a program branch which occurs downstream from the switchability check . A whole range of other strategies exist, based on various characteristics of the model, the process represented in the model and the target platform. The choice of a strategy can, for the most part, be computer-assisted in terms of design time, running time (optional) and fine tuning (optional), or be manual (optional).

Description

Verfahren zur Ausführungszeitoptimierung für Umsetzungen von zustande- bzw. ablauforientierten Modellen in reale LösungenProcedure for optimizing execution time for the implementation of state- or process-oriented models in real solutions
Beschreibung der Ausführungszeitoptimierung für Umsetzungen von zustands- bzw. ablauforientierten Modellen in reale LösungenDescription of the execution time optimization for the implementation of condition- or process-oriented models in real solutions
Die Kettenoptimierung (Ko), gemäß Patentanspruch 2, ist anwendbar auf alle Abbildungen eines Modells und kann mit der Elementoptimierung (Eo), gemäß Patentanspruch 3, gleichzeitig angewendet sein, wobei die Strategien gemäß Patentanspruch 5 innerhalb einer Abbildung beliebig wechseln, mehrfach und gleichzeitig anzuwenden sind.The chain optimization (Ko), according to claim 2, is applicable to all images of a model and can be used simultaneously with the element optimization (Eo), according to claim 3, whereby the strategies according to claim 5 change arbitrarily within one image, multiple times and simultaneously are.
Ko geht davon aus, daß zusammenhängende Kausalketten (unverzweigte Folge von Modellelementen) in denen es keinen aktiven (markierten) Zustand gibt, nicht bearbeitet werden müssen. Dies begründet sich damit, daß nur von einem aktiven Zustand ein Zustandswechsel ausgehen kann. Ein aktiver Zustand wird aufgefaßt, als ein Zustand der eine Markierung aufweist, die zu mindestens einem Zustandswechsel (schalten einer Transition) beitragen kann. Demnach müssen nur Kausalketten bearbeitet werden, in denen es eine Markierung (Menge aller aktiven Zustände) gibt. Je mehr Modellelemente sich in einer Kausalkette befinden, desto höher ist der Einsparungseffekt. Zur Koordinierung der Ausführung von Kausalketten wird beispielsweise sobald eine Marke in die Kette eintritt ein oder mehrere Flags (versteckter Zustand) (Abbildung 1 (1)) gesetzt. Anhand des Flags ist zu entscheiden, ob die Kette bearbeitet wird oder nicht. Im Moment des Verlassens der letzten Marke einer Kette wird das Flag wieder zurückgesetzt (vgl. Beispiel 1), wodurch die Bearbeitung danach ausbleibt. Das hier verwandte Flag ist eine Variante der Elementverwaltung gemäß Patentanspruch 4.Ko assumes that coherent causal chains (unbranched sequence of model elements) in which there is no active (marked) state need not be processed. The reason for this is that a change of state can only start from an active state. An active state is understood as a state that has a marker that can contribute to at least one change of state (switching a transition). Accordingly, only causal chains need to be processed in which there is a marking (set of all active states). The more model elements are in a causal chain, the greater the savings effect. To coordinate the execution of causal chains, for example, as soon as a brand enters the chain, one or more flags (hidden state) are set (Figure 1 (1)). The flag is used to decide whether the chain is processed or not. As soon as the last mark of a chain is left, the flag is reset (see example 1), which means that the processing does not take place. The flag used here is a variant of element management according to claim 4.
Können in einer Kausalkette mehrere Zustände markiert sein, kann das Flag auch ein FIFO, ein Zähler oder ein anderer Mechanismus sein. Das Flag wird hier nur beispielhaft verwendet. Elemente des Steuerungsnetzes können zusätzlich auch als Flag fungieren.If several states can be marked in a causal chain, the flag can also be a FIFO, a counter or another mechanism. The flag is used here only as an example. Control network elements can also function as a flag.
Eine Erweiterung dieses Prinzips führt zu einem Optimierungsnetz, das die Ausführungsverwaltung des eigentlichen Steuerungsnetz übernimmt.An extension of this principle leads to an optimization network, which takes over the execution management of the actual control network.
Sehr lange Kausalketten können unter dem Gesichtspunkt der gesteigerten Performance über mehrere Ko- Flags (Abbildung 1 (1)) verfügen, die jeweils einen Teil der gesamten Kette kontrollieren, somit wird auch noch ein Einsparungseffekt erzielt, wenn ein aktiver Zustand sich in einem Teil einer Kette befindet. Da der Grad der Optimierung im wesentlichen von der Länge der Kausalketten abhängt und ggf. von der Zeit, die eine Kausalkette markenfrei ist, und der Eigenschaften, die die Zielsprache (z.B. Sprünge mit dynamischen Zielen) bietet, kann eine Berechnung (ggf. empirisch) erfolgen, deren Ergebnis eine Auskunft gibt, ob eine Ko einer Kette lohnt oder nicht. Damit kann die Abbildung eines Modells Ketten mit und ohne Ko enthalten. l.d.R. werden Ko- Flags, auch wenn sie durch Modellelemente dargestellt werden können, nicht im Modell explizit mit angegeben, da sie lediglich die Funktion der Codeoptimierung übernehmen. Ggf. kann die explizite Darstellung jn Software- Werkzeugen (Tools) als eine Betriebsart dieser Tools hilfreich sein. Eine effiziente Variante, sofern die Programmiersprache und/oder das Betriebssystem und / oder die Entwicklungsumgebung dies unterstützt, ist, daß ein Vorgänger- Element (beim Schalten) alle Nachfolger- Elemente, die anschließend aufgrund des Modellzustandes einen Zustandswechsel herbeiführen können, in eine dynamische Liste einträgt und sich selbst und ggf. weitere aus dieser Liste entfernt. Die Liste enthält alle Modellelemente, die Aufgrund des Modellzustandes bearbeitet werden müssen, oder nicht bearbeitet werden müssen, je nach dem was nutzbringender ist. Oft ist der Verwaltungsaufwand der Listen sehr hoch, so daß der Nutzen erst ab einer bestimmten Netzgröße gegeben ist. In diesem Fall können die Flags einen Pointer oder ähnliche Mechanismen darstellen.From the point of view of increased performance, very long causal chains can have several co-flags (Figure 1 (1)), each of which controls part of the entire chain, so that a saving effect is also achieved if an active state is in part of one Chain is located. Since the degree of optimization essentially depends on the length of the causal chains and, if applicable, on the time that a causal chain is brand-free and the properties that the target language offers (e.g. jumps with dynamic goals), a calculation (possibly empirically) the result of which provides information as to whether a knockout from a chain is worthwhile or not. This means that the illustration of a model can contain chains with and without knockout. l.d.R. co-flags, even if they can be represented by model elements, are not explicitly specified in the model, since they only take on the function of code optimization. Possibly. Explicit representation in software tools as an operating mode of these tools can be helpful. An efficient variant, provided that the programming language and / or the operating system and / or the development environment supports this, is that a predecessor element (when switching) all the successor elements, which can then cause a change of state due to the model state, in a dynamic list entries and removes himself and possibly others from this list. The list contains all model elements that have to be edited due to the model state, or do not have to be edited, depending on which is more useful. Often the administrative effort of the lists is very high, so that the benefits are only available from a certain network size. In this case, the flags can represent a pointer or similar mechanisms.
Der obere Programmcode (Beispiel 1 ) zeigt, daß nur die Programmzeilen bis zum Befehl RET der ständigen Bearbeitung unterliegen, während der Teil von T2 bis zur letzten Zeile nur bearbeitet wird, wenn das Ko- Flag es gestattet. Der untere Programmcode unterliegt vollständig (jede Zeile) der Bearbeitung.The upper program code (example 1) shows that only the program lines up to the RET command are subject to constant processing, while the part from T2 to the last line is only processed if the co-flag allows it. The lower program code is completely (every line) subject to processing.
Die Elementoptimierung (Eo), gemäß Patentanspruch 3, ist im wesentlichen für SPS und SPS- ähnliche Bearbeitungsmechanismen geeignet. Läßt sich neben den Modellelementen die für die Zustandsüber- gänge zuständig sind auch für Zustände (Lupen) und Aktionen (IEC61131) und andere Modellelemente anwenden. Dabei erfolgt die Abbildung der einzelnen Modellelemente strukturiert (Abbildung 2). D.h., die Schaltbedingung (oder ähnliche Mechanismen) wird von der Schalthandlung (oder ähnlicheThe element optimization (Eo), according to claim 3, is essentially suitable for PLC and PLC-like processing mechanisms. In addition to the model elements responsible for the state transitions, it can also be used for states (magnifying glasses) and actions (IEC61131) and other model elements. The individual model elements are structured (Figure 2). That is, the switching condition (or similar mechanisms) is determined by the switching action (or similar
Mechanismer i) getrennt.Mechanism i) separately.
T1 :T1:
LD P1LD P1
R P1R P1
S FlagS flag
S P2S P2
S P3S P3
Ko Abfrage: ("Bearbeitung der*)Ko query: ("Processing the *)
LD Flag ("Kausaikette, nur wenn *)LD Flag ("causal chain, only if *)
JMPC T2 (*Flag gesetzt ist*)JMPC T2 (* flag is set *)
Tn:Tn:
LD P2LD P2
AND PnAND Pn
AND Flag (*Nicht unbedingt erforderlich*)AND Flag (* not essential *)
R P2R P2
R PnR Pn
R FlagR flag
S P1S P1
RET ("Logisches Bausteinende*)RET ("Logical module end *)
T2:T2:
LD P3LD P3
R P3R P3
S P4S P4
.... weitere Modellelemente.... further model elements
JMP TnJMP Tn
T1 :T1:
LD P1LD P1
R P1R P1
S P2S P2
S P3S P3
T2:T2:
LD P3LD P3
R P3R P3
S P4S P4
.... weitere Modellelemente.... further model elements
Tn:Tn:
LD P2LD P2
AND PnAND Pn
R P2R P2
R PnR Pn
S P1S P1
Beispiel 1 Abbildung des Modells aus Abbildung 1 mit der SPS- Programmiersprache AWL genormt mit DIN EN 61131-3. oben mit Ko und unten ohne Ko (Auf die notwendige Variablendeklaration wurde verzichtet).Example 1 Illustration of the model from Figure 1 with the PLC programming language AWL standardized with DIN EN 61131-3. above with Ko and below without Ko (the necessary variable declaration has been dispensed with).
Letztere wird nur bearbeitet, wenn die Bedingung der Schalthandlung erfüllt ist und das sogenannte Schalten (oder ähnliches) stattfindet. Dies könnte beispielsweise mit einem Sprungverteiler, einer Liste oder Tabelle erfolgen.The latter is only processed if the condition of the switching action is fulfilled and the so-called switching (or similar) takes place. This could be done, for example, with a jump distributor, a list or a table.
In diesem Beispiel ist die durch Ko kontrollierte Kausalkette (kurz Ko- Kette) zwar immer markiert, wenn auch P2 markiert ist, so daß der Einsparungseffekt nur bei einer Markierung von P1 eintritt, aber zur Erläuterung der Wirkungsweise ist es hinreichend. Ferner wurde auf komplexere Schaltbedingungen der Einfachheit halber verzichtet. T1 :In this example the causal chain controlled by Ko (Ko chain for short) is always marked, even if P2 is marked, so that the saving effect only occurs when P1 is marked, but it is sufficient to explain the mode of action. Furthermore, more complex switching conditions have been omitted for the sake of simplicity. T1:
LD P1LD P1
AND P2AND P2
JMPC VerzweigungJMPC branching
T2:T2:
RET (*Logisches Programmende*)RET (* Logical program end *)
Verzweigung:Branch:
R P1R P1
R P2R P2
S P3S P3
S P4S P4
S P5S P5
S P6S P6
S P7S P7
JMP T2JMP T2
T1 :T1:
LD P1LD P1
AND P2AND P2
R P1R P1
R P2R P2
S P3S P3
S P4S P4
S P5S P5
S P6S P6
S P7S P7
T2:T2:
Beispiel 2 Realisierte Umsetzung des Modellelementes T1 aus Abbildung 3 (oben mit Eo und unten ohne Eo) mit der SPS- Programmiersprache AWL, genormt mit DIN EN 61131-3Example 2 Realized implementation of the model element T1 from Figure 3 (above with Eo and below without Eo) with the PLC programming language STL, standardized with DIN EN 61131-3
Da die Einführung eines Programmsprungs (Programmverzweigung) hin zur Schalthandlung und wieder zurück zum Sprungverteiler zusätzlich Rechenzeit kostet, kann eine plattformabhängige Berechnung einer möglichen Optimierung erfolgen. Diese ermittelt, ob das Modellelement besser linear oder strukturiert abgebildet wird. Ausschlaggebende Faktoren einer solchen Berechnung sind die Anzahl der Kanten (Kante: (Baumgarten, B.: Petri- Netze: Grundlagen und Anwendungen. Mannheim, Wien, Zürich: Wissenschaftsverlag 1990. ISBN 3-411-14291 : Seite 17) bzw. deren benötigte Rechenzeit, die benötigte Rechenzeit der Programmverzweigung (Sprünge). In ungünstigen Fällen kann es auch zu einer Verschlechterung der benötigten Rechenzeit kommen.Since the introduction of a program jump (program branching) to switching operations and back to the jump distributor also requires additional computing time, a platform-dependent calculation of a possible optimization can be carried out. This determines whether the model element is better mapped linearly or structured. Decisive factors of such a calculation are the number of edges (edge: (Baumgarten, B .: Petri-Netze: basics and applications. Mannheim, Vienna, Zurich: Wissenschaftsverlag 1990. ISBN 3-411-14291: page 17) or their required Computing time, the required computing time of the program branch (jumps). In unfavorable cases, the required computing time can also deteriorate.
Somit kann die Abbildung der Elemente ein und desselben Modells, je nach dem ob die lineare oder die strukturierte Abbildung schneller ist, beide Abbildungsvarianten beinhalten.Thus, the mapping of the elements of the same model, depending on whether the linear or the structured mapping is faster, can include both mapping variants.
Die gesamte Netzoptimierung (Ko und Eo) läßt sich auch als Baumstruktur abbilden, in der Elemente tieferer Ebenen über mehr Kontrollstrukturen verwaltet (ausgeführt) werden als Elemente in höherer Ebenen. Elemente der höchsten Ebene werden immer bearbeite.The entire network optimization (Ko and Eo) can also be represented as a tree structure, in which elements of lower levels are managed (executed) via more control structures than elements in higher levels. Elements of the highest level are always processed.
7.7 Anwendungsgebiete7.7 Areas of application
Anwendungsgebiete der Ausführungszeitoptimierung für Umsetzungen von zustands- bzw. ablauforientierten Modellen in reale Lösungen, gemäß Anspruch 1 , sind alle Automaten (Begriff der Automaten- bzw. Grafentheorie) und Petrinetze (petrinetzähnlichen), die typischerweise genannt werden, deren Arbeitsweise zustands- bzw. ablauforientiert ist, dazu gehören auch die Modelle der IEC 61131 , IEC 61499 und Grafcet. Diese werden in diesem Patentanspruch kurz Modell genannt. Dabei ist es unbedeutend, ob eine Realisierung (Umsetzung in eine realisierte Lösung) in Software oder Hardware, beidem oder anderen Umsetzungen erfolgt. Es ist jedoch insbesondere geeignet zur Lösung von softwarebasierten Steuerungsaufgaben, die mittels Programmgenerator und/oder Compiler bzw. Assembler, Interpreter, durch ein spezielles Betriebssystem bzw. Laufzeitbibliotheken (Runtime) wie beispielsweise bei einer SPS (Speicherprogrammierbare Steuerung) und/oder prozessornahen Sprachen, realisiert werden. Zu den Steuerungsaufgaben zählen auch betriebswirtschaftliche Steuerungs-, Organisations- oder andere Steuerungsaufgaben. Ein mit dieser Erfindung erzeugter Quellcode (Lösungen) ist demnach insbesondere die Basis für ein Programm, dessen Bearbeitungszeit (Zeit die ein Prozessor benötigt um es auszuführen) sich deutlich verkürzt. Dies ist insbesondere für die Echtzeitfähigkeit von Steuerungslösungen (Automatisierungstechnik) von großem Interesse. Die tatsächlich erreichte Geschwindigkeitszunahme ist abhängig von der Topologie des Modells und letztendlich von der gewählten Plattform (Compiler Werkzeug, Hardware, auf der die Steuerungslösung implementiert wird, der gewählten Programmiersprache, wie C, C++, Pascal, Assembler, Programmiersprachen der DIN EN 61131-3, wie AWL, ST und ggf. weiterem).Areas of application of the execution time optimization for the implementation of state- or process-oriented models in real solutions, according to claim 1, are all automatons (term of the automaton or graph theory) and Petri nets (petri-net-like), which are typically called, whose mode of operation is state- or process-oriented the models of IEC 61131, IEC 61499 and Grafcet. These are briefly called models in this claim. It is irrelevant whether a realization (implementation in a realized solution) takes place in software or hardware, both or other implementations. However, it is particularly suitable for solving software-based control tasks that are implemented by means of a program generator and / or compiler or assembler, interpreter, by a special operating system or runtime libraries (runtime), such as in the case of a PLC (programmable logic controller) and / or languages close to the processor become. The control tasks also include business management, organizational or other control tasks. A source code (solutions) generated with this invention is therefore in particular Basis for a program, the processing time (time it takes a processor to execute it) is significantly reduced. This is of particular interest for the real-time capability of control solutions (automation technology). The actual speed increase depends on the topology of the model and ultimately on the selected platform (compiler tool, hardware on which the control solution is implemented, the chosen programming language, such as C, C ++, Pascal, assembler, programming languages of DIN EN 61131-3 , such as STL, ST and possibly more).
1.2 Stand der Technik und deren Probleme1.2 State of the art and its problems
Petrinetze (kurz: Netz oder Petrinetz (PN)) sind bereits seit 1962 (Automatentheorie besteht bereits länger) als typische Vertreter von zustands- bzw. ablauforientierten Modellen für diskrete Abläufe bekannt. Es gibt div. Varianten und Klassen der Theorien, die ausführlich in div. Veröffentlichungen diskutiert sind. Die Theorie findet nur in Ausnahmefällen praktische, industrielle Anwendung, obwohl die Zahl der Anwendungen in den letzten Jahren zunimmt. In der Steuerungstechnik können diese Modelle jedoch effektiv plattformunabhängig eingesetzt werden. Eine mit der DIN EN 61131-3 stark abgewandelte Form der Petrinetze ist seit 1995 bzw.1993 (International) als Ablaufsprache (AS) bzw. Sequential Function Chart (SFC) genormt.Petri nets (short: Netz or Petri net (PN)) have been known since 1962 (automata theory has been around for a long time) as a typical representative of state- or process-oriented models for discrete processes. There are various variants and classes of theories, which are discussed in detail in various publications. The theory finds practical, industrial use only in exceptional cases, although the number of applications has increased in recent years. In control technology, however, these models can be used effectively regardless of the platform. A form of Petri nets that has been heavily modified in accordance with DIN EN 61131-3 has been standardized since 1995 and 1993 (International) as the sequence language (AS) or Sequential Function Chart (SFC).
Die Abbildung bzw. Umsetzung eines Modells auf eine Programmiersprache erfolgt bisher in linearer Form (vgl. Abbildung 2). Lineare Form meint hier nicht einen Verzicht auf Unterprogrammtechniken. Vielmehr ist die Abbildung nach bestimmtem Schema, das die Modellelemente oder das Modell weitgehend zusammenhängend abbildet und keine Strukturierung bietet, die eine verbesserte Performance ergibt. Es sind zwei lineare Formen zur Modellelementabbildung bekannt, eine arbeitet vorwiegend mit speichernden und speicherlöschenden Befehlen ([vA93]: v. Aspern, J.: SPS- Softwareentwicklung mit Petrinetzen. Heidelberg: Hüthig (1993). ISBN 3-7785-2197-7, [vA94]: v. Aspern, J.: SPS- Softwareentwicklung: Petrinetze und Wortverarbeitung. Heidelberg: Hüthig (1994). ISBN 3-7785-2279-5 und [F94]: Friedrich, A.: Mit SPS erfolgreich Automatisieren. Poing: Franzis- Verlag (1994). ISBN 3-7723-6813-1) die andere mit Befehlen, die im wesentlichen die boolesche Algebra nutzt und weitgehend auf speichernde und speicherlöschende Befehle verzichtet ([A94]: Auer, A.: Steuerungstechnik und Synthese von SPS- Programmen. Hüthig (1994). ISBN 3-7785-2215-9 beispielsweise Seiten 135- 137). Wohl dem Stand der Technik zuzurechnen, obwohl kein veröffentlichter Nachweis bekannt ist, ist die Abbildung der Modellelemente mittels sogenannter Hochsprachen (C, Pascal), die über Wenn-Dann-Anweisungen verfügen. Hier ist bereits eine Strukturierung der Modellelemente durch die Plattform gegeben, diese unterliegt nicht dem Anspruch gemäß Patentanspruch 3, insofern das dies eine (die einzige) Methode der Programmiersprache ist. Jedoch unterliegt eine weitere Strukturierung der Bedingung Aufteilung in mehrere Teilbedingungen dem Patentanspruch.To date, a model has been mapped or implemented in a programming language in a linear form (see Figure 2). Linear form here does not mean that subroutine techniques are not used. Rather, the mapping is based on a certain scheme, which depicts the model elements or the model largely coherently and does not offer any structuring that results in improved performance. Two linear forms for model element mapping are known, one works predominantly with storing and memory-clearing commands ([vA93]: v. Aspern, J .: PLC software development with Petri nets. Heidelberg: Hüthig (1993). ISBN 3-7785-2197-7 , [vA94]: v. Aspern, J .: PLC software development: Petri nets and word processing, Heidelberg: Hüthig (1994), ISBN 3-7785-2279-5 and [F94]: Friedrich, A .: Successful automation with PLC. Poing: Franzis Verlag (1994), ISBN 3-7723-6813-1) the other with commands, which essentially uses Boolean algebra and largely dispenses with storing and memory-clearing commands ([A94]: Auer, A .: control technology and Synthesis of PLC programs, Hüthig (1994), ISBN 3-7785-2215-9, for example pages 135-137). The mapping of the model elements using so-called high-level languages (C, Pascal), which have if-then instructions, is probably attributable to the state of the art, although no published evidence is known. There is already a structuring of the model elements by the platform, this is not subject to the claim according to claim 3, insofar as this is a (the only) method of the programming language. However, a further structuring of the condition division into several sub-conditions is subject to the patent claim.
Ferner ist bekannt, daß die Abbildung von Kausalketten ([vA93], [vA94], [A94] und [F94]) durch Aneinanderreihung des Programmcodes der Ketten, ohne zusätzliche Überprüfung der Notwendigkeit einer generellen Bearbeitung durchzuführen, erfolgt. Hier unterliegt daher die Abbildung auf Hochsprachen gemäß Patentanspruch 2 dem Patentanspruch.It is also known that causal chains ([vA93], [vA94], [A94] and [F94]) are mapped by stringing together the program code of the chains without additional checking of the need for general processing. The mapping to high-level languages according to claim 2 is therefore subject to the claim here.
Hardwarebasierte Lösungen sind in König, R.; Quäck, L.: Petri- Netze in der Steuerungs- und Digitaltechnik. München und Wien: R. Oldenburg Verlag (1988). ISBN 3-486-20735-0 zu finden.Hardware-based solutions are in König, R .; Quäck, L .: Petri networks in control and digital technology. Munich and Vienna: R. Oldenburg Verlag (1988). Find ISBN 3-486-20735-0.
Zur überflüssigen Verlängerung der Bearbeitungszeit durch Prozessoren bei linearer Codeerzeugung führen zwei Aspekte bzw. Probleme, die je nach Plattform gemeinsam oder einzeln wirken.Two aspects or problems lead to the unnecessary extension of the processing time by processors with linear code generation, which work together or individually depending on the platform.
1. Linear abgebildete Modelle werden meist vom Prozessorsystem komplett (gesamtes Modell) abgearbeitet, womit die Kausalstruktur der Modell- Topologie unberücksichtigt bleibt. Ein Zustandswechsel in einem Modell kann nur an aktiven Zuständen (markierte Zustände) erfolgen. Gerade längere Kausalketten oder Teile einer solchen Kausalkette, die keinen aktiven Zustand zur Zeit der aktuellen Programmausführung besitzen, müssen demnach nicht bearbeitet werden, was die lineare Abbildung des Modells nicht berücksichtigt.1. Linear models are usually processed completely by the processor system (entire model), so that the causal structure of the model topology is not taken into account. A change of state in a model can only take place on active states (marked states). Longer causal chains or parts of such a causal chain that do not have an active state at the time of the current program execution therefore do not have to be processed, which the linear representation of the model does not take into account.
2. SPS- Plattformen (z.B. AWL der DIN EN 61131-3 oder die SPS- Sprache Step 5® (AWL) der Firma Siemens®) oder ähnliche bearbeiten meist den Code Zeile für Zeile. D.h., daß abgebildete Modellelemente ([vA93], [vA94], [A94] und [F94]), die häufig über eine Ausführungsbedingung (hier verallgemeinert Schaltbedingung genannt) verfügen, und einem von ihr abhängigen bedingt auszuführenden Teil (hier verallgemeinert Schalthandlung genannt), komplett bearbeitet werden, obwohl dies für die Schalthandlung nur im Falle der erfüllten Schaltbedingung nötig wäre. 1.3 Optimierung für ablauf- und zustandsorientierte Modelle2. PLC platforms (eg STL of DIN EN 61131-3 or the PLC language Step 5 ® (STL) from Siemens ® ) or similar usually process the code line by line. This means that the model elements shown ([vA93], [vA94], [A94] and [F94]), which often have an execution condition (here generalized called switching condition), and a dependent part to be executed conditionally (here called generalized switching action) , can be processed completely, although this would only be necessary for the switching action if the switching condition is fulfilled. 1.3 Optimization for process and condition-based models
Gerade durch die Topologie der Netze (Petrinetze, SFC, Grafcet, Zustandsmaschinen, Automaten, IEC 61499), die bestimmte (Markierung) Zustände einnehmen, ergeben sich eine Reihe von Möglichkeiten zur Minimierung beanspruchter Rechenzeit. Allen gemeinsam ist, daß sich die Netzelemente (hier im wesentlichen Transitionen, aber auch Aktionen bzw. Schrittlupen) abhängig von der Markierung selbstständig zur Bearbeitung an- bzw. abmelden, oder von anderen Netzelementen oder Verwaltern ab- oder angemeldet werden. Ferner kann ein Netzelement selbst bzw. dessen Bearbeitungszeit, insbesondere, wenn es in AWL realisiert ist, im einen oder anderen Fall deutlich verkürzt werden. Es tritt dabei eine Verkleinerung der logischen Programmlänge ein.The topology of the networks (Petri networks, SFC, Grafcet, state machines, automatons, IEC 61499), which assume certain (marking) states, gives rise to a number of options for minimizing the computing time required. Common to all is that the network elements (here essentially transitions, but also actions or step-by-step magnifiers) independently register or log off for processing, depending on the marking, or log off or log on from other network elements or administrators. Furthermore, a network element itself or its processing time, in particular if it is implemented in STL, can be significantly shortened in one case or another. The logical program length is reduced.
Welche Strategie der Minimierung anzuwenden ist, und damit auch der Grad der Minimierung, hängt von vielen Faktoren ab.Which strategy of minimization is to be used, and with it the degree of minimization, depends on many factors.
Die wichtigsten Faktoren sind:The main factors are:
Befehlsausführungszeiten der Plattform (Prozessoren und Runtime- Umgebung) Features, die die Zielsprache der Codierung bietet (z. B. dynamische Sprungziele) Häufigkeit der Bearbeitung (Aktionen 2 mal, Transitionen 1 mal) Häufigkeit des Schaltens bzw. des Nicht- Schaltens von Transitionen Anzahl der Standard- Prekanten, sonstiger Prekanten, Postkanten, Umfang sonstiger Schaltbedingungen, Umfang des AnweisungsblocksCommand execution times of the platform (processors and runtime environment) Features that the target language of the coding offers (e.g. dynamic jump targets) Frequency of processing (actions twice, transitions once) Frequency of switching or non-switching of transitions Number the standard pre-edges, other pre-edges, post edges, scope of other switching conditions, scope of the instruction block
Zeitdauer, die eine Teilbedingung der Schaltbedingung erfüllt bzw. nicht erfüllt (Stark unterschiedlich, nahezu gleich) (Zeitlicher Abstand zwischen Erfüllung einer Teilbedingung und der Erfüllung der ganzen Bedingung) Anzahl der Marken (Ein- Marken- Netz) VermaschungPeriod of time that fulfills or does not meet a partial condition of the switching condition (very different, almost the same) (time interval between the fulfillment of a partial condition and the fulfillment of the entire condition) Number of marks (one-mark network) meshing
Länge unverzweigter KettenLength of unbranched chains
Aufenthaltswahrscheinlichkeit der Marken in (Teil-)Netzen und Ketten Anzahl der Marken in einer unverzweigten KetteProbability of residence of the marks in (sub) networks and chains Number of marks in an unbranched chain
Stellung der Transition (vorn, mittig oder hinten) in einer unverzweigten Kette oder in einem Ein- Marken- NetzPosition of the transition (front, middle or back) in an unbranched chain or in a one-brand network
Zeit, die für das Schalten bzw. Nicht- Schalten benötigt wirdTime required for switching or not switching
Anzahl der nebenläufig schaltenden Transitionen während einer Bearbeitung zur Gesamtzahl der Transitionen KausalitätsgradNumber of concurrent switching transitions during processing to the total number of transitions degree of causality
Tote Netze bzw. tote Teilnetze (BK z.B. initialisiert oder Netzhierarchien) Konfliktgrad möglichst klein Konfliktanzahl möglichst kleinDead networks or dead subnetworks (BK e.g. initialized or network hierarchies) Degree of conflict as small as possible Number of conflicts as small as possible
1.3.1 Grundsätzliche Optimierungsprinzipien1.3.1 Basic optimization principles
Steuerungssysteme (SPS) bearbeiten ihre Programme derart schnell, daß im Prozeß das Verhältnis gleichzeitig auftretender Ereignisse zur Summe der möglichen Prozeßereignisse häufig deutlich kleiner ist, als das Verhältnis der SPS- Zyklen ohne Zustandsänderung zur Summe der SPS- Zyklen mit Zu- standsänderung. Mit anderen Worten: Die meiste Zeit liegt eine Transition faul in der Bearbeitungsschleife des Programms herum. Sie arbeitet nur selten, nämlich während des Schaltens. Natürlich gibt es auch hier Ausnahmen, einige Transitionen schalten häufiger.Control systems (PLC) process their programs so quickly that in the process the ratio of simultaneous events to the sum of the possible process events is often significantly smaller than the ratio of the PLC cycles without status change to the sum of the PLC cycles with status change. In other words, most of the time there is a lazy transition in the program's processing loop. It rarely works, namely while shifting. Of course there are exceptions, some transitions switch more often.
Naheliegend ist es daher, die untätigen Transitionen aus der Bearbeitungsschleife herauszunehmen, bzw. eine Beschränkung ihre Bearbeitung auf ein notwendiges Maß zu reduzieren (nur Schaltbereitschaft prüfen).It therefore makes sense to remove the idle transitions from the processing loop or to limit their processing to a necessary level (only check readiness for switching).
Für dieses Vorhaben sind weitere Befehle einzufügen, damit wächst die Anzahl der Programmzeilen und ggf. ist auch etwas mehr Datenspeicher erforderlich. Die Gesamtheit der Programmbearbeitung verkürzt sich jedoch deutlich, da entweder schaltende oder nicht schaltende Transitionen in der Überzahl sind. Eine Verkürzung der logischen Programmlänge tritt ein. Eine weitere Überlegung geht dahin, daß der Source der Schalthandlung und ggf. Teile der Schaltbedingung übersprungen werden, sobald sich beim Prüfen eines Teils der Schaltbedingung herausstellt, daß die Transition nicht schaltet. So ist beispielsweise im allgemeinen in Transitionsbedingungen eine Verriegelung erfüllt. Nicht erfüllt ist sie hingegen häufig in Fehlersituationen. Somit kann die Verriegelung als letztes geprüft werden. Daraus ergibt sich für das Nichtschalten eine verkürzte und für das Schalten eine geringfügig verlängerte Bearbeitungszeit. Genau dies ist gewünscht, da das Nichtschalten von Transitionen im allgemeinen deutlich häufiger vorkommt als das Schalten. Stichwort: „faule Transition". Drei grundsätzliche Strategien sind zuunterscheiden:Additional commands must be added for this project, so that the number of program lines increases and a little more data memory may be required. However, the entire program processing is significantly shortened, since either switching or non-switching transitions are in the majority. The logical program length is shortened. Another consideration is that the source of the switching action and possibly parts of the switching condition are skipped as soon as a part of the switching condition is checked that the transition does not switch. For example, a lock is generally fulfilled in transition conditions. However, it is often not fulfilled in error situations. The lock can thus be checked last. This results in a shorter processing time for non-switching and a slightly longer processing time for switching. This is exactly what is desired, since the non-switching of transitions generally occurs much more frequently than the switching. Keyword: "lazy transition". There are three basic strategies:
• Elementabhängig: Ausschlaggebend ist der Umfang (Anzahl Pre-, Postkanten und der Programmzeilen für zusätzliche Bedingung), sowie die daraus resultierende Rechenzeit des Systems• Depending on the element: The decisive factor is the scope (number of leading and post edges and the program lines for additional conditions) and the resulting computing time of the system
• Prozeßabhängig: Ausschlaggebend ist die Kürze der zeitlichen Dauer, die einzelne Signale vor dem Schalten erfüllt sind (letztes Signal)• Process-dependent: The decisive factor is the shortness of the time duration that individual signals are fulfilled before switching (last signal)
• Topologieabhängig: Unverzweigte Ketten, Einmarken Netze oder Teilnetze, Tote Netze oder Teilnetze, usw.• Depending on topology: unbranched chains, single-brand networks or subnetworks, dead networks or subnetworks, etc.
Zur Nutzung aller Potentiale sind Kombinationen aller Strategien, die gleichzeitig, einzeln und mehrfach zur Abbildung (Codierung) eines Netzes auf einem Zielsystem, unter Verwendung aller System- bzw. Spracheigenschaften anwendbar.To use all potentials, combinations of all strategies can be used simultaneously, individually and repeatedly to map (code) a network on a target system, using all system and language properties.
1.3.2 Transition und ihre erweiterte Begriffswelt1.3.2 Transition and its extended conceptual world
Soweit notwendig, sind die Elemente einem Begriff in Tabelle 0.1 zugeordnet. Tabelle 0.1 Begriffe und ihre NetzelementIf necessary, the elements are assigned to a term in Table 0.1. Table 0.1 Terms and their network element
Figure imgf000008_0001
Figure imgf000008_0001
Schaltbedingungswitching condition
Prüfen der SchaltbedingungCheck the switching condition
Prüfen der Standard- Prekanten (Aktivierung der Transition). Erfüllt: Entspricht der SchaltbereitschaftChecking the standard pre-edges (activation of the transition). Fulfilled: Corresponds to the readiness to switch
Prüfen sonstiger Prekanten (Freigabe der Transition durch sonstige Prekanten). Erfüllt: Entspricht der erweiterten SchaltbereitschaftChecking other pre-edges (release of the transition by other pre-edges). Fulfilled: Corresponds to the extended switching readiness
Prüfen sonstiger Bedingungen (Bedingte Freigabe der Transition durch sonstige Bedingungen).Check other conditions (conditional release of the transition through other conditions).
Erfüllt: Entspricht der bedingten Schaltbereitschaft Schalthandlung Schalten wenn:Fulfilled: Corresponds to the conditional switching readiness Switching action when:
Schalten = Schaltbereitschaft & erweiterte Schaltbedingung & bedingten Schaltbereitschaft dannSwitching = switching readiness & extended switching condition & conditional switching readiness then
Anweisungsblock spezialisierter Transition (Lösch, Anweisung..) bearbeitenEdit instruction block of specialized transition (delete, instruction ..)
Ausführungsverwaltung (Verwaltung der Variablen zu Optimierung)Execution management (management of variables for optimization)
Räumen der Vorgängerplätze (Input- oder Eingangs- Plätze)Clear the previous places (input or entrance places)
Belegen der Nachfolgerplätze (Output- oder Ausgangs- Plätze)Occupying the successor places (output or exit places)
Angemerkt sei noch, daß der Anweisungsblock und / oder die Schalthandlung oder sogar sie gesamte Transition (SpV- codiert) auch in eigenen Programmbausteinen untergebracht sein können. Geeignet ist die Realisierung der Schalthandlung bzw. der zugehörige Anweisungsblock mittels Unterprogrammtechniken, wie dies einige Umgebungen unterstützen.It should also be noted that the instruction block and / or the switching operation or even the entire transition (SpV-coded) can also be accommodated in separate program modules. It is suitable to implement the switching operation or the associated instruction block using subroutine techniques, as is supported by some environments.
Für die Codierung von Transitionen erfolgt zur vereinfachten Diskussion die folgende PN- orientierte Benennung von Codeteilen. Die Schaltbedingung besteht aus Codes für die UmsetzungFor the coding of transitions, the following PN-oriented naming of code parts is given for simplified discussion. The switching condition consists of codes for the implementation
• der Prekanten, die ausschließlich Plätze mit Transitionen verbinden (Eigentliche Bedingung der klassischen Schaltbereitschaft (ggf. inkl. der Sonderkante)),• the pre-edges, which only connect places with transitions (actual condition of the classic switching readiness (possibly including the special edge)),
• der Prekanten (Signalprekanten), die Repräsentanten von SPS- und POE- Eingängen und gesonderte Abfragen von Plätzen darstellen und• the pre-edges (signal pre-edges), which represent representatives of PLC and POE inputs and separate queries for places and
• einer oder mehreren zusätzlichen Bedingungen.• one or more additional conditions.
In den folgenden Abbildungen werden die 3 Sourceteile der Schaltbedingung mit Bedingung 1 bis 3 bezeichnet. Eine weitere Aufteilung im gegebenen Einzelfall ist möglich und ggf. sinnvoll. Die Schalthandlung besteht aus Code für die UmsetzungIn the following figures, the 3 source parts of the switching condition are designated with conditions 1 to 3. A further division in the given individual case is possible and may make sense. The switching operation consists of code for the implementation
• der Postkanten,• the postal edges,
• der Prekanten, die ausschließlich Plätze mit Transitionen verbinden und• the precursors that only connect places with transitions and
• der Anweisungsblöcke von den speziellen Transitionsarten, wie Löschtransition, Anweisungstransition, Bedingungstransition• The instruction blocks of the special transition types, such as deletion transition, instruction transition, condition transition
In den folgenden Abbildungen ist der Sourceteil der Schalthandlung durch den Kasten, betitelt mit „Schalthandlung", repräsentiert.In the following figures, the source part of the switching operation is represented by the box, titled "switching operation".
Je nach Netzklasse und Transitionsart können Teile entfallen ggf. können auch weitere Sourceteile hinzukommen.Depending on the network class and type of transition, parts can be omitted and additional source parts can also be added.
Für die Codierung sind viele Varianten denkbar, die in dem einen oder anderen Fall nützlich sind. Daher zeigen die folgenden Flußdiagramme jeweils die Variante, die standardmäßig gute Ergebnisse liefert. Varianten könnten beispielsweise die erste, zweite oder alle Bedingungen (1- 3) zu einer zusammenzufassen, oder die letzte Programmverzweigung (letzte Bedingung) unmittelbar vor der Schalthandlung weg lassen, usw.Many variants are conceivable for the coding, which are useful in one case or the other. Therefore, the following flow charts each show the variant that delivers good results by default. Variants could, for example, combine the first, second or all conditions (1-3), or omit the last program branch (last condition) immediately before the switching operation, etc.
1.3.3 Geeignete Strategien für Steuerungssysteme1.3.3 Appropriate strategies for control systems
Oben genannte Eigenschaften des Netzes, des Prozesses und der Plattform sind zur Wahl der geeigneten Optimierungsstrategie von Bedeutung. Einige Strategien erfordern gewisse Eigenschaften der Zielsprache. Diese werden von der AWL weitgehend unterstützt. Ferner stellt AWL eine effiziente Sprache dar, zumindest was den optimierten Code betrifft. Daher beziehen sich im Weiteren die meisten Beispiele und Betrachtungen auf AWL- Code. Wenige Ausnahmen legen Hochsprachenkonstrukte, wie If- Then, Case und andere, zugrunde.The above-mentioned properties of the network, the process and the platform are important for choosing the appropriate optimization strategy. Some strategies require certain properties of the target language. These are largely supported by the STL. AWL is also an efficient language, at least as far as the optimized code is concerned. Therefore, most of the examples and considerations below refer to STL code. Few exceptions are based on high-level language constructs such as If-Then, Case and others.
Transformation der Codierungsvorschläge von AWL hin zu ST oder anderen Sprachen folgen einfachen Regeln. Sprünge sind durch IF- Anweisungen zur ersetzen, usw.Transformation of coding suggestions from STL to ST or other languages follow simple rules. Jumps are to be replaced by IF instructions, etc.
1.3.3.1 Strategien zur Optimierung von Netzelementen1.3.3.1 Strategies for optimizing network elements
Netzelemente sind alle elementaren Elemente, aus denen ein Netz bestehen kann, wie Knoten (Platz und Transition), Kanten, Task, Aktion, Schrittlupen, usw.Network elements are all elementary elements from which a network can consist, such as nodes (space and transition), edges, task, action, step magnifiers, etc.
1.3.3.1.1 Optimierung boolescher Gleichungen1.3.3.1.1 Optimizing Boolean equations
Elementare Operationen sind die UND- und ODER- Verknüpfung, die im wesentlichen für die Bildung von Transitionsbedingungen eingesetzt werden.Elementary operations are the AND and OR operations, which are mainly used to create transition conditions.
Optimierte Codierung einer UND- VerknüpfungOptimized coding of an AND operation
Wesentliches Merkmal einer UND- Verknüpfung ist, daß für eine WAHRE- Aussage (TRUE) am Ausgang für alle Eingänge ebenfalls WAHR erforderlich ist. Umgekehrt bedeutet dies: Führt auch nur ein Eingang FALSCH (FALSE), muß auch das Ergebnis entsprechend sein. Damit ist die Entscheidung bereits ursächlich durch ein Signal bestimmt und eine Umsetzung mit je einem Sprung je Eingang gegeben. Die folgende Transitionsbedingung mit 4 Variablen wird mit Sprüngen realisiert. Bedingung: E1 UND E2 UND E3 UND E4 Tabelle 0.2 Transitionsbedingung und UND- Verknüpfung nach dem wired- and- Prinzip codiertAn essential feature of an AND operation is that a TRUE statement at the output also requires TRUE for all inputs. Conversely, this means that if only one input is FALSE, the result must also be corresponding. This means that the decision is already determined by a signal and implemented with one jump per input. The following transition condition with 4 variables is implemented with jumps. Condition: E1 AND E2 AND E3 AND E4 Table 0.2 Transition condition and AND operation coded according to the wired and principle
Figure imgf000010_0001
Figure imgf000010_0001
Optimierte Codierung einer ODER- VerknüpfungOptimized coding of an OR operation
Wesentliches Merkmal einer ODER- Verknüpfung ist, daß für eine WAHR- Aussage (TRUE) am Ausgang nur ein Eingang WAHR erforderlich ist. Umgekehrt bedeutet dies, führt auch nur ein Eingang WAHR (TRUE), muß auch das Ergebnis entsprechend WAHR sein. Damit ist die Entscheidung bereits ursächlich durch ein Signal bestimmt und eine Umsetzung mit je einem Sprung je Eingang gegeben. Die folgende Transitionsbedingung mit 4 Variablen wird mit Sprüngen realisiert. Bedingung: E1 ODER E2 ODER E3 ODER E4An essential feature of an OR operation is that only one input TRUE is required for a TRUE statement at the output. Conversely, this means that if only one input is TRUE, the result must also be TRUE. This means that the decision is already determined by a signal and implemented with one jump per input. The following transition condition with 4 variables is implemented with jumps. Condition: E1 OR E2 OR E3 OR E4
Tabelle 0.3 Transitionsbedingung und ODER- Verknüpfung nach dem wired- or- Prinzip codiertTable 0.3 Transition condition and OR operation coded according to the wired-or principle
Figure imgf000010_0002
Figure imgf000010_0002
Auflösung komplexer boolescher GleichungenSolving complex Boolean equations
Komplexe boolesche Gleichungen lassen sich in die sogenannte Konjunktive bzw. Disjunktive Normalform (KNF bzw. DNF) überführen. Es entstehen Therme, die entweder UND- bzw. ODER verknüpft sind. Somit sind die oben erwähnten Prinzipien im Sinne der wired- and bzw. wired- or- Verknüpfungen auf die Therme anwendbar.Complex Boolean equations can be converted into the so-called conjunctive or disjunctive normal form (KNF or DNF). Therme arise, which are either AND or OR linked. The principles mentioned above can therefore be applied to the thermal bath in the sense of wired and or wired or connections.
1.3.3.1.2 Lineare Codierung1.3.3.1.2 Linear coding
Lineare Codierung ist die Standardcodierung. Besonderes Kennzeichen ist, die Zeit, die für das Schalten benötigt wird, ist genauso lang wie die für das Nichtschalten.Linear coding is the standard coding. A special feature is that the time required for switching is just as long as that for not switching.
[siehe Abbildung 1.1 Flußdiagramm zur linearen Codierung von Transitionen][see Figure 1.1 Flow diagram for linear coding of transitions]
1.3.3.1.3 Getrennte Codierung (Splitting)1.3.3.1.3 Separate coding (splitting)
Das Splitting zerlegt die komplette Schaltbedingung in Teilbedingungen. Bei der Codierung wirkt das Verknüpfungsergebnis jeder Teilbedingung auf einen Sprung, der bei nicht erfüllter Transitionsbedingung die Bearbeitung beendet. Das Nichtschalten einer Transition Tn verkürzt sich dadurch erheblich, daß hinter einer Teilbedingung eine Programmverzweigung (bedingter Sprung) entscheidet, ob die nächste Transition Tn+1 oder weitere Programmzeilen der Transition Tn der Bearbeitung unterliegen.The splitting breaks down the complete switching condition into partial conditions. When coding, the link result of each subcondition acts on a jump that ends the processing if the transition condition is not met. The non-switching of a transition T n is considerably shortened in that a program branch (conditional jump) decides after a partial condition whether the next transition T n + 1 or further program lines of the transition T n are subject to processing.
Das Splitting könnte annähernd als eine Zerlegung einer Transition in Teiltransitionen aufgefaßt werden. Wobei jede Teiltransition eigentlich nur eine Teilbedingung darstellt.The splitting could almost be interpreted as a decomposition of a transition into partial transitions. Each sub-transition actually only represents a sub-condition.
[siehe Abbildung 1.2 Schematische Darstellung des Splittings][see Figure 1.2 Schematic representation of the splitting]
In einigen Fällen kann die Reihenfolge, in der die einzelnen Bedingungen der Schaltbedingung im Source plaziert sind von Bedeutung sein. Automatisch erzeugter Code sollte eine Reihenfolge wählen, bei der die Teilbedingung von der zeitlich kürzesten Bearbeitungszeit zur längsten verläuft.In some cases, the order in which the individual conditions of the switching condition are placed in the source can be important. Automatically generated code should choose an order in which the partial condition runs from the shortest processing time to the longest.
Figure imgf000011_0001
Figure imgf000011_0001
[siehe Abbildung 1.3 Flußdiagramm zur getrennten Codierung von Transitionen][see Figure 1.3 Flowchart for separate coding of transitions]
1.3.3.1.4 Sprungverteilercodierung1.3.3.1.4 Jump distributor coding
Der Sprungverteiler (SpV) führt zunächst je Transition einen virtuellen Platz (Transitionsflag) ein. Der Einsparungseffekt wird dadurch erzielt, daß grundsätzlich nur der übergeordneten Sprungverteiler bearbeitet wird (d.h. 2 Anweisungen je Transition; Flag- Abfrage und Sprung). Nur diejenige Transition, deren Flag gesetzt ist, unterliegt der weiteren Prüfung der Schaltbedingung. Grundsätzlich kann dann zusätzlich die getrennte Codierung implementiert sein.The jump distributor (SpV) first introduces a virtual place (transition flag) for each transition. The saving effect is achieved by processing only the higher-level branch distributor (i.e. 2 instructions per transition; flag query and branch). Only the transition whose flag is set is subject to further testing of the switching condition. In principle, the separate coding can then additionally be implemented.
Ist die Transition nicht schaltfähig, erfolgt der Rücksprung zum Sprungverteiler. Für den Fall, daß sie schaltfähig ist gibt es 2 Varianten, a) nach dem Schalten wieder zum SpV zu verzweigen und b) die Schaltbedingung der Nachfolgetransition zu prüfen. Letzteres ist jedoch nur sinnvoll, wenn die Nachfolgetransition möglicherweise durch das Schalten ihrer Vorgängertransition schaltfähig wird. Die Schalthandlung einer Transition im Sprungverteiler muß ihr Flag zurücksetzen und die Flags der Nachfolgertransitionen setzen, die durch das Schalten gemäß Netztopologie schaltfähig werden könnten. Das sind alle Transitionen, die einen Nachfolgerplatz der geschalteten Transition als Vorgängerplatz besitzen.If the transition is not switchable, there is a return to the jump distributor. In the event that it is switchable, there are 2 variants, a) to switch back to the SPV after switching and b) to check the switching condition of the subsequent transition. However, the latter only makes sense if the successor transition may become switchable by switching its predecessor transition. The switching action of a transition in the jump distributor must reset its flag and set the flags of the successor transitions that could become switchable by switching according to the network topology. These are all transitions that have a successor position to the switched transition as a predecessor position.
[siehe Abbildung 1.4 Flußdiagramm zur Sprungverteiler Codierung von Transitionen] Tabelle 0.5 Codierung Sp ngverteiler[see Figure 1.4 Flow diagram for jump distributor coding of transitions] Table 0.5 Coding of the voltage distributor
Sprungverteiler CodierungJump distributor coding
Transition 1 SpVT1 :Transition 1 SpVT1:
LD TIFIag JMPC T1LD TIFIag JMPC T1
Transition 2 SpVT2:Transition 2 SpVT2:
LD T2Flag JMPC T2LD T2 flag JMPC T2
Transition n SpVTn:Transition n SpVTn:
LD TnFlag JMPC TnLD TnFlag JMPC Tn
Tabelle 0.6 Codierung der Transition für den Sprungverteiler2 Table 0.6 Coding of the transition for the jump distributor 2
Figure imgf000012_0001
Figure imgf000012_0001
1.3.3.1.5 EinmarkenSprungverteiler ESpV1.3.3.1.5 Single-brand jump distributor ESpV
Eine besondere Form des SpV kann für die Codierung spezieller Netzklassen oder bestimmter Netztopo- logien nützlich sein.A special form of SpV can be useful for coding special network classes or certain network topologies.
Netze, die als sogenannte Ein- Marken- Netze bezeichnet sind, verfügen über nur eine Marke im gesamten Netz.Networks that are referred to as so-called one-brand networks have only one brand in the entire network.
Kann die Transition, deren Vorgängerplatz die Marke besitzt nicht schalten, so kann auch keine andere Transition in diesem Netz schalten. Für die Codierung bedeutet dies, das beim Nichtschalten einer Transition der Rest des Codes auch nicht bearbeitet werden muß. Es entsteht keine neue Markierung, die ein Schalten ermöglicht.If the transition whose predecessor location is owned by the brand cannot switch, then no other transition can switch in this network. For coding, this means that if a transition is not switched, the rest of the code does not have to be processed either. There is no new marking that enables switching.
Dieses Verfahren läßt sich auch auf Teilnetze oder Netzteile anwenden, sofern sich nur eine Marke innerhalb des Betrachteten befindet. Als Beispiel soll ein IEC 61131- SFC- Netzwerk die Diskussion untermauern. Es verfügt über eine Kette (10 Schritte), gefolgt von einer Simultanverzweigung (insgesamt 40 Schritte). Die Kette (10 Schritte) ist ein typischer Vertreter für einen Einmarken- Bereich, er kann also ESpV- codiert3 sein. Ketten sind als eigenständige ESpV interpretiert. Hier erfolgt der Sprung nicht ans Ende des Netzes sondern an den Beginn der Simultanverzweigung. Die Codierung der Simultanverzweigung, ebenfalls bestehend aus zwei Ketten, nutzt ebenfalls jeweils einen Sprungverteiler.This method can also be applied to subnetworks or power supply units if there is only one brand within the subject. As an example, an IEC 61131 SFC network is to underpin the discussion. It has a chain (10 steps) followed by a simultaneous branching (40 steps in total). The chain (10 steps) is a typical representative for a single-brand area, so it can be ESpV-coded 3 . Chains are interpreted as independent ESpV. Here the jump does not take place at the end of the network but at the beginning of the simultaneous branching. The coding of the simultaneous branch, also consisting of two chains, also uses a jump distributor.
Nur der Sprungverteiler unterliegt der regulären, zyklischen Bearbeitung. Die Bearbeitung des Transitionscode steht vollständig unter seiner Kontrolle. Der Begriff Einmarken meint, daß es nur eine Transition gibt, die schalten könnte. Eine besondere Codierungsvariante, stützt die per Definition spezifizierte Verfügbarkeit nur einer Marke im gesamten Netz. Die Nutzung des Return- Befehl innerhalb der Codierung beendet die POE- Ausführung jeweils durch Registrierung des Nichtschaltens der Transition.Only the jump distributor is subject to regular, cyclical processing. The processing of the transition code is completely under his control. The term branding means that there is only one transition that could switch. A special coding variant supports the availability, specified by definition, of only one brand in the entire network. The use of the return command within the coding ends the POU execution by registering the non-switching of the transition.
[siehe Abbildung 1.5 Flußdiagramm zur Sprungverteiler Codierung im Einmarkenbereich von Transitionen][see Figure 1.5 Flowchart for jump distributor coding in the single-mark area of transitions]
Tabelle 0.7 Codierung Sprungverteiler für EinmarkenbereichTable 0.7 Coding of jump distributors for single-brand areas
Figure imgf000013_0001
Figure imgf000013_0001
Tabelle 0.8 Codierung der Transition für den Sprungverteiler im EinmakenbereichTable 0.8 Coding of the transition for the jump distributor in the one-hook area
Figure imgf000013_0002
Figure imgf000013_0002
1.3.3.1.6 Feinoptimierung Signaldauer1.3.3.1.6 Fine optimization of signal duration
Diese Strategie begründet sich darauf, das es immer ein Signal gibt, daß das letzte ist, das zur Erfüllung der Schaltbedingung beiträgt. Häufig ist es immer das gleiche Signal. Als Signal wird jede Kante und ggf. auch die Zusatzbedingung (z.B. Vergleich) betrachtet, die zu einer Schaltbedingung gehören. Beispielsweise existiert eine Transition mit einem Vorgängerplatz (Motor dreht) und einem Eingang (Endschalter erreicht). Hier ist es meist der Eingang, der letztendlich das Schalten auslöst.This strategy is based on the fact that there is always a signal that the last one contributes to the fulfillment of the switching condition. It is often the same signal. Each edge and possibly also the additional condition (e.g. comparison) that belong to a switching condition are considered as signals. For example, there is a transition with a predecessor position (engine turns) and an input (limit switch reached). Here it is usually the input that ultimately triggers the switching.
Für den ECC (Execution Control Chart) der IEC 61499, der ein Petrinetz darstellt, eignet sich das Ereignissignal einer Transition als erstes abzufragen. Da es nur kurzzeitig auftritt und es das letzte Signal ist das zur Erfüllung der Schaltbedingung zum Schalten noch fehlt.For the ECC (Execution Control Chart) of IEC 61499, which represents a Petri network, the event signal of a transition is the first to be queried. Since it only occurs for a short time and it is the last signal that is still missing to fulfill the switching condition for switching.
Angewandt auf die getrennte-, Sprungverteiler- und Einmarken- Sprungverteiler- Codierung wird das Signal (maximal sollten nicht mehr als 2 Signale), das letztendlich das Schalten auslöst, als erste Bedin-Applied to the separate, jump distributor and single-mark jump distributor coding, the signal (which should not exceed 2 signals), which ultimately triggers the switching, is the first condition
Nur der Sprungverteiler unterliegt der regulären, zyklischen Bearbeitung. Die Bearbeitung des Transitionscode steht vollständig unter seiner Kontrolle. gung geschrieben. Wobei auch hier mindestens zwei Varianten denkbar sind. A) Der Rest der Bedingung, aus der das Signal herausgelöst wurde, bleibt ggf. als eigenständige Teilbedingung mit Programmverzweigung bestehen, oder b) der Rest wird mit einer anderen Teilbedingung zu einer neuen verbunden. Es findet also eine teilweise oder totale Neuordnung der bisher als Einheit aufgefaßten Bedingungsgruppen (Prekanten, Signalprekanten, Zusatzbedingung) statt. Diese zerfallen in der Analyse hinsichtlich der Signaldauer um anschließend neue Gruppen zu schaffen. Bei den Sprungverteilern steht das Signal anstelle des Flags und das Flag kann ganz entfallen. Das verringert zusätzlich die Zeit, die für die Realisierung des Schaltens benötigt wird, da die Flagverwaltung entfällt. In der Feinoptimierung erfolgt eine Neuordnung der Signale zu Teilbedingungen. Die Letzte Bedingung enthält häufig die aufwendigsten Bedingungen (z.B. Vergleicher) und/oder Signale, die eigentlich immer im Sinne der Schaltbedingung erfüllt sind. Anzahl der Bedingungen ist beliebig.Only the jump distributor is subject to regular, cyclical processing. The processing of the transition code is completely under his control. written. At least two variants are also conceivable here. A) The rest of the condition from which the signal was extracted may remain as an independent sub-condition with a program branch, or b) the rest is connected to another sub-condition to form a new one. There is therefore a partial or total reorganization of the condition groups (precants, signal precursors, additional condition) that were previously understood as a unit. These decay in the analysis with regard to the signal duration in order to subsequently create new groups. In the case of the jump distributors, the signal is in place of the flag and the flag can be omitted entirely. This also reduces the time required to implement switching, since flag management is no longer necessary. In fine tuning, the signals are reorganized to subconditions. The last condition often contains the most complex conditions (eg comparators) and / or signals that are actually always met in terms of the switching condition. The number of conditions is arbitrary.
[Abbildung 1.6 Feinoptimierte Splittingcodierung][Figure 1.6 Fine-optimized splitting coding]
Tabelle 0.9 Codierung des feinoptimierten SprungverteilersTable 0.9 Coding of the finely optimized jump distributor
Figure imgf000014_0001
Figure imgf000014_0001
Tabelle 0.10 Codierung der Transition des feinoptimierten SprungverteilersTable 0.10 Coding the transition of the finely optimized jump distributor
Figure imgf000014_0002
Figure imgf000014_0002
1.3.3.2 Strategien der Netzoptimierung1.3.3.2 Strategies for network optimization
Basis der Strategien zur Netzoptimierung ist die Erkenntnis, daß nur Netzteile bearbeitet werden müssen, in denen es auch eine Marke gibt, denn die Marke ist die Grundvoraussetzung des Schaltens. Die erste und einfachste Konsequenz hieraus ist: Tote Netze bzw. Teilnetze werden nicht bearbeitet. Als typisches Beispiel sei hier eine Fehlerüberwachung (Maximale Belegungszeit überschritten) eines Platzes angeführt. Diese muß nur bei markiertem Platz bearbeitet werden.The basis of the strategies for network optimization is the realization that only power supplies that have a brand have to be processed, because the brand is the basic requirement for switching. The first and simplest consequence of this is that dead networks or subnetworks are not processed. A typical example is error monitoring (maximum occupancy time exceeded) of a place. This only needs to be edited if the space is marked.
Nur der Sprungverteiler unterliegt der regulären, zyklischen Bearbeitung. Die Bearbeitung des Transitionscode steht vollständig unter seiner Kontrolle. Die Eigenschaft, unterschiedliche Bearbeitungszeiten des Netzes allein durch die Positionsabhängigkeit einer Transition (Anfang, Mitte, Ende) innerhalb des SpV- Codes und der Markierung zu erzeugen ist einOnly the jump distributor is subject to regular, cyclical processing. The processing of the transition code is completely under his control. The property of generating different processing times of the network solely through the position dependency of a transition (beginning, middle, end) within the SpV code and the marking is one
Nachteil.Disadvantage.
Sprünge mit dynamischen Sprungzielen zeigen eine Verbesserung.Jumps with dynamic jump targets show an improvement.
1.3.3.2.1 Kettenflag1.3.3.2.1 Chain flag
Eine unverzweigte Kette wird nur bearbeitet, wenn sich mindestens eine Marke in der Kette befindet. Effiziente Lokalisierung vorhandener Marken innerhalb einer Kette bedient sich spezieller Transitionen, die Ketteneintritts- und Kettenaustrittstransition.An unbranched chain is only processed if there is at least one mark in the chain. Efficient localization of existing brands within a chain uses special transitions, the chain entry and exit exits.
Die Eintrittstransition sorgt durch ihr Schalten für eine Marke in dieser Kette und setzt gleichzeitig ein Kettenflag. Können mehrere Marken eintreten, wird ein Zähler als Flag benutzt. Die Kettenbearbeitung ist nur durchzuführen bei gesetztem Kettenflag bzw. bei Kettenflag größer null. Verläßt eine Marke die Kette, setzt die Austrittstransition das Kettenflag zurück bzw. dekrementiert den Zähler.By switching, the entry transition creates a brand in this chain and at the same time sets a chain flag. If several brands can occur, a counter is used as a flag. Chain processing is only to be carried out if the chain flag is set or if the chain flag is greater than zero. If a mark leaves the chain, the exit transition resets the chain flag or decrements the counter.
Letztendlich läßt sich die Gesamtheit aller Kettenflags, die die Ausführung eines Steuerungsnetzes verwalten, auch wieder als Verwaltungsnetzwerk auffassen, welches eng an das Steuerungsnetz gekoppelt ist.Ultimately, the entirety of all chain flags that manage the execution of a control network can also be understood as an administration network that is closely linked to the control network.
Als Eintrittstransitionen eignen sich solche, deren Schaltbedingung entsprechend selten erfüllt ist. Als Beispiel seien hier Transitionen genannt, deren Schaltbedingung ein Datum, eine Uhrzeit, eine große Verzögerungszeit oder ein eher seltenes Prozeßsignal beinhaltet.Suitable entry transitions are those whose switching conditions are rarely met. Transitions whose switching condition contains a date, a time, a large delay time or a rather rare process signal may be mentioned here as an example.
Oder es sei der Fall eines Motorstop besonders zeitkritisch. Der Übergang vom Zustand „Laufender Motor" zum Zustand „Motor steht" ist in einer langen unverzweigten Kette modelliert. Die Kette wird in 3 Bereiche eingeteilt. Die Transitionen vor und nach der zeitkritischen Transition sind durch Flags kontrolliert, während die zeitkritische Transition immer bearbeitet wird, um immer in kürzester Zeit schalten zu können.Or it is the case of an engine stop that is particularly time-critical. The transition from the "running engine" state to the "engine stopped" state is modeled in a long, unbranched chain. The chain is divided into 3 areas. The transitions before and after the time-critical transition are controlled by flags, while the time-critical transition is always processed in order to always be able to switch in the shortest possible time.
[Abbildung 1.7 Flußdiagramm zur Kettenflag Codierung von Netzen oder Teilnetzen][Figure 1.7 Flowchart for chain flag coding of networks or subnetworks]
1.3.3.2.2 Segmentierung1.3.3.2.2 Segmentation
Das Mittel der Segmentierung erweitert das Kettenflag zum strukturierten Kettenflag- Mechanismus und eignet sich für sehr lange Ketten. Dazu erfolgt eine Aufteilung langer Ketten in Bereiche, die Segmente. Jedes Segment verfügt über ein eigenes Segmentflag. Das Prinzip der Segmentverwaltung ist dem des Kettenflags gleich. Es gibt je Segment eigene Ein- und Austrittstransitionen. Ein Extremfall der Segmentierung führt zur Sprungverteilercodierung der Transitionen.The segmentation means extends the chain flag to a structured chain flag mechanism and is suitable for very long chains. For this purpose, long chains are divided into areas, the segments. Each segment has its own segment flag. The principle of segment management is the same as that of the chain flag. There are separate entry and exit transitions for each segment. An extreme case of segmentation leads to jump distributor coding of the transitions.
Ggf. erfolgt eine Kombination aus Kettenflag und Segmentierung, wobei weitere Ebenen der Segmentierung durchaus zulässig sind. Somit entsteht eine Struktur. Auf oberster Ebene steht das Kettenflag, darunter die erste Ebene der Segmente. Eine weitere Segmentierung führt dazu, daß ein Segment die Segmente seiner unteren Ebene kontrolliert. Es wirkt dann wie das Kettenflag, das die nächste Segmentebene kontrolliert.Possibly. there is a combination of chain flag and segmentation, whereby further levels of segmentation are quite permissible. This creates a structure. The chain flag is on the top level, including the first level of the segments. Another segmentation means that a segment controls the segments of its lower level. It then acts like the chain flag that controls the next segment level.
[siehe Abbildung 1.8 Flußdiagramm zur segmentierten Codierung von Netzen oder Teilnetzen][see Figure 1.8 Flowchart for segmented coding of networks or subnetworks]
Optimierte Ketten bearbeitungOptimized chain processing
Naheliegend ist eine Optimierung eines Ablaufmodells auch mit den Mitteln des Modells zu implementieren. Die Abbildung 1.9 zeigt, wie das Verhalten einer Kettenoptimierung (mittels Petrinetzen dünn) mit einfachen Mitteln gestaltet werden kann. Dazu wird, sobald die Aktivierung des ersten Schritts einer Kette oder eines Segmentes durch die Transition erfolgt, zusätzlich ein oder mehrere Ketten- Flag gesetzt. Das Flag wird wieder zurückgesetzt, sobald der letzte Schritt der Kette oder des Segmentes wieder deaktiviert wird.It is obvious that an optimization of a process model should also be implemented with the means of the model. Figure 1.9 shows how the behavior of chain optimization (thin using Petri nets) can be designed with simple means. As soon as the first step of a chain or segment is activated by the transition, one or more chain flags are also set. The flag is reset as soon as the last step of the chain or segment is deactivated.
Hier wird mit einem Flag (LeerFlag) gearbeitet, das angibt, ob die Schritte der gesamten Kette deaktiviert sind und jeweils einem Flag, das angibt, ob ein Segment (SgFlag1...n) über einen aktiven Zustand verfügt. Auf das LeerFlag kann ggf. verzichtet werden, es dient dazu, daß nur eine Abfrage im Falle einer deaktivierten Kette, anstatt 3 (SgFlagl ...n) erfolgen muß. In diesem Fall wird fast die gesamte Bearbeitungszeit der Kette eingespart. Die Bearbeitungszeit verkürzt sich nahezu auf ein drittel bei Vorhandensein eines aktiven Schrittes innerhalb der Kette unter der Annahme, daß alle Segmente gleiche Bearbeitungszeit in Anspruch nehmen.Here a flag (LeerFlag) is used, which indicates whether the steps of the entire chain are deactivated and a flag, which indicates whether a segment (SgFlag1 ... n) has an active state. If necessary, the empty flag can be dispensed with; it serves to ensure that only one query in the case of a deactivated chain, instead of 3 (SgFlagl ... n). In this case, almost the entire processing time of the chain is saved. The processing time is reduced to almost a third if there is an active step within the chain, assuming that all segments take the same processing time.
Eine Erweiterung dieses Prinzips führt zu einem Optimierungsnetz, das die Ausführungsverwaltung des eigentlichen Steuerungsnetz übernimmt. FeinabstimmungAn extension of this principle leads to an optimization network, which takes over the execution management of the actual control network. fine tune
Unter Ausnutzung dynamischer Effekte ist eine zusätzliche Performanceverbesserung zu erwirken. Jeder Platz verfügt über spezifische, prozeßabhängig Verweildauern der Marken. Eine Segmentierung, deren Segmente die Aufteilung der Zonen gemäß der Verweildauer widerspiegelt bringt zusätzlichen Nutzen. Es sind Bereiche in denen sich Marken bevorzugt aufhalten (am längsten) zu bilden und Zonen mit geringerer Aufenthaltswahrscheinlichkeit.An additional performance improvement has to be achieved by using dynamic effects. Each place has specific, process-dependent retention times of the brands. A segmentation whose segments reflect the division of the zones according to the length of stay brings additional benefits. There are areas where brands prefer to stay (longest) and areas with a lower probability of staying.
[siehe Abbildung 1.9 Ausschnitt einer unverzeigten AS-Kette deren Bearbeitung durch Kettenflags koordiniert wird][see Figure 1.9 section of an undisplayed AS chain whose processing is coordinated by chain flags]
1.3.3.2.3 Einmarkendispatcher1.3.3.2.3 Single brand dispatcher
Befindet sich nur eine Marke in einem (Teil-) Netz kann auch eine CASE- Anweisung genutzt werden. Jede Transition stellt dann einen CASE- Fall dar. Daraus ergibt sich, daß von allen Transitionen einer CASE- Anweisung immer nur eine schalten darf. Beim Schalten einer Transition trägt sie ihre Nachfolgertransition in den CASE- Selektor ein.If there is only one label in a (sub) network, a CASE instruction can also be used. Each transition then represents a CASE case. This means that only one of all transitions of a CASE statement can switch. When switching a transition, it enters its successor transition in the CASE selector.
1.3.3.2.4 Dispatcher1.3.3.2.4 Dispatcher
Der Dispatcher ist sehr aufwendig. Er eignet sich insbesondere für solche Netze, deren Anzahl von Transitionen, die aufgrund der Netzmarkierung schalten könnten sehr viel kleiner sind als die der nicht schaltbereiten.The dispatcher is very complex. It is particularly suitable for networks whose number of transitions that could switch due to the network marking are very much smaller than those of those that are not ready to switch.
Das Grundprinzip ist recht einfach. Es gibt eine Liste (z.B. Array) der Transitionen die aufgrund der Netzmarkierung schalten könnten. Transitionen, die schalten, löschen sich aus dieser Liste und tragen alle Transitionen in die Liste ein, die einen ihrer Nachfolgerplätze als Vorgängerplatz besitzen. Die Liste kann aus Sprungzielen bestehen oder aus Zeigern (Pointer).The basic principle is quite simple. There is a list (e.g. array) of transitions that could switch due to the network marking. Transitions that switch are deleted from this list and enter all transitions in the list that have one of their successor positions as the previous position. The list can consist of jump destinations or pointers.
Gerade der Dispatcher eignet sich für eine Implementierung direkt in der SPS- Runtime, kann aber durchaus auch im lEC- Code realisiert sein.The dispatcher is particularly suitable for implementation directly in the PLC runtime, but can also be implemented in the IEC code.
1.3.3.2.5 Dynamischer Sprungverteiler1.3.3.2.5 Dynamic jump distributor
Der dynamische Sprungverteiler (DSpV) kann als Alternative den einfachen Sprungverteiler oder auch den Dispatcher ersetzten oder zum Teil ergänzen. Ersetzt man den gesamten Sprungverteiler durch eine Variable und einen Sprungbefehl mit dynamischem Sprungziel, muß jede Transition, in ihrer Schalthandlung, anstatt der Verwaltung der Transitionsflags, die Folgetransition in die Variable ein tragen. Eine Segnemtierung kann entfallen. Die Verwaltung paralleler schaltfähiger Transitionen darf nicht ohne weitere Maßnahmen auf diese Weise erfolgen. Aufwendiger ist die Verwendung dynamischer Sprungverteiler für parallel schaltfähige Transitionen. Entweder sind Listen oder Schleifen zu verwalten oder für jede mögliche parallel stattfindende Schaltung muß ein Sprungverteiler stehen.As an alternative, the dynamic jump distributor (DSpV) can replace the simple jump distributor or the dispatcher or supplement it in part. If you replace the entire jump distributor with a variable and a jump command with a dynamic jump destination, each transition, in its switching action, must enter the subsequent transition in the variable instead of managing the transition flags. A segregation can be omitted. The management of parallel switchable transitions must not take place in this way without further measures. The use of dynamic jump distributors for parallel switchable transitions is more complex. Either lists or loops have to be managed or a jump distributor must be available for every possible parallel connection.
[siehe Abbildung 1.10 Dynamischer Sprungverteiler][see Figure 1.10 Dynamic jump distributor]
Tabelle 0.11 Mögliche Codierung des dynamischen SprungverteilersTable 0.11 Possible coding of the dynamic jump distributor
Figure imgf000016_0001
Figure imgf000016_0001
Tabelle 0.12 Codierung der Transition des dynamischen Sprungverteilers
Figure imgf000017_0001
Table 0.12 Coding of the transition of the dynamic jump distributor
Figure imgf000017_0001
1.3.3.3 SFC- Systeme1.3.3.3 SFC systems
Transitionentransitions
Von Bedeutung für die automatische Codeerzeugung sind das Splitting, der Sprungverteiler, und die Einmarkenbetrachtungen, sowie das Kettenflag, die Segmentierung, ggf. der Dispatcher und der DSpV. Ebenso kann die halbautomatische Feinoptimierung zur Verfügung stehen.The splitting, the jump distributor, and the single-mark considerations, as well as the chain flag, the segmentation, possibly the dispatcher and the DSpV are important for the automatic code generation. Semi-automatic fine tuning can also be available.
Bestimmung der AktionsausführungDetermination of the execution of the action
Zur Bestimmung der Ausführung kann grundsätzlich die Verwendung der Mechanismen zur Optimierung von Transitionen (s.o) Anwendung finden. Splitting, Feinoptimierung über die Signaldauer und ggf. der Dispatcher kommen insbesondere zum tragen.In principle, the mechanisms for optimizing transitions (see above) can be used to determine the execution. Splitting, fine-tuning over the signal duration and possibly the dispatcher are particularly important.
1.3.4 Petrinetz- Codeoptimierung durch Faltung1.3.4 Petri net code optimization by folding
Ganz oder teilweise identische Petrinetze (SFC- Norm läßt dies nicht zu) lassen sich zu einer kompakten Darstellungsform falten. Die ursprünglichen binären Netze (Platz ist durch boolesche Variable abgebildet) werden mittels Faltung zu Bitfolgenetzen (8 Plätze sind durch eine Byte- Variable abgebildet). So lassen sich bis zu 8, 16, 32 oder 64 binäre Netze durch einen Source abarbeiten, der sich nur hinsichtlich der Datentypen (Byte, Word, Doppelwort, Langwort) unterscheidet.Completely or partially identical Petri nets (SFC standard does not allow this) can be folded into a compact form of presentation. The original binary networks (space is represented by a Boolean variable) are folded into bit string networks (8 spaces are represented by a byte variable). This means that up to 8, 16, 32 or 64 binary networks can be processed by a source that only differs in terms of data types (byte, word, double word, long word).
[siehe Abbildung 1.11 Gefaltetes Netz] [see Figure 1.11 folded network]

Claims

Ansprüche Expectations
1. Verfahren zur Ausführungszeitoptimierung für Umsetzungen von zustands- bzw. ablauforientierten Modellen in reale Lösungen, insbesondere für softwarebasierte Lösungen (technische, betriebswirtschaftliche, organisatorische oder andere Lösungen) dadurch gekennzeichnet, daß eine Kausalkettenoptimierung (Kurz Ko), sowie eine Elementoptimierung (kurz Eo) für eine reale Modellumsetzung (Modell wird realisiert, beispielsweise durch Abbildung in einer Programmiersprache unter Nutzung aller geeigneten Eigenschaften der Zielsprache) jeweils einzeln oder gemeinsam auf die Umsetzung des Modells oder auf ein Teil des Modells angewandt wird, wodurch eine Verkürzung der Bearbeitungszeit (verkürzte Rechenzeit, bzw. Ausführungszeit) der Modellumsetzung oder eines Teils der Umsetzung eintritt.1. Procedure for optimizing execution time for the implementation of condition- or process-oriented models in real solutions, in particular for software-based solutions (technical, business, organizational or other solutions), characterized in that a causal chain optimization (short Ko) and an element optimization (short Eo) For a real model implementation (model is realized, for example, by mapping in a programming language using all suitable properties of the target language) is applied individually or jointly to the implementation of the model or to a part of the model, thereby reducing the processing time (shortened computing time, or execution time) of the model implementation or part of the implementation occurs.
2. Verfahren der Kausalkettenoptimierung gemäß Patentanspruch 1 , dadurch gekennzeichnet, daß eine Kausalkette, ein Teil einer langen Kette oder eine Gruppe von Kausalketten nur bedingt bearbeitet (Elementverwaltung) wird und damit je nach dem, ob die Bedingung (oder Bedingungen) erfüllt ist oder nicht geringere Bearbeitungszeit (Rechenzeit) in Anspruch nimmt, wobei die Bedingung(en) im wesentlichen auf der Auswertung des aktuellen Zustand des Modells (Markierung, sonstige Daten), seiner Kausalketten bzw. seiner Kausalketten- Gruppen und der Verwendung geeigneter Strategien, gemäß Patentanspruch 5, beruht und nur im Falle mindestens eines aktiven Zustandes (Markenanzahl >= Kantengewicht oder Markenanzahl ungleich 0) innerhalb der Kausalkette, eines Teils einer Kausalkette bzw. einer Gruppe von Kausalketten ihre Bearbeitung ermöglicht.2. Process of causal chain optimization according to claim 1, characterized in that a causal chain, part of a long chain or a group of causal chains is processed only to a limited extent (element management) and thus depending on whether the condition (or conditions) is met or not takes less processing time (computing time), the condition (s) essentially based on the evaluation of the current state of the model (marking, other data), its causal chains or its causal chain groups and the use of suitable strategies, according to claim 5, is based and only possible in the case of at least one active state (number of marks> = edge weight or number of marks not equal to 0) within the causal chain, part of a causal chain or a group of causal chains.
3. Elemente (funktionale Modellelemente) der zustands- bzw. ablauforientierten Modelle bestehen aus einer Bedingung oder Bedingungen (Charakterisiert das Kriterium, bei dem beispielsweise eine Zu- standsänderung eintritt) und aus einem bedingungsabhängigen Teil (realisiert beispielsweise den Übergang zwischen Zuständen dieses Modells), hierauf beruht das Verfahren der Elementoptimierung gemäß Patentanspruch 1 , dadurch gekennzeichnet, daß die Umsetzung, der Modellelemente, insbesondere für realisierbare Lösungen, die in SPS- Programmiersprachen (oder ähnlichen Mechanismen) abgebildet werden, erfolgt unter Verwendung geeigneter Strategien, gemäß Patentanspruch 5, in einem oder mehreren Bedingungsteilen eines Modellelementes das Hinzufügen von Verzweigungsstellen (beispielsweise eine Programmverzweigung mittels Sprüngen), anhand derer der bedingungsabhängige Teil (oder Teile) eines Modellelementes nur bei erfüllter Bedingung bearbeitet wird, dieser beansprucht somit keine Bearbeitungszeit (Rechenzeit), bei nicht Erfüllung eines der Bedingungsteile ist die Bearbeitung des Modellelementes abgeschlossen und somit können Folgeaufgaben (z.B. Bearbeitung des nächsten Modellelementes) bearbeitet werden.3. Elements (functional model elements) of the state- or process-oriented models consist of a condition or conditions (characterizes the criterion in which, for example, a state change occurs) and a condition-dependent part (realizes, for example, the transition between states of this model), this is the basis of the method of element optimization according to claim 1, characterized in that the implementation of the model elements, in particular for realizable solutions, which are mapped in PLC programming languages (or similar mechanisms), is carried out using suitable strategies, according to claim 5, in one the addition of branching points (for example a program branching by means of jumps), on the basis of which the condition-dependent part (or parts) of a model element is only processed when the condition is fulfilled, thus does not claim any Processing time (computing time), if one of the condition parts is not met, the processing of the model element is completed and subsequent tasks (e.g. Processing of the next model element).
4. Verfahren der Elementverwaltung gemäß Patentanspruch 2, dadurch gekennzeichnet, daß ein Mechanismus, der zur Laufzeit besteht und dazu geeignet ist, daß sich, abhängig vom Modellzustand, Modellelemente selbst und / oder andere Modellelemente bei diesem zur Bearbeitung anmelden und / oder wieder abmelden und/oder von anderen Modellelementen an- und / oder abgemeldet werden oder ein Verwalter übernimmt ganz oder teilweise die An- und Abmeldung, wobei dieser Mechanismus ggf. mehrfach vorkommen kann, alternativ kann mittels eines Verteilers (Sprungverteiler) die Bearbeitung der einzelnen Netzelemente koordiniert sein, wobei Modellelemente alle am Modell mitwirkenden Elemente umfaßt.4. The method of element management according to claim 2, characterized in that a mechanism that exists at runtime and is suitable for, depending on the model state, model elements themselves and / or other model elements to register for processing and / or deregister and to / or be registered and / or deregistered by other model elements or an administrator takes over the registration and deregistration in whole or in part, whereby this mechanism can possibly occur several times, alternatively the processing of the individual network elements can be coordinated by means of a distributor (branch distributor), where model elements include all elements involved in the model.
5. Verfahren der Strategien gemäß Patentanspruch 2 und 3, dadurch gekennzeichnet, daß unterschiedliche Eigenschaften der (Teil-) Modelle, des im Modell abgebildeten Prozesses und der Zielplattform erfordern auch unterschiedliche Verfahren, diese Strategien basieren auf der plattformspezifischen Bearbeitungszeit der benötigten Befehle, den sprachspezifischen Eigenschaften der Zielplattform, der Häufigkeit des eintreten von Zustandsübergängen im Modell bzw. bezogen auf ein Modellelement, Anzahl der Übergänge insgesamt, der Anzahl nebenläufiger Zustandsübergänge, der Anzahl gleichzeitig aktiver Zustände, der Aufenthaltswahrscheinlichkeit von Marken im Netz (Haupt- und Nebenwanderwege der Marken, kritischer Pfad), der benötigten Rechenzeit für einen, bzw. keinen Zustandswechsels, der Beschränkung auf nur einen aktiven Zustand bzw. das auftreten dieser Eigenschaft in einem (Teil-) Netz (Ein- Marken- Netze bzw. Bereiche), dem Grad der Vermaschung, der Länge von Kausalketten, der Zerlegung von Ketten in Teilketten, des vorhanden seiens von aktiven Zuständen in (Teil-) Ketten oder (Teil- )Netzen, der Beendigung der Bearbeitung nachfolgender (Teil-)Ketten oder (Teil-) Netze, wenn offensichtlich kein Zustandswechsel mehr erfolgen kann, der Position (Reihenfolge der Bearbeitung) des Elementes im Netz (oben, unten) oder in der Kette, der Häufigkeit der Bearbeitung eines Elementes (Element, Kette, Netz), der Umfang eines Modellelementes, der Zerlegung einer Bedingung in Teilbedingungen, dem zeitlichen Abstand zwischen Erfüllung einer Teilbedingung und der Erfüllung der ganzen Bedingung, der Verweildauer von Marken in (Teil-)Netzen, der Verwaltung der zu bearbeitende Elemente mittels Sprungverteiler oder Listen, der Netzeigenschaften tot und lebendig (markenfreie Netze oder Teilnetze bzw. (Teil-)Netze mit toter Markierung), Faltung oder Paralleliesierung (Identische binäre Netze codiert mit Bitfolgen (wie Byte, Wort, usw.) der Festlegungen entsprechender Netzeigenschaften (Ein- Markennetze), der Analyse der Prozeßeigenschaften zur Entwurfs- und zur Laufzeit, um Optimierungsstrategie zu ermitteln, der sinngemäßen Anwendung der Strategien auf Farbige Netze, Prädikatsnetze, Netze mit Platzkapazitäten >1, sonstige Netze. 5. The method of strategies according to claim 2 and 3, characterized in that different properties of the (sub) models, the process shown in the model and the target platform also require different methods, these strategies are based on the platform-specific processing time of the required commands, the language-specific Properties of the target platform, the frequency of occurrence of state transitions in the model or in relation to a model element, total number of transitions, the number of concurrent state transitions, the number of concurrent active states, the probability of brands staying in the network (main and secondary migration routes of the brands, more critical Path), the computing time required for one or no change of state, the restriction to only one active state or the occurrence of this property in a (sub) network (One-brand networks or areas), the degree of meshing, the length of causal chains, the decomposition of chains into partial chains, the existence of active states in (partial) chains or (partial) networks, the termination of the Processing of subsequent (partial) chains or (partial) networks, if obviously no change of state can take place, the position (order of processing) of the element in the network (top, bottom) or in the chain, the frequency of processing an element ( Element, chain, network), the scope of a model element, the decomposition of a condition into subconditions, the time interval between the fulfillment of a subcondition and the fulfillment of the entire condition, the length of time of marks in (sub) networks, the management of the elements to be processed by means of jump distributors or lists, the network properties dead and alive (brand-free networks or subnetworks or (sub) networks with dead marking), folding or parallelization (identical bin Right networks coded with bit sequences (such as byte, word, etc.), the definition of corresponding network properties (one-mark networks), the analysis of the process properties at design and at runtime to determine the optimization strategy, and the appropriate application of the strategies to colored networks, predicate networks , Networks with capacity> 1, other networks.
PCT/EP2001/005536 2000-05-27 2001-05-16 Method for optimizing the execution time for conversions of state or operational sequence oriented models into real solutions WO2001093114A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001267443A AU2001267443A1 (en) 2000-05-27 2001-05-16 Method for optimizing the execution time for conversions of state or operational sequence oriented models into real solutions

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10026387A DE10026387B4 (en) 2000-05-27 2000-05-27 Process for optimizing execution time for implementations of state- or process-oriented models, such as Petri nets or machines
DE10026387.9 2000-05-27

Publications (2)

Publication Number Publication Date
WO2001093114A2 true WO2001093114A2 (en) 2001-12-06
WO2001093114A3 WO2001093114A3 (en) 2002-07-11

Family

ID=7643834

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2001/005536 WO2001093114A2 (en) 2000-05-27 2001-05-16 Method for optimizing the execution time for conversions of state or operational sequence oriented models into real solutions

Country Status (3)

Country Link
AU (1) AU2001267443A1 (en)
DE (1) DE10026387B4 (en)
WO (1) WO2001093114A2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10028140A1 (en) 2000-06-07 2001-12-20 Siemens Ag Method for organizing the execution of electronically controlled switching processes activates sequential and/or parallel steps by preset transition conditions while deactivating them under the same switching processes.
DE102023205246B3 (en) 2023-06-05 2024-07-04 Robert Bosch Gesellschaft mit beschränkter Haftung PETRI NET-BASED MODELING AND DETECTION OF A MALFUNCTION IN A SENSOR SYSTEM

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0618517A1 (en) * 1993-04-02 1994-10-05 Mitsubishi Denki Kabushiki Kaisha Programmable controller and SFC program executing method using the programmable controller
EP0697638A1 (en) * 1994-07-29 1996-02-21 Bull S.A. Method of detection of complete sequences and failed sequences in a system for situation recognition
US5621639A (en) * 1989-06-01 1997-04-15 Fray; Paul J. Process control
US5623401A (en) * 1995-08-16 1997-04-22 Allen-Bradley Company, Inc. Industrial controller with optimized execution of relay ladder logic programs

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2679398B1 (en) * 1991-07-16 1993-10-08 Alcatel Cit METHOD FOR ASSISTING THE DEVELOPMENT OF A SET OF COMMUNICATING AUTOMATONS.
DE4132666A1 (en) * 1991-10-01 1993-04-08 Dieter Dr Vetterkind Learning process network for modelling entire complex processes - contains network of metacellular automata, double Pteri network, evolutionary process moudle and diverse operators.
DE19850324C2 (en) * 1998-11-02 2003-11-13 Abb Patent Gmbh Process for the automated mapping of target system-neutral control engineering planning results to target system-specific control technology structures
DE19951152A1 (en) * 1998-11-05 2000-05-11 Ibm Device for calculating starting conditions in computer system operating as workflow management system continues process to start target activity if logical expression is true

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5621639A (en) * 1989-06-01 1997-04-15 Fray; Paul J. Process control
EP0618517A1 (en) * 1993-04-02 1994-10-05 Mitsubishi Denki Kabushiki Kaisha Programmable controller and SFC program executing method using the programmable controller
EP0697638A1 (en) * 1994-07-29 1996-02-21 Bull S.A. Method of detection of complete sequences and failed sequences in a system for situation recognition
US5623401A (en) * 1995-08-16 1997-04-22 Allen-Bradley Company, Inc. Industrial controller with optimized execution of relay ladder logic programs

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DESCOTES-GENON B: "COLOURED PETRI NETS: A SAME TOOL FOR MODELLING, SIMULATION AND CONTROL OF MANUFACTURING SYSTEMS" PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON SYSTEMS, MAN, AND CYBERNETICS. SAN ANTONIO, OCT. 2 - 5, 1994, NEW YORK, IEEE, US, Bd. 2, 2. Oktober 1994 (1994-10-02), Seiten 1677-1682, XP000531267 ISBN: 0-7803-2130-8 *
FAHMEEDA QADRI ET AL: "TIMED PETRI NETS FOR FLEXIBLE MANUFACTURING CELL DESIGN" PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON SYSTEMS, MAN, AND CYBERNETICS. SAN ANTONIO, OCT. 2 - 5, 1994, NEW YORK, IEEE, US, Bd. 2, 2. Oktober 1994 (1994-10-02), Seiten 1695-1699, XP000531269 ISBN: 0-7803-2130-8 *
REHKOPF A: "GESTEUERTE EREIGNISKESKRETE PROZESSE: WEITERFUHRENDE UBERLEGUNGEN ZUR QUACK'SCHEN WASCHMACHINE CONTROL OF DISCRETE EVENT PROCESSES: FURTHER REFLECTIONS TO THE QUACK'S WASHING-MACHINE" AUTOMATISIERUNGSTECHNIK - AT, OLDENBOURG VERLAG. MUNCHEN, DE, Bd. 43, Nr. 5, 1. Mai 1995 (1995-05-01), Seiten 242-248, XP000507698 ISSN: 0178-2312 *

Also Published As

Publication number Publication date
WO2001093114A3 (en) 2002-07-11
DE10026387A1 (en) 2001-12-06
AU2001267443A1 (en) 2001-12-11
DE10026387B4 (en) 2007-04-19

Similar Documents

Publication Publication Date Title
DE69924857T2 (en) PROGRAM CODE CONVERSION
DE68919041T2 (en) United variations in pattern-driven, rule-based production systems for artificial intelligence.
DE60011479T2 (en) XML ROBOT
DE3855860T2 (en) Circuit change system and method, method for generating inverted logic and logic design system
DE60111376T2 (en) SYSTEM AND METHOD FOR DOCUMENT PROCESSING
DE60208778T2 (en) DATA STRUCTURE FOR INFORMATION SYSTEMS
DE68928190T2 (en) Dynamic redefinition of a frame structure
DE3855212T2 (en) Procedure for calculating a transitive closure
DE3503119A1 (en) METHOD FOR AUTOMATICALLY GENERATING A SOURCE PROGRAM
DE69206917T2 (en) Auxiliary procedures for the development of a group of communicating machines
EP2306349A1 (en) Method for verifying the real-time capability of a system
WO2007137309A1 (en) Method for controlling a relational database system
DE3855574T2 (en) Fast procedure for bidirectional inference strategy
DE102016007651B4 (en) Numerical control with function for automatically selecting a storage destination for a machining program
DE69026845T2 (en) Compiler-type knowledge processing tool, a high-speed derivative method therefor, and a system using the tool
DE102018114303A1 (en) Method for graphic processing using predefined render chunks
DE69030942T2 (en) Method and device for assigning operations
WO2021018438A1 (en) Method for operating a lighting system for a vehicle
WO2001093114A2 (en) Method for optimizing the execution time for conversions of state or operational sequence oriented models into real solutions
DE102009004810A1 (en) A method of executing one or more programs on a multi-core processor and multi-core processor
EP1899773B1 (en) Method for determination of the processing sequence of components of a function plan and electronic data processing unit for carrying out said method
EP1166215A2 (en) Method for the automatic retrieval of engineering data of systems
DE10110578A1 (en) Hierarchical priority filter with integrated serialization
DE2613703C2 (en) Circuit arrangement for translating program texts
DE102005010405A1 (en) Software system arrangement for application development, has controller-component defined for switching between views and/or presentation-forms, and process flow component to determine sequence of switching between forms

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: A3

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP