DE29620374U1 - Interrupt system for implementing a real-time capable control program in a non-real-time capable operating program - Google Patents
Interrupt system for implementing a real-time capable control program in a non-real-time capable operating programInfo
- Publication number
- DE29620374U1 DE29620374U1 DE29620374U DE29620374U DE29620374U1 DE 29620374 U1 DE29620374 U1 DE 29620374U1 DE 29620374 U DE29620374 U DE 29620374U DE 29620374 U DE29620374 U DE 29620374U DE 29620374 U1 DE29620374 U1 DE 29620374U1
- Authority
- DE
- Germany
- Prior art keywords
- real
- interrupt
- time capable
- time
- operating
- 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 - Lifetime
Links
- 230000008859 change Effects 0.000 claims description 11
- 244000309464 bull Species 0.000 claims description 3
- 230000006870 function Effects 0.000 description 5
- 238000000034 method Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000008672 reprogramming Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Debugging And Monitoring (AREA)
Description
Beckhoff Ind. Elektronik**-* 6fefe-35802*Beckhoff Ind. Electronics**-* 6fefe-35802*
&iacgr;·'&iacgr;·'
Die Erfindung betrifft ein Interruptsystem zum Implementieren eines echtzeitfähigen Steuerprogramms in einem nichtechtzeitfähigen Betriebsprogramm.The invention relates to an interrupt system for implementing a real-time capable control program in a non-real-time capable operating program.
Bei der Automatisierung von Maschinen und Produktionsanlagen werden zur Steuerung zunehmend Personalcomputer (PC) eingesetzt. Der wesentliche Vorteil von PC-gestützten Steuerungssystemen gegenüber herkömmlichen speicherprogrammierbaren Steuerungslösungen (SPS/CNC) besteht in der Möglichkeit allgemein gültige Rechnerstandards, die durch internationale Normen und durch vielfach erfolgreichen Einsatz am Markt vorgegeben werden, einsetzen zu können. Hierdurch wird einerseits eine kostengünstige Steuerungslösung erreicht und andererseits gleichzeitig der Einsatz modernster Technik durch die kurzen Innovationszyklen bei der PC-Entwicklung gewährleistet. Personal computers (PCs) are increasingly being used to control machines and production plants. The main advantage of PC-based control systems compared to conventional programmable logic control solutions (PLC/CNC) is the ability to use generally applicable computer standards that are specified by international standards and through widespread successful use on the market. This results in a cost-effective control solution on the one hand, and at the same time ensures the use of the latest technology thanks to the short innovation cycles in PC development.
Als ein erster Ansatz zur Verwendung von PCs in Automatisierungssystemen wurden spezielle PC-Baugruppen in bestehende SPS/CNC-Steuerungssysteme integriert. Der Einsatz zusätzlicher externer PCs, insbesondere zur Visualisierung und Protokollierung des SteuerungsVorgangs, macht solche Steuerungssysteme jedoch aufwendig und teuer.As a first approach to using PCs in automation systems, special PC modules were integrated into existing PLC/CNC control systems. However, the use of additional external PCs, especially for visualizing and logging the control process, makes such control systems complex and expensive.
Als wesentlich vielversprechenderer Lösungsansatz für die Verwendung von PCs zu Steuerungsaufgaben hat sich deshalb die Integration der SPS/CNC-Funktionen in den PCs selbst herauskristallisiert. Die extrem schnelle und kontinuierliche Leistungssteigerung der PC-Prozessoren in den letzten Jahren hat es nämlich möglich gemacht, gleichzeitig steuerungstechnische Aufgaben im Echtzeitbetrieb, d.h. die Verarbeitung von Informationen zum gleichen Zeitpunkt mit der gleichen Geschwindigkeit, mit der diese anfallen, und klassische PC-Funktionen mittels eines einzigen Prozessors zu bewältigen. Dieser Lösungsansatz hat nicht nur unter Kostengesichts-The integration of PLC/CNC functions into the PCs themselves has therefore emerged as a much more promising solution for using PCs for control tasks. The extremely rapid and continuous increase in the performance of PC processors in recent years has made it possible to simultaneously handle control tasks in real-time operation, i.e. processing information at the same time and at the same speed as it is generated, and classic PC functions using a single processor. This solution approach is not only cost-effective,
punkten Vorteile, sondern bietet auch eine höhere Flexibilität bei der Anpassung der Steuerung an gewünschte Applikationen. score advantages, but also offers greater flexibility in adapting the control to desired applications.
Um eine Echtzeit-Steuerung mittels eines PC auszuführen zu können, muß dieser allen auftretenden Aufgaben ausreichende Rechenleistung zur Verfügung stellen und damit eine stabile Prozeßkontrolle ermöglichen. Genauer muß der PC ein zyklisches Bearbeiten einer Steuerungsaufgabe ohne zeitliche Schwankungen, d.h. mit einem Jitter im Bereich von wenigen Microsekunden, mit einer vorhersehbaren Latenzzeit, d.h. Antwortzeit der Steuerung auf eine Regelungsanforderung, gewährleisten. In order to be able to carry out real-time control using a PC, it must provide sufficient computing power for all tasks that arise and thus enable stable process control. More precisely, the PC must ensure cyclic processing of a control task without temporal fluctuations, i.e. with a jitter in the range of a few microseconds, with a predictable latency time, i.e. the response time of the control to a control request.
Im Idealfall muß auf dem PC kein zusätzliches Betriebssystem für Echtzeitaufgaben implementiert werden, sondern das zur Ausübung der üblichen PC-Funktionen implementierte Betriebssystem leistet die Echtzeitsteuerung gleich mit. Jedoch genügen nahezu alle bisher bekannten Betriebssysteme nicht den obengenannten EchtZeitanforderungen. Dies gilt vor allem für die Standardbetriebssysteme für PCs der Firma Microsoft.Ideally, no additional operating system needs to be implemented on the PC for real-time tasks, but the operating system implemented to perform the usual PC functions also provides real-time control. However, almost all operating systems known to date do not meet the real-time requirements mentioned above. This applies in particular to the standard operating systems for PCs from Microsoft.
Insbesondere die Windows-Betriebssysteme eignen sich nur sehr unzureichend für zeitkritische Steueraufgaben, da unter diesen Betriebssystemen auftretende Unterbrechungsanforderungen, d.h. Interrupts, nicht direkt auf dem PC-Prozessor Zugriff haben. Wenn unter den Windows-Betriebssystemen eine Steuerungsaufgabe durch den PC-Prozessor ausgeführt werden soll, übernimmt ein virtueller Maschinenmanager nach dem Interrupt-Anruf die Zuordnung der Prozessor-Ressourcen. Diese zwischengeschaltete Virtualisierung erhöht jedoch die Latenzzeit wesentlich, insbesondere dann, wenn bei Eintreffen höher priorisierter Interrupts die Durchführung der früheren Interrupt-Aufforderung unterbrochen werden muß. Weiterhin ist unter den Windows-Betriebssystemen auch die Konstanz der Latenzzeit, die wesentlich für Steuerungsaufgaben ist, nicht gewährleistet, weil die Betriebssysteme je nach Art des Interrupt-Aufrufs unterschiedlich schnell reagieren. Da jedoch die Windows-Betriebssysteme diejenigen Plattformen für PCs mit demIn particular, Windows operating systems are only very inadequately suited to time-critical control tasks, since interrupt requests that occur under these operating systems do not have direct access to the PC processor. If a control task is to be carried out by the PC processor under Windows operating systems, a virtual machine manager takes over the allocation of processor resources after the interrupt call. However, this intermediate virtualization increases the latency significantly, especially if the execution of the earlier interrupt request has to be interrupted when higher priority interrupts arrive. Furthermore, the constancy of the latency, which is essential for control tasks, is not guaranteed under Windows operating systems, because the operating systems react at different speeds depending on the type of interrupt call. However, since Windows operating systems are the platforms for PCs with the
größten Application-Softwareangebot sind, wäre es insbesondere wünschenswert, Echtzeitaufgaben unter diesen Betriebssystemen durchführen zu können.largest application software offering, it would be particularly desirable to be able to perform real-time tasks under these operating systems.
Zur Lösung des Problems nicht-echtzeitfähiger Betriebssysteme wird in der DE 44 06 094 Al vorgeschlagen, die Echtzeitausführung eines Steuerprogramms dadurch zu gewährleisten, daß durch direkten Zugriff auf den nicht maskierbaren Interrupt (NMI) des Prozessors ein kompletter Umgebungswechsel vom nicht-echtzeitfähigen Betriebssystem auf das echtzeitfähige Steuerungsprogramm durchgeführt wird. Dieser Umgebungswechsel über den nicht-maskierbaren Interrupt macht jedoch eine Zusatz-Hardware für das PC-System erforderlich, mit der die Aufrufe des nicht-maskierten Interrupts erzeugt werden können. Weiterhin besitzt das in der DE 44 06 094 Al vorgeschlagene Verfahren beim Zugriff über das nicht-maskierbare Interrupt keine Kenntnis vom augenblicklichen Zustand des Betriebssystems, so daß dieses auch an kritischen Code-Abschnitten, die ohne Unterbrechung bearbeitet werden müssen, angehalten wird, was zu Instabilitäten im Betriebssystem führen kann. Dies gilt insbesondere bei Verwendung des Verfahrens gemäß DE 44 06 094 Al, bei dem für die Unterstützung komplexer Automatierungsaufgaben besonders geeigneten Betriebssystem Windows NT. Bei diesem Betriebssystem ist der nicht-maskierbare Interrupt für "fatale" Hardwarefehler des Prozessors vorgesehen. Bei Aufruf des nicht-maskierbaren Interrupts sorgt Windows NT deshalb für einen HALT-Zustand mit Systemmeldung. Da der Betriebssystemkern von Windows NT bei Aufrufen des nicht-maskierbaren Interrupts immer diesen HALT-Zustand erwartet, verbietet sich dessen Nutzung zur Ausführung von Umgebungswechseln zum Echtzeitbetrieb von Steuerungsaufgaben. Schließlich wird bei dem aus DE 44 06 094 Al bekannten Verfahren auch nur der Einsprung in das Betriebssystem mittels nicht-maskierbarem Interrupt festgelegt. Es ist jedoch kein definiertes Ende des in Echtzeit ausgeführten Steuerungsprogramms vorgesehen, so daß dem Betriebssystem bisTo solve the problem of non-real-time capable operating systems, DE 44 06 094 A1 proposes to ensure the real-time execution of a control program by carrying out a complete environment change from the non-real-time capable operating system to the real-time capable control program by directly accessing the non-maskable interrupt (NMI) of the processor. However, this environment change via the non-maskable interrupt requires additional hardware for the PC system with which the calls for the non-masked interrupt can be generated. Furthermore, the method proposed in DE 44 06 094 A1 has no knowledge of the current state of the operating system when accessing via the non-maskable interrupt, so that it is also stopped at critical code sections that must be processed without interruption, which can lead to instability in the operating system. This applies in particular when using the method according to DE 44 06 094 Al, with the Windows NT operating system, which is particularly suitable for supporting complex automation tasks. In this operating system, the non-maskable interrupt is intended for "fatal" hardware errors in the processor. When the non-maskable interrupt is called, Windows NT therefore ensures a HALT state with a system message. Since the operating system kernel of Windows NT always expects this HALT state when the non-maskable interrupt is called, its use for carrying out environment changes for real-time operation of control tasks is prohibited. Finally, in the method known from DE 44 06 094 Al, only the jump into the operating system is defined using a non-maskable interrupt. However, no defined end of the control program executed in real time is provided, so that the operating system is not allowed to
• ··
zum nächsten Aufruf des Steuerprogramms gegebenfalls keine Zeit zur Ausführung verbleibt.There may not be enough time to execute the control program the next time it is called.
Aufgabe der Erfindung ist es deshalb, ein Interruptsystem zum Implementieren eines echtzeitfähigen Steuerprogramms in einem nicht-echtzeitfähigen Betriebsprogramm zu schaffen, das Echtzeitanwendungen unter dem nicht-echtzeitfähigen Betriebsprogramm ermöglicht, ohne die Stabilität des Betriebsprogramms zu gefährden.The object of the invention is therefore to create an interrupt system for implementing a real-time capable control program in a non-real-time capable operating program, which enables real-time applications under the non-real-time capable operating program without endangering the stability of the operating program.
Diese Aufgabe wird durch ein System gemäß Anspruch 1 gelöst. Bevorzugte Ausführungsformen sind in den abhängigen Ansprüchen angegeben.This object is achieved by a system according to claim 1. Preferred embodiments are specified in the dependent claims.
Das erfindungsgemäße Interruptsystem basiert auf einer deterministischen Zeitverteilung zwischen dem echtzeitfähigen Steuerprogramm und dem nicht-echtzeitfähigen Betriebsprogramm, d.h. das echtzeitfähige Steuerprogramm führt seine Aufgaben auf dem Prozessor des PCs zu Zeitpunkten aus, die von dem nicht-echtzeitfähigen Betriebssystem akzeptiert werden. The interrupt system according to the invention is based on a deterministic time distribution between the real-time capable control program and the non-real-time capable operating program, i.e. the real-time capable control program carries out its tasks on the PC's processor at times that are accepted by the non-real-time capable operating system.
Um ein solches deterministisches Verhalten zu erreichen, werden gemäß der Erfindung pro Betriebszyklus des PC-Systems zwei Interrupts ausgelöst, wobei der eine Interrupt einen Umgebungswechsel von dem nicht-echtzeitfähigen Betriebssystem auf das echtzeitfähige Steuerprogramm und der andere Interrupt einen Umgebungswechsel von dem echtzeitfähigen Steuerprogramm auf das nicht-echtzeitfähige Betriebsprogramm ausführt, so daß in einem Betriebszyklus sowohl dem echtzeitfähigen Steuerprogramm als auch dem nicht-echtzeitfähigen Betriebsprogramm Laufzeiten zugeordnet sind. Die notwendigen Interrupt-Anforderungen zum Auslösen der Interruptroutinen werden dabei von einer internen oder externen Interrupt-Quelle des PC-Systems durchgeführt, wobei gemäß einer vorteilhaften Ausführungsform hierzu die Zeitgeber des PC-Systems, die die Systemtaktaufrufe bewirken, d.h. z.B. der Timer 0, herangezogen werden können.In order to achieve such deterministic behavior, according to the invention, two interrupts are triggered per operating cycle of the PC system, with one interrupt carrying out an environment change from the non-real-time capable operating system to the real-time capable control program and the other interrupt carrying out an environment change from the real-time capable control program to the non-real-time capable operating program, so that in one operating cycle, runtimes are assigned to both the real-time capable control program and the non-real-time capable operating program. The necessary interrupt requests for triggering the interrupt routines are carried out by an internal or external interrupt source of the PC system, whereby according to an advantageous embodiment, the timers of the PC system that cause the system clock calls, i.e., for example, timer 0, can be used for this purpose.
Weiterhin ist beim erfindungsgemäßen Interruptsystem der Betriebszyklus des PC-Systems durch Programmieren der Inter-Furthermore, in the interrupt system according to the invention, the operating cycle of the PC system is programmed by the interrupt
rupt-Folge der Interrupt-Quelle frei einstellbar, wobei vorzugsweise eine Zykluszeit von 0,1 msec bis 1 msec gewählt wird, um für einen stabilen Programmablauf des echtzeitfähigen Steuerprogramms und des nicht-echtzeitfähigen Betriebsprogramms zu sorgen.The interrupt sequence of the interrupt source can be freely set, whereby a cycle time of 0.1 msec to 1 msec is preferably selected in order to ensure stable program execution of the real-time capable control program and the non-real-time capable operating program.
Darüber hinaus kann beim erfindungsgemäßen Interruptsystem auch das Verhältnis zwischen der Laufzeit des echtzeitfähigen Steuerprogramms und der Laufzeit des nicht-echtzeitfähigen Betriebsprogramms verändert werden, wobei dem nichtechtzeitfähigen Betriebsprogramm eine Mindestlaufzeit zugeordnet werden kann. Hierdurch läßt sich eine optimale Verteilung der Rechenkapazitäten des PC-Prozessors sowohl auf die Steueraufgaben als auch auf die normalen PC-Funktionen erreichen, wobei durch Sicherung einer Mindestlaufzeit des nichtechtzeitfähigen Betriebssystems dessen Stabilität gewährleistet ist. Weiterhin kann auch während der Abarbeitung des echtzeitfähigen Steuerprogramms dieses Laufzeitverhältnis stufenlos modifiziert werden, um erforderliche Anpassungen des Echtzeitbetriebs, z.B. bei erhöhter "Echtzeit-Last", ausführen zu können.Furthermore, in the interrupt system according to the invention, the ratio between the runtime of the real-time control program and the runtime of the non-real-time operating program can also be changed, whereby a minimum runtime can be assigned to the non-real-time operating program. This makes it possible to achieve an optimal distribution of the computing capacity of the PC processor both to the control tasks and to the normal PC functions, whereby the stability of the non-real-time operating system is ensured by ensuring a minimum runtime. Furthermore, this runtime ratio can also be continuously modified during the processing of the real-time control program in order to be able to carry out necessary adjustments to the real-time operation, e.g. in the event of an increased "real-time load".
Der erfindungsgemäße Lösungsansatz ermöglicht eine stabile Implementierung eines echtzeitfähigen Steuerprogramms in einem nicht-echtzeitfähigen Betriebsprogramm auf einem Prozessor, wobei insbesondere gewährleistet wird, daß zeitkritisehe Betriebssystemaufgaben, wie z.B. Netzwerk-, Hard-Disk- oder COM-Port-Aufgaben, ohne Unterbrechung sicher abgearbeitet werden. Weiterhin ist keine umfangreiche Zusatz-Hardware für das PC-System zum Ausführen der Steuerungsaufgaben notwendig, da die vom nicht-echtzeitfähigen Betriebssystem verwalteten PC-Ressourcen gleichzeitig zum Echtzeitbetrieb des Steuerprogramms genutzt werden können.The solution approach according to the invention enables a stable implementation of a real-time capable control program in a non-real-time capable operating program on a processor, whereby it is particularly ensured that time-critical operating system tasks, such as network, hard disk or COM port tasks, are processed safely without interruption. Furthermore, no extensive additional hardware is required for the PC system to carry out the control tasks, since the PC resources managed by the non-real-time capable operating system can be used at the same time for the real-time operation of the control program.
Um einen sicheren Echtzeitbetrieb ausführen zu können, sind gemäß einer bevorzugten Ausführungsform Sicherungsmaßnahmen gegen ungewünschte Umprogrammierungen der Interrupt-Quelle vorgesehen. Nach Einrichten des Betriebszyklus auf dem PC-System wird hierdurch ein Verändern der zeitlichen Ab-In order to be able to carry out secure real-time operation, according to a preferred embodiment, security measures are provided against unwanted reprogramming of the interrupt source. After setting up the operating cycle on the PC system, this prevents the time interval from being changed.
••-&tgr;-••-&tgr;-
der Interrupt-Aufrufe der Interrupt-Quelle bis zum Durchlaufende des echtzeitfähigen Steuerprogramms oder dessen externer Unterbrechung wirksam verhindert.the interrupt calls of the interrupt source are effectively prevented until the real-time capable control program has been completed or its external interruption.
Unter dem Betriebssystem Windows NT tritt weiter das Problem auf, daß oft ein Neuanstoßen der Serviceroutine des Systemzeitgebers kurz nach deren regulären Anstoßen ausgelöst wird, um auftretende Systemlasten besser verteilen zu können. Gemäß der Erfindung wird ein solcher Neuanstoß identifiziert und ein unerwünschter, vom Neuanstoß ausgelöster Aufruf des Echtzeitsteuerprogramms verhindert.Under the Windows NT operating system, there is also the problem that the system timer service routine is often restarted shortly after it is regularly restarted in order to better distribute the system loads that occur. According to the invention, such a restart is identified and an undesirable call to the real-time control program triggered by the restart is prevented.
Die Erfindung ermöglicht nicht-echtzeitfähige Betriebssysteme auf offene und kompatible Weise mit Echtzeit-Eigenschaften
auszustatten und somit einem PC verfügbar zu machen, der für alle Bereiche der Automatisierung ohne ein aufwendiges
und zusätzliches Betriebssystem und Coprozessor-Karten die "harte Echtzeit" in leistungfähiger Weise beherrscht.
Dies gilt insbesondere auch für die Standardbetriebssystem der Firma Microsoft und hier vor allem für das Betriebssystem
Windows NT, das als Ausführungsbeispiel anhand der beigefügten Zeichnungen im folgenden näher erläutert wird.
In den Zeichnungen zeigenThe invention enables non-real-time capable operating systems to be equipped with real-time properties in an open and compatible manner and thus to make them available to a PC that can efficiently handle "hard real-time" for all areas of automation without a complex and additional operating system and coprocessor cards. This applies in particular to the standard operating systems from Microsoft and in particular to the Windows NT operating system, which is explained in more detail below as an example using the attached drawings.
In the drawings show
Figur 1 einen Teil eines erfindungsgemäßen Interruptsystems mit einem Zeitgebersystem und einem Interruptcontrollersystem in Blockschaltbild-Darstellung; undFigure 1 shows part of an interrupt system according to the invention with a timer system and an interrupt controller system in a block diagram; and
Figur 2 einen weiteren Teil des erfindungsgemäßen Interruptsystems. Figure 2 shows another part of the interrupt system according to the invention.
Wie in Figur 1 dargestellt, enthält das Interruptsystem ein Zeitgebersystem 1 mit einem Timer 0 (OUTO) , der in der vorliegenden Ausführungsform zugleich als Systemzeitgeber dient. Die von diesem Timer 0 über eine Interruptleitung IRQO abgegebenen Interrupt-Aufrufe werden einem üblicherweise aus zwei Interruptcontrollern bestehenden Interruptcontrollersystem (2, 3) zugeführt, das über eine Prozessorleitung INTR einen Interrupt im Prozessor des PC-Systems auslöst.As shown in Figure 1, the interrupt system contains a timer system 1 with a timer 0 (OUTO), which in the present embodiment also serves as a system timer. The interrupt calls issued by this timer 0 via an interrupt line IRQO are fed to an interrupt controller system (2, 3) that usually consists of two interrupt controllers and that triggers an interrupt in the processor of the PC system via a processor line INTR.
Das Interruptsystem zieht, wie in Figur 2 gezeigt ist, die im Interruptsignal enthaltene Interrupt-Nummer als IndexAs shown in Figure 2, the interrupt system uses the interrupt number contained in the interrupt signal as an index
in einer Interruptvektortabelle 4 heran und liest den entsprechenden Beschreiber, der einen Selektor und einen Offset enthält. Der Selektor dient als Zugriffsschlüssel auf einen Codesegment-Beschreiber in einer globalen oder lokalen Beschreibertabelle 5. Dadurch bringt der Prozessor das Codesegment in einem Speicher 6 in Erfahrung, das die Interruptroutine für das ausgelöste Interrupt enthält. Der Offset dient als Einsprungspunkt in dieses Codesegment und stellt die Startadresse der Interruptroutine dar. Bei einem Interrupt-Aufruf durch den Timer 0 wird unter dem Windows NT-Betriebssystem üblicherweise die Systemtaktroutine ausgelöst.in an interrupt vector table 4 and reads the corresponding descriptor, which contains a selector and an offset. The selector serves as an access key to a code segment descriptor in a global or local descriptor table 5. This enables the processor to find out the code segment in a memory 6 that contains the interrupt routine for the triggered interrupt. The offset serves as an entry point into this code segment and represents the start address of the interrupt routine. When an interrupt is called by timer 0, the system clock routine is usually triggered under the Windows NT operating system.
Gemäß der Erfindung wird nun in einem ersten Schritt der Timer 0 auf den gewünschten Betriebszyklus vorzugsweise im Bereich von 0,1 msec bis 1 msec über die Multimedia-Timer-.According to the invention, in a first step the timer 0 is set to the desired operating cycle, preferably in the range of 0.1 msec to 1 msec via the multimedia timer.
Auflösung mit gleichen Aufrufen für Windows NT-Funktionen eingestellt. Der Timer 0 erzeugt vorhersehbare Interrupt-Aufrufe, die unter dem Interruptvektor INT30H in der Interruptvektortabelle 4 gespeichert sind. Dieser Interruptvektor wird gemäß der Erfindung überschrieben, so daß er die Adresse der in dem Speicher 6 eingeschriebenen Implementierungsroutine anzeigt. Weiterhin werden bis zum Durchlauf oder der Unterbrechung des echtzeitfähigen Steuerprogramms Aufrufe des Windows NT-Betriebssystems zur Neuprogrammierung des Timers 0 unterdrückt.Resolution with the same calls for Windows NT functions. Timer 0 generates predictable interrupt calls, which are stored under the interrupt vector INT30H in the interrupt vector table 4. This interrupt vector is overwritten according to the invention so that it indicates the address of the implementation routine written in the memory 6. Furthermore, calls from the Windows NT operating system to reprogram timer 0 are suppressed until the real-time capable control program is run through or interrupted.
Der den Betriebszyklus des PC-Systems festlegende Timer 0 gibt nach einer Umprogrammierung jeweils zwei Interrupt-Aufrufe pro Betriebszyklus ab. Die Zeitintervalle zwischen diesen beiden Interrupt-Aufrufen sind dabei frei einstellbar, so daß ein beliebiges Zeitverhältnis zwischen der Abfolge der Interrupt-Aufrufe in einem Betriebszyklus eingestellt werden kann. Die Implementierungsroutine löst beim ersten Interrupt-Aufruf immer einen Umgebungswechsel von dem Windows NT-Betriebssystem auf das echtzeitfähige Steuerprogramm und beim zweiten Interrupt-Aufruf einen Umgebungswechsel von dem echtzeitfähigen Steuerprogramm auf das Windows NT-Betriebsprogramia aus. Für den Umgebungswechsel von demAfter reprogramming, timer 0, which determines the operating cycle of the PC system, issues two interrupt calls per operating cycle. The time intervals between these two interrupt calls can be freely set, so that any time ratio between the sequence of interrupt calls in an operating cycle can be set. The implementation routine always triggers an environment change from the Windows NT operating system to the real-time control program at the first interrupt call and an environment change from the real-time control program to the Windows NT operating program at the second interrupt call. For the environment change from the
Steuerprogramm in das Windows NT-Betriebsprogramm wird dabei die Systemtaktroutine eingesetzt. Während der Abarbeitung des Steuerprogramms kann weiterhin das Zeitverhältnis zwischen den beiden Interrupt-Aufrufen des Timers 0 stufenlos verändert werden, wobei jedoch eine Mindestlaufzeit für das Windows NT-Betriebssystem abgesichert ist, um dessen Stabilität bei zeitkritischen Funktionen nicht zu gefährden.The system clock routine is used to integrate the control program into the Windows NT operating program. During the execution of the control program, the time ratio between the two interrupt calls of timer 0 can be continuously changed, although a minimum runtime is guaranteed for the Windows NT operating system in order not to endanger its stability during time-critical functions.
Beim Windows NT-Betriebssystem besteht weiterhin im Zusammenhang mit dem Echtzeitbetrieb das Problem, daß das Betriebssystem nach einem regulären Aufruf der Serviceroutine des Timers 0 diese oft kurze Zeit später nochmals aufruft, um eine bessere Systemlastverteilung erzielen zu können. Beim erfindungsgemäßen Interruptsystem werden diese Neuaufrufe durch das Windows NT-Betriebssystem identifiziert und ein unerwünschtes Auslösen des Echtzeitsteuerprogramms verhindert.In the Windows NT operating system, there is also the problem in connection with real-time operation that the operating system after a regular call to the service routine of timer 0 often calls it again a short time later in order to achieve a better system load distribution. With the interrupt system according to the invention, these new calls are identified by the Windows NT operating system and unwanted triggering of the real-time control program is prevented.
Nach dem Abarbeiten des Steuerprogramms bzw. bei dessen Unterbrechung wird der ursprüngliche Interruptvektor INT30H in die Interruptvektortabelle 4 zurückgeschrieben, so daß wieder auf die Systemtaktroutine des Windows NT-Betriebssystems bei Timer O-Interrupts gezeigt wird. Weiterhin wird die Blockade der Neuprogrammierung des Timers 0 aufgehoben, wodurch das Windows NT-Betriebssystem sein ursprüngliches Verhalten vor der Implementierung des Echtzeitsteuerprogramms wiederherstellen kann.After the control program has been processed or when it is interrupted, the original interrupt vector INT30H is written back into the interrupt vector table 4 so that the system clock routine of the Windows NT operating system is again pointed to for timer O interrupts. Furthermore, the blockage of reprogramming of timer 0 is removed, allowing the Windows NT operating system to restore its original behavior before the implementation of the real-time control program.
Das erfindungsgemäße Interruptsystem ermöglicht also eine deterministische Zeitverteilung zwischen dem Echtzeitsteuerprogramm und dem Windows NT-Betriebsprogramm, die synchron zum Systemtakt vorgenommen wird. Durch das erfindungsgemäße Interruptsystem ist es möglich, alle Arten von Steuerungsprogrammen unter dem Windows NT-Betriebsprogramm zu implementieren, ohne die Eigenschaften dieses Programms zu verändern.The interrupt system according to the invention thus enables a deterministic time distribution between the real-time control program and the Windows NT operating program, which is carried out synchronously with the system clock. The interrupt system according to the invention makes it possible to implement all types of control programs under the Windows NT operating program without changing the properties of this program.
Das erfindungsgemäße Interruptsystem läßt sich jedoch nicht nur bei dem Windows NT-Betriebsprogramm anwenden, sondern ist auch für alle weiteren nicht-echtzeitfähigen Betriebsprogramme geeignet.However, the interrupt system according to the invention can not only be used with the Windows NT operating program, but is also suitable for all other non-real-time capable operating programs.
Claims (7)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE29620374U DE29620374U1 (en) | 1996-11-22 | 1996-11-22 | Interrupt system for implementing a real-time capable control program in a non-real-time capable operating program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE29620374U DE29620374U1 (en) | 1996-11-22 | 1996-11-22 | Interrupt system for implementing a real-time capable control program in a non-real-time capable operating program |
Publications (1)
Publication Number | Publication Date |
---|---|
DE29620374U1 true DE29620374U1 (en) | 1998-04-02 |
Family
ID=8032344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE29620374U Expired - Lifetime DE29620374U1 (en) | 1996-11-22 | 1996-11-22 | Interrupt system for implementing a real-time capable control program in a non-real-time capable operating program |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE29620374U1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1164483A2 (en) * | 2000-06-14 | 2001-12-19 | Siemens Aktiengesellschaft | System and method for reducing jitter in a signal |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3831048A1 (en) * | 1988-09-12 | 1990-03-15 | Nixdorf Computer Ag | OPERATING PROGRAM FOR A DATA PROCESSING SYSTEM |
DE4406094A1 (en) * | 1994-02-25 | 1995-08-31 | Heinrich Munz | Real=time operation of computer system |
-
1996
- 1996-11-22 DE DE29620374U patent/DE29620374U1/en not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3831048A1 (en) * | 1988-09-12 | 1990-03-15 | Nixdorf Computer Ag | OPERATING PROGRAM FOR A DATA PROCESSING SYSTEM |
DE4406094A1 (en) * | 1994-02-25 | 1995-08-31 | Heinrich Munz | Real=time operation of computer system |
Non-Patent Citations (8)
Title |
---|
CASPERS,Paul,G.: Aufbau von Betriebssystemen, Walter de Gruyter, Berlin, New York, 1974, Bd. 1713, S.66-71 * |
Fenster zum Prozess. In: Elektronik Praxis, Nr. 8, 28. April 1994, S.64-66 * |
HAESE,Marc: Echtzeit für Windows. In: Design & Elektronik 3, 6. Febr. 1996, S.24 * |
HAPPACHER,Meinrad: Nicht aufzuhalten. In: Elektronik 16, 1996, S.40-47 * |
HOPPE,Gerd: Die Industrie setzt zunehmend auf PC-kompatible Steuerungstechnik. In: etz, H.15- 16, 1996, S.6-9 * |
Kompakt ist Trumpf. In: fertigung, Sept. 1996, S.60 * |
MONTAMAT,Jean,Luc et.al.: PC steuert CNC. In: maschine + werkzeug 7-8, 1996, S.50-52 * |
Offene Steuerung mit Windows. In: fertigung, Dez. 1994, S.32-34 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1164483A2 (en) * | 2000-06-14 | 2001-12-19 | Siemens Aktiengesellschaft | System and method for reducing jitter in a signal |
EP1164483A3 (en) * | 2000-06-14 | 2006-01-25 | Siemens Aktiengesellschaft | System and method for reducing jitter in a signal |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0851348B1 (en) | Method and device for implementing a realtime control program in a non realtime control program | |
DE3751164T2 (en) | Data processor with various types of interrupt processing. | |
EP0333123B1 (en) | Modulary structured ISDN communication system | |
DE69031233T2 (en) | Adaptive work sequence planning for multiple processing systems | |
DE4410775C2 (en) | Control unit and operating method of an operating system for this control unit | |
DE3751297T2 (en) | Circuit for program control. | |
DE69933515T2 (en) | peripheral processor | |
DE69622832T2 (en) | DEVICE AND METHOD FOR COOPERATIVE INTERRUPTIONS IN A PREEMPTIVE PROCESS SEQUENCE PLANNING ENVIRONMENT | |
DE68924810T2 (en) | Timer channel for use in a multi-channel time system. | |
DE2744531A1 (en) | ELECTRONIC DATA PROCESSING SYSTEM | |
DE4011745A1 (en) | Task performance recorder for multi-tasking operating system protocol - includes stores for interrupt information of sizes of task selection interrupts and information on system calls | |
DE68920929T2 (en) | Timer channel with multiple timer reference features. | |
DE68915074T2 (en) | Integrated timer circuit with several channels and assigned operating processor. | |
DE68919018T2 (en) | Timer channel with match recognition features. | |
DE68922545T2 (en) | Assigned service processor with transmission options between channels. | |
DE1474063A1 (en) | Data processing system | |
DE102006052757B4 (en) | Method for operating an automation device with a processing unit having a plurality of processing cores | |
DE3809831A1 (en) | DIGITAL CALCULATOR WITH COMMAND MODE CONVERSION | |
DE4406094C2 (en) | Device for operating a control application | |
EP1067448B1 (en) | PC system for realtime and non-realtime programs | |
DE4429764C2 (en) | Timer device for a microcomputer | |
DE68919638T2 (en) | Interrupt-controlled clock speed computer and method for its operation. | |
EP1514180A2 (en) | Limitation of the response time of a software process | |
EP0499213B1 (en) | Modular structured ISDN communication system | |
DE29620374U1 (en) | Interrupt system for implementing a real-time capable control program in a non-real-time capable operating program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R163 | Identified publications notified | ||
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0009460000 Ipc: G05B0019042000 |
|
R207 | Utility model specification |
Effective date: 19980514 |
|
R150 | Utility model maintained after payment of first maintenance fee after three years |
Effective date: 20000223 |
|
R151 | Utility model maintained after payment of second maintenance fee after six years |
Effective date: 20021025 |
|
R152 | Utility model maintained after payment of third maintenance fee after eight years |
Effective date: 20041207 |
|
R071 | Expiry of right |