DE2950979C2 - Numerisches Steuerungssystem - Google Patents

Numerisches Steuerungssystem

Info

Publication number
DE2950979C2
DE2950979C2 DE19792950979 DE2950979A DE2950979C2 DE 2950979 C2 DE2950979 C2 DE 2950979C2 DE 19792950979 DE19792950979 DE 19792950979 DE 2950979 A DE2950979 A DE 2950979A DE 2950979 C2 DE2950979 C2 DE 2950979C2
Authority
DE
Germany
Prior art keywords
data
processor
main processor
memory
programmable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE19792950979
Other languages
English (en)
Other versions
DE2950979A1 (de
Inventor
Theodore L Bernhard
Ernst Dummermuth
Thomas M Hoch
Bruce S Jaffe
Gregory L Merrell
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Allen Bradley Co LLC
Original Assignee
Allen Bradley Co LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US05/970,959 external-priority patent/US4228495A/en
Application filed by Allen Bradley Co LLC filed Critical Allen Bradley Co LLC
Priority to DE2954696A priority Critical patent/DE2954696C2/de
Priority claimed from DE2954696A external-priority patent/DE2954696C2/de
Publication of DE2950979A1 publication Critical patent/DE2950979A1/de
Application granted granted Critical
Publication of DE2950979C2 publication Critical patent/DE2950979C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of program data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • G05B19/4147Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by using a programmable interface controller [PIC]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34418Scheduler for sequential control, task planning, control sequence
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36153Two, several consoles, displays, panels, two different input, joystick

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Numerical Control (AREA)

Description

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.
Tabelle C
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.

Claims (13)

1. Numerisches Steuerungssystem, enthaltend
  • - einen Hauptprozessor mit
    • - einer Eingabeeinrichtung zur Eingabe von Blöcken von Teilprogrammdaten,
    • - einer Speichereinrichtung zur Speicherung von Daten und
    • - einer Ausgabeeinrichtung zur Ausgabe von Bewegungsbefehlssignalen an Servomechanismen einer Werkzeugmaschine, wobei der Hauptprozessor derart betreibbar ist (Funktionen des Hauptprozessors), daß
      • - ein Teil der im Teilprogramm enthaltenen Daten zum Ausführen von numerischen Steuerungsfunktionen in Bewegungsbefehlssignale umgesetzt und an die Servomechanismen ausgegeben werden, und
      • - ein weiterer Teil der im Teilprogramm enthaltenen Daten zum Anzeigen von durch einzelne Geräte an der Werkzeugmaschine auszuführenden Hilfsfunktionen in einzelne logische Signale umgesetzt und in der Speichereinrichtung des Hauptprozessors gespeichert werden, und weiterhin enthaltend
  • - E/A-Schnittstellenschaltungen, über die das numerische Steuerungssystem mit den einzelnen Geräten der Werkzeugmaschine verbunden ist,
dadurch gekennzeichnet,
  • - daß ein einer programmierbaren Schnittstelle PI (75) zugeordneter programmierbarer PI-Prozessor (Fig. 3) mit dem Hauptprozessor (Fig. 2) und den E/A-Schnittstellenschaltungen (8) verbunden ist und
  • - daß die Ausgabe der Bewegungsbefehlssignale an die Servomechanismen der Werkzeugmaschine (13) während einer definierten Iterationsperiode einmal erfolgt und
  • - daß der programmierbare PI-Prozessor (Fig. 3) während jeder dieser Iterationsperioden einmal derart betreibbar ist (Funktionen des programmierbaren PI-Prozessors), daß
    • - Daten in den programmierbaren PI-Prozessor (Fig. 3) eingegeben werden, welche
      • - den Zustand der einzelnen Geräte an der Werkzeugmaschine anzeigen über die E/A-Schnittstellenschaltungen (8) und
      • - die auszuführenden Hilfsfunktion anzeigen, wobei diese Daten in Form der einzelnen logischen Signale in einer PI-Abbildungstafel (105) der Speichereinrichtung (29, 30) des Hauptprozessors (Fig. 2) gespeichert sind,
    • - unter Verwendung dieser, in den programmierbaren PI-Prozessor (Fig. 3) eingegebenen Daten ein im programmierbaren PI-Prozessor (Fig. 3) gespeichertes Steuerprogramm ausgeführt wird und bei der Ausführung des Steuerprogramms Daten, die zum Steuern der einzelnen Geräte an der Werkzeugmaschine (13) dienen, und Daten, die eine Vollendung der Hilfsfunktionen anzeigen, gewonnen werden, und
    • - die zum Steuern der einzelnen Geräte an der Werkzeugmaschine (13) dienenden Daten über die E/A-Schnittstellenschaltungen (8) an die einzelnen Geräte ausgegeben und die die Vollendung der Hilfsfunktionen anzeigenden Daten an die PI-Abbildungstafel (105) der Speichereinrichtung (29, 30) des Hauptprozessors (Fig. 2) ausgegeben werden.
2. Numerisches Steuerungssystem nach Anspruch 1, dadurch gekennzeichnet, daß die vom programmierbaren PI-Prozessor (Fig. 3) vorgenommenen Funktionen ausgeführt werden, während der Hauptprozessor (Fig. 2) seine Funktionen ausführt.
3. Numerisches Steuerungssystem nach Anspruch 2, dadurch gekennzeichnet, daß die Funktionen, die von dem programmierbaren PI-Prozessor (Fig. 3) ausgeführt werden, mittels eines vom Hauptprozesser (Fig. 2) erzeugten Signals (NMI) mit den Funktionen synchronisiert sind, die vom Hauptprozessor ausgeführt werden.
4. Numerisches Steuerungssystem nach einem der Ansprüche 1 bis 3, bei dem
  • - der Hauptprozessor einen Mikroprozessor enthält, der mit der Speichereinrichtung des Hauptprozessors über einen Hauptdatenbus und einen Hauptadreßbus verbunden ist,
dadurch gekennzeichnet,
  • - daß der programmierbare PI-Prozessor (Fig. 3) einen PI- Mikroprozessor (85) enthält, der mit einem PI-Speicher (88, 89, 94) über einen PI-Datenbus (82) und einen PI- Adreßbus (83) verbunden ist,
  • - daß eine Direktspeicherzugriffschaltung (110) vorgesehen ist, die den PI-Datenbus (82) und den PI-Adreßbus (83) mit dem Hauptdatenbus (27) und dem Hauptadreßbus (26) verbindet, und
  • - daß der programmierbare PI-Prozessor (Fig. 3) aufgrund der in dem PI-Speicher (88, 89, 94) gespeicherten und von dem PI-Mikroprozessor (85) ausgeführten Befehle ferner derart betreibbar ist, daß
    • - die von der PI-Abbildungstafel (105) in der Speichereinrichtung (29, 30) des Hauptprozessors (Fig. 2) eingegebenen Daten, die die auszuführende Hilfsfunktion anzeigen, in einer PI-Abbildungstafel (106) des PI- Speichers (88, 89, 94) gespeichert werden, und
    • - die an die PI-Abbildungstafel (105) der Speichereinrichtung (29, 30) des Hauptprozessors (Fig. 2) auszugebenden Daten, die die Vollendung der Hilfsfunktion anzeigen, aus der PI-Abbildungstafel (106) des PI-Speichers (88, 89, 94) ausgelesen werden.
5. Numerisches Steuerungssystem nach Anspruch 4, dadurch gekennzeichnet,
  • - daß die einzelnen Geräte an der Werkzeugmaschine (13) mit dem Hauptdatenbus (27) und dem Hauptadreßbus (26) über die E/A-Schnittstellenschaltungen (7, 8) verbunden sind und
  • - daß mittels des programmierbaren PI-Prozessors (Fig. 3) über die Direktspeicherzugriffschaltung (110) Daten von den einzelnen Geräten an der Werkzeugmaschine (13) eingegeben und an die einzelnen Geräte der Werkzeugmaschine (13) ausgegeben werden.
6. Numerisches Steuerungssystem nach einem der Ansprüche 1 bis 5, wobei das numerische Steuerungssystem ein Tastenfeld und eine Sichtanzeige aufweist, gekennzeichnet durch
  • - einen einer Frontplatte FP zugeordneten FP- Prozessor (Fig. 5) mit einem FP-Mikroprozessor (221), der über einen FP-Datenbus (223) und einen FP-Adreßbus (222) an einen FP-Speicher (224, 225, 226) angeschlossen ist,
  • - Kommunikationseinrichtungen (9, 37, 220) zur Verbindung des FP-Mikroprozessors (221) mit dem Hauptprozessor (Fig. 2),
  • - eine Tastenfeld-Schnittstelle (235) zur Verbindung des FP-Mikroprozessors (221) mit dem Tastenfeld (14),
  • - eine CRT-Schnittstelleneinrichtung (250) zur Verbindung des FP-Mikroprozessors (221) mit der Sichtanzeige (16, 17) und
  • - eine Schalterschnittstelleneinrichtung (265) zur Verbindung des FP-Mikroprozessors (221) mit einem FP-Schaltersatz (15), wobei der FP-Prozessor (Fig. 5) aufgrund von Befehlen, die in dem FP-Speicher (224, 225, 226) gespeichert sind und durch seinen FP-Mikroprozessor (221) ausgeführt werden, betreibbar ist, um Daten vom Tastenfeld (14) und FP- Schaltersatz (15) zu dem Hauptprozessor (Fig. 2) und vom Hauptprozessor (Fig. 2) empfangene Daten zur Sichtanzeige (16, 17) zu übermitteln.
7. Numerisches Steuerungssystem nach Anspruch 6, dadurch gekennzeichnet,
  • - daß die Kommunikationseinrichtungen (9, 37, 220), die den FP-Mikroprozessor (221) mit dem Hauptprozessor (Fig. 2) verbinden, eine Seriendatenverbindung (9) enthalten.
8. Numerisches Steuerungssystem nach Anspruch 7, dadurch gekennzeichnet,
  • - daß die Kommunikationseinrichtungen (9, 37, 220), die den FP-Mikroprozessor (221) mit dem Hauptprozessor (Fig. 2) verbinden, ferner
    • - eine erste universelle Empfänger/Sender-Einrichtung (37) aufweisen, die die Seriendatenverbindung (9) mit dem Hauptprozessor (Fig. 2) verbindet, und
    • - eine zweite universelle Empfänger/Sender-Einrichtung (220) aufweisen, die die Seriendatenverbindung (9) mit dem FP-Mikroprozessor (221) verbindet.
9. Numerisches Steuerungssystem nach einem der Ansprüche 5 bis 8, dadurch gekennzeichnet,
  • - daß die Speichereinrichtung (29, 30) des Hauptprozessors (Fig. 2) eine FP-Abbildungstafel (444) und der FP-Speicher (224, 225, 226) eine weitere FP-Abbildungstafel (233) speichern, die jeweils den Zustand des FP-Schaltersatzes (15) anzeigen, und
  • - daß der FP-Prozessor (Fig. 5) derart betrieben wird, daß
    • - der gegenwärtige Zustand des FP-Schaltersatzes (15) mit dem Zustand der im FP-Speicher (224, 225, 226) gespeicherten weiteren FP-Abbildungstafel (233) periodisch verglichen wird und im Falle einer Differenz die weitere FP-Abbildungstafel (233) im FP-Speicher (224, 225, 226) durch Änderung ihres Inhalts auf den neuesten Stand gebracht wird, und
    • - die FP-Abbildungstafel (444) in der Speichereinrichtung (29, 30) des Hauptprozessors (Fig. 2) auf den neuesten Stand gebracht wird durch eine Übermittlung von Daten zu dem Hauptprozessor (2), die die entsprechenden Änderungen angeben, die in der in der Speichereinrichtung (29, 30) des Hauptprozessors (Fig. 2) gespeicherten FP-Abbildungstafel (444) auszuführen sind.
10. Numerisches Steuerungssystem nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet,
  • - daß das Steuerprogramm Makrobefehle enthält,
    • - die von einer Art sind, wie sie in einer speicherprogrammierbaren Steuerung verwendet werden und
    • - die in einem Steuerprogrammbereich (464) des PI-Speichers (88, 89, 94) gespeichert sind, und
  • - daß die Makrobefehle des Steuerprogramms dadurch ausgeführt werden, daß sie durch entsprechende Makrobefehlinterpretierroutinen, die im PI-Speicher (88, 89, 94) gespeichert sind, umgewandelt werden.
1. Numerisches Steuerungssystem nach Anspruch 10, dadurch gekennzeichnet,
  • - daß der programmierbare PI-Prozessor (Fig. 3) einen PI-Universal-Empfänger/Sender (103) aufweist, der mit dem PI-Datenbus (82) und mit dem PI-Adreßbus (83) verbunden ist, und
  • - daß der PI-Mikroprozessor (85) derart betreibbar ist, daß er über den PI-Universal-Empfänger/Sender (103) von einer Programmpultstation (3) die Makrobefehle empfängt und sie in den Steuerprogrammbereich (464) des PI-Speichers (88, 89, 94) schreibt.
DE19792950979 1978-12-19 1979-12-18 Numerisches Steuerungssystem Expired - Fee Related DE2950979C2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE2954696A DE2954696C2 (de) 1978-12-19 1979-12-18 Numerisches Steuerungssystem

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US05/970,959 US4228495A (en) 1978-12-19 1978-12-19 Multiprocessor numerical control system
DE2954696A DE2954696C2 (de) 1978-12-19 1979-12-18 Numerisches Steuerungssystem

Publications (2)

Publication Number Publication Date
DE2950979A1 DE2950979A1 (de) 1980-07-10
DE2950979C2 true DE2950979C2 (de) 1995-11-16

Family

ID=25782736

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19792950979 Expired - Fee Related DE2950979C2 (de) 1978-12-19 1979-12-18 Numerisches Steuerungssystem

Country Status (1)

Country Link
DE (1) DE2950979C2 (de)

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3643115A (en) * 1970-02-19 1972-02-15 Allen Bradley Co Interface circuit for industrial control systems
US3728528A (en) * 1971-03-24 1973-04-17 Allen Bradley Co Circular interpolation by finite differences
US3745546A (en) * 1971-06-07 1973-07-10 Allen Bradley Co Controller output circuit
US3752969A (en) * 1971-09-24 1973-08-14 Allen Bradley Co Method and means for updating the position dimension of a numerically controlled machine tool
US3810104A (en) * 1972-07-31 1974-05-07 Allen Bradley Co Programmable magnetics for a numerical control system
US3813649A (en) * 1972-09-01 1974-05-28 Bradley Co A Controller program editor
US3942158A (en) * 1974-05-24 1976-03-02 Allen-Bradley Company Programmable logic controller
US3992636A (en) * 1976-02-05 1976-11-16 Allen-Bradley Company Digital input circuit with fault detection means
US4070702A (en) * 1976-03-26 1978-01-24 Allan-Bradley Company Contact histogram for programmable controller
US4064395A (en) * 1976-08-17 1977-12-20 Cincinnati Milacron Inc. Machine control system employing a programmable machine function controller
US4038533A (en) * 1976-09-29 1977-07-26 Allen-Bradley Company Industrial control processor system
US4151580A (en) * 1977-11-21 1979-04-24 Allen-Bradley Company Circuit board assembly with disconnect arm

Also Published As

Publication number Publication date
DE2950979A1 (de) 1980-07-10

Similar Documents

Publication Publication Date Title
DE3610433C2 (de) Verfahren zum Steuern einer Maschine mit einer speicherprogrammierbaren Steuerung mit Funktionsplaninterpreter
DE69223492T2 (de) Numerische Steuerungseinheit
DE69414609T2 (de) Informationsanzeigesystem zur aktiven redundanten rechnergestützten prozesssteuerung
DE3855219T2 (de) Verfahren und vorrichtung zum übertragen von echtzeitdaten zwischen einem programmierbaren logiksteuergerät und einem programm in einem zentralen steuergerät
DE3854594T2 (de) Programmierbare Steuerung mit parallelen Prozessoren.
DE3689394T2 (de) Informationsverarbeitungsanlage mit einem Allzweckprozessor und einem Sonderzweckprozessor.
DE69133560T2 (de) Managementsystem für eine numerisch gesteuerte Werkzeugmaschine
DE3587034T2 (de) Verfahren und einrichtung zur steuerung automatischer geraete.
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE69320122T2 (de) Speicherprogrammierbare Steuerung mit Leiterdiagramm-Makroinstrucktionen
DE3688789T2 (de) Numerisches steuersystem.
DE69321397T2 (de) Fensteranzeigesteuerverfahren in einem offenen System mit Fenstern
DE68928136T2 (de) Arbeitsplatz und entsprechendes betriebsverfahren
DE19813203A1 (de) Servosteuerverfahren und Servosteuersystem
DE2801563C2 (de)
DE69626091T2 (de) Numerische steuerung
DE3851197T2 (de) Numerische steuereinheit.
EP0107026B1 (de) Speicherprogrammierbare Steuerung
EP1182529A2 (de) Industrielle Steuerung auf der Basis Technologischer Objekte
DE102005028943A1 (de) Numerische Steuerung, die ein in einer Schriftsprache geschriebenes Programm aufrufen kann
DE2713253A1 (de) Programmlader fuer ein steuergeraet
DE4226536A1 (de) Programmierbare steuerung mit einer benutzernachrichtenfunktion
DE69521262T2 (de) Steuersystem
EP0590175B1 (de) Prozesssteuerungssystem
DE10218816A1 (de) Programmierbares Steuerungssystem

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8172 Supplementary division/partition in:

Ref country code: DE

Ref document number: 2954696

Format of ref document f/p: P

Q171 Divided out to:

Ref country code: DE

Ref document number: 2954696

AH Division in

Ref country code: DE

Ref document number: 2954696

Format of ref document f/p: P

D2 Grant after examination
AH Division in

Ref country code: DE

Ref document number: 2954696

Format of ref document f/p: P

8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Free format text: LIPPERT, H., DIPL.-ING., PAT.-ANW., 60322 FRANKFURT

8339 Ceased/non-payment of the annual fee