DE2950979C2 - Numerical control system - Google Patents

Numerical control system

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
German (de)
Other versions
DE2950979A1 (en
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/en
Priority claimed from DE2954696A external-priority patent/DE2954696C2/en
Publication of DE2950979A1 publication Critical patent/DE2950979A1/en
Application granted granted Critical
Publication of DE2950979C2 publication Critical patent/DE2950979C2/en
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/00Programme-control systems
    • G05B19/02Programme-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 programme 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

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.The invention relates to a numerical Control system according to the preamble of the patent demanding 1. Such numerical control System is known from US 4,038,533. Indeed is there only a single processor provided both the function of a numerical control as well as that of a programmable logic Control can make.

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.Numerical control systems are tooled machines connected to a function of a stored part program the movement of a cutting control tool. The stored program diri yaws the machine tool through a series of Steps. For example, in a milling machine bewe the cutting tool along three separate axes gen to rectilinear or circular in a workpiece Perform cuts. The part program provides one Series of commands or instructions in the form of Digital numbers and codes are stored and specify where the cuts should be made and in which Sequence or order the cuts made who that should. Although with regard to the development of Technique the part programs in magnetic or perforated tapes ge stores and when executed in the form of data blocks were read into the numerical control system Recently, there are numerical control systems that entire partial programs in their random access memories store.

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.In addition to controlling the movements of a cutting The tools are taken over by the numerical control systems also the control of auxiliary functions on the machine tools,  for example, tool selection and tool change, the speed of the drive spindle, the flow of a cooling by means of pallet selection and pallet change. These Auxiliary functions vary considerably from machine to machine and it was typical that these auxiliary functions were provided by ge disconnected, hardwired logic circuits were executed those who respond to both sensed states or conditions the machine tool as well as commands or instructions match that of selected codes within the part programs are specified. As in the above mentioned US 4,038,533 and US 3,810,104 is, you have recently programmable controllers via interface connections to the processor numeric Control systems connected to the auxiliary functions too control. It can be with these programmable controllers be a separately programmed processor or to be an integral part or integral unit of the Pro of the numerical control system.

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. The addition of a programmable controller to a numerical control system leads to a series of extremely practical advantages. First, it is not him necessary, the hardware of the programmable controller to change if the numerical control system in under different types of machine tools is involved. Instead, the programmable controller is so program that it is capable of using a special machine to form an interface connection. Second, one is programmable controller, although programmable Interfaces have been based on mini-computers for many years control systems are available, by the user much easier to program what is used on the Instruction set as well as editing or editing possible This is due to a programmable Control unit are available.  

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.Despite the many advantages of an interface Connection of a programmable controller with a numerical control system, increases such an arrangement the system costs, and in some cases, these can increase costs are not justified. For example In some applications, for example, the machine tool to which the controller can be connected via an interface should, very easily trained, and the task of a ge disconnected logic circuit or relay circuit for operation is to develop and manufacture the individual I / O devices trivial. Thus, it is desirable that a numerical control the interface for a programmable control device as an option instead of an inseparable one Part of the basic numerical control system.

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.Most in use numerical Control systems are made up of individual digital electronics components or building blocks, such as logical ones Gates, latching switches, flip-flops, and registers. Recently, however, one has mini calculator or Indu computerized computers as described in US Pat. No. 4,038,533 are programmed to have numerical control functions can execute. With the development relatively faster and cost-effective microprocessors and on microprocessors based numerical control systems you also have the economic and technical conditions for the Applicability created.

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.Numerical control systems contain a Prozes sor, the blocks of program part data in motion commands signals that are connected to the sequential control mechanisms or Servo mechanisms are output at a machine. Dar In addition, codes in the subprogram become logical Signals are converted to the individual I / O devices on the machine control to perform helper functions. Operation of the  Numerical control system is controlled by numerous switches and display devices controlled on a front panel te are attached so that they are for the operator of the Machine are easily accessible. Keyboards and cathodes ray tube viewing devices are also in general mine on the front panel to manually enter Da as well as the preparation or edition of the subprograms to enable them. Between this so-called frontplat tengeräten and the numerical control processor, or the Numerical control system processors are numerous Connections required. The production of such verbin It is very expensive. For practical reasons, it is therefore necessary that the front panel and the numerical control processor as close together as possible are. The result of these considerations is that most numerical control systems in a large cabinet below on the front of which are the front panel Controls are located. The cabinet is always located in a location that is easily accessible to the operator is. The consequence of this is that between the free the cabinet of the numerical control system and the controlling machine requires a considerable amount of wiring is.

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.While the state of the art after the US 4,038,533 now makes use of a single processor, which gives some flexibility and flexibility Adaptation to be set to various machine tools, is from US 4,064,395 a machine control system with two separate processors known, one data processor with an arithmetic unit and a logical processor with a logic circuit. The logical processor takes the function of a programmable logic controller true and controls the auxiliary over an I / O interface functions of the machine to be controlled. Task of the data Processors are, in conjunction with a digital pre  thrust and motor control the feed rate to control a movable part of the machine. However, for both processors is only one Control program provided in the memory programmable controller parent processor is stored. In addition to this control program, there are no independent workpiece or part program. Hardware are both processors with a and the same address bus and with the same data in addition to being jointly with the I / O interfaces of each Devices are.

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.The object of the invention is the generic numeri To improve the control system so that the main processor made control of the servo mechanisms the machine tool in cooperation with the operation individual devices of the machine tool is simplified.

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.This task is characterized by the characterizing Features solved in claim 1. The claimed Solution allows the two processors ko can work ordained.

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.The programmable interface processor (PI processor) is a separate from the main processor be driven system, although data with the main processor exchanges, but otherwise is not dependent. Data showing the state of the numerical control system and by the system performing auxiliary functions are periodically from the main processor to the pro transmitted programmable interface processor. Likewise, data will be the state of the controlled  Show machine tool periodically from the programmable interface processor to main processor. The main processor can work with continue to perform other functions while the programmable interface processor a ge stores control program, preferably Commands according to the type of a programmable logic controller baren control contains. The programmable cut The processor can also periodically change the data and Occupy the main processor address bus to get data about it from the individual devices of the machine tool and output data to the machine tool. The programmable interface processor can with be connected to a program loader, as in the US 3,813,649 and US 4,070,702 is to load and edit or edit the tax program implemented by him.

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.The created according to the invention numerical Control system is in terms of system size, the local arrangement and design as well as the System capabilities very flexible. The separately operated Processors allow for minimal changes in hardware and in software features or Features can be added or removed. Switches, display devices, visual vision devices and other parked on the operator I / O devices can be easily added or removed be taken. The main processor with its complex Programs do not need to be disturbed. In similar Way require changes to the machine tool in the general only one change in the control program that from the programmable interface processor leads. Such changes in the control program can by the user using a program console or program miergerätes be made easily. It will be  Edition or treatment method used, the known from programmable controllers forth are.

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.A trained according to the invention numerical Control system thus contains a main processor, of functions such as interpolation and output of Motion command signals to the servomechanisms of a Machine tool executes. A separate programmer barer interface processor is compatible with the main pro zessor bus arrangement and works like one programmable logic controller to the individual Control devices of the machine tool.

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.In a development of the invention a direct access circuit is provided which the Data and address bus of the main processor with the ent programmable interfaces talking buses processor connects.

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.According to another embodiment The invention is another independent processor provided in the form of a front panel processor, although also exchanges data with the main processor, but in the other is not dependent. The front panel processor generally monitors the front panel switches as well the input data blocks from a tape reader, a Teletypewriter (TTY), a magnetic cassette device or other input devices and controls the front panels signal lamps as well as an alpha-numeric display device or a CRT display device on. The front panel processor exchanges with the main processor data preferably via a single communi cation connection, which allows the front plate away from the main processor can. As a result, therefore, the front panel and the associated front panel processor either in the same Cabinet like the main processor or separated in one  smaller, freely available with regard to the location Station be housed, whose place of the machines operator is acceptable.

Andere Weiterbildungen sind in weiteren Unteransprüchen gekennzeichnet.Other developments are in further Subclaims characterized.

Ein bevorzugtes Ausführungsbeispiel der Erfindung wird nachstehend an Hand von Zeichnungen beschrieben. Es zeigen: A preferred embodiment of the invention will be described below with reference to drawings. Show it:  

Fig. 1 eine bildliche Darstellung des numerischen Steuerungssystem nach der Erfindung, Fig. 1 is a pictorial representation of the numerical control system according to the invention,

Fig. 2 ein Schemaschaltbild des Hauptprozessorbereiches des Steuerungssystems nach der Fig. 1, Fig. 2 is a schematic diagram of the main processor portion of the control system of FIG. 1,

Fig. 3 ein Schemaschaltbild des programmierbaren Schnittstellenprozessorbereiches des Steuerungssystems nach der Fig. 1, Fig. 3 is a schematic diagram of the programmable interface processor portion of the control system of FIG. 1,

Fig. 4 ein Schemaschaltbild der Direktspeicherzugriffsschaltung (DMA-Schaltung), die ein Teil des Prozessorbereiches nach der Fig. 3 bildet, Fig. 4 is a schematic diagram of the direct memory access circuit (DMA circuit), which forms a part of the processor portion of FIG. 3,

Fig. 5 ein Schemaschaltbild des Frontplattenprozessorbereiches des Steuerungssystems nach der Fig. 1, Fig. 5 is a schematic diagram of the front panel processor portion of the control system of Fig. 1,

Fig. 6 eine schematische Darstellung des Haupt­ prozessor-Betriebssystems, Fig. 6 is a schematic representation of the main processor operating system,

Fig. 7 eine schematische Darstellung des Inhalts einer planmäßigen Warteschlange, die einen Teil des Be­ triebssystems nach der Fig. 6 bildet, FIG. 7 is a schematic representation of the contents of a scheduled queue forming part of the operating system of FIG. 6; FIG.

Fig. 8 eine schematische Darstellung des Inhalts eines Prozeß-Steuerblocks, der einen Teil des Betriebs­ systems nach der Fig. 6 bildet, Fig. 8 is a schematic representation of the contents of a process control block of the system part of the operation of FIG. 6,

Fig. 9 eine Darstellung, einer typischen Opera­ tionssequenz des Betriebssystems nach der Fig. 15, Fig. 9 is a diagram of a typical opération sequence of the operating system of 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. 10A and 10B a flow chart of contem controlled interrupt process, the drive system is a part of the Be forms of FIG. 15,

Fig. 11 ein Flußdiagramm des Frontplattenmonitors, der einen Teil des Betriebssystems nach der Fig. 6 bildet, FIG. 11 is a flow chart of the front panel monitor forming part of the operating system of FIG. 6; FIG.

Fig. 12A und 12B ein Flußdiagramm des Betriebs­ systems des programmierbaren Schnittstellenprozessors, FIG. 12A and 12B a flow chart of the operation of systems of the programmable interface processor,

Fig. 13 ein Zeitdiagramm zur Darstellung des Paral­ lelbetriebes des programmierbaren Schnittstellenprozessors und des Hauptprozessors, Fig. 13 is a timing diagram illustrating the Paral lelbetriebes the programmable interface processor and the main processor,

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. 14 is a schematic representation of the contents of the associated programmable interface Abbil extension panel that forms a part of the system of FIG. 2,

Fig. 15 eine schematische Darstellung des Soft­ ware-Systems des Frontplattenprozessors, Fig. 15 is a schematic representation of the soft ware system of the front plate processor,

Fig. 16 eine Darstellung der Zustandsereignis­ tafel, die bei dem Software-System nach der Fig. 15 verwen­ det wird, Fig. 16 is an illustration of the state event chalkboard that USAGE in the software system of FIG. 15 is det,

Fig. 17 eine schematische Darstellung des Formats einer Nachricht, die über die Seriendatenverbindung über­ mittelt wird, Fig. 17 is a schematic representation of the format of a message that is transmitted via the serial data link via averages,

Fig. 18 eine schematische Darstellung der Daten­ struktur, die der Seriendatenverbindung zugeordnet ist. Fig. 18 is a schematic representation of the data structure associated with the serial data connection.

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.As shown in FIG. 1, a preferred embodiment of the numerical control system according to the invention in a main housing 1 and a non-stationary control station 2 is housed. A program station (station) 3 is used to load and edit the control program to be executed by the pro grammable interface processor. Station 3 , however, does not form part of the operating system. The construc tion of the main body 1 is tert erläu in DE 28 50 093 A1. The main body 1 includes a back-side base plate 4 and a series of printed circuit boards, which are connected to the base plate 4 and protrude from it to the front.

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.On the record much of the circuitry described below is accommodated, and include a main processor circuit board 5, a circuit board (interface circuit board) 6 for the programmable interface, a servo interface circuit plate 7 and an input / output interface circuit plate. 8 The main processor circuit board 5 is connected to the non-localized control station 2 via a cable 9 , and the circuit board 6 for the programmable interface or the programmable interface circuit board 6 is connected via a cable 10 to the program pultstation 3 . Similarly, the servomechanism interface circuit board 7 and the I / O interface circuit board 8 are connected via cables 11 and 12 respectively to the machine tool 13 to be controlled. The main housing 1 is typically located in a cabinet attached to the machine tool 13 . The cables 11 , 12 contain numerous conductors which are connected to the equipment in the same cabinet. In contrast, cables 9 , 10 are serial data links that can be up to about 15 meters long.

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.The untethered control station 2 is mounted in a location acceptable to the machine tool operator, and the control station 2 includes a keyboard or keypad 14 and switch (FP switch set) 15 for manually inputting data. The control station 2 also includes an optional alphanumeric viewer 16 and an optional CRT or CRT viewer 17 . Further, the control station 2 includes a front panel processor circuit board (not shown in the drawings) which is connected to the cable 9 and has circuits to be described hereinafter which process data from the keyboard 14 and the switches 15 and output data to the viewers 16 and 17 submit.

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. The program console station 3 includes a keyboard or keypad 18 and a viewer 19 . The program station 3 is connected to the programmable interface circuit board 6 via the cable 10 , and serves to load a control program of the type, as it is processed by a programmable controller, and edit or edit. After the loading and edition process is finished, you can separate the program pultsta tion 3 and use for other machines.

Hauptprozessor-HardwareMain processor 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.The main processor of the numerical control system is located on the circuit board 5 and is accordingly formed as shown in FIG. 2 around a 16-bit microprocessor 25 , which is connected to a 15-conductor address bus 26 and a 16-conductor data bus 27 is connected. As a microprocessor 25 , a device type TMS 9900, manufactured by Texas Instruments Incorporated, is used, and this microprocessor 25 is driven by a 3.3-MHz four-phase clock 28 . The address bus 26 and the data bus 27 are also formed in the base plate 4 and connect a series of system elements including a random access memory 29 and a read-only memory 30 . Although the size of the memories 29 , 30 may vary widely depending on the particular needs of the system, the basic system includes a 17-bit x 4K random access memory as memory 29 and a 16-bit x 12K ROM as memory 30 . An RD control line 31 leads from the microprocessor 25 to both the random access memory 29 and the fixed value memory 30 , and a WE control line 32 establishes a Ver connection between the random access memory 29 and the microprocessor 25 ago. A 16-bit word is read from either the random access memory 29 or the read-only memory 30 when a selected memory line is addressed via the address bus 26 and a logic low control signal is applied to the RD control line 31 . The 16-bit word thus read from the random access memory 29 or the read-only memory 30 passes through the data bus 27 and a 16-bit buffer 33 to a designated register within the microprocessor 25 . A 16-bit data word is written into the random access memory 29 by addressing a selected line in the random access memory 29 via the address bus 26 and applying a low control signal to the WE control line 32 in the logical sense. Further storage options can be added to the system. By extending the address bus to 19 conductors or lines, you can use up to 512 K memory.

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.The data bus 27 and the address bus 26 are also connected via the base plate 4 to circuits of the servomechanism interface circuit board 7 . The servomechanism interface circuit board 7 includes 16-bit motion command registers (not shown in the drawings) and 16-bit return word registers (not shown in the drawings). These individual registers can be addressed separately or individually via the address bus 26 , and a 16-bit motion command word can thus be written to any of the drive command registers when a low voltage is applied to the WE control line 32 in the logical sense. Similarly, a 16-bit follower word can be read from an addressed feedback register when a low voltage is applied to a DBIN control line 34 in the logical sense.

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. As is well known, by periodically calculating a new position command number output to the servomechanism of the machine tool 13 , one can accurately control the movement of a cutting tool. In such a case, a position command register and a feedback register are assigned to each movement axis. Although the control loop may be closed within the main processor, in the preferred embodiment, the control loop is closed for each axis of machine motion in the servomechanism interface circuit board 7 using a technique and method known from US 3,752,969.

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.Furthermore, it can be seen from Fig. 2, that the data bus 27 and the address bus 26 are also connected via the base plate 4 with circuits of the I / O interface circuit board 8 . The I / O interface circuit board 8 includes sets of 16 input circuits and sets of 16 output circuits. The input circuits are each individually ver with a sensor in the machine tool 13 connected, for example, a limit switch, and each output circuit is connected to an actuator in the machine tool 13 , for example, a motor starter or solenoid. As input circuits can be used Anord calculations, as described in US 3,643,115 and US 3,992,636, and as Ausgabeschaltun gene arrangements can be used, as described in US 3,745,546. By generating the appropriate address on the address bus 26 and applying a logic low voltage to the WE control line 32 , data can be written to a set of output circuits. Similarly, by generating the appropriate address on the address bus 26 and applying a logic low voltage to the DBIN control line 34, data from a set of input circuits can be read out. Although the data in the form of 16-bit words in the I / O-Schnittstelleschal circuit board 8 enrolled and read who, it should be noted that each bit is assigned to a single sensor or actuator of the machine tool 13 . These are individual devices or devices which can be easily controlled using the technology of programmable controllers.

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.Referring to Figs. 1 and 2 it is out that the communication of data to and from the control station 2 from a front panel USART 37 leads out is ( USART : Universal synchronous-asynchronous receiver-transmitter). The USART 37 includes 8 data ports that connect a set of 8 bidirectional buffers 38 to the 8 least significant digital lines DB8 to DB15 in the main processor data bus 27 . The cable 9 is connected to a data receiving terminal and a data transmitting terminal of the USART 37 , and when an 8-bit byte of data is received via the cable 9 from the control station 2 , a control line 39 becomes a logical low interrupt signal generated. This interruption or interruption signal is served by the microprocessor 25 which generates the address of the front panel USART 37 on the address bus 26 and applies a logic low voltage to the RD control line 31 to read out the received byte of data on the data bus 27 , On the other hand, if an 8-bit byte of data is sent to the program station 3 , an interrupt signal is generated on an interrupt control line 40 by the USART 37 to indicate that the previous byte of data has been sent out. The microprocessor 50 responds with the execution of an interrupt service routine that is stored in the read only memory 30, wherein the front panel USART is addressed 37 via the address bus 26 and a cal in lo sense is generated low voltage on the WE control line 32nd An 8-bit byte of data is then given to the data bus 27 via the buffers 33 and written to the USART 37 . The USART 37 then sends the 8-bit byte of data serially through the cable 9 to the control station 2 . The USART 37 is driven by a 2-MHz clock encoder, which is connected to it via a control line 41 .

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.The USART 37 is a universal synchronous / asynchronous transceiver which establishes the interface connection of the main processor with the serial data connection provided by the cable 9 . The data is received serially in the form of 8-bit bytes from the cable 9 , checked for transmission errors and read in the form of 8 parallel bits on the data bus 27 . A similar universal synchronous / asynchronous receiver / transmitter is connected at the control station 2 to the other end of the cable 9 . These synchronous / asynchronous receiver / transmitter serve to transmit the data through the cable 9 in both directions Rich. The cable 9 contains only 4 conductors. By convention, according to an RS-232 protocol, it may have a length of up to 15m.

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. The breaks or interrupt signals generated by the front panel USART 37 and other elements in the system receive an interrupt control circuit 45 . As seen from FIG. 2, the interruption control circuit 45 is connected to receive the third phase clock signal from the 4-phase clock 28 via a line 46 . The interrupt control circuit 45 has a set of 4 interrupt code outputs and an interrupt request output. These outputs are connected to the microprocessor 25 via a bus 47 . The interrupt control circuit 45 is a commercially available integrated circuit, for example of the model type TMS 9901. The interrupt control lines 39 and 40 from the front panel USART 37 lead to the interrupt control circuit 45 , and the interrupt control circuit 45 is responsive to a signal on one of these two lines 39 , 40 , to generate a 4-bit code together with an interrupt request for the microprocessor 25 .

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.The interrupt control circuit 45 also determines the priority of the interruptions, and a list of the interruptions of the USART 37 along with other main processor interruptions are arranged in order of priority in a following table A. Some of these interrupts, including interrupts generated by the USART 37 , may be disabled or masked so that they are not supplied to the microprocessor 25 .

Unterbrechunginterruption Beschreibungdescription 00 Wiederstart des SystemsRestart of the system LDLD Netz-Ein-ResetPower-on reset 11 ReservenetzausfallReserve power failure 22 Einzelschritt durch ProgrammSingle step by program 33 Daten empfangen durch USART 37 Data received by USART 37 44 Daten gesendet durch USART 37 Data sent by USART 37 55 Zeitablauffehler bei langsamer Speicher-Bereit-LeitungTiming error with slow memory ready line 66 Paritätsfehler beim Lesen des Datenbusses 27 Parity Error Reading the Data Bus 27 77 Wächterzeitgeber abgelaufenGuardian timer expired 88th 1,6-ms-Taktgeber1,6-ms timer 99 100-ms-Taktgeber100-ms timer

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. A real-time clock circuit 50 is connected to the address bus 26 and generates a 1.6-ms interrupt on a line 51 leading to the interrupt control circuit 45, and a 100-ms interrupt on a line 52 leading to the interrupt control circuit 45 .

Hardware der programmierbaren SchnittstelleProgrammable interface hardware

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.Referring to Figs. 2 and 3, it will be understood that a programmable interface (PI) 75 is included in the programmable interface circuit board 6 . The programmable interface circuit 75 is connected to the main processor data bus 27 and the main processor address bus 26 . Further, the programmable interface circuit 75 is connected to the RD control line 51 and the WE control line 32 and receives the 100 ms clock from the real time clock circuit 50 via the line 65 . The programmable interface circuit 75 is a separate processor and this processor periodically includes control over the main processor data bus 27 and the main processor address bus 26 by generating a logical low signal on a DMA REQ control line 76 . This control signal passes via a reversing member 77 to a holding terminal 78 in the microprocessor 25th When the request or the call is successful, is sent via an inverter 79 and a DMA GNT control line 80 from the microprocessor 25, a signal back to the programmable interface circuit 75 ge.

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.In the following, reference is made to FIG. 3. The programmable interface circuit 75 is constructed around an 8-bit data bus 82 and a 16-bit address bus 83 . The address bus 83 is driven by a set of sixteen buffers 84 from an 8-bit microprocessor 85 . The data bus 82 is connected to the microprocessor 85 via a set of eight bidirectional buffers 86 . The microprocessor may be Model Z-80, manufactured by Zilog, Inc., and the microprocessor 85 is driven by a 4 MHz clock circuit 87 .

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. The programmable interface circuit 75 also includes an 8-bit x 4K line read only memory 88 and an 8-bit x 2K line read only memory 89 which is electrically changeable. The memories 88 , 89 are connected to the lines (D 0 to D 7) of the data bus 82 and to the lines (A 0 to A 15) of the address bus 83 . Selected data may be read from the memories 88 , 89 when the microprocessor 85 is executing memory read commands. When such a command is executed, a logic signal is generated at one of five enable lines 91 and an rd control line 92 . A decode and control circuit 90 of the programmable interface circuit 75 actuates the enable line 91 and the memory read command releases the contents on a selected line in the memory 88 or 89 to be read on the data bus 82 .

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.By executing memory write commands, data can also be written to the electrically alterable ROM 89 . These instructions cause the decode and control circuit 90 to enable the memory 89 via a control line 91 and to generate a logic signal on a wr control line 93 . When such an instruction is executed, data is written from the data bus 82 to the memory 89 .

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.The programmable interface circuit 75 also includes a 9-bit by 2K line random access memory 94 connected to the lines (A0 to A15) of the address bus 83 . In addition, the random access memory 94 is connected to the wr control line 93 and to two enable lines 95 and 96 which are driven by the decode and control circuit 90 . From data bus 82 , 97 data are written to an addressed line or line of random access memory 94 via a set of eight gates. The gates 97 each have a release terminal which is commonly connected via a gate enable line 98 to the decode and control circuit. When a memory write command is executed by microprocessor 85 , an 8-bit word is passed through gates 97 and stored in the addressed row of random access memory 94 .

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.The data is transferred from the random access memory 94 to the data bus 82 via an 8-bit by 512-line map memory 100 in the form of a programmable read-only memory PROM. When data is to be read from the random access memory 94 , the map PROM 100 is enabled by a MAP-EN control line 101 which is driven by the decode and control circuit 90 . The random access memory 94 stores control program instructions that contain operation codes that are not recognized by the microprocessor 85 . These opcodes are applied to address pins on the imaging PROM 100 , and each unique code addresses a specific lead or row in the imaging PROM 100 . A number indicating the start address of a control command interpreting routine is stored in the map PROM line corresponding to the unique operation code. Whenever a control command opcode is read from random access memory 94 , it is mapped to the number indicating the start address of the corresponding interpreter routine. These numbers are generated at the picture PROM data terminals which are connected to the eight lines or conductors in the data bus 82 . The programmable interface system jumps to the displayed or specified interpreter routine, and the microprocessor 85 executes the machine instructions therein to perform the functions indicated by the control instruction operation code. All other data stored in random access memory 94 is fed directly to data bus 82 without change.

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.The control program is loaded into the random access memory 94 and prepared or edited via the program console station 3 . As can be seen from FIG. 3, the cable 10 from the program console station 3 is connected to the serial input and serial output terminals of a program loader USART 103 , whose parallel data connections to the eight lines D0 to D7 of the data bus 82 of the programmable interface circuit 75 are connected. A C / terminal of the program loader USART 103 is connected to the line A 0 of the address bus 83 , and its CS terminal is connected to the decode and control circuit 90 via a USART-EN line (control line) 104 . The program loader USART 103 is also connected to the wr control line 92 and the rd control line 93 , and when an 8-bit byte of data is received from the USART 103 via the cable 10 , it generates via an INT line 105 an interrupt request directed to the microprocessor 85 . When the microprocessor 85 acknowledges the interrupt, the system jumps to a program loader routine stored in read-only memory 88 . This program loader routine includes instructions that enable the program loader USART 103 through the control line 104 and generate a logic low signal on the rd control line 92 . Due to these circumstances, the received 8-bit byte of data on the data bus 82 is read.

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.Conversely, instructions executed by microprocessor 85 may also enable program loader USART 103 through control line 104 and generate a logic low signal on wr control line 93 to load an 8-bit byte of data into program loader USART 103 , This data is then transmitted serially through the cable 10 to the program console station 3 . In this way, characters can be inputted from the keyboard 18 , and characters can be output to the viewer 19 of the program console station 3. *** "

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. The programmable interface circuit 75 interfaces with the main processor via a DMA circuit 110 (DMA = Direct Memory Access). In the following, reference is made in particular to FIGS. 3 and 4. Data on the 16-bit main processor data bus 27 is sent to the 8-bit data bus 82 of the programmable interface circuit 75 via an 8-bit data latch 111 and an 8-bit data buffer 112 . The lower 8-bit byte of such a 16-bit data word is passed directly through the 8-bit data buffer 112 when a DIN control line 113 is driven by a DMA decoder and controller 114 with a logic low signal becomes.

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.The upper 8-bit byte is temporarily stored in the 8-bit data latch 111 , and during the next machine cycle, a CLIN control line 115 is driven by the DMA decode and control circuit 115 with a logic low signal to transmit the 8-bit byte stored in the 8-bit data latch 111 to the data bus 82 of the programmable interface circuit 75 . The 16-bit word from the main processor is thus translated into two 8-bit words in the programmable interface processor.

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.In the reverse direction, ie, from the programmable interface circuit 75 to the main processor data bus 27 , the data is transferred via an 8-bit data latch 116 and an 8-bit data buffer 117 . A first 8-bit byte on the data bus 82 of the programmable interface 2 is stored in the 8-bit data latch 116 when a logic low voltage is applied to a CLOUT control line 118 . Then, when the programmable interface circuit 75 occurs, a second 8-bit byte of data on the data bus 82, is generated in the logical sense a low voltage at a DOUT control line 119th Thereby, the data latch 116 and the data buffer 117 are enabled, so that both 8-bit bytes of data are simultaneously delivered to the main processor data bus 27 in the form of a 16-bit data word. In this way, bidirectional data flow is effected between the 16-bit main processor and the 8-bit processor of the programmable interface circuit.

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.In the following reference is made to FIG. 2. The programmable interface circuit 75 routes and directs the transfer of data to and from the main processor. It transfers data to and from two general locations, namely a map 105 of the programmable interface circuit 75 stored in the random access memory 29 and the input / output interface circuits on the circuit board 8 . The programmable interface circuit 75 addresses these locations using the main processor address bus 26 , which is exposed to it when a DMA request is granted.

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.In the following, reference is again made to the DMA circuit shown in FIG. 4. The main processor address bus 26 is driven by the programmable interface circuit 75 through a set of sub-byte address buffers 122 and either via a set of upper-byte address buffers 123 or an 8-byte data latch 124 . Seven inputs of the upper byte address buffers 123 are connected to a source having a high logic voltage and the eighth input is signal ground. The eight inputs of the sub-byte address buffers 122 are connected to conductors A 0 to A 7 of the address bus 83 of the programmable interface circuit 75 . The inputs of the 8-bit data latch 124 are connected to conductors in the main processor data bus 27 , and during power-up, the main processor writes the eight most significant digits of the address of the mapping panel 105 of the programmable interface circuit 75 into the 8-bit data latch 124 , This is achieved by generating the address EC1E (hexadecimal) on the address bus 26 during a write command. This address is decoded by the decode and control circuit 114 , which enables the 8-bit data latch 124 via an UPP ADD control line 126 . Accordingly, if the position of the MAP 105 of the programmable interface circuit should be changed for any reason, the programmable interface circuit 75 will automatically receive an assessment of this fact via the 8-bit data latch 124 each time the system is powered up.

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.A FLREQAK control line 125 is still connected to the data latch 124 and is driven by the decode and control circuit 114 from a logic low signal to generate on the main processor address bus 26 the start address of the MAP 105 of the programmable interface circuit (interface) 75 , A particular line or line in the mapping table 105 is selected by the address on lines A 0 through A 7 in the address bus 83 of the programmable interface 75 which is applied to the main processor address bus 26 via the sub-byte address buffers 122 . The address buffers 122 are enabled by a loader control circuit 127 .

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.Thus, by sequentially enabling the elements of the DMA circuit 110 , the microprocessor 85 can read and write data to and from the main processor memory (Random Access Memory) 29 . In this way, the contents of the mapping panel 105 of the programmable interface 75 in the main processor memory 29 and a similar PI mapping panel 106 of the programmable interface 75 in the memory 94 may be periodically changed or transferred in memory 94 to account for changes made since the previous direct memory access (DMA). occurred in this memory 94 .

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.Referring to FIG. 4, it is further stated that the other function of the DMA circuit 110 is to exchange data between the I / O interface circuits of the circuit board 8 and an input / output mapping board 107 stored in the programmable memory 94 Interface 75 is stored. This data transfer is controlled by the DMA circuit 110 under the direction of the microprocessor 85 , and if such a transfer is to take place, a signal is generated on an IOAK control line 128 comprising the upper byte address buffers 123 in the DMA circuit 110 releases. As a result, the I / O interface circuits of the circuit board 8 are thus addressed by the main processor address bus 26 . The particular set of 16 selected input or output circuits is determined by the eight least significant bits applied to the main processor address bus 26 via the sub-byte address buffers 122 . Under the direction or guidance of an input / output scan routine, the microprocessor 85 sequentially addresses each set of input and output circuits via the sub-byte address buffers 122 . It operates the DMA circuit 110 to transfer data from the I / O interface circuits of the circuit board 8 to the I / O map 107 stored in the random access memory 94 , and is operative to transfer data from the I / O. A mapping panel 107 to the I / O interface circuits of the circuit board 8 to transfer. In this way, the I / O mapping board 107 is periodically connected to the individual sensing devices and actuators of the controlled machine to update and update both the I / O mapping board 107 and control the actuators.

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.Referring to FIG. 4, the control lines operating the various buffers and data latches in the DMA circuit 110 are driven by the DMA decoder and controller 114 . This circuit is connected to a set of lines leading to the main processor and to a set of lines leading to the programmable interface 75 . An NMI control line 137 is connected to a corresponding terminal on the microprocessor 85 of the programmable interface 75 . When a logic low voltage is generated on the NMI control line 137 , the microprocessor 85 of the programmable interface 75 is presented with a non-maskable interrupt NMI. In this way, the main processor initiates a sequence of functions performed by the programmable interface circuit 75 . As will be explained, this happens every 25.6 ms, and it serves to synchronize the operation of the two processors.

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. After the NMI interrupt has been initiated by the main processor, the main processor continues to perform its many other functions, and the microprocessor 85 of the programmable interface 75 begins executing a series of functions that facilitate the transfer of the contents of the (PI). The display panel 105 (PI = programmable interface) from the main processor to the PI mapping board 106 of the programmable interface 75 . It performs this transfer by making a series of direct memory access requests from the main processor.

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. Referring to Fig. 3, it is explained that the decoding and control circuit 90 of the programmable interface 75 generates enable signals for the various elements of the programmable interface circuit 75 including the DMA circuit 110 .

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.The various elements of the programmable interface circuit 75 are enabled and operated in response to specific machine instructions executed by the microprocessor 85 . The operation codes in these instructions operate the wr control line 93 , the rd control line 92, and the mreq control line 140 , and the operand or address codes in these commands select a system element. The memories 88, 89 and 94 are, of course, released from a range of addresses, but each line in these memories has its own particular address.

Hardware der ortsungebundenen SteuerstationenHardware of the non-mobile control stations

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.As can be seen in particular from FIGS. 1, 2 and 5, the locally-free control station 2 is connected to the main processor circuit board 5 through the cable 9 . The cable 9 is connected to a main processor USART 220 of the control station 2 . The USART 220 is located on a circuit board (not shown in the drawings) along with other elements of the front panel processor. These elements include a 16-bit microprocessor 221 , which may be a TMS 9900 model from Texas Instruments, Inc. The microprocessor 221 is connected to drive a 15-conductor address bus 222 and is connected to a 16-conductor bidirectional front panel processor data bus 223 .

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.Machine instructions for the 16-bit microprocessor 221 are stored in a 16-bit x 16K line ROM 224 which is programmable. Further, the address bus 222 and the data bus 223 are connected to a 16-bit × 4K line access memory 226 and a 4-bit × 2K line read-only memory 225 which is electrically changeable and stores visual display messages. From these three memories 224 to 226 , data may be read out when the memories 224 to 226 are enabled by respective control lines 227 to 229 and when the appropriate logic state is generated at respective AD and WE control lines 230 and 231 . Similarly, data may be written to the random access memory 226 when the memory 226 is enabled by the CS control line 229 , and when a logical high voltage is applied to the we control line 231 . Data can also be written into the electrically variable read-only memory 225 if it is enabled by the EAROM-EN control line 228 and if a high voltage is applied to the we control line 231 in the logical sense. The particular line into which data is written or read from the data into any of the memories 224 through 226 is selected by a corresponding address on the address bus 222 .

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. In the following, reference is made to FIGS. 1 and 5. The keyboard or keypad 14 of the control station 2 is connected to the front panel processor data bus 223 via a keypad interface circuit 235 .

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. The CRT viewer 17 of the control station 2 is connected to the front panel processor data bus 223 of the front panel processor via a cathode ray tube interface circuit 250 . The switch 15 and the alphanumeric viewer 16 of the control station 2 are connected via a switching and display interface circuit 265 to the address bus 222 and the data bus 223 . The remaining I / O devices associated with the control station 2 are connected to the microprocessor 221 via the interrupt and I / O control circuit 243 . This outputs data to a control light driver circuit 335 .

Die Steuerleitungen, die die verschiedenen, oben beschriebenen Frontplattenprozessor-Elemente freigeben, werden größtenteils durch eine Frontplattendecodier- und -Steuerschaltung 350 (Fig. 5) angesteuert. The control lines that enable the various front panel processor elements described above are largely driven by a front panel decoder and control circuit 350 ( Figure 5).

Hauptprozessor-OperationMain processor 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.First, for explanation, Fig. 2 is used. The numerical control system according to the invention performs numerous functions. Part program data is input from the tape reader 297 to the front panel processor and transmitted via the cable 9 to the main processor. The blocks of the part program data are stored in the main processor access memory (random access memory, main processor memory) 29 . Operator commands from the operator are also received by the front panel processor from the keypad 14 and switches 15 . These commands are also transmitted to the main processor whose microprocessor 25 processes these commands to operate the numerical control system in the commanded manner.

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. When the numerical control system executes a partial program, the blocks of partial program data are read from the random access memory 29 (128 bytes at a time). A block of subprogram data may include codes that must be decoded, include dimensions that indicate the distances that the cutting tool is to be moved, and numbers that indicate the rate at which the cutting tool is to be moved. The codes can also give instructions that the auxiliary functions such as tool change, pallet change, coolant supply, etc. are performed. When these codes are decoded, a designated flag is set in the display panel 105 of the programmable interface 75 . This mapping table is stored in the random access memory 29 . The contents of the PI map 105 (PI) are periodically transferred to the programmable interface circuit 75 to indicate that the particular helper function is to be performed.

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.The dimensions and numbers in a subprogram are used by the microprocessor 25 to calculate a distance or distance the cutting tool is to move along each axis of the machine tool movement in a single 25.6 ms iteration. These links are stored in active buffers in the random access memory 29 and are used by the microprocessor 25 under the direction or guidance of an interpolation routine every 25.6 ms to calculate the motion command signals output to the servomechanism interface circuit 7 .

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.The control of these and other functions lies with the microprocessor 25 of the main processor, which operates under the guidance of a scheduler routine stored in read-only memory 30 . In addition to FIG. 2, FIG. 6 is used in particular for the following explanation. The scheduler routine (or scheduler) is shown schematically at 360 and is entered at least once every 1.6 milliseconds when the microprocessor 25 responds to the interrupt generated by the real-time clock 50 . The various functions that the main processor has to perform are collected in seven general processes or processes, and it is the function of the scheduler 360 to assign each of these processes in turn to 1.6 ms time slices. These seven processes are defined here as: timed interrupt process 361 , block setup process 362 , block fill process 363 , front panel monitor 364 , keypad command process 365 , program load process 366, and display update process 367 . The scheduler 360 has sixteen 1.6 ms time slices (16 x 1.6 = 26.6) that it can associate with these processes during each iteration period. The number of assignable time slices remaining during any 25.6-ms iteration period are stored in a counter (ITRS) stored in random access memory 29 .

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.For further explanation, FIGS. 6 to 8 are used in particular. The order in which the tasks or processes are executed and the number of time slices allocated to each process during a 25.6 ms iteration period are shown in a scheduled queue 368 . The scheduled queue 368 is stored in read-only memory 30 and its content is shown in FIG . Each of the processes enumerated in the queue 368 is associated with a process control block PCB which is stored in the random access memory 29 and which contains data concerning the status of the process shown in FIG . The addresses of the respective process control blocks PCB 1 to PCB 7 are stored in the scheduled queue 368 and labeled as follows: A (PCB 1), A (PCB 2), A (PCB 3), A (PCB 4), A (PCB 5 ), A (PCB 6) and A (PCB 7). Each of these PCB addresses is assigned a number indicating the maximum number of contiguous time slices associated with the process in question.

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.A register PCBIDX, located in random access memory 29 , provides an index to the current or active line or line in scheduled queue 368. This register PCBIDX is used by scheduler routine 360 to sequentially enable the operations or processes. For example, register PCBIDX points to the first line or row of scheduled queue 368 at the beginning of each iteration period. Thus, the timed or clocked interrupt process 361 is activated by the associated process control block PCB 1. Since the timed interrupt process 361 must be executed to its end, it is assigned an excess number of time slices (MSC 1-32). Under normal operating conditions, the timed interrupt process is completed in less than sixteen time slices. Thus, a number of time slices are left in each 25.6 ms iteration period so that other processes can be serviced. When a process is completed or its allocated time is consumed, the scheduler routine 360 is called and the register PCBIDX is incremented to now point to the next line or line in the scheduled queue 368 . For example, after the timed interrupt process completes, the block setup process 362 is activated by its associated process control block PCB 2, and the remaining time slices in the iteration period are depleted, if necessary, to complete this process. The remaining processes are activated in a similar manner if there is time available during any iteration period, in the order listed in the scheduled queue 368 . A dummy process (not shown in the drawings) is also included in the system in the case where no process is executed at all. This dummy process is a wait loop that is executed until the start of the next iteration period.

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.In the following, particular reference is made to FIGS. 6 and 8. The process control blocks PCB 1 through PCB 7 store data that provides the status of the respective processes 361 through 367 to the scheduler routine 360 . The first line of each process control block stores lock-up flags indicating, in the set state of the scheduler routine 360 , that the process in question need not be executed. Thus, a bit zero is an inhibited flag (IOW) which is set when the process requests input / output and indicates that it is ready to await completion of the I / O operation. Bit 1 is a block flag (CIW) set by scheduler 360 when it receives a lock request from the process indicating that it should not be executed during the current 25.6 ms iteration period. A bit 2 is a lock flag (PRW) indicating that the process should remain locked until it is re-enabled or released by another process. As scheduler routine 360 proceeds sequentially through scheduled queue 368 , scheduler 360 queries the lock flags in the active process control block to determine if the associated process should be executed.

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.The second word in each process control block (PCB 1 through PCB 7) serves as a counter (CSC) which indicates to the scheduler 360, from the associated time slices, the number of remaining time slices before the next process must be activated on the run-round. When a process is activated, one of the first functions to be performed by the scheduler 360 is to load this counter (CSC) with the number of allocated time slices specified for this process in the scheduled queue 368 . If 1.6 ms interrupts occur then the time slice counter (CSC) is decremented. When its count reaches zero, control is returned to the scheduler routine 360 .

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. The remaining four lines of each process control block (PCB 1 through PCB 7) store data indicating the status of the process when it returns control to the scheduler routine 360 . Thus, line 3 stores the contents of a memory extension register (MXR), line 4 the contents of a workspace hint (WP), and line 5 the contents of a program status register (ST). This data is loaded into the process control block by the scheduler routine 360 when the activated process is interrupted by the 1.6 ms clock or when the process exits and is blocked by a lock bit. Then, when the process is re-activated by the scheduler routine 360 , one can reload the contents of these four lines in the process control block into the appropriate microprocessor registers so that execution of the process can continue from where it was previously interrupted or stopped ,

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.Timed interrupt process 361 is executed until its completion during each iteration period because it has more timeslots associated with it than it possibly consumes when the system is operating properly. The block building process 362 consumes a large portion of the remaining time in the interpolation period until it has completed its function of setting up or building the next program block for interpolation. Thereafter, the block building process 362 is suspended, and it is not needed until after the completion of the timed interrupt process 361 for a sufficiently long time to check whether the end point of the current program block has been reached. There is then a considerable amount of time available during each iteration period, and this time is allocated to the remaining "background" prose listed in the scheduled queue 368 . A typical assignment of the time slices by the scheduler routine 360 is shown schematically in FIG. 9 for three iteration periods immediately following the transfer of a new block of data into the active interpolator buffer. Timed interrupt process 361 consumes a significant portion of each iteration period. However, the time required by the block building process decreases after the first iteration period. Subsequent iteration periods are similar to the second iteration period illustrated in Figure 9 until the end of the block is detected and the block building process 362 again takes a significant amount of time.

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.It is apparent that the scheduler routine 360 is a flexible and efficient means of allocating time to the various functions that the main processor must perform. Processes, and thus functions, can be easily added to the system or removed from the system by making additions or deductions to the scheduled queue 368 . Priorities can be changed by changing the order of the queue entries or by time slot assignments.

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.For the following explanations, in particular Figs. 2, 6 and 10 are used. The timed interrupt process 361 functions by outputting motion commands to the servomechanism interface circuits 7 and exchanging data with the programmable interface circuit 75 once during each 25.6 ms iteration period. With particular reference to FIG. 10A, it is noted that the timed interrupt process 361 is input from the scheduler routine 360 at the beginning of each iteration period at location 390 . The first function that is performed is to determine if the system is up or powered up, as illustrated by a decision block 394 . When the system is booting up, the start or start address of the PI map 105 in random access memory 29 is written into the data latch 124 in the DMA circuit 100 ( FIG. 4). This enables the programmable interface circuit 75 to address the appropriate or correct memory address so that it can then communicate with the PI mapping board 105 .

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.After start-up, the timed interrupt process 316 prepares a data transfer with the programmable interface 75 . First, it is checked whether data has been received from the programmable interface circuit 75 during the previous iteration period. This is done in a decision block 396 . If this is no, a fault has occurred and the system branches to a process block 397 which requests an emergency stop and gives an appropriate message for transmission to the front panel processor in a viewer or display buffer. Otherwise, the system checks a control program overlap flag, as indicated in a decision block 398 , to determine if the programmable interface processor has completed its functions during the previous iteration period. If not, an emergency stop is requested and an appropriate message is displayed, as shown in a process block 399 . Indicators labeled "receive data" and "control program overlap" are stored in the PI map 105 of the programmable interface 75 . They are set by the programmable interface circuit 75 .

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.Under normal circumstances, commands displayed next by a process block 400 are next executed to unpack or unpack data written from the programmable interface circuit 75 to the PI map 105 during the previous iteration. These data are distributed to different locations in random access memory 29 for use by other programs. Next, data from various locations is assembled in the random access memory 29 and stored at specified locations of the PI map 105 , as represented by a process block 415 . Such data may be generated by the block building process from the part program and may include, for example, an indication that an auxiliary function, such as a tool change or a pallet change, is to take place. After this data has been assembled in the PI map 105 , an instruction represented by a process block 401 is executed by the main processor to initiate the data transfer between it and the programmable interface circuit 75 . As already indicated, this instruction generates a non-maskable interrupt for the PI microprocessor 85 . Thereafter, the programmable interface circuit 75 asks the microprocessor 25 of the main processor direct memory access DMA, and the microprocessor 25 of the master processor gives its data bus 27, address bus 26 and the control lines WE and WRD freely to the programmable interface circuit 75 miles. As will be explained in detail later, the programmable interface circuit 75 then transfers 32 16-bit words of data from the PI map 105 in the random access memory 29 to the PI map 106 in the PI memory 94 . Later, during the same iteration period, the programmable interface circuit 75 then transfers 32 16-bit words of data from the PI map 106 in the memory 94 back to the PI map 105 in the random access memory 29, respectively. The data transferred in this way are shown schematically in FIG .

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. In the following, Fig. 10B is used. After the exchange of data with the programmable interface circuit 75 has been initiated, the main processor continues to execute instructions in the timed interrupt process. The next step in this process is to determine if a "foreplay" flag has been set, as illustrated in a decision block 403 . A "foreplay" is always requested during the first iteration period from any subprogram block containing an S word, a T word, or certain M codes defined in EIA standard RS-274-C. This gives the programmable interface circuit 75 an opportunity to act on the S, T or M code at the beginning of the block before interpolation begins.

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.The system next executes instructions as indicated at decision block 404 to determine if the emergency stop flag has been set. If so, then an emergency stop and position update routine 405 is executed. Otherwise, the fore flag is checked at decision block 406 and a "dwell" flag is checked at decision block 407 . If neither of these two flags is set, a "hold stop" flag is checked in accordance with a decision block 408 and a "manual" flag is checked in accordance with a decision block 409 .

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. If none of these flags is set, the interpolation routine 410 is entered. This routine is executed until its completion to generate an incremental motion command number for each axis of the machine tool 13 to be controlled. A servo operation routine 411 is then executed to output the movement command signals to the servomechanism interface circuit 7 . When an interpolator block 410 is bypassed, either no increment move command numbers are calculated, or move command numbers are calculated by a kickoff routine 412 that responds to operator commands. In either case, after issuing the newly calculated move commands to the servomechanism interface circuit 7, the flags for the foreplay request and feed hold request are reset, as shown in a process block 414 . The system exits at block 413 and returns to the scheduler routine 360 .

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.For the following explanation, Figs. 2, 6 and 11 are used. Front panel monitor 364 is the next process listed in scheduled queue 368 . It is used to input data received from the front panel processor and to maintain a front panel map 444 in main processor memory (Random Access Memory) 29 which displays the status of lights, switches and push buttons or buttons on the non-mobile control station 2 . When a byte of data has been received by the USART 37 , indicating that a change has occurred at the control station 2 , the microprocessor 25 enters the data and stores it in a data buffer associated with the front panel monitor 364 . Three such bytes of data include a complete message transfer, and when the third byte of data has been received, the front panel monitor 364 is released from the blocked state by the communications module associated with the USART 37 . The front panel monitor 364 may now be activated by the scheduler routine 360 .

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. When the spin routine 360 activates the front panel monitor 364 , entry occurs at a location 425 . Instructions, as shown in a process block 427, are then executed to initially bring the front panel imaging panel 444 into a starting state. A flag is then checked in accordance with a decision block 428 to determine if any communication errors have been reported by the communication module. If so, the data is ignored and the system branches to a subroutine 429 which prepares a message indicating the error for transmission to the front panel processor. Otherwise, as shown in a process block 430 , the two bytes of status data are loaded into the front panel map 444 . The system then exits to scheduler routine 360 at block 431 , and the process control block (PCB 4) is set to reenter decision block 428 when the next complete message is received. In addition, the CIW lock flag is set to ensure that reentry into the front panel monitor 364 does not occur during the same iteration period. This allows the timed interrupt process to act at least once on the changed row in the front panel map 444 before the data can be changed again by another transmission from the control station 2 .

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. For the following consideration again Figs. 1, 2 and 5 are used. It will be apparent that the front panel imaging panel 444 serves as an interface between the non-mobile control station 2 and the rest of the numerical control system. For example, four of the switches 15 on the control station 2 may be set by the operator to establish the manner in which the system is to operate, ie manually, automatically, via the keypad 14, or with a single block. Specified bits in a line of the front panel map 444 are dedicated to indicating the status of these switches 15 , and it is these bits that are checked by the processes in the front panel processor to create the mode. It will be explained in more detail below that one of the functions of the front panel processor is to periodically check the status of the control station switches 15 and update the main processor with any changes that have occurred. Over the cable 9 only changes are transmitted to the main processor. In this way the traffic is reduced. It should be understood that a modification is possible in the preferred embodiment discussed hereinabove in that the entire faceplate map 444 is updated or updated if any change has occurred. Although more data will then be transferred, the software superstructure will be reduced because the number of rows need not be analyzed.

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. Next, reference is made to Figs. 1, 2 and 6. In the execution of this display update process 367 , all data to be transferred from the control station 2 to a send buffer is assembled. First, a set of instructions is executed to determine if any messages should be displayed or displayed. This is done by checking the contents of eight message command blocks into which any routine executed by the main processor can enter a message command. Two message command blocks are reserved for operator alarm messages. The remaining six message command blocks are reserved for machine status messages. Many of these messages are "canned messages" in which only one message count is sent to the front panel processor.

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.From the above description, it can be seen that the main load of the main processor's interface connection with the machine tool I / O devices 13 and with the peripheral devices of the control station 2 is carried by the programmable interface processor and the front panel processor.

Operation der programmierbaren SchnittstelleOperation of the programmable interface

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.First of all, FIGS. 1 and 3 are used. The programmable interface processor is programmed to operate as a programmable controller. Macro instructions of the type used in a programmable controller are stored in random access memory 94 as control program 464 . These commands are loaded into the Random Access Memory 94 by an operator or operator using the keyboard or keypad 18 of the program station 3 . The macro instructions are read into the microprocessor 85 from the USART 103 and then written to the random access memory 94 via the gates 97 . The program loader routine, which is used to execute the described operations, is stored in read-only memory 88 and is called when the operating switch is brought to the "load" position.

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:In executing the macro instructions constituting the control program 464 , a number of functions known per se are performed, including checking the status of selected bits in the PI map 106 and the I / O map 107 . Some macro instructions perform logical operations. Others set the state of selected bits in the display panels 106 and 107 in accordance with the results of logical operations. The macro command set used is essentially the same as that described in US 3,942,158. This macro command set contains three general types of commands: bit commands, word commands, and control commands. Bit commands and word commands are stored in two memory lines. The first row stores an operation code and three bits of a bit indication code, and the second row stores an operand address. The control commands consist only of an operation code. The bit commands contain the following:

Die von diesen Bitbefehlen ausgeführten Operationen können wie folgt definiert werden:The operations performed by these bit instructions can be defined as follows:

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.
XIC - Check if status bit is closed or if the selected bit in the mapping table is in logical 1 state.
XOE - Same as XIC, but with regard to a status bit in the illustration panel that corresponds to an actuator.
XIO - Check if the status bit is open or if the selected bit in the mapping table is in the logic zero state.
XOD - As with XIO, but with respect to a status bit in the figure that corresponds to an actuator.
OTU - If conditions true, turn off status bit, or bring it to logical zero state, and if false, do nothing.
OTL - If conditions are true, toggle status bit or put it in logical 1 state, and if wrong, do nothing.
OTE - If conditions are true, toggle status bit, and if conditions false, turn off status bit.

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.The operand address corresponding to each of the above Associated with opcodes identifies the memory address of the picture panel word that selected Status bit contains. The Bitzeiger or Bithinweis, the the Operation code is assigned, identifies the place of the Status bit in the addressed mapping table word.

Die Steuerbefehle enthalten folgendes: The control commands contain the following:  

Die von diesen Steuerbefehlen ausgeführten Operationen kann man wie folgt definieren:The operations performed by these control commands can define as follows:

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.
NOP - No surgery.
BND Branch End: Termination of a Boolean Sub-Branch.
BST Branch Start: Start of a Boolean Sub-Branch.
END - end of the control program.
MCR - Perform surgery on the main control bit.

Die wortartigen Befehle des programmierbaren Steue 32078 00070 552 001000280000000200012000285913196700040 0002002950979 00004 31959rgerätes enthalten folgendes:The word-like commands of the programmable controller 32078 00070 552 001000280000000200012000285913196700040 0002002950979 00004 31959rgerätes  contain the following:

Die von diesen Wortbefehlen ausgeführten Operationen können wie folgt definiert werden:The operations performed by these word commands can be defined as follows:

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?
TOF - If conditions are true, turn on output status bits, otherwise wait until the time runs out, and then turn off.
TONE - If conditions are true, wait until the time has elapsed, and then turn on output status bit, otherwise turn it off.
RTU - If conditions are true, wait until the timeout and then turn on the output status bit, otherwise stop the timer.
CTD - If conditions are true, decrease the count by one.
CTU - If conditions are true, increment the count by one.
PUT - If conditions are true, write the number in the microprocessor accumulator in the selected memory line, otherwise do nothing.
RTR - If conditions are true, reset the timer.
CTR - If conditions are true, reset the counter.
GET - Get the word from the selected memory line and save it in the microprocessor accumulator.
EQU - Is the value stored in the microprocessor accumulator equal to the value stored in the selected memory line?
LES - Is the value stored in the microprocessor accumulator smaller than the value stored in the selected memory line?

Die Operantenadresse, die jedem dieser wortartigen Operationscodes zugeordnet ist, ist eine 8-Bit-Adresse von einer Speicherzeile im Direktzugriffsspeicher 94.The operand address associated with each of these word-like opcodes is an 8-bit address from a memory line in random access memory 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.The user develops a control program 464 that uses these macro instructions. Such a program includes instructions that check the state of the PI map 106 to determine if an auxiliary function, such as a tool change or a pallet change, has been indicated by the part program being processed by the main processor. Further, this program includes commands that check the status of selected locations in the I / O map 107 to determine whether sensor devices of the machine tool 13 , such as limit switches, are in the proper state that permits a tool change or a pallet change. The B register in the microprocessor 85 is used to store the result of such check instructions. If appropriate conditions exist, other control program instructions set the state of the appropriate bit in the I / O map 107 . When the I / O mapping board 107 is subsequently output to the I / O interface circuit in the circuit board 8 , the appropriate operation or actuator is turned on or off to perform the indicated function.

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. For each of the macroinstruction operation codes, a macroinstruction interpretive routine is stored in the read-only memory 88 . When the mode switch 200 of the programmable interface 75 is in the "operation" position, the microprocessor 85 repeatedly executes a fetch routine that reads out the control program macro instructions sequentially from the random access memory 94 . Each macroinstruction operation code is translated by the programmable map non-latch PROM 100 into a number indicating the start address of its macroinstruction interpret routine. The system then jumps to the displayed macroinstruction interpretation routine (interpreter routine) and executes it to perform one of the above listed functions. Each interpreter routine contains a set of machine instructions selected from the Z-80 microprocessor instruction set.

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.The execution of the control program 464 as well as the transfer of data between the display panels, the main processor and the I / O interface circuit in the circuit board 8 , are synchronized with the operation of the main processor. Attention is drawn in particular to FIGS. 3 and 4. At the beginning of each 25.6 ms iteration period, the main processor, as an element of the timed interrupt process 361, addresses the NAND gate 133 in the DMA decode and control circuit 114 . As a result, an interrupt signal is generated on the NMI control line 137 , which is supplied to the microprocessor 85 .

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.For the following explanation, Fig. 12 is also used. The microprocessor 85 responds to this interrupt by executing an NMI service routine. It contains a set of commands collectively indicated by a process block 465 . When executed, other interrupts are disabled and the contents of the microprocessor registers are kept. The bit 7 in the microprocessor B register is then checked, as shown in decision block 466 , to determine if the overlap bit has been reset. If not, an error has occurred and the system branches to an overlap error routine 467 . There, an overlap error flag is stored for later transmission to the main processor. When received by the main processor, such an overlap error flag causes the output of a message to the display device of the non-mobile control station 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. Next, the status word is input from the control circuit 90 as indicated in a process block 468 , and the content is checked to see if the system is in the loading mode or if a major error has occurred. If the system is in load mode, as determined by a decision block 469 , it branches to a load mode routine 470 . If an error has occurred, as determined by a decision block 471 , the system branches to an error routine 472 . It is then checked whether the fault or fault has occurred in the programmable interface circuit board 6 or elsewhere in the system. If the fault is in the programmable interface circuit board 6 , a corresponding auxiliary action is initiated.

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.When the system is in the operating mode and the operation is suitably performed, a reset of the watchdog timer is made by a command corresponding to a process block 473 , and a routine corresponding to a process block 474 is executed to execute 34 16-bit words respectively from the main processor -PI- Figure 105 to enter. These 34 words are stored in the form of 68 8-bit words each in the display panel 106 of the programmable interface processor. This data transfer takes place with the aid of a block transfer instruction, which addresses the main processor memory 29 via the DMA circuit 110 and then sequentially reads out 34 lines thereof. Each of these memory read operations takes less than two microseconds, so the main processor will not be bound for a long time.

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.Subsequent to receiving data from the main processor PI mapping board 105 , the programmable interface processor performs I / O scanning in which data is communicated between its I / O mapping table 107 and the I / O interface circuit of the circuit board 8 , This is illustrated in FIG. 12B by a process block 475 that includes instructions that sequentially read 8-bit words from the I / O map 107 and transmit them via the DMA circuit 110 to the main processor data bus 27 . For every two of these 8-bit I / O map words, there is a corresponding 16-bit output circuit board to which the data is applied. Following the output or output scan, an input or input scan is performed with the I / O interface circuits of the circuit board 8 addressed sequentially by the DMA circuit 110 , and 16-bit data words representing the state or status of each Display devices of the controlled machine tool 13 , are entered. These 16-bit data words are stored in two associated lines of the I / O map 107 , respectively. Although the amount of time that the main processor is inactive during this DMA data transfer varies depending on the number of I / O devices to operate, in general for each read and write operation using the I / O interface circuit in FIG the circuit board 8 less than two microseconds necessary. The programmable interface circuit 75 thus represents a small time load for the main processor.

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.For the following consideration, Fig. 12B is again used. After the input / output scan has been completed, an overlap bit is set (ie, bit 7 in the microprocessor B register), as shown by process block 476 , and the system branches to a call routine 477 for the first macroinstruction to read the control program 464 and execute it. The operation of the NMI interrupt is completed at this juncture, and the programmable interface processor proceeds to sequentially execute the control program macro instructions, as indicated by process block 478 .

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. In addition to the Fig. 12B and Figs. 2 and 3 are used. The last macroinstruction in the control program 464 is an end macroinstruction. When this macro instruction is fetched, it is mapped into its interpreter routine (end interpreter routine), as shown in process block 479 .

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.One of the first functions of the end interpreter routine 479 is the output of 68 8-bit status words from the PI map 106 to the main processor PI map 105 . Contained in these status words is the flag "Overlap" and the flag "Data Transfer" as shown in FIG . Direct memory access is requested from the main processor to perform this transfer, and the transfer is accomplished using the block transfer instruction in the Zilog Z-80 microprocessor instruction set 480 . The overlap bit is then reset according to a process block 481 to indicate that the entire control program 464 has been executed, and the macroinstruction program counter (ie, the stack pointer or stack hint) is reset to point to the first macroinstruction in the control program 464 . The programmable interface processor then waits for the next NMI interrupt to occur during the next 25.6 ms iteration period.

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.In the above description, it will be understood that the programmable interface processor operates in parallel with the main processor to execute the control program 464 at the same time that the main processor performs its many functions. When the numerical control system is in the operating mode, the main processor is busy or busy to execute the scheduled interrupt process 361 and the other processes listed in the scheduled queue 368 . The interpolation routine alone requires significant main processor execution time since considerable arithmetic calculations are to be performed, as disclosed in US Pat. No. 3,728,528.

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.The parallel operation of the two processors is illustrated in FIG. 13. At the beginning of each iteration period, the main processor initiates an NMI interrupt with the programmable interface processor and then proceeds to execute the timed interrupt process 361 . In the meantime, due to the NMI interrupt, the programmable interface processor begins to transfer the contents of the PI map 105 from the main processor by sequentially requesting the direct memory access DMA and directly reading from the main processor memory 29 . The programmable interface processor, therefore, will soon start updating its input / output map 107 by again requesting a sequence of DMA transfer operations from the main processor address space. Although the data transferred during the input / output scan does not necessarily include the main processor, the main processor data bus 27 and the main processor address bus 26 are used, and the operation of the main processor must therefore be shut down during this operation.

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.Referring to Fig. 13, it will be noted that the programmable interface processor executes its control program 464 subsequent to the input / output scan. The time to perform this function depends on the length of the control program 464 , but in no case extends to the next iteration period. If this still occurs, the overlap flag will not be reset and an error will be displayed to the main processor. When the programmable interface processor completes the execution of the control program 464 , it makes a series of DMA requests from the main processor during which it transfers the contents of the PI map 106 to the main processor memory 29 . The programmable interface processor is then idle for the remainder of the iteration period, but is reactivated to repeat the same cycle when an NMI interrupt is requested at the beginning of the next iteration period.

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.A modification of the preferred embodiment in that adjustment of the operation of the main processor during the input / output scan is avoided is possible. This modification requires that the input / output interface circuit in the circuit board 8 be connected to the data bus 82 and the address bus 83 of the programmable interface 75 . The reason why this alternative arrangement is not preferred, however, is that the programmable interface circuit 75 of the preferred embodiment can be completely removed from the numerical control system, and that the main processor can be programmed to operate the I / O interface circuits of the circuit board 8 directly to control. The programmable interface circuit 75 may therefore be offered as an option or optional unit.

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. The advantages obtained by the simultaneous or parallel operation of the programmable interface processor with the main processor are numerous. First of all, the time overhead of the main processor is minimal. The main processor need not wait for the control program to execute, but may instead stop execution of the scheduled interrupt process 361 and turn to other processes listed in the scheduled queue 368 . The only time overhead of the main processor are the three short time periods during which DMA requests are granted to the programmable interface processor.

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.A second major advantage is the ease with which the programmable interface processor can be programmed by the user. Since the control program execution is removed from the main processor sequence, the only time constraint is that the control program 464 is executed in less than 25.6 ms. However, this is more than enough time for any reasonably reasonable control program, 464 so that in practice no difficult time problems are to be solved by the programmer. In addition, since sufficient execution time is available, programmable controller type instructions, ie, macro instructions, may be used to develop the control program 464 . These commands, unlike microprocessor language, are easy to learn and understand by the user. These macroinstructions may be interpreted directly or "on line" by the microprocessor 25 to perform the required functions.

Operation der ortsungebundenen SteuerstationOperation of the non-mobile control station

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.While the programmable interface processor establishes the interface connection of the numerical control system with the individual input / output devices of the machine tool 13 , the front panel processor operates or actuates the peripheral devices that establish the interface connection of the numerical control system with the operator. Like the programmable interface processor, the front panel processor frees the main processor from a significant amount of time and allows flexibility in the type and number of peripheral devices used. The front panel processor also facilitates the addition of other features or measures not found in conventional numerical control systems. The peripheral devices can be housed in a separate, remote station.

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. FIG. 15 is for further explanation . The front panel processor is an event-driven system having an operating system 500 which in turn includes a scheduler routine and a set of monitor operator routines. Operating system 500's scheduler area recognizes the front panel processor events as they occur and, based on these events, selects tasks to be performed. If more than one task is due to be executed at any one time, the task with the highest priority is executed first. A list of these tasks along with their priorities are stored in a task queue 501 . The number and nature of the tasks to be performed by the front panel processor can vary considerably, depending on particular options that can be selected by the user. In the embodiment shown in FIG. 15, these tasks include a switch monitor routine 502 , a desk lamp driver routine 503 , a display guide routine 504 , a keypad routine 505, and a CRT display update routine 506 . An additional task or task is called "task-n-routine" 507 . This is to illustrate that other tasks can be performed by the front panel processor. In fact, one of the main advantages of the front panel processor is that tasks can be added to the system or taken away from the system in conjunction with little or no change in operating system 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.The operating system 500 of the front panel processor recognizes 18 different events. Many of these events are generated by the routines 502 through 507 as they perform their tasks or tasks, and others are generated by the front panel processor hardware.

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.Referring to Figs. 5 and 15, it will be noted that interrupts generated by the main processor USART 220 , auxiliary USART 294 , keypad interface 235 , CRT interface 250, and tape reader 297 are each communicated to the scheduler through associated interrupt service routines , As already explained, the microprocessor 221 is instructed by the 4-bit code generated on the bus 291 by the interrupt and I / O control circuit 243 for the appropriate interrupt service routine. In particular, an interrupt on the control line INT1 directs the microprocessor 221 to a main processor USART service routine 508 and an interrupt on the control line INT2 directs it to either an auxiliary USART interrupt service routine 509 or a 640 microsecond service interrupt service routine 510 , An interrupt generated on the control line INT3 refers the microprocessor 221 to a keypad interrupt service routine 511 , and an interrupt generated on the control line INT4 instructs the system to a CRT visual display interrupt service routine 512 . An interrupt on control line INT5 directs the system to a guard timer interrupt service routine 513 and interrupts on control lines INT6, INT7 direct the system to a tape reader interrupt service routine 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.The interrupt service or interrupt service routines 508-514 report to the scheduler in the operating system 500 . These reports include a first number indicating the occurred event and a second number identifying a particular related task. The scheduler in operating system 500 uses these two numbers as indices in sheets or tables that define what has to be done next. The events recognized by the scheduler are summarized in Table C below.

Tabelle C Table 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:The front panel processor is a finite state machine, and thus the tasks performed by the routines 502 through 507 are always in a defined state at all times. These states are the following:

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.
SCPT - The task is currently being executed by the front panel processor.
SEXT - The task is listed in task queue 501 waiting for processor time.
SSLP - The task is sleeping and waiting for a preset amount of time to pass.
SIOW - The task is waiting for an I / O operation to complete.
SNUL - The task is waiting for activation by an event that identifies the task. Various events can activate the task from this state.

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. It is of course the function of the scheduler to recognize the defined events as they occur and to bring the various tasks into the appropriate state. For example, whenever the CRT viewer 17 generates a vertical retrace signal, the microprocessor 221 is interrupted by the control line INT4, and the CRT display interrupt service routine 512 is executed. The purpose of this interrupt driven event is to initiate the updating of the CRT viewer 17 with new data during the 3.1 ms vertical retrace period.

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.It is the task or task of the CRT visual display update routine 507 to perform the actual data transfer, and thus it is the function of the scheduler to enable the task number or task count 7 when the CRT visual display interrupt service routine 512 reports this event. The task is accomplished by loading the task count, ie, 7, into task queue 501 , where execution occurs when higher priority tasks are completed in the task queue. Due to the vertical return event, task 7 is therefore brought from state SNUL to state SEXT.

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.When task 7 in the queue 501 becomes the highest priority task and the previous task has been terminated or stalled, the CRT visual display update routine 506 is activated and executed by the scheduler, ie the state of task 7 changes from SEXT to 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. From the above discussion it can be seen that the tasks are moved from state to state by the scheduler in response to events reported to the task. The state changes that occur are outlined in the state event table of FIG .

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. The operating system 500 of the front panel processor is designed for maximum flexibility as the type and number of peripheral devices associated with the non-mobile control station 2 will vary considerably depending on the needs of the user. For example, when the CRT viewer 17 is changed, due to the hardware differences, it may be necessary to change the display guide or display processing routine 504 , the CRT display update routine 506, and the CRT display interrupt service routine 512 . The rest of the operating system 500 will not be changed. The priority with which tasks are executed can be easily changed by changing the priority numbers stored in the task status blocks.

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. The tasks in the front panel processor show a Operation to data from a peripheral device to enter data into a task transfer queue to write and then call the communication routine, to transfer the data to the main processor.  

Operation der SeriendatenübertragungOperation of the serial data transmission

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.The serial data transmission between the main processor and the non-mobile control station 2 is a full-duplex data connection of the RS-232 type. The routing and routing of the data communications is performed by a communications software module that includes a USART interrupt service routine and a communications routine. The communication software module is essentially the same on the main processor and on the front panel processor.

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.The main purpose of the communication software module is to create a log to which the main processor and the front panel processor are subject to between them commands or messages are transmitted should. The communication software module also receives Requirements for transmitting messages resident Processes or tasks. He transmits the message Using the appropriate protocol, and he reports the requesting process or the requesting task, when the transfer is completed. The communication Software module also receives messages via the serial data connection, stores them in data buffers that from the resident task or the resident process are set up and notify the resident Task or the resident process that reception has ended or that a transmission error has occurred is.

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.In the following reference is made to FIG. 17. A message transmitted over the data connection consists of a header segment, a text segment and a block check character BCC. The header segment consists of three bytes, designated HC1, HC2 and HC3. The first byte HC1 indicates the number of bytes in the text segment. The second byte HC2 is the device code for the receiving task or the receiving process. The third byte HC3 is a command or control code. The text segment can have a length of 1 to 255 bytes. The BCC character is a single byte which is calculated by subjecting each byte in the text segment to a logical exclusive OR operation.

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ß.If the first byte in the message (HC1) is a Zero, the message is interpreted as a command. The third byte HC3 identifies the particular command for the receiving task or the receiving process.

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.For the following explanation, FIG. 18 is used. It is the responsibility of the tasks in the front panel processor and the processes in the main processor to obtain data buffers and to populate them prior to invoking the communication software module for transmission. Such a buffer 570 is here referred to as process transfer queue or task transfer queue. Each buffer is associated with a task or process that transmits data over the serial data connection. Furthermore, associated with such a process or task is an IOPB block of data 571 which stores information needed by the communications software module to service the sending or transmitting task. IOPB block 571 stores a queue pointer indicating the address of the associated transmission queue. Further, it stores the address of any buffer set up by its associated task of receiving data. In addition, it stores a text length character (HC1), a device code (HC2), and command data (HC3) needed by the communication software module to form a message.

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.A message transfer is initiated by a task or process that loads its device code or device code into a transfer request board 572 and calls the communications software module 573 . The device code is used by the routine in the communication software module 573 to find the header data and the text of the message to be transmitted. This is accomplished by mapping through a device code board 574 which stores a list of IOPB block memory addresses for all device codes. The header data stored in IOPB block 571 is then used to form the header segment of the message, and the queue pointer stored in the IOPB block is used to locate the message text.

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.A similar process or process takes place at the receiving end of the message. The second character (HC2) in the received message is the device code for the process or task that is to receive the message. This character is mapped via the device code board 574 to find the correct IOPB block 571 . The address of the data buffer in which the message text is to be stored is found in the IOPB block 571 .

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,
1. Numerical control system containing
  • - a main processor with
    • an input device for inputting blocks of partial program data,
    • a memory device for storing data and
    • output means for outputting motion command signals to servomechanisms of a machine tool, the main processor being operable (functions of the main processor)
      • a part of the data contained in the partial program for executing numerical control functions is converted into motion command signals and output to the servomechanisms, and
      • a further part of the data contained in the subprogram for displaying auxiliary functions to be executed by individual devices on the machine tool is converted into individual logic signals and stored in the memory device of the main processor, and further comprising
  • I / O interface circuits, via which the numerical control system is connected to the individual devices of the machine tool,
dadurch gekennzeichnet,characterized,
  • - 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 undin that a programmable PI processor ( FIG. 3) associated with a programmable interface PI ( 75 ) is connected to the main processor ( FIG. 2) and the I / O interface circuits ( 8 ), and
  • - daß die Ausgabe der Bewegungsbefehlssignale an die Servomechanismen der Werkzeugmaschine (13) während einer definierten Iterationsperiode einmal erfolgt und - That the output of the movement command signals to the servomechanisms of the machine tool ( 13 ) takes place once during a defined iteration period and
  • - 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.
    - That the programmable PI processor ( Fig. 3) during each of these iteration periods is once operable (functions of the programmable PI-processor) that
    • Data is input to the programmable PI processor ( FIG. 3) which
      • Display the state of the individual devices on the machine tool via the I / O interface circuits ( 8 ) and
      • display the auxiliary function to be executed, this data being stored in the form of the individual logical signals in a PI mapping table ( 105 ) of the memory device ( 29 , 30 ) of the main processor ( FIG. 2),
    • Stored control program is executed by using this, in the programmable PI-processor (Fig. 3) input data in the programmable PI-processor (Fig. 3) and in the execution of the control program data for controlling the individual devices on the machine tool - ( 13 ), and data indicative of completion of the auxiliary functions are obtained, and
    • the data serving to control the individual devices on the machine tool ( 13 ) are output to the individual devices via the I / O interface circuits ( 8 ) and the data indicating the completion of the auxiliary functions are sent to the PI mapping board ( 105 ) of the memory device ( 29 30 , 30 ) of the main processor ( FIG. 2).
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.2. A numerical control system according to claim 1, characterized in that the functions performed by the programmable PI processor ( Fig. 3) are executed while the main processor ( Fig. 2) performs its functions. 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.A numerical control system according to claim 2, characterized in that the functions performed by the programmable PI processor ( Figure 3) are synchronized with the functions by means of a signal (NMI) generated by the main processor ( Figure 2), which are executed by the main processor. 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,
4. Numerical control system according to one of claims 1 to 3, wherein
  • the main processor contains a microprocessor connected to the memory means of the main processor via a main data bus and a main address bus,
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.
characterized,
  • in that the programmable PI processor ( Figure 3) includes a PI microprocessor ( 85 ) coupled to a PI memory ( 88, 89, 94 ) via a PI data bus ( 82 ) and a PI address bus ( 83 ). connected is,
  • - That a direct memory access circuit ( 110 ) is provided which connects the PI data bus ( 82 ) and the PI address bus ( 83 ) to the main data bus ( 27 ) and the Hauptadreßbus ( 26 ), and
  • in that the programmable PI processor ( Figure 3) is further operable due to the instructions stored in the PI memory ( 88, 89, 94 ) and executed by the PI microprocessor ( 85 )
    • the data inputted from the PI map ( 105 ) in the memory means ( 29 , 30 ) of the main processor ( FIG. 2) indicative of the auxiliary function to be performed is stored in a PI map ( 106 ) of the PI memory ( 88, 89 , 94 ), and
    • the data to be output to the PI map ( 105 ) of the memory means ( 29, 30 ) of the main processor ( Fig. 2) indicating the completion of the helper function is output from the PI map ( 106 ) of the PI memory ( 88, 89 , 94 ).
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.
5. Numerical control system according to claim 4, characterized
  • - That the individual devices are connected to the machine tool ( 13 ) to the main data bus ( 27 ) and the Hauptadreßbus ( 26 ) via the I / O interface circuits ( 7 , 8 ) and
  • - That by means of the programmable PI-processor ( Fig. 3) via the direct memory access circuit ( 110 ) data from the individual devices on the machine tool ( 13 ) is input and output to the individual devices of the machine tool ( 13 ).
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.
6. A numerical control system according to any one of claims 1 to 5, wherein the numerical control system comprises a keypad and a display, characterized by
  • an FP processor ( FIG. 5) associated with a front panel FP, having an FP microprocessor ( 221 ) which is connected to an FP memory ( 224, 225 ) via an FP data bus ( 223 ) and an FP address bus ( 222 ) . 226 ) is connected,
  • Communication means ( 9, 37, 220 ) for connecting the FP microprocessor ( 221 ) to the main processor ( Figure 2),
  • a keypad interface ( 235 ) for connecting the FP microprocessor ( 221 ) to the keypad ( 14 ),
  • - A CRT interface device ( 250 ) for connecting the FP microprocessor ( 221 ) with the visual display ( 16 , 17 ) and
  • a switch interface means ( 265 ) for connecting the FP microprocessor ( 221 ) to an FP switch set ( 15 ), the FP processor ( Fig. 5) being based on instructions stored in the FP memory ( 224, 225, 226 ) and are executed by its FP microprocessor ( 221 ), is operable to receive data from the keypad ( 14 ) and FP switch set ( 15 ) to the main processor ( FIG. 2) and from the main processor ( FIG. 2) to transmit to the visual display ( 16 , 17 ).
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.
7. Numerical control system according to claim 6, characterized
  • - That the communication means ( 9, 37, 220 ) connecting the FP microprocessor ( 221 ) with the main processor ( Fig. 2), a serial data connection ( 9 ).
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.
8. Numerical control system according to claim 7, characterized
  • - That the communication means ( 9, 37, 220 ) connecting the FP microprocessor ( 221 ) to the main processor ( Fig. 2) further
    • - Have a first universal receiver / transmitter device ( 37 ), which connects the serial data connection ( 9 ) with the main processor ( Fig. 2), and
    • - Have a second universal receiver / transmitter device ( 220 ), which connects the serial data connection ( 9 ) with the FP microprocessor ( 221 ).
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.
9. Numerical control system according to one of claims 5 to 8, characterized
  • in that the memory means ( 29 , 30 ) of the main processor ( FIG. 2) stores an FP mapping table ( 444 ) and the FP memory ( 224, 225, 226 ) stores another FP mapping table ( 233 ), each representing the state of the Display FP switch set ( 15 ), and
  • - That the FP processor ( Fig. 5) is operated such that
    • the current state of the FP switch set ( 15 ) is periodically compared with the state of the further FP mapping board ( 233 ) stored in the FP memory ( 224, 225, 226 ) and, in the event of a difference, the further FP mapping board ( 233 ) in the FP memory ( 224, 225, 226 ) is updated by changing its contents, and
    • the FP mapping table ( 444 ) in the memory device ( 29 , 30 ) of the main processor ( Figure 2) is updated by transmitting data to the main processor ( 2 ) indicating the corresponding changes made in the in the memory device ( 29 , 30 ) of the main processor ( Fig. 2) FP mapping board ( 444 ) are to be executed.
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.
10. Numerical control system according to one of claims 1 to 9, characterized
  • - that the control program contains macro instructions,
    • - which are of a type as used in a programmable logic controller and
    • - which are stored in a control program area ( 464 ) of the PI memory ( 88, 89, 94 ), and
  • the macro instructions of the control program are executed by being converted by corresponding macro instruction interpretation routines stored in the PI memory ( 88 , 89 , 94 ).
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.
1. Numerical control system according to claim 10, characterized in that
  • - that the programmable PI processor ( Figure 3) comprises a PI universal receiver / transmitter ( 103 ) connected to the PI data bus ( 82 ) and to the PI address bus ( 83 ), and
  • - That the PI microprocessor ( 85 ) is operable to receive the macro commands via the PI universal receiver / transmitter ( 103 ) from a program console station ( 3 ) and into the control program area ( 464 ) of the PI memory ( 88 , 89, 94 ) writes.
