DE10026387A1 - Procedure for optimizing execution time for the implementation of state- or process-oriented models in real solutions - Google Patents
Procedure for optimizing execution time for the implementation of state- or process-oriented models in real solutionsInfo
- Publication number
- DE10026387A1 DE10026387A1 DE10026387A DE10026387A DE10026387A1 DE 10026387 A1 DE10026387 A1 DE 10026387A1 DE 10026387 A DE10026387 A DE 10026387A DE 10026387 A DE10026387 A DE 10026387A DE 10026387 A1 DE10026387 A1 DE 10026387A1
- Authority
- DE
- Germany
- Prior art keywords
- model
- switching
- condition
- chain
- transition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23002—Petrinet
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23257—Grafcet
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23267—Program derived from sequence time diagram and stored in table
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/34—Director, elements to supervisory
- G05B2219/34325—Speed up, optimize execution by combining instructions belonging together
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
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
Description
Die Kettenoptimierung (Ko), gemäß Patentanspruch 2, ist anwendbar auf alle Abbildungen eines Mo dells 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 mo dells and can be used simultaneously with element optimization (Eo), according to claim 3 be, the strategies according to claim 5 alternating within a mapping, are to be used several times and simultaneously.
Ko geht davon aus, daß zusammenhängende Kausalketten (unverzweigte Folge von Modellelemen ten) in denen es keinen aktiven (markierten) Zustand gibt, nicht bearbeitet werden müssen. Dies be grü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 ei nem 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 Modell elemente 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) (Abb. 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. This is based on the fact that a change of state can only start from an active state. An active state is understood as a state which has a marker which 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 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 ( Fig. 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äh ler oder ein anderer Mechanismus sein. Das Flag wird hier nur beispielhaft verwendet.If several states can be marked in a causal chain, the flag can also be a FIFO or some other mechanism. The flag is used here only as an example.
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, the execution management of the actual control network.
Sehr lange Kausalketten können unter dem Gesichtspunkt der gesteigerten Performance über mehre re Ko-Flags (Abb. 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.From the point of view of increased performance, very long causal chains can have several co-flags ( Fig. 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 one Part of a chain.
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.Since the degree of optimization essentially depends on the length of the causal chains and possibly on the time that a causal chain is brand-free and the properties that the target language (e.g. jumps with dynamic goals), a calculation can be made (if necessary empirically), the result of which is Provides information whether a knockout from a chain is worthwhile or not. It can be used to map chains with and without knockout included.
I. 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 in Software-Werkzeugen (Tools) als eine Betriebsart dieser Tools hilf reich sein.I. d. As a rule, co-flags, even if they can be represented by model elements, are not in the Model explicitly stated, since they only take over the function of code optimization. Possibly. can help the explicit representation in software tools as an operating mode of these tools be rich.
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 Nach folger-Elemente, die anschließend aufgrund des Modellzustandes einen Zustandswechsel herbeifüh ren können, in eine dynamische Liste einträgt und sich selbst und ggf. weitere aus dieser Liste ent fernt. 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 Ver waltungsaufwand der Listen sehr hoch, so daß der Nutzen erst ab einer bestimmten Netzgröße gege ben ist. In diesem Fall können die Flags einen Pointer oder ähnliche Mechanismen darstellen.An efficient variant, provided the programming language and / or the operating system and / or the Development environment this supports is that a predecessor element (when switching) all after follower elements, which then cause a change of state based on the model state can enter them in a dynamic list and remove themselves and possibly others from this list distant. The list contains all model elements that are processed based on the model state have to, or don't need to be edited, whichever is more beneficial. Often the Ver administration of the lists is very high, so that the benefits only come from a certain network size ben is. 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.The upper program code (example 1) shows that only the program lines up to the RET command subject to constant editing, while the part from T2 to the last line is only processed, if the Ko-Flag allows it.
Der untere Programmcode unterliegt vollständig (jede Zeile) der Bearbeitung.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-ähnli che Bearbeitungsmechanismen geeignet. Läßt sich neben den Modellelementen die für die Zu standsübergä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. D. h., die Schaltbedingung (oder ähnliche Mechanismen) wird von der Schalthandlung (oder ähnliche Mechanismen) getrennt. The element optimization (Eo), according to claim 3, is essentially for SPS and SPS-similar suitable machining mechanisms. In addition to the model elements, you can use the for Status transitions are also responsible for statuses (magnifying glasses) and actions (IEC61131) and others Apply model elements. The individual model elements are structured. That is, the switching condition (or similar mechanisms) is determined by the switching action (or similar Mechanisms) separately.
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 Schaltbedingun gen der Einfachheit halber verzichtet.In this example, the causal chain controlled by Ko (short Ko chain) is always marked, if P2 is also 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 considered omitted for the sake of simplicity.
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 and the so-called Switching (or similar) takes place. For example, with a jump distributor, one List or table.
Da die Einführung eines Programmsprungs (Programmverzweigung) hin zur Schalthandlung und wie der zurück zum Sprungverteiler zusätzlich Rechenzeit kostet, kann eine plattformabhängige Berech nung 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 branch) towards switching operations and how which costs additional computing time back to the jump distributor, can a platform-dependent calculation possible optimization. This determines whether the model element is better linear or is structured. The decisive factors in such a calculation are the number the edges (edge: (Baumgarten, B .: Petri-Netze: basics and applications. Mannheim, Vienna, Zurich: Wissenschaftsverlag 1990. ISBN 3-411-14291: page 17) and their required computing time, the Computing time required for program branching (jumps). In unfavorable cases it can also be too a deterioration in the computing time required.
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, contain 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 the elements deeper levels through more control structures are managed (executed) than elements in higher ones Levels. Elements of the highest level are always processed.
Anwendungsgebiete der Ausführungszeitoptimierung für Umsetzungen von zustands- bzw. ablaufori entierten Modellen in reale Lösungen, gemäß Anspruch 1, sind alle Automaten (Begriff der Automa ten- 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 Hard ware, 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 Spra chen, realisiert werden. Zu den Steuerungsaufgaben zählen auch betriebswirtschaftliche Steuerungs-, Organisations- oder andere Steuerungsaufgaben. Ein mit Ao 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 Ge schwindigkeitszunahme ist abhängig von der Topologie des Modells und letztendlich von der gewähl ten Plattform (Compiler Werkzeug, Hardware, auf der die Steuerungslösung implementiert wird, der gewählten Programmiersprache, wie C, Pascal, Assembler, Programmiersprachen der DIN EN 61131- 3, wie AWL, ST und ggf. weiterem).Areas of application of execution time optimization for implementations of status or workflow ented models in real solutions, according to claim 1, are all automatons (term of automa ten or graph theory) and Petri nets (Petri net-like), which are typically mentioned, whose mode of operation is status or process-oriented, this also includes 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) in software or hardware goods, both or other implementations. However, it is particularly suitable for solving of software-based control tasks, which are carried out using a program generator and / or compiler or Assembler, interpreter, through a special operating system or runtime libraries (runtime) such as for example with a PLC (programmable logic controller) and / or processor-related language Chen, can be realized. The control tasks also include business management, Organizational or other control tasks. A source code (solutions) generated with Ao is accordingly, in particular the basis for a program, the processing time (time that a processor needed to do it) is significantly shortened. This is especially true for the real time capability of Control solutions (automation technology) of great interest. The actually reached Ge The increase in speed depends on the topology of the model and ultimately on the choice platform (compiler tool, hardware on which the control solution is implemented, the selected programming language, such as C, Pascal, assembler, programming languages of DIN EN 61131- 3, such as STL, ST and possibly other).
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 be kannt. Es gibt div. Varianten und Klassen der Theorien, die ausführlich in div. Veröffentlichungen dis kutiert 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 Mo delle jedoch effektiv plattformunabhängig eingesetzt werden. Eine mit der DIN EN 61131-3 stark ab gewandelte Form der Petrinetze ist seit 1995 bzw. 1993 (International) als Ablaufsprache (AS) bzw. Sequential Function Chart (SFC) genormt.Petri nets (short: Netz or Petrinetz (PN)) have been around since 1962 (automaton theory already exists longer) than typical representatives of state- or process-oriented models for discrete processes knows. There are various variants and classes of theories, which are discussed in detail in various publications are cut. The theory finds practical, industrial use only in exceptional cases, although the Number of uses has increased in recent years. In control technology, these Mo delle can be used effectively regardless of the platform. One with the DIN EN 61131-3 strongly changed form of Petri nets since 1995 or 1993 (international) as the language of expiry (AS) or Sequential Function Chart (SFC) standardized.
Die Abbildung bzw. Umsetzung eines Modells auf eine Programmiersprache erfolgt bisher in linearer Form. Lineare Form meint hier nicht einen Verzicht auf Unterprogrammtechniken. Vielmehr ist die Abbildung nach bestimmtem Schema, das die Modellelemente oder das Modell weitgehend zusam menhängend abbildet und keine Strukturierung bietet, die eine verbesserte Performance ergibt. Es sind zwei lineare Formen zur Modellelementabbildung bekannt, eine arbeitet vorwiegend mit spei chernden 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-Softwa reentwicklung: 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 Syn these von SPS-Programmen. Hüthig (1994). ISBN 37785-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 Be dingung Aufteilung in mehrere Teilbedingungen dem Patentanspruch.The mapping or implementation of a model to a programming language has so far been done in a linear manner Shape. Linear form here does not mean that subroutine techniques are not used. Rather, it is Illustration according to a certain scheme that largely combines the model elements or the model Depends on the menu and does not offer structuring that results in improved performance. It two linear forms for model element mapping are known, one mainly works with spei saving 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 redevelopment: 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 that essentially uses Boolean algebra and largely on storing and deleting commands are omitted ([A94]: Auer, A .: control technology and syn thesis of PLC programs. Hüthig (1994). ISBN 37785-2215-9 for example pages 135-137). The state of the art, although no published evidence is known, is Illustration of the model elements using so-called high-level languages (C, Pascal) Instructions. Here is already a structuring of the model elements by the platform given, this is not subject to the claim according to claim 3, insofar as this is a (the only) method of the programming language is. However, the Be Condition split into several sub-conditions the claim.
Ferner ist bekannt, daß die Abbildung von Kausalketten ([vA93], [vA94], [A94] und [F94]) durch An einanderreihung des Programmcodes der Ketten, ohne zusätzliche Überprüfung der Notwendigkeit einer generellen Bearbeitung durchzuführen, erfolgt. Hier unterliegt daher die Abbildung auf Hoch sprachen gemäß Patentanspruch 2 dem Patentanspruch.It is also known that the representation of causal chains ([vA93], [vA94], [A94] and [F94]) by An Sequence of the program code of the chains without additional checking of the necessity general processing. Here, therefore, the image is subject to high spoke according to claim 2 of the claim.
Hardwarebasierte Lösungen sind in König, R.; Quäck, L.: Petri-Netze in der Steuerungs- und Digital technik. 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-Netze 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) ab gearbeitet, womit die Kausalstruktur der Modell-Topologie unberücksichtigt bleibt. Ein Zustands wechsel 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. Models shown in a linear manner are usually completely removed from the processor system (entire model) worked, whereby the causal structure of the model topology is not taken into account. A state Changes in a model can only take place on active states (marked states). Just longer causal chains or parts of such a causal chain that are not currently active the current program execution, therefore do not have to be edited what the linear representation of the model not taken into account.
- 2. SPS-Plattformen (z. B. AWL der DIN EN 61131-3 oder die SPS-Sprache Step 5® (AWL) der Fir ma 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 Schaftbedingung 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.2. PLC platforms (e.g. STL from DIN EN 61131-3 or the PLC language Step 5® (STL) from Fir ma Siemens®) or similar mostly edit the code line by line. That is, that shown Model elements ([vA93], [vA94], [A94] and [F94]) that often have an execution condition (generally called shaft condition here), and one dependent on it part to be carried out (here generally called switching action), completely processed, although this would only be necessary for the switching action if the switching condition is fulfilled.
Die Erfindung wird im folgenden anhand weiterer Abbildungen noch genauer beschrieben. The invention is described in more detail below with the aid of further illustrations.
Der Vorgang einer gezielten Auswahl, eines gezielten Entwurfs oder beidem von Anweisungssequen zen, Algorithmen und Daten bzw. Datenstrukturen zur Erzeugung kleiner, schneller Programme, heißt Optimierung.The process of a targeted selection, a targeted design, or both instruction sequences zen, algorithms and data or data structures for generating small, fast programs Optimization.
Bedeutend für die Auswahl von Compiler und Codegeneratoren kann die Fähigkeit der automatischen Optimierung unter Berücksichtigung zielsystemspezifischer Merkmale (Hardware, Betriebssystem, Runtime) und Eigenschaften der jeweiligen Sprache (grafisch, textuell), sein. Gerade durch die Nor mung der SPS-Sprachen suchen Anbieter immer wieder nach Differenzierungsmerkmalen ihrer Pro dukte zu denen der Mitbewerber. Die Leistungsfähigkeit automatischer Optimierungen stellt eine nütz liche und vor allem vergleichbare Differenzierung, ohne große Verfärbungsmöglichkeit des Marketing, dar, sofern einheitliche Benchmarks existieren.Significant for the selection of compilers and code generators can be the ability of automatic Optimization taking into account target system-specific features (hardware, operating system, Runtime) and properties of the respective language (graphical, textual). Straight through the north Using the PLC languages, providers are always looking for differentiation features of their pro products to those of the competitors. The power of automatic optimizations is a useful one Differentiation, above all, comparable, without great discoloration of marketing, if there are uniform benchmarks.
Aspekte der Optimierung sind auch vom Anwendungsprogrammierer zu berücksichtigen. Er ist dabei oft auf Herstellerangaben bezüglich der Bearbeitungszeiten von Operatoren in Verbindung mit be stimmten Datentypen, von Schnittstellen, vom Adressierungsschema, dem Speicherbedarf und ande rem angewiesen. Herstellerangaben sind jedoch nur selten zu finden. Leider existieren häufig nur pauschale und allgemeine Angaben, die nur über eine sehr begrenzte Tauglichkeit hinsichtlich einer präzisen Analyse aufweisen.Aspects of optimization must also be considered by the application programmer. He is with us often on manufacturer information regarding the processing times of operators in connection with be agreed data types, interfaces, addressing scheme, memory requirements and others rem instructed. However, manufacturer information is rarely found. Unfortunately, often only exist general and general information that has only a very limited suitability with regard to a have precise analysis.
Effiziente Optimierung muß als ein kontinuierlicher, entwicklungsbegleitender Prozeß verstanden sein.
Optimierungsbemühungen am Ende der Entwicklung sind häufig aufwendiger und weniger effektiv.
Optimierung ist gleichermaßen Wissenschaft und Kunst. Die Wissenschaft stellt die Methoden der
Optimierung, und die Kunst ist die Beherrschung und der effiziente Einsatz der Methoden. Bereits vor
Entwicklungsbeginn sollte das Optimierungsziel bestimmt sein. Allgemeine Zielsetzung besteht hin
sichtlich
der Reaktionsgeschwindigkeit (Echtzeitverhalten),
des Kommunikationsaufwandes (Flaschenhals Feldbus), sowie
des Speicherbedarf (Programm und Daten),
für Steuerungen und zusätzlich für Applikationen mit visueller Oberfläche in
der Anzeigegeschwindigkeit (Schnelligkeit des Bildschirmaufbaus),
der subjektiven Geschwindigkeit (Wirkung auf den User) und,
dem Speicherbedarf für Grafiken.Efficient optimization must be understood as a continuous process accompanying development. Optimization efforts at the end of development are often more complex and less effective. Optimization is both science and art. Science presents methods of optimization, and art is mastery and efficient use of methods. The optimization goal should be determined before the start of development. The general objective is clear
the reaction speed (real-time behavior),
the communication effort (bottleneck fieldbus), as well
memory requirements (program and data),
for controls and additionally for applications with a visual surface in
the display speed (speed of screen construction),
the subjective speed (effect on the user) and,
the memory requirement for graphics.
Leider wirken Optimierungen des einen Merkmals oft zu Lasten des anderen. Es besteht selten die Möglichkeit, alle Merkmale zu optimieren. Häufig wirkt sich beispielsweise die Optimierung der Bear beitungszeit ungünstig auf den Speicherbedarf aus. Verkleinern oder Beschleunigen der Anwendung kann auch eine Transparenz durch Erzeugung kompakter, aber schwer lesbarer Codes mindern. Eine eindeutige Zielsetzung hilft, die Widersprüche der Optimierungsverfahren zu entscheiden.Unfortunately, optimizations of one feature often work at the expense of the other. It rarely exists Possibility to optimize all features. For example, the optimization of the bear often has an effect processing time unfavorably on the memory requirement. Reduce or speed up the application can also reduce transparency by generating compact but difficult to read codes. A clear objectives help to decide the contradictions of the optimization procedures.
Zeit ist Geld. Indirekt gilt dies auch für Programme. Ist der Source so ausgelegt, daß er nur minimale Rechenzeit beansprucht, steht bei gleicher Rechenleistung mehr Raum für die Implementierung weite rer Aufgaben zur Verfügung, bzw. die Reaktionsgeschwindigkeit steigt an. Mit erhöhter Reaktionsge schwindigkeit läßt sich ggf. aber auch ein erhöhter Ausstoß der automatischen Fertigung erreichen, was sich direkt in den betriebswirtschaftlichen Kennzahlen ablesen läßt oder eine oder eine schnellere Systemreaktion in Gefahrensituationen. Letztendlich gibt es noch ein weiteres Argument, von dem die ganze Branche lebt und das für eine Optimierung spricht. Gemeint ist die Psychologie bzw. Werbung, die das gute Gefühl der Sicherheit auslöst, dadurch, daß das Bewußtsein besteht, die Aufgabe hervor ragend gelöst zu haben. Die ständig steigende Leistung moderner Prozessoren ist wohl Ursache der Auffassung, Systemressourcen (Programm- und Datenspeicher, logische Programmlänge, usw.) sei en verschwenderisch zu nutzen, und damit sei das Geizen der Vergangenheit zuzuschreiben. Nicht jede Steuerung kann aus Kostengründen mit großzügigen Ressourcen ausgestattet sein. Man denke da an Klein- und Kleinststeuerungen. Moderne Automatisierungskonzepte beinhalten eine Verteilung der Steuerungen, sowie der I/O's im Feld. Immer häufiger sind mehrere Kommunikationsschnittstellen (Feldbus, LAN, WAN) gleichzeitig in Betrieb. Der Kommunikationsaufwand steigt deutlich an. Die be nötigten Rechenkapazitäten sind durch den Prozessor mit zu erbringen. Ferner verfügen moderne Applikationen über ein deutlich größeres Datenaufkommen, da einige Aufgaben (Qualitätssicherung, Protokollierung) zusätzlich in die SPS verlagert wurden und nicht zuletzt werden aus verschiedensten Gründen (Datenerfassung für Statistik, Historische Daten) mehr Daten erfaßt, als es früher üblich war. Nicht zuletzt werden die verwendeten Datentypen immer komplexer. Reichten vor wenigen Jahren noch BOOL und BYTE, kommen heute immer häufiger STRING, REAL und Datums- und Zeit-Typen zum Einsatz. Im allgemeinen ist der Aufwand für Optimierungen nicht zu unterschätzen. Neben der Aufwandsabschätzung ist die anzuwendende Strategie ein Risikofaktor.Time is money. This also applies indirectly to programs. Is the source designed so that it is minimal Computing time takes up more space for the implementation with the same computing power rer tasks available, or the reaction speed increases. With increased reaction speed, however, an increased output of the automatic production may also be achieved, what can be read directly in the business indicators or one or a faster one System reaction in dangerous situations. Ultimately there is another argument, of which the whole industry lives and that speaks for an optimization. What is meant is psychology or advertising, which triggers the good feeling of security, because the consciousness exists, the task to have solved outstandingly. The constantly increasing performance of modern processors is probably the cause of the Considers system resources (program and data storage, logical program length, etc.) to be to use it wastefully, and thus the miserliness can be attributed to the past. Not for cost reasons, each controller can be equipped with generous resources. Just think there on small and very small controls. Modern automation concepts include distribution the controls and the I / Os in the field. Multiple communication interfaces are becoming increasingly common (Fieldbus, LAN, WAN) in operation simultaneously. The communication effort increases significantly. The be the processor must provide the necessary computing capacity. Furthermore, modern Applications with a significantly larger data volume, as some tasks (quality assurance, Logging) have also been relocated to the PLC and, last but not least, are made up of different Reasons (data collection for statistics, historical data) collected more data than was previously the case. Last but not least, the data types used are becoming increasingly complex. Sufficient a few years ago still BOOL and BYTE, STRING, REAL and date and time types are more and more common today for use. In general, the effort for optimizations should not be underestimated. In addition to the Effort estimation is the strategy to be used as a risk factor.
Leistungsfähige Tools, die automatisch geeignete Strategien vorschlagen und mögliche Feinjustierun gen erlauben, sind hier hilfreich.Powerful tools that automatically suggest suitable strategies and possible fine adjustments allow gene are helpful here.
Im Vordergrund der Analyse zur Codeoptimierung sind Codestellen zu lokalisieren, die hohe Effizienz erwarten lassen. Ineffizient und sinnlos zeigen sich Optimierungen, sind sie auch extrem effektiv, de ren Bearbeitung nur selten erfolgt. Im besonderen Maße gilt dies für Codes mit zeitabhängiger Aus führungskontrolle und gleichzeitig großen Intervallen (z. B. 2 Stunden). Effektiv ist die Optimierung da, wo es gelingt, mit minimalem Aufwand eine möglichst deutliche Verbesserung zu erzielen.In the foreground of the analysis for code optimization, codes are to be localized, the high efficiency can be expected. Optimizations are inefficient and pointless, they are also extremely effective, de processing is seldom done. This applies in particular to codes with time-dependent off leadership control and at the same time large intervals (e.g. 2 hours). The optimization is effectively there, where it is possible to achieve the greatest possible improvement with minimal effort.
Starke Wirkung besitzen insbesondere die Codezeilen, die öfter durchlaufen werden als andere, wie Schleifen (Interationen: z. B. FOR, UNTIL, usw.). Mehr Durchläufe stellen sich aber auch ein für Code sequenzen, die nicht mittels Auswahlkonstrukten (Selektionen: z. B. IF, CASE, usw.) ausgeblendet sind. Für Schleifen mit vielen Interationen (Wiederholungen) greift der Multiplikatoreffekt für jede Ein sparung.The lines of code, which are run through more often than others, such as Loops (interactions: e.g. FOR, UNTIL, etc.). However, more runs also arise for code sequences that are not hidden using selection constructs (selections: e.g. IF, CASE, etc.) are. For loops with many interactions (repetitions), the multiplier effect applies to every one saving.
Für Codesegmente im Schleifenrumpf gilt:The following applies to code segments in the loop body:
Codezeilen, die nicht zwingend der Wiederholung bedürfen, gehören nicht in den Schleifenrumpf. Auch harmlos anmutende Bausteinaufrufe sind diesbezüglich zu untersuchen, verbirgt sich doch ggf. viel Code hinter diesem. Aufwendige Berechnungen lassen sich häufig in einen interationsabhängigen und einen unabhängigen zerlegen. Der unabhängige Teil steht außerhalb des Schleifenrumpfs. Sein Ergebnis wird zwischengespeichert. Die Vereinigung mit dem schleifenabhängigen Teil findet im Rumpf mittels der Variablen statt. Sind Bausteinaufrufe (FB) innerhalb von Schleifen unumgänglich, läßt sich auch die Parameterübergabe in einen interationsabhängigen und einen unabhängigen Teil zerlegen.Lines of code that do not necessarily need to be repeated do not belong in the loop body. Block calls that appear harmless should also be examined in this regard, as they may be hidden a lot of code behind this. Complex calculations can often be broken down into an interdependency and disassemble an independent. The independent part is outside the loop body. His The result is cached. The union with the loop-dependent part takes place in the Fuselage using the variables instead. If block calls (FB) are unavoidable within loops, the parameter transfer can also be divided into an interdependent and an independent part disassemble.
Vielfach gibt es systemeigene Datentypen. Diese besitzen dann Geschwindigkeitsvorteile.There are often native data types. These then have speed advantages.
Oft kann eine grundsätzliche Aussage in Form einer Rangliste der Verarbeitungsgeschwindigkeiten für Datentypen bestehen. So beanspruchen Ganzzahloperationen immer weniger Rechenzeit als Gleit kommaoperationen. Um die vermeindliche Genauigkeit der Nachkommastellen zu erreichen, erfolgt die Darstellung und die Interpretation des Ganzzahlwertes als vielfaches (Kilo, Mega) oder als Bruch teil (Milli, Mikro). Prozessoren verwenden auf Grund ihrer Konstruktion Adressierungschemata. Spei cherzugriffe im prozessoreigenen Format bieten Geschwindigkeitsvorteile. Direkte Speicherzugriffe (%M. . .) sollten, sofern nicht zwingend, die Adressierungsspezifika der Prozessoren berücksichtigen (beispielsweise nur gerade Adressen oder durch 4 teilbare).Often a basic statement in the form of a ranking of the processing speeds for Data types exist. Integer operations take less and less computing time than glide comma operations. To achieve the avoidable accuracy of the decimal places, is done the representation and interpretation of the integer value as a multiple (kilo, mega) or as a fraction part (milli, micro). Because of their design, processors use addressing schemes. Spei Access to the processor in its own format offers speed advantages. Direct memory access (% M...) Should, if not mandatory, take into account the addressing specifics of the processors (for example, only even addresses or divisible by 4).
Auch hinsichtlich arithmetischer Berechnungen sind Verbesserungen möglich. Der Austausch einer Multiplikation mit zwei durch eine Schiebeoperation um ein Bit bringt meistens Vorteile. Unbedingt zu vermeiden sind arithmetische Berechnungen, die ausschließlich aus Konstanten und Literalen beste hen (INT#10 + INTKonstante 15). Wesentlich schneller ist zur Entwurfzeit das Ergebnis manuell zu er mitteln und nur das Ergebnis in den Code einzusetzen.Improvements are also possible with regard to arithmetic calculations. The exchange of one Multiplication by two by a shift operation by one bit usually has advantages. Absolutely too Avoid arithmetic calculations that consist only of constants and literals hen (INT # 10 + INT constant 15). The result is much quicker to design manually at design time average and just insert the result into the code.
Allgemein sollten auch wiederkehrende Berechnungen oder Teile von Berechnungen nur ein einziges Mal durchzuführen sein, um die Ergebnisse in Variablen zwischenzuspeichern. Dies erleichtert die Wartung und steigert die Performance, da Variablenzugriffe oft deutlich schneller sind als Berechnun gen.In general, recurring calculations or parts of calculations should only be one Times to be carried out in order to buffer the results in variables. This makes it easier Maintenance and increases performance, since variable access is often significantly faster than calculations gene.
Bestehen systemspezifische Unterschiede hinsichtlich der Verarbeitungszeit von Konstanten und Va riablen, sollten entsprechende Erkenntnisse die Codierung beeinflussen. Gleiches gilt für Daten mit temporärem oder statischem Charakter.There are system-specific differences in the processing time of constants and Va reasonable, should corresponding knowledge influence the coding. The same applies to data with temporary or static.
Bedeutend kann auch die Schnittstellenwahl sein. Beispielsweise kann die VAR_IN_OUT-Schnitt stelle, je nach Implementierung, einen Zeiger auf die eigentliche Variable darstellen oder eine mehrfa che Datenkopie (VAR_INPUT und VAR_OUTPUT).The choice of interface can also be important. For example, the VAR_IN_OUT section Depending on the implementation, put a pointer to the actual variable or a multiple data copy (VAR_INPUT and VAR_OUTPUT).
Die Kenntnis der Auswirkungen auf das Zeitverhalten der Prinzipien der Überladung und der Typisie rung von Operationen und Parametern sind nutzbar.Knowledge of the effects on the timing of the principles of overloading and typing Operations and parameters can be used.
Einen Überblick, wenn auch nicht mit Anspruch auf Vollständigkeit, vermittelt Tabelle 1.1. Table 1.1 provides an overview, although not with claim to completeness.
Im Gegensatz zu vielen EDV-Anwendungen, die üppige Hardwareressourcen verlangen, sind diese für Steuerungen oft stark begrenzt. Für die Unterbringung umfangreicher Funktionalität auf begrenzten Ressourcen entsteht die Forderung nach Kompaktheit des ausführbaren Codes.In contrast to many IT applications that require extensive hardware resources, these are often very limited for controls. For housing extensive functionality on limited Resources require the compactness of the executable code.
Kompakter Code ist häufig von der Sprachwahl abhängig. Die Erzeugung ausführbaren Codes, aus grafischen Sprachen (KOP; FBD, AS) und Hochsprachen (ST) nutzt oft Zwischenvariablen, die dem Anwender verborgen bleiben. Bei Verwendung von AWL hingegen kontrolliert der Entwickler Code und Speicherbedarf.Compact code often depends on the choice of language. The generation of executable codes from graphic languages (LAD; FBD, AS) and high-level languages (ST) often use intermediate variables that the Stay hidden from users. However, when using STL, the developer checks the code and memory requirements.
Kompakter Code entsteht auch durch wiederverwendbare Bausteine. Ihr Code existiert nur einmal, auch bei Mehrfachaufrufen.Compact code is also created by reusable building blocks. Your code only exists once even with multiple calls.
Kompaktheit unterstützende Maßnahmen beruhen im wesentlichen auf dem Entfernen überflüssigen
Codes. Dieser ist manchmal schwierig und aufwendig aufzufinden. Das Entwicklungssystem sollte
entsprechende Dienste anbieten. Wünschenswert sind Funktionen wie
Measures supporting compactness are essentially based on the removal of unnecessary codes. Sometimes this is difficult and time-consuming to find. The development system should offer appropriate services. Functions such as are desirable
- - Finden nicht benutzter Variablen,- find unused variables,
- - Codesequenzen, die mehrfach auftreten, lokalisieren,- locate code sequences that occur several times,
- - Aufspüren toter Anweisungen (Anweisungen, die aufgrund logischer Fehler niemals zur Ausführung gelangen),- Tracking down dead instructions (instructions that due to logical errors can never be used Execution),
- - Analyse bezüglich zu großer String-Deklarationen (Maximale Stringgröße 45 Zeichen, alle Stringvariablen sind jedoch als STRING[150] vereinbart),- Analysis regarding too large string declarations (maximum string size 45 characters, all However, string variables are declared as STRING [150]),
- - Entdecken von Variablen, die nur einmal benutzt sind (Indiz für überflüssigen Code) und- Detection of variables that are used only once (indication of unnecessary code) and
- - Ermitteln ungenutzter Datenelemente in Arrays, Strukturen und Aufzählungsvariablen.- Determine unused data elements in arrays, structures and enumeration variables.
Die IEC 61131 sieht für Multielementvariablen eine aufeinanderfolgende Speicherbelegung der ein zelnen Elemente vor. Analoges gilt für Instanzen (Programme und Funktionsbausteine), sie verwalten ihre Daten prinzipiell wie Strukturen. Ausgenommen sind vielfach Variablen unterschiedlicher Spei cherbereiche (RETAIN, NON_RETAIN), einiger Klassen (VAR_GLOBAL, VAR_IN_OUT, VAR_TEMP) und lokalisierte Variablen. Die Berücksichtigung der adressierungsspezifika (nur gerade Adressen oder durch 4 teilbare) der Prozessoren kann zu erheblicher Speicherverschwendung führen. Oft bietet eine Sortierung der Deklarationsreihenfolge von Variablen innerhalb der POE und der Elemente in der Typvereinbarung einer Struktur verbesserte Speichernutzung. Die Sortierung erfolgt in Gruppen. Ent weder sind alle Platzhalter mit gleichem Speicherbedarf (1, 8, 16, 32, 64 Bit) zusammengefaßt oder die Anordnung erfolgt so, daß eine weitgehend lückenlose Speicherbelegung entsteht. Es sind insbe sondere hier, wie für einige andere Optimierungsvorschlägen auch, detaillierte Systeminformationen des Anbieters erforderlich.IEC 61131 sees a sequential memory allocation for multi-element variables individual elements. The same applies to instances (programs and function blocks), they manage their data basically like structures. Variables of different types are often excluded areas (RETAIN, NON_RETAIN), some classes (VAR_GLOBAL, VAR_IN_OUT, VAR_TEMP) and localized variables. Taking into account the addressing specifics (only even addresses or by 4 divisible) processors can lead to considerable memory waste. Often offers sorting the declaration order of variables within the POU and the elements in the Structure type agreement improved memory usage. The sorting is done in groups. Ent neither all placeholders with the same memory requirement (1, 8, 16, 32, 64 bit) are combined or the arrangement is such that a largely complete memory allocation arises. In particular especially here, as for some other optimization suggestions, detailed system information of the provider required.
Ohne Einfluß auf die Kompaktheit des ausführbaren Codes, da vom Compiler automatisch entfernt, sind die Längen (Anzahl der Zeichen) für Bezeichner, Leerzeilen, Leerzeichen zwischen den Syntakti schen Elementen und alle Kommentare. Es gibt also keinen Grund, hier zu geizen.Without affecting the compactness of the executable code, as it is automatically removed by the compiler, are the lengths (number of characters) for identifiers, blank lines, spaces between the syntactic characters elements and all comments. So there is no reason to be stingy here.
In der Vergangenheit entstanden Grenzen des Realisierbaren häufig durch die Leistungsfähigkeit der Steuerungsprozessoren. Heute tritt immer mehr die Leistungsfähigkeit der Feldbusse als Flaschen hals in den Vordergrund. Die Mechanismen, der sich unterschiedliche Bussysteme bedienen, sind vielfältig. Möglichkeiten der Optimierung sind weitgehend durch Feldbus-Konzept vorgegeben. Dem Anwender bleibt oft nur die Reduzierung des Datenaufkommen um eine Minimierung des Kommuni kationsaufwands zu erreichen. Entscheidend ist die gewählte Projektstruktur eines dezentralen Auto matisierungssystems, die zu einer Reduzierung der Anzahl und der Größe der übertragenen Daten führt.In the past, the limits of what was realizable often arose from the performance of the Control processors. Today, the performance of fieldbuses is becoming more important than bottles neck in the foreground. The mechanisms that different bus systems use are diverse. Optimization options are largely defined by the fieldbus concept. The Often the user only has to reduce the data volume by minimizing communication to achieve cation effort. The decisive factor is the chosen project structure of a decentralized car system that leads to a reduction in the number and size of the transmitted data leads.
Besteht die Wahl zwischen den Verfahren Polling und Event, ist oft das Eventverfahren, insbesondere für Daten mit azyklischen und großen Änderungsintervallen geeignet. Nur bei tatsächlicher Verände rung der Daten erfolgt im ereignisorientierten (Event) Verfahren eine Übertragung der betroffenen Daten. Das zyklische Pollen hingegen überträgt intervallmäßig Daten ohne Berücksichtigung dessen, daß die Daten bereits in großem Umfang, da absenderseitig unverändert, im Empfänger vorliegen. Übertragene Daten, die zu Datenpaketen, mit Anpassung an die spezifischen Pakete des Kommuni kationssystems, zusammengeschnürt sind, erhöhen den Datendurchsatz. Überträgt ein System bei spielsweise maximal 8 Byte pro Nachricht ist für 64 Bit nur eine Nachricht erforderlich, für 65 Bit hin gegen zwei. Die Verbesserung des Kommunikationsverhalten bei einer Reduzierung um ein Bit, so fern möglich, ist offensichtlich.If there is a choice between polling and event processes, the event process is often, in particular suitable for data with acyclic and large change intervals. Only with actual changes The data are transferred in an event-oriented (event) procedure Data. Cyclic pollen, on the other hand, transmits data at intervals without taking into account that the data is already available in the recipient on a large scale, as it is unchanged from the sender. Transmitted data, resulting in data packets, with adaptation to the specific packets of the communica cation system, are constricted, increase the data throughput. Transfers a system For example, a maximum of 8 bytes per message is required for 64 bits, for 65 bits against two. The improvement of communication behavior with a reduction by one bit, so possible from a distance is obvious.
Für Eventsysteme ist eine weitere Optimierung gegeben, sofern entsprechende Einflußmöglichkeit besteht, in dem Daten mit annähernd gleichen Änderungsintervallen im selben Datenpaket zusam mengefaßt sind. Datenpakte deren Daten selten eine Wertänderung erfahren sind so getrennt von Daten mit schnelleren Änderungszyklen übertragbar.Further optimization is provided for event systems, provided there is a corresponding possibility of influence consists in the data together with approximately the same change intervals in the same data packet are quantified. Data packets whose data rarely experience a change in value are thus separated from Data transferable with faster change cycles.
Eine Informationsanalyse ist Basis diskreter Informationsübertragung von analogen Basisdaten. Die Untersuchung zielt auf den tatsächlichen Informationsbedarf. Muß empfängerseitig der Analogwert vorliegen oder reicht eine charakteristische Information. Verfügt der Absender beispielsweise über die analoge Information einer Helligkeit, ein Empfänger soll abhängig einer fixen Größe reagieren (z. B. 200 Lux), so ist es ausreichend nur das erreichen dieser Größe und nicht die Größe selbst zu übertra gen. Damit tritt eine Reduzierung der Datenübertragung von eventuell 16 Bit auf ein Bit ein. Erhöhte Wartungsfreundlichkeit ist auch immer dann gegeben, wenn es mehrere Empfänger der diskreten Information gibt und sich der Schwellwert (200 Lux) häufig ändert.An information analysis is the basis for the discrete transmission of information from analog basic data. The Investigation targets the actual information needs. Must have the analog value on the receiver side characteristic information is available or sufficient. For example, if the sender has the analog information of a brightness, a receiver should react depending on a fixed size (e.g. 200 lux), it is sufficient only to achieve this size and not to transfer the size itself This reduces the data transmission from possibly 16 bits to one bit. Increased Ease of maintenance is also always given when there are several recipients of the discrete There is information and the threshold value (200 lux) changes frequently.
Bei der automatischen Optimierung führt der Compiler standardisierte Optimierungsstrategien durch. Erwähnt wurde bereits, daß einige Optimierungen nicht gewünscht bzw. zur Verschlechterung anderer Eigenschaften führen. Bestandteil der Anwenderunterstützung durch das System sollte die Integration von Steuermechanismen, die den Übersetzungsvorgang beeinflussen, bieten. Diese Steuermecha nismen sind auch als Compilerschalter bezeichnet. Compilerschalter, die die Übersetzung als ganzes beeinflussen wirken global für alle Bausteine. Der gezielte Einsatz, bestimmter Übersetzungsmodie erfordert das Compilerschalter direkt in der Source für die Umschaltung sorgen. Die 2nd Ed. der IEC 61131-3 definiert das Pragma, ohne jedoch eine explizite Syntax vorzugeben, als eine implementie rungsabhängige Eigenschaft. Das Pragma gestattet Grundsätzlich die benötigte Funktion des Compi lerschalters, ist jedoch nicht standardisiert und läßt zusätzliche Aufgaben zu.With automatic optimization, the compiler implements standardized optimization strategies. It has already been mentioned that some optimizations are not desired or lead to the deterioration of other properties. The integration of control mechanisms that influence the translation process should be part of the user support provided by the system. These control mechanisms are also referred to as compiler switches. Compiler switches that affect the translation as a whole have a global effect for all components. The targeted use of certain translation modes requires the compiler switch to ensure the switchover directly in the source. The 2 nd Ed. IEC 61131-3 defines the pragma as an implementation-dependent property without specifying an explicit syntax. The pragma basically allows the required function of the compiler switch, but is not standardized and allows additional tasks.
Gute Compiler sollten zumindest einige automatische Optimierungen bieten. Neben den in Abschnitt 1.3.2 diskutierten sind folgende automatische Optimierungen hilfreich. Good compilers should offer at least some automatic optimizations. In addition to the ones discussed in section 1.3.2 , the following automatic optimizations are helpful.
Die Eigenschaft von Literalen und Konstanten, über die gesamte Laufzeit keine Änderungen ihrer Inhalte zuzulassen, gestattet es, Literale und Konstanten, die mehrfach vorkommen, nur einmal zu speichern. Von besonderem Nutzen ist dies für speicherintensive Datentypen wie Strings und 32-Bit- Datentypen oder bei sehr häufig auftretenden von Literalen und Konstanten. Besitzt beispielsweise eine Applikation Unmengen von Zeitgliedern, deren Zeitwert identisch ist, ist es ausreichend, den identischen Zeitwert einmal abzulegen.The property of literals and constants, no changes over their lifetime Allowing content allows literals and constants that occur more than once to be used only once to save. This is particularly useful for memory-intensive data types such as strings and 32-bit Data types or, in the case of very frequently occurring literals and constants. For example, has an application oodles of timers, whose time value is identical, it is sufficient to to store the identical time value once.
Auch diese Optimierung, die unter Abschnitt 1.3.1 vorgeschlagen ist, läßt einen Automatismus zu.This optimization, which is proposed under section 1.3.1, also allows automatism.
PC-basierte Steuerungssysteme, bzw. die verendeten Prozessoren verfügen nicht über schnelle Bit operationsunits. Die Folge: Bitoperationen sind langsam. Deutliche Geschwindigkeitszunahmen sind erreichbar, sofern der Compiler jede Boolesche Variable im systemeigenen Datentyp ablegt (z. B. Byte, Word, Integer). Andererseits muß die Möglichkeit hinsichtlich des Speicherbedarfs zu optimieren gegeben sein.PC-based control systems or the used processors do not have fast bits operationsunits. The result: bit operations are slow. Significant increases in speed are accessible if the compiler stores each Boolean variable in the native data type (e.g. Byte, word, integer). On the other hand, the possibility must be optimized with regard to the memory requirement be given.
Die Speicherverwaltung, die die Adressierung symbolischer Variablen übernimmt, sollte die Adressie rungsspezifika (nur gerade Adressen oder durch 4 teilbare) der Prozessoren unter dem Aspekt Ge schwindigkeit und Speicheroptimierung berücksichtigen.The memory management, which takes over the addressing of symbolic variables, should address specifics (only even addresses or divisible by 4) of the processors under the aspect Ge Consider speed and memory optimization.
Toter Code sollte beim Übersetzen erkannt und nicht in den ausführbaren Code übernommen werden. Eindeutig tot ist Rumpf der folgenden IF-Anweisung. IF FALSE THEN. . .Rumpf. . .END_IF.Dead code should be recognized during translation and should not be included in the executable code. The body of the following IF statement is clearly dead. IF FALSE THEN. . .Hull. . .END_IF.
Nicht aufgerufene Bausteine haben im ausführbaren Code nichts zu suchen.Blocks that are not called have no place in the executable code.
Analoges gilt für deklarierte, aber in der Source nicht benutzte Variablen. Sie sind ebenfalls auszusor tieren. Schwieriger, aber nicht unmöglich, ist die Erkennung von unbenutzten Elementen abgeleiteter und zusammengesetzter Variablen. Hierzu zählen Arrayfelder, Strukturelemente und Werte der Auf zählungstypen.The same applies to declared variables that are not used in the source. They are also to be selected animals. The detection of unused elements is more difficult, but not impossible, to be derived and compound variables. This includes array fields, structure elements and values of the Auf count types.
Je nach System und Aufgabenstellung sind weitere Optimierungsmaßnahmen denkbar, so daß hier keineswegs ein vollständiges Bild aller Strategien vorliegt. Eine kritische Prüfung (bzw. Befragung des Herstellers) der grafischen Sprachen hinsichtlich der Optimierung ist immer angebracht. Häufig trans formiert ein Codegenerator das grafische Netzwerk in AWL. Hier ist oft noch Spielraum für Optimie rungen erkennbar. Neben den vorgestellten allgemeinen und modellunabhängigen Verbesserungs möglichkeiten zielen die folgenden Abschnitte auf Optimierungsstrategien ablauf- und zustandsorien tierter Modelle, wie Petrinetze, SFC, Grafcet, Zustandsmaschinen, Automaten und teilweise IEC 61499. Diese Modelle zeichnen sich durch hervorragende Eigenschaften der Mächtigkeit, reale Pro zesse, einfach durch Zustände und deren Übergänge abzubilden, aus. Insbesondere birgt die zu standsorientierte Abbildung große Optimierungspotentiale in sich.Depending on the system and the task, further optimization measures are conceivable, so here there is no complete picture of all strategies. A critical examination (or questioning the Manufacturer) of graphic languages with regard to optimization is always appropriate. Often trans a code generator forms the graphic network in STL. There is often room for optimism here recognizable. In addition to the general and model-independent improvements presented possibilities, the following sections aim at optimization strategies, process and status theories tated models, such as Petri nets, SFC, Grafcet, state machines, machines and partly IEC 61499. These models are characterized by excellent properties of thickness, real pro processes, simply to map through states and their transitions. In particular, it hides status-oriented mapping great optimization potential in itself.
Gerade durch die Topologie der Netze (Petrinetze, SFC, Grafcet, Zustandsmaschinen, Automaten, IEC 61499) (auch wenn eine Optimierung beispielsweise von einem SFC-Tool nicht unterstützt wird, kann der Anwender selbst durch entsprechende Konzepte bei der Auslegung von Transitions- und Aktionslu pen beitragen), die bestimmte (Markierung) Zustände einnehmen, ergeben sich eine Reihe von Mög lichkeiten zur Minimierung beanspruchter Rechenzeit. Allen gemeinsam ist, daß sich die Netzele mente (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 ab- oder angemeldet werden. Ferner kann ein Netzelement selbst bzw. dessen Bearbeitungszeit, insbe sondere, 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. Als Folge vergrößert sich der Program mumfang (Speicherbedarf und Anzahl der Zeilen).Especially due to the topology of the networks (Petri networks, SFC, Grafcet, state machines, automatons, IEC 61499) (even if optimization is not supported by an SFC tool, for example, the Users themselves through appropriate concepts when designing transition and action air pen), which assume certain (marking) states, there are a number of possibilities Possibilities to minimize computing time. Common to all is that the Netzele elements (here essentially transitions, but also actions or magnifying glasses) depending on the Register or deregister marking for processing independently, or deregister from other network elements or be registered. Furthermore, a network element itself or its processing time, in particular especially if it is implemented in STL, in one case or another it will be significantly shortened. It occurs a reduction in the logical program length. As a result, the program increases extent (memory requirement and number of lines).
Eine ideale Optimierung wäre gefunden, wenn ein System automatisch, ohne zusätzlichen Aufwand, anhand aktiver Schritte schaltfähige Transitionen erkennt und nur diese bearbeitet. Dann wäre die prozentuale Verbesserung das Verhältnis der Zeitverbräuche der schaltfähigen Tranisitionen zur Summe aller Transitionen eines Netzes. Beispielsweise existieren zwei schaltfähige Tranisitionen in einem Netz von 100 gleichartigen Transitionen. Die Verarbeitungszeit wäre dann um einen Faktor 50 schneller (entspricht einer Verbesserung auf 2% des nicht Optimierten Zeitverbrauchs). Real sind jedoch, wie erwähnt, zusätzliche Befehle zur Verwaltung aufzunehmen, so daß dieser Faktor als sehr theoretisch aufzufassen ist.An ideal optimization would be found if a system automatically, without additional effort, recognizes switchable transitions based on active steps and only processes them. Then that would be percentage improvement the ratio of the time consumption of switchable transitions to Sum of all transitions in a network. For example, there are two switchable transitions in a network of 100 similar transitions. The processing time would then be a factor of 50 faster (corresponds to an improvement to 2% of the non-optimized time consumption). Are real however, as mentioned, to include additional management commands, so this factor is very is to be understood theoretically.
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 thus the degree of minimization, depends depends on many factors.
Die wichtigsten Faktoren sind:
The main factors are:
- - Befehlsausführungszeiten der Plattform (Prozessoren und Runtime-Umgebung)- Command execution times of the platform (processors and runtime environment)
- - Features, die die Zielsprache der Codierung bietet (z. B. dynamische Sprungziele)- Features that the target language of the coding offers (e.g. dynamic jump targets)
- - Häufigkeit der Bearbeitung (Aktionen 2 mal, Transitionen 1 mal)- Frequency of processing (actions twice, transitions once)
- - Häufigkeit des Schaltens bzw. des Nicht-Schaltens von Transitionen- Frequency of switching or non-switching of transitions
- - Anzahl der Standard-Prekanten, sonstiger Prekanten, Postkanten, Umfang sonstiger Schaltbedingungen, Umfang des Anweisungsblocks- Number of standard pre-edges, other pre-edges, post edges, extent of others Switching conditions, scope of the instruction block
- - Zeitdauer, die eine Teilbedingung der Schaltbedingung erfüllt bzw. nicht erfüllt (Stark unter schiedlich, nahezu gleich) (Zeitlicher Abstand zwischen Erfüllung einer Teilbedingung und der Erfüllung der ganzen Bedingung)- Period of time that fulfills or does not meet a partial condition of the switching condition (strongly below different, almost the same) (time interval between fulfillment of a subcondition and fulfillment of the whole condition)
- - Anzahl der Marken (Ein-Marken-Netz)- Number of brands (one-brand network)
- - Vermaschung- meshing
- - Länge unverzweigter Ketten- Length of unbranched chains
- - Aufenthaltswahrscheinlichkeit der Marken in (Teil-)Netzen und Ketten- Probability of the brands to stay in (sub) networks and chains
- - Anzahl der Marken in einer unverzweigten Kette- Number of marks in a straight chain
- - Stellung der Transition (vorn, mittig oder hinten) in einer unverzweigten Kette oder in einem Ein-Marken-Netz- Position of the transition (front, middle or back) in a straight chain or in one One brand network
- - Zeit, die für das Schalten bzw. Nicht-Schalten benötigt wird- Time required for switching or not switching
- - Anzahl der nebenläufig schaltenden Transitionen während einer Bearbeitung zur Gesamt zahl der Transitionen- Number of parallel transitions during processing to the total number of transitions
- - Kausalitätsgrad- degree of causality
- - Tote Netze bzw. tote Teilnetze (BK z. B. initialisiert)- Dead networks or dead subnetworks (BK e.g. initialized)
- - Konfliktgrad (möglichst klein bei Dispatcher) möglichst klein- Degree of conflict (as small as possible with dispatcher) as small as possible
- - Konfliktanzahl (möglichst klein bei Dispatcher) möglichst klein.- Number of conflicts (as small as possible with dispatcher) as small as possible.
Dieses sind so viele Parameter, die eine minimierte Umsetzung allein durch die Denkleistung des Entwicklers und den erforderlichen Zeitaufwand nicht rechtfertigen. Eine Analyse dieser komplexen Zusammenhänge sollte mittels Software erfolgen. D. H. der Compiler muß einen entsprechenden Code erzeugen.These are so many parameters that minimized implementation solely through the thinking of the Developer and not justify the time required. An analysis of this complex Connections should be done using software. D.H. the compiler must have a corresponding Generate code.
In vielen Fällen kann eine Berechnung entscheiden, welche Minimierungsstrategie oder Kombinatio nen von Strategien geeignet sind, in anderen Fällen muß der Anwender durch zusätzliche Angaben die Auswahl der richtigen Strategie unterstützen bzw. verfeinern. Ebenso denkbar sind Verfahren, die im Probebetrieb, also zur Laufzeit das Netzmodell auf dynamische Spezifika untersuchen. Die so ent stehende Datensammlung dient als Basis der Ermittlung entsprechender Strategien. Gerade letzteres ist für die Mehrzahl der Prozesse meist nicht erforderlich. Die vorgenannte Berechnung aus der To pologie heraus, unterstützt durch die Feinabstimmung des Entwicklers, bietet im allgemeinen ein hin reichend gutes Ergebnis.In many cases, a calculation can decide which minimization strategy or combination strategies are suitable, in other cases the user must provide additional information Support or refine the selection of the right strategy. Processes are also conceivable In trial operation, i.e. at runtime, examine the network model for dynamic specifics. The so ent Standing data collection serves as the basis for the determination of appropriate strategies. Especially the latter is usually not necessary for the majority of processes. The above calculation from the To technology, supported by the fine-tuning of the developer, generally offers one sufficiently good result.
Nutzbare Potentiale zur Minimierung beruhen auf folgenden Überlegungen.Usable potentials for minimization are based on the following considerations.
Steuerungssysteme (SPS) bearbeiten ihre Programme derart schnell, daß ihre sequentielle Bearbei tung für den Außenstehenden (zu steuernder Prozeß) wie eine Parallelverarbeitung wirkt. D. h. daß im Prozeß das Verhältnis gleichzeitig auftretender Ereignisse zur Summe der möglichen Prozeßereignis se häufig deutlich kleiner ist, als das Verhältnis der SPS-Zyklen ohne Zustandsänderung zur Summe der SPS-Zyklen mit Zustandsä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 their sequential processing for the outsider (process to be controlled) acts like parallel processing. That is, that in Process the ratio of concurrent events to the sum of the possible process events This is often significantly smaller than the ratio of the PLC cycles without change of state to the sum of PLC cycles with status change. In other words, most of the time there is a lazy transition around in the processing loop of the program. She rarely works, namely during the Switching. 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 Schaltbereit schaft prüfen).It is therefore obvious to remove the idle transitions from the processing loop, or a restriction to reduce their processing to a necessary level (only ready to switch check shaft).
Für dieses Vorhaben sind weitere Befehle einzufügen, damit wächst die Anzahl der Programmzeilen und ggf. ist auch etwas mehr Datenspeicher erforderlich. Diese verlängern die einzelne Befehlsse quenz derart, daß entweder das Schalten oder das Nicht-Schalten betroffen ist. 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 weite re Ü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 Verrie gelung 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 Transiti on".Additional commands must be added for this project, so that the number of program lines increases and a little more data storage may be required. These extend the individual command lines quenz such that either the switching or the non-switching is affected. The entirety of Program processing is significantly shortened, however, since either switching or non-switching Transitions are in the majority. The logical program length is shortened. A wide one re consideration is that the source of the switching action and possibly parts of the switching condition are skipped as soon as it turns out when checking part of the switching condition that the Transition does not switch. For example, there is generally a Verrie in transition conditions success met. However, it is often not fulfilled in error situations. Thus, the lock can be used as last checked. This results in a shortened for non-switching and for switching a slightly longer processing time. This is exactly what is desired, since not switching Transitions generally occur much more frequently than switching. Keyword: "lazy Transiti on ".
Je nach Art und Einfluß der o. g. Faktoren sind Optimierungen zwischen 98% und 50% erzielbar.Depending on the type and influence of the above. Optimizations between 98% and 50% can be achieved.
Drei grundsätzliche Strategien sind zu unterscheiden:
There are three basic strategies:
- - Elementabhängig: Ausschlaggebend ist der Umfang (Anzahl Pre-, Postkanten und der Pro grammzeilen für zusätzliche Bedingung), sowie die daraus resultierende Rechenzeit des Systems- Depends on the element: The decisive factor is the scope (number of pre-, post-edges and the pro gram lines for additional condition), as well as the resulting computing time of the Systems
- - 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, the individual signals are fulfilled before switching (last signal)
- - Topologieabhängig: Unverzweigte Ketten, Einmarken Netze oder Teilnetze, Tote Netze oder Teilnetze, usw.- Topology-dependent: unbranched chains, single-brand networks or subnetworks, dead networks or subnets, etc.
Zur Nutzung aller Potentiale sind Kombinationen aller Strategien, die gleichzeitig, einzeln und mehr fach zur Abbildung (Codierung) eines Netzes auf einem Zielsystem, unter Verwendung aller Sy stemeigenschaften, anwendbar.To use all potentials, combinations of all strategies are used simultaneously, individually and more fold for mapping (coding) a network on a target system, using all sy stem properties, applicable.
Da einige Systeme (gängige Praxis) für Netze (IEC 61131, IEC 61499, Automaten, Grafcet, usw.) und in den folgenden betrachteten Fällen Petrinetze eine Codierung in AWL durchführen, sind folgende Betrachtungen ebenfalls als IEC 61131-Abbildung erfolgt.As some systems (common practice) for networks (IEC 61131, IEC 61499, automats, Grafcet, etc.) and In the following considered cases, Petri nets encode in STL are as follows Considerations are also made as an IEC 61131 figure.
Um Vergleiche der Effekte unterschiedlicher Strategien anzustellen, ist eine einheitliche Bezugsgröße
zu nennen. Geeignet ist die Zeit (Schalten bzw. Nicht Schalten), die für die Bearbeitung eines linear
codierten Netzes bzw. einer linear codierten Transition, veranschlagt werden muß. Kennzeichen eines
solchen Codes ist der Verzicht auf Programmverzweigungen (bedingte Sprünge) hinter den Teilbedin
gungen der Schaltbedingung oder der Schaltbedingung als ganzes (vgl. Beispiel. . . ???). Daher ist das
Passivverhältnis von besonderem Interesse, gelegentlich kann auch das Aktivverhältnis von Interesse
sein.
Passivverhältnis = NSPrüfling/NSLinear sowie Aktivverhältnis = SPrüfling/SLinear
NSPrüfling Zeit für die Bearbeitung des Nichtschaltens eines Prüflings TPrüf
NSLinear Zeit für die Bearbeitung des Nichtschaltens einer Transition TLinear die dem Prüfling TPrüf
entspricht, jedoch linear codiert ist.
SPrüfling Zeit für die Bearbeitung des Schaltens eines Prüflings TPrüf
SLinear Zeit für die Bearbeitung des Schaltens einer Transition TLinear die dem Prüfling TPrüf ent
spricht, jedoch linear codiert ist.In order to make comparisons of the effects of different strategies, a uniform reference value must be given. The time (switching or not switching) that is necessary for processing a linearly coded network or a linearly coded transition is suitable. Characteristic of such a code is the waiving of program branches (conditional jumps) behind the partial conditions of the switching condition or the switching condition as a whole (see example.... ???). The passive relationship is therefore of particular interest; occasionally the active relationship can also be of interest.
Passive ratio = NS test object / NS linear and active ratio = S test object / S linear
NS test item Time for processing the non-switching of a test item T test
NS Linear Time for processing the non-switching of a transition T Linear which corresponds to the test object T test , but is linearly coded.
S DUT Time for processing the switching of a DUT T test
S Linear time for processing the switching of a transition T Linear that corresponds to the test object T test , but is linearly coded.
Transitionen, die über mehr als eine Programmverzweigung innerhalb der Schaltbedingung verfügen, besitzen dann auch entsprechend viele Stellen im Code an denen ggf. ein Nichtschalten festgestellt wird. Damit gibt es eine minimale, eine maximale NS-Zeit und im allgemeinen einige Zwischenwerte. Diese sind in der Excel-Tabelle auf der CD- zum Buch berechnet.Transitions that have more than one program branch within the switching condition then also have a correspondingly large number of places in the code where non-switching may have been detected becomes. So there is a minimum, a maximum NS time and generally some intermediate values. These are calculated in the Excel table on the CD for the book.
Meist nur am Rande ist von Interesse, wie sich das Aktiv-Passiv-Verhältnis S/NS (AP-Verhältnis)
verändert. Dieses Verhältnis ist für eine linear codierte Transition immer 1.
S Zeit für die Bearbeitung einer schaltenden Transition Tn
NS Zeit für die Bearbeitung einer nicht schaltenden Transition Tn It is usually only marginally of interest how the active / passive ratio S / NS (AP ratio) changes. This ratio is always 1 for a linearly coded transition.
S Time for processing a switching transition T n
NS Time for processing a non-switching transition T n
Bekannte Netzklassen erweitern die grundlegenden Eigenschaften der eingeführten Begriffe um spe zifische Definitionen. Am häufigsten sind klassenspezifische Definitionen für die Begriffe Schaltregel, Schaltbereitschaft, Schalthandlung, Lebendigkeit, Deadlock, Sicherheit, Konflikt, usw. zu finden. Um die im Folgenden stattfindende Diskussion mit eindeutig definierter Basis zu führen, gibt es einige Festlegungen zu bekannten und neuen Begriffen. Soweit notwendig, sind die Elemente einem Begriff in Tabelle 1.2 zugeordnet. Known network classes extend the basic properties of the terms introduced by spe specific definitions. The most common are class-specific definitions for the terms switching rule, Switching readiness, switching action, liveliness, deadlock, security, conflict, etc. to find. Around There are a few to conduct the following discussion with a clearly defined basis Definitions of known and new terms. As far as necessary, the elements are one term assigned in Table 1.2.
Eine Transition ist schaltbereit, wenn alle Vorgängerplätze mit ausreichender Markenanzahl belegt sind, so daß ein Schalten möglich ist. (Allgemein: durch das Schalten entstehen keine negativen Zu stände). Die starke oder sicher Schaltregel verlangt zur Erlangung der Schaltbereitschaft, daß die Nachfolgerplätze genügend Kapazitäten für die Aufnahme der Marken bereitstellen. Diese Verhalten wird hier punktuell durch die Sonderkante bereitgestellt.A transition is ready to switch when all the previous locations are occupied by a sufficient number of brands are so that switching is possible. (General: switching does not result in negative closes stands). The strong or safe switching rule requires that the switch is ready for switching Provide successor places with sufficient capacity to accommodate the brands. This behavior is provided here selectively by the special edge.
Erweiterte Schaltbereitschaft umfaßt z. B. die Prekanten, SPS-Eingang bzw. POE-Eingänge (auch negiert), Abfrage (negiert) von Plätzen und Sonderkanten. Sie ist erfüllt, wenn alle ihre Kanten erfüllt sind.Extended switching readiness includes z. B. the pre-edges, PLC input or POE inputs (also negated), query (negated) of places and special edges. It is fulfilled when all of its edges are met are.
Bedingte Schaltbereitschaft beinhaltet sonstige Bedingungen auch besondere Schaltbedingung genannt (Vergleiche, Zeitbedingungen usw.).Conditional switching readiness includes other conditions including special switching conditions called (comparisons, time conditions, etc.).
Prüfen der Standard-Prekanten (Aktivierung der Transition). Erfüllt: Entspricht der Schaltbe
reitschaft
Prüfen sonstiger Prekanten (Freigabe der Transition durch sonstige Prekanten). Erfüllt: Ent
spricht der erweiterten Schaltbereitschaft
Prüfen sonstiger Bedingungen (Bedingte Freigabe der Transition durch sonstige Bedingun
gen). Erfüllt: Entspricht der bedingten SchaltbereitschaftChecking the standard pre-edges (activation of the transition). Fulfilled: Corresponds to the readiness to switch
Checking other pre-edges (release of the transition by other pre-edges). Fulfilled: Corresponds to the extended switching readiness
Check other conditions (conditional release of the transition through other conditions). Fulfilled: Corresponds to the conditional switching readiness
Schalten wenn:
Schalten = Schaltbereitschaft & erweiterte Schaltbedingung & bedingten Schaltbereitschaft
dann
Anweisungsblock spezialisierter Transition (Lösch, Anweisung. . .) bearbeiten
Ausführungsverwaltung (Verwaltung der Variablen zu Optimierung)
Räumen der Vorgängerplätze (Input- oder Eingangs-Plätze)
Belegen der Nachfolgerplätze (Output- oder Ausgangs-Plätze)Switch when:
Switching = switching readiness & extended switching condition & conditional switching readiness then
Edit instruction block of specialized transition (delete, instruction ...)
Execution management (management of variables for optimization)
Clear the previous places (input or entrance places)
Occupying the successor places (output or exit places)
Schaltverhältnis (SV) einer Transition gibt an, das Verhältnis der Häufigkeit des Schaltens zur Häu figkeit des Nicht-Schalten. Die Summe aus Nicht-Schalten und Schalten ergibt die Anzahl der ge samten Bearbeitungen der Transition (oder des Netzes) bzw. der Source, der das Netz repräsentiert.Switching ratio (SV) of a transition indicates the ratio of the frequency of switching to skin ability of not switching. The sum of non-switching and switching results in the number of ge Complete processing of the transition (or the network) or the source that represents the network.
Eine Transition, die nie schaltet (ist meist unsinnig) hat ein Schaltverhältnis von 0.A transition that never switches (is usually nonsensical) has a switching ratio of 0.
Eine Transition, die genau so häufig schaltet wie nicht, hat ein Schaltverhältnis von 1. Eine Transition,
die einmal weniger schaltet als nicht-schaltet besitzt ein Schaltverhältnis von 0,5.
SVT = Anzahl Schalten/Anzahl Nichtschalten Basis: Transitionsbearbeitungen
SVN = Anzahl Schalten/Anzahl Nichtschalten Basis: Netzbearbeitungen
A transition that switches just as often as not has a switching ratio of 1. A transition that switches less than non-switching has a switching ratio of 0.5.
SV T = number of switching / number of non-switching basis: transition processing
SV N = number of switching / number of non-switching basis: network processing
Im folgenden werden die wesentlichsten Strategien vorgestellt. Kombinationen und weitere Gliederun gen sind möglich und sinnvoll.The most important strategies are presented below. Combinations and other structures conditions are possible and useful.
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. Für IEC 61131 ist dies gegenwärtig jedoch nicht zu empfehlen, da die vorgeschriebene Datenkapselung für POE zusätzliche Anweisungen der Parameterübergabe erzwingt. Im Einzelfall kann solches Vorgehen nützlich sein; im allgemeinen jedoch ist der Bedarf an Rechenzeit eher zu groß.It should also be noted that the instruction block and / or the switching operation or even all of them Transition (SpV-coded) can also be accommodated in its own program modules. For IEC 61131, however, this is currently not recommended because the mandatory data encapsulation for POE enforces additional instructions of parameter passing. This can be done in individual cases to be useful; in general, however, the need for computing time is rather too great.
Geeignet ist die Realisierung der Schalthandlung bzw. der zugehörige Anweisungsblock mittels Un terprogrammtechniken, sofern diese auf Datenkapselung ganz oder teilweise verzichten, wie dies einige Umgebungen unterstützen. Ein bekannter Vertreter solch einer Technologie ist der Programm baustein der Step 5-Syntax. In Fällen, in denen identische oder ggf. auch weitgehend identische An weisungsblöcke bei mehreren Netzelementen (z. B. Transition) auftreten, sind kapselungsfreie Bau steine hervorragend geeignet (z. B. Löschtransition).It is suitable to implement the switching operation or the associated instruction block using Un Programming techniques, provided that they completely or partially forego data encapsulation, such as this support some environments. The program is a well-known representative of such a technology building block of the Step 5 syntax. In cases where identical or possibly largely identical claims Instruction blocks with several network elements (e.g. transition) occur are encapsulation-free construction stones are particularly suitable (e.g. extinguishing transition).
Für die Codierung von Transitionen erfolgt zur vereinfachten Diskussion die folgende PN-orientierte Benennung von Codeteilen.For the coding of transitions, the following PN-oriented is used for simplified discussion Naming parts of code.
Die Schaltbedingung besteht aus Codes für die Umsetzung
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 the classic readiness for switching (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), the representatives of PLC and POE inputs and represent separate queries of 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 Umsetzung
In 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 mail edges,
- - der Prekanten, die ausschließlich Plätze mit Transitionen verbinden und- Prekanten, which only connect places with transitions and
- - der Anweisungsblöcke von den speziellen Transitionsarten, wie Löschtransition, Anwei sungstransition, Bedingungstransition- The instruction blocks of the special transition types, such as delete transition, instruct sung 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 through the box is titled with "Switching action" represented.
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 may be omitted and other source parts may also be required to come.
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 zu sammenzufassen, 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 flowcharts each show the variant that gives good results by default supplies. Variants could, for example, the first, second or all conditions (1-3) to one summarize, or the last program branch (last condition) immediately before the Omit switching operation, etc.
Generell ist es nicht zwingend erforderlich, alle Netzelemente der gleichen Optimierungsstrategie zu unterwerfen. Es kann jeweils je Netzelement oder je Teil eines Netzes (Unverzweigte Kette) die beste Strategie bzw. die beste Kombination von Strategien zur Anwendung kommen.In general, it is not absolutely necessary to assign all network elements to the same optimization strategy subject. It can be the best for each network element or for each part of a network (unbranched chain) Strategy or the best combination of strategies.
Oben genannte Eigenschaften des Netzes, des Prozesses und der Plattform sind zur Wahl der geeig neten von Bedeutung. Einige Strategien erfordern gewisse Eigenschaften der Zielsprache. Diese wer den von der AWL unterstützt. Ferner stellt AWL eine effiziente Sprache dar, zumindest was den opti mierten 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 suitable for the choice important. Some strategies require certain properties of the target language. This who supported by the STL. Furthermore, AWL is an efficient language, at least what opti affected code. Therefore, most of the examples and considerations refer below STL code. Few exceptions are high-level language constructs like If-Then, Case and others, underlying.
Transformation der Codierungsvorschläge von AWL hin zu ST folgen einer einfachen Regel: Sprünge sind durch IF-Anweisungen zur ersetzen. Dabei sind die logischen Zusammenhänge, vorgegeben in der AWL, unverändert auf die ST-Syntax zu übertragen.Transformation of the coding suggestions from STL to ST follow a simple rule: jumps are to be replaced by IF instructions. The logical relationships are specified in the STL to be transferred unchanged to the ST syntax.
Einen Überblick über die im folgenden diskutierten Strategien beinhaltet die Tabelle 1.3. Table 1.3 provides an overview of the strategies discussed below.
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.
Jeder Befehl, der im Source steht, benötigt Rechenzeit, sofern er in der aktuellen Bearbeitungs schleife liegt. Insbesondere sollten Befehlssequenzen in Wiederholanweisungen einer kritischen Be trachtung unterliegen. Grundsätzlich ist daher jeder nicht notwendige Befehl zu entfernen. Zunächst gibt es geeignete Minimierungsverfahren, die neben der Minimierung der booleschen Gleichung auch seine Bearbeitungszeit verkürzt, da eine Reduzierung der benötigten Befehle eintritt. Häufig sind je doch Transitionsbedingungen einfacher Art und bestehen aus wenigen Verknüpfungen, so daß eine weitere Minimierung unmöglich oder nicht wirtschaftlich vertretbar ist.Every command that is in the source requires computing time if it is in the current processing loop lies. In particular, command sequences in repeat instructions of a critical loading subject to consideration. Basically, any command that is not necessary must be removed. First there are suitable minimization methods that besides minimizing the Boolean equation as well its processing time is shortened because the required commands are reduced. Are common but transition conditions of a simple kind and consist of a few links, so that one further minimization is impossible or not economically justifiable.
Ohne Gefährdung des logischen Gehalts kann jedoch eine weitere Reduzierung benötigter Rechen zeit erfolgen. Der Erfolg des im Folgenden vorgestellten Verfahren hängt im starken Maße von der Bearbeitungszeit für einzelne Befehle ab, die ein Zielsystem (Prozessor, Laufzeitumgebung, Codie rung des ausführbaren Codes) beansprucht und kann ggf. auch eine Verschlechterung bedeuten. In jedem Einzelfall ist zu ermitteln, ob der Nutzen der Codierungsmaßnahme gegeben ist. Dies kann von vielen Parametern abhängen, wie eingangs in Abschnitt Fehler! Verweisquelle konnte nicht gefun den werden. diskutiert.Without endangering the logical content, however, a further reduction in required rakes can be achieved time. The success of the procedure presented below depends to a large extent on the Processing time for individual commands that a target system (processor, runtime environment, Codie execution of the executable code) and may also mean deterioration. In In each individual case, it must be determined whether the benefit of the coding measure is given. This can be from depend on many parameters, as mentioned in the section on errors! Reference source could not be found that will. discussed.
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 essential for education of transition conditions.
Wesentliches Merkmal einer UND-Verknüpfung ist, daß für eine WAHRE-Aussage (TRUE) am Aus gang 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.An essential feature of an AND operation is that for a TRUE statement at the end TRUE is also required for all inputs. Conversely, this means: Just introduce FALSE input, the result must also be corresponding. That is the decision already determined by a signal and an implementation with one jump per input given.
Die folgende Transitionsbedingung mit 4 Variablen wird mit Sprüngen realisiert. Positive Auswirkun
gen auf die Bearbeitungsgeschwindigkeit ist nur zu erwarten, wenn die Teilbedingungen (E1 bis E4)
entsprechend umfangreich sind, und die zusätzlichen Sprünge weniger Zeit beanspruchen.
Bedingung: E1 UND E2 UND E3 UND E4The following transition condition with 4 variables is implemented with jumps. Positive effects on the machining speed can only be expected if the partial conditions (E1 to E4) are correspondingly extensive and the additional jumps take less time.
Condition: E1 AND E2 AND E3 AND E4
Ist das Verknüpfungsergebnis im Sinne einer vollständigen UND-Verknüpfung einer Variablen zuzu weisen, sind 2 Maßnahmen erforderlich. Anstelle der Schalthandlung steht die Zuweisung (TRUE) mit der Zeile ST Ergebnis. Zusätzlich sind die folgenden Zeilen LD FALSE und ST UNDErgebnis direkt vor den Code zu stellen. Die Bildung des Ergebnisses erfolgt äquivalent zu einer wired-and-Ver knüpfung einer elektrischen Schaltung.Is the link result in the sense of a complete AND link to a variable 2 measures are required. Instead of the switching action, the assignment is (TRUE) the line ST result. In addition, the following lines LD FALSE and ST AND result are direct in front of the code. The formation of the result is equivalent to a wired-and-ver creating an electrical circuit.
Wesentliches Merkmal einer ODER-Verknüpfung ist, daß für eine WAHR-Aussage (TRUE) am Aus
gang 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
Ist das Verknüpfungsergebnis im Sinne einer vollständigen ODER-Verknüpfung einer Variablen zu zuweisen, sind 2 Maßnahmen erforderlich. Anstelle der Schalthandlung steht die Zuweisung mit den Zeilen LD TRUE und ST Ergebnis. Zusätzlich sind die folgenden Zeilen LD FALSE und ST ODEREr gebnis direkt vor dem Code zu stellen. Die Bildung des Ergebnisses erfolgt äquivalent zu einer wired- or-Verknüpfung einer elektrischen Schaltung.Is the link result in the sense of a complete OR link of a variable 2 measures are required. Instead of the switching action there is the assignment with the Lines LD TRUE and ST result. In addition, the following lines are LD FALSE and ST ORER to put the result right before the code. The formation of the result is equivalent to a wired OR linkage of an electrical circuit.
Komplexe boolesche Gleichungen lassen sich in die sogenannte Konjunktive bzw. Disjunktive Nor malform (KNF bzw. DNF) überführen. Es entstehen Therme, die entweder UND- bzw. ODER ver knüpft sind. Somit sind die oben erwähnten Prinzipien im Sinne der wired-and bzw. wired-or-er knüpfungen auf die Therme anwendbar.Complex Boolean equations can be divided into the so-called conjunctive or disjunctive Nor Transfer painting form (KNF or DNF). Therme arise, which are either AND or OR ver are knotted. Thus, the principles mentioned above are in the sense of wired-and or wired-or-er links applicable to the thermal baths.
Die IEC-Spezifikation für AWL beinhaltet keine Festlegungen zum Verhalten des Aktuellen Ergebnis (Früher Vke - Verknüpfungsergebnis -) nach einem Sprung. Je nach Implementierung kann es, wie im folgenden erläutert, zu unterschiedlichen Verhaften der SPS kommen.The IEC specification for STL does not contain any stipulations on the behavior of the current result (Formerly Vke - Linking Result -) after a jump. Depending on the implementation, it can, as in explained below, different arrests of the PLC occur.
- 1. Wird der Sprung nicht ausgeführt, steht das AE, das direkt vor dem Sprung ermittelt wird, hinter dem Sprung zur Verfügung. Im Fall von JMPC ist das AE FALSE und im Fall von JMPCN ist das AE TRUE. Damit muß nicht zwangsläufig hinter einem Sprung eine LD-Operation stehen.1. If the jump is not carried out, the AE, which is determined directly before the jump, is behind available for the jump. In the case of JMPC this is AE FALSE and in the case of JMPCN it is AE TRUE. An LD operation does not necessarily have to be behind a jump.
- 2. Am Sprungziel muß die erste Anweisung eine LD-Operation sein (Einschränkung gegenüber der IEC).2. The first instruction at the jump destination must be an LD operation (restriction compared to the IEC).
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 the time it takes for that Switching is just as long as that for not switching.
Sie eignet sich für eine reduzierte Inanspruchnahme von Rechenzeit nur im Falle der Transition, die
annähernd so häufig schaltet wie nicht schaltet oder wenn die Schalthandlung soviel Zeit oder weniger
benötigt, wie die notwendigen zusätzlichen Befehle der anderen Optimierungslösungen, wobei häufig
auch nur eine Bedingung vorhanden ist.
[siehe Abb. 1.1 Flußdiagramm zur linearen Codierung vn Transitionen]It is suitable for a reduced use of computing time only in the case of a transition that switches almost as often as not switching, or if the switching operation takes as much time or less than the necessary additional commands from the other optimization solutions, whereby there is often only one condition .
[see Fig. 1.1 Flowchart for linear coding of transitions]
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 Transitionsbedin gung die Bearbeitung beendet.The splitting breaks down the complete switching condition into partial conditions. This works with the coding Linking result of each subcondition to a jump that if the transition condition is not met processing ended.
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 wei tere Programmzeilen der Transition Tn der Bearbeitung unterliegen.The non-switching of a transition T n is considerably shortened by the fact that behind a partial condition a program branch (conditional jump) decides 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 wer
den. Wobei jede Teiltransition eigentlich nur eine Teilbedingung darstellt (vgl.).
[siehe Abb. 1.2 Schematische Darstellung des Splittings]The splitting could almost be understood as a decomposition of a transition into partial transitions. Each sub-transition actually only represents a sub-condition (see.).
[see Fig. 1.2 Schematic representation of the splitting]
Die getrennte Codierung ist einfach zu realisieren und kann automatisiert oder ggf. manuell erfolgen. Die Größe des zeitlichen Gewinns an Bearbeitungszeit ist im Wesentlichen von der Anzahl der Kan ten, des Umfangs der zusätzlichen Bedingungen und der Feingliedrigkeit der Trennung abhängig. In Grenzbereichen ist auch die Zeit, die für die zusätzlichen Sprünge benötigt wird, ausschlaggebend, um festzustellen, ob diese Codierungsart vorteilhaft ist.The separate coding is easy to implement and can be automated or manual if necessary. The size of the time gain in processing time is essentially the number of channels depending on the extent of the additional conditions and the delicacy of the separation. In Border areas are also the time that is needed for the additional jumps, to determine if this type of coding is advantageous.
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. Hiervon ist ggf. abzuweichen, wenn dadurch zusätzliche Klammern benötigt würden. Dieses Prinzip kann auf alle weiteren Strategien, die im Folgenden diskutiert sind, zusätzlich angewandt sein.In some cases, the order in which the individual conditions of the switching condition in the Source placements are important. Automatically generated code should choose an order where the partial condition runs from the shortest processing time to the longest. Of this is if necessary, deviate if this would require additional brackets. This principle can be applied to everyone other strategies, which are discussed below, can also be used.
[siehe Abb. 1.3 Flußdiagramm zur getrennten Codierung von Transitionen][see Fig. 1.3 Flowchart for separate coding of transitions]
Der Sprungverteiler (SpV) führt zunächst je Transition einen virtuellen Platz (Transitionsflag) ein. Was zunächst einmal zusätzliche Rechenzeit kostet. Der Einsparungseffekt wird dadurch erzielt, daß grundsätzlich nur der übergeordneten Sprungverteiler bearbeitet wird (d. h. 2 Anweisungen je Transiti on; 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 imple mentiert sein. Es ist also nicht zwingend das lineare Codierungsprinzip anzuwenden.The jump distributor (SpV) first introduces a virtual place (transition flag) for each transition. What first of all costs additional computing time. The saving effect is achieved in that in principle, only the higher-level branch distributor is processed (i.e. 2 instructions per transit on; Flag query and jump). Only the transition whose flag is set is subject to the others Check the switching condition. In principle, the separate coding can then also be implemented be mentored. It is therefore not mandatory to use the linear coding principle.
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 Nach folgetransition möglicherweise durch das Schalten ihrer Vorgängertransition schaltfähig wird. Unter der Kontrolle eines einzigen Sprungverteilers besteht die Möglichkeit der gemeinsamen Transiti onscodierung beider Varianten.If the transition is not switchable, there is a return to the jump distributor. Just in case there are 2 variants. a) after switching back to the SpV and b) the Check the switching condition of the subsequent transition. However, the latter only makes sense if the after subsequent transition may become switchable by switching its predecessor transition. Under the control of a single jump distributor enables the possibility of joint transit encoding of both variants.
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 Vor gängerplatz besitzen.The switching action of a transition in the jump distributor must reset its flag and the flags of the Set successor transitions that become switchable by switching according to the network topology could. These are all transitions that have a successor position to the switched transition as before own a walker place.
SpV-codierte Transitionen werden immer in Kombination mit einem übergeordneten SpV gebraucht.SpV-coded transitions are always used in combination with a higher-level SpV.
Erfordernisse der Netztopologie führen ggf. auch zu ineinander verschachtelte SpV-Strukturen.Network topology requirements may also result in nested SpV structures.
Die SpV-Codierung ist nicht zwingend für alle Transitionen eines Netzes. Innerhalb des SpV lassen sich problemlos Transitionen anderer Codierungsmechanismen einfügen. Beispielsweise sind die ersten 10 Transitionen SpV-codiert, dann folgen linear oder getrennt codierte Transitionen und an schließend wieder SpV-codierte.SpV coding is not mandatory for all transitions in a network. Leave inside the SpV transitions of other coding mechanisms can be easily inserted. For example, the SpV-coded first 10 transitions, followed by linearly or separately coded transitions and on finally SpV-encoded again.
Die Größe des zeitlichen Gewinns an Bearbeitungszeit ist im wesentlichen von der Anzahl der Kanten, des Umfangs der zusätzlichen Schaltbedingung abhängig. Im Grenzbereichen ist auch die Zeit, die für die zusätzlichen Sprünge benötigt wird ausschlaggebendes Kriterium für die Anwendung dieser Co dierungsart.The size of the time gain in processing time is essentially the number of edges, depending on the scope of the additional switching condition. In the border areas is also the time for the additional jumps is required crucial criterion for the application of this co dation type.
Auch die Netztopologie muß berücksichtigt werden. Stark vermaschte Netze führen zum erhöhten Verwaltungsaufwand der Transitionsflags. In Ausnahmefällen kann die Anzahl der Marken im Netz so groß sein, daß zu viele Transitionsbedingungen zu prüfen sind.The network topology must also be taken into account. Strongly meshed networks lead to increased Administrative effort of the transition flags. In exceptional cases, the number of brands on the net can be like this large that there are too many transition conditions to be checked.
Eine automatische Codeerzeugung ist möglich.
[siehe Abb. 1.4 Flußdiagramm zur Sprungverteiler Codierung von Transitionen]Automatic code generation is possible.
[see Fig. 1.4 Flow diagram for jump distributor coding of transitions]
Eine besondere Form des SpV kann für die Codierung spezieller Netzklassen oder bestimmter Netz topologien nützlich sein.A special form of SpV can be used for coding special network classes or certain networks topologies be useful.
Netze, die als sogenannte Ein-Marken-Netze bezeichnet sind, verfügen, wie der Name schon ver muten läßt, über nur eine Marke im gesamten Netz.Networks, which are referred to as so-called one-brand networks, have, as the name suggests suggests about only one brand in the entire network.
Kann die Transition, deren Vorgängerplatz die Marke besitzt nicht schalten, so kann auch keine ande re 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ß. Der Markentransport bleibt aus. Es entsteht keine neue Markierung, die ein Schalten ermöglicht.If the transition whose predecessor location the brand does not have, no other can switch transition in this network. For coding, this means that if one is not switched Transition the rest of the code also doesn't need to be edited. There is no brand transport. It 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 (insge samt 40 Schritte). Die Kette (10 Schritte) ist ein typischer Vertreter für einen Einmarken-Bereich, er kann also ESpV-codiert (Der Begriff Einmarken meint, daß es nur eine Transition gibt, die schalten könnte.) [siehe Abb. 1.5 Flußdiagramm zur Sprungverteiler Codierung im Einmarkenbereich von Transi tionen]) 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 Sprung verteiler.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 one-mark area, so it can be ESpV-coded (the term mark in means that there is only one transition that could switch.) [See Fig. 1.5 Flowchart for jump distributor coding in Single-brand area of transitions]). 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 branching, also consisting of two chains, also uses a jump distributor.
Eine besondere Codierungsvariante, stützt die per Definition spezifizierte Verfügbarkeit nur einer Mar ke im gesamten Netz. Außerdem steht der Code in nur einer POE. Hier kann bei jedem Nichtschalten ein Return-Befehl (Verlassen der POE) benutzt werden. Die Nutzung des Return-Befehl innerhalb der Codierung beendet die POE-Ausführung jeweils durch Registrierung des Nichtschaltens der Transition. Untauglich ist diese Verfahren jedoch für SFC der IEC 61131. Da das durch die Norm vor gegebene kontrollierte Beenden der POE durch das System (Aktionsbearbeitung) erfordert. Ferner ist die Return-Variante unter Betrachtung des Aspektes einer Ausgangszuweisung nur bedingt tauglich. Die geringere Beanspruchung von Rechenzeit ist im starken Maße von der Markierung abhängig.A special coding variant supports the availability of only one mar specified by definition ke in the entire network. In addition, the code is in only one POU. Here you can switch every time you do not switch a return command (leaving the POU) can be used. The use of the return command within the coding ends the POU execution by registering the non-activation of the Transition. However, this method is unsuitable for SFC according to IEC 61131. Since this is the norm given controlled termination of the POU by the system (action processing). Further is the return variant is only of limited suitability considering the aspect of an output assignment. The lower use of computing time depends to a large extent on the marking.
Befindet sich die Marke am Anfang der Kette bzw. des Netzes, ist die Einsparung größer als am Ende. Dies liegt daran, daß der Sprungverteiler immer bis zu der Transition, deren Vorgängerschritt über die Marke verfügt, abzuarbeiten ist. If the brand is at the beginning of the chain or network, the savings are greater than at the end. This is because the jump distributor is always up to the transition, the previous step of which is via the Brand has to be processed.
Eine weitere Verringerung der Rechenzeit ist erreichbar unter Berücksichtigung dynamischer Pro zeßeigenschaften. Dieses kann von einem Compiler nicht vollautomatisch geleistet werden, da ihm die dynamischen Zusammenhänge weitgehend unbekannt sind. Diese pfiffige 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 Zusatz bedingung (z. B. Vergleich) betrachtet, die zu einer Schaltbedingung gehören.A further reduction in computing time can be achieved taking dynamic pro into account characteristics. This can not be done fully automatically by a compiler because it the dynamic relationships are largely unknown. This smart strategy justifies insists that there is always a signal that the last one is to meet the switching condition contributes. It is often the same signal. Each edge and possibly also the addition is used as a signal condition (e.g. comparison) that belongs to a switching condition.
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. Welches Signal sich eignet, muß der Programmierer auf Grund seiner Erfahrung oder empirisch be stimmen. Grundsätzlich gibt es auch die Möglichkeit der Messung oder des Protokollieren durch die SPS.For example, there is a transition with a previous location (engine turns) and an input (Limit switch reached). Here it is usually the input that ultimately triggers the switching. The programmer must be based on his experience or empirically which signal is suitable voices. Basically there is also the possibility of measurement or logging by the PLC.
Für den ECC (Execution Control Chart) der IEC 61499, der eine Zustandsmaschine (Petrinetz) dar- stellt, eignet sich das Ereignissignal einer Transition als erstes abzufragen. Da es nur kurzzeitig auftritt und sich das letzte Signal ist das zur Erfüllung der Schaltbedingung zum Schalten noch fehlt.For the ECC (Execution Control Chart) of IEC 61499, which is a state machine (Petri net) is the first to query the event signal of a transition. Because it only occurs for a short time and the last signal is that the switching condition for switching is still missing.
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 Be dingung geschrieben. Wobei auch hier mindestens zwei Varianten denkbar sind. A) Der Rest der Be dingung, aus der das Signal herausgelöst wurde, bleibt ggf. als eigenständige Teilbedingung mit Pro grammverzweigung 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. Wahlfreiheit be steht sowohl in der Zusammensetzung als auch in der Anzahl neuer Gruppen. Bei den Sprungvertei lern 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. Schwieri ger ist die Anwendung veroderte Kanten. Am einfachsten ist hier die gesamte ODER-Verknüpfung als ein Signal zu betrachten.This is applied to the separate, jump distributor and single-label jump distributor coding Signal (maximum should not be more than 2 signals), which ultimately triggers the switching, as the first loading condition written. At least two variants are also conceivable here. A) The rest of the Be The condition from which the signal was extracted may remain as an independent subcondition with Pro there is a branching of a gram, or b) the rest becomes a new one with a different subcondition connected. So there is a partial or total reorganization of those previously regarded as a unit Condition groups (precants, signal precursors, additional condition) instead. These disintegrate in the Analysis of the signal duration to create new groups afterwards. Freedom of choice stands both in the composition and in the number of new groups. At the diving center The signal replaces the flag and the flag can be omitted entirely. That further reduces the time required to implement switching, since flag management is no longer required. Difficult ger is the application of ored edges. The simplest is the entire OR operation as to consider a signal.
Gibt es zwei letzte Signale, die in der Bewertung annähernd gleiches Zeitverhalten aufweisen oder bestehen diesbezüglich zeitliche Schwankungen, hilft gelegentlich ein Vergleich der Rechenzeit, die zur Ermittlung des Ergebnisses beiträgt (z. B. Rechenzeit für booleschen Eingang und der Vergleich zweier Integer).There are two last signals that have approximately the same time behavior in the evaluation or If there are fluctuations in time in this regard, occasionally a comparison of the computing time helps contributes to the determination of the result (e.g. computing time for Boolean input and the comparison two integers).
In der Feinoptimierung erfolgt eine Neuordnung der Signale zu Teilbedingungen. Die Letzte Be
dingung enthält häufig die aufwendigsten Bedingungen (z. B. Vergleicher) und/oder Signale, die ei
gentlich immer im Sinne der Schaltbedingung erfüllt sind. Anzahl der Bedingungen ist beliebig.
[siehe Abb. 1.6 Feinoptimierte Splittingcodierung]In fine tuning, the signals are reorganized to subconditions. The last condition often contains the most complex conditions (e.g. comparators) and / or signals which are actually always met in terms of the switching condition. The number of conditions is arbitrary.
[see Fig. 1.6 Fine-optimized splitting coding]
Neben einer Optimierung der Transitionscodierung läßt sich ein ganzes Netz ebenfalls optimiert codie ren. Der SpV wurde bereits erwähnt. Natürlich können die Strategien der Transitionscodierung zusätz lich angewandt werden.In addition to optimizing the transition coding, an entire network can also be optimized codie ren. The SpV has already been mentioned. Of course, the strategies of transition coding can be additional Lich applied.
Basis der Strategien zur Netzoptimierung ist die Erkenntnis, daß nur Netzteile bearbeitet werden müs sen, 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. Dies kann zum Teil automatisch generiert werden. Als typisches Beispiel sei hier eine Fehlerüberwa chung (Maximale Belegungszeit überschritten) eines Platzes angeführt. Diese muß nur bei markiertem Platz bearbeitet werden.The basis for the strategies for network optimization is the knowledge that only network components need to be processed in which there is also a brand, 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. Some of this can be generated automatically. A typical example is error monitoring of a place (maximum occupancy time exceeded). This only has to be marked Be edited.
Einen Nachteil des SpV-Konzeptes brachte die vorherige Diskussion hervor. Es ist die Eigenschaft, unterschiedliche Bearbeitungszeiten des Netzes allein durch die Positionsabhängigkeit einer Transiti on (Anfang, Mitte, Ende) innerhalb des SpV-Codes und der Markierung zu erzeugen.The previous discussion brought up a disadvantage of the SpV concept. It is the property Different processing times of the network solely due to the position dependency of a Transiti on (beginning, middle, end) within the SpV code and the marking.
Sprünge mit dynamischen Sprungzielen zeigen eine Verbesserung. Leider finden diese sich in der IEC 61131 nicht wieder, so daß folgende Strategien anzuwenden sind.Jumps with dynamic jump targets show an improvement. Unfortunately, these can be found in the IEC 61131 not again, so the following strategies have to be used.
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 Transitio nen, 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 transit NEN, the chain entry and exit.
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.The entry transition creates a brand in this chain by switching and starts at the same time Chain flag. If several brands can occur, a counter is used as a flag.
Die Kettebearbeitung 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 der Zähler.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 brand leaves the chain, the exit transition resets or decrements the chain flag 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 ge koppelt ist.Ultimately, the entirety of all chain flags that run a control network manage, also understand again as an administrative network that is closely related to the control network is coupled.
Softwarewerkzeuge sind grundsätzlich in der Lage, das Kettenflag vollautomatisch unter Berücksichti gung voreingestellter Parameter zu verwalten. Ein weiterer Performance-Gewinn ist durch manuelle Eingriffe erzielbar, die den dynamischen Eigenschaften Rechnung tragen. Besondere Aufmerksamkeit ist der Wahl der Ein- und Austrittstransitionen und der Kettenlänge (vgl. Abschnitt 1.4.4.2.2) zu wid men. Hier können statistische Verfahren zur Laufzeit die Wahrscheinlichkeit bezüglich Dauer und Häufigkeit einzelner Marken helfen, sofern dies nicht durch Prozeßkenntnis vom Entwickler festzu stellen ist. Als Eintrittstransitionen eignen sich solche, deren Schaltbedingung entsprechend selten erfüllt ist. Als Beispiel seien hier Transitionen genannt, deren Schaltbedingung ein Datum, eine Uhr zeit, eine große Verzögerungszeit oder ein eher seltenes Prozeßsignal beinhaltet.Software tools are basically able to take the chain flag fully automatically into account management of preset parameters. Another performance gain is through manual Interventions achievable that take into account the dynamic properties. Special attention the choice of entry and exit transitions and the chain length (see section 1.4.4.2.2) must be considered men. Here statistical methods at runtime can determine the probability with regard to duration and Frequency of individual brands help, unless this is determined by process knowledge from the developer pose is. Suitable entry transitions are those whose switching conditions are correspondingly rare is satisfied. Transitions whose switching condition is a date, a clock are an example time, a large delay time or a rather rare process signal.
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.
[siehe Abb. 1.7 Flußdiagramm zur Kettenflag Codierung von Netzen oder Teilnetzen]
Or it is the case of an engine stop that is particularly time-critical. The transition from the running motor "state to the" motor 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, to always be able to switch in the shortest possible time.
[see Fig. 1.7 Flowchart for chain flag coding of networks or subnetworks]
Das Mittel der weiteren Segmentierung erweitert das Kettenflag zum strukturierten Kettenflag-Mecha nismus 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 Segmentver waltung ist dem des Kettenflags gleich. Es gibt je Segment eigene Ein- und Austrittstransitionen. Ein Extremfall der Segmentierung führt zur Sprungverteilercodierung der Transitionen. Damit ist ebenfalls eine automatische sowie eine manuelle Verwaltung, wie bereits in Abschnitt 1.4.4.2.1 beschrieben ist, möglich.The means of further segmentation extends the chain flag to a structured chain flag mecha 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 ver administration is the same as that of the chain flag. There are separate entry and exit transitions for each segment. On Extreme segmentation leads to jump distributor coding of the transitions. That is also automatic and manual management, as already described in section 1.4.4.2.1, possible.
Ggf. erfolgt eine Kombination aus Kettenflag und Segmentierung, wobei weitere Ebenen der Segmen
tierung 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 Seg
mentebene kontrolliert. Je mehr Kontrollistanzen (Segmentebenen) zu durchlaufen sind, desto selte
ner sollten diese Netzelemente bearbeitet werden müssen bzw. die Wahrscheinlichkeit einer Bear
beitung nimmt ab. Die oberste Ebene besteht entweder nur aus Verwaltungscode oder zusätzlich
bereits funktionellen Code im Sinne der Applikation.
[siehe Abb. 1.8 Flußdiagramm zur segmentierten Codierung von Netzen oder Teilnetzen]Possibly. there is a combination of chain flag and segmentation, although 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. The more control distances (segment levels) to be covered, the rarer these network elements should have to be processed or the likelihood of processing decreases. The top level either consists only of management code or additional functional code in the sense of the application.
[see Fig. 1.8 Flowchart for segmented coding of networks or subnetworks]
Eine Schrittkette, wie in Abb. 1 schwarz dargestellt, muß nur bearbeitet werden, wenn sie auch über mindestens einen aktiven Schritt verfügt. D. h. bleibt die Bearbeitung aus, weil es keinen aktiven Schritt gibt, läßt sich die Verarbeitungszeit der gesamten Kette einsparen. Das Potential der Perfor mancesteigerung ist abhängig von der Länge der Kette. Je länger eine unverzweigte Kette ist, desto größer ist der Leistungszuwachs, sofern sich kein aktiver Zustand in ihr befindet. Softwaretools bilden häufig jedoch ablauforientierte Sprachen ab, als handle es sich um ein verknüpfungsorientiertes Mo dell und verschwenden somit einen Teil der Leistung, um zu ermitteln, daß keine Zustandsänderung erfolgen kann, was jedoch von vornherein klar gewesen ist.A step chain, as shown in black in Fig. 1, only needs to be edited if it also has at least one active step. That is, if processing is omitted because there is no active step, the processing time of the entire chain can be saved. The potential for increasing performance depends on the length of the chain. The longer an unbranched chain is, the greater the increase in performance if there is no active state in it. However, software tools often depict process-oriented languages as if they were a link-oriented model and thus waste part of the effort to determine that no change in status can occur, which was clear from the start.
Gibt es einen aktiven Zustand innerhalb einer Schrittkette, stellt sich die Frage, ob die Kette über die gesamte Länge zu bearbeiten ist. Läßt sich die Kette in Teilsegmente gliedern, die wiederum nur dann zu bearbeiten sind, wenn sich aktive Schritte innerhalb eines Segmentes befinden.If there is an active state within a sequencer, the question arises whether the chain is over the entire length to be machined. If the chain can be divided into sub-segments, which in turn only then to be processed if there are active steps within a segment.
Wann sich eine derartige Kettenoptimierung lohnt, hängt wie bereits erwähnt wesentlich von der Län ge einer solchen Kette ab, die die Summe der Zeiten der benötigten Befehle und von der Summe der benötigten Zeiten der Befehle, die zur Koordinierung nötig sind, gegenüberstellt.When such chain optimization is worthwhile depends, as already mentioned, on the length such a chain, which is the sum of the times of the required commands and of the sum of the the required times of the commands required for coordination.
Naheliegend ist eine Optimierung eines Ablaufmodells auch mit den Mitteln des Modells zu implemen tieren. Dadurch können bereits implementierte Funktionen des Compilers genutzt werden oder eine manuelle Realisierung ist ggf. auch möglich und vor allem läßt sich Normkonformität herstellen. Die Abb. 1 zeigt, wie das Verhalten einer Kettenoptimierung (mittels Petrinetzen rot gekennzeichnet) 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 Seg mentes wieder deaktiviert wird.It is obvious that an optimization of a process model should also be implemented with the means of the model. This means that functions of the compiler that have already been implemented can be used, or manual implementation may also be possible and, above all, conformity to standards can be achieved. Fig. 1 shows how the behavior of chain optimization (marked in red with 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 deakti viert sind und jeweils einem Flag, das angibt, ob ein Segment (SgFlag1. . .n) über einen aktiven Zu stand verfügt. Auf das LeerFlag kann ggf. verzichtet werden, es dient dazu, daß nur eine Abfrage im Falle einer deaktivierten Kette, anstatt 3 (SgFlag1. . .n) erfolgen muß. In diesem Fall wird fast die ge samte 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 are fourth and in each case a flag which indicates whether a segment (SgFlag1.. .n) has an active Zu booth. The empty flag can be omitted if necessary, it serves to ensure that only one query in the In the case of a deactivated chain, instead of 3 (SgFlag1. .N) must be done. In this case, almost the ge saved the entire processing time of the chain. The processing time is reduced to almost a third in the presence of 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.An extension of this principle leads to an optimization network, the execution management of the actual control network.
Dieses einfache Verfahren läßt sich sogar mit den Mitteln, die AWL zur Verfügung stellt realisieren.This simple procedure can even be realized with the resources that STL provides.
Unter Ausnutzung dynamischer Effekte ist eine zusätzliche Performanceverbesserung zu erwirken.
Jeder Platz verfügt über spezifische, prozeßabhängig Verweildauern der Marken. Eine Segmentie
rung, deren Segmente die Aufteilung der Zonen gemäß der Verweildauer widerspiegelt bringt zusätz
lichen Nutzen. Es sind Bereiche in denen sich Marken bevorzugt aufhalten (am längsten) zu bilden
und Zonen mit geringerer Aufenthaltswahrscheinlichkeit. Die Nutzung dynamischer Eigenschaften ist
nicht automatisch zu leisten. Die Segmentierung kann somit automatisch (vorgegebene Segmentgrö
ße) und manuell (Anwendervorgabe für einzelne Segmente) erfolgen.
[siehe Abb. 1.9 Ausschnitt einer unverzeigten AS-Kette deren Bearbeitung durch Kettenflags
koordiniert wird]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. The use of dynamic properties cannot be achieved automatically. The segmentation can thus take place automatically (specified segment size) and manually (user specification for individual segments).
[see Fig. 1.9 section of an undisplayed AS chain whose processing is coordinated by chain flags]
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 Nach folgertransition in den CASE-Selektor ein. Diese Variante ist geeignet für Zielsysteme die nicht über AWL oder eine ähnliche Sprache verfügen. Nachteilig ist hier, daß je Bearbeitung nur eine Transition schalten kann, es sei denn es wird eine weitere Schleife um die CASE-Anweisung gelegt. Sie kann Vorteile gegenüber den IF-Anweisungen der Transitionen haben.If there is only one label in a (sub) network, a CASE instruction can also be used. Each transition then represents a CASE case. It follows that one of all transitions Only one CASE instruction may switch. When switching a transition, it carries its after successor transition into the CASE selector. This variant is suitable for target systems that do not have STL or a similar language. The disadvantage here is that only one transition per processing can switch, unless another loop is placed around the CASE statement. she can Have advantages over the IF statements of the transitions.
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. Dabei muß die Anzahl der Transitionen, die den gleichen Vorgängerplatz haben, mög lichst klein sein (Kleiner Konfliktgrad).The dispatcher is very complex. It is particularly suitable for networks with a number of Transitions that could switch due to the network marking are much smaller than those that do not ready to switch. The number of transitions that have the same previous location must be possible be as small as possible (small degree of conflict).
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. Besit zen mehrere Transitionen den gleichen Nachfolgerplatz ist es ratsam, diesen zusätzlich mit Flags zu verwalten, damit die entsprechenden Transitionen nicht zu früh in die Liste der schaltfähigen Transi tionen gelangt, da die Listenverwaltung ziemlich rechenintensiv ist. Die Liste kann aus Sprungzielen bestehen oder aus Zeigern (Pointer).The basic principle is quite simple. There is a list (e.g. array) of the transitions due to the Could switch network marker. Transitions that switch delete themselves from this list and carry all transitions in the list that have one of their successor places as the previous place. Own If several transitions have the same successor position, it is advisable to add these with flags manage so that the corresponding transitions do not appear too early in the list of switchable transis tion because the list management is quite computationally intensive. The list can be made from jump destinations consist of or from pointers.
Als nachteilig kann hier sein, daß bei Verwirklichung bester Ergebnisse nicht mehr alle Platzzustände in booleschen Variablen abgelegt sind. Bei verzicht auf Performance ist dies zusätzlich möglich. Da her muß z. T. aus der Liste schaltfähiger Transitionen auf Platzzustände geschlossen werden, was ggf. den Debug-Modus komplexer gestaltet. Generell könnten zu lasten der Rechenzeit alle Plätze mit booleschen Variablen abgebildet sein. Gerade der Dispatcher eignet sich für eine Implementierung direkt in der SPS-Runtime, kann aber durchaus auch im IEC-Code realisiert sein.It can be a disadvantage here that when the best results are achieved, not all space conditions are achieved are stored in Boolean variables. If there is no performance, this is also possible. There forth z. T. from the list of switchable transitions can be inferred about space conditions, which may made the debug mode more complex. In general, all seats could be charged at the computing time Boolean variables. The dispatcher is particularly suitable for implementation directly in the PLC runtime, but can also be implemented in the IEC code.
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
Schafthandlung, anstatt der Verwaltung der Transitionsflags, die Folgetransition in die Variable ein.
Eine Segnemtierung kann entfallen. Die Verwaltung paralleler schaltfähiger Transitionen darf nicht
ohne weitere Maßnahmen auf diese Weise erfolgen. Er eignet sich nur für unverzweigte Ketten mit
maximal einer Marke. 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. Bei steigender Vermaschung steigt
die Komplexität deutlich an.. Auch wenn das Auftreten von Einschränkungen erkennbar ist, lohnt eine
genauere und tiefergehende Betrachtung, sobald dynamische Sprungziele in der IEC Spezifikation zu
finden sind. Einige IEC-Systeme nutzen bereits heute dynamische Sprungziele zur effektiven Trans
formation von CASE-Anweisung in AWL, verbergen jedoch diese Eigenschaft vor dem Anwender.
[siehe Abb. 1.10 Dynamischer Sprungverteiler]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 target, each transition, in its shaft action, instead of the administration of the transition flags, must insert the subsequent transition into the variable. A segregation can be omitted. The management of parallel switchable transitions must not take place in this way without further measures. It is only suitable for unbranched chains with a maximum of one brand. 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. With increasing meshing, the complexity increases significantly. Even if the occurrence of restrictions is recognizable, it is worth taking a closer and deeper look as soon as dynamic jump targets can be found in the IEC specification. Some IEC systems already use dynamic jump targets for the effective transformation of CASE instructions in STL, but hide this property from the user.
[see Fig. 1.10 dynamic jump distributor]
Bedingt durch die vorgeschriebenen komplexen Abläufe (Aktionsauswertung, Netzweite Ausbreitung eines Schrittzustandes, Schrittzeiten), die im Hintergrund während der SFC-Abarbeitung, stattfinden, entsteht, was die Reaktionsgeschwindigkeit angeht, der Eindruck einer "lahmen Ente in im Vergleich zu den anderen Sprachen. Mittels einer Optimierung kann auch SFC sich zu einem "road runner" ent wickeln und in vielen Fällen die Lösung mit der kleinsten Reaktionsgeschwindigkeit darstellen. SFC wird damit weiter an Bedeutung zunehmen.Due to the prescribed complex processes (action evaluation, network-wide spread a step state (step times) that take place in the background during SFC processing, As far as the reaction rate is concerned, the impression of a "lame duck in comparison to the other languages. By means of optimization, SFC can also become a "road runner" and in many cases represent the solution with the lowest reaction speed. SFC will continue to grow in importance.
Zwei denkbare Ansätze stehen zur verbesserten Performance eines SFC zu gelangen zur Verfügung. Idealerweise Unterstützt ein SFC-System bereits automatisch die Optimierung. Im anderen Fall bleibt dem Anwender nur die optimierte manuellen Gestaltung der Lupen (Transition, Aktion). Jedoch ist der alleinige Gewinn, der so zu erzielen ist, immer deutlich schlechter, als bei den automatischen oder dem Mix aus automatisch und manuellem Verfahren. Beide Ansätze werden im Folgenden kurz disku tiert.Two possible approaches are available to improve the performance of an SFC. Ideally, an SFC system already automatically supports optimization. In the other case remains the user only the optimized manual design of the magnifying glasses (transition, action). However, that is sole profit that can be achieved in this way is always significantly worse than with the automatic or the mix of automatic and manual processes. Both approaches are briefly discussed below animals.
Von Bedeutung für die automatische Codeerzeugung sind das Splitting, der Sprungverteiler, und die Einmarkenbetrachtungen, sowie das Kettenflag, die Segmentierung und der Dispatcher. Sofern eine Systeminterne Unterstützung dynamischer Sprungziele gegeben ist, kann auch der DSpV zum tragen kommen. Ebenso kann die halbautomatische Feinoptimierung zur Verfügung stehen.The splitting, the jump distributor and the are of importance for the automatic code generation Single-brand considerations, as well as the chain flag, segmentation and dispatcher. If one The DSpV can also support internal system support for dynamic jump targets come. Semi-automatic fine tuning can also be available.
Gerade bei Konzeption von Aktionen und deren Aufrufen ist besondere Sorgfalt angebracht. Da diese bekanntlich nach IEC 61131 immer mindestens zweimal bearbeitet werden müssen, von einigen Aus nahmen abgesehen. In letzter Konsequenz bedeutet dies, daß eine Aktion häufig doppelt so viele Bearbeitungen erfährt wie eine Transitionsbedingung, vorausgesetzt, es findet eine Bearbeitung statt. Zur Bestimmung der Ausführung kann grundsätzlich die Verwendung der Mechanismen zur Optimie rung von Transitionen Anwendung finden. Splitting, Feinoptimierung über die Signaldauer und ggf. der Dispatcher kommen insbesondere zum tragen.Particular care should be taken when designing campaigns and calling them up. This one As is well known, according to IEC 61131 always have to be processed at least twice, for some reasons took apart. Ultimately, this means that an action is often twice as many Processing is experienced like a transition condition, provided processing takes place. In principle, the optimization mechanisms can be used to determine the execution of transitions. Splitting, fine-tuning over the signal duration and possibly the Dispatchers are particularly useful.
Anwender haben, wenn auch eingeschränkt, Einfluß auf die Performance, sofern entsprechenden Lupen (z. B. Transitionsbedingung, Anweisungen der Aktionen) einer optimierten Codierung unterlie gen. Einschränkungen sind hinsichtlich der genormten nicht beeinflußbaren Eigenschaften festzustellen. Damit sind im allgemeinen die in Abschnitt 1.4.4.2 vorgestellten Strategien zur Netzoptimierung nicht zugänglich.Users have, albeit limited, influence on the performance, if appropriate Magnifiers (e.g. transition condition, instructions for actions) are subject to an optimized coding Restrictions are to be found with regard to the standardized properties that cannot be influenced. In general, these are the strategies for network optimization presented in section 1.4.4.2 inaccessible.
Transitionsbedingungen sollten möglichst in AWL, unter Verwendung der Splitting bzw. Feinoptimie rungsmethode oder beidem geschrieben sein. Damit kann der Anwender direkten Einfluß auf die Ausführungszeit nehmen, auch wenn sein System ansonsten keine Codeoptimierung bietet. Der Ein sparungseffekt ist stark von der Codeumsetzung des Systems abhängig. Wird die Transitionsbedin gung unabhängig vom Vorgängerschritt immer bearbeitet, ist die Einsparung am größten. Erfolgt die Abarbeitung hingegen nur bei aktivem Schritt, so unterstützt das System bereits eine Optimierungs form. Die Performance erfährt eine weitere Steigerung.If possible, transition conditions should be in STL, using splitting or fine optimization method or both. This allows the user to directly influence the Take execution time, even if his system does not otherwise offer code optimization. The one The saving effect is strongly dependent on the code implementation of the system. If the transition condition always processed regardless of the previous step, the savings are greatest. Does that happen Processing, on the other hand, only when the step is active, the system already supports optimization form. The performance is further increased.
Die Häufigkeit mit der eine Aktion ausgeführt wird (vgl. Abschnitt 1.4.5.1), wenn sie aktiv ist kann u. U. erheblich zur Zykluszeit beitragen.The frequency with which an action is carried out (see section 1.4.5.1) when it is active may U. contribute significantly to the cycle time.
Eine Aktion sollte daher immer nur auf das wesentliche beschränkt bleiben und wenn möglich in AWL und ggf. mit Sprüngen koordiniert werden. Dabei sollte die Vermeidung von schwer lesbaren Spa ghetticode im Vordergrund stehen. Außerdem kommen die allgemeinen Optimierungsmaßnahmen des Abschnitts 1.3 in Frage.An action should therefore always be limited to the essential and if possible in STL and if necessary be coordinated with jumps. In doing so, avoid avoiding difficult to read spa focus on ghetticode. There are also general optimization measures of section 1.3 in question.
Allgemein üblich in der Programmiertechnik ist die Wiederverwendung von Softwaremodulen, Makros oder durch Verwendung von Vorlagen (Objekte) und deren Instanzierung. Die Instanzierung ist ein wirkungsvoller Mechanismus einen kompakten, transparenten Code zu erzeugen, wobei jede Instanz ein identisches kausales Verhaltensmuster mit individuellem Status zeigt. Hinsichtlich der Geschwin digkeit (insbesondere bei IEC 61131-Systemen) sind keine wesentlichen Vorteile zu verzeichnen. Der nur einmal vorhandene Bausteinrumpf (Source) ist für jede Instanz abzuarbeiten.The general reuse in programming technology is the reuse of software modules, macros or by using templates (objects) and instantiating them. The instantiation is a effective mechanism to generate a compact, transparent code, each instance shows an identical causal behavior pattern with individual status. Regarding the speed There are no significant advantages (especially with IEC 61131 systems). The Only one block body (source) has to be processed for each instance.
Ganz oder teilweise identische Petrinetze (SFC-Norm läßt dies nicht zu) lassen sich zu einer kom
pakten 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 abgebil
det). 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. Der Code ist ebenfalls
sehr kompakt und läßt sich als ganzes zusätzlich bei Bedarf instanzieren und zeichnet sich durch
hohe Performance aus.
[siehe Abb. 1.11 Gefaltetes Netz]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). The code is also very compact and can be instanced as a whole if required and is characterized by high performance.
[see Fig. 1.11 folded net]
Insbesondere wurde darauf geachtet, daß eine Implementierung mittels des IEC-Befehlssatzes (vor zugsweise AWL) möglich ist. Damit besteht Kompatibilität, eine Implementierung ist sowohl manuell als auch automatisch möglich und nicht zuletzt Altprojekte lassen sich einfach anpassen (meist nur neu übersetzen), sofern eine automatische Optimierung besteht.In particular, care was taken to ensure that an implementation using the IEC instruction set (before preferably STL) is possible. So there is compatibility, an implementation is both manual as well as automatically possible and last but not least, old projects can be easily adapted (mostly only recompile), provided there is automatic optimization.
Wie gezeigt, sind die Möglichkeiten der Optimierung vielseitig und von vielen Parametern abhängig. In vielen Fällen läßt sich jedoch ein optimierter Code automatisch generieren. Dem Nutzer bleiben so viele Berechnungen und Abschätzungen erspart. Die Notwendigkeit einer Feinoptimierung unterliegt der Betrachtung jedes Einzelfalls und ist manuell durchzuführen. Die vorgestellten Strategien lassen sich auf Petrinetze, SFC, ggf. IEC 61499, Grafcet sowie Automaten und ablauforientierte Modelle anwenden. Bedingt durch das vorgeschriebene Verhalten von SFC-Netzwerken (Berechnung der Actionsflags (Q und A), Ausbreitung des Schrittzustandes über das gesamte Netz, Bestimmungszei chen, Schrittzeiten) ist die erreichbare Reaktionszeit im allgemeinen etwas größer, als sie für Petrinet ze zu erwarten ist.As shown, the optimization options are versatile and depend on many parameters. In In many cases, however, an optimized code can be generated automatically. The user stays that way saves a lot of calculations and estimates. The need for fine tuning is subject consideration of each individual case and must be carried out manually. Let the strategies presented Petri nets, SFC, possibly IEC 61499, Grafcet as well as machines and process-oriented models apply. Due to the prescribed behavior of SFC networks (calculation of the Action flags (Q and A), spread of the step state over the entire network, time of destination Chen, step times) the achievable reaction time is generally somewhat longer than for Petrinet ze is expected.
Je nach Topologie, Netzklasse und Markierung eines Netzes ist eine Reduzierung auf 5% bis 60% (Einsparung 95%-40%) durchaus möglich. Das heißt ein Programm, das linear codiert 100 ms benö tigt, wäre optimiert in 5 ms bzw. 60 ms abgearbeitet. Dies sind hervorragende Ergebnisse. Dieses rechnerisch unter der Annahme, daß jede Programmzeile gleiche Bearbeitungszeit beansprucht (vgl. Excel-Tabelle auf dem beiliegenden Datenträger). Die wundersame Wandlung von der "lahmen Ente" zum "road runner" läßt Petrinetze zu einem der Lösungsmodelle mit den wohl kleinsten Reaktionszei ten werden, wenn nicht sogar der schnellsten Steuerungssoftware werden, die es je gab.Depending on the topology, network class and marking of a network, a reduction to 5% to 60% (Saving 95% -40%) possible. That means a program that linearly encodes 100 ms would be processed optimally in 5 ms or 60 ms. These are excellent results. This arithmetically on the assumption that each program line takes the same processing time (cf. Excel spreadsheet on the enclosed data carrier). The miraculous change from the "lame duck" for the "road runner" Petri Nets allows one of the solution models with the smallest reaction time if not the fastest control software ever.
Die entstandene Minderung der erforderlichen Rechnerleistung erhöht die Reaktionsfähigkeit oder kann helfen, die ständig wachsenden Forderungen nach Steigerung des Funktionsumfangs zu erfüllen bzw. kann neue Anwendungsgebiete für Petrinetze und SFC erschließen. Ferner ist die Optimie rungsmöglichkeit, wie hier vorgestellt, ein weiteres schwerwiegendes Argument, wie die vielen Vorzüge auch, die Petrinetze bieten für ihren Einsatz in der Steuerungstechnik. Verknüpfungsorientierte Modelle lassen derart deutliche Optimierungsmöglichkeiten nicht zu.The resulting reduction in the required computing power increases the responsiveness or can help meet the ever growing demands for increased functionality or can open up new areas of application for Petri nets and SFC. Furthermore, the optimism possibility, as presented here, another serious argument, like the many advantages also, the Petri nets offer for their use in control technology. Link-oriented Models do not allow such clear optimization options.
Ein vorwärts Konflikt entsteht, wenn mehrere Transitionen über eine Prekante (Standardkante) mit dem gleichen Vorgängerplatz verbunden sind. Damit kann das Schalten einer Transition die Schaltbe reitschaft der übrigen aufheben.A forward conflict arises when using multiple transitions over a leading edge (standard edge) are connected to the same previous place. Switching a transition can thus cancel the willingness of the rest.
Unverzweigte Kette oder unverzweigte Transitionsfolge beschreibt eine Aneinanderreihung von Transitionen, deren Numerierung vollständig und lückenlos, jedoch nicht zwingend fortlaufend bein haltet innerhalb der nebenläufig schaltenden Transitionen nicht existieren.Unbranched chain or unbranched transition sequence describes a sequence of Transitions, the numbering of which is complete and complete, but not necessarily continuous stops do not exist within the parallel switching transitions.
Ein Fall ist ein ganz bestimmter Markierungszustand eines Netzes. So sind zwei Markierungen, die sich dadurch unterscheiden, daß bereits ein Platz eine veränderte Belegung aufweist zwei unter schiedliche Fälle??A case is a very specific marking state of a network. So there are two marks differ in that one seat already has a different occupancy two under different cases ??
Eine Transition ist schaltbereit, wenn alle Vorgängerplätze mit ausreichender Markenanzahl belegt sind, so daß ein Schalten möglich ist. (Allgemein: durch das Schalten entstehen keine negativen Zu stände). Die starke oder sicher Schaltregel verlangt zur Erlangung der Schaltbereitschaft, daß die Nachfolgerplätze genügend Kapazitäten für die Aufnahme der Marken bereitstellen. Diese Verhalten wird hier punktuell durch die Sonderkante bereitgestellt.A transition is ready to switch when all the previous locations are occupied by a sufficient number of brands are so that switching is possible. (General: switching does not result in negative closes stands). The strong or safe switching rule requires that the switch is ready for switching Provide successor places with sufficient capacity to accommodate the brands. This behavior is provided here selectively by the special edge.
Erweiterte Schaltbereitschaft umfaßt z. B. die Prekanten, SPS-Eingang bzw. POE-Eingänge (auch negiert), Abfrage (negiert) von Plätzen und Sonderkanten. Sie ist erfüllt, wenn alle ihre Kanten erfüllt sind.Extended switching readiness includes z. B. the pre-edges, PLC input or POE inputs (also negated), query (negated) of places and special edges. It is fulfilled when all of its edges are met are.
Bedingte Schaltbereitschaft beinhaltet sonstige Bedingungen auch besondere Schaltbedingung genannt (Vergleiche, Zeitbedingungen usw.).Conditional switching readiness includes other conditions including special switching conditions called (comparisons, time conditions, etc.).
Prüfen der Standard-Prekanten (Aktivierung der Transition). Erfüllt: Entspricht der Schaltbe
reitschaft
Prüfen sonstiger Prekanten (Freigabe der Transition durch sonstige Prekanten). Erfüllt: Ent
spricht der erweiterten Schaltbereitschaft
Prüfen sonstiger Bedingungen (Bedingte Freigabe der Transition durch sonstige Bedingun
gen). Erfüllt: Entspricht der bedingten SchaltbereitschaftChecking the standard pre-edges (activation of the transition). Fulfilled: Corresponds to the readiness to switch
Checking other pre-edges (release of the transition by other pre-edges). Fulfilled: Corresponds to the extended switching readiness
Check other conditions (conditional release of the transition through other conditions). Fulfilled: Corresponds to the conditional switching readiness
Schalten wenn:
Schalten = Schaltbereitschaft & erweiterte Schaltbedingung & bedingten Schaltbereitschaft
dann
Anweisungsblock spezialisierter Transition (Lösch, Anweisung. .) bearbeiten
Ausführungsverwaltung (Verwaltung der Variablen zu Optimierung)
Räumen der Vorgängerplätze (Input- oder Eingangs-Plätze)
Belegen der Nachfolgerplätze (Output- oder Ausgangs-Plätze)Switch when:
Switching = switching readiness & extended switching condition & conditional switching readiness then
Edit instruction block of specialized transition (delete, instruction ...)
Execution management (management of variables for optimization)
Clear the previous places (input or entrance places)
Occupying the successor places (output or exit places)
Schaltverhältnis (SV) einer Transition gibt an, das Verhältnis der Häufigkeit des Schaltens zur Häu figkeit des Nicht-Schalten. Die Summe aus Nicht-Schalten und Schalten ergibt die Anzahl der ge samten Bearbeitungen der Transition (oder des Netzes) bzw. der Source, der das Netz repräsentiert. Eine Transition, die nie schaltet (ist meist unsinnig) hat ein Schaltverhältnis von 0. Sie muß jedoch nicht Tod sein, das Schaltverhältnis einen bestimmten Zeitraum betrachtet.Switching ratio (SV) of a transition indicates the ratio of the frequency of switching to skin ability of not switching. The sum of non-switching and switching results in the number of ge Complete processing of the transition (or the network) or the source that represents the network. A transition that never switches (is usually nonsensical) has a switching ratio of 0. However, it must not be death, the switching ratio is considered a certain period of time.
Eine Transition, die genau so häufig schaltet wie nicht, hat ein Schaltverhältnis von 1. Eine Transition,
die einmal weniger schaltet als nicht-schaltet besitzt ein Schaltverhältnis von 0,5.
SVT = Anzahl Schalten/Anzahl Nichtschalten Basis: Transitionsbearbeitungen
SVN = Anzahl Schalten/Anzahl Nichtschalten Basis: NetzbearbeitungenA transition that switches just as often as not has a switching ratio of 1. A transition that switches less than non-switching has a switching ratio of 0.5.
SV T = number of switching / number of non-switching basis: transition processing
SV N = number of switching / number of non-switching basis: network processing
Kennzeichnet die Anzahl von Transitionen, die um den gleichen Platz in Konflikt stehen.Identifies the number of transitions that conflict with the same place.
Kausalitätsgrad einer Transition gibt an, wie viele direkte Vorgängertransitionen schalten müssen, damit die Schaltbereitschaft gegeben ist. Dabei reduzieren ODER-verknüpfte Standard-Prekanten den Kausalitätsgrad. Transitionen, die den selben Ausgangsplatz besitzen, der Eingangsplatz der untersuchten Transition ist, zählen jeweils mit.Degree of causality of a transition indicates how many direct predecessor transitions have to switch, so that the switch is ready. This reduces OR-linked standard precursors the degree of causality. Transitions that have the same exit place, the entry place of the examined transition, count with each.
Selten schaltende Transitionen oder 01229 00070 552 001000280000000200012000285910111800040 0002010026387 00004 01110Kausalketten, wie die Fehlererkennung an einem Platz, kann die Bearbeitung direkt von dem Platz abhängig machen.Rarely switching transitions or 01229 00070 552 001000280000000200012000285910111800040 0002010026387 00004 01110 Make processing directly dependent on the location.
Anzahl der tatsächlich bearbeiteten Zeilen in einem ausgewählten Programmzustand. Übersprungene Zeilen verkürzen die logische Programmlänge, während jeder Schleifendurchlauf eine Verlängerung bedeuten.Number of lines actually processed in a selected program state. Skipped Lines shorten the logical program length, while each loop run an extension mean.
Ursprünglich bezeichnet der Begriff die Einkerbungen auf der Werkbank (workbench) des Handwer kers zur Längenmessung. Übertragen auf die Technik ist der Benchmark eine bestimmte Aufgaben stellung, die Rechnersystemen zur Leistungsmessung auferlegt wird, um die Meßergebnisse zu ver gleichenThe term originally refers to the indentations on the workbench of the craftsman kers for length measurement. Applied to technology, the benchmark is a specific task position, which is imposed on computer systems for power measurement in order to ver the measurement results same
Hsgb. Borland GmbH, Programmiererhandbuch Turbo Pascal für Windows
München 1991
Microsoft Press Deutschland, Microsoft Visual Basic 6.0 Programmiererhandbuch
Unterschleißheim 1998Ed. Borland GmbH, programmer's manual Turbo Pascal for Windows Munich 1991
Microsoft Press Germany, Microsoft Visual Basic 6.0 Programmer's Guide Unterschleissheim 1998
Lassen sich auch Aktionen über einen Dispatcher verwalten? Wenn ja welche (N, D, . . .) und was bringt es.Can actions also be managed using a dispatcher? If so, which (N, D,...) And what brings it.
Simultanketten Unter Kettenflag, jede Kette als ein oder mehr Segmente.Simultaneous chains Under chain flag, each chain as one or more segments.
Claims (5)
Priority Applications (3)
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 |
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 |
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 |
Applications Claiming Priority (1)
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 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10026387A1 true DE10026387A1 (en) | 2001-12-06 |
DE10026387B4 DE10026387B4 (en) | 2007-04-19 |
Family
ID=7643834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10026387A Expired - Fee Related 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 |
Country Status (3)
Country | Link |
---|---|
AU (1) | AU2001267443A1 (en) |
DE (1) | DE10026387B4 (en) |
WO (1) | WO2001093114A2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6795739B2 (en) | 2000-06-07 | 2004-09-21 | Siemens Aktiengesellschaft | Method for organizing the execution of electronically controlled switching processes |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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. |
DE69206917T2 (en) * | 1991-07-16 | 1996-05-23 | Cit Alcatel | Auxiliary procedures for the development of a group of communicating machines |
DE19850324A1 (en) * | 1998-11-02 | 2000-05-04 | Abb Patent Gmbh | Process for automatic imaging of target system neutral control technology planning output into 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 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5621639A (en) * | 1989-06-01 | 1997-04-15 | Fray; Paul J. | Process control |
JP2762893B2 (en) * | 1993-04-02 | 1998-06-04 | 三菱電機株式会社 | Programmable controller and method of executing SFC program using the programmable controller |
FR2723226B1 (en) * | 1994-07-29 | 1996-09-20 | Bull Sa | METHOD FOR DETECTION OF FAILURE SEQUENCES IN A SITUATION RECOGNITION SYSTEM |
US5623401A (en) * | 1995-08-16 | 1997-04-22 | Allen-Bradley Company, Inc. | Industrial controller with optimized execution of relay ladder logic programs |
-
2000
- 2000-05-27 DE DE10026387A patent/DE10026387B4/en not_active Expired - Fee Related
-
2001
- 2001-05-16 WO PCT/EP2001/005536 patent/WO2001093114A2/en active Application Filing
- 2001-05-16 AU AU2001267443A patent/AU2001267443A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69206917T2 (en) * | 1991-07-16 | 1996-05-23 | Cit Alcatel | Auxiliary procedures for the development of a group of communicating machines |
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. |
DE19850324A1 (en) * | 1998-11-02 | 2000-05-04 | Abb Patent Gmbh | Process for automatic imaging of target system neutral control technology planning output into 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 |
Non-Patent Citations (4)
Title |
---|
FRICK,Klaus: Zum Reglerentwurf für gesteuerte Petri-Netze. In: at - Automatisierungstechnik 44, 1996, 12, S.564-570 * |
GREIM,Thomas: Ein Beitrag zur steuerungs- technischen Anwendung von Petri-Netzen. In: at - Automatisierungstechnik 44, 1996, 6, S.274- S.280 * |
MOßIG,Kai: Ein neuer Ansatz zur algebraischen Darstellung von Petri-Netzen. In: at - Automati- sierungstechnik 44, 1996, 9, S.437-442 * |
MOßIG,Kai: Steuerungssynthese mit kontrollierten Free-Choice Petri-Netzen zur Prozeßbeschreibung. In: at - Automatisierungstechnik 43, 1995, 11, S.506-513 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6795739B2 (en) | 2000-06-07 | 2004-09-21 | Siemens Aktiengesellschaft | Method for organizing the execution of electronically controlled switching processes |
Also Published As
Publication number | Publication date |
---|---|
AU2001267443A1 (en) | 2001-12-11 |
DE10026387B4 (en) | 2007-04-19 |
WO2001093114A3 (en) | 2002-07-11 |
WO2001093114A2 (en) | 2001-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60011479T2 (en) | XML ROBOT | |
DE69924857T2 (en) | PROGRAM CODE CONVERSION | |
DE69625948T2 (en) | Compiler with generic front end and dynamically loadable back ends | |
EP3281071B1 (en) | Translation module, processing module and control system | |
DE60000433T2 (en) | DETERMINATION OF DYNAMIC BRANCH GOALS | |
DE69031078T2 (en) | COMPUTER-AIDED SOFTWARE DEVELOPMENT DEVICE | |
DE69308293T2 (en) | GLOBAL PROCESS CONTROL INFORMATION SYSTEM AND METHOD | |
DE69021659T2 (en) | Method and device for serial parallel debugging. | |
DE69516891T2 (en) | METHOD FOR TRANSLATING SOURCE CODE FROM ONE COMPUTER HIGH LANGUAGE TO ANOTHER | |
DE19815865B4 (en) | Compilation system and method for reconfigurable computing | |
EP1476829A2 (en) | Engineering method and system for industrial automation systems | |
DE10308725A1 (en) | System and method for managing and exchanging data of a technical project, a technical system and individual system components | |
DE69128571T2 (en) | Modular expert system and method for modularizing a set of rules of an expert system | |
EP1516250A2 (en) | Software application, software architecture and method for the construction of software applications, especially for measuring systems | |
EP1664954A1 (en) | Provision of diagnosis information | |
DE69907714T2 (en) | COMPONENT-BASED SOURCE CODE GENERATOR METHOD | |
DE69026845T2 (en) | Compiler-type knowledge processing tool, a high-speed derivative method therefor, and a system using the tool | |
EP2407842A2 (en) | Method for operating machines or machines in a machine series and design system | |
DE10026387A1 (en) | Procedure for optimizing execution time for the implementation of state- or process-oriented models in real solutions | |
EP1166215B1 (en) | Method for the automatic retrieval of engineering data of systems | |
DE69428951T2 (en) | Language processing system and method | |
EP0519096B1 (en) | Knowledge based diagnostic system with graphical knowledge-acquisition element | |
EP0662226B1 (en) | Method of processing an application program on a parallel-computer system | |
EP1173808B1 (en) | Software object, system and method for an automation programme with function rules which has multiple uses for various programming tools | |
EP1640827B1 (en) | Method and apparatus using a region growing algorithm for converting a control program depicted with elements of a graphical programming language |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OM8 | Search report available as to paragraph 43 lit. 1 sentence 1 patent law | ||
OP8 | Request for examination as to paragraph 44 patent law | ||
8120 | Willingness to grant licences paragraph 23 | ||
8364 | No opposition during term of opposition | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |
Effective date: 20121201 |