DE3610433C2 - Verfahren zum Steuern einer Maschine mit einer speicherprogrammierbaren Steuerung mit Funktionsplaninterpreter - Google Patents
Verfahren zum Steuern einer Maschine mit einer speicherprogrammierbaren Steuerung mit FunktionsplaninterpreterInfo
- Publication number
- DE3610433C2 DE3610433C2 DE3610433A DE3610433A DE3610433C2 DE 3610433 C2 DE3610433 C2 DE 3610433C2 DE 3610433 A DE3610433 A DE 3610433A DE 3610433 A DE3610433 A DE 3610433A DE 3610433 C2 DE3610433 C2 DE 3610433C2
- Authority
- DE
- Germany
- Prior art keywords
- program
- ladder
- bit
- control
- stored
- 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
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/052—Linking several PLC's
-
- 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/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13105—Two or more languages, ladder diagram or progression, basic program
Description
Die Erfindung bezieht sich auf speicherprogram
mierbare Steuergeräte wie sie aus den US-PSn 3 810 118,
3 942 158, 4 165 534 und 4 442 504 bekannt sind.
Speicherprogrammierbare Steuergeräte sind typi
scherweise mit industriellen Anlagen wie Montagestraßen
und Werkzeugmaschinen verbunden und dienen dazu, die
Anlagen in Abhängigkeit von einem gespeicherten Pro
gramm sequentiell zu betätigen oder zu betreiben. Bei
speicherprogrammierbaren Steuergeräten, wie sie aus
den oben genannten Patenten bekannt sind, ist das
Steuerprogramm beispielsweise in einem Speicher ge
speichert und es enthält Anweisungen, die in sehr
schneller Sequenz oder Aufeinanderfolge ausgelesen
und ausgeführt werden, um den Zustand von ausgewählten
Sensor- oder Fühlervorrichtungen an der gesteuerten
Anlage zu überprüfen und ausgewählte Stell- oder Betä
tigungsvorrichtungen an der gesteuerten Anlage in Ab
hängigkeit vom Status eines oder mehrerer der über
prüften Fühlervorrichtungen zu erregen bzw. einzu
schalten oder zu entregen bzw. auszuschalten.
Der Prozessor in einem programmierbaren Steuergerät
ist so ausgelegt, daß er äußerst schnell Anweisungen vom
programmierbaren Steuergerättyp ausführen kann, die in
mittleren bis großen Steuergeräten nicht nur Anweisungen
enthalten, welche die Manipulation von Einzelbit-Ein
gabe- und -Ausgabe-Daten umfassen, sondern auch arith
metische Anweisungen, Dateihandhabungsanweisungen sowie
Anweisungen beinhalten, die Zeitgeber und Zähler, Ab
lauffolgesteuerungen und andere komplexe Vorgänge betreffen.
Um sicherzustellen, daß das speicherprogram
mierbare Steuergerät sehr schnell auf eine Änderung
im Status der Fühlervorrichtungen an der gesteuerten
Anlage ansprechen kann, ist es unbedingt erforderlich,
daß das Steuergerät das Steuerprogramm wiederholt mit
einer sehr hohen Geschwindigkeit ausführt. Die Ge
schwindigkeit, mit der ein programmierbares Steuerge
rät die Anweisungen in seinem Anweisungssatz ausführen
kann, sowie der Umfang oder die Größe des Steuerpro
gramms stellen die Hauptfaktoren dar, die für die Ge
schwindigkeit entscheidend sind, mit der das speicher
programmierbare Steuergerät wiederholt das Steuerpro
gramm ausführen oder abfragen bzw. abtasten kann.
Vom Prozessor eines speicherprogrammierbaren
Steuergeräts erwartet man, daß er gewisse wohlbekannte
Anweisungen vom speicherprogrammierbaren Steuergerättyp
ausführen kann. Diese Anweisungen wurden in der Indu
strie weitgehend standardisiert, und sie können direkt
den Elementen eines auch mit "Ladder"-Diagramm be
zeichneten Kontaktplans zugeordnet werden, der von
Steuer- und Regelungsfachleuten leicht verstanden wird.
Programmierungsvorrichtungen, wie sie aus den US-PSn 3 798 612,
3 813 649 und 4 070 702 bekannt sind, dienen
zur Unterstützung des Anwenders bei der Entwicklung
und Editierung von Kontaktplan-Steuerprogrammen, die
aus den genannten Anweisungen vom programmierbaren
Steuergerättyp bestehen.
Während Kontaktplansteuerprogramme für relativ
kleine und mittlere Steueraufgaben leicht und einfach
zu entwickeln sowie zu editieren sind, werden derartige
Programme für großangelegte Steuerungsaufgaben schwer
fällig und ineffizient. Große Kontaktplansteuerprogram
me sind schwierig zu verstehen und bei der Fehlersuche
schwierig zu handhaben, und ihre Ausführung erfordert
auch eine sehr lange Zeit.
Aus der Druckschrift etz Band 105 (184) Heft 11, Seite 534
bis 538, ist es bekannt, bei speicherprogrammierbaren Steuerun
gen eine "strukturierte" Programmierung anzuwenden. Bei dieser
bekannten strukturierten Programmierung wird das Programm modul
weise aufgebaut. Das Gesamtprogramm besteht aus einem überge
ordneten Hauptprogramm mit vom Anwender erstellten Programm
bausteinen und Funktionsbausteinen. Diese bekannte strukturier
te Programmierung ist derart getroffen, daß man beispielsweise
beim Erreichen einer bestimmten Stelle im Hauptprogramm zum
Anfang eines Programmbausteines springt und am Ende des Pro
grammbausteines bei der gleichen Stelle in das Hauptprogramm
zurückspringt. Dies hat den Vorteil, daß die einzelnen Pro
grammmodule in sich abgeschlossen, separat prüfbar sind und
bei der Abarbeitung des Hauptprogramms mehrmals und von ver
schiedenen Stellen aus zur Anwendung gebracht werden können.
Aus der DE 28 17 536 A1 ist es prinzipiell bekannt,
Anwenderprogramme von speicherprogrammierbaren Steuerungen
interpretativ abzuarbeiten.
Die Erfindung geht im Oberbegriff des Patentanspruchs 1 aus von einem Stand der Technik,
der dargestellt ist in: Fachberichte Messen - Steuern - Regeln Nr. 10, Fortschritte durch
digitale Meß- und Automatisierungstechnik/INTERKAMA-Kongress 1983, Springer-Verlag
Berlin und Heidelberg 1983, Seiten 459-458. Dort ist ein Steuerungsverfahren für eine
speicherprogrammierbare Steuerung beschrieben, bei der eine Sequenz von Zuständen
vorliegt, die in einer Ablaufsteuerung festgelegt sind und die zeitliche Aufeinanderfolge der
Zustände bzw. Schritte beschreiben, die durch Bedingungen verknüpft sind. Ferner sind
Kontaktplanprogramme, welche die Funktionen der Maschine vorgeben, erläutert, sowie die
alternative Darstellung im Funktionsplan dargelegt.
Aufgabe der Erfindung ist es, große Steuerungsaufgaben
einfacher, leichter und schneller zu handhaben und insbeson
dere die Geschwindigkeit zu erhöhen, mit der der Prozessor
das gesamte Anwendersteuerprogramm ausführen kann.
Diese Aufgabe wird durch ein Verfahren zum Steuern einer Maschine
mit einer mit der Maschine verbundenen speicherprogrammierbaren Steuerung gemäß
dem Patentanspruch 1 gelöst. Die vorgeschlagene Lösung beruht im wesent
lichen darauf, daß unter Heranziehung des gespeicherten Struk
turplanprogramms eine Aktivzustandsliste erstellt wird, die
festlegt, welches oder welche der Vielzahl separater Kontakt
plansteuerprogramme zu irgendeinem Zeitpunkt bzw. gerade aus
zuführen sind, um eine gerade aktuelle Steuerungsaufgabe an
der Maschine durchzuführen. Der Erfindung liegt die
Erkenntnis zugrunde, daß große Steuerungsaufgaben für
gewöhnlich in separate Steuerungsschritte aufgebrochen
werden können, die, während die gesteuerte Maschine
oder der gesteuerte Prozeß durch ihre bzw. seine Be
triebszustände voranschreitet, in einer sequentiellen
Aufeinanderfolge ausführbar sind. Jeder Steuerschritt
ist definiert durch ein getrennt ausführbares Leiter-
(Ladder)- oder Kontaktplanprogramm, das leicht zu ver
stehen ist und das mit einer sehr hohen Abfrage- oder
Abtastgeschwindigkeit ausgeführt werden kann. Die
Sequenz, in der die separaten Steuerschritte ausgeführt
werden, ist durch das Strukturplanprogramm definiert,
bei dem es sich um einen generellen Ausdruck bezüglich
der Art und Weise handelt, wie die gesteuerte Maschine
oder der gesteuerte Prozeß betätigt oder betrieben wer
den muß. Der Anwender kann daher unter Verwendung von
Strukturplangestaltungen die generelle Art und Weise
definieren, in der die Maschine oder der Prozeß zu be
treiben ist, und dann die Einzelbetriebsweise der Ma
schine oder des Prozesses in separaten, leicht zu hand
habenden Leiter- oder Kontaktplanprogrammen definieren.
Ein besondere Vorteil der Erfindung ist auch die
Erhöhung der Geschwindigkeit, mit der das gesamte Anwen
dersteuerprogramm ausgeführt werden kann. Zu diesem Zweck
ist das Steuerprogramm in separat ausführbare Leiter-
oder Kontaktplanprogramme aufgeteilt, und es werden,
wie bereits erwähnt, nur solche Kontaktplanprogramme aus
geführt, die zum gegenwärtigen Zeitpunkt erforderlich
sind. Anstatt der Ausführung eines einzigen großen Kontakt
planprogramms schafft somit die Erfindung die Möglichkeit,
mit einer viel höheren Abtastgeschwindigkeit ein oder
mehrere kleine Kontaktplanprogramme auszuführen.
In vorteilhafter
Weise kann das erfindungsgemäße Verfahren mit einer aus der
DE 28 17 536 A1 bekannten speicherprogrammierbaren Steuerung
durchgeführt werden, die darauf abzielt, die Geschwindigkeit zu erhöhen, mit der
der Prozessor ein Leiter- oder Kontaktplanprogramm aus
führen kann. Dies wird durch die Verwendung eines Bit
prozessors bzw. booleschen Prozessors erreicht,
der in einer solchen Weise betreibbar ist,
daß er einen ausgewählten Teilsatz von bitorientierten
Anweisungen mit sehr hoher Geschwindigkeit ausführen
kann, und daß ein programmierter Mikroprozessor bereit
steht, diejenigen anderen Anweisungen im Leiter- oder
Kontaktplanprogrammanweisungssatz auszuführen, die der
Bit-Prozessor nicht ausführen kann. Im Gegensatz zu
herkömmlichen Prozessoren, die festverdrahtete Bit-
Prozessorschaltungen benutzen, um programmierten Mikro
prozessoren zu assistieren, fährt der nach der Erfin
dung vorgesehene Bit-Prozessor damit fort, Steuer
anweisungen so lange auszuführen, bis er auf eine An
weisung trifft, die er nicht ausführen kann. Erst dann
veranlaßt er den Transfer der Führung oder Kontrolle
zurück zum Mikroprozessor. Da nach der Statistik 75%
bis 95% der tatsächlichen Leiter- oder Kontaktplanpro
gramme aus Einzelbitanweisungen bestehen, die von einem
Bit-Prozessor ausführbar sind, wird die Abfrage- oder
Abtastrate in den meisten Fällen dadurch beträchtlich
erhöht, daß der Bit-Prozessor die Führung oder Kontrolle
der Gesamtsteuerung behält.
Vorzugsweise führt bei dem erfindungsgemäßen Verfahren ein
Mikroprozessor eine Struktur
planinterpretierroutine aus, um das Strukturplanpro
gramm zu interpretieren und auf diese Weise eine Aktiv
zustandsliste zu erstellen, die diejenigen Kontaktplan
programme anzeigt, welche ausgeführt werden sollen. Der
selbe Mikroprozessor führt auch mit der Hilfe eines
Bit-Prozessors die Kontaktplanprogramme aus, die von
der Aktivzustandsliste angezeigt werden, um eine mit
dem speicherprogrammierbaren Steuergerät verbundene
Maschine zu steuern.
Die vorstehenden und weiteren Ziele und Vorteile
der Erfindung können der folgenden Beschreibung ent
nommen werden. In dieser Beschreibung wird auch Bezug
auf Zeichnungen genommen, an Hand von denen ein bevor
zugtes Ausführungsbeispiel der Erfindung beschrieben
ist. Es zeigt:
Fig. 1 eine perspektivische Ansicht eines
speicherprogrammierbaren Steuergeräts, das von der
Erfindung Gebrauch macht,
Fig. 1A ein schematisches Blockschaltbild eines
Prozessor-Bausteins, der einen Teil der Steuergeräts
nach Fig. 1 bildet,
Fig. 2 ein elektrisches Schaltschema eines
Steuerteils, der Teil des Prozessor-Bausteins nach
Fig. 1 bildet,
Fig. 3 ein elektrisches Schaltschema eines
Orts-Eingabe/Ausgabe-Teils des Prozessor-Bausteins
nach Fig. 1A,
Fig. 4 ein elektrisches Schaltschema eines
Kommunikationsteils des Prozessor-Bausteins nach
Fig. 1A,
Fig. 5A ein elektrisches Schaltschema eines
Bit-Prozessors, der Teil des Steuerteils nach Fig. 2
bildet,
Fig. 5B ein elektrisches Schaltschema einer
Logikeinheit, die Teil des Bit-Prozessors nach Fig. 5A
bildet,
Fig. 5C ein Zeitdiagramm, das zur Erläuterung
der Betriebsweise der Steuerschaltung nach Fig. 5A
dient,
Fig. 6 eine Speicherabbildung eines Direkt
zugriffsspeichers, der Teil des Steuerteils nach
Fig. 2 bildet,
Fig. 7 bis 9 schematische Darstellungen von
Datenstrukturen, die im Direktzugriffsspeicher der
Steuerteils nach Fig. 2 gespeichert sind,
Fig. 10 ein Flußdiagramm eines Exekutivpro
gramms, das vom Steuerteil nach Fig. 2 ausgeführt wird,
Fig. 11 ein Flußdiagramm eines Strukturplan
interpretierprogramms, das Teil des Exekutivprogramms
nach Fig. 10 bildet,
Fig. 12A bis 12C schematische Darstellungen von
Datenstrukturen, die vom Programm nach Fig. 11 verwendet
werden und die in dem Direktzugriffsspeicher des Steuer
teils nach Fig. 2 gespeichert sind,
Fig. 13 ein Flußdiagramm einer Leiter- oder Kon
taktplanprogramminterpretierroutine, die Teil des Pro
gramms nach Fig. 10 bildet,
Fig. 14 eine Speicherabbildung des Direktzu
griffsspeichers, der Teil des Orts-E/A-Teils nach Fig. 3
bildet,
Fig. 15 eine Speicherabbildung des Direktzugriffs
speichers, der Teil des Kommunikationsteils nach Fig. 4
bildet,
Fig. 16 ein Flußdiagramm einer 10-ms-Unterbre
chungsbedienungsroutine, die vom Steuerteil nach Fig. 2
ausgeführt wird,
Fig. 17 ein Flußdiagramm eines Schedulerpro
gramms, das vom Mikroprozessor im Kommunikationsteil
nach Fig. 4 ausgeführt wird,
Fig. 18 ein Flußdiagramm einer 10-ms-Unterbre
chungsbedienungsroutine, die vom Mikroprozessor im
Kommunikationsteil nach Fig. 4 ausgeführt wird,
Fig. 19 ein Flußdiagramm einer weiteren Unter
brechungsbedienungsroutine, die vom Mikroprozessor im
Kommunikationsteil nach Fig. 4 ausgeführt wird,
Fig. 20 ein Flußdiagramm des Hauptprogramms,
das vom Mikrocomputer ausgeführt wird, der Teil des
Kommunikationsteils nach Fig. 4 bildet,
Fig. 21 ein Flußdiagramm einer Eingabe/Ausgabe-
Gestellunterbrechungsbedienungsroutine, die vom Mikro
computer im Kommunikationsteil nach Fig. 4 ausgeführt
wird,
Fig. 22 ein Flußdiagramm einer Serienkanalunter
brechungsbedienungsroutine, die vom Mikrocomputer im
Kommunikationsteil nach Fig. 4 ausgeführt wird,
Fig. 23 eine Bilddarstellung einer beispiels
weise vom speicherprogrammierbaren Steuergerät nach
Fig. 1 gesteuerten Maschine,
Fig. 24 eine Schemadarstellung eines Struktur
planprogramms der als Beispiel dargestellten Maschine
nach Fig. 23 und
Fig. 25 eine Schemadarstellung des gespeicherten
Strukturplanprogramms, das der Darstellung nach Fig. 24
entspricht.
Nach Fig. 1 ist ein speicherprogrammierbares
Steuergerät, das von der Erfindung Gebrauch macht,
in einem Gestell 1 untergebracht, das eine Reihe von
Schlitzen zur Aufnahme von Bausteinen (Modulen) auf
weist. Die Bausteine sind an eine Mutterschaltungs
platte angeschlossen, die sich längs der Rückseite
des Gestells 1 erstreckt und dort eine rückseitige
Verbindungsebene vorsieht. Die Bausteine umfassen
einen Energieversorgungs-Baustein 2, einen Prozessor-
Baustein 3 und bis zu acht Eingabe/Ausgabe-Baustei
ne 4. Die E/A-Bausteine 4 können verschiedenartig
ausgebildet sein und beispielsweise Bausteine mit
gleichstromführenden Eingängen oder Ausgängen,
wechselstromführenden Eingängen oder Ausgängen sowie
analogen Eingängen oder Ausgängen umfassen und auch
in Steuerketten oder Regelschleifen einbezogene Posi
tionier-Bausteine sein. Bezüglich des genauen Aufbaus
des Gestells 1 wird auf die US-PS 4 151 580 verwiesen.
Der Prozessor-Baustein 3 ist über ein Kabel 5
mit einem Programmierungsgerät 6 verbunden. Das Pro
grammierungsgerät 6 enthält eine Tastatur 7, mit deren
Hilfe der Anwender Daten zur Programmierung des Pro
zessor-Bausteins 3, zum Betreiben des Prozessor-Bau
steins 3 oder zum Überwachen des Prozessorbetriebs
eingeben kann. Ein Kathodenstrahlröhren-Bildschirm 8
dient zur Anzeige alphanumerischer Daten sowie von
Kontaktplandarstellungen von Anwendersteuerprogrammen.
In ein Diskettenlaufwerk 9 kann eine Diskette einge
setzt werden, die zum Speichern von Programmen und
Daten dient. Bezüglich weiterer Einzelheiten eines
geeigneten industriellen Anschlußgeräts kann auf die
US-PS 4 326 193 verwiesen werden.
Der Prozessor-Baustein 3 kann auch über ein Kabel
10 mit einer Fern-Eingabe/Ausgabe-Einheit oder einem
Fern-E/A-Gestell 11 verbunden sein. Das Fern-E/A-Gestell
11 hat einen ähnlichen Aufbau wie das Gestell 1 und
enthält ein ähnliches Sortiment von E/A-Bausteinen 4,
die über eine eine rückseitige Verbindungsebene bilden
de Mutterschaltungsplatte mit einem E/A-Adapter-Bau
stein 12 verbunden sind. Der E/A-Adapter-Baustein ist
in der US-PS 4 413 319 beschrieben und seine Funktion
besteht darin, zwischen den E/A-Bausteinen 4 des Ge
stells 11 und dem Prozessor-Baustein 3 des Gestells 1
Daten zu übermitteln. Ähnliche Fern-E/A-Gestelle 11
können an ein Kabel 13 angeschlossen sein, das zum
E/A-Adapter-Baustein 12 führt.
Wie weiter unten noch im einzelnen erläutert wird,
gibt der Anwender ein Steuerprogramm in den Speicher
des Prozessor-Bausteins 3 über das Programmierungsge
rät 6 ein. Der Prozessor wird dann in die Betriebsart
"RUN" gebracht und führt daraufhin das gespeicherte
Steuerprogramm wiederholt aus. Dabei werden in Abhän
gigkeit vom Zustand von Eingabegeräten, die mit den
Eingabe-Bausteinen 4 verbunden sind, Ausgabegeräte be
trieben, die mit den Ausgabe-Bausteinen 4 in den Ge
stellen 1 und 11 verbunden sind. Da sich der Zustand
bestimmter Eingabegeräte mehrmals pro Sekunde ändern
kann, ist es dringendst geboten, daß der Prozessor-
Baustein 3 über eine hinreichend hohe Verarbeitungs
leistung verfügt, damit er das gespeicherte Steuerpro
gramm äußerst schnell ausführen kann. Da weiterhin
eine große Anzahl und Vielfalt von Eingabe- und Ausgabe-
Geräten mit den Gestellen 1 und 11 verbunden werden
können, so daß auch komplexe Maschinen oder Prozesse
betrieben bzw. gesteuert werden können, ist es ferner
dringendst geboten, daß das Steuerprogramm mit Hilfe
einer Programmiersprache entwickelt werden kann, die
vom Anwender leicht verstanden wird. Auf die Erreichung
dieser beiden Konstruktionsziele ist der im Rahmen der
Erfindung vorgesehene Prozessor-Baustein 3 besonders
abgestellt.
An Hand von Fig. 1A sowie 2 bis 4 wird dargelegt,
daß der Prozessor-Baustein 3 in logischer Hinsicht in
drei Teile aufgeteilt ist: Ein in Fig. 2 gezeigtes
Steuerteil 3A, ein in Fig. 4 gezeigtes Kommunikations
teil 3C und ein in Fig. 3 gezeigtes Orts-E/A-Teil 3B.
Das Steuerteil 3A ist in erster Linie verantwortlich
für die Speicherung und Ausführung des Steuerprogramms
des Anwenders. Das Kommunikationsteil 3C ist vorwie
gend verantwortlich für die Kommunikation mit dem
Programmierungsgerät 6 und den Fern-E/A-Gestellen 11.
Die Hauptfunktionen des Orts-E/A-Teils 3B sind die
Kommunikation mit den E/A-Bausteinen 4 des Gestells 1
und die Verbindung des Kommunikationsteils 3C mit dem
Steuerteil 3A. Jedes dieser Teile des Prozessor-Bau
steins 3 wird im folgenden im einzelnen erläutert.
Wie aus Fig. 2 ersichtlich, ist das Steuerteil 3A
um einen 16-Bit-Mikroprozessor 20 herum aufgebaut, der
einen 20-adrigen Adreßbus 21 und einen 8-adrigen Daten
bus 22 ansteuert. Der Mikroprozessor 20 führt in einem
Festwertspeicher 23 gespeicherte Maschinensprachanwei
sungen aus, und zwar zur Durchführung der darin ent
haltenen Funktionen. Diese Maschinensprachanweisungen
werden durch einen Programmzähler im Mikroprozessor 20
adressiert und aus der adressierten Zeile des Festwert
speichers (ROM) 23 ausgelesen, wenn eine Freigabesteuer
leitung 24 und eine Lesesteuerleitung (RD) 25 aktiv
sind. Die abgerufene Anweisung wird vom Mikroprozes
sor 20 decodiert und ausgeführt zwecks Vornahme der
angegebenen Funktion. Die in Abhängigkeit von der Aus
führung dieser Maschinensprachanweisungen oder "Firmware"
durchgeführten Funktionen als auch die Organisation
der Firmware wird unten in weiteren Einzelheiten be
schrieben. Bezüglich einer genaueren Erläuterung des
Maschinensprachanweisungssatzes als auch des Aufbaus
und der Arbeitsweise des Mikroprozessors 20 wird auf
eine Broschüre mit dem Titel "MC68008 16-Bit Micro
processor With 8-Bit Data Bus", veröffentlicht 1982
von Motorola, Inc., verwiesen.
Es können auch Daten aus anderen Elementen des
Prozessor-Bausteins 3, die mit den Bussen 21 und 22
verbunden sind, ausgelesen oder in diese Elemente
eingeschrieben werden. Das jeweilige Element wird von
einer Decodierschaltung 26 freigegeben, die Adreßda
ten vom Adreßbus 21 sowie Steuersignale von einem
Steuerbus 27 erhält, der vom Mikroprozessor 20 ange
steuert wird. Die Decodierschaltung 26 erhält auch
ein Signal von einer R/W-Steuerleitung 28, die ent
weder vom Mikroprozessor 20 oder von einem separaten
Bit-Prozessor 30 angesteuert werden kann. Die Deco
dierschaltung 26 erhält noch eine Reihe anderer Ein
gangssignale, die im einzelnen noch beschrieben wer
den. Zusätzlich zur RD-Steuerleitung 25 und zur
ROM-Freigabesteuerleitung 24 steuert die Decodier
schaltung 26 eine Schreibfreigabesteuerleitung 31,
eine RAM-Freigabesteuerleitung 32 und eine Bit-Pro
zessor-Freigabeleitung 33 an. Die übrigen Eingänge
und Ausgänge der Decodierschaltung 26 werden weiter
unten in Verbindung mit dem Orts-E/A-Teil 3B be
schrieben. Im Anhang A ist der Speicherplatz angege
ben, der von den Elementen besetzt ist, die von der
Decodierschaltung 26 freigegeben werden.
Ein Direktzugriffsspeicher (RAM) 35 ist mit den
Bussen 21 und 22 verbunden. Ein 8-Bit-Byte an Daten
kann aus einer adressierten Zeile des RAM 35 ausgelesen
oder in eine adressierte Zeile eingeschrieben werden,
wenn die RAM-Freigabesteuerleitung 32 aktiv ist. Der
RAM 35 speichert eine Vielzahl von Datenstrukturen,
die weiter unten noch im einzelnen beschrieben werden.
Die meisten dieser Strukturen bilden allerdings Teil
eines bei 37 angedeuteten Anwendersteuerprogramms oder
einer bei 38 angedeuteten Datentabelle. Das Anwender
steuerprogramm enthält ein oder mehrere Leiter(ladder)-
oder Kontaktplanprogramme, die aus Anweisungen beste
hen, mit denen der Anwender speicherprogrammierbarer
Steuergeräte vertraut ist und die über das Programmie
rungsgerät 6 in den RAM 35 geladen werden. Das Anwen
dersteuerprogramm 37 enthält auch ein Strukturplan
programm (structure chart program), das einmalig ist,
und im einzelnen weiter unten noch beschrieben wird.
Der Mikroprozessor 20 führt das Strukturplanprogramm
aus und, in Abhängigkeit von dessen Typ oder Art, wird
eine Leiter- oder Kontaktplan-Programmanweisung ent
weder vom Mikroprozessor 20 oder vom Bit-Prozessor 30
ausgeführt, wie es noch im einzelnen weiter unten
beschrieben wird.
Bei der Ausführung einer Steuerprogrammanweisung
benutzt der Mikroprozessor 20 in der Anweisung einen
Operationscode, um eine entsprechende Maschinensprach
interpreterroutine zu lokalisieren, die im ROM 23
gespeichert ist. Der Mikroprozessor 20 führt somit
Leiterprogrammanweisungen dadurch aus, daß er ent
sprechende Interpreterroutinen ausführt, die im ROM
23 gespeichert sind. Diese Interpretationstechnik
zur Ausführung von Leiterprogrammen ist in den
US-PSn 4 165 534, 4 282 584 und 4 443 865 beschrieben.
Der Bit-Prozessor 30 ist eine maßgeschneiderte
integrierte Schaltung, die im Tandem mit dem Mikropro
zessor 20 arbeitet, um ausgewählte Anweisungen der Lei
terprogrammanweisungen direkt auszuführen. Der Mikroprozessor
20 beginnt mit der Ausführung des Leiterpro
gramms (d. h. der Programmabfrage oder Programmabtastung),
überläßt jedoch unmittelbar danach die Leitung oder Füh
rung dem Bit-Prozessor 30. Dieser Führungstransfer wird
dadurch erreicht, daß die Adresse der Leiterprogramman
weisung in ein Leiterprogrammzählerregister 40 im Bit-
Prozessor 30 eingeschrieben wird. Der Bit-Prozessor 30
trennt dann den Mikroprozessor 20 von den Bussen 21,
22 und 27 dadurch, daß er über eine Steuerleitung 41
einen Busanforderungsanschluß BR besetzt. Der
Bit-Prozessor 30 ruft die Leiterprogrammanweisung ab,
führt sie aus und ruft dann nachfolgende Leiterpro
grammanweisungen ab und führt sie so lange aus, bis
eine Anweisung auftritt, die er nicht ausführen kann.
Jetzt wird die zuvor besetzte Busanforderungslei
tung 41 freigesetzt, und der Mikroprozessor 20 über
nimmt wieder die Führung oder Kontrolle der Programm
ausführung. Der Mikroprozessor 20 liest den Inhalt
des Leiterprogrammzählerregisters 40 in seinen eigenen
Leiterprogrammzähler und geht dann dazu über, die an
gegebene Leiterprogrammanweisung abzurufen und auszu
führen. Obgleich der Bit-Prozessor 30 zur Ausführung
von nur einigen wenigen "bit-orientierten" Anweisun
gen ausgelegt ist, bestehen 75% bis 95% typischer
Anwenderleiterprogramme aus solchen Anweisungen. Das
Ergebnis davon ist, daß durch die Ausführung dieser
wenigen Anweisungsarten oder Anweisungstypen in dem
dafür besonders geeigneten, mit hoher Geschwindigkeit
arbeitenden Bit-Prozessor 30 die gesamte Programmabtast-
oder Programmabfragezeit beträchtlich reduziert wird.
Der Bit-Prozessor 30 enthält auch eine Echtzeit
uhr (in Fig. 2 nicht gezeigt), die in regelmäßigen
Abständen ein Unterbrechungssignal an eine Steuerlei
tung 45 legt. Diese Unterbrechungsanforderung und weitere
Unterbrechungsanforderungen, die an Leitungen 46
und 47 auftreten, werden den Eingängen eines Priori
tätscodierers 48 zugeführt. Der Prioritätscodierer 48
erzeugt eine 2-Bit-Unterbrechungsanforderung für den
Mikroprozessor 20 an Leitungen 49 und zeigt über eine
Leitung 50 dem Bit-Prozessor 30 eine Unterbrechungs
anforderung an. Hat der Bit-Prozessor 30 gerade die
Kontrolle oder Führung bezüglich einer Unterbrechungs
anforderung, verzichtet er auf diese Führung oder Kon
trolle zugunsten des Mikroprozessors 20 in einer Weise,
wie sie bereits oben beschrieben worden ist. Die vom
Bit-Prozessor 30 hervorgerufene Unterbrechung wird zum
Implementieren einer Echtzeitunterbrechungsanweisung
verwendet. Die an der Leitung 46 auftretende Unterbre
chung stammt vom Kommunikationsteil 3C des Prozessor-
Bausteins 3 und wird unten noch im einzelnen beschrie
ben. Die Unterbrechung an der Leitung 47 erscheint,
wenn gerade ein Energieverlust auftritt und der Mikro
prozessor 20 als Antwort darauf gewisse Notfallaktionen
durchführt, die sicherstellen sollen, daß das System
behutsam angehalten wird.
Wie insbesondere aus Fig. 3 ersichtlich, ist der
Orts-E/A-Teil 3B des Prozessor-Bausteins 3 mit dem
Adreßbus 21, dem Datenbus 22 sowie den Steuerleitungen
25 und 31 im Steuerteil 3B verbunden. Der Orts-E/A-
Teil 3B ist rund um einen 16-adrigen gemeinsamen Adreß
bus 101 und einen 8-adrigen gemeinsamen Datenbus 102
aufgebaut. Der gemeinsame Adreßbus 101 kann vom Adreß
bus 21 angesteuert werden, wenn ein Satz von Tri-State-
Toren 103 freigegeben wird, und Daten können zwischen
dem gemeinsamen Datenbus 102 und dem Datenbus 22 über
mittelt werden, wenn bidirektionale Tore 104 freigege
ben werden. Die Richtung des Datentransfers wird durch
den Zustand der RD-Steuerleitung 25 bestimmt, die von
der Decodierschaltung 26 im Steuerteil 3A angesteuert
wird.
In ähnlicher Weise verbindet eine Gruppe von
Tri-State-Toren 105 den gemeinsamen Adreßbus 101 mit
einem Adreßbus 201 im Kommunikationsteil 3C, und eine
Gruppe von bidirektionalen Toren 106 verbindet den
gemeinsamen Datenbus 102 mit einem Datenbus 202. Der
gemeinsame Adreßbus 101 kann daher auch vom Kommuni
kationsteil 3C des Prozessor-Bausteins 3 angesteuert
werden, und es können Daten zwischen den Datenbussen
102 und 202 in einer Richtung transferiert werden,
die durch eine RE-Steuerleitung 203 bestimmt wird.
Eine Schiedsstelle oder Arbiterschaltung 110 be
stimmt, welcher Teil des Prozessor-Bausteins 3 zu den
gemeinsamen Bussen 101 und 102 Zugriff haben darf. Die
Schaltung 110 kann ein Anforderungssignal vom Steuer
abschnitt 3A über eine REQ-Leitung 111 (Decodierschal
tung 26 in Fig. 2) oder eine Anforderung vom Kommuni
kationsteil 3C über eine CREQ-Steuerleitung 112 er
halten. Die Arbiterschaltung gewährt zu einer Zeit
jeweils einem der Teile die Anforderung, und zwar da
durch, daß sie entweder an einer GRANT-Leitung 113
oder an einer CGRANT-Leitung 114 ein Signal erzeugt.
Diese Signale werden beide an Eingänge der Decodier
schaltung 26 im Steuerteil 3A (Fig. 2) gelegt, und sie
werden dazu verwendet, die jeweils betreffenden Tore
103, 104 und 120 oder die Tore 105, 106 und 121 frei
zugeben. Auf diese Weise kann entweder das Steuerteil 3A
oder das Kommunikationsteil 3C des Prozessor-Bausteins
Zugriff und Kontrolle zu bzw. über das Orts-E/A-Teil 3B
haben.
Das Orts-E/A-Teil enthält einen Direktzugriffsspei
cher (RAM) 125, der mit dem gemeinsamen Adreßbus 101
und mit dem gemeinsamen Datenbus 102 verbunden ist. Der
gemeinsame RAM 125 speichert Daten, die zwischen den
beiden anderen Teilen des Prozessor-Bausteins 3 hin und
her geleitet werden, und enthält eine Fern-E/A-Bild
tabelle 126 sowie Kommunikationsdaten 127. Daten kön
nen in eine adressierte Zeile des gemeinsamen RAM 125
eingeschrieben oder aus einer adressierten Zeile aus
gelesen werden, wenn der RAM 125 über eine Adreßbus
ader SA11 freigegeben wird und eine Schreib-Steuer
leitung 128 aktiv ist. Die Schreib-Steuerleitung (WRITE)
128 wird angesteuert vom Prozessorteil 3A oder 3C, je
nachdem, welchem Teil die Kontrolle über die gemeinsa
men Busse 101 und 102 gewährt worden ist, und der ge
meinsame RAM 125 besetzt tatsächlich denselben Adreß
platz in jedem dieser Teile.
Wie aus Fig. 3 ersichtlich, enthält das Orts-E/A-
Teil 3B ein 8-Bit-Ausgangslatch oder eine 8-Bit-Ausgangs
verriegelung 130 und einen 16-Bit-Eingangsmultiplexer
131. Die Ausgangsverriegelung wird freigegeben von einer
Adreßbusader SA13, und der Zustand der Datenbusader SD0
kann in einen der acht Ausgänge geschrieben werden, und
zwar wie es vom Zustand der acht Adreßbusadern SA0 bis
SA2 ausgewählt wird. Einer dieser Ausgänge steuert die
Unterbrechungssteuerleitung 46 an, die mit dem Priori
tätscodierer 48 (Fig. 2) verbunden ist, und ein anderer
Ausgang steuert eine Unterbrechungssteuerleitung 246 an,
die eine ähnliche Unterbrechung im Kommunikationsteil 3C
hervorruft. Durch Einschreiben in das Ausgangslatch
oder die Ausgangsverriegelung 130 kann jedes Teil 3A
oder 3C des Prozessor-Bausteins 3 das andere Teil,
oder gar sich selbst, unterbrechen. Ein dritter Aus
gang 132 der Verriegelung 130 steuert eine E/A-Rück
setzleitung an, die mit jedem E/A-Baustein 4 im Orts
gestell 1 verbunden ist. Dieser Ausgang kann betätigt
werden, um alle Stell- oder Betätigungsvorrichtungen
zu sperren, die vom Ortsgestell 1 aus gesteuert
werden.
Der Eingangsmultiplexer wird von einer Adreßbus
ader SA14 freigegeben, und der Zustand von zwei belie
bigen Eingängen der sechzehn Eingänge wird in Überein
stimmung mit dem Auswählcode an den Adreßbusadern SA0
bis SA2 auf die Datenbusadern SD0 bis SD1 gelesen.
Diese Eingänge überwachen die Batteriegangreserve und
eine Vielzahl verschiedener Schalter, die alternative
Funktionen angeben, welche implementiert werden können.
Wie es ferner aus Fig. 3 ersichtlich ist, sind die
gemeinsamen Busse 101 und 102 über einen 1-aus-16-Deco
dierer 135 und eine Gruppe bidirektionaler Tore 136 mit
der rückseitigen Ebene des Gestells 1 verbunden. Ein
8-Bit-Byte an Daten kann in irgendeinen der 16 E/A-
Schlitze im Gestell 1 eingeschrieben oder aus einem
dieser Schlitze ausgelesen werden, wenn die Adreßbus
ader SA12 freigegeben wird. Der adressierte Schlitz wird
identifiziert durch den Auswählcode an den Adreßbusadern
SA1 bis SA4. Es gibt zwei E/A-Schlitze in jedem der
acht E/A-Bausteine 4, die im Gestell 1 angeordnet sind,
und es kann daher entweder das Steuerteil 3A oder das
Kommunikationsteil 3C des Prozessor-Bausteins 3 aus
einem beliebigen von ihnen Daten auslesen oder in einen
beliebigen von ihnen Daten einschreiben.
Das Orts-E/A-Teil 3B des Prozessor-Bausteins 3
dient als Verbindung zwischen den beiden anderen Teilen.
So liest das Steuerteil 3A beispielsweise periodisch
den Zustand der mit dem Ortsgestell 1 verbundenen Ein
gabevorrichtungen, bringt mit diesen Informationen
seine Eingabe/Ausgabe-Bildtabelle 38 im RAM 35 auf den
neuesten Stand, bringt die mit dem Ortsgestell 1 ver
bundenen Ausgabevorrichtungen auf den neuesten Stand,
schreibt Ausgabedaten von seiner Datentabelle 38 in
die Eingabe/Ausgabe-Bildtabelle 126 und bringt mit den
Eingängen von der Eingabe/Ausgabe-Bildtabelle 126 seine
Datentabelle 38 auf den neuesten Stand. Das Kommunika
tionsteil 3C bringt den Eingabeteil der E/A-Bildtabelle
126 im gemeinsamen RAM 125 mit dem Zustand oder Status
der mit den Fern-E/A-Gestellen 11 verbundenen Eingabe
vorrichtungen periodisch auf den neuesten Stand und
liest den Ausgabeabschnitt der E/A-Bildtabelle 126 zur
Übertragung zu den mit den Fern-E/A-Gestellen 11 ver
bundenen Ausgabevorrichtungen aus. Programmierungsgerät
nachrichten, die vom Kommunikationsteil 3C empfangen
werden, werden im Kommunikationsabschnitt 127 des ge
meinsamen RAM 125 gespeichert und irgendwelche Antwort
nachrichten vom Steuerteil 3A werden daraus ausgelesen.
Wie es im einzelnen weiter unten noch beschrieben wird,
unterbricht das Kommunikationsteil 3C alle 10 ms den
Betrieb des Steuerteils 3A, und als Teil seiner Unter
brechungsbedienungsroutine liest das Steuerteil 3A
irgendwelche Nachrichten aus, die für es im gemeinsamen
RAM 125 zurückgelassen worden sind.
Wie es insbesondere aus Fig. 4 hervorgeht, ist das
Kommunikationsteil 3C des Prozessor-Bausteins 3 um
einen 8-Bit-Mikroprozessor 205 herum aufgebaut, der den
16-adrigen Adreßbus 201 und den 8-adrigen Datenbus 202
ansteuert. Der Mikroprozessor 205 arbeitet in Beantwor
tung von Maschinensprachprogrammanweisungen, die in
einem Festwertspeicher (ROM) 206 gespeichert sind, und
führt auf diese Weise die meisten der Kommunikations
teilfunktionen aus. Bei dem Mikroprozessor 205 kann es
sich um ein Bauelement vom Typ "Z80" von Zilog, Inc.
handeln. Bezüglich des genauen Aufbaus und Befehlssatzes
dieses Bauelements wird verwiesen auf "Microcomputer
Components Data Book" veröffentlicht 1981 von Zilog, Inc.
Erzeugt der Mikroprozessor 205 einen Adreßcode am
Bus 201, in welchem die Ader AD15 aktiv ist, erfolgt
über die CREQ-Steuerleitung 112 ein Aufruf zum Zugriff
zum Orts-E/A-Teil 3B. Wie oben ausgeführt, gelangt dieser
Aufruf zur Arbiterschaltung 110 im Orts-E/A-Teil 3B
(Fig. 3) und zur Decodierschaltung 26 im Steuerteil 3A
(Fig. 2). Die Decodierschaltung 26 spricht darauf da
durch an, daß sie ein Signal an einer Wartesteuerlei
tung (WAIT) 207 erzeugt, die den Mikroprozessor 205
in einen Wartezustand bringt, bis die Arbiterschal
tung 110 den Zugriff gewährt. Sobald der Zugriff ge
währt ist, entfernt die Decodierschaltung das Signal
WAIT von der Wartesteuerleitung 207, und der Mikro
prozessor 205 kann dann Speicherlese- und Speicher
schreiboperationen an im gemeinsamen RAM 125 gespei
cherten Daten vornehmen. In seinem Betrieb tritt nur
eine vorübergehende Pause auf, wenn der gemeinsame
RAM 125 bereits vom Steuerteil 3A unter Zugriff steht.
Eine Hauptfunktion des Kommunikationsteils 3C
besteht darin, die beiden Serienkanäle 5 und 10 mit
Datenstrukturen in dem gemeinsamen RAM 125 zu verbin
den. Hierbei handelt es sich um Hochgeschwindigkeits
kanäle, und um die Handhabung von Unterbrechungen,
die durch sie hervorgerufen werden, zu erleichtern,
steht ein 8-Bit-Mikrocomputer 210 zur Verfügung. Bei
dem Mikrocomputer 210 kann es sich um ein Bauelement
vom Typ "Z8" von Zilog, Inc. handeln, und dieser Mikro
computer enthält einen nicht dargestellten intern mas
kierten Festwertspeicher (ROM), der Maschinensprach
anweisungen speichert, die seinen Betrieb anweisen.
Der Mikrocomputer 210 teilt einen 8K mal 8-Bit-Direkt
zugriffsspeicher (RAM) 211 mit dem Mikroprozessor 205,
und seine Hauptfunktion besteht darin, alle Unterbre
chungen von den Serienkanälen 5 und 10 zu handhaben
und Daten zwischen diesen Kanälen 5 und 10 sowie dem
RAM 211 zu übermitteln. Der Mikroprozessor 205 trans
feriert dann diese Daten zwischen dem RAM 211 und dem
gemeinsamen RAM 125 im Orts-E/A-Teil 3B.
Wie ebenfalls aus Fig. 4 ersichtlich, ist eine
Zähler/Zeitgeber-Schaltung (CTC) 208 mit den Bussen
201 und 202 sowie mit einem Unterbrechungsanschluß 209
am Mikroprozessor 205 verbunden. Die CTC 208 erhält
Unterbrechungsaufrufe vom Orts-E/A-Teil 3B über eine
Steuerleitung 246 sowie Unterbrechungsaufrufe vom Mikro
prozessor 210 über eine Steuerleitung 212. Die CTC 208
kann an einer Steuerleitung 213 einen Unterbrechungs
aufruf erzeugen, und sie ist such als Zeitgeber ausge
legt, der an der INT-Leitung 209 alle 10 ms einen Un
terbrechungsaufruf erzeugt. Als Antwort auf einen Unter
brechungsaufruf von der CTC 208 liest der Mikroprozessor
205 eine Vektorgröße von der CTC 208, die den Mikro
prozessor 205 zu einer im ROM 206 gespeicherten geeig
neten Unterbrechungsbedienungsroutine dirigiert.
Der Mikroprozessor 205 ist mit dem RAM 211 über
einen Satz aus dreizehn Bustreiberschaltungen 215 sowie
einen Satz aus acht bidirektionalen Datentoren 216 ver
bunden. Wird der RAM 211 vom Mikroprozessor 205 adres
siert, erfolgt über die Adreßbusader AD15 und eine
MREQ-Steuerleitung 218 eine Signalisierung einer
Schiedsstelle- oder Arbiterschaltung 217. Die Arbiter
schaltung 217 bringt den Mikroprozessor 205 über eine
Steuerleitung 219 in einen Wartezustand, bis der Zugriff
zum RAM 211 gewährt wird. In diesem Augenblick werden
die Tore 215 und 216 durch eine Steuerleitung 220 frei
gegeben, und der Mikroprozessor 205 wird aus seinem
Wartezustand entlassen, so daß er entweder einen Lese-
oder Schreibzyklus mit dem RAM 211 vervollständigen
kann. Die Mikroprozessorschreibfreigabesteuerleitung
(WE) 204 ist mit dem RAM 211 über ein Tri-State-Tor 221
verbunden, um entweder eine Lese- oder Schreiboperation
auszuwählen, und diese selbe Steuerleitung steuert die
Richtung des Datenflusses durch die Tore 216.
Der Mikrocomputer 210 steuert einen 8-Bit-Daten
bus 225 an, der verbunden ist mit einem Adreßlatch
oder einer Adreßverriegelung 226, einer Serienkommuni
kationssteuergerätschaltung (SCC) 227 und einer Gruppe
aus acht bidirektionalen Datentoren 228. Ferner steuert
der Mikrocomputer 210 acht höherwertige Adreßadern oder
Adreßleitungen an, die mit niedrigerwertigen Adern oder
Leitungen vereint werden, welche von der Adreßverriege
lung 226 angesteuert werden, und zwar unter Ausbildung
eines Adreßbusses 230. Ein typischer Lese- oder Schreib
zyklus läuft derart ab, daß die niedrigerwertigen Adreß
bits in der Adreßverriegelung 226 gespeichert werden,
wenn eine Adreßtaktleitung 231 aktiv ist, und dann die
höherwertigen Bits am Adreßbus 230 erzeugt und Daten
über den Datenbus 225 übermittelt werden.
Der Mikrocomputer 210 kann zum RAM 211 in ähnli
cher Weise Zugriff erlangen wie der Mikroprozessor 205.
Ist eine Adreßbusader MA14 aktiv, erfolgt ein Aufruf
für einen Zugriff zum RAM 211 an die Arbiterschaltung
217. Wird der Zugriff gewährt, ist die Steuerleitung 235
aktiv, und eine Gruppe von Bustreiberschaltungen 236
sowie die bidirektionalen Datentore 228 werden freige
geben, um die Busse 230 und 225 mit dem RAM 211 zu ver
binden. Es wird ein Lese- oder Schreibzyklus ausgeführt,
wie es durch den Status oder Zustand einer WT-Steuerlei
tung 237 bestimmt wird, die über ein Tri-State-Tor 238
mit dem RAM 211 verbunden ist.
Bei der SCC 227 kann es sich um eine handelsübliche
integrierte Schaltung von Zilog, Inc. handeln. Sie dient
dem Zweck, die beiden Serienkanäle 5 und 10 zu bedienen.
Sobald ein Datenbyte an einem der Kanäle 5 oder 10 auf
tritt, unterbricht die SCC 227 den Mikrocomputer 210
über eine Leitung 240, und der Mikrocomputer 210 spricht
in einer solchen Weise darauf an, daß er einen Vektor aus
der SCC 227 ausliest, der auf die geeignete Unterbrechungsserviceroutine
deutet, die im internen ROM des
Mikrocomputers gespeichert ist. Das auftretende oder
empfangene Datenbyte kann mit anderen empfangenen Daten
kombiniert werden, um eine vom Programmierungsgerät 6
stammende Nachricht zu bilden, oder es kann einen Block
aus Statusinformation bilden, die von einem E/A-Gestell
11 stammt. In beiden Fällen wird die Information vom
Mikrocomputer 210 in die geeignete Form gebracht und
in eine E/A-Bildtabelle 241 oder einen Nachrichtendaten
abschnitt 242 des RAM 211 geschrieben. In ähnlicher
Weise kann der Mikrocomputer 210 Daten aus dem RAM 211
auslesen und sie in eine solche Form bringen, daß sie
zur Übertragung entweder über den Serienkanal 5 oder den
Serienkanal 10 geeignet sind. Die Art und Weise, wie
Information zwischen den Serienkanälen 5 und 10 sowie
dem Mikroprozessor 205 übertragen wird, wird im folgen
den noch beschrieben.
Die meisten Bauelemente und Baukomponenten, die
in den drei Teilen des oben beschriebenen Prozessor-
Bausteins 3 verwendet werden, sind im Handel von einer
Reihe von Bezugsquellen erhältlich. Eine genaue Liste
dieser Baukomponenten einschließlich ihrer Bezugsquellen
findet man im Anhang B. Eine Ausnahme bildet allerdings
der Bit-Prozessor 30 im Steuerteil 3A. Diese Baukompo
nente ist eine speziell hergestellte integrierte Schal
tung, die in dieser Form im Handel nicht erhältlich ist.
Der Bit-Prozessor 30 ist allerdings aus Elementen aufge
baut, die funktionsmäßig mit handelsüblichen Elementen
äquivalent sind.
Aus Fig. 2 und 5A geht hervor, daß der Bit-Prozes
sor 30 rund um eine Steuerschaltung 400 aufgebaut ist,
die über den Adreßbus 21 adressiert werden kann, wenn
die Freigabeleitung 33 aktiv ist. Der 16-Bit-Mikropro
zessor 20 kann die Führung oder Kontrolle an den Bit-
Prozessor 30 durch Erzeugen einer "Transfer"-Adresse
übertragen, die von der Steuerschaltung 400 decodiert
wird, um ein D-Flipflop 401 über seine Löschleitung 405
zurückzusetzen. Vom Flipflop 401 wird dann eine Busanfor
derung an der Steuerleitung 41 erzeugt, und der 16-Bit-
Mikroprozessor 20 spricht darauf dadurch an, daß er
sich selbst von den Bussen 21 und 22 abtrennt und an
einer Busbewilligungssteuerleitung 402 ein Signal er
zeugt. Ein Paar in Kaskade geschalteter Flipflops 403
und 404 verriegeln dieses Signal und erzeugen ein Frei
gabesignal an einer Steuerleitung 406, die zur Steuer
schaltung 400 führt. Der Mikroprozessor 20 wird auf
diese Weise vom weiteren Betrieb ausgeschlossen, und
der Bit-Prozessor 30 beginnt mit seinem aktiven Betrieb.
Sobald die Steuerschaltung 400 freigegeben worden
ist, erzeugt sie Zeitgabesignale für verschiedenartige
Bit-Prozessorelemente, die jetzt beschrieben werden
sollen. Diese Zeitgabesignale erzeugen drei voneinander
verschiedene Zyklen C1, C2 und C3, die zum Ausführen
der Funktionen des Bit-Prozessors erforderlich sind.
Der Zyklus C1 ist ein "Lesewort" Zyklus, in welchem die
Kontaktplanprogrammanweisung, die vom Kontaktplansteuer
programmzähler 40 angezeigt wird, vom RAM 35 abgerufen
wird. In Abhängigkeit vom Operationscode der abgerufe
nen Anweisung kann dann entweder ein Zyklus C2 oder ein
Zyklus C3 durchgeführt werden. Der Zyklus C2 ist ein
"Lese-Modifizier-Schreib"-Zyklus, in welchem ein Ope
rand aus der Datentabelle 38 des RAM 35 ausgelesen wird,
ein Bit darin geändert wird und dann die geänderten
Daten wieder in die Datentabelle 38 eingeschrieben
werden. Der Zyklus C3 ist ein "Lesetest"-Zyklus, in
welchem ein Operand aus der Datentabelle 38 ausgelesen
wird und dann darin ein Bit von einer Logikeinheit 407
getestet oder überprüft wird. Zeitablaufdiagramme für
jeden dieser Zyklen sind in Fig. 5C dargestellt.
Der Bit-Prozessor 30 behält die Führung oder
Kontrolle über das Steuerteil 3A und fährt damit fort,
das Kontaktplanprogramm auszuführen, solange irgendeine
der folgenden Kontaktplananweisungen vom Anwendersteuer
programm 37 abgerufen wird.
XIC - "Prüfe-auf-geschlossen"-Anweisung. Über
prüft wird ein Bit in der Datentabelle 38 auf
eine logische Eins, die einem geschlossenen
Kontakt bei entsprechender Stromeinspeisung ent
spricht. Der Status der Sprosse oder Querverbindung
wird auf "falsch" gesetzt, wenn das Bit nicht
"eingeschaltet" ist. Andernfalls bleibt der Status
unverändert.
XIO - "Prüfe-auf-geöffnet"-Anweisung. Überprüft
wird ein Bit in der Datentabelle 38 auf eine logi
sche Null, die einen geöffneten Kontakt bei ent
sprechender Stromeinspeisung darstellt. Der Status
der Sprosse oder Querverbindung wird auf "falsch"
gesetzt, wenn das Bit nicht "ausgeschaltet" ist.
Andernfalls wird der Status nicht verändert.
OTE - "Errege-Ausgabe"-Anweisung. Gesetzt wird ein
Bit in der Datentabelle 38, wenn der Status der
Sprosse oder Querverbindung "wahr" ist. Andernfalls
wird das Bit zurückgesetzt. Der Sprossenstatus wird
wieder durch einen "wahren" Zustand initialisiert.
OTL - "Verriegele-Ausgabe"-Anweisung. Gesetzt wird
ein Bit in der Datentabelle 38, wenn der Status der
Sprosse oder Querverbindung "wahr" ist. Andernfalls
bleibt das Bit unverändert. Der Sprossenstatus wird
wieder durch einen "wahren" Zustand initialisiert.
OTU - "Entriegele-Ausgabe"-Anweisung. Zurückgesetzt
wird ein Bit in der Datentabelle 38, wenn der Status
der Sprosse oder Querverbindung "wahr" ist. Andern
falls bleibt das Bit unverändert. Der Sprossenstatus
wird wieder durch einen "wahren" Zustand initiali
siert.
BST - "Verzweigungsstart"-Anweisung. Durchgeführt
wird die erforderliche Stapelung des gegenwärtigen
Status in ein internes "Stapel"-Register, um die
Verarbeitung paralleler logischer Pfade zu ermögli
chen.
NXB - "Nächste-Verzweigung"-Anweisung. Identifiziert
wird der Beginn eines anderen parallelen logischen
Pfads, und der gegenwärtige Sprossenstatus wird
erneut initialisiert.
BND - "Verzweigungsenden"-Anweisung. Durchgeführt
wird die erforderliche Entstapelung des Status
und ein auf den neuesten Stand Bringen des Haupt
sprossenstatus am Ende paralleler logischer Pfade.
ADX - "Adreßausdehnung"-Anweisung. Vorgesehen wird
zusätzlicher Adressierplatz über die normalen 256
Wörter hinaus, die von den standardisierten acht
Bits der Operandenadresse zur Verfügung gestellt
werden, die den obigen OP-Codes folgt. Dies wird
erreicht durch Verwendung des zweiten Byte dieses
OP-Code als die Daten für das hohe Byte der Operan
denadresse für die nachfolgende Anweisung.
Wie aus Fig. 5A ersichtlich, wird beim Abruf einer
anderen Steuerprogrammanweisung als den obigen Anwei
sungen eine Steuerleitung 408 am Ausgang der Logikein
heit 407 freigegeben. Die Folge davon ist, daß am Ende
des gegenwärtigen Zyklus C1 das D-Flipflop 401 zurück
gesetzt wird und das Busanforderungssignal von der
Steuerleitung 41 verschwindet. Die Flipflops 403 und 404
werden ebenfalls gelöscht und die Steuerschaltung 400
wird über die Steuerleitung 406 in eine passive Betriebs
art versetzt. Die Führung oder Kontrolle wird daher zu
rück auf den 16-Bit-Mikroprozessor 20 übertragen, der
dann durch Freigabe oder Betätigung der Steuerleitung 33
aus Elementen des Bit-Prozessors 30 auslesen kann oder
in Elemente dieses Prozessors einschreiben kann.
Ferner zeigt Fig. 5A, daß die Bauelemente des Bit-
Prozessors 30 zusätzlich zum Kontaktplanprogrammzähler 40
und zur Logikeinheit 407 einen Satz aus sechzehn Adreß
bustoren 410 und zwei Sätze aus acht Datenbustoren 411
und 412 enthalten, die mit dem Kontaktplanprogrammzähler
40 verbunden sind. Der 16-Bit-Mikroprozessor 20 kann zwei
aufeinanderfolgende Bytes von Daten in den Kontaktplan
programmzähler 40 einschreiben, und diese Datenbytes
nehmen eine solche Voreinstellung des Zählers 40 vor,
daß er den geeigneten Punkt im Kontaktplanprogramm adres
siert. Der Zähler 40 wird in dieser Weise voreingestellt,
wenn jeweilige Steuerleitungen 413 und 414 während
Mikroprozessorschreibzyklen aktiv sind. Der Ausgang
des Kontaktplanprogrammzählers 40 wird während jedes
Zyklus C1 der Steuerschaltung 400 an den Adreßbus 21
dadurch gelegt, daß über eine Steuerleitung 415 die
Adreßbustore 410 freigegeben werden. Der Steuerpro
grammzähler 40 wird inkrementiert durch die Steuer
schaltung 400 über eine Steuerleitung 416 in der Mitte
und am Ende des C1-Zyklus. Wenn die Führung oder Kon
trolle zurück an den 16-Bit-Mikroprozessor 20 gegeben
wird, kann dieser Prozessor die Inhalte des Kontakt
planprogrammzählers 40 dadurch auslesen, daß über je
weilige Steuerleitungen 417 und 418 die Datenbustore
411 und 412 aufeinanderfolgend freigegeben werden. Wie
oben angedeutet, werden die beiden 8-Bit-Datenbytes,
die aus dem Zähler 40 ausgelesen worden sind, vom Mi
kroprozessor 20 dazu verwendet, um die nächste Kontakt
planprogrammanweisung abzurufen, wenn der Mikroprozessor
20 die Kontrolle und Führung wieder übernimmt.
Während des C1-Zyklus wird die vom Zähler 40 be
zeichnete Kontaktplanprogrammanweisung aus dem RAM 35
abgerufen. Jede solche Anweisung enthält einen Opera
tionscode, der der Logikeinheit 407 zugeführt wird, und
alle Anweisungen außer den Anweisungen BST, NXB und BND
enthalten einen begleitenden Operanden oder eine be
gleitende Operandenadresse. Lautet der Operationscode
"ADX", ist er von einem Operanden begleitet, der aus
dem RAM 35 ausgelesen und in einem ADX-Latch oder einer
ADX-Verriegelung 420 gespeichert wird, wenn eine Steuer
leitung 421 von der Steuerschaltung 400 betätigt wird.
Andernfalls wird eine begleitende Operandenadresse aus
dem RAM 35 ausgelesen und in einem Operandenadreßlatch
oder einer Operandenadreßverriegelung 422 gespeichert,
wenn eine Steuerleitung 423 von der Steuerschaltung 400
betätigt wird. Während des nachfolgenden C2- oder C3-
Zyklus wird die 16-Bit-Adresse, die von der ADX-Verriegelung
420 und der Operandenadreßverriegelung 422
erzeugt wird, dem Adreßbus 21 über einen Satz von Toren
424 zugeführt, die über eine Steuerleitung 425 freigege
ben werden. Der gewünschte Operand, der in der Daten
tabelle 38 des RAM 35 gespeichert ist, kann somit
adressiert und bearbeitet werden, und zwar vom Bit
prozessor 30.
Wie aus Fig. 5A ersichtlich, enthält der Bit-
Prozessor 30 auch einen Echtzeitzähler 426, der mit dem
Datenbus 22 verbunden ist. Der Echtzeitzähler wird vom
16-Bit-Mikroprozessor 20 voreingestellt, der in ihn
dadurch eine Zahl einschreibt, daß von der Steuerschal
tung 400 eine Steuerleitung 427 freigegeben wird. Der
Echtzeitzähler 426 wird dann von einem an einer Lei
tung 428 auftretenden Zeit- oder Taktsignal so lange
dekrementiert, bis er den Zählwert Null erreicht. An
der Leitung 45, die wie bereits erwähnt zum Prioritäts
codierer 48 (Fig. 2) führt, erscheint dann ein Unter
brechungsaufrufsignal. Der Echtzeitzähler 426 wird mit
einem Wert voreingestellt, der eine solche Unterbre
chung in regelmäßigen Abständen hervorruft.
Fig. 5A und 5B zeigen insbesondere, daß die
Logikeinheit 407, die einen Teil des Bit-Prozessors 30
bildet, den Operationscodeanteil jeder Steuerprogramm
anweisung bei einem Latch oder einer Verriegelung 440
empfängt. Die Verriegelung 440 wird über eine Leitung
441 während des C1-Zyklus von der Steuerschaltung 440
freigegeben. Fünf Bits des Operationscode werden de
codiert, um die von der Logikeinheit 407 vorzunehmende
Operation anzuzeigen, und drei Bits werden als Bit-
Zeiger-Code (bit-pointer code) verwendet, um in dem zu
bearbeitenden Operanden ein Bit aus acht Bits auszu
wählen. Ein 3-auf-8-Decodierer 442 und ein 2-auf-4-
Decodierer 443 werden zum Decodieren des Operationscode
verwendet, und die resultierenden Ausgänge werden
über einen Steuerbus 444 an einen booleschen Prozessor
445 gelegt. Der boolesche Prozessor ist dem in der
US-PS 4 165 534 beschriebenen booleschen Prozessor
ähnlich. Er empfängt als Eingangsdatum ein Einzelbit
an einem Anschluß 446 während der Ausführung einer
XIC- oder XIO-Anweisung, und er erzeugt als Ausgang ein
Einzelbit an einem Anschluß 447, wenn eine OTE-,
OTL- oder OTU-Anweisung ausgeführt wird. Der Zustand
des booleschen Prozessors 445 kann auf den Datenbus 22
vom 16-Bit-Mikroprozessor 20 ausgelesen werden, wenn
die Steuerschaltung 400 eine Freigabeleitung 448 akti
viert. Der Zustand kann in den booleschen Prozessor
445 wieder eingespeichert werden, wenn eine Steuerlei
tung 449 aktiviert wird.
Wird von der OP-Code-Verriegelung 440 ein Opera
tionscode empfangen, bei dem es sich nicht um einen von
denjenigen Codes handelt, die vom Bit-Prozessor 30 aus
führbar sind, wird vom 3-auf-8-Decoder 442 ein Signal
an der Steuerleitung 408 erzeugt. Wenn dies geschieht,
wird, wie oben beschrieben, der 16-Bit-Mikroprozessor 20
wachgerufen, und der Bit-Prozessor 30 wird in den passi
ven Betriebszustand überführt. Typischerweise ruft dann
der 16-Bit-Mikroprozessor 20 dieselbe Anweisung vom Kon
taktplanprogramm auf, liest den Zustand des booleschen
Prozessors 445 in eines seiner internen Register und
führt die Kontaktplanprogrammanweisung durch Abbildung
(mapping) zu einer im ROM 23 gespeicherten, geeigneten
Interpretierroutine aus. Nach Beendigung schreibt der
16-Bit-Mikroprozessor 20 den Zustand seines interen Re
gisters zurück in den booleschen Prozessor 445 und
legt die Führung oder Kontrolle wieder in die Hände des
Bit-Prozessors 30.
Wie es insbesondere in Verbindung mit Fig. 5B er
läutert werden kann, wird ein C3-Zyklus ausgeführt,
nachdem die Kontaktplanprogrammanweisung während des
C1-Zyklus abgerufen worden ist, und zwar für den Fall,
daß entweder eine XIC- oder eine XIO-Anweisung vom
Bit-Prozessor 30 ausgeführt wird. Der von der Operanden
adresse in der Kontaktplanprogrammanweisung angegebene
Operand wird während des C3-Zyklus aus der Datentabel
le 38 ausgelesen, und er wird als Antwort auf ein Signal
von der Steuerschaltung (400 Fig. 5A) an einer Leitung
451 in einem Operanden-Latch oder einer Operanden-Ver
riegelung 450 gespeichert. Eine 1-aus-8-Selektorschal
tung 452 ist mit dem Ausgang der Operandenverriegelung
450 verbunden und wird von einem UND-Tor 453 freigege
ben, wenn entweder der XIC- oder XIO-Operationscode in
der Verriegelung 440 vorhanden ist. Der an den Ausgän
gen 454 der OP-Codeverriegelung 440 erzeugte Bit-Zeiger-
Code steuert die Auswahlanschlüsse des 1-aus-8-Selek
tors 452 an, und als Ergebnis wird der Zustand von einem
der acht Bits in dem Operanden an den Eingang 446 des
booleschen Prozessors 445 gelegt.
Wird eine der Ausgangsanweisungen (OTE, OTL oder
OTU) ausgeführt, führt die Steuerschaltung 400 einen
C2-Zyklus durch, nachdem die Kontaktplanprogrammanwei
sung während der C1-Zyklus abgerufen worden ist. Das
zu bearbeitende Ausgangsbit wird während des C2-Zyklus
aus der Datentabelle 38 ausgelesen und in der Operan
denverriegelung 450 gespeichert. Der Bit-Zeiger-Code,
der an den Ausgängen 454 erscheint, wird an die Ein
gänge eines 3-Leitung-auf-8-Leitung-Decodierers 456
gelegt, und die acht Ausgänge dieses Decodierers sind
verbunden mit den Eingängen von acht Tri-State-Inverter
toren 457. Dieselben Ausgänge sind mit den jeweiligen
Freigabeanschlüssen von acht Bustreibertoren 458 verbun
den, und der Eingang jedes dieser Tore 458 ist an den
Ausgang 447 des booleschen Prozessors 445 angeschlossen.
Die Invertertore 457 steuern die jeweiligen Freigabean
schlüsse von acht zusätzlichen Bustreibertoren 459 an,
und sieben von den acht Bits in der Operandenverriege
lung 450 werden zum Datenbus 22 übermittelt, wenn die
invertierenden Tore 457 durch die Steuerleitung 460
von der Steuerschaltung 400 freigegeben werden. Das vom
Bit-Zeiger-Code ausgewählte achte Bit wird nicht an den
Bus 22 weitergeleitet, sondern statt dessen, wird die
Ader oder die Leitung in dem Datenbus 22, die diesem
Bit entspricht, über eines der Bustreibertore 458 vom
Ausgang 447 des booleschen Prozessors angesteuert.
Der in einer Ausgabeprogrammanweisung angegebene Ope
rand wird somit aus der Datentabelle 38 ausgelesen und
zurück in die Datentabelle 38 eingeschrieben, wobei je
doch das darin befindliche ausgewählte Bit vom Ausgang
des booleschen Prozessors 445 modifiziert worden ist.
Wie es insbesondere an Hand Fig. 2 und 6 erläutert
werden kann, speichert der RAM 35 eine Anzahl von Daten
strukturen, die vom 16-Bit-Mikroprozessor 20 und vom
Bit-Prozessor 30 verwendet werden, damit diese Prozesso
ren ihre jeweiligen Funktionen ausführen können. Diese
Datenstrukturen umfassen die Datentabelle 38 und das
Anwendersteuerprogramm 37 und sind in weiteren Einzel
heiten in Fig. 6 dargestellt.
Die Datentabelle 38 enthält getrennte Datendateien,
von denen jede einen spezifischen Datentyp enthalten
kann und jede zum Ausführen einer spezifischen Funktion
beim Betrieb des speicherprogrammierbaren Steuergeräts
dienen kann. Die Datendatei Nr. 0 ist beispielsweise
eine Ganzzahldatei, die als Ausgabebildtabelle 500 dient,
und die Datendatei Nr. 1 ist ebenfalls eine Ganzzahl
datei, die als Eingabebildtabelle 501 dient. Bei der
Datendatei Nr. 3 handelt es sich ebenfalls um eine Ganz
zahldatei, der die Funktion einer Statusdatei 502 zugeordnet
ist. Der Inhalt der Statusdatei 502 wird im ein
zelnen unten noch beschrieben, und die Eingabebildta
belle 500 sowie die Ausgabebildtabelle 501 stellen, wie
bei herkömmlichen speicherprogrammierbaren Steuergeräten,
die Abbildungen der Zustände der E/A-Vorrichtungen dar,
die mit den E/A-Bausteinen 4 in den Steuergerät-E/A-
Gestellen 1 und 11 verbunden sind.
Wie aus Fig. 6 und 8 ersichtlich, kann die Daten
tabelle 38 viele andere Datendateien umfassen, von denen
eine jede unter Verwendung von Datentabellenzeigern 503
lokalisiert werden kann, die in einem Dateiinhaltsver
zeichnisabschnitt des RAM 35 gespeichert sind. Jeder
Datentabellenzeiger 503 enthält eine Einwort-"Datei
startadresse", welche die absolute Adresse im RAM 35
der zugeordneten Datendatei angibt. Ein zweites Wort in
jedem Datentabellenzeiger 503 gibt den Typ der Daten in
der Datei, die Anzahl von Elementen in der Datei und
weiterhin an, ob oder ob nicht die Datei schreibgeschützt
(P) ist. Die Datentypen oder Datenarten werden durch
die folgenden Codes angegeben:
0000 = ganze Zahlen;
0001 = Zeitgeberstrukturen für Kontaktplanprogramm zeitgeberanweisungen;
0010 = Zählerstrukturen für Kontaktplanprogramm zähleranweisungen;
0011 = Steuerstrukturen;
0100 = Gleitkommazahlen;
0111 = ASCII-Zeichen;
1111 = BCD-Daten für Darstellungszwecke.
0000 = ganze Zahlen;
0001 = Zeitgeberstrukturen für Kontaktplanprogramm zeitgeberanweisungen;
0010 = Zählerstrukturen für Kontaktplanprogramm zähleranweisungen;
0011 = Steuerstrukturen;
0100 = Gleitkommazahlen;
0111 = ASCII-Zeichen;
1111 = BCD-Daten für Darstellungszwecke.
Wie oben erwähnt, hat die Datendatei Nr. 2 die Funk
tion der Statusdatei 502. Wie insbesondere aus Fig. 9 er
sichtlich, hat die Statusdatei 502 eine Länge von 32 Wör
tern, und sie enthält eine Anzahl ihr zugeeigneter Struk
turen:
Wort | |
Beschreibung | |
0 | arithmetische Statusflaggen |
Bit 0 = C - Übertrag | |
Bit 1 = V - Überlauf | |
Bit 2 = Z - Null | |
Bit 3 = N - Vorzeichen | |
1 | Störungsroutineprogrammdateinummer (0 = keine Störungsroutine) |
2 | Störungen |
Bit 0 = Software-Überwachung (software watchdog) | |
Bit 1 = illegaler OP-Code | |
Bit 2 = illegale Adresse | |
Bit 3 = keine Kennung | |
Bit 4 = Stapelfehler | |
3 | Dateinummer des gerade laufenden Programms, wenn eine Störung auftritt. |
4 | Sprossen- oder Querverbindungsnummer, die gerade ausgeführt wird, wenn Störung auftritt. |
5 | E/A-Störungen, Status- und Abtast- oder Abfragesperrung |
Bit 0 = Gestell 0 gestört | |
Bit 1 = Gestell 1 gestört | |
Bit 2 = Gestell 2 gestört | |
Bit 3 = Gestell 3 gestört | |
Bit 4 = Gestell 0 Status | |
Bit 5 = Gestell 1 Status | |
Bit 6 = Gestell 2 Status | |
Bit 7 = Gestell 3 Status | |
Bit 8 = Gestell 0 Abtastung gesperrt | |
Bit 9 = Gestell 1 Abtastung gesperrt | |
Bit 10 = Gestell 2 Abtastung gesperrt | |
Bit 11 = Gestell 3 Abtastung gesperrt | |
6 | Ist Zeituhr, Jahr (0 bis 32767) |
7 | Echtzeituhr, Monat (1 bis 12) |
8 | Echtzeituhr, Tag (1 bis 31, 30, 29 oder 28) |
9 | Echtzeituhr, Stunden (0 bis 23) |
10 | Echtzeituhr, Minuten (0 bis 59) |
11 | Echtzeituhr, Sekunden (0 bis 59) |
12 | Programmbereichprüfsumme |
13 | Vorherige Abtastzeit |
14 | Größte vorherige Abtastzeit |
15 | Programmüberprüfungssetzpunkt (0 = gesperrt) |
16 | Echtzeitunterbrechungssetzpunkt in Millisekunden (0 = gesperrt) |
17 | Echtzeitunterbrechungsdateinummer (0 = gesperrt) |
18 | Strukturplanstatus |
Bit 0 = erste Abtastflagge | |
Bit 8 = neuer Start mit Beginn des Energiehochfahrens | |
19 | Strukturplanrückkehrwert |
Mit besonderem Verweis auf Fig. 6 und 7 wird aus
geführt, daß das Anwendersteuerprogramm 37 aus separaten
Programmdateien besteht. Die Programmdateien Nr. 1 und
Nr. 2 sind spezifischen Funktionen gewidmet, jedoch ist
der Rest variabel sowohl was Typ und Art als auch Größe
angeht. Die Programmdatei Nr. 0 dient zur Programmiden
tifikation, und wie noch weiter unten beschrieben wird,
ist die Programmdatei Nr. 1 die Aktivstrukturplandefi
nition 504 oder das Strukturplanprogramm. Jede Pro
grammdatei im Anwendersteuerprogramm 37 ist identifi
ziert durch einen Programmdateizeiger 499, der im Datei
inhaltsverzeichnisabschnitt des RAM 35 gespeichert ist.
Jeder Zeiger 505 gibt den Programmdateityp, die absolute
Speicherstartadresse und Länge des Programms an. Jeder
Zeiger 499 liefert auch eine Anzeige darüber, wenn es
sich um eine Datei handelt, die schreibgeschützt (P) ist,
und er liefert eine Prüf- oder Kontrollsumme der Pro
grammdatei, und zwar zum Einsatz als Diagnosewerkzeug.
Es gibt drei Typen oder Arten von Programmdateien:
Kontaktplan (ladder); Strukturplan (structure chart); und Maschinensprache (machine language). Die Kontaktplan programmdateien können ausgeführt werden vom Prozessor- Baustein 3, und sie bestehen aus Anweisungen der Art oder des Typs, wie er auch in herkömmlichen speicherprogram mierbaren Steuergeräten gefunden wird. Der Ausdruck "Leiter" oder "Kontaktplan" ("ladder") ist vom Kontaktplanformat abgeleitet, das benutzt wird, das Programm auf dem Programmierungsgerät 6 darzustellen. Maschi nensprachprogrammdateien enthalten Anweisungen, die direkt vom 16-Bit-Mikroprozessor 20 ausführbar sind. Diese Programme werden benutzt, um Dualsprachmerkmale zu implementieren, wie sie in der US-PS 4 302 820 be schrieben sind.
Kontaktplan (ladder); Strukturplan (structure chart); und Maschinensprache (machine language). Die Kontaktplan programmdateien können ausgeführt werden vom Prozessor- Baustein 3, und sie bestehen aus Anweisungen der Art oder des Typs, wie er auch in herkömmlichen speicherprogram mierbaren Steuergeräten gefunden wird. Der Ausdruck "Leiter" oder "Kontaktplan" ("ladder") ist vom Kontaktplanformat abgeleitet, das benutzt wird, das Programm auf dem Programmierungsgerät 6 darzustellen. Maschi nensprachprogrammdateien enthalten Anweisungen, die direkt vom 16-Bit-Mikroprozessor 20 ausführbar sind. Diese Programme werden benutzt, um Dualsprachmerkmale zu implementieren, wie sie in der US-PS 4 302 820 be schrieben sind.
Die Strukturplanprogramme (structure chart programs)
stellen ein neues Konzept in speicherprogrammierbaren
Steuergeräten dar und sie werden ausgeführt von einer
Strukturplaninterpretierroutine, die unten im einzelnen
noch näher diskutiert wird. Wie es aus Fig. 12A bis 12C
hervorgeht, verwendet die Strukturplaninterpretierrouti
ne zusätzlich zur Strukturplandefinitionsprogrammdatei
504 eine Aktivzustandsliste 505, die im RAM 35 gespei
chert ist und sich aus sechzehn Beschreibungs- oder
Descriptorzeigern zusammensetzt. Diese Descriptorzeiger
sind Adressen von Descriptoren 506, die in der Struktur
plandefinition 504 gespeichert sind. Die Strukturplan
definitionsprogrammdatei 504 ist nichts weiter als ein
Satz solcher Descriptoren 506, die unter Verwendung des
Programmierungsgeräts 6 erzeugt worden sind. Die Descrip
toren 506 umfassen die Nummer einer Kontaktplanprogramm
datei, die ablaufen soll, wenn der Descriptor 506 aktiv
ist. Wie noch im einzelnen erläutert wird, zeigt die
Aktivzustandsliste 505 auf spezifische Descriptoren von
den Descriptoren 506 und gibt dabei solche Kontaktplan
programme an, die zu irgendeinem Zeitpunkt vom Prozessor-
Baustein 3 in Betrieb genommen bzw. dem Ablauf zuge
führt werden sollen.
Wie bereits angegeben, wird der gemeinsame RAM 125
im Orts-E/A-Teil 3B dazu benutzt, um Information zwischen
dem Steuerteil 3A und dem Kommunikationsteil 3C zu über
mitteln. Unter besonderer Bezugnahme auf Fig. 3 und. 14
wird ausgeführt, daß ein geeigneter Befehl in einen Eingabenachrichtenpuffer
605 im gemeinsamen RAM 125 ein
geschrieben wird, wenn das Kommunikationsteil 3C eine
Nachricht vom Programmierungsgerät 6 empfängt, die eine
Antwort vom Steuerungsteil 3A erfordert. Ein geeigneter
Befehl wird dann eingeschrieben an einen Steuerunter
brechungsbefehlsplatz 606 im gemeinsamen RAM 125, und
der 16-Bit-Mikroprozessor 20 wird dadurch unterbrochen,
daß in der oben beschriebenen Weise eine Einschreibung
in die Ausgabeverriegelung 130 erfolgt. Als Teil seiner
Unterbrechungsbedienungsroutine liest der Mikroprozessor
den Steuerunterbrechungsbefehl 606 und bestimmt, daß
ein Programmierungsgerätbefehl auf seine Ausführung im
Eingabenachrichtenpuffer 605 wartet.
Nach der Ausführung des Programmierungsgerätbefehls
schreibt das Steuerteil 3A eine Antwort in einen Ausgangs-
oder Ausgabenachrichtenpuffer 607 und einen Befehlscode
in einen Kommunikationsunterbrechungsbefehlsplatz 608.
Der Kommunikationsmikroprozessor 205 wird dann durch den
Einschreibvorgang in die Ausgangsverriegelung 130 unter
brochen. Als Teil seiner Unterbrechungsbedienungsroutine
liest der Kommunikationsmikroprozessor 205 den Kommuni
kationsunterbrechungsbefehl 508, stellt fest, daß ihn
eine Antwort im Ausgangsnachrichtenpuffer 607 erwartet,
und liest die Antwortnachricht aus dem gemeinsamen RAM
125. Die Unterbrechungsbefehlsplätze 606 und 608 arbeiten
somit in Kombination mit den Nachrichtenpuffern 605 und
607, um einen ordentlichen Informationsfluß zwischen dem
Programmierungsgerät 6 und dem Steuerteil 3A des Prozes
sor-Bausteins 3 vorzusehen.
Ein etwas ähnlicher Datenaustausch geschieht be
züglich der Fern-E/A-Gestelldaten. An Hand von Fig. 3 und
14 kann erläutert werden, daß Eingabedaten von den drei
Fern-E/A-Gestellen 11 vom Kommunikationsteil 3C empfan
gen und in den Eingabeabschnitt 126A der E/A-Bildtabelle
126 geschrieben werden. Als Teil seiner regulären E/A-
Abtastroutine, die noch im einzelnen weiter unten er
läutert wird, liest der 16-Bit-Mikroprozessor 20 diese
Eingabebilddaten aus dem gemeinsamen RAM 126 und schreibt
sie in seine eigene Datentabelle 38. Als Teil dieser
selben E/A-Abtastroutine bringt der 16-Bit-Mikropro
zessor 20 einen Ausgangs- oder Ausgabeabschnitt 126B
der E/A-Bildtabelle 126 dadurch auf den neuesten Stand,
daß er Daten von seiner eigenen Datentabelle 38 trans
feriert. Das Kommunikationsteil 3C übermittelt diese
Ausgabedaten zu dem geeigneten E/A-Gestell 11.
Jedes Fern-E/A-Gestell 11 hat ein E/A-Gestellstatus
wort 610, das im gemeinsamen RAM 125 gespeichert ist.
Diese Statuswörter sehen bezüglich des Zustands ihrer
jeweiligen Fern-E/A-Gestelle die folgenden Informationen
vor:
N = neue Ausgänge betreffendes Bit wird vom 16-Bit- Mikroprozessor 20 gesetzt, wenn dieser die Ausgabebildtabelle 126B auf den neuesten Stand bringt, und wird vom Kommunikationsmikroprozes sor 205 zurückgesetzt, wenn die Ausgänge an das Fern-E/A-Gestell 11 gesendet werden.
RS = Ausgänge sind zurückzusetzen, wenn dieses Bit entweder vom Mikroprozessor 20 oder 205 gesetzt wird.
F = eine E/A-Störung wird angezeigt, wenn dieses Bit gesetzt wird.
I = die Ausgangsabtastung zu diesem E/A-Gestell 11 ist gesperrt.
N = neue Ausgänge betreffendes Bit wird vom 16-Bit- Mikroprozessor 20 gesetzt, wenn dieser die Ausgabebildtabelle 126B auf den neuesten Stand bringt, und wird vom Kommunikationsmikroprozes sor 205 zurückgesetzt, wenn die Ausgänge an das Fern-E/A-Gestell 11 gesendet werden.
RS = Ausgänge sind zurückzusetzen, wenn dieses Bit entweder vom Mikroprozessor 20 oder 205 gesetzt wird.
F = eine E/A-Störung wird angezeigt, wenn dieses Bit gesetzt wird.
I = die Ausgangsabtastung zu diesem E/A-Gestell 11 ist gesperrt.
Die E/A-Gestellstatuswörter 610 werden somit ver
wendet, um die Übermittlung von E/A-Daten zwischen den
Fern-E/A-Gestellen 11 und dem Steuerteil 3A des Pro
zessor-Bausteins 3 zu koordinieren.
Eine weitere im gemeinsamen RAM 125 gespeicherte
Datenstruktur ist ein Systemflaggenwort 611. Dieses
Flaggenwort 611 speichert einen Satz aus drei Bits, die
die Betriebsart anzeigen, in der das speicherprogrammierbare
Steuergerät betrieben werden soll.
R = Lauf-Betrieb (RUN mode), wenn gesetzt,
T = Prüf-Betriebsart, wenn gesetzt,
P = Programm-Betriebsart, wenn gesetzt.
R = Lauf-Betrieb (RUN mode), wenn gesetzt,
T = Prüf-Betriebsart, wenn gesetzt,
P = Programm-Betriebsart, wenn gesetzt.
Diese Bits können natürlich geändert oder über
prüft werden, und zwar entweder vom Steuerteil 3A oder
vom Kommunikationsteil 3C des Prozessor-Bausteins 3.
Aus Fig. 4 und 15 geht insbesondere hervor, daß
der RAM 211 im Kommunikationsteil 3C Daten speichert,
die vom Mikroprozessor 205 und vom Mikrocomputer 210
gemeinsam benutzt werden. Es sind Eingabe- und Ausgabe
abschnitte der Fern-E/A-Bildtabelle 241 und ein Satz aus
drei E/A-Gestellstatuswörtern 705 vorgesehen. Die Status
wörter 705 betreffen die folgende Information bezüglich
jedes der drei Fern-E/A-Gestelle 11:
N = Neue Ausgänge betreffendes Bit wird gesetzt vom Mikroprozessor 205, wenn dieser die Ausgabe bildtabelle 241 auf den neuesten Stand bringt, und wird zurückgesetzt vom Mikrocomputer 210, wenn dieser die E/A-Gestelle 11 auf den neuesten Stand bringt.
RS = Ausgänge sollen zurückgesetzt werden, wenn Bit gesetzt wird.
F = Eine E/A-Störung ist aufgetreten in diesem Gestell.
I = Ausgabeabtastung sperren, wenn Bit gesetzt ist.
OD = Ausgaben zum E/A-Gestell sind gesendet worden.
ID = Eingänge sind abgetastet worden.
N = Neue Ausgänge betreffendes Bit wird gesetzt vom Mikroprozessor 205, wenn dieser die Ausgabe bildtabelle 241 auf den neuesten Stand bringt, und wird zurückgesetzt vom Mikrocomputer 210, wenn dieser die E/A-Gestelle 11 auf den neuesten Stand bringt.
RS = Ausgänge sollen zurückgesetzt werden, wenn Bit gesetzt wird.
F = Eine E/A-Störung ist aufgetreten in diesem Gestell.
I = Ausgabeabtastung sperren, wenn Bit gesetzt ist.
OD = Ausgaben zum E/A-Gestell sind gesendet worden.
ID = Eingänge sind abgetastet worden.
Eingabenachrichten vom Programmierungsgerät 6 oder
anderen "Stationen", die mit dem Serienkanal 5 verbunden
sind, werden in Nachrichtenpuffern 242 gespeichert. Die
Nachrichtenpuffer 242 speichern auch die Antwortnachrich
ten vom Prozessor-Baustein 3. Wie oben angegeben, stammen
einige dieser Antwortnachrichten vom Steuerteil 3A,
oder sie stammen vom Kommunikationsteil 3C selbst. Es
gibt insgesamt fünfzehn Nachrichtenpuffer, von denen
jeder bis zu 71 Datenbytes und ein einziges Steuerbyte
speichert. Das Steuerbyte wird dazu verwendet, die Ver
arbeitung der ihm zugeordneten Nachricht zu koordinie
ren, und es enthält eine Stationsaktivflagge (SA) und
eine Nachrichtenaktivflagge (MA). Die Stationsaktiv
flagge (SA) wird gesetzt, wenn eine Nachricht in seinem
Puffer vom Programmierungsgerät 6 oder einer anderen
Station vom Serienkanal 5 empfangen worden ist. Dieses
Bit wird zurückgesetzt, nachdem eine Nachricht zurück
an das Ursprungsgerät über denselben Puffer gesendet
worden ist. Die Nachrichtenaktivflagge (MA) wird gesetzt,
wenn vom Mikroprozessor 205 Nachrichtendaten in den Puf
fer 242 gegeben worden sind, und sie wird zurückgesetzt,
wenn die Gesamtnachricht vom Mikrocomputer 210 über den
Serienkanal 5 ausgesandt worden ist.
Weil der Mikroprozessor 205 aufgerufen werden kann,
um eine Reihe von Aufgaben gleichzeitig vorzunehmen, ar
beitet er in Abhängigkeit von einem Schedulerprogramm,
das im ROM 206 gespeichert ist. Dieser Scheduler ver
wendet einen Satz von drei Datenstrukturen, eine Steuer
gerätbefehlswarteschlange 706, eine Programmierungsgerät
warteschlange 707 und eine Fern-E/A-Warteschlange 708.
Diese Warteschlangen 706 bis 708 sind eine Liste vom
Mikroprozessor 205 durchzuführender Aufgaben, und ein
Warteschlangenzeiger 709 zeigt an, welche dieser Auf
gaben gegenwärtig ausgeführt wird.
Der Betrieb oder die Operation des Steuerteils 3A
des Prozessor-Bausteins 3 wird von einer Exekutivrouti
ne 520 gesteuert, die im ROM 23 gespeichert ist. Im
folgenden wird insbesondere auf Fig. 2 und 10 Bezug ge
nommen. Nachdem das speicherprogrammierbare Steuergerät
mit Energie versorgt ist, wird ein Satz von Anweisun
gen ausgeführt, die in einem Verarbeitungs- oder Prozeß
block 521 dargestellt sind. Diese Anweisungen dienen zum
Erstellen und Initialisieren der im RAM 35 gespeicher
ten Datenstrukturen. Befindet sich das System in der
"LAUF"-Betriebsart (RUN), was in einem Entscheidungs
block 522 ermittelt wird, beginnt ein im Prozeßblock
523 dargestellter Vorabfrage- oder Vorabtastprozeß.
Alle Programme vom Kontaktplantyp werden abgetastet,
wobei all ihre Sprossen oder Querverbindungen auf
"falsch" gesetzt werden, die Ausgabebildtabelle 500 wird
sowohl in das Ortsgestell 1 als auch in den gemeinsamen
RAM 125 des Orts-E/A-Teils 3B geschrieben und die
Eingabebildtabelle 501 wird dadurch aufbereitet, daß
der Eingabestatus sowohl vom Ortsgestell 1 als auch vom
gemeinsamen RAM 125 ausgelesen wird. Dann werden die
Unterbrechungen freigegeben, und es wird mit der Verar
beitung fortgefahren. Wie in einem Prozeßblock 524 an
gedeutet, wird als nächstes eine Strukturplaninterpre
tierroutine ausgeführt, die, wie es noch später beschrie
ben wird, eine Kontaktplanprogrammdatei zur Ausführung
auswählt. Anschließend wird eine Kontaktplanprogramm
interpretierroutine 525 ausgeführt, um den Lauf der
ausgewählten Kontaktplanprogrammdatei vorzunehmen. Nach
einer einzigen Abtastung durch das betriebsbereite Kon
taktplanprogramm wird eine E/A-Abtastung durchgeführt,
wie es in einem Prozeßblock 526 angedeutet ist.
Im folgenden wird insbesondere auf Fig. 3 und 14
verwiesen. Die E/A-Abtastung wird an bezeichneten E/A-
Gestellen vorgenommen. Die Ausgabebildtabelle 500 wird
direkt in das Orts-E/A-Gestell 1 eingeschrieben, und
die Eingabebildtabelle 501 wird dadurch auf den neuesten
Stand gebracht oder aktualisiert, daß das Orts-E/A-Ge
stell 1 direkt ausgelesen wird. Die übrigen drei Fern-
E/A-Gestelle 11 werden allerdings dadurch aktualisiert,
daß Einschreib- und Auslesevorgänge bezüglich der E/A-
Bildtabelle 126 im gemeinsamen RAM 125 vorgenommen
werden. Die E/A-Gestellstatuswörter 610 werden zunächst
daraufhin überprüft, um festzustellen, ob ein E/A-Ge
stell gesperrt oder gestört ist. Nachdem die Ausgänge
eines Fern-E/A-Gestells 11 aktualisiert worden sind,
wird sein "N"-Bit im Statuswort 610 gesetzt. Nach Ver
vollständigung der E/A-Abtastung werden die System
flaggen 611 im gemeinsamen RAM 125 überprüft, und, wie
es aus Fig. 10 hervorgeht, kommt es bei einem Entschei
dungsblock 527 zu einer Systemaufzweigung, wenn eine
Betriebsartänderung stattgefunden hat. Andernfalls
kehrt das System zur Strukturplaninterpretierroutine
gemäß dem Prozeßblock 524 zurück, um das nächste, zum
Lauf vorgesehene Kontaktplanprogramm auszuwählen.
Im folgenden soll im einzelnen dargelegt werden,
in welcher Art und Weise der Strukturplaninterpreter
und der Kontaktplanprogramminterpreter zusammenarbeiten,
um die erfindungsgemäße Lehre in die Praxis umzu
setzen. Hierzu wird insbesondere auch auf den Anhang C verwiesen, in dem ein Beispiel
eines Strukturplanprogramms aufgezeigt ist, das im erfindungsgemäßen Verfahren verarbeitet
wird.
Im folgenden wird insbesondere auch auf Fig. 11 und
12 verwiesen. Nach Eintritt in den Strukturplaninter
preter wird unter Hinweis auf einen Entscheidungsblock
531 ein Strukturplanrückkehrwert 530 (Fig. 9) über
prüft. Dieser Wert wird durch eine "SCR"- oder "ENDE"-
Anweisung bei der Beendigung jedes Kontaktplanprogramms
gesetzt. Ist der Wert gleich "0", bedeutet dies, daß
das Kontaktplanprogramm seine beabsichtigte Funktion
noch nicht vollendet hat und nochmals abgetastet oder
laufen muß. In einem solchen Fall wird, wie es in einem
Prozeßblock 532 angedeutet ist, die Aktivzustandsliste
nicht geändert, sondern es wird ein Index zur Aktivzu
standsliste 505 zum nächsten Descriptorzeiger inkremen
tiert. Wenn das Ende der Liste 505 erreicht worden ist,
zweigt das System bei einem Entscheidungsblock 533 ab,
und in einem Prozeßblock 534 wird der Aktivzustands
listenindex zur Oberseite der Liste 505 zurückgesetzt.
Wie in einem Prozeßblock 535 angedeutet, werden
die Datenstrukturen nach Fig. 12A bis 12C dazu be
nutzt, um das nächste auszuführende Kontaktplanprogramm
zu lokalisieren. Der vom Aktivzustandslistenindex an
gegebene Descriptorzeiger wird zunächst dazu benutzt,
um den "gegenwärtig aktiven" Descriptor 506 in der
Strukturplandefinitionsprogrammdatei 504 zu lokalisie
ren. Wie es aus Fig. 12B hervorgeht, zeigt das erste
Wort im gegenwärtig aktiven Descriptor 506 wiederum die
Dateinummer des Kontaktplanprogramms an, das jetzt laufen
soll. Diese Programmdateinummer wird verwendet in Ver
bindung mit dem Dateiinhaltsverzeichnis (Fig. 6), um
das Kontaktplanprogramm aufzufinden und seine Start
adresse in den Kontaktplanprogrammzähler des 16-Bit-
Mikroprozessors zu laden. Bei 536 weist der Struktur
planinterpreter einen Ausgang zum Kontaktplanprogramm
interpreter 525 auf, wie es oben angedeutet ist, um mit
der Ausführung des ausgewählten Kontaktplanprogramms
zu beginnen.
Wie aus Fig. 11 und 12 ersichtlich, gibt das Kon
taktplanprogramm, wenn es die ihm zugeordnete Funktion
vollendet hat, einen anderen Wert als lull in den Kon
taktplanrückkehrwert 530 (Fig. 9) ein. Wie in einem
Prozeßblock 537 angedeutet, wird dann ein "Getan"-Bit
(D) für den gegenwärtig aktiven Descriptorzeiger in die
Aktivzustandsliste 505 gesetzt. Es erfolgt dann eine
Reihe von Überprüfungen bezüglich des Code in einem
"t"-Feld im ersten Wort des gegenwärtig aktiven Des
criptors 506, um festzustellen, ob eine Zustandsänderung
auftreten soll, und, wenn dies zutrifft, wohin die Zu
standsänderung führen soll. Ist das 2-Bit-t-Feld gleich
"00", was in einem Entscheidungsblock 538 überprüft
wird, erfolgt eine Zustandsänderung. Der erste Schritt
bei der Durchführung der angegebenen Zustandsänderung
besteht darin, den gegenwärtig aktiven Descriptorzei
ger von der Aktivzustandsliste 505 zu entfernen, wie
es aus einem Prozeßblock 539 hervorgeht. Neue Descrip
torzeiger werden dann dem Ende der Aktivzustandsliste
505 hinzugefügt, wie es in einem Prozeßblock 540 ange
deutet ist. Die Anzahl der hinzuzufügenden Descriptor
zeiger wird vom Wert eines 3-Bit-"n"-Feldes im ersten
Wort des gegenwärtig aktiven Descriptors 506 angegeben,
und die Identität der hinzuzufügenden Descriptorzeiger
wird durch Zielnummern angezeigt, die im gegenwärtig
aktiven Descriptorblock 506 gespeichert sind. Ist
beispielsweise n = 1, wird der Aktivzustandsliste 505
die erste Zielnummer hinzugefügt, wohingegen bei n = 5,
die ersten fünf Zielnummern der Aktivzustandsliste 505
hinzugefügt werden. Durch diese Zustandsänderung können
somit bis zu sieben separate Kontaktplanprogramme
gleichzeitig aktiviert werden. Nach der Durchführung
dieser Änderungen kehrt der Strukturplaninterpreter zum
Prozeßblock 532 zurück, um den nächsten Descriptor 506
zu aktivieren, wie es von der Aktivzustandsliste 505
angezeigt wird, und um sein Kontaktplanprogramm aufzu
finden und auszuführen.
Steht im t-Feld des gegenwärtig aktiven Descrip
tors die Angabe "01", kommt es auch zu einer Zustands
änderung, wie es in einem Entscheidungsblock 541 ange
deutet ist. Wie aus einem Prozeßblock 542 ersichtlich,
wird der Descriptorzeiger für den gegenwärtigen Des
criptor von der Aktivzustandsliste 505 entfernt, und
am ade der Aktivzustandsliste 505 wird ein anderer
Descriptorzeiger hinzugefügt, wie es in einem Ent
scheidungsblock 543 dargestellt ist. In diesem Fall
wird der Ersatzdescriptorzeiger durch den Rücksprung-
oder Rückkehrwert (r) und die Liste der Zielnummern
im gegenwärtig aktiven Descriptor 506 bestimmt. Gibt
beispielsweise das Kontaktplanprogramm einen Wert
r = 3 zurück, wird die dritte Zielnummer im gegenwärti
gen Descriptor 506 in die Aktivzustandsliste 505 ge
laden. Der t-Code von "01" in einem Descriptor 506
ermöglicht es somit einem ausgewählten einer Vielzahl
von Kontaktprogrammen zu laufen, und zwar nach Voll
endung des Kontaktprogramms, welches in seinem eigenen
Programmdateinummernfeld angezeigt wird. Die Auswahl
geschieht durch den Rückkehrwert, der durch das Kon
taktplanprogramm selbst erzeugt wird.
Beträgt der t-Code im gegenwärtig aktiven Des
criptor gleich "10", wird, wie es ein Entscheidungs
block 544 angibt, eine "gleichzeitige Konvergenz" einer
Vielzahl aktiver Kontaktplanprogramme angezeigt. Die
Kontaktplanprogramme werden spezifiziert für eine
gleichzeitige Konvergenz durch die ersten n - 1 Ziel
nummern, die im gegenwärtigen Descriptor 506 gespei
chert sind. Beträgt der Wert von n im gegenwärtigen
Descriptor 506 beispielsweise gleich "4", tritt eine
Zustandsänderung mit t = "10" so lange nicht auf, bis
die von den ersten drei Zielnummern angegebenen Kon
taktplanprogramme einen nicht Nullwert zurückgegeben
haben. Wie es aus einem Entscheidungsblock 545 hervor
geht, kommt es nicht zu einer Zustandsänderung, wenn
die Getan-Bits (D) in all den spezifizierten Aktiv
zustandslisteneingängen nicht gesetzt sind. Statt dessen
kehrt der Strukturplaninterpreter lediglich zum Prozeß
block 532 zurück, um mit der Verarbeitung der Kontakt
planprogramme fortzufahren, die durch die Eingänge in
der Aktivzustandsliste 505 angezeigt sind.
Sind die Getan-Bits für alle der n - 1 Kontaktplan
programme, die von den Descriptorzeigern in der Aktiv
zustandsliste 505 angezeigt werden, gesetzt, wird ent
sprechend einem Prozeßblock 546 der Descriptorzeiger
für den gegenwärtigen Descriptor von der Aktivzustands
liste 505 entfernt. Ferner werden auch die anderen n - 1
Descriptorzeiger von der Aktivzustandsliste 505 ent
fernt. Die n-te Zielnummer im gegenwärtigen Descrip
tor 506 wird dann der Aktivzustandsliste 505 hinzuge
fügt, oder, um beim obigen Beispiel zu bleiben, die
vierte Zielnummer. Dieser Zustandsübergang geschieht
in einem Prozeßblock 547, und der Strukturplaninterpre
ter geht dann in der Schleife zurück, um das nächste
Kontaktplanprogramm zu verarbeiten, das von der Aktiv
zustandsliste 505 angezeigt wird.
In diesem Zusammenhang wird auf den Anhang D ver
wiesen, wo sich eine Auflistung der Strukturplaninter
pretierroutine in Assemblersprache befindet.
Für die folgende Erläuterung werden insbesondere
Fig. 2, 10 und 13 herangezogen. Beim Austritt oder Aus
gang aus dem Strukturplaninterpreter 524 ist das zum
Laufen gedachte Kontaktplanprogramm identifiziert worden,
und zwar dadurch, daß seine Startadresse in den Kontakt
planprogrammzähler des 16-Bit-Mikroprozessors 20 ge
laden worden ist. Wie es in einem Prozeßblock 550 an
gedeutet wird, erfolgt nach dem Eintritt in den Kontakt
planprogramminterpreter 525 die Initialisierung des
Sprossenzustandsregisters im Mikroprozessor 20. Der
Kontaktplanprogrammzähler wird ebenfalls auf die erste
Kontaktplanprogrammanweisung initialisiert, und das
System tritt bei einem Prozeßblock 553 in eine Schleife
ein, bei der der Kontaktplanprogrammzähler in den Kon
taktplanprogrammzähler 40 des Bit-Prozessors 30 (Fig. 5A)
eingeschrieben wird. Das Sprossenzustandsregister im
16-Bit-Mikroprozessor 20 wird ebenfalls in den boole
schen Prozessor 445 (Fig. 5B) bei einem Prozeßblock 554
eingeschrieben. Der 16-Bit-Mikroprozessor 20 bringt sich
dann selbst in einen inaktiven Wartezustand, und zwar
dadurch, daß der Bit-Prozessor 30 bei einem Prozeß
block 555 in den Wachzustand überführt wird.
Wie bereits vorstehend erläutert, behält der
Bit-Prozessor 30 die Führung oder Kontrolle und fährt
mit der Ausführung der Kontaktplanprogrammanweisungen
so lange fort, bis er entweder unterbrochen wird oder
bis er auf eine Kontaktplanprogrammanweisung trifft,
die er nicht ausführen kann. Im zuletzt genannten Fall
wird der 16-Bit-Mikroprozessor 20 wachgerufen, und er
übernimmt die Bearbeitung des Kontaktplanprogramminter
preters. Insbesondere werden im Prozeßblock 556 ange
gebene Anweisungen ausgeführt, um den Sprossenzustand
des booleschen Prozessors 445 und den Inhalt des Kon
taktplanprogrammzählers 40 im Bit-Prozessor 30 auszu
lesen. Das System ruft dann die angegebene Kontaktplan
programmanweisung im Rahmen des Prozeßblocks 551 auf.
Wie ferner aus Fig. 13 ersichtlich, wird der Ope
rationscode in der abgerufenen Kontaktplanprogramm
anweisung auf die Startadresse des im ROM 23 (Fig. 2)
gespeicherten, geeigneten Interpretierprogramms ab
gebildet, und zwar bei einem Prozeßblock 557. Der
16-Bit-Mikroprozessor 20 beginnt mit der Ausführung
der Anweisung, und, wenn es sich bei der Kontaktplan
programmanweisung um eine "ENDE"- oder "SCR"-Anwei
sung handelt, ist das Kontaktplanprogramm vollendet,
und, wie es in Verbindung mit Entscheidungsblöcken 558
und 559 ersichtlich ist, wird die Führung oder Kon
trolle zurück an das Exekutivprogramm (Fig. 10) gege
ben. Andernfalls wird die Kontaktplananweisung, wie in
einem Prozeßblock 560 dargestellt, von der geeigneten
Interpretierroutine ausgeführt, und das System kehrt
in der Schleife zurück zum Prozeßblock 553, um dort 37766 00070 552 001000280000000200012000285913765500040 0002003610433 00004 37647 die
Führung oder Kontrolle wieder dem Bit-Prozessor 30 zu
übergeben und die nächste Kontaktplanprogrammanweisung
auszuführen.
Vor der Rückkehr zum Exekutivprogramm schreibt
der Kontaktplanprogramminterpreter einen Rückkehrwert
in die Statusdatendatei 502 (Fig. 9). Dies ist ange
deutet in einem Prozeßblock 561. Die "ENDE"-Kontakt
plananweisung schreibt eine "0" für den Rückkehrwert.
Die "SCR"-Kontaktplananweisung enthält allerdings
einen Operanden, der in die Statusdatendatei 502 ein
geschrieben wird. Auf diese Weise kann das Anwender
steuerprogramm den Rückkehrwert durch Steuerung des
Werts des Operanden der SCR-Anweisung bestimmen. Zu
sätzlich gibt der SCR-Anweisungsoperand auch an, wel
ches der vier E/A-Gestelle abgetastet werden soll.
Wie es in einem Prozeßblock 562 angedeutet ist, wird
diese "Abtastliste" einer UND-Verknüpfung mit den E/A-
Gestellstatusdaten unterzogen und in die Statusdaten
datei 502 derart eingeschrieben, daß während der nach
folgenden E/A-Abtastung (Fig. 10) nur solche E/A-Ge
stelle aktualisiert werden, die einer Aktualisierung
bedürfen. Auf diese Weise wird die Gesamtabtastzeit
vermindert und das Verhalten des speicherprogrammier
baren Steuergeräts im Hinblick auf Echtzeitvorgänge
verbessert.
Der Kontaktplananweisungssatz, der vom Steuer
teil 3A ausgeführt wird, ist Anweisungssätzen ähnlich,
die in den US-PSn 4 266 281 und 4 442 504 beschrieben
sind. Wie oben erläutert, führt der Bit-Prozessor 30
einige dieser Kontaktplananweisungen direkt aus, wohin
gegen die übrigen Kontaktplananweisungen dadurch ausge
führt werden, daß die im ROM 23 gespeicherten Maschinen
sprachinterpretierroutinen abgebildet werden (mapping).
Im Anhang C sind für ein Beispiel einer zu steuern
den Maschine ein geeignetes Strukturplanprogramm und
geeignete Kontaktplanprogramme zusammengestellt. Diese
Programme werden unter Verwendung des Programmierungsgeräts
6 hergestellt und zum Steuerteil 3A übertragen.
Unter Bezugnahme auf Fig. 2 wird ausgeführt, daß
der Betrieb des Steuerteils 3A alle 10 ms durch das
Kommunikationsteil 3C unterbrochen wird. Geschieht
dies, wird die Kontrolle über die Busse an den 16-Bit-
Mikroprozessor 20 abgegeben, und es wird eine 10-ms-
Unterbrechungsbedienungsroutine ausgeführt, die in
Fig. 16 dargestellt ist. Wie durch einen Prozeßblock
580 angedeutet, wird der Zustand der Register des Mi
kroprozessors im RAM 35 aufbewahrt, und ein Überwa
chungszeitgeber wird zurückgesetzt, wie in einem
Prozeßblock 581 gezeigt.
Die von den Zeitgeberanweisungen benutzte Echtzeit
uhr wird dann nach einem Prozeßblock 582 aktualisiert,
und der Steuerunterbrechungsbefehl 606 wird aus dem
gemeinsamen RAM 125 (Fig. 14) ausgelesen, wie in einem
Prozeßblock 583 dargestellt. Handelt es sich bei dem
angezeigten Befehl um einen solchen, der unmittelbar
ausgeführt werden muß, zweigt das System bei einem Ent
scheidungsblock 584 ab, und der Befehl wird gemäß
einem Prozeßblock 585 ausgeführt. In jedem Falle er
folgt eine Wiederherstellung der Mikroprozessorregister
in einem Prozeßblock 586, und das System kehrt zu seiner
unterbrochenen Aufgabe zurück.
Mit besonderem Hinweis auf Fig. 3 und 4 wird ausge
führt, daß die Hauptfunktionen des Kommunikationsteils
3C des Prozessor-Bausteins 3 darin bestehen, eine E/A-
Abtastung der Fern-E/A-Gestelle 11 über den E/A-Kanal 10
vorzunehmen und die Befehle zu verarbeiten, die über den
Serienkanal 5 empfangen oder ausgesendet werden. Der
Mikroprozessor 205 übt diese Funktionen als Antwort auf
ein im ROM 206 gespeichertes Schedulerprogramm und einen
Satz von Unterbrechungsbedienungsroutinen aus, die
ebenfalls im ROM 206 gespeichert sind.
Wie insbesondere aus Fig. 17 ersichtlich, erfolgt
der Eintritt in den Scheduler mit dem Hochfahren der
Versorgungsenergie, und im Prozeßblock 620 wird ein
Satz von Anweisungen ausgeführt, um sowohl im geein
samen RAM 125 als auch im RAM 211 Datenstrukturen zu
initialisieren. Weiterhin werden Unterbrechungen frei
gegeben, und beim Prozeßblock 321 wird in eine Schleife
eingetreten, und zwar zwecks Eingabe von Daten von jedem
aktiven Fern-E/A-Gestell 11. Bei einem Prozeßblock 622
wird die Gestellnummer inkrementiert, und nachdem das
letzte E/A-Gestell überprüft worden ist, zweigt der
Scheduler bei einem Entscheidungsblock 623 ab, und
zwar mit dem Ziel der Überprüfung des "IS"-Bit im
E/A-Gestellstatus 705 des RAM 211 (Fig. 15). Dieses
Bit wird vom Mikrocomputer 210 auf Null gesetzt, wenn
er die Eingabebildtabelle 241A mit dem gegenwärtigen
oder laufenden Status der mit dem E/A-Gestell 11 ver
bundenen Eingabevorrichtungen aktualisiert hat, und
nach entsprechender Überprüfung im Entscheidungsblock
624 wird das gegenwärtige Eingabebild vom RAM 211 in
die entsprechenden Plätze der Eingabebildtabelle 126A
des gemeinsamen RAM 125 (Fig. 14) transferiert. Dieser
Transfer wird im Prozeßblock 625 vorgenommen, und das
ID-Bit für das angezeigte E/A-Gestell 11 wird auf "1"
gesetzt, bevor in der Schleife zurückgegangen wird,
um die Eingänge vom nächsten E/A-Gestell 11 zu über
prüfen. Die Eingabeabtastschleife 621 aktualisiert
daher die Eingabebildtabelle 126A im gemeinsamen RAM
125 immer dann, wenn der Mikrocomputer 210 einen neuen
Satz von Eingängen von jedem Fern-E/A-Gestell 11 ein
liest.
Nach Abtastung der Eingänge oder Eingaben zweigt
der Scheduler bei einem Entscheidungsblock 623 zu
einem Satz von Anweisungen ab, die in einem Prozeßblock
626 enthalten sind. Diese Anweisungen aktuali
sieren den E/A-Gestellstatus 610 im gemeinsamen RAM
125 (Fig. 14) mit dem gegenwärtigen oder laufenden
Zustand, der vom E/A-Gestellstatus 705 im RAM 211
angezeigt wird. Wird beispielsweise während der jüng
sten Eingabeabtastung der E/A-Gestell Nr. 2 eine E/A-
Störung festgestellt, wird dies durch das "F"-Bit für
die E/A-Gestell Nr. 2 angezeigt. Es wird dann bei 627
in eine Schleife eingetreten, in deren Verlauf das
Ausgabebild vom gemeinsamen RAM 125 zum RAM 211 trans
feriert wird. Im einzelnen wird bei 628 die E/A-Gestell
Nummer inkrementiert, und solange das letzte Gestell
noch nicht überprüft worden ist, zweigt der Scheduler
bei einem Entscheidungsblock 629 ab, um das "N"-Bit
im E/A-Gestellstatus 610 des gemeinsamen RAM 125 zu
prüfen. Ist dieses Bit auf "1" gesetzt, was in einem
Entscheidungsblock 630 festgestellt wird, sind die Aus
gänge für das angezeigte Gestell vom Steuerteil 3B
jüngst aktualisiert worden. Diese aktualisierten Aus
gänge oder Ausgaben werden von der Ausgabebildtabelle
126B des gemeinsamen RAM 125 zu dem entsprechenden Platz
in der Ausgabebildtabelle 241 des RAM 211 transferiert,
wie es durch einen Prozeßblock 631 dargestellt ist. Das
"N"-Bit wird im gemeinsamen RAM 125 zurückgesetzt, und
das "OD"-Bit für das angezeigte E/A-Gestell wird auf
"1" im RAM 211 (Fig. 15) gesetzt, wie in einem Prozeß
block 632 dargestellt. Der Scheduler kehrt dann in der
Schleife zurück zwecks Überprüfung des nächsten E/A-
Gestells. Beim Austritt oder Ausgang aus der Schleife
627 bei einem Entscheidungsblock 629 werden alle vom
Steuerteil 3A aktualisierte Ausgaben an den RAM 211
weitergeleitet, und zwar zwecks Übertragung zum geeig
neten Fern-E/A-Gestell 11.
Immer noch unter Bezugnahme auf Fig. 14 wird dar
gelegt, daß nach der Aktualisierung der Eingaben und
Ausgaben der Scheduler die Steuerbefehlswarteschlange 706
im RAM 211 überprüft, um festzustellen, ob irgend
welche Befehle vom Steuerteil 3A der Bearbeitung
bedürfen. Trifft dies zu, wie es in einem Entschei
dungsblock 635 erfaßt wird, wird der angezeigte Be
fehl gemäß einem Prozeßblock 636 ausgeführt, und
dieser Befehl wird dann aus der Warteschlange 706
entfernt, wie es in einem Prozeßblock 637 angedeutet
ist. Ein typischer Befehl kann beispielsweise darin
bestehen, eine Antwortnachricht im Ausgabenachrichten
puffer 607 des gemeinsamen RAM 125 (Fig. 14) zu einem
der fünfzehn Puffer im RAM 211 (Fig. 15) zu transfe
rieren.
Falls keine Steuergerätbefehle als Warteschlange
aufgereiht sind, wird bei einem Entscheidungsblock 640
die Programmierungsgerätwarteschlange 707 überprüft.
Fall vom Programmierungsgerät 6 eine Nachricht empfangen
worden ist, wird der geeignete Befehl gemäß einem Pro
zeßblock 641 ausgeführt, und der Befehl wird dann ge
mäß einem Prozeßblock 642 aus der Warteschlange 707
entfernt. Ein solcher Befehl kann beispielsweise darin
bestehen, vom Programmierungsgerät 6 empfangene und
in einem der Puffer 242 (Fig. 15) gespeicherte Daten
zu interpretieren und einen Befehl zu erstellen, der
über die Eingabenachrichtenpuffer 605 im gemeinsamen
RAM 125 (Fig. 14) zum Steuerteil 3A weitergeleitet
wird. Ein anderer Befehl vom Programmierungsgerät 6
kann ein Aufruf zur Änderung der Betriebsart des
speicherprogrammierbaren Steuergeräts sein. Ein solcher
Befehl wird dadurch ausgeführt, daß die geeignete Sy
stemflagge 611 (d. h. R, T oder P) im gemeinsamen
RAM 125 gesetzt wird.
Es ist ersichtlich, daß der Scheduler wie eine
Informationsleitung arbeitet, die zwischen dem Steuer
teil 3A und den Serienkanälen 5 und 10 verläuft. Vom
Mikroprozessor 205 wird auch ein Satz von Unterbre
chungsroutinen ausgeführt, um dem Scheduler bei der
Durchführung seiner Aufgaben zu helfen.
Die erste dieser Unterbrechungsroutinen ist eine
10-ms-Unterbrechungsbedienungsroutine, die in Fig. 18
gezeigt ist. Auch unter Bezugnahme auf Fig. 4 wird
ausgeführt, daß die CTC 208 einen Zeitgeber enthält,
der alle 10 ms eine Unterbrechung erzeugt und der den
Mikroprozessor 205 zur Ausführung der in Fig. 18
dargestellten Routine dirigiert. Wie in einem Prozeß
block 646 angegeben, werden die Register des Mikropro
zessors im RAM 211 aufbewahrt, und es wird ein Unter
brechungsbefehl in den gemeinsamen RAM 125 einge
schrieben, wie es aus einem Prozeßblock 646 hervor
geht. Das Steuerteil 3A wird dann dadurch unterbrochen,
daß eine Einschreibung in die Ausgangsverriegelung
(Fig. 3) erfolgt, wie in einem Prozeßblock 647 ange
deutet, und ein Überwachungszeitgeber wird bei einem
Prozeßblock 648 zurückgesetzt. Die Register des Mikro
prozessors werden dann wieder bei einem Prozeßblock 649
hergestellt, und das System kehrt zu dem unterbrochenen
Programm zurück. Der Unterbrechungsbefehl 606 Fig. 14)
enthält einen Code, der dem Steuerteil 3A die Funktion
anzeigt, die es während der Bedienung der Unterbrechung
ausführen soll, welche von dieser Routine alle 10 ms
initiiert wird. Diese Funktionen enthalten:
Diagnostische oder Überprüfungs-(Watchdog) Fehler - unmittelbar
Überprüfung (Watchdog) zurücksetzen - unmittelbar
Blocktransfer beendet
Nachricht bereit im Eingabepuffer 605
Kontakthistogrammdatenaufruf
Diagnostische oder Überprüfungs-(Watchdog) Fehler - unmittelbar
Überprüfung (Watchdog) zurücksetzen - unmittelbar
Blocktransfer beendet
Nachricht bereit im Eingabepuffer 605
Kontakthistogrammdatenaufruf
Eine zweite Unterbrechung des Mikroprozessors 205
kann hervorgerufen werden durch das Steuerteil 3A, wenn
dieses einschreibt in die Verriegelung 130 (Fig. 3).
Tritt diese Unterbrechung auf, dirigiert die CTC 208
den Mikroprozessor 205 zu einer in Fig. 19 dargestellten
Unterbrechungsbedienungsroutine. Der Mikroprozessor 205
führt diese Routine dadurch aus, daß er zunächst die
Mikroprozessorregister bewahrt, wie in einem Prozeß
block 655 angedeutet, und dann den Unterbrechungsbefehl
606 im gemeinsamen RAM 125 liest, wie aus dem Prozeß
block 656 ersichtlich. Dieser Unterbrechungsbefehl kann
irgendeine der folgenden Funktionen enthalten:
Diagnostischer Fehler - unmittelbar
Blocktransferaufruf - unmittelbar
Ausgabenachrichtenpuffer fertig
Diagnostischer Fehler - unmittelbar
Blocktransferaufruf - unmittelbar
Ausgabenachrichtenpuffer fertig
Wird irgendeiner der unmittelbaren Befehle erfaßt,
wie von einem Entscheidungsblock 657 festgestellt, wird
der angezeigte Befehl bei einem Prozeßblock 658 ausge
führt. Andernfalls werden die Daten im Ausgabenachrich
tenpuffer 607 als Befehl zur Steuergerätwarteschlange 706
im RAM 211 (Fig. 15) transferiert. Dies wird mittels
eines Prozeßblocks 659 erreicht, und nach Beendigung
dieses Vorgangs werden die Mikroprozessorregister wieder
hergestellt und zwar bei einem Prozeßblock 660, und das
System kehrt von der Unterbrechung zurück. Das oben
beschriebene Schedulerprogramm wird mit der Weiterver
arbeitung des transferierten Steuergerätbefehls fort
fahren, wenn dafür Zeit zur Verfügung steht.
Es kann noch eine weitere Unterbrechung des Mikro
prozessors 205 durch den Mikrocomputer 210 (Fig. 4) ini
tiiert werden. Geschieht dies, dirigiert die CTC 208
den Mikroprozessor 205 zu einer Unterbrechungsbedie
nungsroutine, die lediglich die Tatsache registriert,
daß der Serienkanal 5 inaktiv ist. In Abhängigkeit von
den Umständen kann dieser Vorfall als eine Störung in
terpretiert werden. Versucht beispielsweise das Steuerteil
3A eine Antwortnachricht an das Programmierungs
gerät 6 auszusenden, und dieses ist abgetrennt worden,
wird eine Störung angezeigt.
Wie oben angedeutet, ist der Mikrocomputer 210
so programmiert, daß er wie ein "intelligentes" Steuer
gerät mit Direktzugriffsspeicher arbeitet, das die
Eingabe- und Ausgabeinformation handhabt, welche durch
die beiden Serienkanäle 5 und 10 fließt. Der Mikro
computer 210 wird in erster Linie von Unterbrechungen
von der SCC 227 angesteuert, obgleich er auch vom
Mikroprozessor 205 unterbrochen werden kann, wenn
dieser einen Störungszustand diagnostiziert, der die
Beendigung von allen weiteren Übertragungen fordert.
Obgleich der Mikroprozessor 210 in erster Linie
von Unterbrechungen angesteuert wird, führt er auch
ein in Fig. 20 dargestelltes Hauptprogramm aus. Beim
anfänglichen Hochfahren der Versorgungsenergie wird
ein Satz von Befehlen ausgeführt, die zum initialisie
ren von Datenstrukturen und zum Freigeben von Unter
brechungen dienen, wie bei einem Prozeßblock 670 an
gedeutet. Es wird dann bei 671 in eine Schleife einge
treten, in deren Verlauf Überprüfungen vorgenommen wer
den, um zu bestimmen, ob ein E/A-Gestell vollständig
abgetastet worden ist oder ob eine Nachricht über den
Serienkanal 5 empfangen oder ausgesendet worden ist.
Wie insbesondere aus Fig. 4, 15 und 20 ersichtlich, wird
bei einem Entscheidungsblock 672 eine interne Flagge
überprüft, um festzustellen, ob ein E/A-Gestell abge
tastet worden ist. Trifft dies zu, werden Zeiger ge
setzt, und zwar mit dem Ziel, das nächste E/A-Gestell 11
bei einem Prozeßblock 673 abzutasten, und gemäß einem
Entscheidungsblock 674 wird dann überprüft, um fest
zustellen, ob das letzte E/A-Gestell abgetastet worden
ist. Trifft dies nicht zu, zweigt das System zu einem
Prozeßblock 675 ab, um den E/A-Gestellstatus 705 aus dem
RAM 211 auszulesen und ihn zur Verwendung durch die
E/A-Abtastunterbrechungsbedienungsroutine aufzubewah
ren. Andernfalls wird eine "E/A-Abtastung-Getan"-
Flagge beim Prozeßblock 676 gesetzt, und die Zeiger
werden zurückgesetzt, zwecks Abtastung des ersten E/A-
Gestells 11 beim Prozeßblock 677. Der E/A-Gestellstatus
705 wird aus dem RAM 211 ausgelesen, und die E/A-Abtast
unterbrechungsbedienungsroutine wird zur Abtastung des
ersten E/A-Gestells 11 gesetzt, wie in einem Prozeß
block 678 gezeigt. Wie durch einen Prozeßblock 679 an
gedeutet, wird dann eine Anzahl von diagnostischer
Tests durchgeführt, bevor die "E/A-Abtastung-Getan"-
Flagge zurückgesetzt und in der Schleife zurückgegangen
wird, um die E/A-Gestelle erneut abzutasten.
Immer noch unter Bezugnahme auf Fig. 4, 15 und 20
wird ausgeführt, daß nach Überprüfung des Status der
E/A-Gestellabtastung eine interne Flagge bei einem
Entscheidungsblock 680 überprüft wird, um festzustellen,
ob die SCC 277 die Aussendung oder den Empfang einer
Nachricht vollendet hat. Trifft dies zu, wird eine
interne Empfangen/Senden-Flagge beim Entscheidungs
block 681 überprüft, und falls eine Nachricht empfangen
worden ist, wird bei einem Entscheidungsblock 682 eine
Überprüfung dahingehend durchgeführt, ob ein Befehl
oder eine Bestätigung empfangen worden ist. Ist ein
Befehl empfangen worden, werden die "SA"- und "MA"-
Flaggen in dem geeigneten Nachrichtenpuffer 242 zu
sammen mit einer internen "Bestätigungs"-Flagge gesetzt,
wie in einem Prozeßblock 683 gezeigt. Andernfalls wird
eine interne "Berechtigungs"(token)-Flagge bei einem
Entscheidungsblock 684 überprüft, um festzustellen, ob
dem Prozessor-Baustein 3 die Herrschaft über den Serien
kanal 5 gegeben worden ist. Falls nicht, wird die Nach
richtenunterbrechungsbedienungsroutine gesetzt, so daß
eine Nachricht am Serienkanal 5 empfangen werden kann,
wie es in einem Prozeßblock 685 gezeigt ist. Ist dem
Prozessor-Baustein 3 die Herrschaft gewährt worden,
wird ein Satz von Anweisungen, wie im Prozeßblock 686
angedeutet, ausgeführt, um irgendwelche Nachrichten in
der Steuergerätbefehlswarteschlange 706 zu lokalisie
ren, die fertig zum Aussenden sind. Wird eine solche
Nachricht gefunden, wird die Nachrichtenunterbrechungs
bedienungsroutine gesetzt, um diese Nachricht auszu
senden.
Ist eine Nachricht ausgesendet worden, was von
einem Entscheidungsblock 681 festgestellt wird, wird
bei einem Entscheidungsblock 687 die "Bestätigungs"-
Flagge überprüft, um festzustellen, ob eine Bestäti
gung gerade übertragen worden ist.
Trifft dies zu, wird die Flagge zurückgesetzt, und
das System zweigt zu einem Entscheidungsblock 684 ab,
um die nächste Nachricht auszusenden oder zu empfangen.
Andernfalls ist ein Befehl an den Serienkanal 5 ausge
sendet worden, und wie es in einem Prozeßblock 688 an
gedeutet ist, wird eine Nachrichtenunterbrechungsbedie
nungsroutine gesetzt, um auf die Bestätigung von der
anderen Station an diesem Kanal zu warten (d. h. von
dem Programmierungsgerät 6).
Im folgenden wird insbesondere auf Fig. 4, 15 und
21 Bezug genommen. Immer dann, wenn ein Zeichen über
den Fern-E/A-Kanal 10 empfangen oder ausgesendet wor
den ist, unterbricht die SCC 227 den Mikrocomputer 210
und dirigiert ihn zu einer E/A-Gestellunterbrechungs
bedienungsroutine. Während der Ausführung dieser Rou
tine werden die Register des Mikrocomputers, wie aus
einem Verarbeitungsblock 800 ersichtlich, bewahrt, und
die Routine zweigt bei einem Entscheidungsblock 801
ab, und zwar in Abhängigkeit davon, ob ein Zeichen
empfangen oder ausgesendet worden ist.
Ist ein Zeichen ausgesendet worden, wird bei einem
Entscheidungsblock 807 das "Ausgaben-Getan"-Bit (OD)
im E/A-Gestellstatuswort 705 überprüft, um festzustel
len, ob das letzte Byte der Ausgabedaten ausgesendet
worden ist. Ist dies nicht der Fall, werden andere Bits
im Statuswort 705 bei einem Entscheidungsblock 808
überprüft, um festzustellen, ob das E/A-Gestell aktiv
ist. Wenn nicht, wird das OD-Bit bei einem Prozeßblock
809 gesetzt. Andernfalls wird bei einem Prozeßblock 810
ein Byte aus der Ausgabebildtabelle 241B ausgelesen und
für Aussendungszwecke an die SCC 227 übermittelt, wie
aus einem Prozeßblock 811 ersichtlich. Wenn das letzte
Byte für das gegenwärtige E/A-Gestell ausgesendet wor
den ist, wie in einem Entscheidungsblock 812 entschie
den, wird bei 813 das "OD" Bit im E/A-Gestellstatuswort
705 gesetzt, und die Routine kehrt zurück, nachdem bei
806 die Register des Mikrocomputers wiederhergestellt
worden sind. Auf diese Weise wird die Ausgabebildtabel
le 241B byteweise, d. h. ein Byte zu einer Zeit, an das
gegenwärtige E/A-Gestell ausgesendet, bis alle Ausga
ben im E/A-Gestell aktualisiert worden sind.
Für die folgende Erläuterung wird immer noch auf
Fig. 21 und 15 Bezug genommen. Nachdem die Ausgaben
aktualisiert worden sind, wie durch einen Entscheidungs
block 807 festgestellt, wird das "ID"-Bit im E/A-Gestell
statuswort 705 bei einem Entscheidungsblock 815 über
prüft. Ist dieses Bit zurückgesetzt, wird dadurch an
gezeigt, daß die Eingaben auf dem laufenden oder gegen
wärtigen Stand sind und nicht aktualisiert zu werden
brauchen. Das ID-Bit wird vom Mikroprozessor 205 gesetzt,
wenn dieser das Schedulerprogramm (Fig. 17) ausführt,
um die Eingabebildtabelle 241A zum gemeinsamen RAM 124
(Fig. 3) zu transferieren. Besteht keine Veranlassung
zur Aktualisierung der Eingaben, wird bei einem Prozeß
block 816 die "E/A-Gestell-Abgetastet"-Flagge gesetzt,
und das System kehrt von der Unterbrechung zurück, nachdem
bei einem Prozeßblock 806 die Register wieder er
neut eingespeichert oder hergestellt worden sind. An
dernfalls wird eine Weck- oder Prompt-Nachricht zum
gegenwärtigen oder laufenden E/A-Gestell übertragen,
wie bei einem Prozeßblock 817 angedeutet, und diese
Nachricht veranlaßt das E/A-Gestell mit dem Aussenden
von Eingabedaten zu beginnen.
Ist ein Zeichen empfangen worden, was von einem
Entscheidungsblock 801 festgestellt wird, wird es bei
einem Prozeßblock 802 aus der SCC 227 ausgelesen und
in den geeigneten Platz in der E/A-Bildtabelle 241A
eingeschrieben, wie in einem Prozeßblock 803 gezeigt.
Sobald das letzte Byte vom gegenwärtigen E/A-Gestell
empfangen worden ist, was von einem Entscheidungsblock
804 festgestellt wird, werden bei einem Entscheidungs
block 805 eine "E/A-Gestell-Abgetastet"-Flagge und das
ID-Bit im E/A-Gestellstatuswort 705 gesetzt. In beiden
Fällen werden bei einem Entscheidungsblock 806 die
Register wieder hergestellt, und das System kehrt von
der Unterbrechung zurück.
Der Mikrocomputer 210 wird somit derart betrieben,
daß er das Eingabebild 241A mit den Eingabestatusdaten
von den Fern-E/A-Gestellen 11 kontinuierlich aktuali
siert. In ähnlicher Weise wird er betrieben, um Daten
von der Ausgabebildtabelle 241B an die E/A-Gestelle 11
kontinuierlich auszugeben und auf diese Weise die Stell-
oder Betätigungsvorrichtungen, die von dem speicherpro
grammierbaren Steuergerät gesteuert werden, auf einem
gewünschten Stand zu halten.
Jetzt wird insbesondere auf Fig. 4, 15 und 20 Bezug
genommen. Wird ein Datenbyte entweder über den Serien
kanal 5 ausgesendet oder empfangen, unterbricht die SCC
227 den Mikrocomputer 210 und dirigiert ihn zu einer
Serienkanalunterbrechungsbedienungsroutine. Während der
Ausführung dieser Routine werden die Register des
Mikrocomputers gemäß einem Prozeßblock 825 aufbewahrt,
und bei einem Entscheidungsblock 826 wird eine Ent
scheidung darüber getroffen, ob ein Zeichen empfangen
oder ausgesendet worden ist.
Ist ein Zeichen empfangen worden, erfolgt bei einem
Block 827 eine Entscheidung darüber, ob das Zeichen die
Bestimmungsstationsnummer oder ein anderes Datenbyte
in der Nachricht ist. Handelt es sich um die Bestimmungs
stationsnummer und entspricht diese der Stationsnummer
einstellung an einem Satz von DIP-Schaltern 828, die mit
einem Eingangskanal des Mikrocomputers 210 (Fig. 4) ver
bunden sind, wird bei einem Prozeßblock 829 eine "Nach
richt-Empfangen"-Flagge zurückgesetzt, und das System
kehrt von der Unterbrechung zurück, nachdem die Register
des Mikrocomputers bei einem Prozeßblock 830 wieder her
gestellt worden sind. Wird die nachfolgende "Ursprungs"-
Stationsnummer empfangen, zweigt die Bedienungsroutine
bei einem Entscheidungsblock 827 ab, und bei einem Ent
scheidungsblock 831 wird eine Überprüfung dahingehend
durchgeführt, ob der Nachrichtenpuffer 242 im RAM 211
für diese Station zur Verfügung steht. Dies wird er
reicht durch Überprüfen des "SA"-Bit in dem geeigneten
Nachrichtenpuffersteuerbyte, und falls ein Besetzt-Zustand
festgestellt wird, wird eine Station-Besetzt-Nachricht
zurückgesandt an die Ursprungsstation, wie bei einem
Prozeßblock 832 gezeigt. Andernfalls, wenn nachfolgende
Datenbytes in der Nachricht empfangen werden, werden sie
von der SCC 227 zu dem verfügbaren Nachrichtenpuffer 242
transferiert, wie in einem Prozeßblock 833 angedeutet.
Falls die Nachricht nicht vollständig empfangen worden
ist, was von einem Entscheidungsblock 834 festgestellt
wird, werden die Register bei 830 wieder hergestellt, und
das System kehrt zurück, um auf den Empfang des nächsten
Byte in der Nachricht zu warten.
Ist die gesamte Nachricht empfangen worden, was
ein Entscheidungsblock 834 feststellt, wird bei 835
eine Bestätigungsnachricht zurück zur Ursprungsstation
übermittelt. Die "Nachricht-Vollständig"-, "Nachricht-
Empfangen"- und "Bestätigung-Ausgesendet"-Flaggen
werden alle bei einem Prozeßblock 836 gesetzt, und
dann wird bei einem Entscheidungsblock 837 überprüft,
ob dem speicherprogrammierbaren Steuergerät die
Netzwerkherrschaftsberechtigung bewilligt worden ist.
Trifft dies zu, wird die "Berechtigungs"- oder "Bele
gungs"-Flagge ("token" flag) bei 838 gesetzt. Im
übrigen kehrt das System von der Unterbrechung über
den Prozeßblock 830 zurück.
Immer noch unter Bezugnahme auf Fig. 4, 15 und 20
wird ausgeführt, daß nach dem Aussenden eines Zeichens
durch den Serienkanal 5 die Serienkanalunterbrechungs
bedienungsroutine bei einem Entscheidungsblock 826 zu
einem Prozeßblock 840 abzweigt. Die in einem Prozeß
block 840 angedeuteten Anweisungen dirigieren den Mikro
computer 210 derart, daß er das nächste Byte von dem
gegenwärtig aktiven Nachrichtenpuffer 242 liest und es
in die SCC 227 einschreibt, und zwar zum Aussenden über
den Serienkanal 5. Bei einem Entscheidungsblock 841
wird überprüft, ob das letzte Byte in der Nachricht aus
gesendet worden ist. Trifft dies zu, wird bei einem
Prozeßblock 842 die "Nachricht-Vollständig"-Flagge ge
setzt und die "Nachricht-Empfangen"- und "Bestätigung-
Ausgesendet"-Flaggen werden zurückgesetzt. Das System
kehrt dann von der Unterbrechung über den Prozeßblock
830 zurück.
Es wurde ein bevorzugtes Ausführungsbeispiel der
Erfindung beschrieben. Im Rahmen der erfindungsgemäßen
Lehre sind viele Abwandlungen und Modifikationen mög
lich. So sind beispielsweise viele alternative Maßnahmen
bekannt, um die E/A-Bildtabelle mit Daten von den
E/A-Gestellen zu aktualisieren und um mit dem Pro
grammierungsgerät zu kommunizieren.
Bezugszeichen | |
Beschreibung | |
16-Bit-Mikroprozessor 20 | MC68008 Mikroprozessor, hergestellt von Motorola Inc. |
Prioritätscodierer 48 | 8-Leitung-aus-3-Leitung-Prioritätscodierer SN74LS148 hergestellt von Texas Instruments |
Decodierschaltung 26 | 20L10 und 20 × 4 programmierbare Anordnungslogik, hergestellt von Monolithic Memories Inc. |
RAM 35 | 8K × 8 Direktzugriffsspeicher, Serien-Nr. HM6264LP hergestellt von Hitachi |
ROM 23 | 32K × 8 UV löschbarer PROM, Serien-Nr. 27256, hergestellt von Intel |
RAM 125 | 2K × 8 Direktzugriffsspeicher, Serien-Nr. 6116, hergestellt von Hitachi |
Bidirektionale Tore 104, 106, 216, 228, 136 | Bidirektionale Bus-Sendeempfänger, Serien-Nr. 74LS245 hergestellt von Texas Instruments |
Tore 120, 103, 121, 105, 215, 236, 410, 411, 412, 424 | 3-Zustands-Octalpuffer und Leitungstreiber, Serien-Nr. 74LS244 hergestellt von Texas Instruments |
1-aus-16-Decodierer 135 | Zwei 3-aus-8-Decodierer, Serien-Nr. 74LS138, hergestellt von Texas Instruments |
Eingabemultiplexer 131 | Zwei 8-Bit-Multiplexer, Serien-Nr. 74LS251, hergestellt von Texas Instruments |
Ausgabeverriegelung 130 | Adressierbares 8-Bit-Latch, Serien-Nr. 74LS259, hergestellt von Texas Instruments |
Mikroprozessor 205 | 8-Bit-Mikroprozessor, Serien-Nr. Z8400, hergestellt von Zilog Inc. |
ROM 206 | 16K × 8 UV löschbarer PROM, Serien-Nr. 27128, hergestellt von Intel |
CTC 208 | Zähler/Zeitgeber-Schaltung, Serien-Nr. Z8430, hergestellt von Zilog Inc. |
Adreßverriegelung | 226 Octales D-Typ Transparentlatch, SN74LS373, hergestellt von Texas Instruments |
Mikrocomputer 210 | Einzelchipmikrocomputer, Serien-Nr. Z8611, hergestellt von Zilog Inc. |
SCC 227 | Serielle Eingabe/Ausgabe-Steuerung, Serien-Nr. Z8030, hergestellt von Ziolg |
Kontaktplanprogrammzähler 40 | Vier 4-Bit-Synchronzähler, Serien-Nr. 74LS161 |
Echtzeitzähler 426 | Drei BCD-Zähler, Serien-Nr. 74LS192 und zwei Binärzähler, Serien-Nr. 74LS193 |
Verriegelungen 420, 422 und 450 | Octales D-Typ Transparentlatch, Serien-Nr. 74LS373 |
Tore 458 und 459 | Tore mit 3-Zustands-Ausgängen, Serien-Nr. 74LS125 |
Verriegelung 440 | Octales D-Typ Flipflop, Serien-Nr. 74LS273 |
Tore 457 | Octale Puffer und Leitungstreiber, Serien-Nr. 74LS240 |
3-auf-8-Decodierer 442 und 456 | Decodierer/Demultiplexer, Serien-Nr. 74LS138 |
1-auf-8-Selektor 452 | Daten-Selektor/Multiplexer, Serien-Nr. 74LS151 |
2-auf-4-Decodierer 443 | Decodierer/Demultiplexer, Serien-Nr. 74LS139 |
Das in diesem Anhang beschriebene Strukturplan
programm ist ein Beispiel für ein Programm, das unter
Verwendung des Programmierungsgeräts 6 in das speicher
programmierbare Steuergerät eingegeben werden kann.
Dieses Programm wird in Verbindung mit einem Prozeß
beschrieben, der in Fig. 23 bildlich dargestellt ist.
Eine derartige bildliche Darstellung des von dem
speicherprogrammierbaren Steuergerät gesteuerten Pro
zesses ist typisch für Darstellungen, wie sie von
hochauflösenden Farbdarstellungsanschlußgeräten wieder
gegeben werden, die unter der Bezeichnung "Advisor" von
der Allen-Bradley Company, Inc. vertrieben werden. Bei
dem beispielhaften Prozeß wird eine Trockensubstanz
verwogen, mit einer Flüssigkeit und Wasser vereint,
gemischt und als resultierendes Produkt abgegeben. Der
Mischer kann auch mit Wasser ausgewaschen werden.
Eine Funktionsplandarstellung dieses Prozesses ist
in Fig. 24 dargestellt. Jeder Block in diesem Plan re
präsentiert einen Zustand oder einen Schritt, und jeder
Block hat einen entsprechenden Descriptor 506, der in
der Strukturplandefinition 504 im RAM 35 gespeichert
ist. Die resultierende Strukturplandefinition 504 ist
in Fig. 25 dargestellt. Es sei bemerkt, daß der Des
cirptor Nr. 1 eine gleichzeitige Divergenz ist, die
veranlaßt, daß die beiden Descriptoren Nr. 3 und Nr. 4
gleichzeitig aktiv werden, wenn das als Datei Nr. 34
gespeicherte Kontaktplanprogramm vollendet ist.
Jede Strukturplandefinition zeigt mit ihrer
Programmdateinummer ein Kontaktplanprogramm an, das
ausgeführt werden soll, wenn der Descriptor auf der
Aktivzustandsliste 505 (Fig. 12A) aufgelistet ist.
Das folgende sind graphische Darstellungen dieser
beispielshaften Kontaktplanprogramme, wie sie auf dem
Bildschirm 8 des angeschlossenen Programmierungsgeräts
6 erscheinen. Diese Kontaktplanprogramme sind ähnlich
denjenigen, die von zahlreichen handelsüblichen spei
cherprogrammierbaren Steuergeräten verwendet werden,
allerdings bis auf einen wesentlichen Unterschied.
Dieser Unterschied ist die "Struktur-Rückkehr"-Anwei
sung ("STRUCTURE RETURN" instruction), die erforderlich
ist, um geeignete Parameter an die Strukturplaninter
pretierroutine zu leiten. Die Struktur-Rückkehr ist
eine "Ausgabe"-Anweisung dergestalt, daß sie lediglich
ausgeführt wird, wenn der Sprossenzustand (rung condi
tion) "wahr" ist, nachdem die vorangegangenen Anwei
sungen auf ihrer Sprosse (rung) ausgeführt sind. Der
Operand der Struktur-Rückkehr-Anweisung identifiziert
den Rückkehrwert, der von der Strukturplaninterpretier
routine verwendet wird und der diejenigen E/A-Gestelle
identifiziert, die von der E/A-Abtastroutine abgetastet
werden müssen, und zwar im Anschluß nach jeder Abtastung
durch das Kontaktplanprogramm (Fig. 10).
In den folgenden Kontaktplänen hat das Zeichen
"#" die Bedeutung von Nr.
Claims (5)
1. Verfahren zum Steuern einer Maschine mit einer mit der Maschine verbundenen spei
cherprogrammierbaren Steuerung, die einen Speicher (35) zur Speicherung einer Vielzahl
Kontaktplanprogramme, von denen jedes einen Satz Kontaktplanprogrammanweisungen ent
hält, die die Funktionen angeben, welche die Maschine bei der Ausführung der Anweisungen
ausüben soll, und einen Prozessor (20, 30) zur Ausführung der Anweisungen zwecks Führung
des Betriebs der Maschine durch eine Sequenz von Zuständen aufweist, welches Verfahren
enthält:
Speicherung eines die Sequenz von Zuständen definierenden Strukturplanprogramms (504) in dem Speicher (35), und
Verarbeitung des gespeicherten Strukturplanprogramms (504),
dadurch gekennzeichnet,
daß in dem Speicher (35) eine Aktivzustandliste (505) gespeichert wird, die dem derzeitigen Zustand der Maschine zugeordnete Kontaktplanprogramme, welche gerade auszuführen sind, anzeigt, und daß jedes der Kontaktplanprogramme eine Kontaktplanprogrammanweisung (559, 561) enthält, die bei ihrer Ausführung durch den Prozessor (20, 30) eine gegebenenfalls vorzunehmende Änderung des derzeitigen Zustands der Maschine zu einem anderen ihrer Zustände anzeigt, und daß die Verarbeitung des gespeicherten Strukturplanprogramms (504) die folgenden Schritte enthält:
Speicherung eines die Sequenz von Zuständen definierenden Strukturplanprogramms (504) in dem Speicher (35), und
Verarbeitung des gespeicherten Strukturplanprogramms (504),
dadurch gekennzeichnet,
daß in dem Speicher (35) eine Aktivzustandliste (505) gespeichert wird, die dem derzeitigen Zustand der Maschine zugeordnete Kontaktplanprogramme, welche gerade auszuführen sind, anzeigt, und daß jedes der Kontaktplanprogramme eine Kontaktplanprogrammanweisung (559, 561) enthält, die bei ihrer Ausführung durch den Prozessor (20, 30) eine gegebenenfalls vorzunehmende Änderung des derzeitigen Zustands der Maschine zu einem anderen ihrer Zustände anzeigt, und daß die Verarbeitung des gespeicherten Strukturplanprogramms (504) die folgenden Schritte enthält:
- a) Auswahl eines in der Aktivzustandsliste (505) angezeigten Kontaktplanpro gramms,
- b) Verarbeitung des ausgewählten Kontaktplanprogramms zur Steuerung der Maschine durch Auslesen der Kontaktplanprogrammanweisungen aus dem Speicher (35) und Ausführen der ausgelesenen Anweisungen in dem Prozessor (20, 30),
- c) Änderung der Aktivzustandsliste (505) durch Löschung der Anzeige auf das verarbeitete Kontaktplanprogramm, wenn eine Zustandsänderung der Maschine von der Kontaktplanprogrammanweisung bei ihrer Verarbeitung angezeigt wird, und durch das Hinzu fügen einer Anzeige auf wenigstens eines der Kontaktplanprogramme, das dem sich aus dem Strukturplanprogramm ergebenden Zustand zugeordnet ist, der dem momentanen Zustand folgt,
- d) Wiederholung der Schritte (a), (b) und (c).
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Verarbeitung des aus
gewählten Kontaktplanprogramms die wiederholte Ausführung der Kontaktplanpro
grammanweisungen in dem ausgewählten Kontaktplanprogramm umfaßt, bis bei der Ausfüh
rung der genannten Kontaktplanprogrammanweisung eine Zustandsänderung angezeigt und
das Kontaktplanprogramm abgewählt wird.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß in der Aktivzu
standsliste (505) Indikatoren gespeichert werden, welche diejenigen der Vielzahl der gespei
cherten Kontaktplanprogramme identifizieren, die dem derzeitigen Zustand der Maschine
zugeordnet sind, daß das zu verarbeitende Kontaktplanprogramm aus denjenigen Kontakt
planprogrammen ausgewählt wird, die in der gespeicherten Aktivzustandsliste (505) ange
zeigt werden, und daß die Abwahl eines Kontaktplanprogramms durch Entfernen seines Indi
kators aus der Aktivzustandsliste (505) vorgenommen wird.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß für jedes Kontaktplanpro
gramm eine Strukturplandefinition (506) in dem Speicher (35) gespeichert wird und jede
Strukturplandefinition (506) eine Dateinummer enthält, die das der Strukturplandefinition
zugeordnete Kontaktplanprogramm identifiziert, und eine Zielnummer enthält, die ein anderes
gespeichertes Kontaktplanprogramm angibt, das bei der Abwahl des zugeordneten Kontakt
planprogramms der Aktivzustandsliste (505) hinzugefügt wird.
5. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß die
Änderung der Aktivzustandsliste (505) die folgenden Schritte umfaßt: Interpretieren des
Strukturplanprogramms (504) im Anschluß an die Ausführung eines ausgewählten Kontakt
planprogramms zum Überprüfen, ob das gerade ausgeführte Kontaktplanprogramm aus der
gespeicherten Aktivzustandsliste (505) entfernt werden soll und ob andere Kontaktplanpro
gramme der gespeicherten Aktivzustandsliste hinzugefügt werden sollen, und Austreten aus
dem Strukturplaninterpreter und Eintreten in den Kontaktplaninterpreter im Anschluß an die
Durchführung etwaiger Änderungen in der gespeicherten Aktivzustandsliste (505).
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/717,221 US4742443A (en) | 1985-03-28 | 1985-03-28 | Programmable controller with function chart interpreter |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3610433A1 DE3610433A1 (de) | 1986-10-02 |
DE3610433C2 true DE3610433C2 (de) | 2002-06-20 |
Family
ID=24881185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3610433A Expired - Lifetime DE3610433C2 (de) | 1985-03-28 | 1986-03-27 | Verfahren zum Steuern einer Maschine mit einer speicherprogrammierbaren Steuerung mit Funktionsplaninterpreter |
Country Status (4)
Country | Link |
---|---|
US (1) | US4742443A (de) |
CA (1) | CA1242031A (de) |
DE (1) | DE3610433C2 (de) |
GB (1) | GB2177826B (de) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4941081A (en) * | 1985-06-03 | 1990-07-10 | Microfast Controls Corp. | Interrupt zone in rung of ladder program in programmable controller |
US5157595A (en) * | 1985-07-19 | 1992-10-20 | El Paso Technologies, Company | Distributed logic control system and method |
US5239628A (en) * | 1985-11-13 | 1993-08-24 | Sony Corporation | System for asynchronously generating data block processing start signal upon the occurrence of processing end signal block start signal |
CA1283738C (en) * | 1985-11-13 | 1991-04-30 | Atsushi Hasebe | Data processor |
US4839803A (en) * | 1986-09-05 | 1989-06-13 | Hitachi, Ltd. | Planning support method and system |
US4972365A (en) * | 1987-05-01 | 1990-11-20 | Allen-Bradley Company, Inc. | Executing downloaded user programs in a programmable controller |
US4858101A (en) * | 1987-08-26 | 1989-08-15 | Allen-Bradley Company, Inc. | Programmable controller with parallel processors |
US4937777A (en) * | 1987-10-07 | 1990-06-26 | Allen-Bradley Company, Inc. | Programmable controller with multiple task processors |
US5287548A (en) * | 1988-02-29 | 1994-02-15 | Allen-Bradley Company, Inc. | Programmable controller having a stored program with both machine language instructions and source code data |
US5023770A (en) * | 1988-04-11 | 1991-06-11 | Square D Company | High-speed press control system |
US5072356A (en) * | 1988-04-11 | 1991-12-10 | Square D Company | Ladder drum sequence controller |
JPH083731B2 (ja) * | 1988-10-18 | 1996-01-17 | 株式会社日立製作所 | プログラマブルコントローラ |
US5068778A (en) * | 1988-11-28 | 1991-11-26 | Reliance Electric Industrial Company | Industrial control system device |
US5319783A (en) * | 1989-03-31 | 1994-06-07 | Allen-Bradley Company Inc. | Programmable controller with an operator messaging function |
US5042002A (en) * | 1989-03-31 | 1991-08-20 | Allen-Bradley Company, Inc. | Programmable controller with a directed sequencer |
US5005152A (en) * | 1989-04-05 | 1991-04-02 | Allen-Bradley Company | Industrial controller with decompilable user program |
GB2232514B (en) * | 1989-04-24 | 1993-09-01 | Yokogawa Electric Corp | Programmable controller |
US5173869A (en) * | 1989-12-25 | 1992-12-22 | Mazda Motor Corporation | Method of simulating a sequential control for analyzing a production line in a production system |
JP2530380B2 (ja) * | 1990-04-02 | 1996-09-04 | 株式会社日立製作所 | プロセス制御方法及び制御用コントロ―ラ |
US5581759A (en) * | 1990-04-02 | 1996-12-03 | Hitachi, Ltd. | Apparatus and method for controlling a system process |
US5168441A (en) * | 1990-05-30 | 1992-12-01 | Allen-Bradley Company, Inc. | Methods for set up and programming of machine and process controllers |
US5212631A (en) * | 1990-08-31 | 1993-05-18 | Allen-Bradley Company, Inc. | Programmable controller processor module having multiple program instruction execution sections |
US5265005A (en) * | 1990-08-31 | 1993-11-23 | Allen-Bradley Company, Inc. | Processor for a programmable controller |
CA2048944A1 (en) * | 1990-08-31 | 1992-03-01 | Otomar S. Schmidt | Processor for a programmable controller |
US5162986A (en) * | 1990-10-19 | 1992-11-10 | Allen-Bradley Company, Inc. | Remote downloading and uploading of motion control program information to and from a motion control I/O module in a programmable controller |
CA2056829A1 (en) * | 1990-12-26 | 1992-06-27 | Michael D. Yoke | Programmable controller processor for concurrently executing multiple user programs |
US5265004A (en) * | 1991-10-15 | 1993-11-23 | Allen-Bradley Company, Inc. | Sequence controller with combinatorial Boolean logic |
US5392424A (en) * | 1992-06-11 | 1995-02-21 | Allen-Bradley Company, Inc. | Apparatus for detecting parity errors among asynchronous digital signals |
KR950009687B1 (ko) * | 1992-06-30 | 1995-08-26 | 삼성항공산업주식회사 | 프로그램어블 로직 콘트롤러용 고속 래더명령 처리장치 |
GB2268816B (en) * | 1992-07-14 | 1996-01-17 | Sony Broadcast & Communication | Controlling equipment |
US5473531A (en) * | 1993-12-28 | 1995-12-05 | At&T Corp. | Finite state machine with minimized memory requirements |
US5485620A (en) * | 1994-02-25 | 1996-01-16 | Automation System And Products, Inc. | Integrated control system for industrial automation applications |
US5619658A (en) * | 1995-05-15 | 1997-04-08 | Nvidia Corporation | Method and apparatus for trapping unimplemented operations in input/output devices |
US5896289A (en) * | 1996-09-05 | 1999-04-20 | Allen-Bradley Company, Llc | Output weighted partitioning method for a control program in a highly distributed control system |
US5796603A (en) * | 1996-10-17 | 1998-08-18 | Allen Bradley Company, Inc. | Partitioning program for highly distributed control system to reduce network traffic |
US5893105A (en) * | 1996-11-12 | 1999-04-06 | Micrografx, Inc. | Executable flowchart |
US6055632A (en) * | 1997-09-25 | 2000-04-25 | Allen-Bradley Company, Llc | Method and apparatus for transferring firmware to a non-volatile memory of a programmable controller system |
US6714996B1 (en) * | 1999-08-30 | 2004-03-30 | Mitsubishi Denki Kabushiki Kaisha | Programmable controller system and method for resetting programmable controller system |
US6640163B1 (en) * | 2002-09-30 | 2003-10-28 | Husco International, Inc. | Operating system for a programmable controller of a hydraulic system |
JP4766252B2 (ja) * | 2006-04-28 | 2011-09-07 | オムロン株式会社 | プログラマブルコントローラおよび通信ユニット |
JP6139386B2 (ja) | 2013-11-27 | 2017-05-31 | 株式会社東芝 | プログラマブルコントローラ |
JP6517474B2 (ja) * | 2014-05-12 | 2019-05-22 | 株式会社東芝 | プログラマブルコントローラ、及び演算処理システム |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2817536A1 (de) * | 1977-04-25 | 1978-10-26 | Allen Bradley Co | Programmierbares steuergeraet |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3810104A (en) * | 1972-07-31 | 1974-05-07 | Allen Bradley Co | Programmable magnetics for a numerical control system |
US4162536A (en) * | 1976-01-02 | 1979-07-24 | Gould Inc., Modicon Div. | Digital input/output system and method |
US4038533A (en) * | 1976-09-29 | 1977-07-26 | Allen-Bradley Company | Industrial control processor system |
US4149235A (en) * | 1976-12-27 | 1979-04-10 | Mcdonnell Douglas Corporation | Computer numerical control system for machine tool |
US4228495A (en) * | 1978-12-19 | 1980-10-14 | Allen-Bradley Company | Multiprocessor numerical control system |
-
1985
- 1985-03-28 US US06/717,221 patent/US4742443A/en not_active Expired - Lifetime
-
1986
- 1986-03-14 GB GB8606328A patent/GB2177826B/en not_active Expired
- 1986-03-27 DE DE3610433A patent/DE3610433C2/de not_active Expired - Lifetime
- 1986-03-27 CA CA000505336A patent/CA1242031A/en not_active Expired
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2817536A1 (de) * | 1977-04-25 | 1978-10-26 | Allen Bradley Co | Programmierbares steuergeraet |
Non-Patent Citations (2)
Title |
---|
Fachberichte Messen-Steuern-Regeln Nr.l0, Fort- schritte durch digitale Meß- und Automatisierungs-technik/INTERKAMA-Kongress 1983. Springer-Verlag Berlin und Heidelberg 1983, S.459-458 * |
Kielhorn, Otto: "Speicherprogrammierbare Steuer- ungen-Stand der Technik" in: etz Bd.105 (1984) H.11, S.534-538 * |
Also Published As
Publication number | Publication date |
---|---|
US4742443A (en) | 1988-05-03 |
GB2177826A (en) | 1987-01-28 |
CA1242031A (en) | 1988-09-13 |
GB8606328D0 (en) | 1986-04-23 |
DE3610433A1 (de) | 1986-10-02 |
GB2177826B (en) | 1989-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3610433C2 (de) | Verfahren zum Steuern einer Maschine mit einer speicherprogrammierbaren Steuerung mit Funktionsplaninterpreter | |
DE4222043C1 (de) | ||
DE2411963C3 (de) | Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken | |
DE2714805C2 (de) | ||
DE2718051C3 (de) | Datenverarbeitungsanlage mit Einrichtungen zur wechselnden Bearbeitung mehrerer Aufgaben | |
DE1524209B2 (de) | Programmgesteuerte datenverarbeitungsanlage | |
DE1499200B2 (de) | Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung | |
EP1184758A2 (de) | Verfahren zum Debuggen von Programmen für industrielle Steuerungen, insbesondere Bewegungssteuerungen, im Kontext der Flow Chart Programmierung | |
DE2713253A1 (de) | Programmlader fuer ein steuergeraet | |
DE2015971A1 (de) | Datenverarbeitungssystem zur Verarbeitung eines Stromes mehrfacher Operanden | |
DE2801563A1 (de) | Dialogprozessor | |
DE2747146A1 (de) | Datenverarbeitungsanlage | |
DE2237672A1 (de) | Fehlerpruef- und fehlerdiagnoseeinrichtung in einer elektronischen datenverarbeitungsanlage und verfahren zu deren betrieb | |
DE4226536A1 (de) | Programmierbare steuerung mit einer benutzernachrichtenfunktion | |
EP0799441B1 (de) | Verfahren zur steuerung von technischen vorgängen | |
EP0130269B1 (de) | Speicherprogrammierbare Steuerung | |
EP0838054B1 (de) | Verfahren und steuereinrichtung für eine graphische steuerung von abläufen in einem netzwerkmanagementsystem | |
DE1762205C3 (de) | Schaltungsanordnung für ein elektronisch gesteuertes Selbstwählamt | |
DE2817536A1 (de) | Programmierbares steuergeraet | |
EP0010135A1 (de) | Mikroprogrammgesteuerte Ein-/Ausgabeeinrichtung und Verfahren zum Durchführen von Ein-/Ausgabeoperationen | |
DE102008023873A1 (de) | Verfahren zum Betrieb eines Antriebssystems | |
DE3149678C2 (de) | Anordnung zur Zwischenspeicherung von zwischen zwei Funktionseinheiten in beiden Richtungen zu übertragenden Informationen in einem Pufferspeicher | |
DE2359037A1 (de) | Mikroprogrammrechnereinrichtung | |
EP1479023B1 (de) | Verfahren zum projektieren und/oder konfigurieren eines projektes | |
DE2507405A1 (de) | Verfahren und anordnung zum synchronisieren der tasks in peripheriegeraeten in einer datenverarbeitungsanlage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8128 | New person/name/address of the agent |
Representative=s name: HOLTZ MARTIN LIPPERT, 60322 FRANKFURT |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8328 | Change in the person/name/address of the agent |
Representative=s name: JUNG HML, 80799 MUENCHEN |