DE19792950979 1978-12-19 1979-12-18 Numerical control system Expired - Fee Related DE2950979C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE2954696A DE2954696C2 (en) 1978-12-19 1979-12-18 Numerical control system for machine tool

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 (en) 1978-12-19 1979-12-18 Numerical control system for machine tool

Publications (2)

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

Family

ID=25782736

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19792950979 Expired - Fee Related DE2950979C2 (en) 1978-12-19 1979-12-18 Numerical control system

Country Status (1)

Country Link
DE (1) DE2950979C2 (en)

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 (en) 1980-07-10

Similar Documents

Publication Publication Date Title
DE3610433C2 (en) Method for controlling a machine with a programmable logic controller with a function chart interpreter
DE19813203B4 (en) Method for controlling a plurality of servo controls and servo control system
DE2713400C3 (en) Numerical control system for machining centers
DE69133560T2 (en) Management system for a numerically controlled machine tool
EP0875023B1 (en) Automation device
DE2801563C2 (en)
DE102005028943A1 (en) Numerical control that can call a program written in a written language
DE1524209B2 (en) PROGRAM CONTROLLED DATA PROCESSING SYSTEM
EP1182529A2 (en) Industrial control based on distributed technological objects
WO2016162477A1 (en) Transmission module, processing module and control system
DE2540823C2 (en) Electronic data processing system
DE4226536A1 (en) Programmable control system with user information function - uses memory to store status and data for checking and transmission over link to monitor for display
US4994957A (en) System for simultaneously displaying all ladder diagram segments in which an operator designated relay appears as an input or output
EP0799441B1 (en) System for controlling technical processes
DE2935101A1 (en) FOLLOW CONTROL DEVICE
DE2950979C2 (en) Numerical control system
EP0590175B1 (en) System for controlling a process
DE10218816A1 (en) Programmable control system
DE3527485C2 (en) Numerical control device
DE2954696C2 (en) Numerical control system for machine tool
DE3420355A1 (en) System of interconnected, numerical control devices
EP0458982A1 (en) Machining display system
DE3411522A1 (en) NUMERICAL CONTROL SYSTEM
DE69918829T2 (en) CONTROL SYSTEM FOR CONTROLLING PROCESS DEVICES
DE19828395B4 (en) Debugging methods for use in programmable displays

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