DE102005039771B3 - Real time process managing unit for programmable electronic system, has memory blocks to store parameter sets of parameter processes, and data busses to access register sets to write and read contents of input and output sets, respectively - Google Patents
Real time process managing unit for programmable electronic system, has memory blocks to store parameter sets of parameter processes, and data busses to access register sets to write and read contents of input and output sets, respectively Download PDFInfo
- Publication number
- DE102005039771B3 DE102005039771B3 DE200510039771 DE102005039771A DE102005039771B3 DE 102005039771 B3 DE102005039771 B3 DE 102005039771B3 DE 200510039771 DE200510039771 DE 200510039771 DE 102005039771 A DE102005039771 A DE 102005039771A DE 102005039771 B3 DE102005039771 B3 DE 102005039771B3
- Authority
- DE
- Germany
- Prior art keywords
- register
- der
- die
- data
- parameter
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
Das hier beschriebene Schaltungskonzept einer Verwaltungseinheit für Echtzeitrechenprozesse ohne asychrone Unterbrechungen ist dem technischen Gebiet Programmierbare Elektronische Systeme (PES) für sicherheitskritische Anwendungen zuzuordnen.The Here described circuit concept of a management unit for real-time computing processes without asychronous interruptions is programmable in the technical field Electronic systems (PES) for safety-critical Assign applications.
Als nächstkommender Stand der Technik kann die folgende Schrift angesehen werden:
- • Skambraks, M.: Concepts for Real-Time Execution in Safety-Critical Applications. In: Proceedings of the 16th IFAC World Congress, Prague, CZ, July 4-8, 2005. <http://www.nt.ntnu.no/users/skoge/prost/proceedings/ifac2005/Papers/Paper2962.htm1>
- • Skambraks, M .: Concepts for Real-Time Execution in Safety-Critical Applications. In: Proceedings of the 16th IFAC World Congress, Prague, CZ, July 4-8, 2005. <http://www.nt.ntnu.no/users/skoge/prost/proceedings/ifac2005/Papers/Paper2962.htm1>
Nachfolgend werden die wesentlichen Details zum Stand der Technik, die teilweise auch in der genannten Schrift erläutert werden, beschrieben.following Be the essential details of the state of the art, some also be explained in the cited document described.
Obwohl PES heutzutage in vielen sicherheitskritischen Anwendungen eine maßgebliche Rolle spielen, ist die Sicherheitszertifizierung solcher kombinierter Programm- und Gerätesysteme immer noch problematisch. Die hierbei auftretenden Probleme resultieren weniger aus der Berücksichtigung unvermeidbarer spontaner physikalischer Ausfälle als vielmehr aus der Komplexität solcher Systeme, die einen enormen Aufwand zu ihrer Verifikation nach sich zieht.Even though PES today in many safety-critical applications one authoritative Play a role is the safety certification of such combined Program and device systems still problematic. The problems that arise here result less from the consideration unavoidable spontaneous physical failures rather than the complexity of such Systems that require enormous effort to verify draws.
Die Sicherheitsnorm IEC 61508 begrenzt die Komplexität solcher Systeme indirekt, indem sie den Einsatz einiger konventioneller Verarbeitungsmethoden einschränkt. Von ausschlaggebender Bedeutung sind hierbei die Programmentwurfsrichtlinien, welche für Applikationen, die den beiden höheren Sicherheitsanforderungsklassen SIL 3 und SIL 4 genügen müssen, den Gebrauch von Unterbrechungen, dynamischen Objekten und Variablen sowie Zeigern nur in begründeten Ausnahmefällen zulassen (Teil 3, Tabelle B1). Zudem schreibt die Norm für Anwendungen auf dem Niveau von SIL 4 die Verwendung formaler Methoden zur Verifikation vor (Teil 3, Tabelle A1). Letzteres ist nur bei Systemen mit Zeitverhalten geringer Komplexität mit vertretbarem Aufwand möglich.The Safety standard IEC 61508 limits the complexity of such systems indirectly, by using some conventional processing methods limits. Of crucial importance here are the program design guidelines, which for Applications that are the two higher Safety requirements SIL 3 and SIL 4 must meet the Use of breaks, dynamic objects and variables as well as pointers only in justified exceptions permit (Part 3, Table B1). In addition, the standard writes for applications at the level of SIL 4, the use of formal verification methods before (part 3, table A1). The latter is only for systems with time behavior low complexity possible with reasonable effort.
In Abhängigkeit von der internen Arbeitsweise können die derzeit in sicherheitsgerichteten Anwendungen eingesetzten Systeme in periodisch arbeitende PES und (rechen prozessorientierte PES eingeteilt werden. In der Automatisierungstechnik werden zunehmend auch Mischformen eingesetzt, die in der Sicherheitstechnik jedoch keine wesentliche Bedeutung haben.In dependence from the internal way of working can the systems currently used in safety-related applications in periodically working PES and (process-oriented PES to be grouped. In automation technology are becoming increasingly However, mixed forms used, but in safety technology have no meaning.
Periodisch arbeitende PESPeriodically working PES
Diese PES-Kategorie führt Anwendungsprogramme in Verarbeitungszyklen konstanter, fest vorgegebener Dauer aus. Dabei wird jedes Anwendungsprogramm innerhalb eines jeden Zyklusses vollständig durchlaufen. Die strikt periodische Arbeitsweise erlaubt bedingungsgesteuerte Verzweigungen lediglich in begrenztem Umfang; ein vollständig vom externen Prozess gesteuerter Programmfluss ist nicht möglich. Daher ist das Einsatzfeld auf einfache Steuerungsaufgaben beschränkt. Darüber hinaus ist die zyklische Programmierung nicht problemorientiert. Typische Vertreter dieser PES-Kategorie sind die speicherprogrammierbaren Steuerungen (SPS), welche üblicherweise gemäß dem Funktionsblockparadigma der IEC 61131-3 programmiert werden.These PES category leads Application programs in processing cycles of constant, fixed Duration off. Each application program will be within each one Cycle complete run through. The strictly periodic way of working allows condition-controlled Branches only to a limited extent; a completely from the external process controlled program flow is not possible. Therefore the field of application is limited to simple control tasks. Furthermore is cyclic programming not problem-oriented. typical Representatives of this PES category are the programmable logic controllers Controllers (PLC), which are usually according to the function block paradigm to IEC 61131-3.
Alle Steuerungsaufgaben müssen im Takt der 'globalen' Zykluszeit bearbeitet werden; individuelle Zeitbedingungen können nur durch zusätzlichen Programmieraufwand im Zeitraster der Zyklen realisiert werden. Umfangreiche Algorithmen führen entweder zu langen Zykluszeiten oder müssen über mehrere Zyklen verteilt werden. Ersteres erhöht die Reaktionszeit eines Systems, letzteres die Komplexität des Anwendungsprogramms. Darüber hinaus ist die Handhabung mehrerer Aufgaben mit stark variieren den Antwortzeitbedingungen problematisch. Der Programmcode wird üblicherweise nicht in direktem Bezug zum weltweiten Zeitnormal (UTC) ausgeführt, weshalb zusätzlicher Aufwand zur Synchronisation mit externen Systemen und zur UTC-bezogenen Ablaufprotokollierung notwendig ist. Insbesondere letzteres ist für die meisten sicherheitskritischen Anwendungen unabdingbar.All Need to control tasks edited to the beat of the 'global' cycle time become; individual time conditions can only be supplemented Programming effort in the time grid of the cycles can be realized. extensive Lead algorithms either too long cycle times or have to be spread over several cycles become. The former increases the reaction time of a system, the latter the complexity of the application program. About that In addition, the handling of multiple tasks varies greatly with the Response time conditions problematic. The program code usually becomes not directly related to the Universal Time Standard (UTC), which is why additional Effort for synchronization with external systems and UTC-related Logging is necessary. In particular, the latter is for the Most safety-critical applications are essential.
Der bedeutendste Vorteil dieser PES-Kategorie liegt in der bewerkenswert geringen Komplexität der Geräte und des Zeitverhaltens. Hierdurch wird der Aufwand zur Sicherheitszertifizierung minimiert. Obwohl diese PES-Kategorie prinzipiell für Anwendungen des höchsten Sicherheitsniveaus (SIL 4) geeignet ist, sind die derzeit verfügbaren Systeme höchstens bis SIL 3 zertifiziert.The most important advantage of this PES category lies in the low complexity of the devices and the time behavior. As a result, the cost of security certification is minimized. Although this PES category is in principle suitable for applications of the highest safety level (SIL 4) the currently available systems are certified up to SIL 3 at most.
Prozessorientierte PESProcess-oriented PES
Diese PES-Kategorie führt ihre Anwendungsprogramme unterbrechungsgesteuert aus. Hierdurch sind sowohl beliebige, durch die externen Prozesse gesteuerte Programmflüsse als auch die asynchrone Verarbeitung unterschiedlicher Aufgaben möglich. Einerseits erhöht die asynchrone Arbeitsweise die Systemkomplexität, da spezielle Synchronisationsmechanismen, wie z. B. Semaphore, notwendig sind; andererseits ist sie flexibler und auch für umfangreiche Anwendungen geeignet. Wenngleich die asynchrone, prozessorientierte Programmierung wesentlich problemangepasster – und somit auch überschaubarer – ist, so besitzt diese PES-Klasse dennoch eine unvermeidbar hohe Komplexität. Diese resultiert aus der Komplexität der Gerätee, der erforderlichen Echtzeitbetriebssysteme und deren Zusammenspiel mit den Anwendungsprogrammen.These PES category leads their application programs interrupt-driven. hereby are any arbitrary program flows controlled by the external processes also the asynchronous processing of different tasks possible. On the one hand elevated the asynchronous way of working the system complexity, since special synchronization mechanisms, such as B. semaphores, are necessary; On the other hand, it is more flexible and also for extensive applications suitable. Although asynchronous, process-oriented programming much problem-adapted - and thus also manageable - is, so Nevertheless, this PES class has unavoidably high complexity. These results from the complexity the device that required real-time operating systems and their interaction with the application programs.
Eine Gerätekomponente, die ein komplexes Zeitverhalten eines Gesamtsystems nach sich zieht, ist das Unterbrechungswerk des Prozessors. Unterbrechungen werden stets mit Hilfe eines (Stapel-) Zeigers und eines dynamischen Objekts (Stapelspeicher) verarbeitet, was eigentlich den Anforderungen der IEC 61508 an Applikationen der beiden höheren Sicherheitsanforderungsklassen widerspricht. Allein der formale Nachweis, dass ein Stapelspeicher in einer gegebenen Anwendung mit asynchron auftretenden Unterbrechungen unter keinen Umständen überlaufen kann, verlangt einen meistens unakzeptabel hohen Aufwand – wenn er nicht gar ganz unmöglich ist.A Device component, which entails a complex time behavior of an overall system, is the interruption work of the processor. Be interruptions always with the help of a (stack) pointer and a dynamic object (Stack memory), which actually meets the requirements of IEC 61508 to applications of the two higher security requirement classes contradicts. Alone the formal proof that a stack in a given application with asynchronously occurring interrupts under no circumstances overflowed can, requires a mostly unacceptably high effort - if he not completely impossible is.
Die Komplexität von Betriebssystemen ist meistens durch die verfolgten Leistungsgesichtspunkte bedingt. Um die Reaktionszeit von Echtzeitsystemen möglichst kurz zu halten, sind Echtzeitbetriebssyteme i.d.R. in mehrere Schichten gegliedert. Dabei bearbeitet die unterste Schicht besonders zeitkritische Aufgaben geringen Ausmaßes; umfangreichere Aufgaben werden von höheren Schichten bearbeitet. Minimierung des Rechenaufwandes der Betriebssystemkernfunktionen ist eine weitere Möglichkeit, um Reaktionszeiten kurz zu halten. Daher werden fast ausschließlich prioritätenbasierte (Prozessor-) Zuteilungsstrategien eingesetzt, obwohl zeitbasierte Strategien, die einen höheren Rechenaufwand verursachen, den Anforderungen an Echtzeitsysteme viel besser gerecht werden. Sofern Prozessoren überhaupt zeitbasiert zugeteilt werden, entspricht die verwendete Zeit meist nicht dem UTC-Standard. Eine auf UTC bezogene Ablaufprotokollierung verlangt daher eine Umrechnung der Systemzeit in UTC. Die Notwendigkeit solcher Zeitumrechnungen sowie die oben genannte Gliederung von Betriebssystemen in Schichten erhöhen die Komplexität von Echtzeitbetriebssystemen beträchtlich.The complexity Operating systems are mostly driven by the performance issues conditionally. To the reaction time of real-time systems possible In short, real-time operating systems are i.d.R. in several layers divided. The lowest layer processes especially time-critical ones Minor tasks; more extensive tasks are handled by higher layers. Minimizing the computational overhead of kernel functions is another way to keep reaction times short. Therefore, almost exclusively priority-based (Processor) allocation strategies used, although time-based Strategies that are higher Computing effort, the requirements for real-time systems to do much better. As long as processors are allocated on a time-based basis usually the time used does not comply with the UTC standard. A UTC-related trace requires a Conversion of system time to UTC. The need for such time conversions as well as the above-mentioned structure of operating systems in layers increase the complexity of real-time operating systems considerably.
Die Komplexität des Zusammenspiels von Prozessor, Betriebssystem und Anwendungsprogrammen ergibt sich maßgeblich aus der Abhängigkeit des Programmablaufs vom externen Prozess. Aus diesem Grund ist der Nachweis der zeitgerechten Ausführbarkeit eines Anwendungsprogramms ein wesentlicher Bestandteil seiner Entwicklung. Nicht nur die Mechanismen zur Synchronisation des Ablaufs von Rechenprozessen erschweren diesen Nachweis, sondern auch die von Unterbrechungen hervorgerufenen Kontextumschaltungen des Prozessors, welche die tatsächlichen Antwortzeiten aller aktivierten Rechenprozesse beeinflussen. Darüber hinaus erschwert die Einteilung in unterbrechbare und nicht unterbrechbare Programmteile den Ausführbarkeitsnachweis. Obwohl der Gebrauch asynchroner Unterbrechungen eigentlich den Richtlinien der IEC 61508 für die Sicherheitsanforderungsklassen SIL 3 und SIL 4 widerspricht, wurden bereits prozessorientierte Echtzeitbetriebssysteme für SIL 3 zertifiziertThe complexity of the interaction between processor, operating system and application programs decisively out of dependence the program flow from the external process. That is why the Proof of timely feasibility an application program is an integral part of its development. Not just the mechanisms for synchronizing the flow of computational processes complicate this proof, but also of interruptions caused context switching of the processor, which the actual Respond response times of all activated computational processes. Furthermore complicates the division into interruptible and not interruptible Program parts the feasibility certificate. Although the use of asynchronous interruptions is actually the guidelines the IEC 61508 for the safety requirement classes SIL 3 and SIL 4 contradict, were already process-oriented real-time operating systems for SIL 3 certified
Prozessverarbeitung ohne asynchrone UnterbrechungenProcess processing without asynchronous interruptions
Aufgrund der spezifischen Vor- und Nachteile der beiden beschriebenen PES-Klassen ist für jede sicherheitskritische Anwendung ein Kompromiss zu schließen und ein PES-Typ auszuwählen. Eine Lösung, die die Vorteile beider PES-Klassen kombiniert und so die Kompromissbildung vermeidet, existiert bereits, wenngleich die Lösung in der industriellen Praxis wegen ihrer Neuheit bisher noch nicht eingesetzt wird. Die Lösung basiert auf dem nachfolgend beschriebenen Konzept der Rechenprozessverarbeitung ohne asynchrone Unterbrechungen.by virtue of the specific advantages and disadvantages of the two described PES classes is for any safety-critical application to compromise and to select a PES type. A solution, which combines the advantages of both PES classes and thus the compromise formation avoids exist already, albeit the solution in industrial practice because of their novelty has not yet been used. The solution is based on the concept of computation processing described below without asynchronous interruptions.
Bei diesem Konzept werden Prozessausführung und -verwaltung strikt voneinander getrennt. Zur Prozessausführung (PA) zählt ausschließlich die Bearbeitung anwendungsspezifischen Programmcodes; die Prozessverwaltung (PV) ist verantwortlich für Prozessadministration und Prozessorzuteilung. Für letzteres wird im Idealfall die Strategie nach nächsten ablaufenden Antwortzeiten (frühesten Fertigstellungsterminen) eingesetzt, da diese in jedem Fall eine zeitgerechte Prozessorbelegung erzeugt, sofern die Einhaltung der Zeitbedingungen einer gegebenen Prozessenge theoretisch überhaupt möglich ist. Die Zeit wird in diskrete, gleich lange Verarbeitungsintervalle eingeteilt, die den periodischen, synchronen Arbeitstakt der PA und der PV bestimmen. Prozesse setzen sich aus einer Anzahl an Prozessabschnitten zusammen, die folgende Eigenschaften besitzen:
- • Jeder Prozessabschnitt kann vollständig innerhalb eines Verarbeitungsintervalles ausgeführt werden.
- • Die Ausführung eines Prozessabschnittes ist nicht unterbrechbar.
- • Prozessabschnitte tauschen Daten über den Datenspeicher aus; der Inhalt der Prozessorregister geht am Ende eines Verarbeitungsintervalls verloren.
- • Jeder Prozessabschnitt besitzt einen Identifikator.
- • Die Abschnitte eines Prozesses müssen nicht in einer fest vorgegebenen Reihenfolge ausgeführt werden. Für jeden Prozess speichert die PV einen Abschnittszeiger, der den als nächsten auszuführenden Prozessabschnitt identifiziert.
- • Each process section can be executed completely within one processing interval.
- • The execution of a process section can not be interrupted.
- • Process sections exchange data via the data memory; the contents of the processor registers are lost at the end of a processing interval.
- • Each process section has an identifier.
- • The sections of a process do not have to be executed in a fixed order. For each process, the PV stores a section pointer that identifies the process section to be executed next.
Zu
Beginn eines jeden Verarbeitungsintervalls gibt die PV den Identifikator
des gemäß dem Terminzuteilungsverfahren
als nächsten
auszuführenden
Prozessabschnittes aus. Dieser Identifikator entspricht dem gespeicherten
Abschnittszeiger des gemäß dem Prozessorzuteilungsalgorithms
auszuführenden
Prozesses. Die PA liest den Identifikator und führt den zugehörigen Abschnitt
aus. Gegen Ende des Verarbeitungsintervalls, wenn der Abschnitt
abgearbeitet worden ist, übergibt
die PA einen Identifikator an die PV. Dieser Identifikator, welcher
den nächsten
auszuführenden
Abschnitt des soeben ausgeführten
Prozesses kennzeichnet, wird von der PV als neuer Abschnittszeiger
gespeichert. Das Flussdiagramm in
Wenn der ausgeführte Abschnitt der letzte war, d. h. der zugehörige Prozess vollständig abgearbeitet worden ist, signalisiert die PA dies der PV (z. B. durch Ubergabe des Identifikatorwertes 'nil'). In diesem Fall veranlasst die PV einen Zustandsübergang, so dass sich der Prozess nicht länger im Zustand 'aktiviert' befindet. Gleichzeitig wird das Bearbeitungsende bei der Bestimmung des Identifikators des als nächsten auszuführenden Prozessabschnitts berücksichtigt.If the executed one Section was the last, d. H. the associated process has been completely processed is, the PA signals this to the PV (eg, by passing the identifier value 'nil'). In this case, prompt the PV is a state transition, so that the process no longer works in the state 'activated'. simultaneously becomes the end of processing in the determination of the identifier of the next one be executed Considered in the process section.
Diese Arbeitsweise kommt ohne Synchronisationsmechanismen, wie z. B. Semaphore, aus, da jeder Prozess während eines Verarbeitungsintervalls ununterbrechbaren, exklusiven Zugriff auf den Prozessor hat. Prozesse können über den Datenspeicher miteinander kommunizieren, ohne beim Schreiben von Nachrichten der Gefahr von Unterbrechungen ausgesetzt zu sein. Sich wechselseitig ausschließender Zugriff auf Systemkomponenten kann einfach mit Hilfe von Variablen im Datenspeicher implementiert werden. In ähnlicher Weise können abwechselnde Zugriffe mehrerer Prozesse realisiert werden; hierzu ist nur die programmgesteuerte Suspendierung und Fortführung von Prozessen notwendig. Die Entbehrlichkeit von Synchronisationsmechanismen vereinfacht dieses PES-Konzept wesentlich.These Operation comes without synchronization mechanisms, such. Semaphores, out there every process during a processing interval uninterruptible, exclusive access on the processor. Processes can communicate with each other through the data store communicate without risk of writing messages To be exposed to interruptions. Mutually exclusive access on system components can easily by using variables in the data store be implemented. In similar Way you can alternating accesses of several processes can be realized; For this is only the programmatic suspension and continuation of Processes necessary. The dispensability of synchronization mechanisms significantly simplifies this PES concept.
Wie im vorigen Abschnitt bereits erläutert, gehört das Unterbrechungswerk zu den komplexeren Bestandteilen eines Prozessors und die formale Verifikation eines auf asynchrone Unterbrechungen basierenden Systems ist meist unakzeptabel aufwendig, wenn nicht gar unmöglich. Dementsprechend erleichtert die Prozessverarbeitung ohne asynchrone Unterbrechungen sowohl die Prozessorarchitektur als auch die Verifikation des Gesamtsystems. Da nicht nur auf asynchrone Unterbrechungen, sondern auch auf einen Stapelspeicher, der einen Zeiger und ein dynamisches Objekt verlangen würde, verzichtet wird, wird die beschriebene Arbeitsweise den Anforderungen der IEC 61508 an höchst sicherheitskritische Applikationen besser als herkömmliche prozessorientierte PES gerecht.As already explained in the previous section, belongs the interruption work to the more complex components of a processor and the formal verification of an asynchronous interruption based system is usually unacceptably complex, if not impossible. Accordingly, process processing facilitates without asynchronous Interruptions both the processor architecture and the verification of the Overall system. Because not only on asynchronous interruptions, but also on a stack that has a pointer and a dynamic one Would require an object is omitted, the procedure described is the requirements IEC 61508 highest safety-critical applications better than conventional ones process-oriented PES fair.
Ausführbarkeit der Anwendungsprogramme: Durch die hier vorgestellte Arbeitsweise wird das Einsatzfeld nicht so stark eingeschränkt wie das der zyklisch arbeitenden PES. Ohne Gebrauch asynchroner Unterbrechungen werden beliebige von den externen Prozessen abhängige Programmablaufpfade ermöglicht. Wie bei anderen prozessorientierten Echtzeitsystemen verlangt diese Fähigkeit zu prozessgesteuerten Programmflüssen, Anwendungsprogramme auf zeitgerechte Ausführbarkeit hin zu überprüfen.feasibility of the application programs: By the method presented here the field of application is not restricted as much as that of the cyclical ones PES. Without use of asynchronous interrupts will be any dependent on the external processes Program flow paths enabled. As in other process-oriented real-time systems, this requires ability to process-controlled program flows, Check application programs for timely executability.
Auch
dieses Problem ist bereits gelöst.
Die Ausführbarkeitsanalyse
vereinfacht sich, wenn bei der Auswahl des für die interne Verarbeitung
der PV verwendeten Prozesszustandsmodells die Möglichkeiten formaler Verifikationsmethoden
berücksichtigt
werden. Ein Modell, welches für
das hier beschriebene Konzept der Prozessverarbeitung besonders
geeignet ist, basiert auf drei Ausführungseigenschaften: maximale
Ausführungszeit
tAusfZeit, maximale Antwortzeit tAusfZeit und minimale Aktivierungsperiode
tUntZeit. Diese Parameter erlauben die Spezifikation
der Zeitbedingungen einer jeden aus periodischen und sporadischen
Rechenprozessen bestehenden hybriden Prozessmenge.
Die minimale Aktivierungsperiode entspricht der minimalen Zeitdauer zwischen zwei Prozessaktivierungen; sie begrenzt die maximal hervorgerufene Prozessorlast indirekt. Nur ein sich im Zustand bekannt befindender Prozess kann aktiviert werden. Wird die Bearbeitung eines Prozesses vor Ablauf der Zeit tUntZeit abgeschlossen, so wird dieser Prozess in den Zustand unterdrückt überführt. Erst nach Ablauf von tUntZeit wird er wieder in den Zustand bekannt versetzt, wodurch eine erneute Aktivierung möglich wird. Der Zustand suspendiert dient Synchronisationszwecken.The minimum activation period corresponds to the minimum amount of time between two process activations; it limits the maximum processor load indirectly. Only a process known in the state can be activated. If the processing of a process is completed before the time t untime has elapsed , this process is transferred to the state suppressed. Only after expiry of t Untime is he again put into the state known, whereby a re-activation is possible. The suspended state is for synchronization purposes.
Alle Zustandsübergänge stehen unter der Kontrolle der PV. Wird die Bearbeitung eines Prozesses abgeschlossen, so wird der Übergang beenden automatisch veranlasst. Die Übergänge suspendieren und fortführen werden zwar von der PV durchgeführt, können aber nur von einem Anwendungsprogramm veranlasst werden. Da die Anwendungsprogramme in ununterbrechbaren Intervallen ausgeführt werden, finden Zustandsübergänge nur am Ende eines Intervalls statt. Dementsprechend wird eine durch einen Prozessabschnitt veranlasste Suspendierung erst gegen Ende des auslösenden Intervalls wirksam. Ein Prozess kann nur sich selbst suspendieren, aber das Fortführen aller anderen Prozesse in die Wege leiten. In Verbindung mit der periodischen Arbeitsweise wird so die Realisierung von Vorgänger-Nachfolger-Relationen möglich, was z. B. zur Implementierung eines abwechselnden Betriebsmittelzugriffs zwingend notwendig ist.All State transitions are under the control of PV. Will the processing of a process completed, so will the transition stop automatically initiated. The transitions will be suspended and continued while performed by the PV, can but only be initiated by an application program. Because the Application programs are run at uninterruptible intervals, find state transitions only held at the end of an interval. Accordingly, a through a process section caused suspension only towards the end of the triggering Interval effective. A process can only suspend itself, but continuing of all other processes. In conjunction with the Periodic operation is thus the realization of predecessor-successor relations possible, what for. To implement alternate resource access is absolutely necessary.
Es empfiehlt sich, das Zustandsmodell so in die PV zu implementieren, dass für jeden Prozess zu jeder Zeit nur eine Instanz existieren kann. Dies erhöht die Konformität mit der IEC 61508, welche die dynamische Instanziierung von Objekten in höchst sicherheitsbezogenen Applikationen verbietet (Teil 3, Tabelle B1). Bei Berücksichtigung der Beschränkung auf eine Prozessinstanz erlauben die Ausführungsparameter tAusfZeit, tAntZeit und tUntZeit den formalen Nachweis der Ausführbarkeit einer Menge von Prozessen bzw. Anwendungsprogrammen. Geeignete Beweismethoden werden in zahlreichen Veröffentlichungen beschrieben.It is recommended to implement the state model in the PV so that only one instance can exist for each process at any time. This increases the conformity with IEC 61508, which prohibits the dynamic instantiation of objects in highly safety-related applications (Part 3, Table B1). Taking into account the restriction to a process instance , the execution parameters t execution time , t time and t time allow the formal proof of the executability of a set of processes or application programs. Appropriate evidence is described in numerous publications.
Implementierung der Prozessverwaltung: Zur Implementierung der PV eignet sich die nachfolgend beschriebene Arbeitsweise, die ebenfalls zum aktuellen Stand der Technik gezählt werden kann. Das Konzept basiert auf zwei physisch voneinander getrennten Einheiten. Die Prozessausführungseinheit (PAE) führt die Prozessabschnitte der Anwendungsprogramme aus. Sie besteht im wesentlichen aus einem Prozessor ohne Unterbrechungswerk. Die Prozessverwaltungseinheit (PVE), welche zur Prozessadministration dient und die auszuführenden Prozessabschnitte bestimmt, wird durch ein digitales Schaltwerk realisiert.implementation the process management: The implementation of the PV is the following procedure, which is also the current Prior art counted can be. The concept is based on two physically separate ones Units. The process execution unit (PAE) leads the process sections of the application programs. It consists in essential from a processor without interruption work. The process management unit (PVE), which serves for the process administration and the to be executed Process sections determined by a digital rear derailleur realized.
Ein wesentlicher Bestandteil der PVE ist die Prozessliste. In der Prozessliste ist für jeden Rechenprozess ein Parametersatz bestehend aus Aktivierungsbedingungen, Ausführungseigenschaften und Zustandsinformationen abgelegt. Alle Prozesse einer Anwendung müssen bereits während der Konfigurierung des Systems in die Prozessliste eingetragen werden; dynamische Instanziierung von Prozessen (bzw. Objekten) ist gemäß den Anforderungen der IEC 61508 an Applikationen auf dem Niveau SIL 4 nicht möglich. Lediglich die Aktivierungsbedingungen eines Prozesses können programmgesteuert verändert werden.One an integral part of PVE is the process list. In the process list is for every calculation process a parameter set consisting of activation conditions, execution properties and state information stored. All processes of an application have to already during the configuration of the system is entered in the process list; dynamic instantiation of processes (or objects) is according to the requirements IEC 61508 is not possible for applications at level SIL 4. Only The activation conditions of a process can be changed programmatically.
Die
Aktivierungsbedingungen eines Prozesses können sowohl auf Zeitplänen basieren
als auch asynchrone Meldungssignale mit einbeziehen. Es empfiehlt
sich, Aktivierungspläne
gemäß dem Verarbeitungskonzept
der Echtzeitprogrammiersprache PEARL90 [DIN 66253-2] zu verwenden,
da diese besonders allgemein gefasst sind und daher den Anforderung
von Echtzeitsystemen bestens gerecht werden. Sie erlauben, periodische
Prozessaktivierungen innerhalb gegebener Zeitfenster direkt zu spezifizieren.
Die Syntax eines solchen Aktivierungsplans lautet:
AT {cock-expression
| [asynchronous-event-expression] + duration1}
EVERY duration2
DURING duration3 ACTIVATE task-nameThe activation conditions of a process can be based on schedules as well as include asynchronous message signals. It is recommended to use activation plans in accordance with the processing concept of the real-time programming language PEARL90 [DIN 66253-2], as these are particularly general and therefore best meet the requirements of real-time systems. They allow to specify periodic process activations directly within given time windows. The syntax of such an activation plan is:
AT {cock-expression | [asynchronous-event-expression] + duration1}
EVERY duration2 DURING duration3 ACTIVATE task-name
Die Ausführungseigenschaften umfassen die Parameter tAusfZeit, tAntZeit und tUntZeit des Prozesszustandsmodells. Die Zustandsinformationen beschreiben den aktuellen Zustand eines Prozesses eindeutig. Hierzu gehört unter anderem der Zeitpunkt der letzten Aktivierung, anhand dessen – in Kombination mit der Ausführungseigenschaft tAusfZeit – der nächste Fertigstellungstermin bestimmt werden kann. Der den als nächsten auszuführenden Abschnitt eines Prozesses identifizierenden Abschnittszeiger gehört ebenfalls zu den Zustandsinformationen.The execution properties include the parameters tExpecTime , tAtTime and tTime of the process state model. The state information uniquely describes the current state of a process. Among other things, this includes the time of the last activation, on the basis of which - in combination with the execution property t execution time - the next completion date can be determined. The section pointer identifying the next portion of a process to be executed also belongs to the state information.
Die
Realisierung der PVE basiert auf einer Kombination aus sequenzieller
und paralleler Verarbeitung. Die Algorithmen können so strukturiert werden,
dass alle auf einen einzelnen Prozess bezogenen Operationen parallel
durchgeführt
werden, die gesamte Prozessmenge hingegen sequenziell verarbeitet
wird.
Während der sequenziellen Prozessadministration (SPA) wird für jeden Prozess ein Drei-Phasen- Vorgang abgearbeitet:
- 1. Zunächst greift die PPV auf die Prozessliste zu und überträgt die Prozessparameter in dafür vorgesehene Eingangsregister der PZS.
- 2. Dann verarbeitet die PZS die Prozessparameter mit Hilfe einer kombinatorischen Logikschaltung innerhalb eines Taktzyklusses.
- 3. Abschließend liest die PPV die aktualisierten Prozessparameter von der PZS ein und speichert diese in der Prozessliste.
- 1. First, the PPV accesses the process list and transfers the process parameters to dedicated input registers of the PZS.
- 2. Then the PZS processes the process parameters using a combinatorial logic circuit within one clock cycle.
- 3. Finally, the PPV reads in the updated process parameters from the PZS and saves them in the process list.
Dabei erstreckt sich die Zuständigkeit der PZS auf folgende Aufgaben:
- 1. Überprüfung der Aktivierungsbedingungen,
- 2. Koordinierung von Prozesszustandsübergängen,
- 3. Generierung der aktualisierten Prozessparameter,
- 4. Berechnung der geforderten Antwortzeiten,
- 5. Bestimmung der Prozesse mit der nächsten und der übernächsten Antwortzeit,
- 6. Ausgabe des Identifikators des als nächsten auszuführenden Prozessabschnittes.
- 1. checking the activation conditions,
- 2. coordination of process state transitions,
- 3. generation of updated process parameters,
- 4. calculation of the required response times,
- 5. determination of the processes with the next and the next but one response time,
- 6. Output of the identifier of the next process section to be executed.
Die ersten vier Aufgaben können für jeden Prozess separat durchgeführt werden. Dies ermöglicht deren zeitgleiche Bearbeitung durch eine rein kombinatorische Digitalschaltung. Die fünfte Aufgabe verlangt, die Antwortzeiten aller aktivierten Prozesse zu vergleichen. Dies wird sequenziell mit den Iterationen des Drei-Phasen-Vorgangs vorgenommen, wobei nach jeder Iteration die Identifikatoren und geforderten Fertigstellungstermine der beiden am dringendsten zu verarbeitenden Prozesse zwischengespeichert werden. Es wird somit nicht nur der Prozess mit der nächsten Antwortzeit, sondern auch der mit der übernächsten Antwortzeit ermittelt. Dies ist notwendig, da die SPA durchgeführt wird, während die PAE einen Prozessabschnitt ausführt. Dadurch kann es vorkommen, dass die Bearbeitung des Prozesses, der von der SPA als der mit dem nächsten Fertigstellungstermin identifiziert wird, im laufenden Verarbeitungsintervall abgeschlossen wird, d. h. die PAE führte während der SPA den letzten Prozessabschnitt aus. In diesem Fall kann, da der Prozess mit der übernächsten Antwortzeit bereits bestimmt wurde, unmittelbar, d. h. ohne erneute Durchführung der SPA, der Identifikator des im nächsten Verarbeitungsintervall auszuführenden Abschnitts ausgegeben werden.The first four tasks can for each Process performed separately become. this makes possible their simultaneous processing by a purely combinational digital circuit. The fifth Task requires the response times of all enabled processes to to compare. This is done sequentially with the iterations of the three-phase process made after each iteration the identifiers and required completion dates of the two most urgent processing processes are cached. It will thus not just the process with the next Response time, but also determined with the next but one response time. This is necessary because the SPA is performed while the PAE is a process section performs. Thus it can happen that the processing of the process, the from the SPA as the one with the next Completion date is identified, in the current processing interval is completed, d. H. the PAE led the last stage of the process during the SPA out. In this case, since the process with the next but one response time has already been determined, directly, d. H. without renewed execution of the SPA, the identifier of the next Processing interval to be executed Section are issued.
Problemeissues
Obwohl das beschriebene Verfahren zur Rechenprozessausführung ohne asynchrone Unterbrechungen zum aktuellen Stand der Technik gezählt werden kann, wird es in der industriellen Praxis noch nicht eingesetzt. Der Grund dafür ist wohl darin zu sehen, dass sich keine nennenswerte Vorteile ergeben, solange die Prozessverwaltungseinheit (PVE) mit Hilfe eines herkömmlichen Prozessors implementiert wird. Die Einteilung der Zeit in diskrete Verarbeitungsintervalle ließe sich nur durch Verwendung des Unterbrechungswerkes realisieren und extrem kurze Reaktionszeiten, d. h. kurze Verarbeitungsintervalle, würden eine Einteilung des Betriebssystems in mehrere Schichten verlangen. Zudem würde die Prozesseinplanung in direktem Bezug zum UTC-Zeitnormal besonderen Aufwand verursachen, da herkömmliche Prozessoren nicht zur Verarbeitung von Zeitwerten in UTC-konformer Darstellung optimiert sind.Even though the described method for computing process execution without asynchronous interruptions It can be counted to the current state of the art, it is in industrial practice not yet used. The reason is probably to see that there are no appreciable benefits, as long as the process management unit (PVE) using a conventional Processor is implemented. The division of time into discrete Would allow processing intervals to realize itself only by using the interruption work and extremely short reaction times, d. H. short processing intervals, would require a division of the operating system into several layers. In addition, would the process planning in direct relation to the UTC time standard special Effort cause, as conventional Processors are not capable of processing time values in UTC-compliant Presentation are optimized.
Die Vorteile des Verfahrens zur Rechenprozessausführung ohne asynchrone Unterbrechungen entfalten sich erst, wenn die PVE in Form einer anwendungsspezifischen integrierten Logikschaltung implementiert wird. Allerdings gibt es hierfür bisher kein zufriedenstellendes Schaltungskonzept, welches ein vertretbares Optimum aus gerätetechnischem Aufwand und Reaktionszeit (bzw. Verarbeitungszeit) bietet. Insbesondere fehlen effiziente Lösungen zu folgenden Problem- bzw. Fragestellungen:
- (A) Aufgrund der parallelen Ausführung der SPA und eines Prozessabschnittes ist die Speicherung der Zustandsinformationen in der Prozessliste problematisch. Einerseits dürfen sich die bereitgestellten Zustandsinformationen innerhalb eines Verarbeitungsintervalls nicht verändern, damit die Anwendungsprogramme zu jedem beliebigen Zeitpunkt lesend darauf zugreifen können und unabhängig vom Zeitpunkt des Zugriffs der gleiche Wert ausgegeben wird; andererseits müssen nach jeder Iteration des in Abschnitt 1.3 beschriebenen Drei-Phasen-Vorgangs die neuen Zustandsinformationen eines Prozesses abgelegt werden. Prinzipiell ließe sich das Problem umgehen, indem mit der Ausführung des Prozessabschnittes erst begonnen wird, nachdem die SPA abgeschlossen wurde. Dies würde jedoch die Rechenleistung des Systems signifikant mindern und hätte, da PVE und PAE in diesem Fall nur abwechselnd aktiv wären, eine sehr ineffiziente Auslastung der eingesetzten Geräteressourcen zur Folge.
- (B) Prinzipiell kann die Ausführung des in Abschnitt 1.3 beschriebenen Drei-Phasen-Vorgangs beschleunigt werden, indem die Eingangsregister der PZS mit den Parametern des nächsten Prozesses geladen werden, während die aktualisierten Parameter des vorigen Prozesses in die Prozessliste zurückgegeben werden. Das bedeutet, dass die Ausführung der ersten und die der dritten Phase des Drei-Phasen-Vorgangs überlagert werden. Unter Berücksichtigung des Problems (A) gestaltet sich eine schaltungstechnische Lösung jedoch schwierig.
- (C) In jedem Verarbeitungsintervall führt die PVE die SPA durch. Gleichzeitig führt die PAE den Prozessabschnitt aus, auf den der von der PVE ausgegebene Identifikator hinweist (Identifikator des auszuführenden Prozessabschnittes). Gegen Ende des Verarbeitungsintervalls übergibt die PAE den Identifikator des als nächsten auszuführenden Abschnittes des soeben bearbeiteten Prozesses an die PVE. Dieser Identifikator muss nicht nur als neuer Abschnittszeiger in der Prozessliste abgelegt werden, er muss darüber hinaus auch unmittelbar, d. h. noch im selben Verarbeitungsintervall, bei der Bestimmung des im nächsten Intervall auszuführenden Abschnittes berücksichtigt werden. Eine schaltungstechnische Lösung dieses Problems muss sich zusammen mit den Lösungen der Probleme (A) und (B) in ein Gesamtkonzept integrieren lassen.
- (D) Da die SPA durchgeführt wird, während die PAE einen Prozessabschnitt ausführt, ist es problematisch, die Aktivierungs- und Ausführungsbedingungen programmgesteuert zu konfigurieren. Einerseits sollten diese Parameter innerhalb eines Verarbeitungsintervalls konstant gehalten werden, da sonst die Ergebnisse der SPA davon abhängen, ob die Parameteränderungen stattfinden, bevor oder nachdem die SPA den zugehörigen Prozess behandelt; andererseits sollte die Konfigurierung dieser Parameter zu jedem beliebigen Zeitpunkt eines Verarbeitungsintervalls zulässig sein und – unabhängig vom Zeitpunkt – stets zum selben Ergebnis führen. Eine schaltungstechnische Lösung dieser Problematik muss mit den Lösungen der Probleme (A) bis (C) vereinbar sein. Die Zeitpunkte, zu denen die SPA auf die Parameter eines Prozesses zugreift, sind – bezogen auf den Beginn eines Verarbeitungsintervalls – konstant und bekannt (vorausgesetzt, die SPA verarbeitet die Prozesse bzw. deren Parameter immer in der gleichen Reihenfolge). Daher gibt es prinzipiell zwei Alternativen, um das Problem zu umgehen: Entweder werden Parametermodifikationen nur zu bestimmten Zeitpunkten zugelassen (z. B. indem mit der Ausführung der Prozessabschnitte erst begonnen wird, nachdem die SPA abgeschlossen wurde), oder der Zeitpunkt des Zugriffs der SPA wird bei der Programmentwicklung berücksichtigt. Die erstgenannte Alternative zieht eine nur bedingt tolerierbare Einschränkung der Leistungsfähigkeit nach sich; bei der zweiten Variante wird die Programmentwicklung bzw. deren Verifikation erschwert. Beide Alternativen sind somit unbefriedigend.
- (E) Ebenso wie die programmgesteuerte Konfigurierung der Prozessparameter ist die programmgesteuerte Suspendierung und Fortführung von Prozessen problematisch. Innerhalb eines Verarbeitungsintervalls muss die PVE die Suspendierungs- und Fortführungsbefehle der PAE entgegennehmen, während sie die Suspendierungs- und Fortführungsbefehle des vorigen Verarbeitungsintervalls ausführt. Eine schaltungstechnische Lösung muss mit den Lösungen der Probleme (A) bis (D) vereinbar sein.
- (F) Asynchron auftretende Ereignisse lassen sich prinzipiell leicht behandeln. Es ist lediglich notwendig, deren Auftretenszeitpunkte in Form von Zeitstempeln in einem Register zwischenzuspeichern. Diese Zeitstempel müssen an die Logikschaltung der PZS geleitet werden, welche dann die asynchronen Ereignisse bei der SPA berücksichtigt. Werden die Zeitwerte allerdings in einem UTC-konformen Format verarbeitet, so wird eine große Datenwortbreite zur Speicherung benötigt. (Bei einer zeitlichen Auflösung von 10 μs werden mehr als 40 Bit benötigt, um den für Echtzeitanwendungen typischen Einsatzzeitraum von mehreren Jahrzehnten abzudecken.) Paralleles Weiterleiten der Zeitstempel mehrerer asynchroner Meldungseingänge an die Logikschaltung der PZS würde dementsprechend schnell zu einem nicht mehr vertretbar hohen Verdrahtungsaufwand führen; der Einsatz einer seriellen Übertragungstechnik würde dagegen den Schaltungsaufwand erhöhen. Eine schaltungstechnische Lösung, die geringen Verdrahtungsaufwand mit minimalem Schaltungsaufwand kombiniert und sich mit den anderen Problemlösungen vereinen lässt, ist daher wünschenswert.
- (G) Arithmetische Berechnungen mit UTC-konformen Zeitwerten, wie sie z. B. zur Bestimmung der Fertigstellungstermine notwendig sind, mit Hilfe von Addier- bzw. Subtrahierschaltwerken durchzuführen, ist problematisch. Da die zwölf Monate eines Jahres nicht die gleiche Anzahl an Tagen besitzen und da eine Minute gemäß dem UTC-Standard in Ausnahmefällen um eine Schaltsekunde verlängert sein kann, ist die Übertragsberechnung schaltungstechnisch schwierig zu realisieren bzw. verlangt unzumutbar hohen Aufwand.
- (A) Due to the parallel execution of the SPA and a process section, storing the state information in the process list is problematic. On the one hand, the state information provided must not change within a processing interval so that the application programs can read it at any time and the same value is output regardless of the time of access; On the other hand, after each iteration of the three-phase process described in Section 1.3, the new state information of a process must be stored. In principle, the problem could be avoided by starting the execution of the process section only after the SPA has been completed. However, this would significantly reduce the computational power of the system and, since PVE and PAE would only be alternately active in this case, would result in a very inefficient utilization of the equipment resources used.
- (B) In principle, the execution of the three-phase process described in section 1.3 can be accelerated by loading the input registers of the PZS with the parameters of the next process, while returning the updated parameters of the previous process to the process list. This means that the execution of the first and the third phase of the three-phase process are superimposed. However, considering the problem (A), a circuit-based solution becomes difficult.
- (C) At each processing interval, the PVE performs the SPA. At the same time, the PAE executes the process section to which the identifier issued by the PVE points (identifier of the process section to be executed). Towards the end of the processing interval, the PAE passes the identifier of the next-to-be-executed section of the process just processed to the PVE. This identifier must not only be stored as a new section pointer in the process list, it must also be considered immediately, ie still in the same processing interval, when determining the section to be executed in the next interval. A circuit-technical solution to this problem, together with the solutions of problems (A) and (B), must be integrated into an overall concept.
- (D) Since the SPA is performed while the PAE is executing a process section, it is problematic to program-configure the activation and execution conditions. On the one hand, these parameters should be kept constant within a processing interval, otherwise the results of the SPA will depend on whether the parameter changes take place before or after the SPA handles the associated process; On the other hand, configuring these parameters should be allowed at any point in a processing interval and always produce the same result regardless of the time. A circuit-technical solution to this problem must be compatible with the solutions of problems (A) to (C). The times at which the SPA accesses the parameters of a process are constant and known with respect to the beginning of a processing interval (provided that the SPA always processes the processes or their parameters in the same order). Therefore, there are basically two alternatives to work around the problem: Either parameter modifications are allowed only at certain times (eg, starting the execution of the process sections only after the SPA has been completed) or the time of access of the SPA is taken into account during program development. The former alternative entails an only limited tolerable restriction of performance; in the second variant, the program development or their verification is difficult. Both alternatives are thus unsatisfactory.
- (E) As well as program-controlled configuration of process parameters, program-controlled suspension and continuation of processes is problematic. Within a processing interval, the PVE must accept the suspend and continue instructions of the PAE while executing the suspend and continue instructions of the previous processing interval. A circuit solution must be compatible with the solutions of problems (A) to (D).
- (F) Asynchronous events can be handled easily. It is only necessary to cache their occurrence times in the form of time stamps in a register. These timestamps must be routed to the logic circuit of the PZS, which then takes into account the asynchronous events in the SPA. However, if the time values are processed in a UTC-compliant format, a large data word width is needed for storage. (At a time resolution of 10 μs, more than 40 bits are needed to cover the typical use of several decades for real-time applications.) Parallel forwarding of the timestamps of multiple asynchronous message inputs to the PZS logic circuitry would quickly result in unreasonably high wiring overhead ; the use of a serial transmission technique, however, would increase the circuit complexity. A circuit technology solution that combines low wiring complexity with minimal circuit complexity and can be combined with the other problem solutions is therefore desirable.
- (G) Arithmetic calculations with UTC-compliant time values, such as B. to determine the completion dates are necessary to perform using adder or Subtrahierschaltwerken is problematic. Since the twelve months of a year do not have the same number of days and since one minute may be extended by a leap second in exceptional cases according to the UTC standard, the carry calculation is difficult to implement circuitry or requires unreasonably high effort.
Lösungsolution
Aufgabe der vorliegenden Erfindung ist die Verwaltung der Prozesse einer Echtzeitanwendung gemäß dem in Abschnitt 1.3 beschriebenen Verfahren der Rechenprozessausführung ohne asynchrone Unterbrechungen. Dabei löst die Erfindung die in Abschnitt 2 geschilderten Probleme mittels der in den Patentansprüchen 1 bis 5 aufgeführten Schaltungskonzepte bzw. Merkmale. Die Erfindung stellt eine schaltungstechnische Realisierung der Prozessverwaltung dar, die ein vertretbares Optimum aus Geräteaufwand und Reaktionszeit (bzw. Verarbeitungszeit) bietet.The object of the present invention is the administration of the processes of a real-time application according to the method of computational process execution described in section 1.3 without asynchronous interruptions. The invention solves the problems described in Section 2 by means of the circuit concepts or features listed in the claims 1 to 5. The invention provides a circuit technology Realization of the process management, which offers a justifiable optimum of equipment expenditure and reaction time (or processing time).
Nachfolgend werden die Lösungen der Probleme (A) bis (G) im einzelnen geschildert. Die beschriebenen Lösungen zeichnen sich dadurch aus, dass sie aufeinander abgestimmt sind und in ein ganzheitliches Schaltungskonzept münden. Auf die Integration dieser Lösungen und deren Zusammenspiel in der PVE wird im Abschnitt "5 Ausführungsbeispiel" vertieft eingegangen.
- (I) Das Problem (A) wird gelöst, indem zur Speicherung der Prozessliste zwei gleich große Speicherblöcke SA und SB verwendet werden, die jeweils über zwei voneinander unabhängige Zugriffsschnittstellen verfügen. Eine Schnittstelle der Speicherblöcke dient jeweils ausschließlich der internen Verarbeitung der PVE; mit der zweiten Schnittstelle wird der PAE der lesende Zugriff auf die Prozessparameter ermöglicht. Dabei wird von Speicherblöcken mit getrennten Datenein- und Datenausgängen ausgegangen; mit geringem zusätzlichen Aufwand lässt sich der hier beschriebene Lösungsansatz jedoch auch durch Speicherblöcke mit kombinierten Datenein- und -ausgängen realisieren. Letzteres ist bei der Integration der PVE in einem einzigen integrierten Schaltkreis jedoch unvorteilhaft, da dabei zusätzliche Dreizustandsausgänge notwendig wären. Mit Hilfe von Multiplexern werden die beiden Speicherblöcke so angesteuert, dass sowohl das zeitgleiche Laden und Auslesen der Eingangs- bzw. Ausgangsregister der Prozesszustandssteuerung (PZS) möglich ist als auch die Anwendungsprogramme auf die Zustandsinformationen der Prozesse zugreifen können. Innerhalb eines Verarbeitungsintervalls wird auf einen der beiden Blöcke nur lesend zugegriffen, während auf den anderen nur schreibend zugegriffen wird. Der Block, auf den lesend zugegriffen wird, stellt die Prozessparameter für das aktuelle Verarbeitungsintervall zur Verfügung. Während der SPA werden diesem Block sämtliche Parameter (d. h. Aktivierungsbedingungen, Ausführungseigenschaften und Zustandsinformationen) aller Prozesse entnommen und der PZS zugeführt. Zeitlich versetzt, aber innerhalb der SPA, stellt die PZS für jeden Prozessparameter den im nächsten Intervall gültigen Wert zur Verfügung. Diese Werte werden in dem Speicherblock abgelegt, auf den im aktuellen Intervall schreibend zugegriffen wird. Gegen Ende der SPA sind in diesem Block alle Prozessparameter gespeichert. Zu Beginn des nächsten Verarbeitungsintervalls wechseln sich die beiden Speicherblöcke in ihrer Funktion ab: auf den Block, auf den ursprünglich lesend zugegriffen wurde, wird im nächsten Intervall schreibend zugegriffen, und umgekehrt. Schaltungstechnisch wird der abwechselnde Zugriff auf die Speicherblöcke mit Hilfe eines alternierenden binären Signals und mehreren 2-auf-1-Multiplexern realisiert. Das alternierende Signal sAlt, dessen binärer Wert zu Beginn eines jeden Verarbeitungsintervalls wechselt, wird vom Steuerwerk der PVE generiert. Abbildung 4 veranschaulicht das in den nächsten beiden Absätzen beschriebene Schaltungskonzept. Eine Schnittstelle der Speicherblöcke ist jeweils wie folgt beschaltet. Das alternierende Binärsignal sAlt ist an den Auswahleingang für Schreiben oder Lesen der Speicherblöcke angeschlossen, und zwar einmal in unveränderter und einmal in negierter Form. Somit wird auf einen Block lesend, auf den anderen schreibend zugegriffen. Es werden zwei 2-auf-1-Muliplexer M1 und M2 verwendet, um die Zugriffsadressen an die Adresseingänge von SA und SB weiterzuleiten. Diese Muliplexer schalten komplementär, d. h. während ein Multiplexer die Adresse des lesenden Zugriffs weiterleitet, leitet der andere die Adresse des schreibenden Zugriffs weiter. An die Dateneingänge werden jeweils die Datenleitungen des schreibenden Zugriffs angeschlossen. Die Datenausgänge werden auf einen Multiplexer M3 geführt, der so durch das alternierende Binärsignal sAlt angesteuert wird, dass stets der Datenausgang des lesbaren Speicherblocks weitergeleitet wird. Da die zweite Schnittstelle der Speicherblöcke ausschließlich dem lesenden Zugriff dient, ist dessen Auswahleingang für Schreiben oder Lesen jeweils auf einen konstanten logischen Wert gelegt. An den Adresseingängen sind die Adressleitungen der PAE-Schnittstelle angeschlossen. Die Datenausgänge sind an die Signaleingänge eines 2-auf-1-Multiplexers (M4) angeschlossen, der vom alternierenden Binärsignal sAlt des Steuerwerks so angesteuert wird, dass der Datenausgang des im aktuellen Verarbeitungsintervall lesbaren Speicherblocks an die Datenleitungen der PAE-Schnittstelle übergeben wird.
- (II) Zur Lösung
von Problem (B) muss das unter Punkt (I) beschriebene Schaltungskonzept
lediglich geringfügig
erweitert werden. Da auf zwei Speicherblöcke komplementär zugegriffen
wird, sind die schreibenden und die lesenden Zugriffe voneinander
unabhängig.
Die Prozessparameterverwaltung (PPV) und die -zustandssteuerung
(PZS) werden über
zwei getrennte Datenbusse BA und BB miteinander verbunden. Über BA werden
die Prozessparameter der PZS zur Verfügung gestellt, über BB werden später die aktualisierten Parameter
ausgelesen.
Der Datentransfer wird vom Steuerwerk koordiniert.
Neben mehreren anderen Steuersignalen gibt das Steuerwerk hierzu
die beiden Adressen LadeAdresse und SpeicherAdresse aus. Bei LadeAdresse
handelt es sich um die Adresse des Datenwortes, das als nächstes von
einem der Speicherblöcke
der PPV gelesen und an ein Eingangsregister der PZS übergeben
werden soll. Die Adresse besteht aus zwei Teilen: dem ProzessIdentifikator
und dem ParameterIdentifikator. Der ProzessIdentifikator entspricht
der dual codierten Identifikationsnummer des jeweiligen Prozesses
und der ParameterIdentifikator kennzeichnet den Prozessparameter
(bzw. den Teil eines Prozessparameters), dem das unter der Adresse
LadeAdresse in SA bzw. SB gespeicherte
Datenwort zugeordnet ist. SpeicherAdresse kennzeichnet die Adresse,
unter der das vom Ausgangsregister der PZS ausgelesene Datenwort
im Speicherblock SA bzw. SB gespeichert
werden soll. Sie setzt sich ebenfalls aus den Bestandteilen ProzessIdentifikator
und ParameterIdentifikator zusammen.
5 veranschaulicht diesen Zusammenhang. Die PZS verfügt nicht nur über Eingangsregister für jedes Datenbit des Parametersatzes eines Prozesses, sondern auch über entsprechende Ausgangsregister. Die Ein- und die Ausgangsregister sind entsprechend den Prozessparametern organisiert. Ein Prozessparameter kann sowohl Teil eines in SA bzw. SB gespeicherten Datenwortes sein (z. B. ist der 2-Bit-Parameter 'Prozesszustand' Teil eines Datenwortes von SA bzw. SB), er kann sich allerdings auch aus mehreren gespeicherten Datenworten zusammensetzen (z. B. setzt sich ein 48-Bit-Zeitwert aus mehreren in SA bzw. SB gespeicherten Datenworten zusammen). Jeweils nSP Datenbits des Ein- bzw. des Ausgangsregisters ist ein gemeinsamer ParameterIdentifikator zugeordnet, wobei nSP der Wortbreite der Speicherblöcke SA bzw. SB entspricht. Dieser ParameterIdentifikator entspricht dem Adresswert, über den die zugehörigen Datenbits des Ein- bzw. Ausgangsregisters angesprochen werden. Die vom Steuerwerk ausgegebenen Adressen LadeAdresse und SpeicherAdresse kennzeichnen somit nicht nur eine Speicherzelle in SA bzw. SB eindeutig, sondern auch die diesem Datenwort zugehörigen Datenbits des Ein- bzw. Ausgangsregisters der PZS. Der Datenbus BA ermöglicht wortweises Beschreiben des Eingangs- und der Bus BB wortweises Lesen des Ausgangsregisters. Der ParameterIdentifikator von LadeAdresse bzw. SpeicherAdresse wird dabei direkt auf die Adressleitung des Datenbusses BA bzw. BB geschaltet.6 veranschaulicht dieses Schaltungskonzept. Die Steuereinheit koordiniert die SPA wie folgt. Zu Beginn lädt sie das Eingangsregister RER mit den Parametern des ersten Prozesses, indem sie entsprechende Werte für LadeAdresse generiert. Nachdem alle Eingangsregister über den Bus BA geladen sind, gibt das Steuerwerk einen mit Zwischenspeichern bezeichneten Signalimpuls aus. Dieser veranlasst das Ausgangsregister RAR der PZS und das unter Punkt (III) beschriebene Prozessadministrationshilfsschaltwerk (PAHSW) dazu, die Ergebnisse der Logikschaltung L, welche zentraler Bestandteil der PZS ist, zu überneh men. Anschließend generiert das Steuerwerk die Werte für SpeicherAdresse, die notwendig sind, um die Inhalte des Ausgangsregisters über BB zur PPV zu übertragen. Gleichzeitig sorgt das Steuerwerk mit Hilfe entsprechender Werte von LadeAdresse dafür, dass das Eingangsregister mit dem Parametersatz des nächsten Prozesses geladen wird. Anschließend gibt das Steuerwerk erneut einen Signalimpuls Zwischenspeichern aus. Dieses gleichzeitige Laden und Auslesen der Ein- und Ausgangsregister der PZS, d. h. die gleichzeitige Ausführung der ersten und dritten Phase des Drei-Phasen-Vorganges gefolgt von Impulsen zur Zwischenspeicherung, wird solange fortgeführt, bis der Parametersatz des letzten Prozesses in die PZS geladen wurde. Nachdem anschließend der aktualisierte Parametersatz des letzten Prozesses über BB in die PPV zurückgeschrieben wurde, ist die SPA abgeschlossen. - (III) Die im vorigen Abschnitt unter Punkt (C) angesprochene
Problematik wird durch das nachfolgend beschriebene und in
7 dargestellte Prozessadministrationshilfsschaltwerk (PAHSW) beseitigt. Das Schaltwerk umfasst • zwei Hilfsregister, RHRA und RHRB, zur Zwischenspeicherung von Informationen über die beiden Prozesse mit dem nächsten und dem übernächsten Fertigstellungstermin, • zwei Abschnittsidentifikatorregister (AID-Reg.), RAIDA und RAIDB, zur Zwischenspeicherung der von der PAE zurückgegebenen Abschnittsidentifikatoren, und • ein Schaltwerk zur Bestimmung und temporären Speicherung der Identifikatoren des auszuführenden Prozessabschnittes, nachfolgend mit BSIAP bezeichnet. Die Hilfsregister RHRA und RHRB unterstützen die Logikschaltung L bei der Bestimmung der beiden Prozesse mit den nächsten Fertigstellungsterminen. Jedes Register speichert einen Prozessidentifikator (P-ID), einen Abschnittsidentifikator (A-ID) und einen Fertigstellungstermin (FT). Die gespeicherten Werte gehören stets einem einzigen Prozess an. Dabei wird in das Register A-ID der Abschnittszeiger eines Prozesses abgelegt, welcher auf den nächsten auszuführenden Prozessabschnitt zeigt. Bezogen auf die bei der SPA des aktuellen Verarbeitungsintervalls bisher verwalteten Prozesse werden in RHRA stets die Daten des Prozesses mit dem nächsten Fertigstellungstermin abgelegt. Das Register RHRB speichert in gleicher Weise die Daten des Prozesses mit dem übernächsten Fertigstellungstermin. Die Inhalte beider Register werden zu Beginn eines Verarbeitungsintervalls zurückgesetzt. Dabei werden die gespeicherten FT auf den größten darstellbaren Zeitwert gesetzt. Den Registern P-ID wird ein Wert zugewiesen, der keinem gültigen Prozessidentifikator entspricht. Dieser ungültige Wert weist darauf hin, dass die gespeicherten Werte A-ID und FT keinem Prozess zugehören. Die von den beiden Hilfsregistern ausgegebenen Werte P-IDIII, A-IDIII und FTIII bzw. P-IDIV, A-IDIV und FTIVwerden der Logikschaltung L zugeführt (vgl.8 ), welche sie bei der SPA berücksichtigt. Während der SPA werden die Prozesse sequenziell abgearbeitet, wobei der Logikschaltung L nacheinander die Parameter der einzelnen Prozesse zugeführt werden. Die Logikschaltung vergleicht dabei stets die von den Hilfsregistern RHRA und RHRB bereitgestellten Werte FTIII und FTIV mit dem FT dem aktuell behandelten Prozess und bestimmt von diesen drei Terminen den nächsten und den übernächsten. Die Logikschaltung leitet nicht nur diese beiden Fertigstellungstermine (FTI und FTII ) selbst an die Hilfsregister RHRA und RHRB weiter, sondern auch die zugehörigen Prozessidentifikatoren (P-IDI und P-IDII) und Abschnittszeiger (A-IDI und A-IDII ). Nach Abschluss der zweiten Phase des Drei-Phasen-Vorganges, welcher während der SPA für jeden verwalteten Prozess durchgeführt wird, gibt das Steuerwerk jeweils einen mit Zwischenspeichern bezeichneten Signalimpuls aus. Dieser veranlasst RHRA und RHRB, die von der Logikschaltung L ausgegebenen neuen Werte P-IDI, A-IDI und FTI bzw. P-IDII, A-IDII und FTII zu übernehmen. Diese Arbeitsweise führt dazu, dass nach Abschluss der SPA in RHRA bzw. RHRB die Daten des Prozesses mit dem nächsten bzw. dem übernächsten Fertigstellungstermin abgelegt sind. Zum schreibenden Zugriff auf die beiden Abschnittsidentifikatorregister RAIDA und RAIDB dienen die Anschlüsse RegAktiv, Adresse und Dateneingang (DE). Nur wenn logisch '1' am Eingang RegAktiv anliegt, können Datenworte in ein Register geschrieben werden. Diese Eingänge der beiden Register werden komplementär angesteuert. Hierzu liegt jeweils das alternierende Binärsignal satt an, einmal in unveränderter und einmal in negierter Form. Somit wechselt mit jedem Verarbeitungsintervall das Register, auf das die PAE schreibend zugreifen kann. Beiden Registern ist die gleiche Adresse zugeordnet. Um nach Abschluss der Ausführung eines Prozessabschnittes den Identifikator des als nächsten auszuführenden Abschnittes der PVE zu übergeben, muss die PAE lediglich einen Schreibbefehl auf die Adresse von RAIDA bzw. RAIDB durchführen. Dabei wird der neue Abschnittsidentifikator über den Dateneingang zugeführt. Beide Abschnittsidentifikatorregister geben stets den gespeicherten Identifikator an ihrem Ausgang A-ID# aus. Mit Hilfe des 2-auf-1-Multiplexers M5, an dessen Steuereingang das alternierende Binärsignal satt anliegt, wird der Ausgabewert des Registers weitergeleitet, auf das die PAE im aktuellen Verarbeitungsintervall schreibend zugreifen kann. Der weitergeleitete Wert wird dem mit BSIAP bezeichneten Schaltwerk übergeben, auf dessen Funktion im nächsten Abschnitt eingegangen wird. Der 2-auf-1-Multiplexer M6 leitet den Ausgabewert des Registers, auf das die PAE aktuell nicht zugreifen kann, an den Ausgang A-ID** des PAHSW weiter. Somit handelt es sich bei A-ID**um den im vorigen Verarbeitungsintervall von der PAE übergegebenen Abschnittsidentifikator. Dieser Wert wird an die Logikschaltung L weitergeleitet, welche diesen bei der SPA berücksichtigt. Dies ist notwendig, da dieser Identifikator noch nicht in der Prozessliste abgelegt wurde. Anhand des Prozessidentifikators des zuletzt ausgeführten Prozesses (P-ID**), welcher vom nachfolgend beschriebenen BSIAP-Schaltwerk bereitgestellt wird, identifiziert die Logikschaltung L den Prozess, welchem der im letzten Verarbeitungsintervall zurückgegebene Abschnittsidentifikator zugewiesen werden muss. Über den von der Logikschaltung neu bestimmten Parametersatz, welcher mit Hilfe des Datenbusses BB von der PZS zur PPV übertragen wird, gelangt dieser Abschnittsidentifikator als neuer Abschnittszeiger schließlich in die Prozessliste. Das Schaltwerk zur Bestimmung und temporären Speicherung der Identifikatoren des auszuführenden Prozessabschnittes (BSIAP) gibt an seinem Ausgang P&A-ID* die Identifikatoren des im aktuellen Verarbeitungsintervall auszuführenden Prozessabschnittes aus. Der Ausgabewert wird nur zu Beginn eines Verarbeitungsintervalls geändert. Die PAE liest diesen Wert ein und führt den zugehörigen Prozessabschnitt aus. Daneben gibt das Schaltwerk BSIAP an seinem Ausgang P-ID** den Prozessidentifikator des Prozesses aus, der dem im letzten Verarbeitungsintervall ausgeführten Prozess angehört. Wie im vorigen Abschnitt beschrieben, wird dieser Wert von der Logikschaltung L verwendet, um im Zuge der SPA den von der PAE im letzten Verarbeitungsintervall zurückgegebenen Abschnittsidentifikator des zugehörigen Prozesses zuzuordnen und in der Prozessliste abzulegen. Das mit Intervallbeginn bezeichnete Impulssignal des Steuerwerks initiert die Bestimmung neuer Ausgabewerte P&A-ID* und P-ID**, welche über das gesamte folgende Verarbeitungsintervall hinweg in Registern innerhalb des BSIAP gespeichert werden. Die Werte werden schaltungstechnisch gemäß folgender Verarbeitungsvorschriften bestimmt (Bei den in der nachfolgenden Liste aufgeführten Betrachtungen wird davon ausgegangen, dass das Impulssignal 'Intervallbeginn' ein neues Verarbeitungsintervall beginnt; mit dem 'letzten Verarbeitungsintervall' ist demnach das zuvor beendete gemeint.): • Wenn der im letzten Verarbeitungsintervall ausgeführte Prozess nicht gleich dem ist, der im letzten Verarbeitungsintervall als der Prozess mit dem nächsten Fertigstellungstermin identifiziert wurde, dann werden P&A-ID* die in RHRA gespeicherten Identifikatoren des Prozesses mit dem nächsten Fertigstellungstermin zugewiesen (P-IDIII und A-IDIII). • Wenn der im letzten Verarbeitungsintervall ausgeführte Prozess gleich dem ist, der im letzten Verarbeitungsintervall als der Prozess mit dem nächsten Fertigstellungstermin identifiziert wurde, und der im letzten Verarbeitungsintervall zurückgegebene Abschnittsidentifikator, welcher dem BSIAP-Schaltwerk am Eingang A-ID zur Verfügung gestellt wird, nicht den Abschluss der Bearbeitung dieses Prozesses signalisiert, dann setzen sich die P&A-ID* zugewiesenen Identifikatoren aus dem in RHRA gespeicherten Prozessidentifikator (P-IDIII) und dem im aktuellen Verarbeitungsintervall von der PAE zurückgegebenen Abschnittsidentifikator A-ID#zusammen. • Wenn der im letzten Verarbeitungsintervall ausgeführte Prozess gleich dem ist, der im letzten Verarbeitungsintervall als der Prozess mit dem nächsten Fertigstellungstermin identifiziert wurde, und der im letzten Verarbeitungsintervall zurückgegebene Abschnittsidentifikator den Abschluss der Bearbeitung dieses Prozesses signalisiert, dann werden P&A-ID* die in RHRB gespeicherten Identifikatoren des Prozesses mit dem übernächsten Fertigstellungstermin zugewiesen (P-IDIV und A-IDIV). Diese Verfahrensvorschrift ist notwendig, da das Bearbeitungsende des im aktuellen Verarbeitungsintervall ausgeführten Prozesses bei der zeitgleich durchgeführten SPA noch nicht berücksichtigt wurde und daher das Bearbeitungsende noch nicht in den im aktuellen Intervall ausgelesenen Prozessparametern verzeichnet ist. • Dem Ausgang P-ID** wird bei Auftreten des Impulses Intervallbeginn in jedem Fall der Prozessidentifikator zugewiesen, der bis zu dem Zeitpunkt unter P&A-ID* ausgegeben wurde.8 veranschaulicht die Integration des PAHSW in die PZS. - (IV) Das Problem (D) wird durch ein spezielles, mit Konfigurierungsschaltwerk (KSW) bezeichnetes, Schaltwerk gelöst. Dieses besitzt zwei Registersätze RA und RB, auf die die PVE selbst und die PAE abwechselnd komplementär lesend und schreibend zugreifen. Während die PVE lesend auf den einen Registersatz zugreift, besitzt die PAE schreibenden Zugriff auf den anderen Registersatz. Dabei wechselt der Zugriff mit Beginn eines jeden Verarbeitungsintervalls.
- Die Registersätze
umfassen die Aktivierungsbedingungen und Ausführungseigenschaften eines Prozesses.
Sie sind in Datenworten organisiert, die denen zur Speicherung der
Prozessparameter in SA und SB entsprechen;
d. h., die Aufteilung der Prozessparameter in Datenworte ist identisch.
Jedem Datenwort (DW) ist ein Statusbit (SB) zugeordnet, dessen binärer Wert
kennzeichnet, ob es sich um ein vom Anwendungsprozessor neu übergebenen
Wert handelt, der im nächsten
Verarbeitungsintervall während
der SPA dem Registersatz eines Prozesses zugewiesen werden soll.
Zudem ist jedem Registersatz ein Register zur Speicherung eines
ProzessIdentifikators zugeordnet, der auf den Prozess hinweist,
dem die neuen Parameterwerte zugewiesen werden sollen.
Die
beiden Registersätze
sind so aufgebaut, dass jeweils eine Schnittstelle für lesenden
und eine für
schreibenden Zugriff zur Verfügung
steht. Zur Schnittstelle für
schreibenden Zugriff zählen
die Anschlüsse
RegAktiv, RücksetzenStatusbit,
RegAdr. und Dateneingang (DE). Für
den lesenden Zugriff besitzt jeder Registersatz die Anschlüsse Zugriffsadresse,
Datenausgang (DA) und Statusbit.
9 illustriert den Aufbau des KSW. Nur wenn eine logische '1' am Eingang RegAktiv anliegt, können Datenworte in den Registersatz geschrieben oder dessen Statusregister zurückgesetzt werden. Zur komplementären Ansteuerung von RA und RB liegt am Eingang RegAktiv jeweils das alternierende Binärsignal sAlt an, einmal in unveränderter und einmal in negierter Form. Rücksetzen der Statusbits wird durch eine positive Signalflanke am Eingang RücksetzenStatusbit veranlasst. Ein entsprechender Impuls wird vom Steuerwerk zu Beginn eines jeden Verarbeitungsintervalls generiert – kurz nach dem Zustandswechsel des alternierenden Binärsignals sAlt. Der Adresseingang RegAdr bzw. der Dateneingang DE der beiden Registersätze ist jeweils mit dem KSW-Eingang Registeradresse bzw. Dateneingang verbunden. Diese Schnittstelle ermöglicht der PAE schreibenden Zugriff auf den Registersatz des KSW, der im aktuellen Verarbeitungsintervall beschreibbar ist. Sowohl das Register zur Speicherung des ProzessIdentifikators als auch die Register zur Speicherung der einzelnen Datenworte besitzen hierzu jeweils eine eigene Adresse. Auf den lesbaren Registersatz greift die PVE mittels der LadeAdresse zu, die vom Steuerwerk generiert wird und bereits in der PPV zum Auslesen von SA bzw. SB dient. Diese spezifiziert sowohl den aktuell behandelten Prozess (ProzessIdentifikator) als auch das Datenwort (ParameterIdentifikator) (vgl.5 ). Stimmt der ProzessIdentifikator mit dem gespeicherten ProzessIdentifikator des Registersatzes überein, so gibt das KSW sowohl das gespeicherte Datenwort aus, auf das ParameterIdentifikator hinweist, als auch das zugehörige Statusbit. Es werden zwei 2-auf-1-Multiplexer (M7 und M8) verwendet, um die beiden Ausgänge DA und Statusbit der Registersätze an die entsprechenden Ausgänge des KSW weiterzuleiten. Diese werden durch das alternierende Binärsignal sAlt des Steuerwerks so angesteuert, dass stets die Ausgänge des Registersatzes weitergeleitet werden, auf das die PAE im aktuellen Verarbeitungsintervall nicht schreibend zugreifen kann. Zu Beginn eines Verarbeitungsintervalls werden die Statusregister des Registersatzes, auf den der Anwendungsprozessor schreibenden Zugriff erhält, zurückgesetzt. Dies wird durch ein mit Intervallbeginn bezeichnetes Impulssignal des Steuerwerks initiiert. Sollen die Aktivierungs- und/oder die Ausführungsbedingungen eines Prozesses neu konfiguriert werden, so muss dem KSW zunächst der Identifikator (die dual codierte Nummer) des Prozesses übergeben werden. Dazu dient ein entsprechender Schreibzugriff der PAE auf das KSW. Werden nun neue Datenworte in den Registersatz geschrieben, so wird das jeweilig zugeordnete Statusbit gesetzt. Im darauf folgenden Verarbeitungsintervall leiten die Multiplexer M7 und M8 die Ausgänge dieses Registersatzes weiter. Während die Datenworte des Parametersatzes des durch den gespeicherten ProzessIdentifikator spezifizierten Prozesses über BA in die Eingangsregister der PZS geladen werden, werden die gespeicherten Datenworte und Statusbits vom KSW ausgegeben. Mit dem Statusbit wird ein Multiplexer (M11) so angesteuert, dass die neu konfigurierten Datenworte – gekennzeichnet durch ein gesetztes Statusbis (logisch '1') – anstatt der in der Prozessliste gespeicherten dem Eingangsregister RER übergeben werden.12 veranschaulicht die Integration des KSW in die PVE. - (V) Das Problem (E) wird durch ein spezielles, mit Suspendierungsschaltwerk
(SSW) bezeichnetes, Schaltwerk gelöst. Zu dessen wesentlichen
Bestandteilen gehören
zwei Registersätze
RSA und RSB. Auf
diese wird abwechselnd komplementär zugegriffen, wobei der Zugriffswechsel
zu Beginn eines jeden Verarbeitungsintervalls stattfindet. Während die
PVE den einen Registersatz ausliest, um die darin gespeicherten
Befehle bei der SPA zu berücksichtigen,
kann die PAE neue Suspendierungs- und Fortführungsbefehle in den anderen
Registersatz schreiben.
Jeder Registersatz speichert zwei Datenbits
für jeden
der verwalteten Prozesse. Das Befehlsbit kennzeichnet die Befehlsart,
d. h. ob der zugehörige
Prozess suspendiert oder fortgeführt
werden soll. Die andere Bitinformation – das Ausführungsbit – kennzeichnet, ob von der
PAE (bzw. dem dort ausgeführten
Prozessabschnitt) ein entsprechender Suspendierungsbefehl im letzten
Verarbeitungsintervall übergeben
wurde. Zu Beginn eines Verarbeitungsintervalls werden bei dem Registersatz,
auf den nachfolgend schreibend zugegriffen wird, die Ausführungsbits
zurückgesetzt.
Dies wird durch das mit Intervallbeginn bezeichnete Impulssignal
des Steuerwerks initiiert.
Wie bei dem KSW sind die beiden
internen Registersätze
des SSW so aufgebaut, dass jeweils eine Schnittstelle für lesenden
und eine für
schreibenden Zugriff zur Verfügung
steht. Die Ansteuerung der Schnittstellen entspricht weitgehend
der des KSW. Die Schnittstelle für
schreibenden Zugriff umfasst die Eingänge RegAktiv, RücksetzenAusführungsbits,
RegAdr. und Dateneingang (DE). Die PAE kann nur über eine Adresse schreibend
auf das SSW zugreifen. Für
den lesenden Zugriff stehen die Anschlüsse ProzessIdentifikator und
Datenausgang (DA) zur Verfügung.
Während
der SPA wird an den Eingang ProzessIdentifikator stets der gleichnamige
Teil der LadeAdresse übergeben,
woraufhin der Registersatz die dem Prozess zugehörigen, gespeichertern Datenbits
ausgibt. Mit Hilfe des 2-auf-1-Multiplexers M9 werden
die Datenausgänge
des Registersatzes, in das die PAE im aktuellen Verarbeitungsintervall
keine neue Suspendierungsbefehle ablegen kann, an den Ausgang des
SSW weitergeleitet.
10 veranschaulicht den Aufbau des SSW. Um eine Suspendierung bzw. Fortführung eines Prozesses zu veranlassen, führt die PAE einen Schreibbefehl auf das SSW aus, wobei die geschriebenen Datenbits sowohl den Prozess als auch die Befehlsart (Suspendierung oder Fortführung) identifizieren. Daraufhin werden in dem aktuell beschreibbaren Registersatz das dem Prozess zugehörige Befehls- und Ausführungsbit entsprechend gesetzt. Erst im nächsten Verarbeitungsintervall wird dieses Register ausgelesen, d. h. übergebene Befehle werden erst im folgenden Verarbeitungsintervall bei der SPA berücksichtigt. Hierzu wird dem SSW während der SPA stets der Identifikator des aktuell behandelten Prozesses übergeben (d. h. der ProzessIdentifikator von Ladeadresse), woraufhin die beiden zugehörigen Datenbits (Befehls- und Ausführungsbit) des aktuell lesbaren Registersatzes ausgegeben werden. Die Logikschaltung L der PZS verwendet das Befehls- und das Ausführungsbit, um gegebenenfalls die Suspendierung oder Fortführung des Prozesses zu veranlassen. Die Integration des SSW in die PVE wird in12 veranschaulicht. - (VI) Das Problem (F) wird – ähnlich wie
die Probleme (D) und (E) – durch
ein spezielles, mit Ereignisschaltwerk (ESW) bezeichnetes, Schaltwerk
gelöst.
Zu dessen wesentlichen Bestandteilen gehören zwei Registersätze REA und REB. Jeder
Registersatz beinhaltet für
jeden der asynchronen Meldungseingänge einen Zeitpunktspeicher
(ZP). Während
eines Verarbeitungsintervalls werden in einem Registersatz die Zeitstempel
der auftretenden asynchronen Ereignisse (d. h. Signalflanken an
den Meldungseingängen)
abgelegt, die Inhalte des anderen Registersatzes bleiben unverändert und
werden während
der SPA ausgelesen. Zu Beginn eines jeden Intervalls wechseln sich
die beiden Register in ihrer Funktion ab.
Zu Beginn eines Verarbeitungsintervalls
werden alle Zeitpunktspeicher des Registersatzes, in dem nachfolgend
Zeitstempel abgelegt werden, auf den größten darstellbaren Wert gesetzt.
Dies wird durch ein mit Intervallbeginn bezeichnetes Impulssignal
des Steuerwerks initiiert. Der größte darstellbare Zeitwert signalisiert
der PZS, dass am zugehörigen
Meldungseingang kein Ereignis registriert wurde. Sobald an einem Meldungseingang
ein Ereignis detektiert wird, wird der aktuelle Zeitwert der UTC-synchronisierten
Uhr im zugehörigen
Zeitpunktregister abgelegt.
Das in der PZS umgesetzte Format
eines Aktivierungsplanes (vgl. Seite 5) ermöglicht die extern ereignisgesteuerte
Aktivierung eines Prozesses ausgehend lediglich von einem der Meldungseingänge, d.
h. es kann nur ein Meldungseingang ausgewählt werden, der zur Aktivierung
dient. Dementsprechend muss das ESW bei der SPA nur jeweils einen
gespeicherten Zeitwert an die PZS weiterleiten, und zwar den, der
zu dem Meldungseingang gehört,
mit dem der aktuell behandelte Prozess aktiviert werden kann. Diese
Technik schränkt
das Einsatzfeld der PVE nicht ein, reduziert jedoch dessen internen
Verdrahtungsaufwand signifikant.
11 veranschaulicht den Aufbau des ESW. Am Eingang RegAktiv der beiden Registersätze liegt jeweils das alternierende Binärsignal satt des Steuerwerks an, einmal in unveränderter und einmal in negierter Form. Nur der Registersatz, der durch ein entsprechendes Binärsignal (logisch '1') am Eingang RegAktiv aktiviert ist, speichert bei Auftreten von Ereignissen Zeitstempel ab und kann durch einen Impuls an RücksetzenZeitpunkte zurückgesetzt werden. Mit dem Eingang EreignisIdentifikator wird der Meldungseingang ausgewählt, dessen zugehöriger Zeitwert über den Zeitpunktausgang ausgegeben wird. Der EreignisIdentifikator entspricht einem der Prozessparameter und wird während der SPA vom Eingangsregister der PZS zur Verfügung gestellt. Mit Hilfe eines 2-auf-1-Multiplexers (M9) wird der ausgegebene Zeitwert des Registersatzes weitergeleitet, dessen Inhalt im aktuellen Verarbeitungsintervall nicht verändert werden kann (d. h., der im aktuellen Verarbeitungsintervall keine neuen Zeitwerte speichert).12 veranschaulicht die Integration des ESW in die PVE. Der Meldungseingang, der zur ereignisgesteuerten Aktivierung eines Prozesses ausgewählt ist, wird direkt durch einen der Prozessparameter identifiziert. Dementsprechend kann dieser Prozessparameter vom Eingangsregister der PZS direkt an den Eingang EreignisIdentifikator des ESW geleitet werden. - (VII) Das Problem (G) ergibt sich nur bei der Berechnung absoluter Zeitwerte; die Verarbeitung relativer Zeitwerte ist davon nicht betroffen, da relative Zeitwerte weder Schaltsekunden beinhalten, noch mit einer variierenden Anzahl an Monatstagen verarbeitet werden. Das Problem wird gelöst, indem zunächst mit einer festen Anzahl an Tagen pro Monat bzw. Sekunden pro Minute gerechnet wird und UTC-Zeitinformationen, welche z. B. weltweit via GPS verfügbar sind, zur Korrektur der Zeitwerte genutzt werden. Zur Umsetzung der in Abschnitt 1.3 beschriebenen Aktivierungspläne in die Logikschaltung L sind mehrere Additionschaltwerke zur Berechnung absoluter Zeitwerte notwendig. Diese addieren jeweils einen relativen zu einem absoluten Zeitwert und dienen unter anderem zur Berechnung der geforderten Fertigstellungstermine und des nächsten Aktivierungszeitpunktes. Die Übertragsberechnung dieser Addierwerke ist dabei so ausgelegt, als hätte jeder Monat 28 Tage und jede Minute 60 Sekunden. Dies führt zwar zu falschen absoluten Zeitwerten, die Größer-Kleiner-Relationen der Ergebnisse untereinander sind allerdings korrekt. Das bedeutet, die zeitliche Reihenfolge der fehlerbehafteten Ergebnisse (z. B. Fertigstellungstermine) entspricht der Reihenfolge, die sich bei korrekter Übertragsberechnung ergibt. Somit führt die vereinfachte Übertragsberechung zu keinem Fehler bei der Zuteilungsstrategie nach nächstem Fertigstellungstermin, bei der die beiden am dringendsten zu verarbeitenden Prozesse ermittelt werden müssen. Die durch die vereinfachte Übertragsberechung verursachten Fehler werden von der Logikschaltung L während der SPA korrigiert, indem jeder aus einer Addition mit vereinfachter Übertragsberechung hervorgegangene absolute Zeitwert im ersten Verarbeitungsintervall nach Auftreten eines Datumswechsels zum 29., 30. oder 31. Tag eines Monats bzw. nach dem Auftreten einer Schaltsekunde, d. h. einer 61. Sekunde, entsprechend dekrementiert wird (im erstgenannten Fall um einen Tag, im zweiten Fall um eine Sekunde). Dekrementiert wird dabei ebenfalls unter der Annahme, dass jeder Monat 28 Tage und jede Minute 60 Sekunden besitzt. Liegt das Ergebnis dieser Dekrementierung in der Zukunft, so kann es von der Logikschaltung direkt im Rahmen der SPA verwendet werden; liegt das Ergebnis der Dekrementierung jedoch in der Vergangenheit, so wird dessen Monatstag bzw. Sekundenwert auf den des aktuellen Zeitwertes gesetzt, bevor er zur Bestimmung der neuen Prozessparameter im Rahmen der SPA herangezogen wird. Beispielsweise wird beim Datumswechsel zum 29. April hin der absolute Zeitwert 1. Mai 01:00 Uhr zunächst auf den Wert 28. April 01:00 Uhr dekrementiert; da dieser Wert zum Zeitpunkt der Dekrementierung in der Vergangenheit liegt, wird der Monatstag durch den des aktuellen Zeitwertes ersetzt, was zu dem Ergebnis 29. April 01:00 Uhr führt. Die Integration der zur Durchführung dieser Korrektur notwendigen digitalen Schaltungskomponenten in die Logikschaltung L bereitet keine Schwierigkeiten und erhöht deren Schaltungsumfang nur geringfügig.
- (I) The problem (A) is solved by using two memory blocks S A and S B of the same size to store the process list, each having two independent access interfaces. An interface of the memory blocks is used exclusively for the internal processing of the PVE; The second interface enables the PAE to read access to the process parameters. It is assumed that memory blocks with separate data inputs and outputs; However, with little additional effort, the approach described here can also be implemented by memory blocks with combined data inputs and outputs. The latter, however, is disadvantageous in integrating the PVE in a single integrated circuit because it would require additional tristate outputs. With the help of multiplexers, the two memory blocks are controlled so that both the simultaneous loading and reading of the input and output registers of the process state control (PZS) is possible as well as the application programs can access the state information of the processes. Within a processing interval, only one of the two blocks is read-only, while the other is accessed only in writing. The read-only block provides the process parameters for the current processing interval. During the SPA, all parameters (ie activation conditions, execution properties and status information) of all processes are taken from this block and fed to the PZS. Staggered in time, but within the SPA, the PZS provides the value valid in the next interval for each process parameter. These values are stored in the memory block, which is accessed in writing in the current interval. At the end of the SPA, all process parameters are stored in this block. At the beginning of the next processing interval, the two memory blocks alternate in their function: the block which was originally read-accessed is write-accessed in the next interval, and vice versa. Circuitically, the alternate access to the memory blocks is realized by means of an alternating binary signal and a plurality of 2-to-1 multiplexers. The alternating signal s Alt , whose binary value changes at the beginning of each processing interval, is generated by the control unit of the PVE. Figure 4 illustrates the circuit concept described in the next two paragraphs. An interface of the memory blocks is connected as follows. The alternating binary signal s Alt is connected to the selection input for writing or reading the memory blocks, once in unchanged form and once in negated form. Thus, reading is done on one block and writing on the other. Two 2-to-1 multiplexers M 1 and M 2 are used to pass the access addresses to the address inputs of S A and S B. These multiplexers switch in a complementary manner, ie while one multiplexer forwards the address of the read access, the other forwards the address of the write access. The data lines of the write access are connected to the data inputs. The data outputs are routed to a multiplexer M 3 , which is so controlled by the alternating binary signal s Alt that always the data output of the readable memory block is forwarded. Since the second interface of the memory blocks is used exclusively for read access, its selection input for writing or reading is always set to a constant logical value. The address lines of the PAE interface are connected to the address inputs. The data outputs are connected to the signal inputs of a 2-to-1 multiplexer (M 4 ) which is controlled by the alternating binary signal s Alt of the control unit so that the data output of the memory block readable in the current processing interval is transferred to the data lines of the PAE interface ,
- (II) In order to solve problem (B), the circuit concept described in item (I) need only be slightly extended. Since two blocks of memory are complementarily accessed, the write and read accesses are independent. The process parameter management (PPV) and the state control (PZS) are connected to each other via two separate data buses B A and B B. About B A, the process parameters of the PZS made available through B & B the updated parameters are read later. The data transfer is coordinated by the control unit. In addition to several other control signals, the control unit outputs the two addresses load address and memory address. The load address is the address of the data word which is to be read next from one of the memory blocks of the PPV and transferred to an input register of the PZS. The address consists of two parts: the Process identifier and the parameter identifier. The process identifier corresponds to the dual-coded identification number of the respective process and the parameter identifier identifies the process parameter (or the part of a process parameter) to which the data word stored in the address load address in S A or S B is assigned. Memory address identifies the address under which the data word read out from the output register of the PZS is to be stored in the memory block S A or S B. It is also composed of the components process identifier and parameter identifier.
5 illustrates this relationship. The PZS not only has input registers for each data bit of the parameter set of a process, but also has corresponding output registers. The input and output registers are organized according to the process parameters. A process parameter can both be part of a data word stored in S A or S B (for example, the 2-bit parameter 'process state' is part of a data word of S A or S B ), but it can also consist of several compile stored data words (eg a 48-bit time value is composed of several data words stored in S A or S B ). In each case n SP data bits of the input or the output register, a common parameter identifier is assigned, where n SP corresponds to the word width of the memory blocks S A or S B. This parameter identifier corresponds to the address value via which the associated data bits of the input or output register are addressed. The addresses Load address and Memory address issued by the control unit thus uniquely identify not only a memory cell in S A or S B , but also the data bits of the input or output register of the PZS associated with this data word. The data bus B A allows word-by-word writing of the input and bus B B word by word reading of the output register. The parameter identifier of the load address or memory address is connected directly to the address line of the data bus B A or B B.6 illustrates this circuit concept. The control unit coordinates the SPA as follows. Initially, it loads the input register R ER with the parameters of the first process by generating corresponding values for load address. After all the input registers are loaded via the bus B A , the control unit outputs a signal pulse designated with buffering. This causes the output register R AR of the PZS and the process administration auxiliary (PAHSW) described under point (III) to take over the results of the logic circuit L, which is a central component of the PZS. The controller then generates the memory address values necessary to transfer the contents of the output register to the PPV via B B. At the same time, the control unit uses appropriate values of the load address to ensure that the input register is loaded with the parameter set of the next process. Subsequently, the control unit again outputs a signal pulse buffering. This simultaneous loading and reading of the input and output registers of the PZS, ie the simultaneous execution of the first and third phase of the three-phase process followed by pulses for buffering, is continued until the parameter set of the last process has been loaded into the PZS. After then the updated parameter set of the last process was written back to the PPV via B B , the SPA is completed. - (III) The problem raised in point (C) in the previous section is explained by the problem described below and in
7 The process administration helper (PAHSW) shown above is eliminated. The rear derailleur includes • two auxiliary registers, R HRA and R HRB , for caching information about the two processes with the next and the next but one completion date, • two section identifier registers (AID Reg.), R AIDA and R AIDB , for caching that of the PAE returned section identifiers, and • a derailleur for determining and temporarily storing the identifiers of the process section to be executed, hereinafter referred to as BSIAP. The auxiliary registers R HRA and R HRB support the logic circuit L in determining the two processes with the next completion dates. Each register stores a process identifier (P-ID), a section identifier (A-ID), and a completion date (FT). The stored values always belong to a single process. In this case, the section pointer of a process is stored in the register A-ID, which points to the next process section to be executed. With regard to the processes previously administered in the SPA of the current processing interval, the data of the process with the next completion date are always stored in R HRA . The register R HRB likewise stores the data of the process with the next but one completion date. The contents of both registers are reset at the beginning of a processing interval. The stored FT are set to the largest representable time value. The registers P-ID are assigned a value which does not correspond to a valid process identifier. This invalid value indicates that the stored A-ID and FT values are not owned by any process. The values given by the two auxiliary registers P-ID III , A-ID III and FT III or P-ID IV , A-ID IV and FT IV are supplied to the logic circuit L (see.8th ), which she considers at the SPA. During the SPA, the processes are processed sequentially, wherein the logic circuit L successively the parameters of the individual processes are supplied. The logic circuit always compares the values FT III and FT IV provided by the auxiliary registers R HRA and R HRB with the FT to the process currently being treated and determines the next and the next but one from these three dates. The logic circuit not only forwards these two completion dates (FT I and FT II ) to the auxiliary registers R HRA and R HRB , but also the associated process identifiers (P-ID I and P-ID II ) and section pointers (A-ID I and A-ID II ). Upon completion of the second phase of the three-phase process, which is performed during the SPA for each managed process, the controller will each issue a buffered signal pulse. This causes R HRA and R HRB to adopt the new values P-ID I , A-ID I and FT I or P-ID II , A-ID II and FT II issued by the logic circuit L. This procedure results in the data of the process being stored with the next or the next but one completion date after completion of the SPA in R HRA or R HRB . For write access to the two section identifier registers R AIDA and R AIDB , the connections RegActive, Address and Data input (DE) are used. Only if logical '1' is present at the input RegAktiv can data words be written to a register. These inputs of the two registers are controlled complementarily. For this purpose, the alternating binary signal is applied in full, once in unchanged form and once in negated form. Thus, with each processing interval, the register changes to which the PAE can write. Both registers are assigned the same address. In order to transfer the identifier of the next section of the PVE to be executed after completing the execution of a process section, the PAE merely has to execute a write command to the address of R AIDA or R AIDB . The new section identifier is supplied via the data input. Both section identifier registers always output the stored identifier at its output A-ID # . By means of the 2-to-1 multiplexer M 5 , to whose control input the alternating binary signal is fed, the output value of the register is forwarded to which the PAE can write access in the current processing interval. The passed-on value is passed to the switchboard marked BSIAP, whose function is discussed in the next section. The 2-to-1 multiplexer M 6 forwards the output value of the register, which the PAE can not currently access, to the output A-ID ** of the PAHSW. Thus, A-ID ** is the section identifier passed in the previous processing interval by the PAE. This value is forwarded to the logic circuit L, which takes this into account in the SPA. This is necessary because this identifier has not yet been stored in the process list. Based on the process identifier of the most recently executed process (P-ID **) provided by the BSIAP circuitry described below, the logic circuit L identifies the process to which the section identifier returned in the last processing interval must be assigned. Via the parameter set newly determined by the logic circuit, which is transmitted from the PZS to the PPV with the aid of the data bus B B , this section identifier finally arrives in the process list as a new section pointer. The switching mechanism for determining and temporarily storing the identifiers of the process section (BSIAP) to be executed outputs at its output P & A-ID * the identifiers of the process section to be executed in the current processing interval. The output value is changed only at the beginning of a processing interval. The PAE reads this value and executes the associated process section. In addition, the switchboard BSIAP outputs at its output P-ID ** the process identifier of the process that belongs to the process executed in the last processing interval. As described in the previous section, this value is used by the logic circuit L to associate with the SPA the section identifier of the associated process returned by the PAE in the last processing interval and store it in the process list. The controller start pulse signal, initiated at the beginning of the interval, initiates the determination of new output values P & A-ID * and P-ID **, which are stored in registers within the BSIAP throughout the following processing interval. The values are determined in terms of circuitry according to the following processing instructions (For the considerations given in the following list, it is assumed that the pulse signal 'Interval Start' starts a new processing interval, ie the 'last processing interval' is the one previously terminated): • If the Process executed in the last processing interval is not the one identified as the process with the next completion date in the last processing interval, then P & IDs * are assigned the identifiers of the next completion date process stored in R HRA (P-IDs III and A ID III ). • If the process performed in the last processing interval is the one identified as the process with the next completion date in the last processing interval, and the section identifier returned in the last processing interval, which is provided to the BSIAP rear derailleur at the A-ID input signals the completion of the processing of this process, then the identifiers assigned to P & A ID * are composed of the process identifier (P-ID III ) stored in R HRA and the section identifier A-ID # returned by the PAE in the current processing interval. • If the process executed in the last processing interval is the same as that identified in the last processing interval as the process with the next completion date, and the section identifier returned in the last processing interval signals the completion of processing this process, then P & A ID * becomes the one in R HRB stored identifiers of the process with the next but one completion date assigned (P-ID IV and A-ID IV ). This procedural regulation is necessary because the processing end of the process executed in the current processing interval has not yet been taken into account in the SPA performed at the same time and therefore the end of processing is not yet recorded in the process parameters read in the current interval. • At the beginning of the interval interval, the output P-ID ** is always assigned the process identifier that was output under P & A-ID * up to that point.8th illustrates the integration of the PAHSW into the PZS. - (IV) The problem (D) is solved by a special rear derailleur (KSW). This has two sets of registers R A and R B , to which the PVE itself and the PAE alternately read and write access complementary. While the PVE accesses one register set in read-only mode, the PAE has write access to the other register file. The access changes at the beginning of each processing interval.
- The register sets include the activation conditions and execution properties of a process. They are organized in data words that correspond to those for storing the process parameters in S A and S B ; ie, the distribution of the process parameters into data words is identical. Each data word (DW) is assigned a status bit (SB) whose binary value indicates whether it is a new value passed by the application processor to be assigned to the register set of a process during the next processing interval during the SPA. In addition, each register set is assigned a register for storing a process identifier, which indicates the process to which the new parameter values are to be assigned. The two register sets are structured in such a way that one interface is available for read access and one for write access. The interface for write access includes the connections RegAktiv, ResetStatusbit, RegAdr. and data input (DE). For read access, each register set has the access address, data output (DA), and status bit ports.
9 illustrates the structure of the KSW. Only if a logical '1' is present at the input RegAktiv can data words be written to the register file or its status registers reset. For the complementary control of R A and R B , the alternating binary signal s Alt is present at the input RegAktiv, once in unchanged form and once in negated form. Resetting the status bits is initiated by a positive signal edge at the ResetStatus bit input. A corresponding pulse is generated by the control unit at the beginning of each processing interval - shortly after the state change of the alternating binary signal s Alt . The address input RegAdr or the data input DE of the two register sets is in each case connected to the KSW input register address or data input. This interface allows the PAE write access to the register set of the KSW, which is writable in the current processing interval. Both the register for storing the process identifier and the registers for storing the individual data words each have their own address. The PVE accesses the readable register set by means of the load address, which is generated by the control unit and is already used in the PPV for reading S A or S B. This specifies both the currently processed process (process identifier) and the data word (parameter identifier) (cf.5 ). If the process identifier matches the stored process identifier of the register file, the KSW outputs both the stored data word pointed to by the parameter identifier and the associated status bit. Two 2-to-1 multiplexers (M 7 and M 8 ) are used to pass the two outputs DA and status bits of the register sets to the corresponding outputs of the KSW. These are controlled by the alternating binary signal s Alt of the control unit in such a way that the outputs of the register set are always forwarded to which the PAE can not write in the current processing interval. At the beginning of a processing interval, the status registers of the register set to which the application processor receives write access are reset. This is initiated by a pulse signal of the control unit designated at the beginning of the interval. If the activation and / or execution conditions of a process are to be reconfigured, the KSW must first pass the identifier (the dual-coded number) of the process. This is done by a corresponding write access of the PAE to the KSW. If new data words are now written to the register file, then the respective data is added ordered status bit set. In the subsequent processing interval, the multiplexers M 7 and M 8 forward the outputs of this register set. While the data words of the parameter set of the process specified by the stored process identifier are loaded via B A into the input registers of the PZS, the stored data words and status bits are output from the KSW. The status bit is used to control a multiplexer (M 11 ) in such a way that the newly configured data words - identified by a set status (logical '1') - are transferred instead to the input register R ER stored in the process list.12 illustrates the integration of the KSW into the PVE. - (V) Problem (E) is solved by a special rear derailleur (SSW) shift mechanism. Its essential components include two register sets R SA and R SB . These are alternately accessed complementarily, with the access change taking place at the beginning of each processing interval. While the PVE is reading one register set to account for the instructions stored therein at the SPA, the PAE may write new suspend and continue instructions in the other register set. Each register set stores two bits of data for each of the managed processes. The command bit identifies the command type, ie whether the associated process should be suspended or continued. The other bit information - the execution bit - indicates whether the PAE (or the process section executed there) has passed a corresponding suspension command in the last processing interval. At the beginning of a processing interval, the register bit which is subsequently accessed for writing resets the execution bits. This is initiated by the pulse signal of the control unit designated at the beginning of the interval. As with the KSW, the two internal register sets of the SSW are structured in such a way that one interface each is available for read access and one for write access. The control of the interfaces largely corresponds to that of the KSW. The interface for write access includes the inputs RegAktiv, reset execution bits, RegAdr. and data input (DE). The PAE can only write to the SSW via an address. For read access, the ports Process Identifier and Data Out (DA) are available. During the SPA, the identically named part of the load address is always passed to the process identifier input, whereupon the register file outputs the stored data bits associated with the process. With the aid of the 2-to-1 multiplexer M 9 , the data outputs of the register set into which the PAE can not store new suspension commands in the current processing interval are forwarded to the output of the SSW.
10 illustrates the structure of the SSW. To cause a process to suspend, the PAE issues a write command to the SSW, with the written data bits identifying both the process and the type of command (suspend or continue). Thereupon, the instruction and execution bits associated with the process are set accordingly in the currently writable register file. Only in the next processing interval will this register be read out, ie transferred commands will only be considered in the following processing interval at the SPA. For this purpose, the identifier of the currently handled process (ie the process identifier of load address) is always passed to the SSW during the SPA, whereupon the two associated data bits (command and execution bit) of the currently readable register set are output. The logic circuit L of the PZS uses the command and execution bits to eventually suspend or continue the process. The integration of the SSW into the PVE will be in12 illustrated. - (VI) Similar to problems (D) and (E), problem (F) is solved by a special rear derailleur (ESW) mechanism. Its essential components include two sets of registers R EA and R EB . Each register set includes a timing memory (ZP) for each of the asynchronous message inputs. During a processing interval, the timestamps of the occurring asynchronous events (ie signal edges at the message inputs) are stored in a register file, the contents of the other register file remain unchanged and are read out during the SPA. At the beginning of each interval, the two registers alternate in their function. At the beginning of a processing interval, all the time-point memories of the register set, in which time stamps are subsequently stored, are set to the largest representable value. This is initiated by a pulse signal of the control unit designated at the beginning of the interval. The largest time value that can be displayed signals to the PZS that no event has been registered at the associated message input. As soon as an event is detected at a message input, the current time value of the UTC-synchronized clock is stored in the associated time register. The format of an activation plan implemented in the PZS (see page 5) enables the externally event-triggered activation of a process starting from only one of the message inputs, ie only one message input can be selected for activation. Accordingly, at the SPA, the ESW only needs to forward a stored time value to the PZS, namely, the one associated with the message entry that can activate the currently handled process. This tech nik does not restrict the field of application of the PVE, but significantly reduces its internal wiring effort.
11 illustrates the structure of the ESW. At the input RegAktiv of the two register sets, the alternating binary signal fed to the control unit is applied, once in unchanged form and once in negated form. Only the register set, which is activated by a corresponding binary signal (logical '1') at the input RegAktiv, saves time stamps when events occur and can be reset by a pulse at reset times. With the event identifier input, the message input is selected whose associated time value is output via the time output. The event identifier corresponds to one of the process parameters and is provided by the input register of the PZS during the SPA. With the aid of a 2-to-1 multiplexer (M 9 ), the output time value of the register set is forwarded, the content of which can not be changed in the current processing interval (ie, which stores no new time values in the current processing interval).12 illustrates the integration of the ESW into the PVE. The message input selected for event-driven activation of a process is identified directly by one of the process parameters. Accordingly, this process parameter can be routed from the input register of the PZS directly to the event identifier input of the ESW. - (VII) The problem (G) arises only in the calculation of absolute time values; the processing of relative time values is not affected since relative time values do not include leap seconds, nor are they processed with a varying number of days of the month. The problem is solved by first with a fixed number of days per month or per second per minute is calculated and UTC time information, which z. As are available worldwide via GPS, are used to correct the time values. To implement the activation plans described in Section 1.3 into the logic circuit L, several addition switching devices are necessary for the calculation of absolute time values. These add a relative value to an absolute time value and are used, among other things, to calculate the required completion dates and the next activation date. The transfer calculation of these adders is designed as if every month had 28 days and every minute 60 seconds. Although this leads to wrong absolute time values, the larger-smaller relations of the results among each other are correct. This means that the chronological order of the error-prone results (eg completion dates) corresponds to the order that results when the carry-over calculation is correct. Thus, the simplified carry-over does not result in an error in the allocation strategy after the next completion date, at which the two most urgent processes to be processed must be determined. The errors caused by the simplified carry out computation are corrected by the logic circuit L during the SPA by giving each absolute time value resulting from a simplified carry computation in the first processing interval after a date change occurs on the 29th, 30th or 31st day of a month the occurrence of a leap second, ie a 61st second, is correspondingly decremented (in the former case by one day, in the second case by one second). It is also decremented on the assumption that each month has 28 days and every minute 60 seconds. If the result of this decrementation lies in the future, it can be used by the logic circuit directly within the framework of the SPA; however, if the result of decrementing is in the past, its day or second value is set to the current time value before being used to determine the new process parameters under the SPA. For example, when the date changes on April 29, the absolute time value 1 May 01:00 clock initially decremented to the value 28 April 01:00 clock; since this value is in the past at the time of decrement, the day of the month is replaced by the current time value, resulting in the result 29 April 01:00. The integration of the necessary for the implementation of this correction digital circuit components in the logic circuit L prepares no difficulties and increases their scope of circuit only slightly.
Erreichte VorteileAchieved benefits
Die im vorangegangenen Abschnitt geschilderten Problemlösungen ermöglichen eine besonders effiziente schaltungstechnische Realisierung des im Abschnitt "1 Stand der Technik" beschriebenen Verfahrens zur Rechenprozessausführung ohne asynchrone Unterbrechengen. Eine entsprechend aufgebaute PVE benötigt zur Durchführung der SPA eine extrem geringe Anzahl an Taktzyklen, so dass die Intervallzyklen sehr kurz gehalten werden können. Die Länge der Verarbeitungsintervalle hat wiederum direkten Einfluss auf die erreichbare Reaktionszeit – einem wesentlichen Leistungsmerkmal von Echtzeitsystemen mit harten Zeitbedingungen. Aus diesem Grund stellen die geschilderten schaltungstechnischen Problemlösungen einen für industrielle Belange besonders geeigneten Kompromiss zwischen geringem Geräteaufwand und kurzer Reaktionszeit dar. Dabei besitzt die Gerätestruktur der PVE eine sehr geringe Komplexität, insbesondere im Vergleich zu einer programmtechnischen Realisierung der PVE auf einem eigenen Prozessor. Hierdurch wird der Aufwand einer Sicherheitszertifizierung minimiert. Dieser Aspekt ist von besonderer Bedeutung, da das Verfahren zur Prozessausführung ohne asynchrone Unterbrechungen aufgrund seines inhärent einfachen Zeitverhaltens besonders für sicherheitsgerichtete Echtzeitsysteme geeignet ist.The problem solutions described in the preceding section enable a particularly efficient circuitry realization of the method for computing process execution described in the section "1 prior art" without asynchronous interruption. An appropriately constructed PVE requires an extremely small number of clock cycles to carry out the SPA, so that the interval cycles can be kept very short. The length of the processing intervals in turn has a direct influence on the achievable response time - a key performance feature of real-time systems with hard time conditions. For this reason, the described circuitry problem solutions represent a particularly suitable for industrial concerns compromise between low equipment costs and short reaction time. The device structure of the PVE has a very low complexity, especially in Ver equal to a programmatic realization of the PVE on its own processor. As a result, the cost of a security certification is minimized. This aspect is of particular importance since the method of process execution without asynchronous interrupts is particularly suitable for safety-related real-time systems because of its inherently simple time response.
Die Funktion und die Arbeitsweise der Komponenten Prozessparameterverwaltung (PPV), Konfigurierungsschaltwerk (KSW), Suspendierungsschaltwerk (SSW), Ereignisschaltwerk (ESW) und Prozessadministrationshilfsschaltwerk (PAHSW) sowie die der Eingangs- und Ausgangsregister (RER und RAR) der Prozesszustandssteuerung (PZS) wurden bereits Abschnitt "3 Lösung" eingehend beschrieben, weshalb hier auf deren Erklärung verzichtet wird.The function and operation of the process parameter management (PPV), configuration switcher (KSW), suspension switcher (SSW), event switcher (ESW), and process management auxiliary (PAHSW), as well as the input and output registers (R ER and R AR ) of process state control (PZS) have already been extensively described section "3 solution", which is why here their explanation is waived.
Das Steuerwerk: Ein Bestandteil von zentraler Bedeutung ist das Steuerwerk, welches die zugeführte UTC-Zeitinformation zur Synchronisation der Verarbeitungsintervalle mit dem weltweiten Zeitnormal UTC nutzt. Das Steuerwerk koordiniert die zyklisch synchrone Arbeitsweise von PVE und PAE. Hierzu generiert es zahlreiche Steuersignale, durch die das Zusammenspiel der einzelnen Schaltungskomponenten organisiert wird. Aus Gründen der Ubersichtlichkeit sind in der Abbildung jedoch nur die zum Verständnis notwendigen Steuersignale skizziert. Hierzu gehören die bereits in Abschnitt " 3 Lösung" beschriebenen Steuersignale AlternierendesBinärsignal (sAlt), LadeAdresse und SpeicherAdresse. Die Steuersignale, auf deren Darstellung verzichtet wurde, sind durch den Ausgang weitere Steuersignale angedeutet. Hierzu gehören unter anderem die Steuersignale zur zeitlichen Synchronisation der Lese- und Schreibvorgänge.The control unit: One component of central importance is the control unit, which uses the supplied UTC time information to synchronize the processing intervals with the global time standard UTC. The control unit coordinates the cyclic synchronous operation of PVE and PAE. For this purpose, it generates numerous control signals, through which the interaction of the individual circuit components is organized. For the sake of clarity, however, only the control signals necessary for understanding are outlined in the figure. These include the control signals Alternating Binary Signal (s Alt ), Load Address and Memory Address already described in Section "3 Solution". The control signals, whose representation has been omitted, are indicated by the output further control signals. These include, among other things, the control signals for the temporal synchronization of the read and write operations.
Zwei der nicht dargestellten Steuersignale sind die Impulssignale Intervallbeginn und Zwischenspeichern. Ersteres wird von zahlreichen Schaltungskomponenten verwendet und kennzeichnet den Beginn eines jeden Verarbeitungsintervalls durch einen Impuls. Das KSW und das SSW nutzen dieses Signal, um das Rücksetzen der Statusbits bzw. der Ausführungsbits zu veranlassen. Die PAE synchronisiert anhand dieses Impulses ihre Programmausführung. Durch einen Impuls auf seinem digitalen Ausgang Zwischenspeichern signalisiert das Steuerwerk das Ende der zweiten Phase des in Abschnitt 1.3 beschriebenen Drei-Phasen-Vorgangs der SPA und veranlasst so die PZS, die Ausgabewerte der Logikschaltung L in das Ausgangsregister RAR zu übernehmen. Daneben wird das Steuersignal auch zum Zwischenspeichern von Werten in den Hilfsregistern des PAHSW verwendet.Two of the control signals, not shown, are the pulse signals Interval Start and Latch. The former is used by numerous circuit components and marks the beginning of each processing interval by a pulse. The KSW and the SSW use this signal to cause the status bits or execution bits to be reset. The PAE synchronizes its program execution based on this impulse. By latching on its digital output latch, the controller signals the end of the second phase of the SPA's three-phase operation described in Section 1.3, thus causing the PZS to take the output values of the logic circuit L into the output register R AR . In addition, the control signal is also used for latching values in the auxiliary registers of the PAHSW.
Die PAE-Schnittstelle: Die PAE ist mit der PVE über die PAE-Schnittstelle verbunden. Alle schreibenden und lesenden Zugriffe der PAE auf Register bzw. Speicherblöcke der PVE führen über diese Schnittstelle. Gemäß den Ausführungen in Abschnitt "3 Lösung" sind lesende Zugriffe auf jeweils einen der beiden Speicherblöcke SA und SB möglich; schreibend kann auf das KSW und das SSW zugegriffen werden, sowie auf die beiden Abschnittsidentifikatorregister RAIDA und RAIDB des PAHSW. Der 2-auf-1-Multiplexer M12, dessen Schaltzustand von der Zugriffsadresse der PAE-Schnittstelle abhängt, ermöglicht zudem lesenden Zugriff auf den vom PAHSW ausgegebenen Identifikator des auszuführenden Prozessabschnitts.The PAE interface: The PAE is connected to the PVE via the PAE interface. All write and read accesses of the PAE to registers or memory blocks of the PVE are made via this interface. According to the statements in Section "3 Solution", reading accesses to one of the two memory blocks S A and S B are possible; in writing, the KSW and the SSW can be accessed as well as the two section identifier registers R AIDA and R AIDB of the PAHSW. The 2-to-1 multiplexer M 12 , whose switching state depends on the access address of the PAE interface, also allows read access to the issued by the PAHSW identifier of the process section to be executed.
Die
Prozesszustandssteuerung (PZS): Wie in
Der
Parametersatz eines Prozesses umfasst seine Aktivierungs- und Ausführungsbedingungen
sowie seine Zustandsinformationen. Die Aktivierungs- und Ausführungsbedingungen
eines Prozesses werden vom Anwender festgelegt, bzw. können über das
KSW vom Anwendungsprogramm konfiguriert werden. Zu ihnen gehören:
- APVorh
- Dieser binäre Parameter gibt an, ob ein Aktivierungsplan definiert ist. Besitzt dieser Parameter den Wert 'nicht vorhanden', so kann der zugehörige Prozess zu keinem Zeitpunkt aktiviert werden. (APVorh = {vorhanden|nicht vorhanden})
- APEntf
- Dieser binäre Parameter gibt an, ob ein Aktivierungsplan nach seiner Ausführung gelöscht werden soll. Ein Aktivierungsplan wird gelöscht, indem APVorh auf 'nicht vorhanden' gesetzt wird. Wird dieser Parameter auf 'entfernen' gesetzt, so wird ein Aktivierungsplan nach seiner Ausführung gelöscht. Dabei ist zu beachten, dass der Aktivierungsplan zum Zeitpunkt seiner letzten Prozessaktivierung gelöscht wird. Das bedeutet, nachdem der Parameter APVorh auf 'nicht vorhanden' gesetzt wurde, wird der Prozess ein letztes Mal ausgeführt. Soll ein Aktivierungsplan wiederholt durch ein externes Ereignis gestartet werden, so ist dieser Parameter auf 'nicht entfernen' zu setzen. (APEntf = {entfernen|nicht entfernen})
- APStZeit
- Hierbei handelt es sich um einen absoluten Zeitwert, der den Zeitpunkt des Starts eines Aktivierungsplanes festlegt. Erst wenn ein Aktivierungsplan gestartet ist, werden die zugehörigen Prozesseinplanungen vorgenommen. Soll ein Aktivierungsplan direkt bei Einschalten des Systems gestartet werden, so ist dieser Parameter auf den größten darstellbaren Zeitwert zu setzen.
- APStSig
- Hierbei handelt es sich um eine Dualzahl, welche die Nummer des zum Starten des Aktivierungsplans verwendeten asynchronen Meldungseingangs festlegt. Soll ein Aktivierungsplan nicht durch ein externes Ereignis sondern zeitgesteuert gestartet werden, so ist dieser Parameter auf den größten darstellbaren dualen Wert zu setzen; diesem Wert ist kein Meldungseingang zugeordnet.
- APVerzög
- Hierbei handelt es sich um einen relativen Zeitwert, der die Verzögerung zwischen dem Start eines Aktivierungsplans und der ersten Prozessaktivierung festlegt. Dieser Parameter ist unwirksam bei zeitgesteuert gestarteten Aktivierungsplänen, d. h. wenn APStSig = max. darst. Wert; bei solchen Aktivierungsplänen findet die erste Prozessaktivierung unverzögert statt.
- tAntZeit
- Hierbei handelt es sich um einen relativen Zeitwert, der die Zeitspanne festlegt, die zur Ausführung eines Prozesses zur Verfügung steht. Ist Takt der Zeitpunkt der Aktivierung eines Prozesses, so ist der zugehörige Fertigstellungstermin durch TFT = TAkt + tAntZeit gegeben.
- tUntZeit
- Dieser relative Zeitwert legt die Zeitspanne fest, innerhalb derer nach einer Prozessaktivierung keine erneute Aktivierung zulässig ist. Ein erneuter Start des Aktivierungsplans innerhalb dieser Zeitspanne wird unterdrückt. Es muss tUntZeit ≥ tAntZeit gelten.
- tAktDauer
- Dieser relative Zeitwert legt die Zeitspanne fest, innerhalb derer im Anschluss an die erste Prozessaktivierung eines Aktivierungsplans weitere Aktivierungen stattfinden. Soll der Prozess bis zum Abschalten des Systems in periodischen Abständen aktiviert werden, d. h. ist die Zeitspanne für weitere Aktivierungen unbegrenzt, so ist diesem Parameter der maximal darstellbare Wert zuzuweisen.
- tAktFreq
- Dieser relative Zeitwert definiert den zeitlichen Abstand, in dem die Prozessaktivierungen eines Aktivierungsplans stattfinden. Soll ein Prozess nach einem externen Ereignis dreimal im Abstand von 200ms aktiviert werden, so ist dieser Parameter auf 200ms zu setzen. Der Parameter tAktDauer muss einen Wert im Bereich 400ms ≤ tAktDauer < 600ms besitzen. Es muss tAktFreq ≥ tUntZeit gelten.
- AP prev
- This binary parameter indicates whether an activation plan is defined. If this parameter has the value 'not available', the associated process can not be activated at any time. (AP prev = {exist | not available})
- AP remove
- This binary parameter indicates whether an activation plan is to be deleted after its execution. An activation plan is cleared by setting AP to 'not present'. If this parameter is set to 'remove', an activation plan will be deleted after execution. It should be noted that the activation plan is deleted at the time of its last process activation. This means that once the parameter AP_vor has been set to 'not present', the process will be executed one last time. If an activation plan is to be started repeatedly by an external event, this parameter must be set to 'do not remove'. (AP Del = {remove | not remove})
- AP time
- This is an absolute time value that determines the time of the start of an activation plan. Only when an activation plan has been started are the associated process schedules made. If an activation plan is to be started directly when the system is switched on, this parameter must be set to the highest representable time value.
- AP StSig
- This is a binary number that specifies the number of the asynchronous message input used to start the activation plan. If an activation plan should not be started by an external event but time-controlled, this parameter should be set to the largest dual value that can be represented; no message input is assigned to this value.
- AP delay
- This is a relative time value that sets the delay between the start of an activation plan and the first process activation. This parameter is ineffective for timed activation plans , ie if AP StSig = max. darst. Value; In such activation plans, the first process activation takes place without delay.
- t Antzeit
- This is a relative time value that determines the amount of time that is available to complete a process. If the clock is the time of activating a process, the corresponding completion date is given by T FT = T Akt + t AntZeit .
- t untime
- This relative time value determines the length of time within which activation is not allowed after a process activation. A restart of the activation plan within this period is suppressed. It must be t Unt Time ≥ t AntZeit apply.
- t AktDauer
- This relative time value determines the length of time within which further activations occur after the first process activation of an activation plan. If the process is to be activated periodically until the system is switched off, ie if the time span for further activations is unlimited, this parameter must be assigned the maximum representable value.
- t AktFreq
- This relative time value defines the time interval in which the process activations of an activation plan take place. If a process is to be activated three times 200ms apart after an external event, this parameter should be set to 200ms. The parameter t AktDauer must have a value in the range 400ms ≤ t AktDauer <600ms. It must be t AktFreq ≥ t Untime .
Die Zustandsinformationen ergeben sich aus dem Prozessablauf. Auf diese Parameter hat das Anwendungsprogramm nur lesenden Zugriff. Zu ihnen gehören:
- APGest
- Dieser binäre Parameter gibt an, ob ein Aktivierungsplan bereits gestartet wurde. Der Start kann durch ein externes Ereignis (Signalflanke an asynchronem Meldungseingang) oder zeitgesteuert initiiert werden. Bei der letzten Prozessaktivierung eines Aktivierungsplans wird dieser Parameter zurück in den Zustand 'nicht gestartet' versetzt. (APGest = {gestartet|nicht gestartet}).
- ZZustand
- Dieser Parameter speichert den aktuellen Zustand eines Prozesses. Es sind die vier Zustände 'bekannt', 'bereit/laufend', 'suspendiert' und 'unterdrückt' möglich. (ZZustand = {bekannt|bereit/laufend|suspendiert|unterdrückt})
- TAktZeit
- Dieser Parameter speichert den absoluten Zeitwert der letzten Prozessaktivierung. Er dient unter anderem zur Berechnung des geforderten Fertigstellungstermins.
- ZNächstAbs
- Dieser Parameter wird durch eine Dualzahl repräsentiert. Er dient zur Speicherung des Identifikators des als nächster auszuführenden Prozessabschnitts. Sein Wert wird auf 0001|hex gesetzt, sobald ein Prozess aktiviert wird. Hierdurch wird gewährleistet, dass die Bearbeitung eines Prozesses stets mit dem durch 0001|hex identifizierten Prozessabschnitt beginnt.
- tRestZeit
- Mit diesem Parameter wird die zur periodischen Prozessaktivierung verbleibende Zeitspanne gespeichert. Beim Start eines Aktivierungsplans wird dem Parameter der Wert tAktDauer zugewiesen. Fortan wird mit jeder Prozessaktivierung der Wert tAktFreq abgezogen. Dabei kann ein Prozess nur aktiviert werden, solange tRestZeit > 0 gilt.
- TNächstAkt
- Dieser Parameter speichert den absoluten Zeitwert der nächsten Prozessaktivierung. Beim Start eines Aktivierungsplans wird diesem Parameter der Wert T + APVerzög zugewiesen, wobei T den Startzeitpunkt kennzeichnet. Fortan wird bei jeder Prozessaktivierung der Wert tAktFreq addiert, bis der Aktivierungsplan abgelaufen ist.
- AP Gest
- This binary parameter indicates whether an activation plan has already been started. The start can be initiated by an external event (signal edge at asynchronous message input) or time-controlled. At the last process activation of an activation plan, this parameter is put back into the 'not started' state. (AP gest = {started | not started}).
- Z state
- This parameter stores the current state of a process. The four states 'known', 'ready / running', 'suspended' and 'suppressed' are possible. (Z state = {known | ready / running | suspended | suppressed})
- T act time
- This parameter stores the absolute time value of the last process activation. Among other things, it is used to calculate the required completion date.
- Z NextAbs
- This parameter is represented by a binary number. It serves to store the identifier of the next process section to be executed. Its value is set to 0001 | hex is set as soon as a process is activated. This ensures that the processing of a process always with the 0001 | hex identified process section begins.
- t remaining time
- This parameter stores the time remaining for periodic process activation. When an activation plan is started, the parameter is assigned the value t AktDauer . From now on, the value t AktFreq is subtracted with each process activation . In this case, a process can only be activated as long as t residual time > 0.
- T Next Act
- This parameter stores the absolute time value of the next process activation. When an activation plan is started, this parameter is assigned the value T + AP Delay , where T indicates the start time. From now on , the value t AktFreq is added to each process activation until the activation plan has expired.
Die kombinatorische Logikschaltung (L): Wie in Abschnitt 1.3 beschrieben, wird im Rahmen der SPA ein Drei-Phasen-Vorgang für jeden Prozess durchgeführt. Dabei führt die Logikschaltung L innerhalb der zweiten Phase sämtliche, auf einen einzelnen Prozess bezogenen Prozessverwaltungsfunktionen aus. Neben dem Parametersatz eines Prozesses verwendet die Logikschaltung L hierbei den Identifikator des aktuell behandelten Prozesses P-IDaktuell, den aktuellen Zeitwert Taktuell, den vom ESW ausgegebenen Zeitwert ZW, die vom SSW ausgegebenen Suspendierungsinformationen SI, sowie die vom PAHSW bereitgestellten Identifikatoren bzw. Fertigstellungstermine P-IDIII, P-IDIV, A-IDIII, A-IDIV, FTIII und FTIV. Mit diesen Werten ermittelt die Logikschaltung einen aktualisierten Parametersatz, sowie die neuen Identifikatoren bzw. Fertigstellungstermine P-IDI, P-IDII, A-IDI, A-IDII, FTI und FTII. Die Logikschaltung L beinhaltet keine Speicherelemente; sie arbeitet rein kombinatorisch. Dabei ist zu beachten, dass der vom Steuerwerk bereitgestellte Zeitwert Taktuell innerhalb eines Verarbeitungsintervalls stets konstant ist. Sein Wert entspricht dem UTC-Zeitwert zu Beginn des jeweiligen Verarbeitungsintervalls.The combinatorial logic circuit (L): As described in section 1.3, the SPA will carry out a three-phase process for each process. In the second phase, the logic circuit L executes all process management functions related to a single process. In addition to the parameter set of a process, the logic circuit L hereby uses the identifier of the currently handled process P-ID aktuell , the current time value T actual , the time value ZW output by the ESW, the suspension information SI output by the SSW, and the identifiers or completion dates provided by the PAHSW P-ID III , P-ID IV , A-ID III , A- IV , FT III and FT IV . With these values, the logic circuit determines an updated parameter set, as well as the new identifiers or completion dates P-ID I , P-ID II , A-ID I , A-ID II , FT I and FT II . The logic circuit L does not include memory elements; she works purely combinatorial. It should be noted that the time value T currently provided by the control unit is always constant within a processing interval. Its value corresponds to the UTC time value at the beginning of the respective processing interval.
Nachfolgend wird die Schaltfunktion anhand von 17 Fällen beschrieben, die sich gegenseitig ausschließen und direkt in eine digitale Logikschaltung umgesetzt werden können. Bei den dabei aufgeführten Gleichungen ist zu beachten, dass Zeitwerte stets positiv sind; das Ergebnis einer Subtraktion von Zeitwerten kann also minimal Null sein – nicht negativ. Wird die Beziehung 'kleiner als' (<) in Verbindung mit absoluten Zeitwerten verwendet, so bedeutet A < B, dass der Zeitpunkt A vor dem Zeitpunkt B liegt (A < B). Darüber hinaus wird der Term 'Bereit zur Aktivierung' mehrfach zur formalen Beschreibung verwendet. Dieser Term repräsentiert die Bedingung In the following, the switching function will be described on the basis of 17 cases, which are mutually exclusive and can be converted directly into a digital logic circuit. It should be noted in the equations listed here that time values are always positive; the result of a subtraction of time values can therefore be minimal zero - not negative. When the relationship 'less than'(<) is used in conjunction with absolute time values, A <B means that time A is before time B (A <B). In addition, the term 'ready for activation' is used several times for the formal description. This term represents the condition
Die Bedingung 'Bereit zur Aktivierung' ist also erfüllt, wenn
- • sich der aktuell behandelte Prozess im Zustand 'bekannt' befindet,
- • die Ausführung des aktuell behandelten Prozesses im letzten Verarbeitungsintervall abgeschlossen wurde und die Zeitspanne tUntZeit,Ein (soeben) verstrichen ist, oder
- • sich der aktuell behandelte Prozess im Zustand 'unterdrückt' befindet und die Zeitspanne tUntZeit,Ein (soeben) verstrichen ist.
- • the currently handled process is in the 'known' state,
- • the execution of the currently handled process in the last processing interval has been completed and the time t Untime, On (just) has elapsed, or
- • the currently processed process is in the 'suppressed' state and the time t Untime, On (just) has elapsed.
Ist diese Bedingung erfüllt, so ist eine Aktivierung des Prozesses im aktuellen Intervall zulässig. Die Tabellen 1 bis 4 zeigen die Bedingungen und Wertzuweisungen der nachfolgend beschriebenen 17 Fälle auf, welche die Funktionen zur Bestimmung des aktualisierten Parametersatzes vollständig beschreiben. In der Spalte 'Wertzuweisungen' sind jeweils nur die entscheidenden Parameteränderungen aufgeführt, alle nicht explizit genannten Prozessparameter bleiben im jeweiligen Fall unverändert, d. h. APVorh,Aus := APVorh,Ein, APEntf,Aus := APEntf,Ein, etc.
- 1. Fall Die diesem Fall zugeordnete Bedingung beschreibt die folgende Situation: Ein Aktivierungsplan ist vorhanden; dieser Aktivierungsplan kann gestartet werden, da er sich noch nicht im Zustand 'gestartet,' befindet; der Prozess kann im aktuellen Intervall aktiviert werden; der Aktivierungsplan kann nur zeitgesteuert gestartet werden, da der Parameter APStSig,Ein den maximal darstellbaren Wert besitzt; im Rahmen des Aktivierungsplans wird der Prozess mehr als einmal aktiviert, da die Zeitspanne für Prozessaktivierungen tAktDauer,Ein mindestens die Dauer einer Aktivierungsperiode tAktFreq,Ein besitzt; der Aktivierungsplan soll nicht gleich beim Einschalten des Echtzeitsystems gestartet werden, sondern zu einem explizit festgelegten Zeitpunkt. Die diesem Fall zugeordneten Wertzuweisungen besitzen die folgende Bedeutung: Der Aktivierungsplan wird gestartet; der Prozess wird aktiviert, wobei gleichzeitig der Identifikator des als nächster auszuführenden Prozessabschnittes festgelegt wird; als Aktivierungszeitpunkt wird der Startzeitpunkt APStZeit,Ein des Aktivierungsplans gespeichert; die verbleibende Zeitspanne für weitere Prozessaktivierungen und der Zeitpunkt der nächsten Prozessaktivierung werden neu zugewiesen.
- 2. Fall Die diesem Fall zugeordnete Bedingung unterscheidet sich von der des 1. Falls lediglich dadurch, dass der Aktivierungsplan gleich beim Einschalten des Echtzeitsystems gestartet werden soll. Hierauf weist der Parameter APStZeit,Ein hin, wenn ihm der maximal darstellbare Wert zugeordnet ist. Im Unterschied zum 1. Fall wird in diesem Fall als Aktivierungszeitpunkt der aktuelle Zeitwert Taktuell verwendet. Tabelle 1: Fälle 1 bis 4
- 3. Fall Die diesem Fall zugeordnete Bedingung unterscheidet sich von der des 1. Falls lediglich dadurch, dass der Prozess im Rahmen des Aktivierungsplans nur einmal aktiviert wird, da die Zeitspanne für Prozessaktivierungen tAktDauer,Ein kleiner als die Aktivierungsperiode tAktFreq,Ein ist. Im Unterschied zum 1. Fall wird in diesem Fall der Aktivierungsplan in den Zustand 'nicht gestartet' überführt, da die aktuelle Prozessaktivierung zugleich die letzte Aktivierung des Aktivierungsplans ist. Darüber hinaus wird der Aktivierungsplan in jedem Fall, d. h. unabhängig vom Wert des Prozessparameters APEntf,Ein, gelöscht, da eine mehrfache Ausführung eines zeitgesteuert gestarteten Aktivierungsplans nicht sinnvoll ist. Hierzu wird dem Parameter APVorh,Aus der Wert 'nicht vorhanden' zugewiesen. Eine verbleibende Zeitspanne für weitere Prozessaktivierungen und der Zeitpunkt der nächsten Prozessaktivierung werden nicht neu zugewiesen, da der Aktivierungsplan nur Prozessaktivierung umfasst.
- 4. Fall Die diesem Fall zugeordnete Bedingung unterscheidet sich von der des 3. Falls lediglich dadurch, dass der Aktivierungsplan gleich beim Einschalten des Echtzeitsystems gestartet werden soll. Dementsprechend unterscheiden sich die Wertzuweisungen dieses Falls dadurch, dass in diesem Fall als Aktivierungszeitpunkt der aktuelle Zeitwert Taktuell verwendet wird.
- 5. Fall Die diesem Fall zugeordnete Bedingung beschreibt die folgende Situation: Ein Aktivierungsplan ist vorhanden; dieser Aktivierungsplan kann gestartet werden, da er sich noch nicht im Zustand 'gestartet' befindet; der Prozess kann im aktuellen Intervall aktiviert werden; der Ak- Tabelle 2: Fälle 5 bis 8 tivierungsplan kann nur durch ein Impulssignal am Meldungseingang APStSig,Ein gestartet werden; im letzten Verarbeitungsintervall trat ein Signalimpuls am Meldungseingang APStSig,Ein auf, worauf der vom ESW ausgegebene Zeitwert ZW hinweist; die erste Prozessaktivierung soll um APVerzög,Ein verzögert stattfinden. Die in diesem Fall durchgeführten Wertzuweisungen besitzen folgende Bedeutung: Der Aktivierungsplan wird gestartet; der Prozess wird noch nicht aktiviert; als verbleibende Zeitspanne für weitere Prozessaktivierungen wird tAktDauer,Ein zugewiesen; die erste Prozessaktivierung wird zum Zeitpunkt (ZW + APVerzög,Ein) eingeplant.
- 6. Fall Die diesem Fall zugeordnete Bedingung unterscheidet sich von der des 5. Falls dadurch, dass die erste Prozessaktivierung nicht verzögert werden soll. Zudem verlangt die Bedingung, dass der Prozess im Rahmen des Aktivierungsplans mehr als einmal aktiviert wird. Im Unterschied zum 5. Fall wird in diesem Fall der Prozess aktiviert und der Identifikator des als nächster auszuführenden Prozessabschnittes wird festgelegt. Zudem wird der Zeitpunkt ZW als Aktivierungszeitpunkt verwendet und die verbleibende Zeitspanne für weitere Prozessaktivierungen sowie der Zeitpunkt der nächsten Prozessaktivierung werden neu zugewiesen.
- 7. Fall Die diesem Fall zugeordnete Bedingung unterscheidet sich von der des 6. Falls lediglich da Tabelle 3: Fälle 9 bis 12 durch, dass der Prozess im Rahmen des Aktivierungsplans nur einmal aktiviert wird. Zudem besagt die Bedingung, dass der Aktivierungsplan nach seiner Ausführung nicht gelöscht werden soll. Im Unterschied zum 6. Fall wird in diesem Fall der Aktivierungsplan in den Zustand 'nicht gestartet' überführt, da es sich bei der aktuellen Prozessaktivierung zugleich um die letzte Aktivierung des Aktivierungsplans handelt. Eine verbleibende Zeitspanne für weitere Prozessaktivierungen und der Zeitpunkt der nächsten Prozessaktivierung werden nicht neu zugewiesen, da der Aktivierungsplan nur eine Prozessaktivierung umfasst.
- 8. Fall Die diesem Fall zugeordnete Bedingung unterscheidet sich von der des 7. Falls lediglich dadurch, dass der Aktivierungsplan nach seiner Ausführung gelöscht werden soll. Im Unterschied zum 6. Fall wird dem Parameter APVorh,Aus in diesem Fall daher der Wert 'nicht vorhanden' zugewiesen, womit der Aktivierungsplan gelöscht wird.
- 9. Fall Die diesem Fall zugeordnete Bedingung beschreibt die folgende Situation: Ein Aktivierungsplan ist bereits gestartet; der Prozess kann im aktuellen Intervall aktiviert werden, d. h. alle bisherigen Prozessaktivierungen des Aktivierungsplans wurden bereits vollständig bearbeitet; der Zeitpunkt der nächsten Prozessaktivierung des Aktivierungsplan ist bereits erreicht; der Aktivierungsplan ist von begrenzter Dauer, da der Parameter tAktDauer,Ein nicht den maximal darstellbaren Wert besitzt; innerhalb der verbleibenden Zeitspanne für Prozessaktivierungen wird der Prozess wenigstens noch zweimal aktiviert, da tRestZeit,Ein mindestens noch eine Aktivierungsperiode tAktFreq,Ein vollständig einschließt. Die diesem Fall zugeordneten Wertzuweisungen besitzen die folgende Bedeutung: Der Prozess wird aktiviert, wobei gleichzeitig der Identifikator des als nächster auszuführenden Prozessabschnittes festgelegt wird; als Aktivierungszeitpunkt wird TNächstAkt,Ein gespeichert; die verbleibende Zeitspanne für weitere Prozessaktivierungen und der Zeitpunkt der nächsten Prozessaktivierung werden neu zugewiesen.
- 10. Fall Die diesem Fall zugeordnete Bedingung unterscheidet sich von der des 9. Falls lediglich dadurch, dass der Prozess im weiteren Ablauf des Aktivierungsplans nur noch einmal aktiviert wird. Zudem besagt die Bedingung, dass der Aktivierungsplan nach seiner Ausführung nicht gelöscht werden soll. Im Unterschied zum 9. Fall wird in diesem Fall der Aktivierungsplan in den Zustand 'nicht gestartet' überführt, da es sich bei der aktuellen Prozessaktivierung zugleich um die letzte Aktivierung des Aktivierungsplans handelt. Darüber hinaus werden die verbleibende Zeitspanne für weitere Prozessaktivierungen tRestZeit,Ein und der Zeitpunkt der nächsten Prozessaktivierung TNächstAkt,Ein nicht neu zugewiesen, da der Aktivierungsplan keine weitere Prozessaktivierung umfasst.
- 11. Fall Die diesem Fall zugeordnete Bedingung unterscheidet sich von der des 10. Falls lediglich dadurch, dass der Aktivierungsplan nach seiner Ausführung gelöscht werden soll. Darauf wird entweder durch den Parameter APEntf,Ein direkt hingewiesen, oder durch Parameter APStSiy,Ein indirekt. Wenn APStSig,Ein den maximal darstellbaren Wert besitzt, handelt es sich um einen zeitgesteuert gestarteten Aktivierungsplan. Zeitgesteuert gestartete Aktivierungspläne müssen nach ihrer Ausführung gelöscht werden. Im Unterschied zum 10. Fall wird dem Parameter APVorh,Aus in diesem Fall daher der Wert nicht vorhandenzugewiesen, womit der Aktivierungsplan gelöscht wird.
- 12. Fall Die diesem Fall zugeordnete Bedingung unterscheidet sich von der des 9. Falls dadurch, dass die Zeitspanne für Prozessaktivierungen unbegrenzt ist, d. h. der Aktivierungsplan bleibt bis zum Ausschalten des Systems in Kraft. Im Unterschied zum 9. Fall braucht in diesem Fall die verbleibende Zeitspanne für weitere Prozessaktivierungen tRestZeit,Ein nicht neu bestimmt zu werden.
- 13. Fall Die diesem Fall zugeordnete Bedingung beschreibt die folgende Situation: Bei dem momentan verwalteten Prozess handelt es sich um den Prozess, der im letzten Verarbeitungsintervall ausgeführt wurde; die Bearbeitung des Prozesses wurde dabei allerdings nicht abgeschlossen; es trat kein Befehl zur Suspendierung des Prozesses auf. In diesem Fall wird dem Parameter ZNächstAbs,Aus, welcher auf den als nächster auszuführenden Prozessabschnitt zeigt, der im letzten Verarbeitungsintervall vom AP zurückgegebene Abschnittsidentifikator zugewiesen.
- 14. Fall Die diesem Fall zugeordnete Bedingung unterscheidet sich von der des 13. Falls dadurch, dass im letzten Verarbeitungsintervall ein Befehl zur Suspendierung des Prozesses auftrat. Daher wird in diesem Fall der Prozess in den Zustand 'suspendiert' überführt. Darüber hinaus wird – wie im 13. Fall – dem Parameter ZNächstAbs,Aus der im letzten Verarbeitungsintervall vom AP zurückgegebene Abschnittsidentifikator zugewiesen.
- 15. Fall Die diesem Fall zugeordnete Bedingung beschreibt die Situation, dass sich der momentan verwaltete Prozess im Zustand 'suspendiert' befindet und dass im letzten Verarbeitungsintervall Tabelle 4: Fälle 13 bis 17 ein Befehl zur Fortführung des Prozesses auftrat. In diesem Fall wird daher der Prozess in den Zustand 'bereit/laufend' überführt.
- 16. Fall Die diesem Fall zugeordnete Bedingung beschreibt die folgende Situation: Bei dem momentan verwalteten Prozess handelt es sich um den Prozess, der im letzten Verarbeitungsintervall ausgeführt wurde; die Bearbeitung des Prozesses wurde dabei abgeschlossen; allerdings ist die Zeitspanne tUntZeit,Ein, innerhalb derer nach einer Prozessaktivierung keine erneute Prozessaktivierung zulässig ist, noch nicht verstrichen. In diesem Fall wird der Prozess in den Zustand 'unterdrückt' überführt.
- 17. Fall Die diesem Fall zugeordnete Bedingung beschreibt die folgende Situation: Obwohl der Parameter den Wert 'nicht gestartet' besitzt, befindet sich der momentan verwaltete Prozess in einem der Zustände 'bereit/laufend', 'suspendiert' oder 'unterdrückt' (Diese Situation kann nur nach der letzten Prozessaktivierung eines Aktivierungsplans eintreten!); der momentan verwaltete Prozess befindet sich im Zustand 'unterdrückt' und die Zeitspanne tUntZeit,Ein ist (soeben) verstrichen, oder die Bearbeitung des momentan verwalteten Prozesses wurde im letzten Verarbeitungsintervall abgeschlossen und die Zeitspanne tUntZeit,Ein ist (soeben) verstrichen; die zum Start eines Aktivierungsplans durch ein Impulssignal notwendigen Bedingungen sind nicht erfüllt. In diesem Fall wird der Prozess in den Zustand 'bekannt' überführt.
- Case 1 The condition assigned to this case describes the following situation: An activation plan exists; this activation plan can be started because it is not yet in the 'started'state; the process can be activated in the current interval; the activation plan can only be started time-controlled, since the parameter AP StSig, On has the maximum value that can be represented; in the context of the activation plan, the process is activated more than once, since the time period for process activations t AktDauer, Ein has at least the duration of an activation period t AktFreq, Ein ; the activation plan should not be started immediately when the real-time system is switched on, but at an explicitly defined time. The value assignments assigned to this case have the following meaning: The activation plan is started; the process is activated, whereby at the same time the identifier of the next process section to be executed is determined; the activation time is the start time AP StZeit, Ein of the activation plan ; the time remaining for further process activations and the time of the next process activation are reassigned.
- Case 2 The condition assigned to this case differs from that of the first case only in that the activation plan should be started immediately when the real-time system is switched on. This is indicated by the parameter AP StZeit, Ein , if the maximum displayable value is assigned to it. In contrast to the first case, the current time value T actual is used as the activation time in this case. Table 1: Cases 1 to 4
- Case 3 The condition associated with this case differs from that of the first case only in that the process is activated only once within the activation plan, since the time period for the process Activations t AktDauer, A less than the activation period t AktFreq, is one. In contrast to the first case, in this case the activation plan is transferred to the status 'not started', as the current process activation is at the same time the last activation of the activation plan. In addition, the activation plan is deleted in any case, that is, regardless of the value of the process parameter AP Del, On , because multiple execution of a timed activation plan does not make sense. For this, the parameter AP Prev, Off is assigned the value 'not available'. A remaining time for further process activations and the time of the next process activation are not reassigned because the activation plan includes only process activation.
- Case 4 The condition assigned to this case differs from that of the third case only in that the activation plan is to be started immediately when the real-time system is switched on. Accordingly, the value assignments of this case differ in that, in this case, the current time value T actual is used as the activation time.
- 5. Case The condition associated with this case describes the following situation: An activation plan exists; this activation plan can be started because it is not yet in the 'started'state; the process can be activated in the current interval; the ac- Table 2: Cases 5 to 8 tivierungsplan can only be started by a pulse signal at the message input AP StSig, On ; in the last processing interval, a signal pulse occurred at the message input AP StSig, On, indicating the time value ZW output by the ESW; the first process activation should be delayed by AP delay, one . The value assignments carried out in this case have the following meaning: The activation plan is started; the process is not activated yet; the remaining period for further process activations is t AktDauer, Ein ; the first process activation is scheduled at time (ZW + AP delay, on ).
- Case 6 The condition assigned to this case differs from that of the 5th case in that the first process activation is not to be delayed. In addition, the condition requires that the process be activated more than once as part of the activation plan. In contrast to the 5th case, the process is activated in this case and the identifier of the next process section to be executed is determined. In addition, the time ZW is used as the activation time and the time remaining for further process activations and the time of the next process activation are reassigned.
- Case 7 The condition associated with this case differs from that of the 6th case only there Table 3: Cases 9 to 12 by activating the process only once within the Activation Plan. In addition, the condition states that the activation plan should not be deleted after its execution. In contrast to case 6, in this case the activation plan is changed to the status 'not started', since the current process activation is also the last activation of the activation plan. A remaining time for further process activations and the time of the next process activation are not reassigned because the activation plan includes only one process activation.
- 8. Case The condition associated with this case differs from that of the 7th case only in that the activation plan is to be deleted after its execution. In contrast to the 6th case, the parameter AP Prev, Off is assigned the value 'not available' in this case, whereby the activation plan is deleted.
- Case 9 The condition assigned to this case describes the following situation: An activation plan has already been started; the process can be activated in the current interval, ie all previous process activations of the activation plan have already been fully processed; the time of the next process activation of the activation plan has already been reached; the activation plan is of limited duration since the parameter t AktDauer, Ein does not have the maximum representable value; within the remaining time period for process activations, the process is activated at least twice, since t remaining time, A at least one activation period t AktFreq, includes one full. The value assignments assigned to this case have the following meaning: the process is activated, whereby at the same time the identifier of the next process section to be executed is determined; the activation time is T NextAct, On ; the remaining time for further process Activations and the time of the next process activation are reassigned.
- 10. Case The condition assigned to this case differs from that of the 9th case only in that the process is only activated once in the further course of the activation plan. In addition, the condition states that the activation plan should not be deleted after its execution. In contrast to the 9th case, the activation plan is transferred to the state 'not started' in this case, since the current process activation is also the last activation of the activation plan. In addition, the remaining time for further process activations t remaining time, on , and the time of next process activation T NextAct, On is not reassigned because the activation plan does not include any further process activation.
- 11. Case The condition associated with this case differs from that of the 10th case only in that the activation plan is to be deleted after its execution. This is indicated either by the parameter AP Del, On directly, or by parameter AP StSiy, Indirect. If AP StSig, On has the maximum representable value, it is a timed activation plan . Scheduled activation plans must be deleted after they have been executed. In contrast to the tenth case, the parameter AP Prev, Off in this case therefore does not have the value assigned, which deletes the activation plan .
- 12. Case The condition associated with this case is different from that of the 9th case in that the time period for process activations is unlimited, ie the activation schedule remains in effect until the system is turned off. In contrast to the ninth case, in this case, the remaining time span for further process activations does not need to be redetermined .
- 13. Case The condition associated with this case describes the following situation: The currently managed process is the process that was executed in the last processing interval; however, the process was not completed; there was no command to suspend the process. In this case, the parameter Z NextAbs, Off , which points to the next process part to be executed, is assigned the section identifier returned by the AP in the last processing interval .
- Case 14 The condition associated with this case is different from that of the 13th case, due to the fact that in the last processing interval a command to suspend the process occurred. Therefore, in this case, the process is transferred to the 'suspended' state. In addition, as in the 13th case, the parameter Z NextAbs, Out of the section identifier returned by the AP in the last processing interval, is assigned.
- Case 15 The condition associated with this case describes the situation that the currently managed process is in the suspended state and that in the last processing interval Table 4: Cases 13 to 17 a command to continue the process occurred. In this case, therefore, the process is transferred to the 'ready / running' state.
- Case 16 The condition associated with this case describes the following situation: The currently managed process is the process that was executed in the last processing interval; the processing of the process was completed; however, the time t t untime, on , within which no process activation is allowed after a process activation , has not yet elapsed. In this case the process is transferred to the state 'suppressed'.
- 17. Case The condition associated with this case describes the following situation: Although the parameter has the value 'not started', the currently managed process is in one of the states 'ready / running', 'suspended' or 'suppressed' (This situation can only occur after the last process activation of an activation plan!); the currently managed process is in the suppressed state and the time t Untime, On has just passed, or the processing of the currently managed process has been completed in the last processing interval and the time t Untime, On has just elapsed; the conditions necessary to start an activation plan by a pulse signal are not met. In this case the process is transferred to the state 'known'.
Die neu zugewiesenen Parameterwerte werden von der Logikschaltung L bereits zur Bestimmung der Identifikatoren bzw. Fertigstellungstermine P-IDI, P-IDII, A-IDI, A-IDII, FTI und FTII verwendet. Tabelle 5 zeigt die entsprechenden Wertzuweisungen. Dabei werden drei Fälle unterschieden: Im ersten Fall ist der momentan verwaltete Prozess im Zustand 'bereit/laufend' und sein geforderter Fertigstellungstermin ist früher als FTIII; im zweiten Fall ist der momentan verwaltete Prozess im Zustand 'bereit/laufend' und sein geforderter Fertigstellungstermin ist später als FTIII aber früher als FTIV; der dritte Fall tritt ein, wenn sich der Prozess nicht im Zustand 'bereit/laufend' befindet oder sein Fertigstellungstermin später als FTIV ist.The newly assigned parameter values are already used by the logic circuit L to determine the identifiers or completion dates P-ID I , P-ID II , A-ID I , A-ID II , FT I and FT II . Table 5 shows the corresponding value assignments. There are three different cases: In the first case, the currently managed process is in the 'ready / running' state and its required completion date is earlier than FT III ; in the second case, the currently managed process is in the ready / running state and its requested completion date is later than FT III but earlier than FT IV ; the third case occurs when the process is not in the ready / current state or its completion date is later than FT IV .
Tabelle 5: Bestimmung von P-IDI, P-IDII, A-IDI, A-IDII, FTI und FTII Table 5: Determination of P-ID I , P-ID II , A-ID I , A-ID II , FT I and FT II
Ein Impuls des vom Steuerwerk ausgegebenen Signals Zwischenspeichern veranlasst das Ausgangsregister der PZS dazu, den aktualisierten Parametersatz zu übernehmen. Gleichzeitig werden die neuen Werte von P-IDI, P-IDII, A-IDI, A-IDII, FTI und FTII in den Registern RHRA und RHRB des PAHSW abgelegt und stehen somit zur Durchführung des Drei-Phasen-Vorganges für den nächsten Prozess wieder zur Verfügung. Gegen Ende eines Verarbeitungsintervalls bestimmt das BSIAP-Schaltwerk des PAHSW den Identifikator des im nächsten Verarbeitungsintervall auszuführenden Prozessabschnittes. Sobald ein Intervallbeginnimpuls erscheint, wird dieser Identifikator in einem Register des BSIAP-Schaltwerks gespeichert und an dessen Ausgang P&A-ID*ausgegeben.A pulse of the buffer output signal from the controller causes the output register of the PZS to take over the updated parameter set. At the same time, the new values of P-ID I , P-ID II , A-ID I , A-ID II , FT I and FT II are stored in the registers R HRA and R HRB of the PAHSW and are therefore used to carry out the three Phase process for the next process available again. At the end of a processing interval, the PAHSW's BSIAP switchboard determines the identifier of the process section to be executed in the next processing interval. As soon as an interval start pulse appears, this identifier is stored in a register of the BSIAP rear derailleur and output at the output P & A-ID *.
Claims (5)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE200510039771 DE102005039771B3 (en) | 2005-08-23 | 2005-08-23 | Real time process managing unit for programmable electronic system, has memory blocks to store parameter sets of parameter processes, and data busses to access register sets to write and read contents of input and output sets, respectively |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE200510039771 DE102005039771B3 (en) | 2005-08-23 | 2005-08-23 | Real time process managing unit for programmable electronic system, has memory blocks to store parameter sets of parameter processes, and data busses to access register sets to write and read contents of input and output sets, respectively |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102005039771B3 true DE102005039771B3 (en) | 2006-12-28 |
Family
ID=37513805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE200510039771 Expired - Fee Related DE102005039771B3 (en) | 2005-08-23 | 2005-08-23 | Real time process managing unit for programmable electronic system, has memory blocks to store parameter sets of parameter processes, and data busses to access register sets to write and read contents of input and output sets, respectively |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102005039771B3 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2544389A1 (en) * | 2011-07-08 | 2013-01-09 | Siemens Aktiengesellschaft | Method for integrating systems with only one sync domain for time and cycle synchronisation into a global time synchronisation domain |
EP2544388A1 (en) * | 2011-07-08 | 2013-01-09 | Siemens Aktiengesellschaft | Method for cycle and time unit synchronisation in an automation network |
CN102866682B (en) * | 2011-07-08 | 2016-11-30 | 西门子公司 | With a synchronization field by the method in the system integration to clock face timing synchronization territory, the whole world |
-
2005
- 2005-08-23 DE DE200510039771 patent/DE102005039771B3/en not_active Expired - Fee Related
Non-Patent Citations (2)
Title |
---|
Skambraks,M. Concepts for Real-Time Execution in Safety-Critical Applications. In: Proceedings of the 16th IFAC World Congress, Prague, CZ, July 4- 8, 2005. <http://www.nt.ntnu.no/users/skoge/prost/ proceedings/ifac2005/Papers/Paper2962.html> |
Skambraks,M. Concepts for Real-Time Execution in Safety-Critical Applications. In: Proceedings of the 16th IFAC World Congress, Prague, CZ, July 4- 8, 2005. <http://www.nt.ntnu.no/users/skoge/prost/proceedings/ifac2005/Papers/Paper2962.html> * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2544389A1 (en) * | 2011-07-08 | 2013-01-09 | Siemens Aktiengesellschaft | Method for integrating systems with only one sync domain for time and cycle synchronisation into a global time synchronisation domain |
CN102866682A (en) * | 2011-07-08 | 2013-01-09 | 西门子公司 | Method for integrating systems with only one sync domain for time and cycle synchronisation into a global time synchronisation domain |
EP2544388A1 (en) * | 2011-07-08 | 2013-01-09 | Siemens Aktiengesellschaft | Method for cycle and time unit synchronisation in an automation network |
US8892934B2 (en) | 2011-07-08 | 2014-11-18 | Siemens Aktiengesellschaft | Method for integration of systems with only one sync domain for time of day and clock pulse synchronization into a global time of day synchronization domain |
US9081371B2 (en) | 2011-07-08 | 2015-07-14 | Siemens Aktiengesellschaft | Method for synchronizing an operating clock with a time clock of an automation network |
CN102866682B (en) * | 2011-07-08 | 2016-11-30 | 西门子公司 | With a synchronization field by the method in the system integration to clock face timing synchronization territory, the whole world |
EP2544388B1 (en) | 2011-07-08 | 2017-09-27 | Siemens Aktiengesellschaft | Method for cycle and time unit synchronisation in an automation network |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0762274B1 (en) | Apparatus and method for real time processing of multiple tasks | |
DE2354521C2 (en) | Method and device for simultaneous access to different memory modules | |
EP2067081B1 (en) | Method for synchronising two control devices and redundant structured automation apparatus | |
EP1146432A2 (en) | Reconfiguration method for programmable components during runtime | |
DE2251876A1 (en) | DATA PROCESSING SYSTEM | |
DE2303596A1 (en) | DATA PROCESSING ARRANGEMENT | |
EP3176696A1 (en) | Method of realizing and executing a complex real-time application | |
WO2011063869A1 (en) | Method for enabling sequential, non-blocking processing of statements in concurrent tasks in a control device | |
DE102005039771B3 (en) | Real time process managing unit for programmable electronic system, has memory blocks to store parameter sets of parameter processes, and data busses to access register sets to write and read contents of input and output sets, respectively | |
DE1953364A1 (en) | Choice execution circuit for program-controlled data processors | |
DE102010011652A1 (en) | Application platform and method for operating a data processing device with such | |
DE102009001898A1 (en) | Circuit arrangements and methods for controlling a data exchange in a circuit arrangement | |
DE2412634C3 (en) | Processor for a small computer system | |
DE2245284A1 (en) | DATA PROCESSING SYSTEM | |
DE102010028227A1 (en) | Coprocessor with process control | |
DE102017130552B3 (en) | Method of data processing and programmable logic controller | |
EP1548603B1 (en) | Method and apparatus for controlling memory access | |
DE102008019287B4 (en) | A method for automatically generating a time scheme for distributed applications or processes of a digital network communicating over a timed common data bus | |
AT501880B1 (en) | MEMORY PROGRAMMABLE CONTROL | |
DE3814622A1 (en) | OUTPUT PULSE GENERATION DEVICE | |
EP3872582A1 (en) | Redundantly designed automation system | |
EP2998805A1 (en) | Method and device for generation of a function block for the monitoring of an industrial automation assembly | |
DE102005054081B3 (en) | Data word set outputting unit for e.g. real time system, has address indicator, which is replaced in phase B, in such a manner that indicator is replaced for all age groups that are sequentially processed in phase A | |
DE2507405A1 (en) | PROCEDURE AND ARRANGEMENT FOR SYNCHRONIZING THE TASKS IN PERIPHERAL DEVICES IN A DATA PROCESSING SYSTEM | |
DE60015032T2 (en) | Distributed real-time operating system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8100 | Publication of the examined application without publication of unexamined application | ||
8320 | Willingness to grant licenses declared (paragraph 23) | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |