-
Die
Erfindung bezieht sich auf programmierbare Steuerungen zum Betreiben
industrieller Anlagen und befaßt
sich insbesondere mit Prozessoren, die für solche programmierbare Steuerungen
gedacht sind und die über
einen Satz Busse an eine Reihe von Funktionsmodulen angeschlossen
sind.
-
Hintergrund der Erfindung
-
Programmierbare
Steuerungen sind eine heute übliche
Art industrieller Rechner zum Betreiben verschiedenartiger Herstellungs-
oder Fertigungseinrichtungen, beispielsweise Montagebänder und
Werkzeugmaschinen. Dieser Betrieb der programmierbaren Steuerungen
erfolgt gemäß einem gespeicherten
Steuerprogramm. Diese Steuerungen werden daher auch speicherprogrammierbare
Steuerungen genannt. Das Programm enthält eine Folge von Prozeßsteuerungsanweisungen
oder Prozeßsteuerungsbefehlen,
die aufeinanderfolgend ausgelesen und ausgeführt werden. Die ausgelesenen
und ausgeführten
Anweisungen dienen zur Überprüfung des
Zustands ausgewählter
Sensoren oder Fühlvorrichtungen
bei der gesteuerten Einrichtung oder Anlage und zum Einschalten
oder Abschalten ausgewählter
Aktoren oder Betätigungsvorrichtungen
bei der gesteuerten Einrichtung oder Anlage in Abhängigkeit
vom Status einer oder mehrerer der überwachten Fühlvorrichtungen.
-
Der
Status oder Zustand vieler Fühl-
und Betätigungsvorrichtungen
kann durch ein einziges Datenbit dargestellt werden, das von den
Steuerprogrammanweisungen manipuliert wird. Andere Vorrichtungen
und Geräte,
wie Positionssensoren, erfordern mehrere Datenbits zur Dar stellung
eines Zustands der zu steuernden Einrichtung. Für diese zuletztgenannten Vorrichtungen
und Geräte
sind Befehle oder Anweisungen vorgesehen, die Datenbytes und Datenwörter manipulieren,
die den Status oder Zustand der Fühl- und Betätigungsvorrichtungen darstellen.
Weitere Programmbefehle oder Programmanweisungen dienen zum Ausführen arithmetischer
Operationen, Zeitgabe- und Zählfunktionen
sowie komplexen statistischen Berichtsoperationen. Solche Befehle
und Anweisungen sind in der Industrie standardisiert oder genormt
und direkt den Elementen eines Stromlaufplanes oder Kontaktplanes (ladder
logic diagram) zugeordnet, der von Prozeßsteueringenieuren leicht verstanden
wird. Programmierfelder, wie sie aus den
US-Patentschriften 3 813 649 und
4 070 702 bekannt sind,
wurden entwickelt und werden vom Anwender benutzt, um Kontaktplan-Steuerprogramme
zu entwickeln und zu editieren, die aus solchen Befehlen vom Typ
programmierbarer Steuerungen bestehen.
-
Die
programmierbare Steuerung der Reihe 1771 von Allen-Bradley ist beispielsweise
ein industrieller Rechner der beschriebenen Art. Diese programmierbare
Steuerung der Reihe 1771 enthält
einen Einschubrahmen oder ein Einschubgestell mit einer Vielzahl
von Einschubplätzen
oder Schlitzen, die zur Aufnahme verschiedener Arten von Funktionsmodulen
dienen. In einem der Schlitze ist ein Prozessormodul untergebracht,
das das anwenderdefinierte Steuerprogramm speichert und ausführt. Das
Steuerprogramm wird wiederholt ausgeführt, so daß es immer wieder für verschiedene
Werkstücke,
die von der gesteuerten Einrichtung oder Anlage zu bearbeiten sind,
dieselben logischen Operationen vornimmt. Eingabe- und Ausgabemodule,
die zum elektrischen Anschalten oder Anschließen der Fühl- und Betätigungsvorrichtungen bei der
gesteuerten Einrichtung oder Anlage dienen, sind in anderen Gestellschlitzen untergebracht.
Das Gestell hat eine Rückebene
mit Leiterbahnen, mit denen die Module elektrisch verbunden sind,
so daß sie
unter sich Daten- und
Steuersignale austauschen können.
Das Prozessormodul sammelt beispielsweise von den Eingabemodulen Daten,
die den Status oder Zustand der Fühlvorrichtungen darstellen,
und gibt Steuerbefehle an die Ausgabemodule aus, die mit den Betätigungsvorrichtungen
verbunden sind. Das Sammeln der Daten und das Ausgeben der Befehle
durch das Prozessormodul erfolgt über die Gestellrückebene.
-
Bei
zahlreichen Anwendungen programmierbarer Steuerungen ist eine relativ
hohe Verarbeitung der Eingabe- und
Ausgabedaten erforderlich. Diese Verarbeitung umfaßt beispielsweise
das Zählen
von Eingaben, um die Fertigung von Gegenständen zu verfolgen, beispielsweise
das Zählen
von Behältern längs eines
Förderbandes
zum Herstellen von Nahrungsmittelkonserven in Dosen. Zum anderen
kann beispielsweise die Notwendigkeit bestehen, unmittelbar oder
direkt auf ein gegebenes Eingangssignal durch Vornehmen einer geeigneten
Aktion anzusprechen, beispielsweise um sehr schnell an einem Werkstück einen
Klemmvorgang vorzunehmen, sobald die Gegenwart des Werkstücks festgestellt
wird. Diese Ereignisse können
häufiger
als einmal während
jedes Ausführungszyklus
durch das Kontaktplan-Steuerprogramm
auftreten. Weiterhin können sie
auftreten, während
eine andere Aufgabe oder Task ausgeführt wird. Somit besteht ein
Bedürfnis nach
einem Prozessormodul, der die Fähigkeit
hat, ausgewählte
Eingaben oder Eingänge
zu überwachen
und einfache logische Operationen vorzunehmen, ohne daß dabei
die Verarbeitungszeit eines Mikroprozessors im Prozessormodul in
Anspruch genommen wird.
-
Die
US 4,404,651 zeigt einen
programmierbaren Controller, bei welchem die gesamte Signalverarbeitung
im Hauptprozessor eines Prozessormoduls erfolgt. Der programmierbare
Controller enthält ein
Scannermodul, welches Daten zwischen dem Prozessormodul und den
E-/A-Modulen überführt.
-
Die
US 4,516,202 offenbart ein
Schnittstellensteuersystem, welches eine Einrichtung, wie etwa ein
Plattenlaufwerk, ein Magnetbandlaufwerk oder einen Zeilendrucker
mit einer Prozessorbasiseinheit verbindet.
-
Die
DE 39 10 177 A1 arbeitet
mit Steuerinstruktionen, welche durch einen programmierbaren Controller
zu entfernten Einheiten übertragen
werden, und sie schlägt
vor, das Problem zu überwinden, das
mit zeitlichen Verzögerungen
bei der Verarbeitung dieser Instruktionen einhergeht. Die erläuterte Schaltung
stellt eine spezielle Funktionseinheit bereit, welche auf die Instruktionen
von dem programmierbaren Controller rasch reagiert.
-
Die
EP 285 667 A1 bezieht
sich auf einen Sequenzcontroller, der eine sequenzielle Kontrolle zyklisch
durchführt
und welcher, wenn ein Interrupt auftritt, eine Interrupt-Prozessierung
durchführen kann.
-
Die
EP 01 20 194 A2 betrifft
eine speicherprogrammierbare Steuerung mit Wortprozessor und Bitprozessor.
Der den Programmspeicher sequenziell lesende Bitprozessor hält beim
Erkennen eines Wortbefehls an und liefert eine Information, die
der Wortprozessor als Einsprungadresse für eine dem Wortbefehl entsprechende
Programmroutine verwendet. Hierdurch ist man in der Wahl des Wortprozessors
und in der Auslegung des Bitprozessors weitgehend frei.
-
Dieter
Kleim und Bernd Rempt: „Der
Aufbau des Systems Procontic”,
BBC Nachrichten, 1973, H.8/9, Seiten 200 bis 207, beschreibt den
modularen Aufbau eines Steuerungssystems. Es wird der interne Datenaustausch
erläutert.
Am Beispiel typischer Vertreter werden die einzelnen Baugruppen
beschrieben und ein kurzer Ausblick auf die konstruktive Form und
die verschiedenen Inbetriebnahmehilfsmittel gegeben.
-
Die
DE 39 00 642 A1 betrifft
ein Eingabeverfahren für
eine Eingabeeinheit in einem programmierbaren Controller. Es wird
beschrieben, dass programmierbare Controller für hochpräzise Folgesteuerungen einer
Vielzahl von Vorrichtungen oftmals nach dem so genannten dynamischen
Eingabeverfahren, bei welchem eine Anzahl von an den Controller
gelieferten Eingangsdaten in eine Mehrzahl von Teilen unterteilt
werden, die mittels Schalteinrichtungen aufeinanderfolgend bzw.
sukzessive eingegeben werden, arbeiten. Ein Eingangsstromkreisabschnitt
zum Empfangen von Eingangssignalen hat eine Anzahl von Eingangsanschlüssen. Die
Eingangsanschlüsse
sind in Gruppen unterteilt, deren jede beispielsweise acht Eingangsanschlüsse besitzt,
sodass der Eingangsstromkreisabschnitt die Eingangssignale getrennt empfängt in Übereinstimmung
mit den Gruppen, die durch Gruppenbestimmungssignale bestimmt oder spezifiziert
sind, die an sie getrennt angelegt werden.
-
Die
EP 01 04 859 A2 betrifft
ein Speicher-Mapping zwischen Prozessoren. Die beschriebene Technik
stellt RAM-Stellen im Hauptprozessor zur Verfügung, um Eingaben von Eingabe-/Ausgabeprozessoren
zu speichern. Demnach werden Eingaben an einen Eingabe-/Ausgabeprozessor
auch über einen
Kommunikationskanal zu dem Hauptprozessor übermittelt und im RAM des Hauptprozessors
gespeichert. Alle Kontrollfunktionen oder Prozesse im Hauptprozessor,
die einen bestimmten Eingabewert benötigen oder die auf gewisse
Eingabewerte antworten, würden
bei den Eingabewerten, die im Hauptprozessorspeicher gespeichert
sind, suchen, statt in den lokalen Eingabe-/Ausgabeprozessoren.
-
Die
WO 89/11685 A1 betrifft
eine Technik zum Detektieren eines Zustandsübergangs eines Eingabesignals
von einem programmierbaren Controller. Das System umfasst einen
DMA-Controller, welcher
Eingabesignale von einer Maschine zu einem ersten Speicher und Signale
von dem ersten Speicher zu einem zweiten Speicher und zu einem dem
Speicher peripheren Schaltkreis überträgt, welcher
die Eingangssignale des ersten Speichers mit den Eingangssignalen
des zweiten Speichers in Antwort auf die Signale, die von dem Prozessor
gelesen werden, vergleicht, um einen Übergang der Eingangssignale
zu detektieren
-
Kurze Darlegung der Erfindung
-
Die
Erfindung geht aus von einer programmierbaren Steuerung, die ein
Prozessormodul und mehrere Eingabe- und Ausgabemodule enthält, die alle
in einem Einschubgestell untergebracht sind. Die Module sind über eine
Rückebene
des Gestells elektrisch miteinander verbunden. Die Eingabe- und
Ausgabemodule sind an Sensoren oder Fühlvorrichtungen und Aktoren
oder Betätigungsvorrichtungen
angeschlossen, die bei einer maschinellen Einrichtung vorgesehen
sind, welche von der programmierbaren Steuerung betrieben werden
soll. Das Prozessormodul fuhrt ein anwenderdefiniertes Steuerprogramm aus,
das den Status ausgewählter
Fühlvorrichtungen überprüft und in
Abhängigkeit
von dem überprüften Status
den Zustand spezifizierter Betätigungsvorrichtungen
setzt oder einstellt.
-
Nach
der Erfindung enthält
das Prozessormodul neben einem Mikroprozessor und einem Speicher
eine intelligente E/A-Schnittstellenschaltung (im Folgenden auch
Gestell-Schnittstellenschaltung). Der Mikroprozessor, der Speicher
und die E/A-Schnittstellenschaltung sind über einen gemeinsamen Satz
interner Signalbusse miteinander verbunden. Die E/A-Schnittstellenschaltung
steuert den Austausch von Daten über
die Gestellrückebene
mit den E/A-Modulen der programmierbaren Steuerung. Diese Schnittstellenschaltung
führt zum
einen herkömmliche
Transferfunktionen aus, gemäß denen sowohl
einzelne Bytes als auch Mehrfachbyteblöcke von Daten mit den E/A-Modulen
ausgetauscht werden. Zum anderen ist die E/A-Schnittstellenschaltung nach
der Erfindung so programmierbar, daß sie Eingabedaten vorverarbeiten
kann, bevor diese Eingabedaten den Mikroprozessor erreichen. So
ist die E/A-Schnittstellenschaltung in der Lage, einen vordefinierten
Eingabeübergang
zu erfassen und als Antwort darauf entweder den Mikroprozessor zu
unterbrechen oder die Übergänge zu zählen und
den Mikroprozessor erst nach dem Auftreten einer gegebenen Anzahl
von Übergängen zu
unterbrechen. Aufgrund einer solchen Unterbrechung führt der
Mikroprozessor eine entsprechende Unterbrechungsroutine aus, die
auf den erfaßten
Eingabezustand anspricht.
-
Aufgabe
der Erfindung ist es somit, für
eine programmierbare Steuerung ein Prozessormodul zu schaffen, das
zum Austausch von Daten mit den E/A-Modulen eine intelligente Schnittstellenschaltung
aufweist. Eine solche Schnittstellenschaltung befreit den Programmausführungsprozessor
von der Handhabung des E/A-Moduldatentransfers.
-
Diese
Aufgabe wird durch den Gegenstand der unabhängigen Patentansprüche gelöst. Bevorzugte
Ausführungsformen
werden durch die abhängigen
Patentansprüchen
definiert.
-
Das
geschaffene Prozessormodul ist in der Lage, ohne Eingriff des Mikroprozessors
das Auftreten definierter Eingabeübergänge zu erfassen und auf diese
Weise den Mikroprozessor zu entlasten.
-
Generell
ist die E/A-Schnittstellenschaltung des Prozessormoduls mit der
Fähigkeit
ausgerüstet, ankommende
oder eingegebene Daten gemäß Konfigurationsdaten
vorzuverarbeiten, die vom Anwender spezifiziert werden.
-
Kurze Beschreibung der Zeichnungen
-
Ein
bevorzugtes Ausführungsbeispiel
der Erfindung wird nachstehend an Hand von Zeichnungen beschrieben.
Es zeigt:
-
1 eine
perspektivische Ansicht eines programmierbaren Steuerungssystems,
das von der Erfindung Gebrauch macht,
-
2 ein
Funktionsblockschaltbild eines Prozessormoduls, das einen Teil des
Steuerungssystems nach 1 bildet,
-
3 Datenstrukturen
eines gemeinsamen Systemspeichers in dem Prozessormodul nach 2,
-
4 ein
Blockschaltbild einer intelligenten E/A-Schnittstellenschaltung
in dem Prozessormodul nach 2,
-
5 einen
Block Speicherplätze
in dem gemeinsamen Systemspeicher des Prozessormoduls zur Speicherung
von Konfigurationsdaten für
eine programmierbare Eingabeunterbrechungsfunktion,
-
6 ein
Flußdiagramm
eines Teils der programmierbaren Eingabeunterbrechungsfunktion,
-
7 eine
schematische Darstellung einer äquivalenten
Hardware zur Durchführung
der im Flußdiagramm
nach 6 dargestellten Funktion,
-
8 ein
Flußdiagramm
eines anderen Teils der programmierbaren Eingabeunterbrechungsfunktion,
und
-
9 einen
Datenblock mit den Ergebnissen der programmierbaren Eingabeunterbrechungsfunktion.
-
Detaillierte Beschreibung
der Erfindung
-
In 1 ist
ein programmierbares Steuerungssystem 10 dargestellt, das
ein Hauptgestell 12 und eine Reihe entfernter Eingabe/Ausgabe-
oder E/A-Gestelle
enthält,
beispielsweise das dargestellte E/A-Ferngestell 14, die über ein
serielles E/A-Netzwerk 15 miteinander verbunden sind.
-
Das
Hauptgestell 12 dient als Rahmen oder Gehäuse für ein Netzteil,
einen Prozessormodul 20, der in einem ersten Steck- oder
Einschubplatz des Hauptgestells angeordnet ist, und mehrere Eingabe/Ausgabe-
oder E/A-Schnittstellenmodule 18,
die in weiteren Steck- oder Einschubplätzen des Gestells angeordnet
sind. Das Prozessormodul 20 führt ein benutzer- oder anwenderdefiniertes
Steuerprogramm aus, das auf Meß-
oder Fühlglieder,
im folgenden Sensoren genannt, an der gesteuerten Einrichtung oder
Anlage (nicht dargestellt) anspricht und daraufhin für Betätigungs– oder Stellglieder,
im folgenden Aktoren genannt, an derselben Einrichtung oder Anlage
Signale erstellt. Die Fühl- oder Betätigungssignale,
im folgenden auch Sensor- und Aktorsignale genannt, werden bezüglich des
Hauptgestells 12 über
die Eingabe/Ausgabe-Schnittstellenmodule 18 übertragen.
Die verschiedenen Module 18 und 20 im Hauptgestell 12 sind über Leiter
auf einer Rückebene 16 des
Hauptgestells 12 elektrisch miteinander verbunden. Die
Leiter ermöglichen
es, daß zwischen
den Modulen Daten-, Adreß-
und Steuersignale ausgetauscht werden können.
-
Das
Prozessormodul 20 erhält
Programmbefehle von einem Terminal oder Anschlußgerät 11, das über ein
Kabel 13 mit einem seriellen Anschlußverbinder an der Frontplatte
des Moduls verbunden ist. Das E/A-Netzwerk 15 ist mit einem
anderen Verbinder an der Frontplatte des Prozessormoduls 20 verbunden
und mit einem Adaptermodul 19 im E/A-Ferngestell 14,
so daß die
Mög lichkeit
besteht, daß das Prozessormodul 20 mit
einer anderen Gruppe E/A-Module 18' im E/A-Ferngestell 14 Daten
austauschen kann. Ein lokales Netz 17, im folgenden LAN (Local
Area Network) genannt, ist mit einem dritten Anschlußverbinder
an der Frontplatte des Prozessormoduls 20 verbunden und
ermöglicht
es diesem Modul, mit einem Hilfs-, Gast- oder Host-Rechner sowie anderen
programmierbaren Steuerungen, die mit dem LAN verbunden sind, zu
kommunizieren. Die Kommunikation über das LAN 17 ermöglicht es
beispielsweise einem Host-Rechner, den Betrieb einer Vielzahl programmierbarer
Steuerungen, wie des Steuerungssystems 10, zu führen und
zu lenken, um auf diese Weise komplexe Herstellungs- oder Fertigungssysteme
zu überwachen
und zu leiten.
-
Wohingegen
herkömmliche
programmierbare Steuerungen im Hauptgestell 12 separate
Module benutzten, um die Funktionen bezüglich der Programmausführung, Hostkommunikation
und E/A-Ferngestellkommunikation vorzunehmen, sind bei dem hier
beschriebenen System all diese Funktionen im Prozessormodul 20 vereinigt.
Dadurch ist die Kommunikation zwischen den Modulen 18 im
Hauptgestell 12 über
die Gestellrückebene
auf den Austausch von Daten reduziert, die den Zustand der Sensoren
und Aktoren an der gesteuerten Einrichtung oder Anlage darstellen.
-
Wie
es aus 2 hervorgeht, enthält das Prozessormodul 20 ein
Allgemeinzweckprozessorteil 60 zur Ausführung des Anwendersteuerprogramms und
zwei Kommunikationsprozessorteile 21 und 70 zur
Handhabung des Austausches von Daten über das Kabel 13 und
die Netzwerke 15 und 17. Jedes dieser Teile des
Prozessormoduls hat seinen eigenen Mikroprozessor und lokalen Speicher,
die über einen
entkoppelbaren oder trennbaren Satz Adreß-, Daten- und Steuerbusse
miteinander verbunden sind. Das Prozessormodul 20 enthält auch
einen Satz gemeinsamer Busse 33 bis 35, die die
Teile 21, 60 und 70 miteinander und mit anderen
Datenverarbeitungs- und Speicherkomponenten verbinden.
-
Das
erste Kommunikationsprozessorteil 21 ist rund um einen
lokalen Adreßbus 23 und
einen lokalen Datenbus 24 ausgebildet. Verbunden mit diesen
Bussen ist ein erster Mikroprozessor 22, der zur Ausführung eines
Programms dient, das in einem ersten Festwertspeicher (ROM) 26 gespeichert
ist, und der einen ersten lokalen Schreib/Lese-Speicher oder Direktzugriffsspeicher
(RAN) 27 als Notizblock zur zeitweiligen Datenspeicherung
benutzt. Eine Haupttaktschaltung 30 liefert ein Systemtaktsignal
für andere
Komponenten in dem Prozessormodul 20 und liefert auch bestimmte
Zeitsteuer- oder Zeitgabesignale über Steuerleitungen 25 an
die Komponenten des ersten Kommunikationsprozessorteils 21.
-
Die
Hauptfunktion, die dem ersten Mikroprozessor 22 in dem
exemplarischen Prozessormodul zugeteilt ist, betrifft die Steuerung
der Kommunikation mit dem Programmierterminal 11 und dem
Lokalbereichsnetz LAN 17. Ein universeller asynchroner Empfängersender 28,
im folgenden UART genannt, verbindet die lokalen Adreß- und Datenbusse 23 und 24 über das
Kabel 13 mit dem Programmierterminal 11. Der UART 28 ist
eines von einigen im Handel verfügbaren
Geräten,
die als Schnittstelle zwischen dem parallelen Datenformat im Prozessormodul 20 und dem
seriellen Kommunikationsformat zur Kommunikation mit dem Programmierterminal 11 dienen
können.
Obgleich der Modulanschluß vom
UART 28 als mit dem Programmierterminal 11 verbunden
dargestellt ist, kann dieser Anschluß auch mit anderen Arten oder
Typen serieller Geräte
zum Zwecke des Austausches von Daten mit dem Prozessormodul 20 verbunden
werden. Die lokalen Adreß- und Datenbusse 23 und 24 sind
mit einer ersten Netzwerkschnittstelle 29 verbunden, so
daß der
erste Mikroprozessor 22 über das LAN 17 mit
anderen Geräten Daten
austauschen kann. Die erste Netzwerkschnittstelle 29 setzt
die parallelen Daten des Prozessormoduls 20 in ein seriell
formatiertes Nachrichtenpaket um, das kompatibel mit dem Protokoll
ist, welches zum Kommunizieren mit den Geräten am LAN 17 verwendet
wird.
-
Das
erste Kommunikationsprozessorteil 21 ist mit den anderen
Prozessormodulteilen über
einen Satz Tristate- oder Drei-Zustands-Adreßtore 31 und einen
Satz bidirektionaler Tristate- oder Drei-Zustands-Datentore 32 verbunden.
Die Gruppe oder der Satz Tore 31 verbindet den lokalen
Adreßbus 23 mit
dem gemeinsamen Adreßbus 33 des
Moduls, und die Gruppe oder der Satz Datentore 32 verbindet
den lokalen Datenbus 24 mit dem gemeinsamen Datenbus 34 des
Moduls. Eine Gruppe oder ein Satz Steuerleitungen 35 erstreckt
sich zwischen den Modulkomponenten. Diese Steuerleitungen werden
nachstehend auch Steuerbus genannt.
-
Der
beschriebene Verbindungsaufbau der Busse gestattet es, daß der erste
Mikroprozessor 22 Daten in einen gemeinsamen System-RAM 36 schreiben
und daraus auslesen kann, der mit den gemeinsamen Adreß- und Datenbussen 33 und 34 verbunden
ist. Die Datenorganisation innerhalb des gemeinsamen System-RAM 36 ist
in 3 dargestellt. Ein Block Speicherplätze des
gemeinsamen System-RAM enthält
herkömmliche
Gruppen oder Sätze von
Datentabellen 41 bis 43 für das Prozessormodul 20.
Die erste Datentabelle 41 dieser Datentabellen speichert
Eingabedaten, die den Zustand der Sensoren an der gesteuerten Einrichtung
oder Anlage darstellen. In der Datentabelle 21 werden daher
in einer organisierten Weise Daten gespeichert, die von E/A-Modulen 18 vom
Eingabetyp in den Haupt- und Ferngestellen 12 und 14 stammen.
Die zweite Datentabelle 42 dient zur Speicherung von Ausgabedaten, die
den Zustand der Aktoren an der gesteuerten Einrichtung oder Anlage
darstellen, die von dem programmierbaren Steuerungssystem 10 betrieben wird.
Unter Anwendung einer ähnlichen
Organisation spei chert die Ausgabetabelle 42 die zur Steuerung der
Aktoren verwendeten Daten, die mit E/A-Modulen 18 vom Ausgabetyp
in den Gestellen 12 und 14 verbunden sind. Die
weitere oder dritte Datentabelle 43 speichert Information,
die den Status der programmierbaren Steuerung 20 und ihrer
Komponenten betrifft. Sofern es erforderlich ist, können weitere
oder zusätzliche
Datentabellen in dem gemeinsamen System-RAM 36 gespeichert
werden.
-
Ein
Block Speicherplätze 44 im
gemeinsamen System-RAM 36 speichert
das vom Anwender geschriebene oder anwenderdefinierte Steuerprogramm.
In Abhängigkeit
von der spezifischen Definition dieses vom Anwender erstellten Programms kann
dieser Speicherplatzblock 44 ein einziges Leiternetzverknüpfungs-
oder Kontaktplan-Steuerprogramm
oder eine Reihe solcher Programme speichern, die in einer durch
ein herkömmliches
Funktionsdiagramm definierten Sequenz auszuführen sind. Im zuletzt genannten
Fall sind auch die Funktionsdiagrammdatendateien im Block 44 zusammen
mit den Kontaktplan-Steuerprogrammen
gespeichert. Im Anschluß an
die Speicherplätze,
die von dem oder den Steuerprogrammen eingenommen werden, folgt
ein Abschnitt freier Speicherplätze 45.
In einem weiteren Speicherplatzabschnitt 46 des gemeinsamen
System-RAM wird eine E/A-Zwangsdatentabelle gespeichert, die ähnlich derjenigen
ist, wie sie in herkömmlichen
programmierbaren Steuerungen mit dem Ziel verwendet wird, die Steuerdaten
von bestimmten Sensoren oder Aktoren auf einen vorgegebenen Logikzustand
zu setzen oder zu zwingen. Ein Speicherplatzabschnitt 47 bei
hohen Adressen des gemeinsamen System-RAM 36 wird benutzt zum Speichern von
Konfigurationsdaten für
die System-, Prozessormodul- und Mikroprozessorebene. Die Konfigurationsdaten
definieren beispielsweise Paßwort-
und Privilegieninformation, Anschlußkommunikationsparameter und
Ereigniszeitauslöseintervalle.
-
Wie
es aus 2 hervorgeht, ist ein Kontaktplanlogikprozessor 50 mit
den gemeinsamen Adreß- und
Datenbussen 33 und 34 verbunden. Die weitaus größte Majorität der Kontaktplansteuerprogrammbefehle
arbeitet auf ein einziges Bit oder Datenwort. Der Kontaktplanlogikprozessor 50 ist
so ausgelegt und konstruiert, daß er den Teilsatz der Kontaktplanbefehle,
die diese grundsätzlichen
Steueroperationen vornehmen, ausführt. Damit ist nicht nur für eine effiziente
Ausführung
der am häufigsten
auftretenden Befehle gesorgt, sondern es sind auch die Mikroprozessoren
im Modul 20 frei, andere Funktionen gleichzeitig mit der
Steuerprogrammausführung
durchzuführen.
Der Kontaktplanlogikprozessor 50 schlichtet auch miteinander
konkurrierende Zugriffsanforderungen der Prozessormodulkomponenten
zu den gemeinsamen Bussen 33 bis 35 und erteilt
diese Zugriffe auf der Grundlage einer vordefinierten Priorität.
-
Bestimmte
Funktionen, wie Datenblocktransfers zu den E/A-Modulen 18 und
komplexe mathematische und logische Operationen können von
dem Kontaktplanlogikprozessor 50 nicht vorgenommen werden.
Diese komplexen Steuerprogrammfunktionen werden von dem Allgemeinzweckrechnerteil 60 ausgeführt. Dieses
Teil des Prozessormoduls 20 enthält einen zweiten Mikroprozessor 61,
der mit seinem eigenen trennbaren Satz Adreß- und Datenbusse 62 und 63 verbunden
ist. Dieses Paar Busse 62 und 63 verbindet den
zweiten Mikroprozessor 61 mit einem zweiten ROM 64 und
einem zweiten lokalen Direktzugriffsspeicher RAM 65. Der
zweite ROM 64 speichert die Firmware oder das Festprogramm,
das von dem zweiten Mikroprozessor 61 ausgeführt wird,
um die komplizierteren Kontaktplanlogikoperationen vorzunehmen.
Die Firmware im ROM 64 interpretiert auch das Funktionsdiagramm,
wenn ein solches vom Anwender definiert ist.
-
Viele
der Anwendersteuerprogrammbefehle, die der Kontaktplanlogikprozessor 50 nicht
durchführen
kann, sind komplexe arithmetische Operationen. Ein herkömmlicher
mathematischer Koprozessor 66 ist daher vorgesehen, der
dazu dient, die entsprechenden Befehle effizienter auszuführen, als
dies durch die Verwendung des zweiten Mikroprozessors 61 möglich wäre. Eine
Zeitsteuer- oder Zeitgabeschaltung 67 empfängt das
Systemtaktsignal und leitet daraus die notwendigen Zeitgabe- und
Steuersignale für
den zweiten Mikroprozessor 61, die Speicher 64 und 65 sowie
den mathematischen Koprozessor 66 ab. Ein Paar Tristate-
oder Drei-Zustands-Übertragungstore 68 und 69 isolieren
oder trennen die Adreß-
und Datenbusse 62 und 63 des Allgemeinzweckprozessorteils 60 von
den gemeinsamen Adreß-
und Datenbussen 33 und 34. Wenn diese Tore 68 und 69 aufgrund
eines Steuerungsbefehls vom zweiten Mikroprozessor 61 freigegeben
oder durchgeschaltet sind, ist der interne Satz Busse 62 und 63 mit
den gemeinsamen Bussen 33 und 34 elektrisch verbunden.
Diese Durchschaltung tritt nur auf, wenn der zweite Mikroprozessor 61 einen
Zugriff zu dem gemeinsamen Systemspeicher anfordert und den Zugriff
zu den Bussen 33 und 34 durch eine Schlichtungsschaltung
im Kontaktplanlogikprozessor 50 gewährt bekommen hat.
-
Wie
bereits bemerkt, ist das Prozessormodul 20 über ein
E/A-Netzwerk 15 mit einem oder mehreren E/A-Ferngestellen 14 verbunden.
Das Prozessormodul verwendet das zweite Kommunikationsprozessorteil 70 mit
einem dritten Mikroprozessor 71 zur Steuerung der Sammlung
von Sensordaten und der Übertragung
von Aktorzustandssteuerbefehlen zu diesen Ferngestellen. Der dritte
Mikroprozessor 71 ist mit einem weiteren Satz trennbarer
Adreß- und Datenbusse 72 und 73 sowie
einem Satz Steuerleitungen 78 verbunden. Ein dritter ROM 74 ist
mit diesen Bussen verbunden und dient zur Speicherung der Firmware
oder des Festprogramms, das von dem dritten Mikroprozessor 71 ausgeführt wird,
um seine Kommunikationsfunktion vorzunehmen. Ein dritter RAM 75 sieht
einen Notizblockspeicher vor sowie vorübergehende Speicherplätze für Daten,
die über
das Kabel 15 übermittelt
werden.
-
Eine
zweite Netzwerkschnittstelle 76 übersetzt das parallele Datenformat
des Prozessormoduls in das serielle Format und das spezielle Protokoll,
die verwendet werden, um Daten über
das E/A-Netzwerk 15 zu übertragen.
Eine Zeitsteuer- oder Zeitgabeschaltung 77 empfängt das
Systemtaktsignal der Haupttaktschaltung 30 zur Bereitstellung
der notwendigen Zeitgabe- oder Zeitsteuersignale für die Komponenten,
die dem dritten Mikroprozessor 71 zugeordnet sind. Diese
Zeitgabesignale werden über
einige der Steuerleitungen im Steuerleitungssatz 78 übermittelt.
-
Der
Adreßbus 72,
der mit dem dritten Mikroprozessor 71 verbunden ist, ist über einen
Satz Tristate- oder Drei-Zustands-Tore 78 mit dem gemeinsamen
Adreßbus 33 verbunden.
In ähnlicher
Weise ist der Datenbus 73, der dem dritten Mikroprozessor 71 zugeordnet
ist, über
einen Satz bidirektionaler Tristate- oder Drei-Zustands-Tore 80 mit
dem gemeinsamen Datenbus 34 verbunden. Beide Sätze der
Tore 71 und 80 werden freigegeben oder durchgeschaltet von
Signalen, die vom dritten Mikroprozessor 71 stammen und über die
Steuerleitungen 78 übertragen
werden. Die Tore werden durchgeschaltet, wenn der dritte Mikroprozessor 71 von
der Schlichtungsschaltung im Kontaktplanlogikprozessor 50 den
Zugriff zu den gemeinsamen Bussen 33 und 34 erteilt bekommen
hat.
-
Wie
es ferner aus 2 hervorgeht, ist eine E/A-Gestellschnittstellenschaltung 38 mit
den gemeinsamen Adreß-
und Datenbussen 33 und 34 sowie der Rückebene 16 des
Hauptgestells 12 verbunden. Diese Schnittstellenschaltung
tastet periodisch die E/A-Module 18 im Hauptgestell ab,
um Eingabedaten von den Sensoren an einer gesteuerten Maschine zu
sammeln und Ausgabedaten an die Aktoren bei der gesteuerten Maschine
auszugeben. Diese herkömmliche
Abtastung wird in einer Weise ausgeführt, die ähnlich mit derjenigen ist,
die herkömmliche
Prozessormodule unter sequentieller Aussendung von Steuer signalen
an jeden E/A-Modul angewendet haben. Diese Steuersignale veranlassen
Module vom Eingabetyp Sensordaten über die Rückebene 16 zu senden,
und veranlassen Module vom Ausgabetyp vom Prozessormodul gesendete
Daten zu speichern. Die mit den E/A-Modulen 18 im Hauptgestell 12 ausgetauschten
Daten können
in den E/A-Datentabellen 41 und 42 des gemeinsamen
System-RAM 36 gesteuert werden.
-
Einzelheiten
der E/A-Gestellschnittstellenschaltung 38 sind in 4 dargestellt.
Die E/A-Gestellschnittstellenschaltung 38 enthält eine
Schaltungssteuerung 100, eine Rückebenensteuerung 102,
einen Schlichter/Sequenzer 104 und Zeitgeberschaltungen 106.
Die Schaltungssteuerung 100 dient als Schnittstelle zwischen
der E/A-Gestellschnittstellenschaltung 38 und den gemeinsamen
Bussen 33 bis 35 des Prozessormoduls 20 und
sieht eine generelle Überwachungssteuerung
der Schnittstellenschaltungsoperation vor. Zu diesem Zweck ist der
gemeinsame Adreßbus 33 mit
einem ersten Satz bidirektionaler Datentore 108 mit einem Überwachungsprozessor 110 verbunden.
Gleichermaßen
ist der gemeinsame Datenbus 34 über einen zweiten Satz bidirektionaler
Datentore 109 mit dem Überwachungsprozessor 110 verbunden.
Die Steuerleitungen des Prozessormoduls 20 sind direkt
mit dem Überwachungs-
oder Supervisor-Prozessor verbunden.
-
Der Überwachungsprozessor 110 führt ein Mikrocodeprogramm
aus, das in einem ersten Mikrocode-ROM 112 gespeichert
ist, und speichert die Ergebnisse der Verarbeitung und mit der Rückebene 16 ausgetauschte
Daten in einem ersten Schnittstelle-RAM 114. Die Arbeitsweise
oder Operation des Überwachungsprozessors 110 wird
nachfolgend im Verlaufe der Beschreibung der Betriebsweise der gesamten
E/A-Gestellschnittstellenschaltung 38 erläutert.
-
Die
Schaltungssteuerung 100 enthält auch einen Interrupt- oder
Unterbrechungscodierer 116, der Signale von dem Schlichter/Sequenzer 104 und von
den Zeitgeberschaltungen 106 erhält, die das Auftreten verschiedenartiger
Verarbei tungsereignisse anzeigen, wie es noch beschrieben wird.
-
Als
Antwort auf diese Eingangssignale erzeugt der Unterbrechungscodierer 116 Interrupt- oder
Unterbrechungssignale an Leitungen 117 und 118,
die den Überwachungsprozessor 110 oder
andere Komponenten des Prozessormoduls 20 über den
Satz Steuerleitungen 35 unterbrechen.
-
Der Überwachungsprozessor
hat auch einen Satz Steuerleitungen 119 und einen E/A-Anforderungsbus 120,
die mit dem Schlichter/Sequenzer 104 verbunden sind, um
den Betrieb dieser Komponente zu steuern. Ein Satz Datenbusleitungen 121 erstreckt sich
zwischen dem Überwachungsprozessor 110 und einem
Rückebenenprozessor 122 in
dem Rückebenensteuerungsteil 102.
Der Arbiter/Sequenzer oder Schlichter/Sequenzer 104 ist
auch über
Adreßleitungen 124 und
einen Satz Steuerleitungen 125 mit dem Rückebenenprozessor 122 verbunden.
-
Die
Zeitgeberschaltung 106 ist über einige Leitungen mit dem
Schlichter/Sequenzer 104, dem Überwachungsprozessor 110 und
dem Unterbrechungscodierer 116 verbunden. Der Rückebenenprozessor 122 erzeugt
Steuersignale, die zu der Zeitgeberschaltung 106 übermittelt
werden.
-
Das
Rückebenensteuerungsteil 102 besteht nicht
nur aus dem Rückebenenprozessor 122,
sondern enthält
auch einen zweiten Mikrocode-ROM 126, der ein Mikrocodeprogramm
zur Ausführung durch
den Rückebenenprozessor
speichert. Ferner ist ein zweiter Schnittstelle-RAM 128 in
der Rückebenensteuerung
zur Speicherung von Verarbeitungsergebnissen und Daten für den Rückebenenprozessor 122 in
der Rückebenensteuerung
enthalten. Zusätzliche
Anschlüsse
des Rückebenenprozessors 122 sind
mit einem Satz Steuerleitungen 130 und einem Datenbus 131 der
Rückebene 26 im
Gestell 12 verbunden. Das Rückebenensteuerungsteil 102 erzeugt Steuersignale,
die den Transfer von Daten zwischen dem Prozessormodul 20 und
der Rückebene 16 regeln,
und es kann eine rudimentäre
Verarbeitung der von den funktionalen Modulen 18 empfangenen
Eingabedaten vornehmen.
-
Die
E/A-Gestellschnittstellenschaltung
38 überwacht den Austausch von
Daten über
die Rückebene
des Gestells
12. Dies umfaßt standardisierte Einzel-
und Datenblocktransfers (Einwort- und Mehrworttransfers) und einige
Prioritäts-
oder Vorrangebenen jedes Typs von Transfer. Die Technik, mit der Datenblöcke transferiert
werden, ist in der
US-Patentschrift
4 293 924 beschrieben. Die E/A-Gestellschnittstellenschaltung
handhabt die folgenden Typen von E/A-Anforderungen von anderen Prozessormodulkomponenten
in der nachstehenden absteigenden Prioritätsreihenfolge:
Blocktransferzeitauslösung
Programmierbare
Eingabeunterbrechung (PII)
Unmittelbare Prioritäts-E/A
Prioritätsblocktransfer
Diskrete
E/A-Abtastung
Normale unmittelbare E/A
Normaler Blocktransfer
-
Der
erste Typ E/A-Anforderung tritt mit dem Ablauf interner Zeitgeber
in der Schaltung 106 auf, die vom Anwendersteuerprogrammgesetzt
worden waren. Die programmierbare Eingabeunterbrechung PII wird
später
noch im einzelnen beschrieben. Die diskrete E/A-Abtastung stellt
einen herkömmlichen Austausch
von Daten zwischen all den Modulen im Hauptgestell 12 und
den E/A-Bildtabellen in den Blöcken 41 und 42 des
gemeinsamen System-RAM 36 dar. Dieser Austausch tritt typischerweise
unmittelbar vor jedem Ausführungslauf
durch das anwenderdefinierte Steuerprogramm auf. Die prioritätsmäßigen und
normalen unmittelbaren E/A-Anforderungen sind ähnlich mit bekannten Prozessen,
bei denen ein einziges Datenwort in Abhängigkeit von einem Befehl oder
einer Anweisung in dem anwenderdefinierten Steuerprogramm über die
Rückebene
transferiert wird.
-
In
Abhängigkeit
von der Anzahl der Eingaben oder Ausgaben in dem Modul, zu oder
von dem Daten transferiert werden sollen, kann es jeder Typ von E/A-Anforderung
erforderlich machen, daß die
Gestellschnittstellenschaltung
38 einige Rückebenensignalzyklen
vornimmt. Jeder Schlitz oder Einschubplatz des Gestells
12 kann
beispielsweise einen Einfachdichtemodul mit nur acht E/A-Punkten oder. einen
Doppeldichtemodul mit sechzehn E/A-Punkten enthalten. Man kann auch Quad-
und Octaldichtemodule verwenden, die dann 32 bzw. 64 E/A-Punkte vorsehen.
Da Daten über
die Gestellrückebene
in Byte-Einheiten transferiert werden, sind bei Modulen höherer Dichte
mehrfache Transfers erforderlich. Transferverfahren für Module
höherer
Dichte sind in der
US-Patentschrift
4 691 296 beschrieben. Aus Datenaustauschgründen sind
die Gestellschlitze oder Gestelleinschubplätze in Paaren gruppiert, wobei
ein Schlitz des Paares als hoher Schlitz und der andere als niedriger
Schlitz bezeichnet wird und beide Schlitze zusammen als Gruppe bezeichnet
werden.
-
Die
oben aufgelisteten sieben E/A-Anforderungen werden somit von der
Gestellschnittstellenschaltung 38 durch Zyklen ausgeführt, die
aus achtzehn verschiedenen Rückebenensignalzyklen
ausgewählt
sind. Diese Zyklen sind:
Null
E/A-Lesen-Niedriger Schlitz
E/A-Lesen-Hoher
Schlitz
E/A-Schreiben-Niedriger Schlitz
E/A-Schreiben-Hoher
Schlitz
Blocktransfer-Schreiben-Modulsteuerbyte
Blocktransfer-Lesen-Modulstatusbyte
Blocktransfer-Lesen-Niedriger
Schlitz
Blocktransfer-Lesen-Hoher Schlitz
Blocktransfer-Schreiben-Niedriger
Schlitz
Blocktransfer-Schreiben-Hoher Schlitz
Blocktransfer-Lesen-Prüfsumme
Blocktransfer-Schreiben-Prüfsumme
PII-Lesen-Niedriger
Schlitz
PII-Lesen-Hoher Schlitz
Warten
Laden-Diagnostik
Lesen-Diagnostik
-
Ein
Null-Zyklus wird ausgeführt,
wenn ein Rückebenensignalzyklus
nicht angefordert ist, und ein Warte-Zyklus wird ausgeführt, wenn der vorangegangene
Zyklus nicht beendet ist. Steuerdaten werden über den Blocktransfer-Schreiben-Modulsteuerbyte-Zyklus
zu einem Modul gesandt, und sein Status wird gewonnen mit einem
Blocktransfer-Lesen-Modulstatusbyte-Zyklus. Die beiden Diagnostik-Zyklen werden
beim Einschalten verwendet, um die Rückebenensteuerung 38 zu
testen. Die PII-Zyklen werden nachstehend beschrieben, und die Funktionen
der übrigen
Zyklen sind von ihren Namen her augenscheinlich.
-
Die
Operation oder Arbeitsweise der E/A-Gestellschnittstellenschaltung 38 wird
besser verstanden durch eine Beschreibung der Umstände, wie
ein einzelner oder diskreter Datentransfer beim Einschalten auftritt,
nachdem Diagnostik-Routinen gelaufen sind. Während der Systeminitialisierung
lädt der
Allgemeinzweckprozessor 60 Konfigurationsdaten in den Abschnitt
des Datenblocks 47 des gemeinsamen RAN 36, der
der E/A-Gestellschnittstellenschaltung zugeordnet ist. Eine Gruppe
dieser Daten identifiziert den Typ und die Größe des Hauptgestells 12 und
die Dichte des Moduls in jedem Gestellschlitz oder Gestelleinschubplatz.
Diese Konfigurationsdaten werden von der Schaltung 38 verwendet,
um festzulegen, wie über
die Rückebene 16 Daten
zu senden und zu empfangen sind.
-
Falls
der Allgemeinzweckprozessor 60 Daten zu einem Modul im
Hauptgestell 12 zu senden oder von einem Modul zu empfangen
wünscht,
sendet dieser Prozessor die geeignete Anforderung an die E/A-Gestellschnittstellenschaltung 38.
Diese E/A-Anforderung spezifiziert den Typ des Modulzugriffs (diskret
oder einzeln, Blocktransfer, Prioritätsebene oder Prioritätsstufe,
usw.) und den Schlitz oder Einschubplatz, in welchem der Modul angeordnet
ist. Die E/A-Anforderung wird ausgesendet über die gemeinsamen Busse 33 bis 35 im
Prozessormodul 20. Die E/A-Gestellschnittstellenschaltung 38 erkennt, daß Steuersignale
am Bus 35 anzeigen, daß eine Hauptgestell-E/A-Anforderung ausgesendet
ist, und die Schaltungssteuerung 100 empfängt und
speichert den Steuerungsbefehl.
-
Nach
Empfang der E/A-Anforderung beginnt der Überwachungsprozessor 110 in
der Schaltungssteuerung 100 der 4 mit der
Ausführung
einer Firmware-Routine, die aus dem ersten Mikrocode-ROM 112 ausgelesen
wird, um den Steuerungsbefehl zu verarbeiten. Die Funktion der Schaltungssteuerung
besteht jetzt darin, die E/A-Anforderung
in ein Format zu übersetzen,
das der Schlichter/Sequenzer 104 manipulieren kann. Die
formatierte E/A-Anforderung wird vom Überwachungsprozessor 110 zum
Schlichter/Sequenzer 104 gesendet, und zwar über den
E/A-Anforderungsbus 120 zusammen mit Steuersignalen an
der Leitung 119. Beim Empfang wird die E/A-Anforderung
in einem Anforderungsregister im Schlichter/Sequenzer zusammen mit
anderen E/A-Anforderungen gespeichert, die auf eine Handhabung warten.
-
Wenn
die Rückebenensteuerung 102 verfügbar ist,
tastet der Schlichter/Sequenzer 104 das Anforderungsregister
nach der E/A-Anforderung mit der höchsten Priorität ab. Wenn
einige E/A-Anforderungen mit derselben Priorität existieren, werden sie in einer
vom Prozessormodul 20 weggehenden Gestellschlitzreihenfolge
behandelt, und zwar nach einem sogenannten ”Rotating round robin arbitration”-Schema.
Der Schlichter/Sequenzer 104 ist im wesentlichen eine Zustandsmaschine,
die die E/A-Anforderung der höchsten
Priorität
nimmt und die geeigneten Steuersignale zu der Rückebenensteuerung 102 sendet.
Falls beispielsweise nach der E/A-Anforderung eine unmittelbare
Eingabe oder Direkteingabe von einem gegebenen Modul in den niederen
Schlitz einer Gruppe vorzunehmen ist, fordert der Schlichter/Sequenzer 104 die
Rückebenensteuerung
auf, in Abhängigkeit
von der Dichte des Moduls, d. h. wieviele Bytes an Eingabedaten
vorgesehen sind, eine Reihe von E/A-Lesen-Niedriger Schlitz-Zyklen auszuführen. Die
Dichte des Moduls ist angegeben durch die Konfigurationsdaten, die
im Abschnitt 47 des gemeinsamen System-RAM 36 gespeichert
sind.
-
Wenn
die Rückebenesteuerung 102 eine Rückebenesignalzyklusausführungsanforderung
von dem Schlichter/Sequenzer 104 erhält, decodiert der Rückebeneprozessor 122 die
Zyklusbezeichnung, um im zweiten Mikrocode-ROM 126 die Routine zu adressieren,
die diesen Rückebenezyklus
durchführt. Im
Laufe der Ausführung
dieser Mikrocode-Routine spricht der Rückebeneprozessor 122 auf
die Befehle oder Anweisungen dadurch an, daß er die in geeigneter Weise
zeitgesteuerte Sequenz von Steuersignalen an die Rückebene 16 des
Hauptgestells 12 legt. Falls die angeforderte E/A-Funktion
vom Blocktransfertyp ist, werden das Datenwort, das ausgetauscht
wird, eine Prüfsumme
und ein Modulsteuerbyte vorübergehend
im RAM 128 der Rückebenesteuerung 102 gespeichert.
Sonst werden die Datenbytes, die ausgetauscht werden, direkt zwischen dem
funktionalen Modul und einem Register in der Schaltungssteuerung 100 über den
Datenbus 121 transferiert. Falls die E/A-Anforderung vom
Eingabetyp ist, fordert der Überwachungsprozessor 110,
sobald die Daten in der Schnittstellenschaltung 38 gespeichert
worden sind, den Zugriff zu den gemeinsamen Bussen 33 bis 35 des
Prozessormoduls 20 an. Sobald dieser Buszugriff gewährt worden
ist, transferiert der Überwachungsprozessor 110 die
Daten entweder zu dem gemeinsamen System-RAM 36 oder zu
dem anfordernden Prozessorabschnitt 21, 60 oder 70,
in Abhängigkeit
vom Typ der Anforderung.
-
Ein
einzigartiges Merkmal der E/A-Gestellschnittstellenschaltung 38 ist
die Fähigkeit,
eine rudimentäre
Vorverarbeitung an definierten Eingabesignalen von den Gestellmodulen
ohne Intervention oder Eingriff durch ein Prozessorteil vorzunehmen. Diese
Funktion wird hier programmierbare Eingabeunterbrechung PII (= programmable
input interrupt) genannt. Die PII-Maßnahme ermöglicht es dem Anwender, ein
Muster aus einem oder mehreren Eingabebitniveauübergängen zum Erfassen durch die Schnittstellen schaltung 38 zu
definieren. Weiterhin kann die Schaltung programmiert werden, daß sie den
zweiten Mikroprozessor 61 entweder nach jedem Auftreten
des bezeichneten Übergangsmusters unterbricht
oder nur dann unterbricht, nachdem eine vorgegebene Anzahl solcher Übergänge aufgetreten ist.
-
Die
PII-Funktion wird ermöglicht
und konfiguriert durch Daten, die im Abschnitt 47 des gemeinsamen
System-RAM 36 gespeichert
sind. Ein Merker- oder Kennbit in den allgemeinen Konfigurationsdaten für die E/A-Gestellschnittstellenschaltung 38 wird
gesetzt, um die PII-Funktion
zu ermöglichen
oder freizugeben. Wenn diese Funktion ermöglicht oder freigegeben ist,
enthalten die allgemeinen Konfigurationsdaten auch einen Pointer
oder Zeiger zu einem Konfigurationsdatenblock 140 für die PII-Funktion.
Dieser Datenblock 140 ist in 5 dargestellt
und er besteht aus fünf
Datenwörtern.
Das erste Datenwort 141 ist eine Maske, die mit dem Eingabedatenwort
einer UND-Verknüpfung
unterzogen wird, um die für
einen Übergang
zu überprüfenden Bits
auszuwählen.
Jedes Bit dieser Maske wird auf ein hohes logisches Niveau gesetzt,
wenn das entsprechende Bit des Eingabedatenworts bezüglich eines Übergangs
zu überprüfen ist.
Das zweite PII-Konfigurationswort 142 ist eine Polaritätsmaske,
die die Richtung des zu erfassenden Übergangs spezifiziert. In dieser
Polaritätsmaske
bezeichnet oder kennzeichnet ein hohes Bit, daß ein Übergang von niedrig nach hoch
in dem entsprechenden Eingabebit zu erfassen ist, wohingegen ein
niedriges Bit den Wunsch der Erfassung eines Hoch-nach-Niedrig-Übergangs
kennzeichnet. Das dritte Wort 143 des PII-Konfigurationsdatenblocks definiert
das Intervall, und zwar in Einheiten von Rückebenetaktzyklen, das bzw.
die zwischen dem Lesen der Eingabedaten vom Hauptgestell 12 abzulaufen
hat bzw. haben. Die Anzahl der bezeichneten Übergänge, die auftreten muß, bevor
die PII-Funktion eine Ausgabe erzeugt, ist definiert durch das vierte
Konfigurationsdatenwort 144. Das Setzen dieses Wortes auf
Eins erzeugt eine Ausgabe, beispielsweise eine Unterbrechung des
Allgemeinzweckprozessors 60, bei jedem Auftreten des definierten Übergangs.
Das fünfte
Wort 145 spezifiziert, von welchem Modul im Hauptgestell 12 das
zu überprüfende Eingabedatenwort
zu erhalten ist. Falls sich quaddichte Module im Hauptgestell befinden,
werden zwei Wörter
von Eingabedaten durch jede Gruppe von Modulen erzeugt. Welches
dieser Wörter
benutzt werden soll, wird ebenfalls durch den letzten Eintrag 145 im PII-Konfigurationsdatenblock 140 gekennzeichnet.
-
Der
Zweck und Gebrauch der Konfigurationsdaten ist leicht zu verstehen,
wenn man die Verarbeitung eines beispielhaften Worts von Eingabedaten
erläutert.
Anfangs, wenn die PII-Funktion ermöglicht oder freigegeben wird,
wird der Freigabemerker von der in 4 dargestellten
Schaltungssteuerung 100 erfaßt. Als Antwort darauf transferiert
die Schaltungssteuerung die PII-Konfigurationsdaten vom Datenblock
im gemeinsamen System-RAM 36 in Register des Rückebeneprozessors 122.
Eine der Zeitgeberschaltungen 106 wird initiiert mit dem
Leseintervall vom Konfigurationsblock 143. Wenn das Leseintervall
abläuft,
signalisiert der Zeitgeber den Schlichter/Sequenzer 104,
der wiederum die Rückebenesteuerung 102 signalisiert,
um mit der Ausführung der
Routine in dem zweiten Mikrocode-ROM 126 zu beginnen, die
die PII-Funktion vornimmt.
-
Die
im ROM 126 gespeicherte PII-Routine ist unter Bezugnahme
auf ein Flußdiagramm
nach 6 dargestellt. Obgleich die PII-Funktion von Firmware
ausgeführt
wird, sind die Logikoperationen in 7 durch
Hardware dargestellt, wobei jedes Register, jeder Leiter und jedes
Verknüpfungsglied
eine Breite von sechzehn Bits hat, um ein vollständiges Datenwort verarbeiten
zu können.
Obgleich die PII-Funktion eine Arbeitsoperation an einem Datenwort
vornimmt, wird die Beschreibung dadurch vereinfacht, daß lediglich
auf ein Datenbyte Bezug genommen wird.
-
Die
PII-Routine beginnt bei einem Schritt 162, bei dem der
Zeitgeber auf das Leseintervall zurückgesetzt wird, bevor zu einem
Schritt 164 vorangeschritten wird. Der Rückebeneprozessor 122 läuft dann
sequentiell durch einen Rückebenesignalzyklus,
um beim Schritt 164 das Wort mit den zu überprüfenden Eingabedaten
zu erfassen. Dabei liest der Rückebeneprozessor
die Eingabedaten von den Einschubplätzen oder Schlitzen des Hauptgestells 12, die
von den im gemeinsamen System-RAM 36 gespeicherten Wortkonfigurationsdaten 145 bezeichnet werden.
Es sei beispielsweise unterstellt, daß die Eingabedaten wie folgt
lauten: 10101010. Nach der Erfassung werden die Eingabedaten mit
der UND-Maske, die als Konfigurationswort 141 in dem gemeinsamen
System-RAM36 gespeichert
ist, gefiltert. Falls nur die letzten vier Bits von Interesse sind, sieht
die UND-Maske im ersten Konfigurationsdatenblockwort wie folgt aus:
00001111. Bei einem Schritt 166 wird dann die UND-Maske mit den Eingabedaten einer
logischen UND-Verknüpfung
unterzogen, um einen Wert für
eine Variable zu erzeugen, deren Bezeichnung NEUE DATEN lautet,
welche im Fall des betrachteten Beispiels 00001010 sind. Die vier höchstwertigen
Bits wurden daher bei dem Maskierverfahren in Nullen überführt.
-
Der
Wert der NEUEN DATEN wird dann verwendet, um zwei andere Zwischenvariable
abzuleiten, die in der PII-Funktion verwendet werden. Die erste
von diesen ist NEU GEÄNDERT
und ist das Ergebnis einer exklusiven NOR-Verknüpfung der Variablen NEUE DATEN
mit der Polaritätsmaske,
die im Konfigurationswort 142 gespeichert ist. Die Polaritätsmaske
kann beispielsweise 00000111 lauten, wodurch angezeigt wird, daß ein Übergang
von Niedrig nach Hoch in den drei niedrigstwertigen Bits und ein Übergang
von Hoch nach Niedrig in den restlichen Bits erwartet wird. Bei
dem betrachteten Beispiel liefert diese logische Operation oder
Verknüfung
für die Variable
NEU GEÄNDERT
einen Wert von 11110010, und zwar bei einem Schritt 168.
Die zweite Zwischenvariable, die mit ZULETZT GEÄNDERT bezeichnet wird, wird
bei einem Schritt 170 erzeugt, und zwar durch eine exklusive
NOR-Verknüpfung
des Wertes NEUE DATEN mit dem Wert der Variablen NEUE DATEN von
dem vorangegangenen Eingabezyklus, um festzustellen, welche Bits
sich geändert
haben. Dieser vorangegangene Wert ist gespeichert als Variable,
die LETZTE NEUE DATEN genannt wird. Falls die Variable LETZTE NEUE
DATEN beispielsweise gleich 00000011 ist, hat ZULETZT GEÄNDERT einen
Wert von 11110110, wobei die Nullen Bits anzeigen, die einen Übergang
vollzogen haben.
-
Die
letzte logische Operation oder Verknüpfung der PII-Funktion umfaßt eine
NOR-Verknüpfung zwischen
der Variablen ZULETZT GEÄNDERT
und NEU GEÄNDERT,
um bei einem Schritt 172 ein Ergebnis zu liefern, das PII
Wert genannt wird. Bei dem betrachteten Beispiel ist PII Wert gleich
00001001, wobei die Einsen Bits anzeigen, die einen durch die Konfigurationsdaten
spezifizierten Übergang
vorgenommen haben. Bei dem betrachteten Beispiel ist dies das niedrigstwertige
Bit, das den gewünschten Übergang
von Niedrig nach Hoch vollzogen hat, und das viertniedrigstwertige
Bit, das den gewünschten Übergang
von Hoch nach Niedrig vollzogen hat. Diese Bit-Positionen im PII
Wert enthalten daher Einsen. Obgleich auch das zweite und dritte
niedrigstwertige Bit in den Eingabedaten Übergänge durchgemacht haben, waren
diese Übergänge entgegengesetzt
zu der gewünschten
Richtung, so daß diese
Bit-Positionen im PII Wert durch Nullen dargestellt sind.
-
Wenn
somit wenigstens eines der definierten Bits den spezifizierten Übergang
vollzieht, ist der PII Wert nicht null. Wenn dies der Fall ist,
wie es bei einem Schritt 174 überprüft wird, signalisiert der Rückebeneprozessor 122 den
Schlichter/Sequenzer 104, der dann als Antwort darauf veranlaßt, daß der Unterbrechungscodierer 116 den Überwachungsprozessor 110 bei
einem Schritt 176 unterbricht. Ist ein spezifizierter Bitübergang
nicht aufgetreten, ist die Programmausführung beendet, bis der PII-Leseintervall-Zeitgeber
erneut abgelaufen ist.
-
Der
in der obigen Weise unterbrochene Überwachungsprozessor 110 führt eine
Interrupt- oder Unterbrechungsroutine aus, die flußbildmäßig in 8 dargestellt
ist. Am Anbeginn erhält
der Überwachungsprozessor
den PII WERT und speichert ihn im RAM 114 der Schaltungssteuerung 100 bei
einem Schritt 180. Der Überwachungsprozessor 110 inkrementiert
auch einen internen Zähler
bei einem Schritt 182 und vergleicht den Zählerwert
mit einem Zählervoreinstellwort
oder -wert im Eintrag 144 des PII-Konfigurationsdatenblocks 140 bei
einem Schritt 184. Sind bei diesem Vergleich die beiden
Werte gleich, ist es an der Zeit, den zweiten Mikroprozessor 61 nach 2 zu
unterbrechen, was bei einem Schritt 186 geschieht.
-
Gleichzeitig
plaziert der Überwachungsprozessor 110 einen
Kommandoblock von Daten 150, wie es in 9 dargestellt
ist, in eine Interrupt- oder Unterbrechungswarteschlange des Allgemeinzweckprozessors 60.
Dieser Kommandoblock enthält
die Daten, die für
den zweiten Mikroprozessor 61 erforderlich sind, um die
PII-Unterbrechung oder den PII-Interrupt zu handhaben. Der erste
Eintrag 151 im Kommandoblock 150 ist ein Pointer
oder Zeiger zum nächsten
Kommandoblock in der Schlange und hat einen Wert von Null, wenn
es der letzte Kommandoblock in der Warteschlange ist. Wenn ein neuer
Kommandoblock der Warteschlange hinzugefügt wird, wird der Listenkoppelzeiger
(list link Pointer) des vorangegangenen letzten Blocks in der Warteschlange geändert, um
zu dem neu hinzugefügten
Kommandoblock zu zeigen. Der zweite Eintrag 152 im Kommando-
oder Steuerblock 150 ist ein Steuerwort, dessen Bits die
Vollendung der PII-Funktion anzeigen und anzeigen, ob ein Fehler
aufgetreten ist. Das dritte Wort 153 ist ein Kommandozeiger
(command pointer), der anzeigt, daß der Block für die PII-Funktion
im Gegensatz zu anderen Operationen für den zweiten Mikroprozessor 61 gedacht
ist, wohingegen das vierte Wort 154 den Typ oder die Art
der vorzunehmenden Antwort bei der PII-Vollendung angibt. Diese
Antwort zeigt an, ob der zweite Mikroprozessor 61 unterbrochen
werden soll oder ob der Kommandoblock lediglich in eine Warteschlange
von Aufgaben oder Tasks zur Durchführung für den Mikroprozessor gegeben
werden soll. Das fünfte
Wort 155 ist der PII WERT, der anzeigt, welche Eingabebits
den definierten Übergang
vollzogen haben, und die letzte Eintragung 156 ist der
Wert des Übergangszählers, wenn die
PII-Funktion vollendet ist. Diese beiden letzten Felder können vom
zweiten Mikroprozessor 61 verwendet werden, um die präzise Antwort
festzulegen, die auf die PII-Funktion zu nehmen ist.
-
Wenn
der zweite Mikroprozessor die PII-Unterbrechung handhabt, führt er eine
anwenderdefinierte Routine aus, die bezeichnet wird, um diese Unterbrechung
zu handhaben und die Ergebnisse der PII-Funktion zu verarbeiten.
Diese Unterbrechungshandhabungsroutine überprüft die Bits des PII WERTS und
entscheidet, welche Aktion, wenn überhaupt eine, als Antwort
auf die bezeichneten Eingabebitübergänge zu nehmen
ist.