DE19648422C2 - Verfahren und Vorrichtung zum Implementieren eines echtzeitfähigen Steuerprogramms in einem nicht-echtzeitfähigen Betriebsprogramm - Google Patents
Verfahren und Vorrichtung zum Implementieren eines echtzeitfähigen Steuerprogramms in einem nicht-echtzeitfähigen BetriebsprogrammInfo
- Publication number
- DE19648422C2 DE19648422C2 DE19648422A DE19648422A DE19648422C2 DE 19648422 C2 DE19648422 C2 DE 19648422C2 DE 19648422 A DE19648422 A DE 19648422A DE 19648422 A DE19648422 A DE 19648422A DE 19648422 C2 DE19648422 C2 DE 19648422C2
- Authority
- DE
- Germany
- Prior art keywords
- real
- time
- time capable
- program
- interrupt
- 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
- 238000000034 method Methods 0.000 title claims abstract description 19
- 230000001960 triggered effect Effects 0.000 claims description 7
- 230000008672 reprogramming Effects 0.000 claims description 5
- 230000006870 function Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 210000000941 bile Anatomy 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 150000002500 ions Chemical class 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000029305 taxis Effects 0.000 description 1
- 238000012800 visualization Methods 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/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)
- Debugging And Monitoring (AREA)
Description
Die Erfindung betrifft ein Verfahren zum Implementieren
eines echtzeitfähigen Steuerprogramms in einem nicht-echt
zeitfähigen Betriebsprogramm.
Bei der Automatisierung von Maschinen und Produktionsan
lagen werden zur Steuerung zunehmend Personalcomputer (PC)
eingesetzt. Der wesentliche Vorteil von PC-gestützten Steuer
ungssystemen gegenüber herkömmlichen speicherprogrammierbaren
Steuerungslösungen (SPS/CNC) besteht in der Möglichkeit all
gemein gültige Rechnerstandards, die durch internationale
Normen und durch vielfach erfolgreichen Einsatz am Markt vor
gegeben werden, einsetzen zu können. Hierdurch wird einer
seits eine kostengünstige Steuerungslösung erreicht und ande
rerseits gleichzeitig der Einsatz modernster Technik durch
die kurzen Innovationszyklen bei der PC-Entwicklung gewähr
leistet.
Als ein erster Ansatz zur Verwendung von PCs in Automa
tisierungssystemen wurden spezielle PC-Baugruppen in beste
hende SPS/CNC-Steuerungssysteme integriert. Der Einsatz zu
sätzlicher externer PCs, insbesondere zur Visualisierung und
Protokollierung des Steuerungsvorgangs, macht solche Steue
rungssysteme jedoch aufwendig und teuer.
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 her
auskristallisiert. Die extrem schnelle und kontinuierliche
Leistungssteigerung der PC-Prozessoren in den letzten Jahren
hat es nämlich möglich gemacht, gleichzeitig steuerungstech
nische Aufgaben im Echtzeitbetrieb, d. h. die Verarbeitung von
Informationen zum gleichen Zeitpunkt mit der gleichen Ge
schwindigkeit, mit der diese anfallen, und klassische PC-
Funktionen mittels eines einzigen Prozessors zu bewältigen.
Dieser Lösungsansatz hat nicht nur unter Kostengesichtspunk
ten Vorteile, sondern bietet auch eine höhere Flexibili
tät bei der Anpassung der Steuerung an gewünschte Applika
tionen.
Um eine Echtzeit-Steuerung mittels eines PC auszuführen
zu können, muß dieser allen auftretenden Aufgaben ausrei
chende 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. Ant
wortzeit der Steuerung auf eine Regelungsanforderung, gewähr
leisten.
Im Idealfall muß auf dem PC kein zusätzliches Betriebs
system für Echtzeitaufgaben implementiert werden, sondern das
zur Ausübung der üblichen PC-Funktionen implementierte Be
triebssystem 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.
Insbesondere die Windows-Betriebssysteme eignen sich nur sehr
unzureichend für zeitkritische Steueraufgaben, da unter die
sen Betriebssystemen auftretende Unterbrechungsanforderungen,
d. h. Interrupts, nicht direkt auf den PC-Prozessor Zugriff
haben. Wenn unter den Windows-Betriebssystemen eine Steue
rungsaufgabe durch den PC-Prozessor ausgeführt werden soll,
übernimmt ein virtueller Maschinenmanager nach dem Interrupt-
Anruf die Zuordnung der Prozessor-Ressourcen. Diese zwischen
geschaltete Virtualisierung erhöht jedoch die Latenzzeit we
sentlich, insbesondere dann, wenn bei Eintreffen höher prio
risierter 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ährlei
stet, weil die Betriebssysteme je nach Art des Interrupt-Auf
rufs unterschiedlich schnell reagieren. Da jedoch die Win
dows-Betriebssysteme diejenigen Plattformen für PCs mit dem
größten Applications-Softwareangebot sind, wäre es insbeson
dere wünschenswert, Echtzeitaufgaben unter diesen Betriebssy
stemen durchführen zu können.
Zur Lösung des Problems nicht-echtzeitfähiger Be
triebssysteme wird in der DE 44 06 094 A1 vorgeschlagen, die
Echtzeitausführung eines Steuerprogramms dadurch zu gewähr
leisten, daß durch direkten Zugriff auf den nicht maskierba
ren Interrupt (NMI) des Prozessors ein kompletter Umgebungs
wechsel 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 A1
vorgeschlagene Verfahren beim Zugriff über den nicht-maskier
bare 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üh
ren kann. Dies gilt insbesondere bei Verwendung des Verfah
rens gemäß DE 44 06 094 A1, bei dem für die Unterstützung
komplexer Automatierungsaufgaben besonders geeigneten Be
triebssystem Windows NT. Bei diesem Betriebssystem ist der
nicht-maskierbare Interrupt für "fatale" Hardwarefehler des
Prozessors vorgesehen. Bei Aufruf des nicht maskierbaren In
terrupts 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üh
rung von Umgebungswechseln zum Echtzeitbetrieb von Steue
rungsaufgaben. Schließlich wird bei dem aus DE 44 06 094 A1
bekannten Verfahren auch nur der Einsprung in das Betriebssy
stem mittels nicht-maskierbarem Interrupt festgelegt. Es ist
jedoch kein definiertes Ende des in Echtzeit ausgeführten
Steuerungsprogramms vorgesehen, so daß dem Betriebssystem bis
zum nächsten Aufruf des Steuerungsprogramms gegebenfalls
keine Zeit zur Ausführung bleibt.
Aus Elektronik-Praxis Nr. 8, 28. April 1994, S. 64-66 ist
ein Verfahren gemäß dem Oberbegriff des Anspruchs 1 bekannt.
Der dargestellte Echtzeitscheduler ermöglicht das Implemen
tieren eines echtzeitfähigen Steuerprogramm in einem nicht-
echtzeitfähigen Betriebsprogramm, wobei ein Umgebungswechsel
vom nicht-echtzeitfähigen Betriebsprogramm auf das echtzeit
fähige Steuerprogramm mittels eines Echtzeit-Timer ausgelöst
wird.
Aus P. G. Caspers, Aufbau von Betriebssystemen, Sammlung
Goeschen Band 7013, 1974, S. 66-71 ist weiterhin bekannt zwi
schen Programmodulen zeitscheiben-gesteuert umzuschalten.
Aufgabe der Erfindung ist es deshalb, ein Verfahren 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 und des Steuerprogramms zu gefährden.
Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 gelöst.
Bevorzugte Ausführungsformen sind in den abhängigen An
sprüchen angegeben.
Der erfindungsgemäße Lösungsansatz basiert auf einer
deterministischen Zeitverteilung zwischen dem echtzeitfähigen
Steuerprogramm und dem nicht-echtzeitfähigem Betriebspro
gramm, d. h. das echtzeitfähige Steuerprogramm führt seine
Aufgaben auf dem Prozessor des PCs zu Zeitpunkten aus, die
von dem nicht-echtzeitfähigem Betriebssystem akzeptiert
werden.
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 Um
gebungswechsel von dem nicht-echtzeitfähigen Betriebssystem
auf das echtzeitfähige Steuerprogramm und der andere Inter
rupt einen Umgebungswechsel von dem echtzeitfähigen Steuer
programm auf das nicht-echtzeitfähige Betriebsprogramm aus
führt, so daß in einem Betriebszyklus sowohl dem echtzeit
fä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 Interrupt-Quelle des PC-
Systems, nämlich vom Systemzeitgeber durchgeführt,
z. B. vom Timer 0.
Weiterhin ist gemäß einer Ausführungsform der Erfindung der Betriebszyklus des
PC-Systems durch Programmieren der Interrupt-Folge auf der
internen Interrupt-Quelle frei einstellbar, wobei vorzugs
weise 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 Betriebspro
gramms zu sorgen.
Darüber hinaus kann auch das Ver
hältnis zwischen der Laufzeit des echtzeitfähigen Steuerpro
gramms und der Laufzeit des nicht-echtzeitfähigen Betriebs
programms verändert werden, wobei dem nicht-echtzeitfähigen
Betriebsprogramm eine Mindestlaufzeit zugeordnet werden kann.
Hierdurch läßt sich eine optimale Verteilung der Rechen
kapazitäten des PC-Prozessors sowohl auf die Steueraufgaben
als auch auf die normalen PC-Funktionen erreichen, wobei
durch Sicherung einer Mindestlaufzeit des nicht-echtzeit
fähigen Betriebssystems dessen Stabilität gewährleistet ist.
Weiterhin kann auch während der Abarbeitung des echt
zeitfähigen Steuerprogramms dieses Laufzeitverhältnis
stufenlos modifiziert werden, um erforderliche Anpassungen
des Echtzeitbetriebs, z. B. bei erhöhter "Echtzeit-Last", aus
führen zu können.
Der erfindungsgemäße Lösungsansatz ermöglicht eine sta
bile Implementierung eines echtzeitfähigen Steuerprogramms in
einem nicht-echtzeitfähigen Betriebsprogramm auf einem Pro
zessor, wobei insbesondere gewährleistet wird, daß zeitkriti
sche Betriebssystemaufgaben, wie z. B. Netzwerk-, Hard-Disk-
oder COM-Port-Aufgaben, ohne Unterbrechung sicher abgearbei
tet werden. Weiterhin ist keine 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 Steuerpro
gramms genutzt werden können.
Um einen sicheren Echtzeitbetrieb ausführen zu können,
sind gemäß der Erfindung weiter Sicherungsmaßnahmen gegen
ungewünschte Umprogrammierungen, insbesondere der internen
Interrupt-Quelle des PC-Systems, vorgesehen. Nach Einrichten
des Betriebszyklus auf dem PC-System wird hierdurch ein
Verändern der zeitlichen Abfolge der Interrupt-
Aufrufe der internen Interrupt-Quelle bis zum Durchlaufende
des echtzeitfähigen Steuerprogramms oder dessen externer
Unterbrechung wirksam verhindert.
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.
Die Erfindung ermöglicht nicht-echtzeitfähige Betriebs
systeme auf offene und kompatible Weise mit Echtzeit-Eigen
schaften auszustatten und somit einem PC verfügbar zu machen,
der für alle Bereiche der Automatisierung ohne ein aufwendi
ges 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üg
ten Zeichnungen im folgenden näher erläutert wird.
In den Zeichnungen zeigen
Fig. 1 einen Teil eines PC-Systems mit einem
Zeitgebersystem und einem Interruptcontrollersystem in Block
schaltbild-Darstellung;
Fig. 2 einen Teil des Interruptsystems des PC-Systems;
und
Fig. 3 ein Ablaufdiagramm zur Implementierung eines
echtzeitfähigen Steuerprogramms in dem nicht-echtzeitfähigen
Windows NT-Betriebsprogramm.
Wie in Fig. 1 dargestellt, enthalten die
Systemschaltkreise eines PC ein Zeitgebersystem 1 mit einem
Timer 0 (OUT0) als Systemzeitgeber. Die von diesem Timer 0
über eine Interruptleitung IRQ0 abgegebenen Interrupt-Aufrufe
werden einem üblicherweise aus zwei Interruptcontrollern
bestehenden Interruptcontrollersystem (2, 3) zugeführt, das
über eine Prozessorleitung INTR einen Interrupt im Prozessor
auslöst.
Der Prozessor zieht, wie in Fig. 2 gezeigt ist, die im
Interruptsignal enthaltene Interrupt-Nummer als Index in ei
ner Interruptvektortabelle 4 heran und liest den entsprechen
den Beschreiber, der einen Selektor und einen Offset enthält.
Der Selektor dient als Zugriffsschlüssel auf einen Codeseg
ment-Beschreiber in einer globalen oder lokalen Beschreiber
tabelle 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 Ein
sprungspunkt in dieses Codesegment und stellt die Start
adresse der Interruptroutine dar. Bei einem Interrupt-Aufruf
durch den Timer 0 wird unter dem Windows NT-Betriebssystem
üblicherweise die Systemtaktroutine ausgelöst.
Gemäß der Erfindung wird nun, wie in Fig. 3 gezeigt
ist, in einem ersten Schritt (Schritt 1) der Timer 0 auf den
gewünschten Betriebszyklus vorzugsweise im Bereich von 0,1
bis 1 msec über die Multimedia-Timer-Auflösung mit glei
chen Aufrufen für Windows NT-Funktionen eingestellt. Der Ti
mer 0 erzeugt vorhersehbare Interrupt-Aufrufe, die unter dem
Interruptvektor INT30H in der Interruptvektortabelle 4 ge
speichert sind. Dieser Interruptvektor wird gemäß der Erfin
dung überschrieben (Schritt 2), so daß er die Adresse der in
dem Speicher 6 eingeschriebenen Implementierungsroutine an
zeigt. Weiterhin werden bis zum Durchlauf oder der Unterbre
chung des echtzeitfähigen Steuerprogramms Aufrufe des Windows
NT-Betriebssystems zur Neuprogrammierung des Timers 0 unter
drückt (Schritt 2a).
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 (Schritt
3a) und beim zweiten Interrupt-Aufruf einen Umgebungswechsel
von dem echtzeitfähigen Steuerprogramm auf das Windows NT-
Betriebsprogramm (Schritt 3b) aus. Für den Umgebungswechsel
von dem Steuerprogramm in das Windows NT-Betriebsprogramm
wird dabei die Systemtaktroutine eingesetzt. Während der
Abarbeitung des Steuerprogramms kann weiterhin das Zeit
verhältnis zwischen den beiden Interrupt-Aufrufen des Timers
0 stufenlos verändert werden, wobei jedoch eine Mindestlauf
zeit für das Windows NT-Betriebssystem abgesichert ist, um
dessen Stabilität bei zeitkritischen Funktionen nicht zu ge
fährden.
Beim Windows NT-Betriebssystem besteht weiterhin im Zu
sammenhang mit dem Echtzeitbetrieb das Problem, daß das Be
triebssystem 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. Gemäß
der Erfindung werden diese Neuaufrufe durch das Windows NT-
Betriebssystem identifiziert und ein unerwünschtes Auslösen
des Echtzeitsteuerprogramms verhindert.
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-Betriebssy
stems bei Timer 0-Interrupts gezeigt wird. Weiterhin wird die
Blockade der Neuprogrammierung des Timers 0 aufgehoben, wo
durch das Windows NT-Betriebssystem sein ursprüngliches Ver
halten vor der Implementierung des Echtzeitsteuerprogramms
wiederherstellen kann (Schritt 4).
Die Erfindung ermöglicht also eine deterministische
Zeitverteilung zwischen dem Echtzeitsteuerprogramm und dem
Windows NT-Betriebsprogramm, die synchron zum Systemtakt
verläuft. Durch die Erfindung ist es möglich, alle Arten von
Steuerungsprogrammen unter dem Windows NT-Betriebsprogramm zu
implementieren, ohne die Eigenschaften dieses Programms zu
verändern.
Die Erfindung läßt sich jedoch nicht nur bei dem Windows
NT-Betriebsprogramm anwenden, sondern ist auch für alle wei
teren nicht-echtzeitfähigen Betriebsprogramme geeignet.
Claims (8)
1. Verfahren zum Implementieren eines echtzeitfähigen
Steuerprogramms in einem nicht-echtzeitfähigen
Betriebsprogramm auf einem Prozessor eines PC-Systems, das
einen Systemzeitgeber aufweist,
wobei durch einen ersten Interrupt-Aufruf in einem Betriebszyklus ein Umgebungswechsel von dem nicht- echtzeitfähigen Betriebsprogramm auf das echtzeitfähige Steuerprogramm ausgeführt wird, um dem echtzeitfähigen Steuerprogramm eine Laufzeit zuzuordnen,
dadurch gekennzeichnet, daß der Betriebszyklus einen zweiten Interrupt-Aufruf enthält, der einen Umgebungswechsel von dem echtzeitfähigen Steuerprogramm auf das nicht-echtzeitfähige Betriebsprogramm auslöst, um dem nicht-echtzeitfähigen Betriebsprogramm in dem Betriebszyklus eine Laufzeit zuzuordnen, wobei die Interrupt- Aufrufe vom Systemzeitgeber ausgelöst werden, und daß ein Anstoß der Serviceroutine des Systemzeitgebers durch das nicht-echtzeitfähige Betriebsprogramm identifiziert wird, um ein unerwünschtes Aufrufen des echtzeitfähigen Steuerprogramms zu verhindern.
wobei durch einen ersten Interrupt-Aufruf in einem Betriebszyklus ein Umgebungswechsel von dem nicht- echtzeitfähigen Betriebsprogramm auf das echtzeitfähige Steuerprogramm ausgeführt wird, um dem echtzeitfähigen Steuerprogramm eine Laufzeit zuzuordnen,
dadurch gekennzeichnet, daß der Betriebszyklus einen zweiten Interrupt-Aufruf enthält, der einen Umgebungswechsel von dem echtzeitfähigen Steuerprogramm auf das nicht-echtzeitfähige Betriebsprogramm auslöst, um dem nicht-echtzeitfähigen Betriebsprogramm in dem Betriebszyklus eine Laufzeit zuzuordnen, wobei die Interrupt- Aufrufe vom Systemzeitgeber ausgelöst werden, und daß ein Anstoß der Serviceroutine des Systemzeitgebers durch das nicht-echtzeitfähige Betriebsprogramm identifiziert wird, um ein unerwünschtes Aufrufen des echtzeitfähigen Steuerprogramms zu verhindern.
2. Verfahren gemäß Anspruch 1, dadurch gekennzeichnet, daß
der Betriebszyklus vorzugsweise zwischen 0,1 msec und 1 msec
frei einstellbar ist.
3. Verfahren gemäß einem der Ansprüche 1 oder 2, dadurch
gekennzeichnet, daß das Verhältnis zwischen der Laufzeit des
echtzeitfähigen Steuerprogramms und der Laufzeit des nicht-
echtzeitfähigen Betriebsprogramms frei einstellbar ist.
4. Verfahren gemäß Anspruch 3, dadurch gekennzeichnet, daß
dem nicht-echtzeitfähigen Betriebsprogramm eine
Mindestlaufzeit eingeräumt wird.
5. Verfahren gemäß einem der Ansprüche 1 bis 4, dadurch
gekennzeichnet, daß der Betriebszyklus durch Festlegen der
Interrupt-Aufruffolge des Systemzeitgebers eingestellt wird.
6. Verfahren gemäß einem der Ansprüche 1 bis 5, dadurch ge
kennzeichnet, daß der Systemzeitgeber mit zwei alternierenden
Zeitintervallen zum Auslösen aufeinanderfolgender Interrupt-
Aufrufe eingestellt wird, die das Verhältnis zwischen der
Laufzeit des echtzeitfähigen Steuerprogramms und der Laufzeit
des nicht-echtzeitfähigen Betriebsprogramms festlegen.
7. Verfahren gemäß einem der Ansprüche 1 bis 6, dadurch ge
kennzeichnet, daß nach dem Einrichten des Betriebszyklus auf
dem PC-System mit einem Umgebungswechsel von dem nicht-
echtzeitfähigen Betriebsprogramm auf das echtzeitfähige
Steuerprogramm und einem Umgebungswechsel von dem
echtzeitfähigen Steuerprogramm auf das nicht-echtzeitfähige
Betriebsprogramm ein Verändern der Interrupt-Aufrufe des
Systemzeitgebers blockiert wird, bis das echtzeitfähige Steu
erprogramm abgearbeitet ist oder unterbrochen wird.
8. Verfahren gemäß einem der Ansprüche 1 bis 7, gekenn
zeichnet durch die Verfahrensschritte
Festlegen der Zeitintervalle zwischen den Interrupt-Auf rufen des Systemzeitgebers,
Überschreiben des zum Interrupt-Aufruf des Systemzeitgebers gehörenden, die Systemtaktroutine adressierenden Interrupt-Vektors mit einem eine Implementierungsroutine adressierenden Interrupt-Vektors,
Sichern der Zeitinterval-Festlegung des Systemzeitgebers gegen Umprogrammieren durch das nicht-echtzeitfähige Betriebsprogramm, und
Abarbeiten des echtzeitfähigen Steuerprogramms entspre chend den Interrupt-Aufrufen des Systemzeitgebers bei alternierendem Auslösen des echtzeitfähigen Steuerprogramms und der Systemtaktroutine des nicht-echtzeitfähigen Betriebsprogramms durch die Implementierungsroutine.
Festlegen der Zeitintervalle zwischen den Interrupt-Auf rufen des Systemzeitgebers,
Überschreiben des zum Interrupt-Aufruf des Systemzeitgebers gehörenden, die Systemtaktroutine adressierenden Interrupt-Vektors mit einem eine Implementierungsroutine adressierenden Interrupt-Vektors,
Sichern der Zeitinterval-Festlegung des Systemzeitgebers gegen Umprogrammieren durch das nicht-echtzeitfähige Betriebsprogramm, und
Abarbeiten des echtzeitfähigen Steuerprogramms entspre chend den Interrupt-Aufrufen des Systemzeitgebers bei alternierendem Auslösen des echtzeitfähigen Steuerprogramms und der Systemtaktroutine des nicht-echtzeitfähigen Betriebsprogramms durch die Implementierungsroutine.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19648422A DE19648422C2 (de) | 1996-11-22 | 1996-11-22 | Verfahren und Vorrichtung zum Implementieren eines echtzeitfähigen Steuerprogramms in einem nicht-echtzeitfähigen Betriebsprogramm |
EP97120393A EP0851348B1 (de) | 1996-11-22 | 1997-11-20 | Verfahren und Vorrichtung zum Implementieren eines echtzeitfähigen Steuerprogramms in einem nicht-echtzeitfähigen Betriebsprogramm |
AT97120393T ATE188048T1 (de) | 1996-11-22 | 1997-11-20 | Verfahren und vorrichtung zum implementieren eines echtzeitfähigen steuerprogramms in einem nicht-echtzeitfähigen betriebsprogramm |
DE59700880T DE59700880D1 (de) | 1996-11-22 | 1997-11-20 | Verfahren und Vorrichtung zum Implementieren eines echtzeitfähigen Steuerprogramms in einem nicht-echtzeitfähigen Betriebsprogramm |
US08/974,993 US6167425A (en) | 1996-11-22 | 1997-11-20 | System for implementing a real time control program in a non-real time operating system using interrupts and enabling a deterministic time charing between the control program and the operating system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19648422A DE19648422C2 (de) | 1996-11-22 | 1996-11-22 | Verfahren und Vorrichtung zum Implementieren eines echtzeitfähigen Steuerprogramms in einem nicht-echtzeitfähigen Betriebsprogramm |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19648422A1 DE19648422A1 (de) | 1998-06-04 |
DE19648422C2 true DE19648422C2 (de) | 2000-03-30 |
Family
ID=7812485
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19648422A Expired - Fee Related DE19648422C2 (de) | 1996-11-22 | 1996-11-22 | Verfahren und Vorrichtung zum Implementieren eines echtzeitfähigen Steuerprogramms in einem nicht-echtzeitfähigen Betriebsprogramm |
DE59700880T Expired - Lifetime DE59700880D1 (de) | 1996-11-22 | 1997-11-20 | Verfahren und Vorrichtung zum Implementieren eines echtzeitfähigen Steuerprogramms in einem nicht-echtzeitfähigen Betriebsprogramm |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE59700880T Expired - Lifetime DE59700880D1 (de) | 1996-11-22 | 1997-11-20 | Verfahren und Vorrichtung zum Implementieren eines echtzeitfähigen Steuerprogramms in einem nicht-echtzeitfähigen Betriebsprogramm |
Country Status (4)
Country | Link |
---|---|
US (1) | US6167425A (de) |
EP (1) | EP0851348B1 (de) |
AT (1) | ATE188048T1 (de) |
DE (2) | DE19648422C2 (de) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10242667A1 (de) * | 2002-09-13 | 2004-03-25 | Phoenix Contact Gmbh & Co. Kg | Echtzeitfähiges Steuerungssystem mit einer SPS-Applikation unter einem nicht echtzeitfähigen Betriebssystem |
DE102009047024A1 (de) | 2009-11-23 | 2011-05-26 | Beckhoff Automation Gmbh | Parallelisierte Programmsteuerung |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT1311210B1 (it) * | 1999-03-05 | 2002-03-04 | Zeltron Spa | Apparecchio refrigerante con indicatore della durata diconservazione degli articoli |
EP1067448B1 (de) | 1999-07-08 | 2009-02-11 | Siemens Aktiengesellschaft | PC-System für Echtzeit- und Nicht-Echtzeitprogramme |
US7140015B1 (en) * | 1999-09-29 | 2006-11-21 | Network Appliance, Inc. | Microkernel for real time applications |
US6957432B2 (en) | 2000-03-21 | 2005-10-18 | Microsoft Corporation | Real-time scheduler |
US6990669B1 (en) * | 2000-03-21 | 2006-01-24 | Microsoft Corporation | Real-time scheduler |
EP1410199A2 (de) * | 2000-11-06 | 2004-04-21 | Koninklijke Philips Electronics N.V. | Verfahren und system für die zuweisung eines budgets an eine aufgabe |
US6697959B2 (en) * | 2000-12-20 | 2004-02-24 | Bull Hn Information Systems Inc. | Fault handling in a data processing system utilizing a fault vector pointer table |
US6687845B2 (en) * | 2000-12-20 | 2004-02-03 | Bull Hn Information Systems Inc. | Fault vector pointer table |
EP1281948A1 (de) * | 2001-08-03 | 2003-02-05 | Drecq Daniel Technologies D 2 T | Rechnerprogramm zur Kontrolle und Steuerung eines Prüfstandes |
US7093256B2 (en) * | 2002-12-13 | 2006-08-15 | Equator Technologies, Inc. | Method and apparatus for scheduling real-time and non-real-time access to a shared resource |
US20040226016A1 (en) * | 2003-05-08 | 2004-11-11 | Samsung Electronics Co., Ltd. | Apparatus and method for sharing resources in a real-time processing system |
JP4497993B2 (ja) * | 2004-04-16 | 2010-07-07 | 株式会社日立製作所 | 電子配付物の配付制御システム及び方法 |
US7865326B2 (en) | 2004-04-20 | 2011-01-04 | National Instruments Corporation | Compact input measurement module |
US20060010446A1 (en) * | 2004-07-06 | 2006-01-12 | Desai Rajiv S | Method and system for concurrent execution of multiple kernels |
US7734833B2 (en) * | 2005-09-08 | 2010-06-08 | International Business Machines Corporation | Method for scheduling operations called by a task on a real-time or non-real time processor |
US8255602B2 (en) * | 2008-09-09 | 2012-08-28 | Texas Instruments Incorporated | Effective mixing real-time software with a non-real-time operating system |
US9348633B2 (en) * | 2009-07-20 | 2016-05-24 | Google Technology Holdings LLC | Multi-environment operating system |
US8868899B2 (en) * | 2009-07-20 | 2014-10-21 | Motorola Mobility Llc | System and method for switching between environments in a multi-environment operating system |
US9372711B2 (en) * | 2009-07-20 | 2016-06-21 | Google Technology Holdings LLC | System and method for initiating a multi-environment operating system |
US9367331B2 (en) * | 2009-07-20 | 2016-06-14 | Google Technology Holdings LLC | Multi-environment operating system |
US9389877B2 (en) * | 2009-07-20 | 2016-07-12 | Google Technology Holdings LLC | Multi-environment operating system |
US8983536B2 (en) | 2010-10-22 | 2015-03-17 | Google Technology Holdings LLC | Resource management in a multi-operating environment |
US9354900B2 (en) | 2011-04-28 | 2016-05-31 | Google Technology Holdings LLC | Method and apparatus for presenting a window in a system having two operating system environments |
US9417753B2 (en) | 2012-05-02 | 2016-08-16 | Google Technology Holdings LLC | Method and apparatus for providing contextual information between operating system environments |
US9342325B2 (en) | 2012-05-17 | 2016-05-17 | Google Technology Holdings LLC | Synchronizing launch-configuration information between first and second application environments that are operable on a multi-modal device |
DE102012011584A1 (de) * | 2012-06-13 | 2013-12-19 | Robert Bosch Gmbh | Ressourcen-Managementsystem fürAutomatisierungsanlagen |
US9594704B1 (en) | 2013-12-17 | 2017-03-14 | Google Inc. | User mode interrupts |
US9495311B1 (en) * | 2013-12-17 | 2016-11-15 | Google Inc. | Red zone avoidance for user mode interrupts |
US9530007B1 (en) | 2014-08-26 | 2016-12-27 | Amazon Technologies, Inc. | Identifying tamper-resistant characteristics for kernel data structures |
US9767276B1 (en) | 2014-08-26 | 2017-09-19 | Amazon Technologies, Inc. | Scanning kernel data structure characteristics |
US9575793B1 (en) | 2014-08-26 | 2017-02-21 | Amazon Technologies, Inc. | Identifying kernel data structures |
US9507621B1 (en) * | 2014-08-26 | 2016-11-29 | Amazon Technologies, Inc. | Signature-based detection of kernel data structure modification |
DE102016107527A1 (de) | 2016-04-22 | 2017-10-26 | Beckhoff Automation Gmbh | Echtzeitumgebung und speicherprogrammierbare Steuerung |
TR201608894A3 (tr) | 2016-06-27 | 2018-03-21 | Tusas Tuerk Havacilik Ve Uzay Sanayii Anonim Sirketi | Bir gerçek zamanlı çalışma yöntemi. |
DE102018133058A1 (de) | 2018-12-20 | 2020-06-25 | Beckhoff Automation Gmbh | Verfahren zum steuern eines automatisierungsprozesses in echtzeit |
JP7364388B2 (ja) * | 2019-08-08 | 2023-10-18 | 株式会社日立製作所 | 制御システム |
CN112506152B (zh) * | 2020-12-02 | 2022-03-22 | 三一重型装备有限公司 | 一种采煤机及其控制器、控制方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4406094A1 (de) * | 1994-02-25 | 1995-08-31 | Heinrich Munz | Verfahren und Vorrichtung zum Echtzeitbetrieb eines Prozessors |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5694603A (en) * | 1982-09-28 | 1997-12-02 | Reiffin; Martin G. | Computer memory product with preemptive multithreading software |
US5193189A (en) * | 1987-10-07 | 1993-03-09 | Allen-Bradley Company, Inc. | Programmable controller with multiple priority level task processing |
DE3831048A1 (de) * | 1988-09-12 | 1990-03-15 | Nixdorf Computer Ag | Betriebsprogramm fuer eine datenverarbeitungsanlage |
JPH02311932A (ja) * | 1989-05-29 | 1990-12-27 | Oki Electric Ind Co Ltd | 優先制御方式 |
JPH0375832A (ja) * | 1989-08-17 | 1991-03-29 | Nec Corp | 仮想計算機制御方式 |
US5291614A (en) * | 1991-09-03 | 1994-03-01 | International Business Machines Corporation | Real-time, concurrent, multifunction digital signal processor subsystem for personal computers |
US5640563A (en) * | 1992-01-31 | 1997-06-17 | International Business Machines Corporation | Multi-media computer operating system and method |
JPH08212086A (ja) * | 1994-09-30 | 1996-08-20 | Microsoft Corp | オフィスマシンのオペレーティングシステム及び方法 |
US5721922A (en) * | 1994-10-13 | 1998-02-24 | Intel Corporation | Embedding a real-time multi-tasking kernel in a non-real-time operating system |
US5535380A (en) * | 1994-12-16 | 1996-07-09 | International Business Machines Corporation | System to reduce latency for real time interrupts |
US5768599A (en) * | 1995-02-28 | 1998-06-16 | Nec Corporation | Interrupt managing system for real-time operating system |
US5995745A (en) * | 1996-12-23 | 1999-11-30 | Yodaiken; Victor J. | Adding real-time support to general purpose operating systems |
-
1996
- 1996-11-22 DE DE19648422A patent/DE19648422C2/de not_active Expired - Fee Related
-
1997
- 1997-11-20 US US08/974,993 patent/US6167425A/en not_active Expired - Lifetime
- 1997-11-20 DE DE59700880T patent/DE59700880D1/de not_active Expired - Lifetime
- 1997-11-20 EP EP97120393A patent/EP0851348B1/de not_active Expired - Lifetime
- 1997-11-20 AT AT97120393T patent/ATE188048T1/de active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4406094A1 (de) * | 1994-02-25 | 1995-08-31 | Heinrich Munz | Verfahren und Vorrichtung zum Echtzeitbetrieb eines Prozessors |
Non-Patent Citations (2)
Title |
---|
"Fenster zum Prozeß" in Elektronik-Praxis Nr. 8, 28. April 1994, S. 64-66 * |
CASPERS, P.G.: "Aufbau von Betriebssystemen", Sammlung Göschen Band 7013, Walter de Gruyter, Berlin-New York 1974, S. 66-70 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10242667A1 (de) * | 2002-09-13 | 2004-03-25 | Phoenix Contact Gmbh & Co. Kg | Echtzeitfähiges Steuerungssystem mit einer SPS-Applikation unter einem nicht echtzeitfähigen Betriebssystem |
WO2004029804A2 (de) | 2002-09-13 | 2004-04-08 | Phoenix Contact Gmbh & Co. Kg | Echtzeitfähiges steuerungssystem mit einer sps-applikation unter einem nicht echtzeitfähigen betriebssystem |
DE10242667B4 (de) * | 2002-09-13 | 2004-07-29 | Phoenix Contact Gmbh & Co. Kg | Echtzeitfähiges Steuerungssystem mit einer SPS-Applikation unter einem nicht echtzeitfähigen Betriebssystem |
US7657895B2 (en) | 2002-09-13 | 2010-02-02 | Phoenix Contact Gmbh & Co. Kg | Real time-capable control system having an sps application under a non-real time-capable operating system |
DE102009047024A1 (de) | 2009-11-23 | 2011-05-26 | Beckhoff Automation Gmbh | Parallelisierte Programmsteuerung |
WO2011061046A1 (de) | 2009-11-23 | 2011-05-26 | Beckhoff Automation Gmbh | Parallelisierte programmsteuerung |
Also Published As
Publication number | Publication date |
---|---|
ATE188048T1 (de) | 2000-01-15 |
US6167425A (en) | 2000-12-26 |
EP0851348B1 (de) | 1999-12-22 |
DE59700880D1 (de) | 2000-01-27 |
DE19648422A1 (de) | 1998-06-04 |
EP0851348A1 (de) | 1998-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19648422C2 (de) | Verfahren und Vorrichtung zum Implementieren eines echtzeitfähigen Steuerprogramms in einem nicht-echtzeitfähigen Betriebsprogramm | |
DE69031233T2 (de) | Adaptive Arbeitsfolgeplanung für Mehrfachverarbeitungssysteme | |
EP0333123B1 (de) | Modular strukturiertes ISDN-Kommunikationssystem | |
DE60008267T2 (de) | Verfahren zum planen von zeitverteilten anwendungen in einem rechnerbetriebssystem | |
DE4011745C2 (de) | ||
DE4410775C2 (de) | Steuergerät und Arbeitsverfahren eines Betriebssystems für dieses Steuergerät | |
DE68924810T2 (de) | Zeitgeberkanal für die Verwendung in einem Mehrkanal-Zeitsystem. | |
DE68915074T2 (de) | Integrierte Zeitgeberschaltung mit mehreren Kanälen und zugeordnetem Bedienungsprozessor. | |
LU93299B1 (de) | Ablaufsteuerung von Programmmodulen | |
DE68920929T2 (de) | Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen. | |
DE2165767A1 (de) | Datenverarbeitungssystem | |
DE68919018T2 (de) | Zeitgeberkanal mit Übereinstimmungserkennungsmerkmalen. | |
DE69222468T2 (de) | Vorrichtung zur Steigerung der Leistung eines einer Multiprozessorstruktur mit einer möglicherweise hohen Anzahl von Prozessoren zugeordneten Echtzeitsteuerprogrammkerns | |
DE68922545T2 (de) | Zugeordneter Dienstprozessor mit Übertragungsmöglichkeiten zwischen Kanälen. | |
DE2911909C2 (de) | Digitales Datenverarbeitungsgerät | |
DE2064383B2 (de) | Datenverarbeitungsanlage mit mehreren zentralen Verarbeitungseinrichtungen | |
DE4005042A1 (de) | Architektur eines digitalen bewegungssteuerungselements hoher geschwindigkeit | |
DE4406094C2 (de) | Vorrichtung zum Betrieb einer Steuerungsanwendung | |
EP1067448B1 (de) | PC-System für Echtzeit- und Nicht-Echtzeitprogramme | |
DE4000582C2 (de) | Programmunterbrechungs-Schaltung und Verfahren zur Programmunterbrechungs-Bearbeitung für Mikrocomputer | |
EP1514180A2 (de) | Reaktionszeit-beschränkung eines software-prozesses | |
EP0499213B1 (de) | Modular strukturiertes ISDN-Kommunikationssystem | |
DE2360637A1 (de) | Funktionsueberwachungssystem fuer eine rechenanlage | |
DE19647407C2 (de) | Steuergerät, insbesondere für den Einsatz in einem Kraftfahrzeug | |
DE3688506T2 (de) | Datenverarbeitungsanlage. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |