Die Erfindung bezieht sich auf ein numerisches
Steuerungssystem gemäß dem Oberbegriff des Patent
anspruchs 1. Ein derartiges numerisches Steuerungs
system ist aus der US 4,038,533 bekannt. Allerdings
ist dort nur ein einziger Prozessor vorgesehen,
der sowohl die Funktion einer numerischen Steuerung
als auch diejenige einer speicherprogrammierbaren
Steuerung vornehmen kann.
Numerische Steuerungssysteme sind mit Werkzeug
maschinen verbunden, um in Abhängigkeit von einem
gespeicherten Teilprogramm die Bewegung eines Schneid
werkzeuges zu steuern. Das gespeicherte Programm diri
giert dabei die Werkzeugmaschine durch eine Reihe von
Schritten. Bei einer Fräsmaschine kann man beispielsweise
das Schneidwerkzeug längs drei getrennter Achsen bewe
gen, um in einem Werkstück geradlinige oder kreisförmige
Schnitte auszuführen. Das Teilprogramm stellt eine
Reihe von Befehlen oder Anweisungen dar, die in Form von
Digitalzahlen und Codes gespeichert sind und angeben,
wo die Schnitte ausgeführt werden sollen und in welcher
Sequenz oder Reihenfolge die Schnitte vorgenommen wer
den sollen. Obgleich im Hinblick auf die Entwicklung der
Technik die Teilprogramme in Magnet- oder Lochbändern ge
speichert und bei ihrer Ausführung in Form von Daten
blöcken in das numerische Steuerungssystem gelesen wur
den, gibt es neuerdings numerische Steuerungssysteme, die
gesamte Teilprogramme in ihren Direktzugriffsspeichern
aufbewahren.
Zusätzlich zur Steuerung der Bewegungen eines Schneid
werkzeuges übernehmen die numerischen Steuerungssysteme
auch die Steuerung von Hilfsfunktionen an den Werkzeugmaschinen,
beispielsweise die Werkzeugauswahl und den Werkzeugwechsel,
die Drehzahl der Antriebsspindel, den Durchfluß eines Kühl
mittels, die Palettenauswahl und den Palettenwechsel. Diese
Hilfsfunktionen ändern sich beträchtlich von Maschine zu Ma
schine, und es war typisch, daß diese Hilfsfunktionen von ge
trennten, fest verdrahteten Logikschaltungen ausgeführt wur
den, die sowohl auf abgefühlte Zustände oder Bedingungen an
der Werkzeugmaschine als auch auf Befehle oder Anweisungen
entsprechen, die von ausgewählten Codes innerhalb des Teil
programmes angegeben werden. Wie es auch in der oben erwähn
ten US 4,038,533 und der US 3,810,104 veranschaulicht
ist, hat man in jüngster Zeit programmierbare Steuergeräte
über Schnittstellenverbindungen an den Prozessor numerischer
Steuerungssysteme angeschlossen, um die Hilfsfunktionen zu
steuern. Bei diesen programmierbaren Steuergeräten kann es
sich um einen getrennt programmierten Prozessor handeln oder
um ein integrales Teil oder eine integrale Einheit des Pro
zessors des numerischen Steuerungssystemes.
Die Hinzufügung eines programmierbaren Steuergerätes
zu einem numerischen Steuerungssystem führt zu einer Reihe
von äußerst praktischen Vorteilen. Erstens ist es nicht er
forderlich, die Hardware des programmierbaren Steuergerätes
zu ändern, wenn das numerische Steuerungssystem in unter
schiedliche Arten von Werkzeugmaschinen einbezogen wird.
Statt dessen ist das programmierbare Steuergerät so program
miert, daß es befähigt ist, mit einer besonderen Maschine
eine Schnittstellenverbindung zu bilden. Zweitens ist ein
programmierbares Steuergerät, obgleich programmierbare
Schnittstellen seit vielen Jahren in auf Minirechner basie
renden Steuerungssystemen verfügbar sind, vom Anwender we
sentlich leichter zu programmieren, was auf den verwendeten
Befehlssatz sowie die Editions- oder Aufbereitungsmöglich
keiten zurückzuführen ist, die bei einem programmierbaren
Steuergerät zur Verfügung stehen.
Trotz der zahlreichen Vorteile einer Schnittstellen
verbindung eines programmierbaren Steuergerätes mit einem
numerischen Steuerungssystems, erhöht eine solche Anordnung
die Systemkosten, und in manchen Fällen können diese erhöh
ten Kosten nicht gerechtfertigt werden. So ist beispiels
weise bei manchen Anwendungen die Werkzeugmaschine, an die
die Steuerung über eine Schnittstelle angeschlossen werden
soll, sehr einfach ausgebildet, und die Aufgabe, eine ge
trennte Logikschaltung oder Relaisschaltung zum Betreiben
der einzelnen E/A-Geräte zu entwickeln und herzustellen, ist
trivial. Somit ist es erwünscht, daß ein numerisches Steue
rungssystem die Schnittstelle für ein programmierbares Steuer
gerät als Wahlmöglichkeit anstatt als ein nicht trennbares
Teil des grundsätzlichen numerischen Steuerungssystems vorsieht.
Die meisten im Einsatz befindlichen numerischen
Steuerungssysteme sind aus einzelnen digitalen elektroni
schen Komponenten oder Bausteinen aufgebaut, wie logischen
Gattern, selbsthaltenden Schaltern, Flip-Flops und Registern.
In jüngster Zeit hat man allerdings Minirechner oder Indu
strierechner, wie sie in der US 4,038,533 beschrieben
sind, so programmiert, daß sie numerische Steuerfunktionen
ausführen können. Mit der Entwicklung relativ schneller und
kostengünstiger Mikroprozessoren sowie auf Mikroprozessoren
basierender numerischer Steuerungssysteme hat man auch die
wirtschaftlichen und technischen Voraussetzungen für die
Anwendbarkeit geschaffen.
Numerische Steuerungssysteme enthalten einen Prozes
sor, der Blöcke von Teilprogrammdaten in Bewegungsbefehls
signale umsetzt, die an die Folgesteuermechanismen oder
Servomechanismen bei einer Maschine ausgegeben werden. Dar
über hinaus werden Codes in dem Teilprogramm in logische
Signale umgesetzt, die einzelne E/A-Geräte an der Maschine
steuern, um Hilfsfunktionen auszuführen. Der Betrieb des
numerischen Steuerungssystems wird durch zahlreiche Schalter
und Anzeigeeinrichtungen gesteuert, die auf einer Frontplat
te angebracht sind, so daß sie für die Bedienungsperson der
Maschine leicht zugänglich sind. Tastaturen und Kathoden
strahlröhren-Sichtgeräte befinden sich ebenfalls im allge
meinen auf der Frontplatte, um die manuelle Eingabe von Da
ten sowie die Aufbereitung oder Edition der Teilprogrammda
ten zu ermöglichen. Zwischen diesen sogenannten Frontplat
tengeräten und dem numerischen Steuerungsprozessor, bzw. dem
Prozessor des numerischen Steuerungssystems sind zahlreiche
Verbindungen erforderlich. Die Herstellung solcher Verbin
dungen ist sehr teuer. Aus praktischen Gründen ist es daher
notwendig, daß die Frontplatte und der numerische Steue
rungsprozessor so dicht wie möglich beieinander angeordnet
sind. Das Ergebnis dieser Überlegungen ist, daß die meisten
numerischen Steuerungssysteme in einem großen Schrank unter
gebracht sind, auf dessen Vorderseite sich die Frontplatten-
Bedienungselemente befinden. Der Schrank befindet sich stets
an einer Stelle, die für die Bedienungsperson leicht zugäng
lich ist. Die Folge davon ist, daß zwischen dem freistehen
den Schrank des numerischen Steuerungssystems und der zu
steuernden Maschine eine beträchtliche Verdrahtung erforder
lich ist.
Während der Stand der Technik nach der
US 4,038,533 nun von einem einzigen Prozessor Gebrauch macht,
wodurch gewisse Grenzen bezüglich der Flexibilität und
Anpassung an verschiedene Werkzeugmaschinen gesetzt werden,
ist aus der US 4,064,395 ein Maschinensteuersystem mit
zwei separaten Prozessoren bekannt, und zwar ein Daten
prozessor mit einem Rechenwerk und ein logischer Prozessor
mit einer logischen Schaltung. Der logische Prozessor
nimmt die Funktion einer speicherprogrammierbaren Steuerung
wahr und steuert über eine E/A-Schnittstelle die Hilfs
funktionen der zu steuernden Maschine. Aufgabe des Daten
prozessors ist es, in Verbindung mit einer digitalen Vor
schub- und Motorsteuerung die Vorschubgeschwindigkeit
eines bewegbaren Teiles der Maschine zu steuern.
Für beide Prozessoren ist jedoch nur ein einziges
Steuerprogramm vorgesehen, das in dem der speicher
programmierbaren Steuerung übergeordneten Prozessor
gespeichert ist. Neben diesem Steuerprogramm gibt es
kein selbständiges Werkstück- oder Teilprogramm.
Hardwaremäßig sind beide Prozessoren mit ein und dem
selben Adreßbus sowie mit ein- und denselben Daten
leitungen verbunden, die darüber hinaus gemeinsam mit
den E/A-Schnittstellen der einzelnen zu steuernden
Geräte sind.
Aufgabe der Erfindung ist es, das gattungsgemäße numeri
sche Steuerungssystem so zu verbessern, daß die vom Hauptprozessor
vorgenommene Steuerung der Servomechanismen
der Werkzeugmaschine im Zusammenwirken mit dem Betrieb
einzelner Geräte der Werkzeugmaschine vereinfacht wird.
Diese Aufgabe wird durch die kennzeichnenden
Merkmale im Patentanspruch 1 gelöst. Die beanspruchte
Lösung gestattet es, daß die beiden Prozessoren ko
ordiniert arbeiten können.
Der programmierbare Schnittstellenprozessor
(PI-Prozessor) ist ein vom Hauptprozessor getrennt be
triebenes System, das zwar Daten mit dem Hauptprozessor
austauscht, aber im übrigen nicht abhängig ist.
Daten, die den Zustand des numerischen Steuerungssystems
und durch das System ausführende Hilfsfunktionen an
zeigen, werden periodisch vom Hauptprozessor zum pro
grammierbaren Schnittstellenprozessor übermittelt.
Ebenso werden Daten, die den Zustand der gesteuerten
Werkzeugmaschine anzeigen, periodisch von dem
programmierbaren Schnittstellenprozessor zum Haupt
prozessor übermittelt. Der Hauptprozessor kann mit
der Ausführung anderer Funktionen fortfahren, während
der programmierbare Schnittstellenprozessor ein ge
speichertes Steuerprogramm ausführt, das vorzugsweise
Befehle nach Art der Befehle einer speicherprogrammier
baren Steuerung enthält. Der programmierbare Schnitt
stellenprozessor kann auch periodisch den Daten- und
Adreßbus des Hauptprozessors besetzen, um darüber Daten
von den einzelnen Geräten der Werkzeugmaschine einzu
geben und Daten an die Werkzeugmaschine auszugeben.
Der programmierbare Schnittstellenprozessor kann mit
einem Programmlader verbunden werden, wie es in der
US 3,813,649 und in der US 4,070,702 beschrieben
ist, um das Laden und Aufbereiten oder Editieren des
von ihm ausgeführten Steuerprogramms zu erleichtern.
Das nach der Erfindung geschaffene numerische
Steuerungssystem ist in Bezug auf die Systemgröße, die
örtliche Anordnung und Ausgestaltung sowie die
Systemfähigkeiten sehr flexibel. Die separat betriebenen
Prozessoren ermöglichen es, daß bei minimalen Änderungen
in der Hardware und in der Software Eigenschaften oder
Merkmale hinzugefügt oder weggenommen werden können.
Schalter, Anzeigeeinrichtungen, visuelle Sichtgeräte
und andere auf die Bedienungsperson abgestellte Ein
gabe/Ausgabe-Geräte können leicht hinzugefügt oder weg
genommen werden. Der Hauptprozessor mit seinen komplexen
Programmen braucht nicht gestört zu werden. In ähnlicher
Weise erfordern Änderungen an der Werkzeugmaschine im
allgemeinen nur eine Änderung im Steuerprogramm, das
von dem programmierbaren Schnittstellenprozessor ausge
führt wird. Solche Änderungen im Steuerprogramm können
vom Anwender mit Hilfe eines Programmpultes oder Program
miergerätes leicht vorgenommen werden. Dabei werden
Editions- oder Aufbereitungsverfahren verwendet, die
von speicherprogrammierbaren Steuerungen her bekannt
sind.
Ein nach der Erfindung ausgebildetes numerisches
Steuerungssystem enthält somit einen Hauptprozessor,
der Funktionen wie Interpolation und Ausgabe von
Bewegungsbefehlssignalen an die Servomechanismen einer
Werkzeugmaschine ausführt. Ein getrennter programmier
barer Schnittstellenprozessor ist mit der Hauptpro
zessor-Busanordnung verbunden und arbeitet wie eine
speicherprogrammierbare Steuerung, um die einzelnen
Geräte der Werkzeugmaschine zu steuern.
Bei einer Weiterbildung der Erfindung
ist eine Direktzugriffschaltung vorgesehen, die den
Daten- und Adreßbus des Hauptprozessors mit den ent
sprechenden Bussen des programmierbaren Schnittstellen
prozessors verbindet.
Gemäß einer weiteren Weiterbildung
der Erfindung ist ein weiterer unabhängiger Prozessor
in Form eines Frontplattenprozessors vorgesehen, der zwar
auch Daten mit dem Hauptprozessor austauscht, aber im
übrigen nicht abhängig ist. Der Frontplattenprozessor
überwacht im allgemeinen die Frontplattenschalter sowie
die Eingabedatenblöcke von einem Bandleser, einem
Fernschreiber (TTY), einem Magnetkassettengerät oder
anderen Eingabegeräten und steuert die Frontplatten
signallampen sowie ein alpha-numerisches Sichtanzeige
gerät oder ein Kathodenstrahlröhren-Sichtanzeigegerät
an. Der Frontplattenprozessor tauscht mit dem Haupt
prozessor Daten vorzugsweise über eine einzige Kommuni
kationsverbindung aus, die es gestattet, daß die Front
platte vom Hauptprozessor entfernt angeordnet werden
kann. Im Ergebnis können daher die Frontplatte und der
zugehörige Frontplattenprozessor entweder im selben
Schrank wie der Hauptprozessor oder getrennt in einer
kleineren, bezüglich des Standorts frei verfügbaren
Station untergebracht sein, deren Ort der Maschinen
bedienungsperson genehm ist.
Andere Weiterbildungen sind in weiteren
Unteransprüchen gekennzeichnet.
Ein bevorzugtes Ausführungsbeispiel der Erfindung
wird nachstehend an Hand von Zeichnungen beschrieben.
Es zeigen:
Fig. 1 eine bildliche Darstellung des numerischen
Steuerungssystem nach der Erfindung,
Fig. 2 ein Schemaschaltbild des
Hauptprozessorbereiches des Steuerungssystems nach der
Fig. 1,
Fig. 3 ein Schemaschaltbild des
programmierbaren Schnittstellenprozessorbereiches des
Steuerungssystems nach der Fig. 1,
Fig. 4 ein Schemaschaltbild der
Direktspeicherzugriffsschaltung (DMA-Schaltung), die ein
Teil des Prozessorbereiches nach der Fig. 3 bildet,
Fig. 5 ein Schemaschaltbild des
Frontplattenprozessorbereiches des Steuerungssystems nach
der Fig. 1,
Fig. 6 eine schematische Darstellung des Haupt
prozessor-Betriebssystems,
Fig. 7 eine schematische Darstellung des Inhalts
einer planmäßigen Warteschlange, die einen Teil des Be
triebssystems nach der Fig. 6 bildet,
Fig. 8 eine schematische Darstellung des Inhalts
eines Prozeß-Steuerblocks, der einen Teil des Betriebs
systems nach der Fig. 6 bildet,
Fig. 9 eine Darstellung, einer typischen Opera
tionssequenz des Betriebssystems nach der Fig. 15,
Fig. 10A und 10B ein Flußdiagramm des zeitge
steuerten Unterbrechungsprozesses, der ein Teil des Be
triebssystems nach der Fig. 15 bildet,
Fig. 11 ein Flußdiagramm des Frontplattenmonitors,
der einen Teil des Betriebssystems nach der Fig. 6 bildet,
Fig. 12A und 12B ein Flußdiagramm des Betriebs
systems des programmierbaren Schnittstellenprozessors,
Fig. 13 ein Zeitdiagramm zur Darstellung des Paral
lelbetriebes des programmierbaren Schnittstellenprozessors
und des Hauptprozessors,
Fig. 14 eine schematische Darstellung des Inhalts
der der programmierbaren Schnittstelle zugeordneten Abbil
dungstafel, die einen Teil des Systems nach der Fig. 2
bildet,
Fig. 15 eine schematische Darstellung des Soft
ware-Systems des Frontplattenprozessors,
Fig. 16 eine Darstellung der Zustandsereignis
tafel, die bei dem Software-System nach der Fig. 15 verwen
det wird,
Fig. 17 eine schematische Darstellung des Formats
einer Nachricht, die über die Seriendatenverbindung über
mittelt wird,
Fig. 18 eine schematische Darstellung der Daten
struktur, die der Seriendatenverbindung zugeordnet ist.
Entsprechend der Darstellung nach der Fig. 1 ist ein
bevorzugtes Ausführungsbeispiel des numerischen Steuerungs
systems nach der Erfindung in einem Hauptgehäuse 1 und
einer ortsungebundenen Steuerstation 2 untergebracht. Eine
Programmpultstation (Station) 3 wird verwendet, um das von dem pro
grammierbaren Schnittstellenprozessor auszuführende Steuer
programm zu laden und zu editieren. Die Station 3 bildet
allerdings keinen Teil des Betriebssystems. Die Konstruk
tion des Hauptgehäuses 1 ist in der DE 28 50 093 A1 erläu
tert. Das Hauptgehäuse 1 enthält eine rückseitige Grund
platte 4 und eine Reihe von gedruckten Schaltungsplatten,
die mit der Grundplatte 4 verbunden sind und von ihr nach
vorne weg ragen.
Auf den Schallplatten ist ein Großteil der im
folgenden erläuterten Schaltungsanordnungen untergebracht,
und sie umfassen eine Hauptprozessorschaltungsplatte 5,
eine Schaltungsplatte (Schnittstellenschaltungsplatte) 6 für die programmierbare Schnitt
stelle, eine Servomechanismus-Schnittstellenschaltungs
platte 7 und eine Eingabe/Ausgabe-Schnittstellenschaltungs
platte 8. Die Hauptprozessorschaltungsplatte 5 ist mit der
örtlich nicht gebundenen Steuerstation 2 über ein Kabel 9
verbunden, und die Schaltungsplatte 6 für die programmier
bare Schnittstelle bzw. die programmierbare Schnittstellen
schaltungsplatte 6 ist über ein Kabel 10 an die Programm
pultstation 3 angeschlossen. In ähnlicher Weise sind die
Servomechanismus-Schnittstellenschaltungsplatte 7 und die
E/A-Schnittstellenschaltungsplatte 8 über Kabel 11 bzw. 12
mit der Werkzeugmaschine 13 verbunden, die gesteuert werden
soll. Das Hauptgehäuse 1 befindet sich typischerweise
in einem Schrank, der an der Werkzeugmaschine 13 angebracht
ist. Die Kabel 11, 12 enthalten zahlreiche Leiter, die
mit der Ausrüstung im gleichen Schrank verbunden sind. Im Ge
gensatz dazu handelt es sich bei den Kabeln 9, 10 um
Seriendatenverbindungen, die eine Länge bis etwa 15 m haben
können.
Die örtlich nicht gebundene Steuerstation 2 ist an
einer Stelle angebracht, die der Werkzeugmaschinenbedie
nungsperson genehm ist, und die Steuerstation 2 enthält eine
Tastatur oder ein Tastenfeld 14 und Schalter (FP-Schaltersatz) 15 zum manuellen
Eingeben von Daten. Die Steuerstation 2 weist außerdem ein
wahlweise vorgesehenes alphanumerisches Sichtgerät 16
sowie ein wahlweise vorgesehenes Kathodenstrahlröhren- oder CRT-
Sichtgerät 17 auf. Ferner enthält die Steuerstation 2 eine
Frontplattenprozessorschaltungsplatte (in den Zeichnungen
nicht dargestellt), die mit dem Kabel 9 verbunden ist und
im folgenden noch zu beschreibende Schaltungsanordnungen
aufweist, die Daten vom Tastenfeld 14 und von den Schaltern
15 verarbeiten und Ausgabedaten an die Sichtgeräte 16 und
17 abgeben.
Die Programmpultstation 3 enthält eine Tastatur oder
ein Tastenfeld 18 und ein Sichtgerät 19. Die Programmpult
station 3 ist mit der programmierbaren Schnittstellenschal
tungsplatte 6 über das Kabel 10 verbunden, und sie dient
dazu, ein Steuerprogramm von der Art, wie es von einem
programmierbaren Steuergerät abgearbeitet wird, zu laden
und zu editieren bzw. aufzubereiten. Nachdem der Lade- und
Editionsvorgang beendet sind, kann man die Programmpultsta
tion 3 trennen und für andere Maschinen verwenden.
Hauptprozessor-Hardware
Der Hauptprozessor des numerischen Steuerungssystems
befindet sich auf der Schaltungsplatte 5 und ist entpre
chend der Darstellung nach der Fig. 2 rund um einen 16-Bit-
Mikroprozessor 25 ausgebildet, der mit einem 15-Leiter-
Adreßbus 26 und mit einem 16-Leiter-Datenbus 27 verbunden
ist. Als Mikroprozessor 25 wird ein Baustein vom Typ TMS 9900,
hergestellt von Texas Instruments Incorporated, verwendet,
und dieser Mikroprozessor 25 wird von einem 3,3-MHz-Vier
phasen-Taktgeber 28 angesteuert. Der Adreßbus 26 und der
Datenbus 27 sind auch in der Grundplatte 4 ausgebildet,
und sie verbinden eine Reihe von Systemelementen ein
schließlich eines Direktzugriffsspeichers 29 und eines
Festwertspeichers 30. Obgleich die Größe der Speicher 29,
30 in Abhängigkeit von den besonderen Anforderungen
des Systems sehr unterschiedlich sein kann, enthält das
grundsätzliche System als Speicher 29 einen 17-Bit·4K-Direktzugriffs
speicher und als Speicher 30 einen 16-Bit·12K-Festwertspeicher.
Eine RD-Steuerleitung 31 führt vom Mikroprozessor 25 sowohl
zum Direktzugriffsspeicher 29 als auch zum Festwert
speicher 30, und eine WE-Steuerleitung 32 stellt eine Ver
bindung zwischen dem Direktzugriffsspeicher 29 und dem
Mikroprozessor 25 her. Ein 16-Bit-Wort wird entweder vom
Direktzugriffsspeicher 29 oder vom Festwertspeicher 30
ausgelesen, wenn eine ausgewählte Speicherzeile über den
Adreßbus 26 adressiert wird und ein im logischen Sinne
niedriges Steuersignal an der RD-Steuerleitung 31 an
liegt. Das auf diese Weise aus dem Direktzugriffsspeicher 29 oder dem
Festwertspeicher 30 ausgelesene 16-Bit-Wort gelangt über den Da
tenbus 27 und einen 16-Bit-Puffer 33 zu einem bezeichne
ten Register innerhalb des Mikroprozessors 25. Ein 16-
Bit-Datenwort wird in den Direktzugriffsspeicher 29 dadurch
eingeschrieben, daß über den Adreßbus 26 eine aus
gewählte Zeile im Direktzugriffsspeicher 29 adressiert wird und an die
WE-Steuerleitung 32 ein im logischen Sinne niedriges
Steuersignal gelegt wird. Weitere Speichermöglichkeiten
kann man dem System hinzufügen. Durch Erweiterung des
Adreßbusses auf 19 Leiter oder Leitungen kann man Spei
cher bis zu 512 K bedienen.
Der Datenbus 27 und der Adreßbus 26 sind auch über
die Grundplatte 4 mit Schaltungen der Servomechanismus-
Schnittstellenschaltungsplatte 7 verbunden. Die Servome
chanismus-Schnittstellenschaltungsplatte 7 enthält 16-Bit-
Bewegungsbefehlsregister (in den Zeichnungen nicht ge
zeigt) und 16-Bit-Rückführwortregister (in den Zeichnungen
nicht gezeigt). Diese einzelnen Register können über den Adreßbus
26 getrennt oder einzeln adressiert werden und ein 16-Bit-
Bewegungsbefehlswort kann somit in irgend eines der Bewe
gungsbefehlsregister geschrieben werden, wenn eine im logi
schen Sinne niedrige Spannung an die WE-Steuerleitung 32
gelegt wird. In ähnlicher Weise kann ein 16-Bit-Folgefeh
lerwort aus einem adressierten Rückführregister ausgelesen
werden, wenn an eine DBIN-Steuerleitung 34 eine im logi
schen Sinne niedrige Spannung angelegt wird.
Wie es an sich bekannt ist, kann man durch periodi
sches Berechnen einer neuen Positionsbefehlszahl, die an
den Servomechanismus der Werkzeugmaschine 13 ausgegeben
wird, die Bewegung eines Schneidwerkzeuges genau steuern.
In einem solchen Falle sind ein Positionsbefehlsregister
und ein Rückführregister jeder Bewegungsachse zugeordnet.
Obgleich die Steuerschleife innerhalb des Hauptprozessors
geschlossen sein kann, ist bei dem bevorzugten Ausfüh
rungsbeispiel die Steuerschleife für jede Achse der Ma
schinenbewegung in der Servomechanismusschnittstellen
schaltungsplatte 7 geschlossen, und zwar unter Anwendung
einer Technik und eines Verfahrens, wie es aus der US
3,752,969 bekannt ist.
Weiterhin kann man der Fig. 2 entnehmen, daß der Da
tenbus 27 und der Adreßbus 26 auch über die Grundplatte 4
mit Schaltungen der E/A-Schnittstellenschaltungsplatte 8
verbunden sind. Die E/A-Schnittstellenschaltungsplatte 8
enthält Sätze von 16 Eingabeschaltungen und Sätze von 16
Ausgabeschaltungen. Die Eingabeschaltungen sind jeweils
einzeln mit einem Fühler bei der Werkzeugmaschine 13 ver
bunden, beispielsweise einem Grenzschalter, und jede Aus
gabeschaltung ist mit einem Stellglied bei der Werkzeug
maschine 13 verbunden, beispielsweise einem Motorstarter
oder Hubmagneten. Als Eingabeschaltungen können Anord
nungen verwendet werden, wie sie in der US 3,643,115
und US 3,992,636 beschrieben sind, und als Ausgabeschaltun
gen können Anordnungen verwendet werden, wie sie in der
US 3,745,546 beschrieben sind. Durch Erzeugen der ge
eigneten Adresse am Adreßbus 26 und durch Anlegen einer im
logischen Sinne niedrigen Spannung an die WE-Steuerlei
tung 32 können Daten in einen Satz von Ausgabeschaltungen
geschrieben werden. In ähnlicher Weise können durch Er
zeugen der geeigneten Adresse am Adreßbus 26 und durch
Anlegen einer im logischen Sinne niedrigen Spannung an
die DBIN-Steuerleitung 34 Daten aus einem Satz von Einga
beschaltungen ausgelesen werden. Obgleich die Daten in
Form von 16-Bit-Wörtern in die E/A-Schnittstellenschal
tungsplatte 8 eingeschrieben und daraus ausgelesen wer
den, sei bemerkt, daß jedes Bit einem einzelnen
Fühler bzw. Stellglied der Werkzeugmaschine 13
zugeordnet ist. Es sind dies einzelne Einrichtungen
oder Geräte, die unter Anwendung der Technik programmier
barer Steuergeräte leicht gesteuert werden können.
Unter Bezugnahme auf die Fig. 1 und 2 wird ausge
geführt, daß die Kommunikation von Daten zu und von der
Steuerstation 2 von einem Frontplatten-USART 37 ausge
führt wird (USART: Universal synchronous-asynchronous receiver-transmitter).
Der USART 37 enthält 8 Datenanschlüsse, die
einen Satz von 8 bidirektionalen Puffern 38 mit den 8
niedrigstwertigen Digitalleitungen DB8 bis DB15 im
Hauptprozessor-Datenbus 27 verbinden. Das Kabel 9 ist mit
einem Datenempfangsanschluß und einem Datensendeanschluß
des USART 37 verbunden, und wenn ein 8-Bit-Byte an Daten
über das Kabel 9 von der Kontroll- oder Steuerstation 2
empfangen wird, wird an einer Steuerleitung 39 ein im
logischen Sinne niedriges Unterbrechungssignal erzeugt.
Diese Unterbrechung
oder dieses Unterbrechungssignal wird vom Mikroprozessor 25
bedient, der die Adresse des Frontplatten-USART 37 am
Adreßbus 26 erzeugt und an die RD-Steuerleitung 31 eine
im logischen Sinne niedrige Spannung legt, um das empfan
gene Byte an Daten auf den Datenbus 27 auszulesen. Soll
andererseits ein 8-Bit-Byte an Daten an die Programmpult
station 3 gesendet werden, wird auf einer Unterbrechungs-
Steuerleitung 40 ein Unterbre
chungssignal durch den USART 37 erzeugt, um anzuzeigen,
daß das vorangegangene Byte an Daten ausgesendet worden
ist. Der Mikroprozessor 50 antwortet mit der Ausführung
einer Unterbrechungsbedienungsroutine, die im Festwert
speicher 30 gespeichert ist, wobei der Frontplatten-USART
37 über den Adreßbus 26 adressiert wird und eine im lo
gischen Sinne niedrige Spannung an der WE-Steuerleitung
32 erzeugt wird. Ein 8-Bit-Byte an Daten wird dann somit
über die Puffer 33 auf den Datenbus 27 gegeben und in den
USART 37 eingeschrieben. Der USART 37 sendet dann das
8-Bit-Byte an Daten serienweise über das Kabel 9 an die
Steuerstation 2. Der USART 37 wird von einem 2-MHz-Takt
geber angesteuert, der mit ihm über eine Steuerleitung 41
verbunden ist.
Bei dem USART 37 handelt es sich um einen univer
sellen Synchron/Asynchron-Sender/Empfänger, der die
Schnittstellenverbindung des Hauptprozessors mit der vom
Kabel 9 bereitgestellten Seriendaten-Verbindung herstellt.
Die Daten werden seriell in Form von 8-Bit-Bytes vom Kabel
9 aufgenommen, auf Übertragungsfehler überprüft und in
Form von 8 parallelen Bits auf den Datenbus 27 ausgelesen.
Ein ähnlicher universeller Synchron/Asynchron-Empfänger/Sender
ist bei der Steuerstation 2 mit dem anderen Ende
des Kabels 9 verbunden. Diese Synchron/Asynchron-Empfänger/Sender dienen zur
Übermittlung der Daten durch das Kabel 9 in beiden Rich
tungen. Das Kabel 9 enthält lediglich 4 Leiter.
Vereinbarungsgemäß nach einem RS-232-Protokoll
kann es eine Länge bis zu 15 m haben.
Die Unterbrechungen oder Unterbrechungssignale, die
vom Frontplatten-USART 37 und anderen Elementen im System
erzeugt werden, empfängt eine Unterbrechungssteuerschal
tung 45. Wie man aus Fig. 2 sieht, ist die Unterbre
chungssteuerschaltung 45 so verbunden, daß sie von dem
4-Phasen-Taktgeber 28 über eine Leitung 46 das dritte
Phasentaktsignal empfängt. Die Unterbrechungssteuerschal
tung 45 weist einen Satz von 4 Unterbrechungscode-Ausgän
gen und einem Unterbrechungsanforderungsausgang auf. Diese
Ausgänge sind über einen Bus 47 mit dem Mikroprozessor 25
verbunden. Die Unterbrechungssteuerschaltung 45 ist eine
handelsübliche integrierte Schaltung, beispielsweise vom
Modelltyp TMS 9901. Die Unterbrechungssteuerleitungen
39 und 40 vom Frontplatten-USART 37 führen zu der Unter
brechungssteuerschaltung 45, und die Unterbrechungssteuerschaltung 45 spricht auf
ein Signal an einer dieser beiden Leitungen 39, 40 an, um einen
4-Bit-Code zusammen mit einer Unterbrechungsanforderung
für den Mikroprozessor 25 zu erzeugen.
Die Unterbrechungssteuerschaltung 45 bestimmt auch
die Priorität der Unterbrechungen, und eine Liste der Unterbrechungen des
USART 37 zusammen mit anderen Hauptpro
zessorunterbrechungen sind in der Reihenfolge ihrer
Priorität in einer folgenden Tabelle A zusammengestellt.
Einige dieser Unterbrechungen einschließlich der vom
USART 37 erzeugten Unterbrechungen können gesperrt oder
maskiert werden, so daß sie dem Mikroprozessor 25 nicht
zugeführt werden.
| Unterbrechung |
| Beschreibung |
| 0 |
| Wiederstart des Systems |
| LD |
Netz-Ein-Reset |
| 1 |
Reservenetzausfall |
| 2 |
Einzelschritt durch Programm |
| 3 |
Daten empfangen durch USART 37 |
| 4 |
Daten gesendet durch USART 37 |
| 5 |
Zeitablauffehler bei langsamer Speicher-Bereit-Leitung |
| 6 |
Paritätsfehler beim Lesen des Datenbusses 27 |
| 7 |
Wächterzeitgeber abgelaufen |
| 8 |
1,6-ms-Taktgeber |
| 9 |
100-ms-Taktgeber |
Eine Realzeit-Taktgeberschaltung 50 ist mit
dem Adreßbus 26 verbunden und erzeugt an einer zur Unterbre
chungssteuerschaltung 45 führenden Leitung 51 eine 1,6-ms-
Unterbrechung sowie an einer zur Unterbrechungssteuerschal
tung 45 führenden Leitung 52 eine 100-ms-Unterbrechung.
Hardware der programmierbaren Schnittstelle
Unter Bezugnahme auf die Fig. 2 und 3 wird aus
geführt, daß eine programmierbare Schnittstellenschaltung (programmierbare Schnittstelle PI)
75 in der programmierbaren Schnittstellenschaltungsplatte
6 enthalten ist. Die programmierbare Schnittstellenschal
tung 75 ist an den Hauptprozessor-Datenbus 27 und den
Hauptprozessor-Adreßbus 26 angeschlossen. Weiterhin ist die
programmierbare Schnittstellenschaltung 75 mit der RD-
Steuerleitung 51 und der WE-Steuerleitung 32 verbunden, und
sie empfängt den 100-ms-Takt von der Realzeit-Taktgeberschaltung
50 über die Leitung 65. Die programmierbare Schnittstellen
schaltung 75 ist ein getrennter Prozessor, und dieser Pro
zessor enthält periodisch die Steuerung über den Hauptpro
zessor-Datenbus 27 und den Hauptprozessor-Adreßbus 26, und
zwar durch Erzeugen eines im logischen Sinne niedrigen Sig
nals an einer DMA-REQ-Steuerleitung 76. Dieses Steuersignal
gelangt über ein Umkehrglied 77 zu einem Halte-Anschluß 78
beim Mikroprozessor 25. Wenn der Anforderung oder dem Aufruf
stattgegeben wird, wird über ein Umkehrglied 79 und eine
DMA-GNT-Steuerleitung 80 vom Mikroprozessor 25 ein Signal
zurück zur programmierbaren Schnittstellenschaltung 75 ge
schickt.
Im folgenden wird auf die Fig. 3 Bezug
genommen. Die programmierbare Schnittstellenschaltung 75 ist
rund um einen 8-Bit-Datenbus 82 und einen 16-Bit-Adreßbus
83 aufgebaut. Der Adreßbus 83 wird über einen Satz von sech
zehn Puffern 84 von einem 8-Bit-Mikroprozessor 85 angesteuert.
Der Datenbus 82 ist mit dem Mikroprozessor 85 über einen Satz
von acht bidirektionalen Puffern 86 verbunden. Bei dem Mi
kroprozessor kann es sich um das Modell Z-80, hergestellt von
Zilog, Inc. handeln, und der Mikroprozessor 85 wird von einer
4-MHz-Taktgeberschaltung 87 angesteuert.
Die programmierbare Schnittstellenschaltung 75 enthält
auch einen 8-Bit·4K-Leitung-Festwertspeicher 88 und einen
8-Bit·2K-Leitung-Festwertspeicher 89, der elektrisch ver
änderbar ist. Die Speicher 88, 89 sind mit den Leitungen
(D 0 bis D 7) des Datenbusses 82 und mit den Leitungen (A 0
bis A 15) des Adreßbusses 83 verbunden. Ausgewählte Daten
können aus den Speichern 88, 89 gelesen werden, wenn der
Mikroprozessor 85 Speicherlesebefehle ausführt. Wenn ein
derartiger Befehl ausgeführt wird, wird ein logisches Signal
an einer von fünf Freigabeleitungen 91 und an einer rd-Steuer
leitung 92 erzeugt. Eine Decodier- und Steuerschaltung 90
der programmierbaren Schnittstellenschaltung 75 betätigt die Freigabe
leitung 91, und der Speicherlesebefehl gibt den Inhalt auf
einer ausgewählten Leitung im Speicher 88 oder 89 frei, um
auf den Datenbus 82 gelesen zu werden.
Durch die Ausführung von Speicherschreibbefehlen können
Daten auch in den elektrisch veränderbaren Festwertspeicher
89 geschrieben werden. Diese Befehle veranlassen
die Decodier- und Steuerschaltung 90 zur Freigabe des Speichers
89 über eine Steuerleitung 91 und zum Erzeugen eines
logischen Signals an einer wr-Steuerleitung 93. Wenn ein
solcher Befehl ausgeführt wird, werden Daten vom Datenbus
82 in den Speicher 89 geschrieben.
Die programmierbare Schnittstellenschaltung 75 enthält
auch einen 9-Bit·2K-Leitung-Direktzugriffsspeicher 94,
der mit den Leitungen (A0 bis A15) des Adreßbusses 83 verbunden
ist. Außerdem ist der Direktzugriffsspeicher 94 an
die wr-Steuerleitung 93 und an zwei Freigabeleitungen 95
und 96 angeschlossen, die von der Decodier- und Steuerschaltung
90 ausgesteuert werden. Vom Datenbus 82 werden
über einen Satz von acht Gattern 97 Daten in eine adressierte
Zeile oder Leitung des Direktzugriffsspeichers 94
eingeschrieben. Die Gatter 97 haben jeweils einen Freigabeanschluß,
der gemeinsam über eine Gatterfreigabeleitung 98
mit der Decodier- und Steuerschaltung verbunden ist. Wenn
ein Speicherschreibbefehl vom Mikroprozessor 85 ausgeführt
wird, wird ein 8-Bit-Wort über die Gatter 97 übermittelt
und in der adressierten Zeile des Direktzugriffsspeichers
94 gespeichert.
Die Daten werden vom Direktzugriffsspeicher 94 zum
Datenbus 82 über einen 8-Bit·512-Leitung-Abbildungsspeicher
100 in Form eines programmierbaren Festwertspeichers PROM
übertragen. Wenn Daten vom Direktzugriffsspeicher 94 ausgelesen
werden sollen, wird der Abbildungs-PROM 100 durch
eine MAP-EN-Steuerleitung 101 freigegeben, die von der Decodier-
und Steuerschaltung 90 angesteuert wird. Der Direktzugriffsspeicher
94 speichert Steuerprogrammbefehle, die
Operationscodes enthalten, die nicht vom Mikroprozessor 85
erkannt werden. Diese Operationscodes werden Adreßanschlüssen
am Abbildungs-PROM 100 zugeführt, und jeder eindeutige
Code adressiert eine spezifische Leitung oder Zeile
im Abbildungs-PROM 100. Eine Zahl, die die Startadresse
einer Steuerbefehlinterpretierroutine bezeichnet, ist in
der Abbildungs-PROM-Zeile gespeichert, die dem eindeutigen
Operationscode entspricht. Immer wenn ein Steuerbefehl-
Operationscode aus dem Direktzugriffsspeicher 94 gelesen
wird, wird er in die Zahl abgebildet, die die Start-
Adresse der korrespondierenden Interpretierroutine angibt.
Diese Zahlen werden an den Abbildungs-PROM-Datenanschlüssen
erzeugt, die mit den acht Leitungen oder Leitern im Datenbus
82 verbunden sind. Das programmierbare Schnittstellensystem
springt zu der angezeigten oder angegebenen Interpretierroutine,
und der Mikroprozessor 85 führt die Maschinenbefehle
darin aus, um die Funktionen vorzunehmen,
die durch den Steuerbefehloperationscode angegeben sind.
Alle anderen Daten, die im Direktzugriffsspeicher 94 gespeichert
sind, werden direkt ohne Änderung dem Datenbus
82 zugeführt.
Das Steuerprogramm wird in den Direktzugriffsspeicher
94 geladen und über die Programmpultstation 3 aufbereitet
oder editiert. Wie es aus der Fig. 3 hervorgeht, ist das
Kabel 10 von der Programmpultstation 3 mit den seriellen
Eingangs- und den seriellen Ausgangsanschlüssen eines Programmlader-
USART 103 verbunden, dessen parallele Datenanschlüsse
an die acht Leitungen D0 bis D7 des Datenbusses
82 der programmierbaren Schnittstellenschaltung 75 angeschlossen
sind. Ein C/-Anschluß des Programmlader-USART 103 ist
mit der Leitung A 0 des Adreßbusses 83 verbunden, und
sein CS-Anschluß ist über eine USART-EN-Leitung (Steuerleitung) 104 an die
Decodier- und Steuerschaltung 90 angeschlossen. Der Programmlader-
USART 103 ist auch mit der wr-Steuerleitung 92
sowie mit der rd-Steuerleitung 93 verbunden, und wenn ein
8-Bit-Byte an Daten vom USART 103 über das Kabel 10
empfangen wird, erzeugt er über eine INT-Leitung 105 eine
an den Mikroprozessor 85 gerichtete Unterbrechungsanforderung.
Wenn der Mikroprozessor 85 die Unterbrechung bestätigt,
springt das System zu einer Programmladerroutine,
die im Festwertspeicher 88 gespeichert ist. Diese Programmladerroutine,
enthält Befehle, die den Programmlader-USART 103 durch
die Steuerleitung 104 freigeben und an der rd-Steuerleitung
92 ein im logischen Sinne niedriges Signal erzeugen.
Aufgrund dieser Umstände wird das empfangene 8-Bit-Byte an
Daten auf den Datenbus 82 gelesen.
Umgekehrt können auch vom Mikroprozessor 85 ausgeführte
Befehle den Programmlader-USART 103 durch die
Steuerleitung 104 freigeben und an der wr-Steuerleitung
93 ein im logischen Sinne niedriges Signal erzeugen, um
ein 8-Bit-Byte an Daten in den Programmlader-USART 103 zu
laden. Diese Daten werden dann seriell durch das Kabel 10
an die Programmpultstation 3 übermittelt. Auf diese Weise
können Zeichen vom Tastenfeld 18 eingegeben werden, und
es können Zeichen an das Sichtgerät 19 der Programmpultstation
3 ausgegeben werden.
Die programmierbare Schnittstellenschaltung 75
steht in Schnittstellenverbindung mit dem Hauptprozessor
über eine DMA-Schaltung 110 (DMA = direkter Speicherzugriff).
Im folgenden wird insbesondere auf die Fig. 3 und
4 Bezug genommen. Daten an dem 16-Bit-Hauptprozessor-Datenbus
27 werden an den 8-Bit-Datenbus 82 der programmierbaren
Schnittstellenschaltung 75 über eine 8-Bit-Datenverriegelung 111
und einen 8-Bit-Datenpuffer 112 übermittelt. Das untere
8-Bit-Byte eines derartigen 16-Bit-Datenwortes wird direkt
durch den 8-Bit-Datenpuffer 112 gegeben, wenn eine DIN-Steuerleitung
113 von einer DMA-Decodier- und -Steuerschaltung 114 mit
einem im logischen Sinne niedrigen Signal angesteuert wird.
Das obere 8-Bit-Byte wird vorübergehend in der 8-Bit-Datenverriegelung
111 gespeichert, und während des nächsten Maschinenzyklus
wird eine CLIN-Steuerleitung 115 von der DMA-Decodier- und
-Steuerschaltung 115 mit einem im logischen Sinne niedrigen
Signal angesteuert, um das in der 8-Bit-Datenverriegelung 111 gespeicherte
8-Bit-Byte an den Datenbus 82 der programmierbaren
Schnittstellenschaltung 75 zu übermitteln. Das 16-Bit-Wort vom Hauptprozessor
wird somit im programmierbaren Schnittstellenprozessor
in zwei 8-Bit-Wörter umgesetzt.
In der umgekehrten Richtung, d. h. von der programmierbaren
Schnittstellenschaltung 75 zum Hauptprozessor-Datenbus
27, werden die Daten über eine 8-Bit-Datenverriegelung 116
und einen 8-Bit-Datenpuffer 117 transferiert. Ein erstes
8-Bit-Byte am Datenbus 82 der programmierbaren Schnittstelle
2 wird in der 8-Bit-Datenverriegelung 116 gespeichert,
wenn eine im logischen Sinne niedrige Spannung an einer
CLOUT-Steuerleitung 118 angelegt wird. Wenn dann am Datenbus
82 der programmierbaren Schnittstellenschaltung 75 ein zweites
8-Bit-Byte an Daten auftritt, wird an einer DOUT-Steuerleitung
119 eine im logischen Sinne niedrige Spannung erzeugt.
Dadurch werden die Datenverriegelung 116 und der
Datenpuffer 117 freigegeben, so daß beide 8-Bit-Bytes an
Daten gleichzeitig in Form eines 16-Bit-Datenwortes an
den Hauptprozessor-Datenbus 27 abgegeben werden. Auf diese
Weise wird ein bidirektionaler Datenfluß zwischen dem
16-Bit-Hauptprozessor und dem 8-Bit-Prozessor der programmierbaren
Schnittstellenschaltung bewirkt.
Im folgenden wird auf die Fig. 2 verwiesen.
Die programmierbare Schnittstellenschaltung 75
leitet und dirigiert den Transfer von Daten zu und von
dem Hauptprozessor. Sie transferiert Daten zu und von
zwei allgemeinen Plätzen, nämlich einer im Direktzugriffsspeicher
29 gespeicherten Abbildungstafel 105 der
programmierbaren Schnittstellenschaltung 75 und den Eingabe/Ausgabe-
Schnittstellenschaltungen auf der Schaltungsplatte 8. Die
programmierbare Schnittstellenschaltung 75 adressiert
diese Plätze unter Verwendung des Hauptprozessor-Adreßbusses
26, der ihr preisgegeben wird, wenn eine DMA-Anforderung
gewährt wird.
Im folgenden wird auch wieder auf die in der Fig. 4
gezeigte DMA-Schaltung verwiesen. Der Hauptprozessor-
Adreßbus 26 wird von der programmierbaren Schnittstellenschaltung
75 durch einen Satz von Unter-Byte-Adreßpuffern
122 und entweder über einen Satz von Ober-Byte-
Adreßpuffern 123 oder eine 8-Byte-Datenverriegelung 124
angesteuert. Sieben Eingänge der Ober-Byte-Adreßpuffer
123 sind an eine Quelle mit einer im logischen Sinne hohen
Spannung angeschlossen und der achte Eingang liegt
an Signalmasse. Die acht Eingänge der Unter-Byte-Adreßpuffer
122 sind mit Leitern A 0 bis
A 7 des Adreßbusses 83 der programmierbaren Schnittstellenschaltung 75
verbunden. Die Eingänge der 8-Bit-Datenverriegelung
124 sind mit Leitern im Hauptprozessor
Datenbus 27 verbunden, und während des Hochfahrens
(Power up) schreibt der Hauptprozessor die acht höchstwertigen
Ziffern der Adresse der Abbildungstafel 105
der programmierbaren Schnittstellenschaltung 75 in die 8-Bit-Datenverriegelung
124. Dies wird durch Erzeugen der Adresse
EC1E (Hexadezimal) am Adreßbus 26 während eines
Schreibbefehls erreicht. Diese Adresse wird von der
Decodier- und Steuerschaltung 114 decodiert, die die
8-Bit-Datenverriegelung 124 über eine UPP-ADD-Steuerleitung
126 freigibt. Wenn folglich die Position der
Abbildungstafel 105 der programmierbaren Schnittstellenschaltung
aus irgendeinem Grunde geändert werden sollte, erhält
die programmierbare Schnittstellenschaltung 75 automatisch eine
Bewertung dieser Tatsache über die 8-Bit-Datenverriegelung
124 jedesmal, wenn das System hochgefahren wird.
Eine FLREQAK-Steuerleitung 125 ist noch an die Datenverriegelung
124 angeschlossen und wird von der Decodier-
und Steuerschaltung 114 von einem im logischen Sinne niedrigen
Signal angesteuert, um am Hauptprozessor-Adreßbus
26 die Startadresse der Abbildungstafel 105 der programmierbaren
Schnittstellenschaltung (Schnittstelle) 75 zu erzeugen. Eine besondere Leitung oder
Zeile in der Abbildungstafel 105 wird durch die Adresse in
den Leitungen A 0 bis A 7 im Adreßbus 83 der programmierbaren
Schnittstelle 75 ausgewählt, die über die Unter-Byte-
Adreßpuffer 122 an den Hauptprozessor-Adreßbus 26 gelegt
wird. Die Adreßpuffer 122 werden von einer LADREN-Steuerschaltung
127 freigegeben.
Durch sequentielle Freigabe der Elemente der DMA-
Schaltung 110 kann somit der Mikroprozessor 85 Daten aus
dem Hauptprozessorspeicher (Direktzugriffsspeicher) 29 auslesen und in ihn einschreiben.
Auf diese Weise können die Inhalte der Abbildungstafel
105 der programmierbaren Schnittstelle 75 im Hauptprozessorspeicher
29 und einer ähnlichen PI-Abbildungstafel
106 der programmierbaren Schnittstelle 75 im Speicher 94
periodisch gewechselt oder transferiert werden, um Änderungen
zu berücksichtigen, die seit dem vorangegangenen direkten
Speicherzugriff (DMA) in diesem Speicher 94 aufgetreten
sind.
Unter Bezugnahme auf die Fig. 4 wird ferner ausgeführt,
daß die andere Funktion der DMA-Schaltung 110 darin
besteht, Daten zwischen den E/A-Schnittstellenschaltungen
der Schaltungsplatte 8 und einer Eingabe/Ausgabe-Abbildungstafel
107 auszutauschen, die im Speicher 94 der programmierbaren
Schnittstelle 75 gespeichert ist. Dieser Datentransfer
wird von der DMA-Schaltung 110 unter der Leitung
des Mikroprozessors 85 gesteuert, und wenn ein solcher
Transfer stattfinden soll, wird an einer IOAK-Steuerleitung
128 ein Signal erzeugt, das die Ober-Byte-Adreßpuffer 123
in der DMA-Schaltung 110 freigibt. Im Ergebnis werden somit
die E/A-Schnittstellenschaltungen der Schaltungsplatte 8
durch den Hauptprozessor-Adreßbus 26 adressiert. Der besondere Satz von 16 ausgewählten
Eingangs- oder Ausgangsschaltungen wird durch die
acht niedrigstwertigen Bits bestimmt, die über die Unter-Byte-
Adreßpuffer 122 an den Hauptprozessor-Adreßbus 26
gelegt werden. Unter der Leitung oder Führung einer Eingabe/
Ausgabe-Abtastroutine adressiert der Mikroprozessor
85 sequentiell jeden Satz an Eingabe- und Ausgabeschaltungen
über die Unter-Byte-Adreßpuffer 122. Er betätigt die DMA-Schaltung 110, um
Daten von den E/A-Schnittstellenschaltungen der Schaltungsplatte
8 zu der E/A-Abbildungstafel 107, die im Direktzugriffsspeicher
94 gespeichert ist, zu transferieren, und er
ist wirksam, um Daten von der E/A-Abbildungstafel 107 zu
den E/A-Schnittstellenschaltungen der Schaltungsplatte 8 zu
transferieren. Auf diese Weise wird die E/A-Abbildungstafel
107 periodisch mit den einzelnen Fühlereinrichtungen und
Stellgliedern der gesteuerten Maschine verbunden, um sowohl
die E/A-Abbildungstafel 107 zu aktualisieren, bzw. auf den
neuesten Stand zu bringen und die Stellglieder zu steuern.
Unter Bezugnahme auf die Fig. 4 sei erwähnt,
daß die Steuerleitungen, die die verschiedenen
Puffer und Datenverriegelungen in der DMA-Schaltung 110 betätigen,
von der DMA-Decodier- und -Steuerschaltung 114 angesteuert
werden. Diese Schaltung ist mit einem Satz von
Leitungen verbunden, die zum Hauptprozessor führen und mit
einem Satz von Leitungen, die zur programmierbaren Schnittstelle
75 führen.
Eine NMI-Steuerleitung
137 ist mit einem entsprechenden Anschluß am Mikroprozessor
85 der programmierbaren Schnittstelle 75 verbunden.
Wenn eine im logischen
Sinne niedrige Spannung an der NMI-Steuerleitung 137 erzeugt
wird, wird dem Mikroprozessor 85 der programmierbaren
Schnittstelle 75 eine nicht maskierbare Unterbrechung NMI
angezeigt. Auf diese Weise leitet der Hauptprozessor eine
Sequenz von Funktionen ein, die durch die programmierbare
Schnittstellenschaltung 75 ausgeführt werden. Wie noch
erläutert wird, geschieht dies alle 25,6 ms, und es dient
dazu, die Operation der beiden Prozessoren zu synchronisieren.
Nachdem die NMI-Unterbrechung vom Hauptprozessor
eingeleitet worden ist, führt der Hauptprozessor mit der
Ausführung seiner vielen anderen Funktionen fort, und der Mikroprozessor
85 der
programmierbaren Schnittstelle 75 beginnt mit der
Ausführung einer Reihe von Funktionen, die den Transfer
des Inhalts der (PI-)Abbildungstafel 105 (PI = programmierbare
Schnittstelle) vom Hauptprozessor zu der
PI-Abbildungstafel 106 der programmierbaren Schnittstelle 75 umfassen. Er führt diesen Transfer
aus, indem er eine Reihe von Direktspeicherzugriffsanforderungen
vom Hauptprozessor macht.
Unter Bezugnahme auf die Fig. 3 wird erläutert,
daß die Decodier- und Steuerschaltung 90 der programmierbaren
Schnittstelle 75 für die verschiedenen Elemente
der programmierbaren Schnittstellenschaltung 75
einschließlich der DMA-Schaltung 110 Freigabesignale erzeugt.
Die verschiedenartigen Elemente der programmierbaren
Schnittstellenschaltung 75 werden in Abhängigkeit von
spezifischen Maschinenbefehlen freigegeben und betrieben,
die vom Mikroprozessor 85 ausgeführt werden. Die Operationscodes
in diesen Befehlen betätigen die wr-Steuerleitung
93, die rd-Steuerleitung 92 und die mreq-Steuerleitung
140, und die Operand- oder Adreßcodes in diesen
Befehlen wählen ein Systemelement aus. Die Speicher
88, 89 und 94 werden selbstverständlich von einem Bereich
von Adressen freigegeben, jedoch hat jede Leitung oder
Zeile in diesen Speichern ihre eigene bestimmte Adresse.
Hardware der ortsungebundenen Steuerstationen
Wie es insbesondere aus den Fig. 1, 2 und 5 hervorgeht,
ist die örtlich freie Steuerstation 2 mit der
Hauptprozessorschaltungsplatte 5 durch das Kabel 9 verbunden.
Das Kabel 9 ist an einen Hauptprozessor-USART 220 der Steuerstation
2 angeschlossen. Der USART 220 befindet sich auf
einer Schaltungsplatte (in den Zeichnungen nicht dargestellt)
zusammen mit anderen Elementen des Frontplattenprozessors.
Diese Elemente umfassen einen 16-Bit-Mikroprozessor
221, bei dem es sich um ein Modell vom Typ
TMS 9900 von Texas Instruments, Inc., handeln kann. Der
Mikroprozessor 221 ist so geschaltet, daß er einen
Adreßbus 222 mit 15 Leitern ansteuert
und an einen bidirektionalen Frontplattenprozessor-Datenbus 223 mit 16 Leitern
angeschlossen ist.
Maschinenbefehle für den 16-Bit-Mikroprozessor 221 werden
in einem 16-Bit·16K-Leitung-Festwertspeicher 224 gespeichert,
der programmierbar ist. Weiterhin sind an den
Adreßbus 222 und den Datenbus 223 ein 16-Bit·4K-Leitung-
Zugriffsspeicher 226 und ein 4-Bit·2K-Leitung-Festwertspeicher
225 angeschlossen, der elektrisch veränderbar ist
und Sichtanzeigenachrichten speichert. Von diesen drei
Speichern 224 bis 226 können Daten ausgelesen werden, wenn
die Speicher 224 bis 226 durch entsprechende Steuerleitungen 227 bis
229 freigegeben werden und wenn der geeignete logische
Zustand an betreffenden AD- und WE-Steuerleitungen 230 und
231 erzeugt wird. Ebenso können Daten in den Direktzugriffsspeicher
226 geschrieben werden, wenn der Speicher 226
durch die CS-Steuerleitung 229 freigegeben ist, und wenn
an der we-Steuerleitung 231 eine im logischen Sinne hohe
Spannung anliegt. Es können auch Daten in den elektrisch
veränderbaren Festwertspeicher 225 eingeschrieben werden,
wenn er durch die EAROM-EN-Steuerleitung 228 freigegeben
ist und wenn an der we-Steuerleitung 231 eine im logischen
Sinne hohe Spannung anliegt. Die besondere Leitung,
in die Daten eingeschrieben oder aus der Daten in irgendeinen
der Speicher 224 bis 226 eingelesen werden, wird
durch eine entsprechende Adresse am Adreßbus 222 ausgewählt.
Im folgenden wird auf die Fig. 1 und 5
Bezug genommen. Die Tastatur oder das Tastenfeld
14 der Steuerstation 2 ist mit dem Frontplattenprozessor-
Datenbus 223 über eine Tastenfeldschnittstellenschaltung
235 verbunden.
Das Kathodenstrahlröhren-
Sichtgerät 17 der Steuerstation 2 ist über eine
Kathodenstrahlröhren-Schnittstellenschaltung 250 mit
dem Frontplattenprozessor-Datenbus 223 des Frontplattenprozessors verbunden.
Der Schalter 15 und das alphanumerische Sichtgerät 16 der Steuerstation 2 sind
über eine Schalt- und Anzeigeschnittstellenschaltung 265 mit dem Adreßbus
222 und dem Datenbus 223 verbunden. Die übrigen E/A-Geräte, die der
Steuerstation 2 zugeordnet sind, sind über die Unterbrechungs- und E/A-Steuerschaltung
243 mit dem Mikroprozessor 221 verbunden. Dieser gibt Daten an eine Steuerpultlichttreiberschaltung 335 ab.
Die Steuerleitungen, die die verschiedenen,
oben beschriebenen Frontplattenprozessor-Elemente
freigeben, werden größtenteils durch eine Frontplattendecodier-
und -Steuerschaltung 350 (Fig. 5) angesteuert.
Hauptprozessor-Operation
Zunächst wird zur Erläuterung die Fig. 2 herangezogen.
Das numerische Steuerungssystem nach der Erfindung
führt zahlreiche Funktionen aus. Teilprogrammdaten werden
von dem Bandleser 297 an den Frontplattenprozessor eingegeben
und über das Kabel 9 an den Hauptprozessor übermittelt.
Die Blöcke der Teilprogrammdaten werden in dem Hauptprozessor-
Zugriffsspeicher (Direktzugriffsspeicher, Hauptprozessorspeicher) 29 gespeichert. Operatorbefehle
bzw. Befehle von der Bedienungsperson werden ebenfalls
durch den Frontplattenprozessor vom Tastenfeld 14 und den
Schaltern 15 in Empfang genommen. Diese Befehle werden
ebenfalls zum Hauptprozessor übermittelt, dessen Mikroprozessor
25 diese Befehle verarbeitet, um das numerische
Steuerungssystem in der befohlenen Weise zu betätigen.
Wenn das numerische Steuerungssystem ein Teilprogramm
abarbeitet, werden die Blöcke an Teilprogrammdaten
vom Direktzugriffsspeicher 29 (128 Bytes zu einer Zeit)
gelesen. Ein Block an Teilprogrammdaten kann Codes enthalten,
die decodiert werden müssen, Dimensionen enthalten,
die die Abstände anzeigen, um die das Schneidwerkzeug zu
bewegen ist, und Zahlen enthalten, die die Vorschubgeschwindigkeit
angeben, mit der das Schneidwerkzeug zu bewegen ist.
Die Codes können auch Anweisungen geben, daß die Hilfsfunktionen
wie Werkzeugwechsel, Palettenwechsel, Kühlmittelzufuhr
usw. ausgeführt werden. Wenn diese Codes decodiert
sind, wird eine designierte Flagge in der Abbildungstafel
105 der programmierbaren Schnittstelle 75 gesetzt. Diese Abbildungstafel
ist in dem Direktzugriffsspeicher 29 gespeichert.
Der Inhalt der PI-Abbildungstafel 105 (PI = programmierbare
Schnittstelle) wird periodisch zur programmierbaren
Schnittstellenschaltung 75 transferiert, um anzuzeigen,
daß die besondere Hilfsfunktion auszuführen ist.
Die Dimensionen und Zahlen in einem Teilprogramm
werden vom Mikroprozessor 25 verwendet, um einen Abstand
oder eine Strecke zu berechnen, um die das Schneidwerkzeug
längs jeder Achse der Werkzeugmaschinenbewegung in einer
einzigen 25,6-ms-Iteration zu bewegen ist. Diese Strecken
werden in aktiven Puffern im Direktzugriffsspeicher 29
gespeichert, und sie werden unter der Leitung oder Führung
einer Interpolationsroutine alle 25,6 ms vom Mikroprozessor
25 verwendet, um die Bewegungsbefehlssignale zu berechnen,
die an die Servomechanismusschnittstellenschaltung 7 ausgegeben
werden.
Die Steuerung dieser und anderer Funktionen liegt
beim Mikroprozessor 25 des Hauptprozessors, der unter der Führung einer
Scheduler-Routine arbeitet, die im Festwertspeicher 30 gespeichert
ist. Neben der Fig. 2 wird für die folgende Erläuterung
insbesondere auch die Fig. 6 herangezogen. Die
Scheduler-Routine (oder der Scheduler) ist schematisch bei
360 gezeigt und wird wenigstens einmal alle 1,6 ms eingegeben,
wenn der Mikroprozessor 25 auf die Unterbrechung anspricht,
die vom Realzeit-Taktgeber 50 erzeugt wird. Die
verschiedenartigen Funktionen, die der Hauptprozessor auszuführen
hat, werden in sieben allgemeinen Vorgängen oder
Prozessen gesammelt, und es ist die Funktion des Schedulers
360, jedem dieser Prozesse reihum 1,6-ms-Zeitscheiben zuzuordnen.
Diese sieben Prozesse sind hier wie folgt definiert:
Zeitgesteuerter Unterbrechungsprozeß 361, Blockeinricht-
oder Blockaufbauprozeß 362, Blockeinfüllprozeß
363, Frontplattenmonitor 364, Tastenfeldbefehlsprozeß 365,
Programmladeprozeß 366 und Anzeigeaktualisierprozeß 367.
Der Scheduler 360 hat sechzehn 1,6-ms-Zeitscheiben
(16 × 1,6 = 26,6), die er während jeder Iterationsperiode
diesen Prozessen zuordnen kann. Die Anzahl zuordenbarer
Zeitscheiben, die während irgendeiner 25,6-ms-Iterationsperiode
verbleiben, werden in einem Zähler (ITRS) aufbewahrt,
der im Direktzugriffsspeicher 29 gespeichert ist.
Für die weitere Erläuterung werden insbesondere auch
die Fig. 6 bis 8 herangezogen. Die Reihenfolge, in der
die Vorgänge oder Prozesse ausgeführt werden und die Anzahl
der Zeitscheiben, die jedem Prozeß während einer 25,6-ms-
Iterationsperiode zugeordnet werden, sind in einer planmäßigen
Warteschlange 368 dargestellt. Die planmäßige Warteschlange
368 ist im Festwertspeicher 30 gespeichert und
ihr Inhalt ist in der Fig. 6 dargestellt. Jedem der Prozesse,
die in der Warteschlange 368 aufgelistet sind, ist
ein Prozeßsteuerblock PCB zugeordnet, der im Direktzugriffsspeicher
29 gespeichert ist und der Daten enthält,
die den Status des in der Fig. 8 gezeigten Prozesses betreffen.
Die Adressen der betreffenden Prozeßsteuerblöcke
PCB 1 bis PCB 7 sind in der planmäßigen Warteschlange 368
gespeichert und wie folgt etikettiert: A (PCB 1),
A (PCB 2), A (PCB 3), A (PCB 4), A (PCB 5), A (PCB 6) und
A (PCB 7). Jeder dieser PCB-Adressen ist eine Zahl zugeordnet,
die die maximale Anzahl aneinander grenzender Zeitscheiben
anzeigt, die dem betreffenden Prozeß zugeordnet
sind.
Ein Register PCBIDX, das im Direktzugriffsspeicher
29 angeordnet ist, stellt einen Index für die laufende
oder aktive Zeile oder Leitung in der planmäßigen Warteschlange
368 dar. Dieses Register PCBIDX wird von der Schedulerroutine
360 verwendet, um die Vorgänge oder Prozesse
sequentiell zu aktivieren. Das Register PCBIDX zeigt beispielsweise
zu Beginn jeder Iterationsperiode auf die
erste Leitung oder Zeile der planmäßigen Warteschlange
368. Somit wird durch den zugeordneten Prozeßsteuerblock
PCB 1 der zeitgesteuerte oder getaktete Unterbrechungsprozeß
361 aktiviert. Da der zeitgesteuerte Unterbrechungsprozeß
361 bis zu seinem Ende ausgeführt werden
muß, wird ihm eine überschüssige Anzahl von Zeitscheiben
(MSC 1-32) zugeordnet. Bei normalen Betriebsbedingungen
ist der zeitgesteuerte Unterbrechungsprozeß in weniger
als sechszehn Zeitscheiben beendet. Somit bleiben in jeder
25,6-ms-Iterationsperiode eine Anzahl von Zeitscheiben
übrig, so daß andere Prozesse bedient werden können. Wenn
ein Prozeß beendet ist oder wenn die ihm zugeordnete
Zeit verbraucht ist, wird die Scheduler-Routine 360 gerufen,
und das Register PCBIDX wird inkrementiert, so daß
es jetzt auf die nächste Leitung oder Zeile in der planmäßigen
Warteschlange 368 zeigt. Nachdem beispielsweise
der zeitgesteuerte Unterbrechungsprozeß beendet ist,
wird der Blockeinricht- oder Blockaufbauprozeß 362 durch
den ihm zugeordneten Prozeßsteuerblock PCB 2 aktiviert,
und die übrigen Zeitscheiben in der Iterationsperiode
werden aufgebraucht, falls dies notwendig ist, um diesen
Prozeß zu beenden. Die restlichen Prozesse werden in
ähnlicher Weise aktiviert, wenn während irgendeiner
Iterationsperiode Zeit zur Verfügung steht, und zwar in
der in der planmäßigen Warteschlange 368 aufgelisteten
Reihenfolge. Ein Scheinprozeß (in den Zeichnungen nicht
dargestellt) ist ebenfalls in dem System für den Fall
enthalten, daß überhaupt kein Prozeß ausgeführt wird.
Dieser Scheinprozeß ist eine Warteschleife, die bis zum
Start der nächsten Iterationsperiode ausgeführt wird.
Im folgenden wird besonders auf die Fig. 6 und 8
Bezug genommen. Die Prozeßsteuerblöcke PCB 1 bis PCB 7
speichern Daten, die für die Scheduler-Routine 360 den
Status der betreffenden Prozesse 361 bis 367 vorsehen.
Die erste Leitung oder Zeile jedes Prozeßsteuerblockes
speichert Sperrflagen, die im gesetzten Zustand der
Scheduler-Routine 360 anzeigen, daß der betreffende Prozeß nicht
ausgeführt werden muß. So ist ein Bit Null eine Sperrflagge
(IOW), die gesetzt ist, wenn der Prozeß eine
Eingabe/Ausgabe anfordert und anzeigt, daß er bereit ist,
die Beendigung der E/A-Operation abzuwarten. Ein Bit 1
ist eine Sperrflagge (CIW), die vom Scheduler 360 gesetzt
wird, wenn er vom Prozeß eine Sperranforderung empfängt,
die anzeigt, daß er während der gegenwärtigen 25,6-ms-
Iterationsperiode nicht ausgeführt werden soll. Ein Bit 2
ist eine Sperrflagge (PRW), die anzeigt, daß der Prozeß
gesperrt bleiben soll, bis er von einem anderen Prozeß
erneut aktiviert oder freigegeben wird. Beim sequentiellem
Fortschreiten der Scheduler-Routine 360 durch die
planmäßige Warteschlange 368 fragt der Scheduler 360 die
Sperrflaggen in dem aktiven Prozeßsteuerblock ab, um
festzustellen, ob der zugeordnete Prozeß ausgeführt
werden soll.
Das zweite Wort in jedem Prozeßsteuerblock (PCB 1
bis PCB 7) dient als Zähler (CSC), der dem Scheduler 360 von
den zugeordneten Zeitscheiben die Anzahl der übrigen
Zeitscheiben anzeigt, bevor der nächste Prozeß auf dem
Rundlauf aktiviert werden muß. Wenn ein Prozeß aktiviert
ist, besteht eine der ersten, vom Scheduler 360 auszuführenden
Funktionen darin, diesen Zähler (CSC) mit der
Anzahl der zugeordneten Zeitscheiben zu laden, die für
diesen Prozeß in der planmäßigen Warteschlange 368 angegeben
sind. Wenn dann 1,6-ms-Unterbrechungen auftreten,
wird der Zeitscheibenzähler (CSC) dekrementiert. Wenn
sein Zählerstand Null erreicht hat, wird die Steuerung an
die Scheduler-Routine 360 zurückgegeben.
Die restlichen vier Zeilen jedes Prozeßsteuerblocks
(PCB 1 bis PCB 7) speichern Daten, die den Status des Prozesses
angegen, wenn von ihm die Steuerung an die Scheduler-
Routine 360 zurückgegeben wird. So speichern die Zeile
3 den Inhalt eines Speichererweiterungsregisters (MXR),
die Zeile 4 den Inhalt eines Arbeitsraumhinweises (WP) und
die Zeile 5 den Inhalt eines Programmstatusregisters (ST).
Diese Daten werden von der Scheduler-Routine 360 in den Prozeßsteuerblock
geladen, wenn der aktivierte Prozeß durch
den 1,6-ms-Takt unterbrochen wird, oder wenn der Prozeß
aussteigt und durch ein Sperrbit blockiert wird. Wenn dann
der Prozeß von der Scheduler-Routine 360 erneut aktiviert
wird, kann man den Inhalt dieser vier Zeilen im Prozeßsteuerblock
erneut in die geeigneten Mikroprozessorregister
laden, so daß die Ausführung des Prozesses von der
Stelle aus fortgeführt werden kann, wo vorher unterbrochen
oder aufgehört wurde.
Der zeitgesteuerte Unterbrechungsprozeß 361 wird
bis zu seiner Beendigung während jeder Iterationsperiode
ausgeführt, da ihm mehr Zeitscheiben zugeordnet sind als
er möglicherweise aufgebraucht, wenn das System richtig arbeitet.
Der Blockaufbauprozeß 362 verbraucht einen großen
Anteil der übrigen Zeit in der Interpolationsperiode,
bis er seine Funktion des Einrichtens oder des Aufbaus des
nächsten Teilprogrammblockes zur Interpolation beendet
hat. Danach ruht der Blockaufbauprozeß 362, und er wird
erst wieder nach der Beendigung des zeitgesteuerten Unterbrechungsprozesses
361 für eine hinreichend lange Zeit benötigt,
um zu prüfen, ob der Endpunkt des laufenden Teilprogrammblocks
erreicht worden ist. Es steht dann während
jeder Iterationsperiode beträchtlich viel Zeit zur Verfügung,
und diese Zeit wird den übrigen "Hintergrund"-
Prosessen zugeordnet, die in der planmäßigen Warteschlange
368 verzeichnet sind. Eine typische Zuordnung der Zeitscheiben
durch die Scheduler-Routine 360 ist schematisch
in der Fig. 9 für drei Iterationsperioden dargestellt,
die unmittelbar dem Transfer eines neuen Blocks von Daten
in den aktiven Interpolatorpuffer folgen. Der zeitgesteuerte
Unterbrechungsprozeß 361 nimmt einen beträchtlichen
Anteil jeder Iterationsperiode in Anspruch. Die
vom Blockaufbauprozeß erforderliche Zeit nimmt jedoch
nach der ersten Iterationsperiode ab. Nachfolgende
Iterationsperioden sind ähnlich wie die in der Fig. 9
dargestellte zweite Iterationsperiode, bis das Ende des
Blocks festgestellt wird und der Blockaufbauprozeß 362
wiederum beträchtlich viel Zeit in Anspruch nimmt.
Es ist augenscheinlich, daß die Scheduler-Routine
360 ein flexibles und effizientes Mittels zum Zuordnen von
Zeit zu den verschiedenartigen Funktionen darstellt, die
der Hauptprozessor ausführen muß. Prozesse, und damit
Funktionen, können in einfacher Weise dem System dadurch
hinzugefügt oder vom System dadurch weggenommen werden,
daß an der planmäßigen Warteschlange 368 Zusätze oder
Abzüge gemacht werden. Prioritäten können durch Änderung
der Reihenfolge der Warteschlangeneintritte oder durch Zeitscheibenzuordnungen
verändert werden.
Für die folgenden Erläuterungen werden insbesondere
die Fig. 2, 6 und 10 herangezogen. Der zeitgesteuerte Unterbrechungsprozeß 361
funktioniert in der Weise, daß Bewegungsbefehle
an die Servomechanismusschnittstellenschaltungen
7 ausgegeben und Daten mit der programmierbaren
Schnittstellenschaltung 75 ausgetauscht werden, und zwar
einmal während jeder 25,6-ms-Iterationsperiode. Mit besonderem
Hinweis auf die Fig. 10A wird bemerkt, daß der
zeitgesteuerte Unterbrechungsprozeß 361 von der Scheduler-
Routine 360 zu Beginn jeder Iterationsperiode an der
Stelle 390 eingegeben wird. Die erste Funktion, die ausgeführt
wird, besteht in der Feststellung, ob das System
an- oder hochgefahren ist, wie es durch einen Entscheidungsblock
394 dargestellt ist. Wenn das System gerade
beim Hochfahren ist, wird die Start- oder Anfangsadresse
der PI-Abbildungstafel 105 im Direktzugriffsspeicher 29
in die Datenverriegelung 124 in der DMA-Schaltung 100
(Fig. 4) eingeschrieben. Dadurch wird die programmierbare
Schnittstellenschaltung 75 in die Lage versetzt, die
geeignete oder richtige Speicheradresse zu adressieren,
so daß sie anschließend einen Datenaustausch mit der
PI-Abbildungstafel 105 vornehmen kann.
Nach dem Hochfahren bereitet der zeitgesteuerte
Unterbrechungsprozeß 316 einen Datentransfer mit der programmierbaren
Schnittstelle 75 vor. Zunächst wird
überprüft, ob während der vorangegangenen Iterationsperiode
Daten von der programmierbaren Schnittstellenschaltung
75 empfangen worden sind. Dies geschieht in
einem Entscheidungsblock 396. Wird dies mit nein beantwortet,
ist eine Störung aufgetreten, und das System
zweigt zu einem Prozeßblock 397 ab, der einen Notstop
anfordert und eine entsprechende Nachricht zur Übertragung
zum Frontplattenprozessor in einem Sichtgerät- oder
Anzeigepuffer gibt. Andernfalls überprüft das System eine
Steuerprogrammüberlappungsflagge, wie es in einem Entscheidungsblock
398 angezeigt ist, um zu bestimmen, ob
der programmierbare Schnittstellenprozessor während der
vorangegangenen Iterationsperiode seine Funktionen beendet
hat. Trifft dies nicht zu, wird ein Notstop angefordert
und eine geeignete Nachricht angezeigt, wie es
in einem Prozeßblock 399 dargestellt ist. Indikatoren
mit der Bezeichnung "Daten empfangen" und "Steuerprogrammüberlappung"
sind in der PI-Abbildungstafel 105 der programmierbaren
Schnittstelle 75 gespeichert. Sie werden von der
programmierbaren Schnittstellenschaltung 75 gesetzt.
Unter normalen Umständen werden als nächstes von
einem Prozeßblock 400 angezeigte Befehle ausgeführt, um
Daten auszupacken oder zu entpacken, die während der
vorangegangenen Iteration von der programmierbaren
Schnittstellenschaltung 75 in die PI-Abbildungstafel 105
geschrieben wurden. Diese Daten werden an verschiedene
Plätze im Direktzugriffsspeicher 29 zur Verwendung durch
andere Programme verteilt. Als nächstes werden Daten von
verschiedenen Plätzen im Direktzugriffsspeicher 29
assembliert, und an spezifizierten Plätzen der PI-Abbildungstafel
105 gespeichert, wie es durch einen Prozeßblock
415 dargestellt ist. Solche daten können durch den
Blockaufbauprozeß vom Teilprogramm erzeugt werden und
können beispielsweise eine Anzeige enthalten, daß eine
Hilfsfunktion, beispielsweise ein Werkzeugwechsel oder
ein Palettenwechsel stattfinden soll. Nachdem diese
Daten in der PI-Abbildungstafel 105 assembliert worden
sind, wird ein durch einen Prozeßblock 401 dargestellter
Befehl vom Hauptprozessor ausgeführt, um den Datentransfer
zwischen ihm und der programmierbaren Schnittstellenschaltung
75 auszulösen. Wie bereits angedeutet, erzeugt
dieser Befehl eine nicht maskierbare Unterbrechung für den
PI-Mikroprozessor 85. Die programmierbare Schnittstellenschaltung
75 fordert danach vom Mikroprozessor 25 des Hauptprozessors
einen direkten Speicherzugriff DMA an, und der Mikroprozessor
25 des Hauptprozessors gibt seinen Datenbus 27, Adreßbus 26 sowie
die Steuerleitungen WE und WRD an die programmierbare
Schnittstellenschaltung 75 frei. Wie noch im einzelnen
erläutert wird, transferiert dann die programmierbare
Schnittstellenschaltung 75 jeweils 32 16-Bit-Wörter an Daten von
der PI-Abbildungstafel 105 im Direktzugriffsspeicher 29
zu der PI-Abbildungstafel 106 im PI-Speicher 94. Später
transferiert dann während der selben Iterationsperiode
die programmierbare Schnittstellenschaltung 75 jeweils 32 16-Bit-
Wörter an Daten von der PI-Abbildungstafel 106 im Speicher
94 zurück zur PI-Abbildungstafel 105 im Direktzugriffsspeicher 29. Die
auf diese Weise transferierten Daten sind schematisch in
der Fig. 14 dargestellt.
Im folgenden wird die Fig. 10B herangezogen.
Nachdem der Austausch von Daten mit der programmierbaren
Schnittstellenschaltung 75 eingeleitet worden
ist, fährt der Hauptprozessor mit der Ausführung von Befehlen
in dem zeitgesteuerten Unterbrechungsprozeß fort.
Der nächste Schritt in diesem Prozeß besteht in der Bestimmung,
ob eine "Vorspiel"-Flagge gesetzt worden ist,
wie es in einem Entscheidungsblock 403 dargestellt ist.
Ein "Vorspiel" wird stets während der ersten Iterationsperiode
von irgendeinem Teilprogrammblock angefordert,
der ein S-Wort, ein T-Wort oder gewisse M-Codes enthält,
die nach der EIA-Norm RS-274-C definiert sind. Dies gibt
der programmierbaren Schnittstellenschaltung 75 eine
Gelegenheit, am Anfang des Blocks, bevor die Interpolation
beginnt, auf den S-, T- oder M-Code einzuwirken.
Das System führt als nächstes Befehle aus, wie sie im Entscheidungsblock
404 angegeben sind, um zu bestimmen, ob
die Notstopflagge gesetzt worden ist. Trifft dies zu, wird
eine Notstop- und Positionsaktualisierungsroutine 405 ausgeführt.
Andernfalls wird die Vorspielflagge an einem Entscheidungsblock
406 überprüft, und eine "Verweilzeit"-Flagge
wird an einem Entscheidungsblock 407 überprüft. Wenn
keine dieser beiden Flaggen gesetzt ist, wird gemäß einem
Entscheidungsblock 408 eine "Vorschubhalt"-Flagge und gemäß
einem Entscheidungsblock 409 eine "Handbetrieb"-Flagge
überprüft.
Falls keine dieser Flaggen gesetzt ist, wird in die
Interpolationsroutine 410 eingetreten. Diese Routine wird
bis zu ihrer Beendigung ausgeführt, um für jede Achse der
zu steuernden Werkzeugmaschine 13 eine Befehlszahl für eine
inkrementale Bewegung zu erzeugen. Es wird dann eine
Servobedienungsroutine 411 ausgeführt, um die Bewegungsbefehlssignale
an die Servomechanismusschnittstellenschaltung
7 auszugeben.
Wenn ein Interpolatorblock 410 umgangen wird,
werden entweder keine Inkrementbewegungsbefehlszahlen
berechnet, oder Bewegungsbefehlszahlen werden von einer
Anstoß-Routine 412 berechnet, die auf Befehle der Bedienungsperson
anspricht. In jedem Falle werden nach der
Ausgabe der neu berechneten Bewegungsbefehle an die
Servomechanismusschnittstellenschaltung 7 die Flaggen für
die Vorspielanforderung und Vorschubhaltanforderung zurückgesetzt,
wie es in einem Prozeßblock 414 dargestellt
ist. Das System tritt beim Block 413 aus und kehrt zur
Scheduler-Routine 360 zurück.
Für die nachfolgende Erläuterung werden
die Fig. 2, 6 und 11 herangezogen. Der Frontplattenmonitor
364 ist der nächste Prozeß, der in der planmäßigen
Warteschlange 368 verzeichnet ist. Er dient zur
Eingabe von Daten, die vom Frontplattenprozessor empfangen
worden sind, und zur Aufrechterhaltung einer Frontplattenabbildungstafel
444 im Hauptprozessorspeicher (Direktzugriffsspeicher) 29,
die den Status von Lampen, Schaltern und Druckknöpfen
oder Tasten auf der ortsungebundenen Steuerstation 2
anzeigt. Wenn ein Byte von Daten vom USART 37 empfangen
worden ist, wodurch angezeigt wird, daß eine Änderung
bei der Steuerstation 2 eingetreten ist, gibt der Mikroprozessor
25 die Daten ein und speichert sie in einem
Datenpuffer, der dem Frontplattenmonitor 364 zugeordnet ist.
Drei solcher Bytes an Daten umfassen eine vollständige
Nachrichtenübertragung, und wenn das dritte Datenbyte
empfangen worden ist, wird der Frontplattenmonitor 364
von dem dem USART 37 zugeordneten Kommunikationsmodul
aus dem blockierten Zustand freigegeben. Der Frontplattenmonitor
364 kann jetzt von der Scheduler-Routine 360
aktiviert werden.
Wenn die Schleuder-Routine 360 den Frontplattenmonitor
364 aktiviert, erfolgt ein Eintritt an einer
Stelle 425. Entsprechend der Darstellung in einem Prozeßblock
427 werden dann Befehle ausgeführt, um die
Frontplattenabbildungstafel 444 anfangs in einen Startzustand
zu bringen. Gemäß einem Entscheidungsblock 428
wird dann eine Flagge überprüft, um festzustellen, ob
vom Kommunikationsmodul irgendwelche Übertragungsfehler
berichtet worden sind. Trifft dies zu, werden die Daten
ignoriert, und das System zweigt zu einer Subroutine
429 ab, die zur Übertragung zum Frontplattenprozessor
eine den Fehler anzeigende Nachricht vorbereitet. Andernfalls
werden, wie es in einem Prozeßblock 430 dargestellt
ist, die beiden Bytes an Statusdaten in die
Frontplattenabbildungstafel 444 geladen. Das System
tritt dann zur Scheduler-Routine 360 beim Block 431 aus,
wobei der Prozeßsteuerblock (PCB 4) zum Wiedereintritt
beim Entscheidungsblock 428 gesetzt wird, wenn die
nächste vollständige Nachricht empfangen wird. Zusätzlich
wird die CIW-Sperrflagge gesetzt, um sicherzustellen,
daß während derselben Iterationsperiode
nicht ein erneuter Eintritt in den Frontplattenmonitor
364 erfolgt. Dies gestattet es, dem zeitgesteuerten
Unterbrechungsprozeß wenigstens einmal auf die
geänderte Zeile in der Frontplattenabbildungstafel
444 einzuwirken, bevor die Daten erneut durch eine
andere Übertragung von der Steuerstation 2 geändert
werden können.
Für die folgende Betrachtung werden wieder
die Fig. 1, 2 und 5 herangezogen. Es ist augenscheinlich,
daß die Frontplattenabbildungstafel 444 als
eine Schnittstelle zwischen der ortsungebundenen Steuerstation
2 und dem übrigen numerischen Steuerungssystem
dient. Vier der Schalter 15 an der Steuerstation 2 können
beispielsweise von der Bedienungsperson gesetzt werden,
um die Art und Weise zu erstellen, in der das System arbeiten
soll, d. h. manuell, automatisch, über das Tastenfeld
14 oder mit einem Einzelblock. Spezifizierte Bits in
einer Leitung der Frontplattenabbildungstafel 444 sind
dem Zweck gewidmet, den Status dieser Schalter 15 anzuzeigen,
und es sind diese Bits, die von den Prozessen oder Vorgängen
in dem Frontplattenprozessor überprüft werden, um
die Betriebsart zu erstellen. Es wird nachfolgend noch im
einzelnen erläutert, daß eine der Funktionen des Frontplattenprozessors
darin besteht, den Status der Steuerstationsschalter
15 periodisch zu überprüfen und den
Hauptprozessor mit irgendwelchen aufgetretenen Änderungen
auf den neuesten Stand zu bringen. Über das Kabel 9 werden
lediglich Änderungen zum Hauptprozessor übertragen.
Auf diese Weise wird der Verkehr herabgesetzt. Es sei
bemerkt, daß eine Abänderung in dem hier erläuterten bevorzugten
Ausführungsbeispiel möglich ist, und zwar dahingehend,
daß die gesamte Frontplattenabbildungstafel 444
aktualisiert oder auf den neuesten Stand gebracht wird,
wenn irgendeine Änderung vorgekommen ist. Es werden dann
zwar mehr Daten übertragen, jedoch wird der Software-
Überbau reduziert, da die Reihenzahl nicht analysiert
zu werden braucht.
Als nächstes wird auf die Fig. 1, 2 und 6
Bezug genommen.
Bei der Ausführung dieses Anzeigeaktualisierungsprozesses
367
werden alle Daten assembliert, die von der Steuerstation 2
in einen Sendepuffer übermittel werden sollen. Zunächst
wird ein Satz von Befehlen
ausgeführt, um festzustellen, ob irgendwelche
Nachrichten angezeigt oder dargestellt werden sollen.
Dies geschieht durch Überprüfung des Inhaltes von
acht Nachrichtenbefehlsblöcken, in die irgendeine Routine,
die vom Hauptprozessor ausgeführt wird, einen Nachrichtenbefehl
eingeben kann. Zwei Nachrichtenbefehlsblöcke
werden für Alarmnachrichten der Bedienungsperson reserviert.
Die übrigen sechs Nachrichtenbefehlsblöcke sind für
Maschinenstatusnachrichten reserviert. Viele dieser Nachrichten
sind "Konservennachrichten", bei denen nur eine
Nachrichtenzahl zum Frontplattenprozessor übermittelt
wird.
Aus der obigen Beschreibung geht hervor, daß die
Hauptlast der Schnittstellenverbindung des Hauptprozessors
mit den Eingabe/Ausgabe-Geräten der Werkzeugmaschine 13
und mit den peripheren Geräten der Steuerstation 2 vom
programmierbaren Schnittstellenprozessor und dem Frontplattenprozessor
getragen wird.
Operation der programmierbaren Schnittstelle
Zunächst werden insbesondere die Fig. 1 und 3 herangezogen.
Der programmierbare Schnittstellenprozessor
ist so programmiert, daß er wie ein programmierbares
Steuergerät arbeitet. Makrobefehle von der Art, wie sie
in einem programmierbaren Steuergerät verwendet werden,
werden im Direktzugriffsspeicher 94 als Steuerprogramm
464 gespeichert. Diese Befehle werden von einem Operator
oder einer Bedienungsperson in den Direktzugriffsspeicher 94 geladen,
und zwar unter Verwendung der Tastatur oder des Tastenfeldes
18 der Programmpultstation 3. Die Makrobefehle
werden in den Mikroprozessor 85 vom USART 103 gelesen
und dann über die Gatter 97 in den Direktzugriffsspeicher
94 geschrieben. Die Programmladerroutine, die zur Ausführung
der geschilderten Vorgänge dient, ist im Festwertspeicher
88 gespeichert und wird aufgerufen, wenn der
Betriebsschalter in die Stellung "Laden"
gebracht wird.
Bei der Ausführung der das Steuerprogramm 464
bildenden Makrobefehle wird eine Anzahl an sich bekannter
Funktionen durchgeführt, einschließlich der Überprüfung
des Zustands ausgewählter Bits in der PI-Abbildungstafel
106 und der E/A-Abbildungstafel 107. Von einigen
Makrobefehlen werden logische Operationen ausgeführt.
Andere setzen den Zustand ausgewählter Bits in den Abbildungstafeln
106 und 107 in Übereinstimmung mit den
Ergebnissen der logischen Operationen. Der benutzte Makrobefehlssatz
stimmt im wesentlichen mit demjenigen
überein, der in der US 3,942,158 beschrieben ist.
Dieser Makrobefehlssatz enthält drei allgemeine Befehlsarten:
Bitbefehle, Wortbefehle und Steuerbefehle. Bitbefehle
und Wortbefehle werden in zwei Speicherzeilen
gespeichert. Die erste Zeile speichert einen Operationscode
und drei Bits eines Bithinweiscodes, und die zweite
Zeile speichert eine Operantenadresse. Die Steuerbefehle
bestehen lediglich aus einem Operationscode. Die Bitbefehle
enthalten folgendes:
Die von diesen Bitbefehlen ausgeführten Operationen
können wie folgt definiert werden:
XIC - Prüfe, ob Statusbit geschlossen oder ob das ausgewählte
Bit in der Abbildungstafel im logischen 1-Zustand
ist.
XOE - Wie bei XIC, aber im Hinblick auf ein Statusbit in
der Abbildungstafel, das einem Stellglied entspricht.
XIO - Prüfe, ob Statusbit offen oder ob das ausgewählte Bit
in der Abbildungstafel im logischen Null-Zustand ist.
XOD - Wie bei XIO, aber hinsichtlich eines Statusbits in der
Abbildungstafel, das einem Stellglied entspricht.
OTU - Wenn Bedingungen wahr, schalte Statusbit ab, oder
bringe es in den logischen Null-Zustand, und wenn
falsch, tue nichts.
OTL - Wenn Bedingungen wahr, schalte Statusbit ein oder
bringe es in den logischen 1-Zustand, und wenn falsch,
tue nichts.
OTE - Wenn Bedingungen wahr, schalte Statusbit ein, und
wenn Bedingungen falsch, schalte Statusbit ab.
Die Operandenadresse, die jedem der oben angegebenen
Operationscodes zugeordnet ist, identifiziert die Speicheradressse
des Abbildungstafelwortes, das das ausgewählte
Statusbit enthält. Der Bitzeiger oder Bithinweis, der dem
Operationscode zugeordnet ist, identifiziert den Platz des
Statusbit in dem adressierten Abbildungstafelwort.
Die Steuerbefehle enthalten folgendes:
Die von diesen Steuerbefehlen ausgeführten Operationen kann
man wie folgt definieren:
NOP - Keine Operation.
BND - Abzweigungsende: Beendigung einer Booleschen Unterabzweigung.
BST - Abzweigungsstart: Beginn einer Booleschen Unterabzweigung.
END - Ende des Steuerprogramms.
MCR - Nimm Operation am Hauptsteuerbit vor.
Die wortartigen Befehle des programmierbaren Steue 32078 00070 552 001000280000000200012000285913196700040 0002002950979 00004 31959rgerätes
enthalten folgendes:
Die von diesen Wortbefehlen ausgeführten Operationen
können wie folgt definiert werden:
TOF - Wenn Bedingungen wahr sind, schalte Ausgabestatusbit
ein, andernfalls warte, bis die Zeit abgelaufen ist,
und schalte dann ab.
TON - Wenn Bedingungen wahr sind, warte bis zum Ablaufen
der Zeit und schalte dann Ausgabestatusbit ein,
andernfalls schalte es aus.
RTU - Wenn Bedingungen wahr sind, warte bis zum Zeitablauf
und schalte dann Ausgabestatusbit ein, andernfalls
halte den Zeitgeber an.
CTD - Wenn Bedingungen wahr sind, setze den Zählwert um
eins herab.
CTU - Wenn Bedingungen wahr sind, erhöhe den Zählwert um
eins.
PUT - Wenn Bedingungen wahr sind, schreibe die Zahl in
den Mikroprozessor-Akkumulator in der ausgewählten
Speicherzeile, andernfalls tue nichts.
RTR - Wenn Bedingungen wahr sind, setze den Zeitgeber zurück.
CTR - Wenn Bedingungen wahr sind, setze den Zähler zurück.
GET - Hole das Wort aus der ausgewählten Speicherzeile und
speichere es im Mikroprozessor-Akkumulator.
EQU - Ist der im Mikroprozessor-Akkumulator gespeicherte
Wert gleich dem in der ausgewählten Speicherzeile
gespeicherten Wert?
LES - Ist der im Mikroprozessor-Akkumulator gespeicherte
Wert kleiner als der in der ausgewählten Speicherzeile
gespeicherte Wert?
Die Operantenadresse, die jedem dieser wortartigen
Operationscodes zugeordnet ist, ist eine 8-Bit-Adresse von
einer Speicherzeile im Direktzugriffsspeicher 94.
Der Anwender entwickelt ein Steuerprogramm 464, das
diese Makroinstruktionen benutzt. Ein solches Programm
enthält Befehle, die den Zustand der PI-Abbildungstafel
106 überprüfen, um festzustellen, ob eine Hilfsfunktion,
wie ein Werkzeugwechsel oder ein Palettenwechsel, durch
das vom Hauptprozessor verarbeitete Teilprogramm angezeigt
worden ist. Ferner enthält dieses Programm Befehle,
die den Status ausgewählter Plätze in der E/A-Abbildungstafel
107 überprüfen, um zu bestimmen, ob Fühlervorrichtungen
der Werkzeugmaschine 13, beispielsweise Grenzschalter,
im geeigneten Zustand sind, der einen Werkzeugwechsel
oder einen Palettenwechsel zuläßt. Das B-Register im
Mikroprozessor 85 wird benutzt, um das Ergebnis solcher
Überprüfungsbefehle zu speichern. Wenn geeignete Bedingungen
vorliegen, setzen andere Steuerprogrammbefehle den
Zustand des geeigneten Bit in die E/A-Abbildungstafel 107.
Wenn die E/A-Abbildungstafel 107 anschließend an die
E/A-Schnittstellenschaltung in der Schaltungsplatte 8
ausgegeben wird, wird das geeignete Operations- oder
Stellglied ein- oder ausgeschaltet, um die angezeigte
Funktion auszuführen.
Für jeden der Makrobefehlsoperationscodes ist im
Festwertspeicher 88 eine Makrobefehlsinterpretierroutine
gespeichert. Wenn der Betriebsartschalter 200 der programmierbaren
Schnittstelle 75 in der Stellung "Betrieb" ist,
führt der Mikroprozessor 85 wiederholt eine Abrufroutine
aus, die die Steuerprogrammakrobefehle sequentiell aus
dem Direktzugriffsspeicher 94 ausliest. Jeder Makrobefehlsoperationscode
wird von dem programmierbaren Abbildungsfestwertspeicher
PROM 100 in eine Zahl umgesetzt, die die Startadresse
seiner Makrobefehlsinterpretierroutine angibt. Das System
springt dann zu der angezeigten Makrobefehlsinterpretierroutine
(Interpretierroutine) und führt diese aus, um eine der oben aufgelisteten
Funktionen durchzuführen. Jede Interpretierroutine
enthält einen Satz von Maschinenbefehlen, die aus dem
Z-80-Mikroprozessorbefehlssatz ausgewählt sind.
Die Ausführung des Steuerprogramms 464 sowie die
Übermittlung von Daten zwischen den Abbildungstafeln, dem
Hauptprozessor und der E/A-Schnittstellenschaltung in der
Schaltungsplatte 8, werden mit der Operation des Hauptprozessors
synchronisiert. Hierzu wird insbesondere auf die
Fig. 3 und 4 aufmerksam gemacht. Zu Beginn jeder 25,6-ms-
Iterationsperiode adressiert der Hauptprozessor als Element
des zeitgesteuerten Unterbrechungsprozesses 361 das
NAND-Glied 133 in der DMA-Decodier- und Steuerschaltung
114. Dadurch wird ein Unterbrechungssignal an der NMI-
Steuerleitung 137 erzeugt, das dem Mikroprozessor 85 zugeführt
wird.
Für die folgende Erläuterung wird auch die Fig. 12
herangezogen. Der Mikroprozessor 85 spricht auf diese
Unterbrechung an, indem er eine NMI-Bedienungsroutine
ausführt.
Sie enthält einen Satz von Befehlen, die kollektiv
durch einen Prozeßblock 465 angegeben sind. Bei ihrer
Ausführung werden andere Unterbrechungen gesperrt und die
Inhalte der Mikroprozessor-Register aufbewahrt. Das Bit 7
im Mikroprozessor B-Register wird dann überprüft, wie es
in einem Entscheidungsblock 466 dargestellt ist, um festzustellen,
ob das Überlappungsbit zurückgesetzt worden
ist. Ist dies nicht der Fall, ist ein Fehler aufgetreten,
und das System zweigt zu einer Überlappungsfehlerroutine 467
ab. Dort
ist eine Überlappungsfehlerflagge zur späteren Übertragung
zum Hauptprozessor gespeichert. Beim Empfang durch den
Hauptprozessor verursacht eine derartige Überlappungsfehlerflagge
die Ausgabe einer Nachricht an die Anzeigeeinrichtung
der ortsungebundenen Steuerstation 2.
Als nächstes wird das Statuswort von der Steuerschaltung 90
entsprechend der Angabe in einem Prozeßblock
468 eingegeben, und der Inhalt wird überprüft, um
festzustellen, ob sich das System im Lademodus befindet
oder ob ein größerer Fehler aufgetreten ist. Ist das
System im Lademodus, wie es durch einen Entscheidungsblock
469 bestimmt wird, zweigt es zu einer Lademodusroutine 470
ab. Falls
ein Fehler aufgetreten ist, wie es durch einen Entscheidungsblock
471 festgestellt wird, zweigt das System zu
einer Fehlerroutine 472
ab. Es wird dann überprüft, ob die Störung oder der
Fehler in der programmierbaren Schnittstellenschaltungsplatte
6 oder anderswo im System aufgetreten ist. Befindet
sich die Störung in der programmierbaren Schnittstellenschaltungsplatte
6, wird eine entsprechende Hilfsaktion
in Gang gesetzt.
Wenn sich das System im Betriebsmodus befindet und
der Betrieb in geeigneter Weise ausgeführt wird, erfolgt
durch einen Befehl entsprechend einem Prozeßblock 473
eine Zurücksetzung des Wächterzeitgebers,
und eine
Routine entsprechend einem Prozeßblock 474 wird ausgeführt,
um 34 jeweils 16-Bit-Wörter von der Hauptprozessor-PI-
Abbildungstafel 105 einzugeben. Diese 34 Wörter werden
in Form von 68 jeweils 8-Bit-Wörtern in der Abbildungstafel 106
des programmierbaren Schnittstellenprozessors gespeichert.
Dieser Datentransfer erfolgt mit Hilfe eines
Blocktransferbefehls, der den Hauptprozessorspeicher 29
über die DMA-Schaltung 110 adressiert und dann sequentiell
34 Zeilen daraus ausliest. Jede
dieser Speicherlesoperationen dauert weniger als zwei
Mikrosekunden, so daß der Hauptprozessor nicht für längere
Zeit gebunden wird.
Im Anschluß an den Empfang von Daten von der
Hauptprozessor-PI-Abbildungstafel 105 nimmt der programmierbare
Schnittstellenprozessor eine Eingabe/Ausgabe-
Abtastung vor, bei der Daten zwischen seiner E/A-
Abbildungstabelle 107 und der E/A-Schnittstellenschaltung
der Schaltungsplatte 8 übermittelt werden. Dies ist
in der Fig. 12B durch einen Prozeßblock 475 dargestellt,
der Befehle enthält, die sequentiell 8-Bit-Wörter
aus der E/A-Abbildungstafel 107 auslesen und sie
über die DMA-Schaltung 110 zum Hauptprozessordatenbus
27 übermitteln. Für jeweils zwei dieser 8-Bit-E/A-Abbildungstafelwörter
ist eine entsprechende 16-Bit-
Ausgangsschaltungsplatte vorhanden, der die Daten zugeführt
werden. Im Anschluß an die Ausgangs- oder Ausgabeabtastung
wird eine Eingangs- oder Eingabeabtastung
durchgeführt, wobei die E/A-Schnittstellenschaltungen
der Schaltungsplatte 8 sequentiell mittels der DMA-
Schaltung 110 adressiert werden, und 16-Bit-Datenwörter,
die den Zustand oder den Status einzelner Geräte der
gesteuerten Werkzeugmaschine 13 anzeigen, eingegeben werden. Diese
16-Bit-Datenwörter werden jeweils in zwei zugeordneten
Zeilen der E/A-Abbildungstafel 107 gespeichert.
Obgleich sich der Zeitanteil, zu dem der Hauptprozessor
während dieses DMA-Datentransfers inaktiv ist,
in Abhängigkeit von der Anzahl der zu bedienenden
E/A-Geräte ändert, sind im allgemeinen für jede Lese-
und Schreiboperation unter Heranziehung der E/A-Schnittstellenschaltung
in der Schaltungsplatte 8 weniger als
zwei Mikrosekunden notwendig. Die programmierbare
Schnittstellenschaltung 75 stellt somit eine geringe
zeitliche Belastung für den Hauptprozessor dar.
Für die folgende Betrachtung wird wieder
die Fig. 12B herangezogen. Nachdem die Eingabe/
Ausgabe-Abtastung beendet worden ist, wird ein
Überlappungsbit gesetzt (d. h. Bit 7 im Mikroprozessor-B-
Register), wie es durch einen Prozeßblock 476 gezeigt
ist, und das System springt zu einer Aufrufroutine 477,
um den ersten Makrobefehl
aus dem Steuerprogramm 464 zu lesen und ihn auszuführen.
Die Bedienung der NMI-Unterbrechung ist an dieser
Verbindungsstelle vollendet, und der programmierbare
Schnittstellenprozessor schreitet voran, um die Steuerprogrammakrobefehle
sequentiell auszuführen, wie es
durch einen Prozeßblock 478 angedeutet ist.
Neben der Fig. 12B werden auch die
Fig. 2 und 3 herangezogen. Der letzte Makrobefehl im
Steuerprogramm 464 ist ein Ende-Makrobefehl. Wenn dieser
Makrobefehl abgerufen wird, wird er in seine Interpretierroutine
(Ende-Interpretierroutine) abgebildet, wie es im Prozeßblock 479
gezeigt ist.
Eine der ersten Funktionen der Ende-Interpretierroutine 479 ist die Ausgabe von 68 jeweils 8-Bit-Statuswörtern
von der PI-Abbildungstafel 106 zur Hauptprozessor-PI-
Abbildungstafel 105. Enthalten in diesen Statuswörtern
ist die Flagge "Überlappung" und die Flagge "Datenübertragen",
wie es in der Fig. 14 dargestellt ist. Vom Hauptprozessor
wird direkter Speicherzugriff angefordert, um
diesen Transfer auszuführen, und der Transfer wird unter
Verwendung des Blocktransferbefehls im Zilog-Z-80-Mikroprozessorbefehlssatz
480 bewerkstelligt.
Das Überlappungsbit wird
dann entsprechend einem Prozeßblock 481 zurückgesetzt,
um anzuzeigen, daß das gesamte Steuerprogramm 464 ausgeführt
worden ist, und der Makrobefehlsprogrammzähler (d. h. der
Stapelzeiger oder Stapelhinweis) wird zurückgesetzt, um
auf den ersten Makrobefehl im Steuerprogramm 464 zu zeigen.
Der programmierbare Schnittstellenprozessor wartet dann
auf das Auftreten der nächsten NMI-Unterbrechung während
der nächsten 25,6-ms-Iterationsperiode.
Auf der obigen Beschreibung geht hervor, daß der
programmierbare Schnittstellenprozessor parallel mit dem
Hauptprozessor arbeitet, um das Steuerprogramm 464 zu derselben
Zeit auszuführen, zu der der Hauptprozessor seine
vielen Funktionen durchführt. Wenn sich das numerische
Steuerungssystem im Betriebsmodus befindet, ist der
Hauptprozessor belegt oder besetzt, um den zeitgesteuerten
Unterbrechungsprozeß 361 und die anderen in der planmäßigen
Warteschlange 368 aufgelisteten Prozesse auszuführen.
Die Interpolationsroutine allein benötigt beträchtliche
Hauptprozessorausführungszeit, da beachtliche
arithmetische Berechnungen auszuführen sind, wie es aus
der US 3,728,528 hervorgeht.
Die Paralleloperation der beiden Prozessoren ist
in der Fig. 13 veranschaulicht. zu Beginn jeder Iterationsperiode
löst der Hauptprozessor mit dem programmierbaren
Schnittstellenprozessor eine NMI-Unterbrechung aus und fährt
dann mit der Ausführung des zeitgesteuerten Unterbrechungsprozesses
361 fort. In der Zwischenzeit beginnt der programmierbare
Schnittstellenprozessor aufgrund der NMI-Unterbrechung
mit dem Transfer des Inhalts der PI-Abbildungstafel 105 vom
Hauptprozessor durch sequentielle Anforderung des direkten
Speicherzugriffs DMA und des direkten Auslesens aus dem
Hauptprozessorspeicher 29. Der programmierbare Schnittstellenprozessor
startet daher dann in Kürze die Aktualisierung
seiner Eingabe/Ausgabe-Abbildungstafel 107, indem
erneut eine Sequenz von DMA-Transferoperationen vom
Hauptprozessor-Adreßraum angefordert wird. Obgleich die
während der Eingabe/Ausgabe-Abtastung transferierten Daten
nicht notwendigerweise den Hauptprozessor einschließen,
werden der Hauptprozessordatenbus 27 und der Hauptprozessoradreßbus
26 verwendet, und die Operation des Hauptprozessors
muß daher notwendigerweise während dieser Operation
stillgesetzt werden.
Unter Bezugnahme auf die Fig. 13 wird
ausgeführt, daß der programmierbare Schnittstellenprozessor
sein Steuerprogramm 464 im Anschluß an die Eingabe/Ausgabe-
Abtastung durchführt. Die Zeit zur Durchführung dieser
Funktion hängt von der Länge des Steuerprogramms 464 ab, erstreckt
sich jedoch in keinem Falle bis in die nächste
Iterationsperiode. Falls dies dennoch auftritt, wird die
Überlappungsflagge nicht zurückgesetzt, und ein Fehler
wird dem Hauptprozessor angezeigt. Wenn der programmierbare
Schnittstellenprozessor die Ausführung des Steuerprogramms
464 beendet, nimmt er eine Reihe von DMA-Anforderungen
vom Hauptprozessor vor, während welcher er den Inhalt
der PI-Abbildungstafel 106 zum Hauptprozessorspeicher
29 transferiert. Der programmierbare Schnittstellenprozessor
ist dann für den Rest der Iterationsperiode untätig,
wird jedoch reaktiviert, um denselben Zyklus zu wiederholen,
wenn zu Beginn der nächsten Iterationsperiode
eine NMI-Unterbrechung angefordert wird.
Eine Abwandlung des bevorzugten Ausführungsbeispiels
dahingehend, daß eine Einstellung der Operation des Hauptprozessors
während der Eingabe/Ausgabe-Abtastung vermieden
wird, ist möglich. Diese Abwandlung erfordert, daß die
Eingabe/Ausgabe-Schnittstellenschaltung in der Schaltungsplatte
8 mit dem Datenbus 82 und dem Adreßbus 83 der programmierbaren
Schnittstelle 75 verbunden wird. Der Grund,
warum diese alternative Anordnung nicht bevorzugt wird,
besteht jedoch darin, daß die programmierbare Schnittstellenschaltung
75 des bevorzugten Ausführungsbeispiels
vollständig aus dem numerischen Steuerungssystem herausgenommen
werden kann, und daß der Hauptprozessor programmiert
werden kann, um die E/A-Schnittstellenschaltungen der
Schaltungsplatte 8 direkt zu steuern. Die programmierbare
Schnittstellenschaltung 75 kann daher als Option oder
wahlweise Einheit angeboten werden.
Die Vorteile, die man durch den gleichzeitigen oder
parallelen Betrieb des programmierbaren Schnittstellenprozessors
mit dem Hauptprozessor erhält, sind zahlreicher
Art. Als erstes ist zu nennen, daß die zeitliche Belastung
des Hauptprozessors minimal ist. Der Hauptprozessor
braucht nicht darauf zu warten, daß das Steuerprogramm
ausgeführt wird, sondern kann statt dessen die Ausführung
des zeitgesteuerten Unterbrechungsprozesses 361 beenden und
sich anderen Prozessen zuwenden, die in der planmäßigen
Warteschlange 368 verzeichnet sind. Die einzige Zeitbelastung
des Hauptprozessors sind die drei kurzen Zeitperioden,
während derer dem programmierbaren Schnittstellenprozessor
DMA-Anforderungen gewährt werden.
Ein zweiter großer Vorteil besteht in der Leichtigkeit,
mit der der programmierbare Schnittstellenprozessor
vom Anwender programmiert werden kann. Da die Steuerprogrammausführung
aus der Hauptprozessorsequenz entfernt
ist, besteht der einzige Zeitzwang darin, daß das Steuerprogramm
464 in weniger als 25,6 ms abgearbeitet ist. Dies
ist aber für jedes einigermaßen vernünftige Steuerprogramm
464 mehr als genug Zeit, so daß in der Praxis keine
schwierigen Zeitprobleme vom Programmierer
zu lösen sind. Da darüber hinaus hinreichend viel Ausführungszeit
zur Verfügung steht, kann man Befehle vom
Typ des programmierbaren Steuergerätes, d. h. Makrobefehle
verwenden, um das Steuerprogramm 464 zu entwickeln. Diese Befehle
sind im Gegensatz zur Mikroprozessormaschinensprache
vom Anwender leicht zu erlernen und zu verstehen.
Diese Makrobefehle können direkt oder "on line" vom
Mikroprozessor 25 interpretiert werden, um die erforderlichen
Funktionen auszuführen.
Operation der ortsungebundenen Steuerstation
Während der programmierbare Schnittstellenprozessor
die Schnittstellenverbindung des numerischen Steuerungssystems
mit den einzelnen Eingabe/Ausgabe-Geräten der
Werkzeugmaschine 13 herstellt, betreibt oder betätigt der
Frontplattenprozessor die peripheren Geräte oder Einrichtungen,
die die Schnittstellenverbindung des numerischen
Steuerungssystems mit der Bedienungsperson
herstellen. Ebenso wie der programmierbare Schnittstellenprozessor
befreit der Frontplattenprozessor den
Hauptprozessor von einer beträchtlichen Zeitbelastung und
gestattet Flexibilität hinsichtlich der Art und Anzahl der
verwendeten peripheren Geräte. Der Frontplattenprozessor
erleichtert auch die Hinzufügung weiterer Eigenschaften
oder Maßnahmen, die man in herkömmlichen numerischen
Steuerungssystemen nicht findet. Die peripheren Geräte
können in einer getrennten, örtlich entfernten Station
untergebracht werden.
Für die weitere Erläuterung dient insbesondere die
Fig. 15. Der Frontplattenprozessor ist ein ereignisangesteuertes
System, das ein Betriebssystem 500
aufweist, das seinerseits eine Scheduler-Routine und einen Satz von
Monitorbedienungsroutinen enthält. Der Schedulerbereich
des Betriebssystems 500 erkennt die Frontplattenprozessorereignisse
bei ihrem Auftreten und wählt aufgrund dieser
Ereignisse Aufgaben (Tasks) aus, die durchzuführen
sind. Wenn zu irgendeiner Zeit mehr als eine Task zur
Durchführung anstehen, wird die Task mit der höchsten
Priorität zuerst ausgeführt. Eine Liste dieser Tasks zusammen
mit ihren Prioritäten sind in einer Task-Warteschlange
501 gespeichert. Die Anzahl und Natur der vom
Frontplattenprozessor auszuführenden Tasks kann sich beträchtlich
ändern, und zwar in Abhängigkeit von besonderen
Optionen, die vom Anwender ausgewählt werden können. Bei
dem in der Fig. 15 dargestellten Ausführungsbeispiel
enthalten diese Tasks: eine Schaltermonitorroutine
502, eine Pultlampentreiberroutine 503, eine
Sichtanzeigeführungsroutine 504, eine Tastenfeldroutine
505 und eine CRT-Sichtanzeigeaktualisierungsroutine 506.
Eine zusätzliche Aufgabe oder Task ist
"Task-n-Routine" 507 bezeichnet. Damit soll veranschaulicht
werden, daß vom Frontplattenprozessor auch
andere Aufgaben ausgeführt werden können. In
der Tat ist es einer der Hauptvorteile des Frontplattenprozessors,
das Tasks dem System hinzugefügt oder vom
System weggenommen werden können, und zwar in Verbindung
mit einer kleinen oder überhaupt keiner Änderung in
der Betriebssystem-Software.
Das Betriebssystem 500 des Frontplattenprozessors erkennt
18 verschiedene Ereignisse. Viele dieser Ereignisse werden
von den Routinen 502 bis 507 erzeugt, wenn sie ihre Aufgaben
oder Tasks ausführen, und andere werden von der
Frontplattenprozessor-Hardware erzeugt.
Unter
Bezugnahme auf die Fig. 5 und 15 wird ausgeführt, daß vom
Hauptprozessor-USART 220, vom Hilfs-USART 294, von der
Tastenfeldschnittstelle 235, von der CRT-Schnittstelle 250
und vom Bandleser 297 erzeugte Unterbrechungen durch zugeordnete
Unterbrechungsbedienungsroutinen jeweils dem
Scheduler übermittelt werden. Wie bereits erläutert, wird
der Mikroprozessor 221 durch den am Bus 291 von der
Unterbrechungs- und E/A-Steuerschaltung 243 erzeugten
4-Bit-Code auf die geeignete Unterbrechungsbedienungsroutine
eingewiesen. Im einzelnen richtet eine Unterbrechung
an der Steuerleitung INT1 den Mikroprozessor 221 auf eine
Hauptprozessor-USART-Bedienungsroutine 508, und eine Unterbrechung
an der Steuerleitung INT2 verweist ihn entweder
auf eine Hilfs-USART-Unterbrechungsbedienungsroutine 509
oder auf eine 640-Mikrosekunden-Takt-Unterbrechungsbedienungsroutine
510. Eine an der Steuerleitung INT3 erzeugte
Unterbrechung verweist den Mikroprozessor 221 auf eine
Tastenfeldunterbrechungsbedienungsroutine 511, und eine
an der Steuerleitung INT4 erzeugte Unterbrechung weist
das System auf eine CRT-Sichtanzeige-Unterbrechungsbedienungsroutine
512 ein. Eine Unterbrechung an der Steuerleitung
INT5 richtet das System auf eine Wächterzeitgeber-
Unterbrechungsbedienungsroutine 513, und Unterbrechungen
an den Steuerleitungen INT6, INT7 verweisen das
System auf eine Bandleser-Unterbrechungsbedienungsroutine
514.
Die Unterbrechungsservice- oder Unterbrechungsbedienungsroutinen
508 bis 514 berichten an den Scheduler
im Betriebssystem 500. Diese Berichte umfassen eine erste
Zahl, die das aufgetretene Ereignis anzeigen, und eine
zweite Zahl, die eine besondere, in Beziehung stehende Task
identifiziert. Der Scheduler im Betriebssystem 500 verwendet diese beiden Zahlen
als Indices in Tafeln oder Tabellen, in denen definiert
ist, was als nächstes zu geschehen hat. Die Ereignisse,
die vom Scheduler erkannt werden, sind in der folgenden
Tabelle C zusammengestellt.
Der Frontplattenprozessor ist eine Maschine mit
einem endlichen Zustand, und folglich sind die Tasks, die
von den Routinen 502 bis 507 vorgenommen werden, jeweils
zu jederzeit in einem definierten Zustand. Diese Zustände
sind die folgenden:
SCPT - Die Task wird zur Zeit vom Frontplattenprozessor
ausgeführt.
SEXT - Die Task ist in der Task-Warteschlange 501 aufgelistet
und wartet auf Prozessorzeit.
SSLP - Die Task ist zum Schlafen gebracht und wartet auf
einen voreingestellten Anteil an Zeit zum
Passieren.
SIOW - Die Task wartet auf eine E/A-Operation, um vollendet
zu werden.
SNUL - Die Task wartet auf die Aktivierung durch ein Ereignis,
das die Task identifiziert. Verschiedene
Ereignisse können die Task von diesem Zustand aus
aktivieren.
Es ist selbstverständlich die Funktion des Schedulers,
die definierten Ereignisse bei ihrem Auftreten zu
erkennen und die verschiedenen Tasks in den geeigneten Zustand
zu bringen. Immer dann, wenn beispielsweise das
CRT-Sichtgerät 17 ein vertikales Rücklaufsignal erzeugt,
wird der Mikroprozessor 221 durch die Steuerleitung INT4
unterbrochen, und die CRT-Sichtanzeige-Unterbrechungsbedienungsroutine
512 wird ausgeführt. Der Zweck dieses
unterbrechungsangesteuerten Ereignisses ist es, die
Aktualisierung des CRT-Sichtgerätes 17 mit neuen Daten
während der 3,1-ms-Vertikalrücklaufperiode einzuleiten.
Es ist die Aufgabe oder Task der CRT-Sichtanzeige-Aktualisierungsroutine
507, den tatsächlichen Datentransfer
vorzunehmen, und folglich ist es die Funktion des Schedulers,
die Task-Nummer oder Taskzahl 7 zu aktivieren,
wenn die CRT-Sichtanzeige-Unterbrechungsbedienungsroutine
512 dieses Ereignis berichtet. Die Bewerkstelligung erfolgt
durch Laden der Taskzahl, d. h. 7, in die Task-
Warteschlange 501, wo die Ausführung erfolgt, wenn in
der Task-Warteschlange prioritätshöhere Tasks beendet
sind. Aufgrund des Vertikalrücklaufereignisses wird daher
die Task 7 vom Zustand SNUL in den Zustand SEXT gebracht.
Wenn die Task 7 in der Warteschlange 501 zur
prioritätshöchsten Task wird und die vorangegangene Task
beendet oder blockiert worden ist, wird die CRT-Sichtanzeige-
Aktualisierungsroutine 506 vom Scheduler aktiviert
und ausgeführt, d. h. der Zustand der Task 7 ändert sich
von SEXT auf SCPT.
Aus der obigen Erläuterung geht hervor, daß die
Tasks vom Scheduler in Abhängigkeit von zur Task berichteten
Ereignissen von Zustand zu Zustand bewegt werden. Die
Zustandsänderungen, die auftreten, sind in der Zustandsereignistabelle
nach der Fig. 16 skizziert.
Das Betriebssystem 500 des Frontplattenprozessors ist für maximale
Flexibilität ausgelegt, da die Art und Anzahl der
peripheren Geräte, die der ortsungebundenen Steuerstation
2 zugeordnet sind, in Abhängigkeit von den Anforderungen
des Anwenders beträchtlichen Schwankungen unterliegen.
Wenn beispielsweise das CRT-Sichtgerät 17 geändert wird,
mag es aufgrund der Hardware-Unterschiede erforderlich
sein, die Anzeigeführungs- oder Anzeigeverarbeitungsroutine
504, die CRT-Anzeigeaktualisierungsroutine 506
und die CRT-Anzeigeunterbrechungsbedienungsroutine 512
zu ändern. Der Rest des Betriebssystems 500 erfährt keine
Änderung. Die Priorität, mit der Tasks ausgeführt werden,
kann man leicht dadurch ändern, daß man die in den
Taskstatusblöcken gespeicherten Prioritätszahlen ändert.
Die Tasks im Frontplattenprozessor zeigen eine
Arbeitsweise, um Daten von einem peripheren Gerät
einzugeben, Daten in eine Task-Übertragungsschlange
zu schreiben und dann die Kommunikationsroutine aufzurufen,
um die Daten zum Hauptprozessor zu übertragen.
Operation der Seriendatenübertragung
Die Seriendatenübertragung zwischen dem Hauptprozessor
und der ortsungebundenen Steuerstation 2 ist eine Vollduplex-
Datenverbindung vom Typ RS-232. Die Leitung und Führung
der Datenkommunikationen wird von einem Kommunikations-
Software-Modul ausgeführt, der eine USART-Unterbrechungsbedienungsroutine
und eine Kommunikationsroutine
enthält. Der Kommunikations-Software-Modul ist am Hauptprozessor
und am Frontplattenprozessor im wesentlichen der
gleiche.
Der Hauptzweck des Kommunikations-Software-Modul
besteht darin, ein Protokoll zu erstellen, dem der Hauptprozessor
und der Frontplattenprozessor unterliegen, wenn
zwischen ihnen Befehle oder Nachrichten übertragen werden
sollen. Der Kommunikations-Software-Modul empfängt auch
Anforderungen zum Übertragen von Nachrichten residenter
Prozesse oder Aufgaben. Er überträgt die Nachricht unter
Verwendung des geeigneten Protokolls, und er berichtet
dem anfordernden Prozeß oder der anfordernden Aufgabe,
wenn die Übertragung beendet ist. Der Kommunikations-
Software-Modul empfängt auch Nachrichten über die Seriendatenverbindung,
speichert sie in Datenpuffern ab, die
von der residenten Aufgabe oder dem residenten Prozeß
eingerichtet sind, und benachrichtigt die residente
Aufgabe oder den residenten Prozeß, daß der Empfang
beendet ist oder daß ein Übertragungsfehler aufgetreten
ist.
Im folgenden wird auf die Fig. 17
verwiesen. Eine über die Datenverbindung übermittelte
Nachricht besteht aus einem Kopfsegment, einem Textsegment
und einem Blocküberprüfungszeichen BCC. Das Kopfsegment
besteht aus drei Bytes, die mit HC1, HC2 und
HC3 bezeichnet sind. Das erste Byte HC1 gibt die Anzahl
der Bytes im Textsegment an. Das zweite Byte HC2 ist der
Gerätecode für die empfangende Task oder den empfangenden
Prozeß. Das dritte Byte HC3 ist ein Befehls- oder ein
Steuercode. Das Textsegment kann eine Länge von 1 bis
255 Bytes haben. Das BCC-Zeichen ist ein einziges Byte,
das dadurch berechnet wird, daß jedes Byte im Textsegment
einer logischen Exklusiv-ODER-Operation unterzogen wird.
Wenn das erste Byte in der Nachricht (HC1) eine
Null ist, wird die Nachricht als Befehl interpretiert.
Das dritte Byte HC3 identifiziert den besonderen Befehl
für die empfangende Task oder den empfangenden Prozeß.
Für die folgende Erläuterung wird die
Fig. 18 herangezogen. Es liegt in der Verantwortung der
Tasks im Frontplattenprozessor und der Prozesse im Hauptprozessor,
Datenpuffer zu erhalten und sie vor dem Aufrufen
des Kommunikations-Software-Moduls zur Übertragung
mit Daten zu füllen. Ein derartiger Puffer 570 ist hier
mit Prozeßübertragungswarteschlange oder Taskübertragungsschlange
bezeichnet. Ein Puffer ist jeweils einer
Task oder einem Prozeß zugeordnet, die oder der Daten
über die Seriendatenverbindung überträgt. Weiterhin ist
mit einem derartigen Prozeß oder einer derartigen Task
ein IOPB-Block an Daten 571 zugeordnet, der Information
speichert, die vom Kommunikations-Software-Modul benötigt
wird, um die sendende oder übertragende Task zu bedienen.
Der IOPB-Block 571 speichert einen Warteschlangenzeiger,
der die Adresse der zugeordneten Übertragungswarteschlange
angibt. Weiterhin speichert er die Adresse
irgendeines Puffers, der von der ihm zugeordneten Task
zum Empfang von Daten eingerichtet ist. Darüber hinaus
speichert er ein Textlängenzeichen (HC1), ein Gerätecode
(HC2) und Befehlsdaten (HC3), die vom Kommunikations-
Software-Modul benötigt werden, um eine Nachricht
zu bilden.
Eine Nachrichtenübertragung wird von einer Task oder einem
Prozeß eingeleitet, die ihren Gerätecode oder der seinen
Gerätecode in einer Übertragungsanforderungstafel 572
lädt und den Kommunikations-Software-Modul 573 aufruft.
Der Gerätecode wird von der Routine in dem Kommunikations-Software-Modul 573 verwendet, um die
Kopfdaten und den Text der zu übertragenden Nachricht zu
finden. Dies wird erreicht durch Abbildung über eine Gerätecodetafel
574, die für alle Gerätecodes eine Liste der
IOPB-Block-Speicheradressen speichert. Die im IOPB-Block 571
gespeicherten Kopfdaten werden dann verwendet, um das
Kopfsegment der Nachricht zu bilden, und der Warteschlangen-
Zeiger, der im IOPB-Block gespeichert ist, wird
benutzt, um den Nachrichtentext aufzufinden.
Ein ähnlicher Prozeß oder Vorgang findet am Empfangsende
der Nachricht statt. Das zweite Zeichen (HC2)
in der empfangenen Nachricht ist der Gerätecode für den
Prozeß oder die Task, der oder die die Nachricht empfangen
soll. Dieses Zeichen wird über die Gerätecodetafel
574 abgebildet, um den richtigen IOPB-Block 571 zu finden.
Die Adresse des Datenpuffers, in dem der Nachrichtentext
gespeichert werden soll, wird in dem IOPB-Block 571 gefunden.