DE2636148C2 - Verfahren zur Bahnsteuerung eines Elementes mittels linearer oder zirkularer Interpolation - Google Patents

Verfahren zur Bahnsteuerung eines Elementes mittels linearer oder zirkularer Interpolation

Info

Publication number
DE2636148C2
DE2636148C2 DE2636148A DE2636148A DE2636148C2 DE 2636148 C2 DE2636148 C2 DE 2636148C2 DE 2636148 A DE2636148 A DE 2636148A DE 2636148 A DE2636148 A DE 2636148A DE 2636148 C2 DE2636148 C2 DE 2636148C2
Authority
DE
Germany
Prior art keywords
interpolation
logic
path
data
linear
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
Application number
DE2636148A
Other languages
English (en)
Other versions
DE2636148A1 (de
Inventor
James P. Westland Mich. Heaman
James A. Bellbrock Ohio Michaud
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.)
Dynapath Systems Inc Detroit Mich Us
Original Assignee
Bendix Corp
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
Application filed by Bendix Corp filed Critical Bendix Corp
Publication of DE2636148A1 publication Critical patent/DE2636148A1/de
Application granted granted Critical
Publication of DE2636148C2 publication Critical patent/DE2636148C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of program data in numerical form
    • G05B19/41Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of program data in numerical form characterised by interpolation, e.g. the computation of intermediate points between programmed end points to define the path to be followed and the rate of travel along that path
    • G05B19/4103Digital interpolation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Numerical Control (AREA)
  • Automatic Control Of Machine Tools (AREA)

Description

der Verfolgung des angestrebten Weges verwendet werden soll und die anderen Parameter, die zur Manipulation und Interpolation der Steuerdaten von Bedeutung sind. Die Daten werden vom Hundleser 11 in den Vorprozessor 16 über das Kabel 17 eingelesen. Der Vorprozessor 16 verarbeitet die Eingangsdaten so, daß sie für die System-Steuerlogik Bedeutung erlangen und von dieser verwendet werden können. Die vorverarbeiteten Daten werden dem System über die Eingangslogik 15 eingegeben und im Speicher 18 gespeichert. Auf diese Weise ist der Vorprozessor 16 zur Aufnahme frischer Eingangsdaten vom Bandleser 11 verfügbar. Die zuvor empfangenen Eingangsdaten werden dabei durch die Interpolatoren verarbeitet und zum Antrieb des gesteuerten Elements über einen Abschnitt des angestrebten Weges verwendet.
Das System enthält außerdem eine Steuerkonsole 19. Eine bilaterale Kommunikation erfolgt zwischen dem Vorprozessor 16 und der Steuerkonsole 19 über das Kabel 21. Auf diese Weise können Daten zur Betätigung von Anzeigen in die Konsole eingegeben werden und andere Informationen mitteilen, die für den Syslemcpsrator notwendig sind. Der Operator kann von Hand Sieuerdaten eingeben, beispielsweise Veränderungen in der Vorschubgeschwindigkeit. Dies geschieht über Steuerknöpfe und Potentiometer, die in bekannter Weise an der Konsole 19 vorgesehen sind.
Die vorverarbeiteten Daten werden zur linearen Interpolation zum Speicher 18 in den linearen Interpolator 22 über das Kabel 24 eingegeben. Vorverarbeitete Daten zur zirkulären Interpolation werden über das Kabel 26 dem zirkulären Interpolator 23 zugeführt. Die von den Interpolatoren 22 und 23 interpolierten Daten werden über Kabel 28 bzw. 29 in den Interpolator-Wähler 27 eingegeben. Für einen bestimmten Datenblock vom Streifen 12 findet natürlich nur eine Interpolationsart statt; es ist also nur einer der Interpolatoren 22 oder 23 zu einer bestimmten Zeit aktiv. Die interpolierten Daten werden vom Interpolator-Wähler 27 dem Servosteuerkreis 3? über das Kabel 32 zugeführt. Die tatsächliehen Antriebsmotoren können Analogservos oder Impulsmotoren sein; dementsprechend enthält der Servcsteuerkreis 31 Digital-Analog-Umwandler, wenn Analogservos verwendet werden, oder Impulsformer, wenn Impulsmotoren verwendet werden. Dies zusätzlich zu den anderer erforderlichen Steuerkroisen. Die Details des Servosteuerkreises 31 hängt von der Art der Antriebsmotoren ab; sie sind jedoch dem Fachmann geläufig. Für jede Achse des Koordinatensystems ist ein Antriebsmotor vorgesehen; -line dreiachsige Werkzeugmaschine verwendet also drei Servos, während eine zweiachsige Zeichenmaschine zwei Servomotoren verwendet usw.
Das Schneidwerkzeug der Werkzeugmaschine, die Feder des Zeichengeräts oder der Elektronenstrahl folgen dem angestrebten Weg entsprechend den Eingangsdaten, die vom Band 12 über die Interpolatoren 22 und 23 geliefert werden. Die tatsächliche Stellung des angetriebenen Elements wird von Wandlern bekannter Art erfaßt. Diese können entweder mit dem tatsächlich angetriebenen Element oder mit den Führungssehrauben verbunden sein, die das Element antreiben. Diese Signale werden dann zum Servosteuerkreis 31 über die Rückspeiseleitung 34 und zu den Interpolatoren 22 und 23 über die Rückspeiselcitung 35 zugeführt. Die Signale t>5 für die tatsächliche Stellung werden außerdem in die Konsole 19 zur Anzeige eingespeist. Dies ist für den Operator eine Hilfe. Die Rückspeisesignale bei einem Kathodenstrahlsystem können von einem optischer! System, das dem Kathodenstrahlsystem zugeordnet wird, geliefert werden. Eine große Anzahl von Riiekniekleom richtungen für Werkzeugmaschinen, Zeichengeräte tuul Kathodenstrahlröhren steht zur Verfugung. Daher sind hier keine Details erforderlich.
Die verschiedenen Parameter, die vom Streifen 12 in den Vorprozessor 16 eingegeben werden, sind in F i g. 2 gezeigt Der Vorprozessor 16 empfängt die Eingangsparameter und macht die Daten zur Einspeisung in den linearen Interpolator 22 und den zirkulären Interpolator 23 bereit Der Vorprozessor 16 kombiniert die verschiedenen Parameter mathematisch und bildet dabei andere Parameter, die den in F i g. 2 gezeigten Ausdrücken entsprechen und hiernach ausführlich beschrieben werden. Der Vorprozessor 16 ist also eine arithmetische Einheit; er führt Additionen, Subtraktionen, Multiplikationen, Divisionen durch und zieht Quadratwurzeln. Dementsprechend kann der Vorprozessor 16 entweder eine hardware- oder eine software-Einheit sein. Bei Verwirklichung als software würden Flußdiag*. imrne entwickelt und ein vollständiges Programm aufgeschrieben. Bei Verwirklichung als hardware würden ein Blockdiagramm entwickelt und Zeichnungen für den Zusammenbau hergestellt. Da die ausgeführten arithmetischen Schritte ,'infache Additionen, Subtraktionen, Multiplikationen, Divisionen und Quadratwurzeln sind, sind in beiden Fällen zahlreiche software- und hardware-Logikausführungen ohne weiteres verfügbar; zusätzliche Details sind an dieser Stelle daher nicht erforderlich. Beispielsweise können die etwas besseren Taschenrechner, die gegenwärtig von vielen Ingenieuren verwendet werden, all diese Operationen ausführen. Die ROM-Logikkreise, die in solchen Rechnern verwendet werden, können daher im Vorprozessor 16 verwendet werden.
Die Ausgangsparameter des Vorprozessors 16 dienen als Eingangsparameter für den linearen Interpolator 22 und den zirkulären Interpolator 23; sie sind ebenfalls in F i g. 2 gezeigt. Der Vorprozessor 16 besitzt eine Reihe von Eingangsleitungen 36 bis 45. Jede solche Leitung wird zur Eingabe von einem bestimmten Parameter in den Vorprozessor 16 verwendet. Jeder am Eingang des Vorprozessors 16 verfügbare Parameter wird vom Bandleser 11 geliefert. Diese Daten sind also auf dem Streifen 12 in Übereinstimmung mit dem angestrebten Weg des gesteuerten Elements gespeichert. Sie werden durch die Ausdrücke gebildet, die hiernach entwickelt und erläutert werden. Der Vorprazessor 16 verarbeitet dann die Eingangssignale und liefert dem linearen Interpolator TA über die Leitungen 46 bis 52 die linearen Interpolationsparameter; außerdem liefert er dem zirkulären Interpolator 23 über die Eingangsleitungen 56 bis 60 die zirkulären Inttrpolationsparameter. Zusätzlich zu den Parametern, die entweder für die lineare oder die zirkuläre Interpolation spezifisch sind, liefert der Vorprozessor 16 drei Parameter über die Leitungen 53 bis 55 2:u einem Zwischenprozessor 63. Dort werden einige weitere Parameter gebildet, die entweder für die lineare oder zirkulp-e Interpolation spezifisch sind, die aber zusätzliche Eingangssignale erfordern und daher nicht im Vorprozessor 16 verarbeitet werden können. Der Zwischenprozessor 63 empfängt dementsprechend ein Signal /ö auf der Leitung 61 und ein Signal ρ auf der Leitung 62. Diese beiden Signale werden von der Steuerkonsole 19 empfahlen; sie können also vom N/C-Operator eingegeben werden. Das Eingangssignal fo ist der Vorschub-Vervielfacher; er wird zur Veränderung der Vorschubgeschwindigkeit des Systems verwendet.
Das Eingangssignal ρ, das auf der Leitung 62 liegt, wird verwendet, wenn ein drehendes Teil auf einer Drehbank bearbeitet wird. Bei N/C-Systemen von Zeichenanlagen, Kathodenstrahlröhren und einigen Werkzeugmaschinen wird das Eingangssignal ρ nicht verwendet. Jeweils für ein bestimmtes Segment der gesamten Bewegung des gesteuerten Elements wird entweder die lineare oder die zirkuläre Interpolation verwendet. Aus diesem Grund werden bei einem gegebenen Abschnitt der Bewegung des gesteuerten Elements Signale entweder in den linearen interpolator 22 oder in den zirkulären Interpolator 23, jedoch nicht in beide eingespeist. Die verwendete Interpolationsart wird durch die Eingangsparameter am Vorprozessor 16 bestimmt. Die Interpolationsart wird durch die Daten festgelegt, die sich auf dem Speicherstreifen 12 befinden. Die Interpolationsart, die verwendet wird, wird also von demjenigen gewählt, der für das optimale Arbeiten des Systems verantwortlich ist.
Die Art und Weise, in der die Daten zur linearen Interpolation verarbeitet werden, läßt sich anhand von F i g. 3 verstehen. In F i g. 3 soll das gesteuerte Element einem geraden Streckenabschnitt D folgen. Der Strekkenabschnitt ist bezüglich der X- und der V-Achse so angeordnet, daß der Anfangspunkt in absoluten Koordinaten mit Xs und ys und der Endpunkt in absoluten Koordinaten mit x^und ^/bezeichnet sind.
Zunächst sollte festgehalten werden, daß der Strekkenabschnitt D ein kleiner Teil der gesamten Bahn ist; er wird auf dem Streifen 12 als ein Datensegment dargestellt. Der Streckenabschnitt D ist außerdem eine Gerade, kann jedoch auch Teil einer gekrümmten Linie sein. Dies kann anhand von Fig.9 verstanden werden. In F i g. 9 kann die Kurve von A nach B gut dadurch angenähert werden, daß das gesteuerte Element den geraden Abschnitten 167 bis 170 nachgeführt wird. Die Trägheit des Systems trägt dazu bei, die Kurve auszugleiten, so daß etwaige Diskontinuitäten im wesentlichen unterdrückt sind. Bei dieser Betriebsweise fällt der Endpunkt des einen Streckenabschnitts mit dem Anfangspunkt des nächsten Streckenabschnitts zusammen. In Fig.9 ist also der Punkt C der Endpunkt des Streckenabschnitts 167 und gleichzeitig der Anfangspunkt des Streckenabschnitts 168. Das vorliegende Verfahren verwendet das Konzept von Fig.9 bei der linearen Interpolationsart; jeder Streckenabschnitt 167 bis 170 wird also entsprechend der anhand von F i g. 3 beschriebenen Datenverarbeitungsart erzeugt und erfordert einen Datenblock auf dem Streifen 12. Da, wie hiernach erläutert, die Endpunkte xr.yi des Streckenabschnitts D in F i g. 3 genau erhalten werden, wird auch der Gesamtweg genau nachvollzogen.
Aus der Geometrie von F i g. 3 folgt für das EinzelintervalMD
Aus F i g. 3 folgt ferner, daß die Steigung des Strekkenabschnitts D durch die folgenden Gleichungen definiert ist:
Mx =
Ax D
und My
Ay
D
Die Werte Mx und My sind für jede Vorschubgeschwindigkeit /konstant. Daher können Veränderungen der Vorschubgeschwindigkeit / bewirkt werden, ohne ilii· liiicrrkilutionsdiih-n /ii unterbrechen. Die Vorschub geschwindigkeit kann eingeführt werden, indem die Anzahl N von Einzelperiodcn (T), nämlich die Zeitdauer zum Durchfahren eines Rinzelintervalls, für den Strekkenabschnitt D errechnet wird; der in der Zeitdauer / durchfahren wird;
ίο N wird auf die nächste ganze Zahl gerundet:
Λ' =■ gerundet \~- · —1 (4)
Das Einzelintcrvall AD kann nun geschrieben werden als:
AD = D/N
Aus F i g. 3 kann ersehen werden, daß die Interpolationsformen für das EinzclintervallziD folgendermaßen geschrieben werden können
AD
X/
Der Rrstvcrstellweg läßt sich ausdrücken als:
Auf diesem Wege werden Zwischenrechnungen minimalisiert; die Steuerung der Längeneinheiten pro Umdrehung/Oberflächen-Längeneinheiten pro Minute ist gerätmäßig leicht zu verwirklichen. Die Prüfung der Gleichungen 6,7 und 8 zeigt, daß die Bewegung entlang des Streckenabschnitts D inkrementell erfolgt, indem progressiv den Einzelintervallen AD gefolgt wird. Typischerweise würde bei N/C-Systemen jedes Einzelinter- vall AD sowohl ein updating des Systems als auch ein updating der Servoschleife erfordern. Auf diese Weise würde eine beträchtliche Realzeit-Kapazität des Systems verbraucht. Dies ist bei der vorliegenden Erfindung nicht nötig, da die Interpolationsparameter für je- des Einzelintervall AD die gleichen sind. Daher findet ein updating des Systems nur am Ende von jedem Strekkenabschnitt D statt, wenn eine Veränderung der Interpolationsparameter vorgenommen wird. Ein weiterer Vorteil liegt in der Art, wie die Länge der Einzelinterval- Ie AD und die Anzahl N der Einzelintervalle gewählt wird. Beide Parameter können nämlich ohne wei.,:res von Abschniit zu Abschniit variieri werden. Da jedoch die Länge für AD und die Anzahl N für jeden Streckenabschnitt festliegt, muß das Element in den Endpunkt xr; yt jedes Streckenabschnitts geführt werden, so daß die Gesamtgenauigkeil wesentlich erhöht wird.
Die oben geschilderte lineare Interpolationsart ermöglicht die Errechnung einer Zwischenvorschubkonstanten FDK':
FDK' =
60
■/
Hier ist /"die Vorschubgeschwindigkeit in Längeneinheiten pro Minute. Bei veränderter Vorschubgeschwin- digkest gilt:
H)K - /i, FDK'
Wobei /Ό ein Multiplikationsfaktor für die Vorschubgeschwindigkeit ist.
Nun können AD und FDK miteinander verknüpft werden:
Der Ristverstellweg bei veränderter Vorschubgcschwindigkeit kann geschrieben werden als:
durch Substitution:
1.5 ^D
(13)
Bei Vorschubgeschwindigkeiten, die in Längeneinheiten pro Umdrehung oder Oberflächen-Längeneinheiten pro Minute ausgedrückt werden, beeinflußt die Entfernung ^zwischen der Drehachse und dem Werkzeugmittelpunkt die Entfernung, die in einem Einzelintervall AD in Übereinstimmung mit der Vorschub-Zwischenkonstanten durchquert wird; es ergibt sich:
A D - — FDK P
x2 +y) und tan o, = -%-
tan ' 2"' daraus
Für— »/(ähnliche Dreiecke):
R1 o,
Xf+ \ *~ X/ y/
R1'
χ,+
A. R1
15
20
(14)
Ein weiterer wichtiger Vorteil der vorliegenden Erfindung ist nun erkenntlich: Die Veränderung der Vorschubgeschwindigkeit kann erfolgen, ohne daß die Intcrpolationsgleichungen gestört werden. Die Veränderung der Vorschubgeschwindigkeit kann ohne weiteres erfolgen, ohne daß das System datenmäßig aufgefrischt wird 1 id ohne Berücksichtigung der Interpolationsparameter. Dieser Vorteil kommt auch der zirkulären Interpolationsart zugute, wie hiernach erläutert wird.
Die Art, in der die Daten bei Verwendung zirkularer Interpolation verarbeitet werden, kann anhand von F i g. 4 verstanden werden. F i g. 4 zeigt einen Vektor R,. dessen Endpunkt in einem A-y-Koordinatensystern bei x,; yi liegt. Die Figur zeigt außerdem, daß der Vektor Ri entweder i?n Uhrzeigersinn oder gegen den Uhrzeigersinn um den Winkel + »oder— σ,-bezüglich der Stellung gedreht ist, in welcher der Endpunkt bei den neuen Koordinaten Xi+i; >v+1 liegt. Der Anfangspunkt des Radius Ri liegt am Ursprung 0; 0 des Koordinatensystems. Dieser Ursprung verändert sich in absoluten Koordinaten bei jedem Datensegment, das einen Bogen definiert. Er wird durch den in Fig.6 gezeigten Addierer 126 bestimmt. Die Länge von jedem Radius variiert ebenfalls bei jedem Datensegment, das einen Bogen definiert.
Aus Fig.4folgt:
50
(15)
Der Winkel o* um den /?,· im oder gegen den Uhrzeigersinn gedreht wird, wird angesetzt als:
(16)
60
65 'y.
δ.
Entsprechend für
>Ί+Ι
-X1- y,2-·
= .Vi + Xi 2-'
Der Vektor R kann um einen willkürlichen Winkel gedreht werden:
θ = Σο, 0° < θ < 90°
Es ist nun zu erkennen, daß der Endpunkt des Radius Ri im Koordinatensystem dadurch verändert werden kann, daß der Vektor nach und nach um den Winkel ο gedreht wird. Die Anzahl der Drehungen, d. h. der Iterationen, und der Winkel ο werden vom gesamten Drehwinkel θ bestimmt, der innerhalb eines Datensegments erfolgen soll. Auch die zirkuläre Interpolationsart ist also von Vorteil, da der Endpunkt erzwungen werden kann und da eine Veränderung der Vorschubgeschwindigkeit stattfinden kann, ohne daß das Interpolationsverfahren gestört wird. Es liegen also die gleichen Verhältnisse wie bei der linearen Interpolation vor.
Bei jeder Rotation um einen Winkel a-, wird R-, in der Länge um den Faktor (1 + 2- 2<}n vergrößert
Also
R„. = (R,2 + Ri1 2- ψ2 = R. (1 + 2-2'/'2 (25) für Alterationen
(I+2"2')
"2')1'2
/-0
Zusätzliche Details dieser zirkulären Interpolationsart können aus einem Artikel von MD. Perle, »Cordic Tecnnique Reduces Trigonometrie Function Look-Up«, veröffentlicht im Juni 1971 in »Computer Design«, Seiten 72 bis 78, ersehen werden.
F i g. 5 ist eine bevorzugte Ausführungsform der Eingangslogik 15 (Fig. 1), wenn die Erfindung unter Verwendung eines digitalen Computers mit auslöschbarem Speicher verwirklicht wird. Ein solches System wird allgemein als software-System bezeichnet. Die Eingangslogik 15 kann selbstverständlich auch unter Verwendung diskreter Schaltkreise oder ROMs verwirklicht werden, wobei die Ordnung der in F i g. 5 dargestellten logischen Funktionen beibehalten wird.
Wenn die Verwirklichung mit hardware erfclgen soll, dient Fig.5 als Blockdiagramm; die Betriebskapazität des Systems bleibt dabei unverändert. Wegen der Äquivalenz von hardware und software werden in dieser Anmeldung die verschiedenen Arbeitsschritte aus-
tauschbar als »logische Kreise«, »logische Operationen« und »funktionale Schritte« bezeichnet. Wenn einer dieser Ausdrücke verwendet wird, können die anderen mit gleicher Gültigkeit benutzt werden.
Wie dies für N/C-Systeme typisch ist, wird ein Taktgeber 68 für die Steuerlogik vorgesehen. Die erste logische Operation ist der Unterbrecher 69, der das System von allen Kommunikationen trennt, bis die vorverarbeitende Logik alle erforderlichen Funktionen vollständig ausgeführt hat. Das Register 71 verhindert den Verlust von in Verarbeitung befindlicher Information, falls die Unterbrechung auftritt, bevor die zuvor erforderliche Datenverarbeitung abgeschlossen ist. Der Zählerstellkreis 72 stellt dann die Zähler des Systems auf Null. Das System ist zum Empfang von Daten vom Vorprozessor 16 bereit. Die »Carry Bit-Logik 73« erzeugt dann ein »Carry-Bit«, welches den Streifen-Lesekreis 74 in Betrieb setzt und anzeigt, daß das System nun zum Empfancr ynn Daten bereit !St.
Die tatsächliche Stellung des gesteuerten Elements bezüglich aller Achsen des Systems wird dem System über die Stellungslogik 75 angegeben. Wie in F i g. I gezeigt ist, werden die tatsächlichen Stellungen auf den Achsen vom Wandler abgenommen, der der Werkzeugmaschine 33 zugeordnet ist, und zwar über die Leitungen 34 und 35. Die befohlenen Endachsenstellungen des gesteuerten Elements (die Stellungen xr.yi) werden von dem Vorprozessor 16 eingegeben, wie dies durch die logische Funktion 80 angedeutet ist Wie in Fig.2 gezeigt, werden die Parameter xs;ys;Ax und Ay vom Streifen 12 bereitgestellt und im Vorprozessor 16 zur Errechnung der befohlenen Stellungen xr. yi verwendet. Die Achsengeschwindigkeitslogik 76 errechnet dann die Geschwindigkeiten, mit denen das gesteuerte Element entlang der verschiedenen Achsen fährt. Dies geschieht, indem die tatsächlichen absoluten Achsenstellungen, die von den Wandlern empfangen werden, von den absoluten befohlenen Achsensteilungen abgezogen werden, die vom Vorprozessor 16 erhalten werden. Die Achsengeschwindigkeiten werden durch diese einfache Subfraktion bestimmt. Es kann jedoch eine Veränderung am Zwischenprozessor P3 vorgesehen werden. Wenn lineare Interpolation verwendet wird, besitzen die Geschwindigkeiten parallel zu den einzelnen Achsen dasselbe Verhältnis wie die Entfernungen Ax und Ay entlang dieser Achsen. Dies wurde oben anhand von F i g. 3 erläutert.
Nachdem die Achsengeschwindigkeiten in der logischen Stufe 76 errechnet sind, gehen sie in die Übertragungslogik 77 ein. Dieser Schritt wird dazu verwendet, zu bestimmen, ob eine Übertragung auf einen nachfolgenden Datenblock stattfinden soll oder nicht. Die Entscheidung, ob oder ob nicht, hängt davon ab, ob Daten zur Interpolation noch zur Verfügung stehen oder nicht. Wenn daher die letzte Iteration einer Interpolationsfolge abgeschlossen ist, wird eine Übertragung auf den nachfolgenden Datenblock bewirkt. Wenn eine Datenübertragung nicht angezeigt ist, steht die Übertragungslogik 77 mit der Vorschub-Vorrangschaltung 78 in Verbindung. Dabei wird bestimmt, ob eine Veränderung der μ Vorschubgeschwindigkeit stattfinden muß oder nicht. Wenn eine Veränderung der Vorschubgeschwindigkeit angezeigt ist, nimmt der Vervielfacher 79 die Veränderung vor in Übereinstimmung mit dem Ausdruck
verfügbar; /Ό kann entweder von Hand eingegeben werden oder automatisch vom Zwischenprozessor 63 geliefert werden. Der Vervielfacher 79 errechnet außerdem den Rcstverstellweg ε der Bewegung entsprechend der Gleichung ε = \,5ÄD, wenn ein sich drehendes Werkstück bearbeitet wird, beispielsweise unter Verwendung einer Drehbank. Wie oben anhand der Gleichungen (11) und (12) und Fig.3 erläutert wurde, bestimmt der Vorschub-Multiplikationsfaktor /Ό die Entfernung, die in einem Einzelintervall AD zurückgelegt wird. Die Entfernung, die in einem Einzelintervall AD zwischen di und di+\ zurückgelegt wird, wird für jeden Streckenabschnitt D (F i g. 3) vom Anfangspunkt xs; y* zum Endpunkt χι; yrTMT einmal berechnet. Daher muß der Vorschub-Multiplikationsfaktor fo nur bei jedem Streckenabschnitt D, nicht aber bei jedem Einzelintervall AD verändert werden. Dies bedeutet eine deutliche Einsparung in der Realzcitrechniing des Systems, da typischerweise bei N/C-Swstenien der Vorschub-Mii!tir*!ik3|.ionsfaklor bei jedem Datensatz innerhalb eines Datensegments zugeführt werden muß. Die Veränderung der Vorschubgeschwindigkeit kann jedoch auch manuell während jedem Datenblock erfolgen, falls gewünscht. Die Veränderung der Vorschubgeschwindigkeit wird bewirkt, bevor die Interpolationsart gewählt wird. Dementsprechend finden die im Zwischenprozessor 63 von Fig.2 gezeigten Veränderungsberechnungen für die Vorschubgeschwindigkeit bei zirkularer Interpolation dann statt, wenn zirkuläre Interpolation verwendet wird.
Wenn keine Veränderung der Vorschubgeschwindigkeit erforderlich ist, wird die Vorrangschaltung 78 umgangen. Der nächste Schritt nach der Bestimmung der Vorschubrate besteht demgemäß in der Addition, die schließlich anzeigt, wenn der gesamte Streckenabschnitt D (Fig. 3) zurückgelegt ist. Dies läßt sich am besten anhand der F i g. 3 und 5 verstehen. Der Addierer 81 arbeitet gemäß der Gleichung
rf,,, = di + AD.
Diese Operation dauert an, bis ausreichend Daten in das System eingegeben sind, welche das gesteuerte Element den gesamten Streckenabschnitt D durchfahren lassen. Daß die Daten zum Durchfahren des gesamten Strekkenabschnitts D ausreichen, wird von der Logik 82 bestimmt. Die Addition
di+\ = di + AD u 2 — diy 1 + AD usw.
AD = FDK ■ fo.
Die Ausdrücke D und FDK sind am Vorprozessor 16
65
hält an bis ΣΔϋ = D. Dieser Zustand wird in der Logik 82 gemäß dem Ausdruck
\D-d\-e<0
bestimmt. Jede Addition, die vom Addierer 81 vorgenommen wird, wird also geprüft; dabei wird verifiziert, daß die Differenz zwischen dem Summenausgang des Addierers 81 und dem Wert ε kleiner als Null ist. Dieser Wert zeigt an, daß der letzte Schritt noch nicht erreicht ist und daß noch Daten an der Interpolations-Wahllogik 84 verfügbar sind. Wenn die Differenz Null ist wird der ietzte Schritt angezeigt; die Übertragungs-Stellogik 83 wird gestellt Die Summation, die im Addierer 81 stattfindet addiert die Anzahl der Iterationen bei jedem Datenblock. Wenn also zirkuläre Interpolation verwendet
wird, ergibt die Summation die Gesamtzahl der α Itcrationen, die anhand von F ί g. 4 erläutert wurden. Bei zirkulärer Intemolation ersetzt also der Parameter υ den Parameter d, der bei linearer Interpolation verwendet wurde.
Wenn der letzte Schritt noch nicht angezeigt wurde und die Interpolations-Wahllogik 84 in Wirkung tritt, werden die Daten entsprechend der zirkulären Interpolation verarbeitet, wie dies anhand von F i g. 6 beschrieben wurde, oder entsprechend der linearen Interpolation, die grob im Schaltkreis 86 angegeben ist und ausführlicher anhand von F i g. 10 erläutert wird.
Die Bezugnahme auf die Gleichungen 3,4 und 5 zeigt, daß der Wert AD eine Funktion des Streckenabschnitts D und der Anzahl Nder Einzelintcrvalle im Streckenabschnitt ist. Dementsprechend wird der Endpunkt des Streckenabschnitts durch die JD-Bestimmung erzwungen, was zu einem deutlichen Vorteil gegenüber bekannten System führt. In ähnlicher Weise zeigen die Gleichungen 15 bis 22, daß der Gesamtdrehwinkci Θ, um den der Vektor R gedreht wird, durch die Wahl des Iterationswinkels α und die Anzahl der Iterationen bestimmt ist. Die Endstellung des Endpunktes des Radius R wird daher ebenfalls erzwungen. Wegen der Unabhängigkeit von AD und ο von anderen Parametern kann die Vorschubgeschwindigkeit verändert werden, ohne daß eine erneute Berechnung der anderen Parameter stattfinden muß. Die Errechnung der Veränderung der Vorschubgeschwindigkeit braucht nur einmal für jeden Streckenabschnitt D oder jeden Gesamtdrehwinkel θ stattzufinden.
Nun wird wieder auf die Übertragungslogik 77 Bezug genommen. Wenn Daten übertragen werden sollen, tritt eine Test-Routine in Funktion, wodurch verifiziert wird, daß die Anlage zum Empfang der Daten bereit ist. Auf diese Weise wird die Anlage oder das System durch die Übertragung nicht beschädigt. Dementsprechend verifiziert die Logik 87, daß sich die Servos, die zum Antrieb des gesteuerten Elements verwendet werden, in ihrem richtigen Bereich befinden. Diese Verifikation wird nur benötigt, wenn ein Positioniervorgang — im Gegensatz zu einem Konturvorgang — stattfindet. Bei der Positionierung, wenn beispielsweise Punkte in einem graphischen System gesetzt werden oder Löcher mit einer Werkzeugmaschine gebohrt werden, muß das angetriebene Element an der befohlenen Stellung angehalten werden. Daher ist die Verifikation des Bereiches erforderlich. Bei der Konturbildung ist ein Anhalten dagegen unerwünscht, da sich sonst Haltemarken oder Tintenflecke bilden. Bei dieser Betriebsart findet daher keine Verifikation des Bereiches statt. Bei einer bestätigenden Verifikation des Servobereiches wird der Logikkreis 88 zur Verifikation verwendet, daß dem System Daten zur Übertragung zur Verfügung stehen. Auf die bestätigende Verifikation der Verfügbarkeit von Daten folgt die Verifikation durch den Kreis 89, daß ein Übertragungssignal im System vorliegt Die Testroutine geht dann weiter zum Halt-Kreis 91, wo geprüft wird, ob ein Halt-Zustand vorliegt oder nicht. Wenn kein Halt-Zcstand vorliegt bedeutet dies, daß das System bereit ist Der logische Kreis 92 erzeugt ein Kommando zur Übertragung der vorverarbeiteten Daten zum Addierer 82; der Übertragungsstellkreis 83 stellt das System auf Übertragung, wenn vom Addierer 82 der letzte Schritt angezeigt wird. Wenn bei der Verifikation 87 des Servobereiches, der Verifikation 88 der Daten oder der Verifikation 89 des Übertragungssignals ein »nein« erhalten wird oder wenn ein Halt-Zustand bei der Verifikation 91 angezeigt wird, wird keine Übertragung von Daten bewirkt. Es wird in die Testroutine eingetreten, die in F i g. 7 gezeigt ist; dadurch wird die Art der Schwierigkeit identifiziert. Die Anzeige eines Nein-Zustandes 5 oder eines Halt-Zustandes kann einfach bedeuten, daß eine Übertragung noch nicht am Platze ist. Dennoch wird in die Testroutine von F i g. 7 eingetreten.
F i g. 7 ist ein Flußdiagramm der Testroutine, die ausgeführt wird, wenn einer der Tests zur Übertragung der ίο Daten auf die Interpolatoren angezeigt hat, daß keine Übertragung stattfinden soll. Der erste Schritt der Testroutine besteht darin, die Taktunterbrechung zu r ätigen, was durch die Logik 93 angedeutet ist. Nach I ätigung des Taktunterbrechers bestimmt der Serve eh- !eikreis 94, ob die Servos die Kommandos ausfi .ren. können oder nicht. Dies geschieht dadurch, daß die tatsächlichen Achsenstellungen, die auf Leitung 34 eingegeben werden, mit den befohlenen Achsenstellungen des gesteuerten Elements bezüglich aller Achsen verglichen werden, entlang derer das Element bewegt werden soll. Beispielsweise liegt ein Außerbereichs-Fehler vor, wenn die Differenz zwischen der tatsächlichen und der befohlenen Stellung zu einer erforderlichen Achsengeschwindigkeit führt, die außerhalb des Kapazitätsbereiches des Antriebsmotors liegt. Wenn ein Außerbereichs-Fehler vorliegt, wird die Logik 99 zur Identifizierung des Fehlers benutzt; sie setzt alle Interpolatoren in einen Halt-Zustand. Wenn die Interpolatoren auf Halt gesetzt sind, wird der Logikkreis 98 dazu verwendet. entsprechend den Anfangsschritten des logischen Diagramms von F i g. 5 die Register einzurichten, die Zähler zu stellen und das »Carry-Bit« zu bilden.
Wenn die Logik 94 anzeigt, daß kein Außerbereichs-Fehler vorliegt, geht der Testvorgang zur Logik % weiter. Dort laufen alle Zustände zusammen, welche das Erzeugen eines Nothaitsignals erforderlich machen. Die Vergleichslogik 97 vergleicht die tatsächlichen Zustände des Systems mit den eingegebenen Nothalt-Zuständen. Wenn sich beim Vergleich herausstellt, daß ein Ja-Zustand vorliegt, wird ein Haltesignal erzeugt. Bei Erzeugung des Haltesignals wird die Logik 101 dazu verwendet, den Grund des Halts zu identifizieren und alle Interpolatoren auf Halt zu stellen. Nachdem die Interpolatoren auf Halt gestellt sind, wird wiederum Λ.ι Logik 98 dazu verwendet, die Register, Zähler usw. zu stellen. Wenn die Vergleichslogik 97 anzeigt, daß kein Nothalt-Zustand vorliegt, schreitet die Datenverarbeitung zur Logik 98 vor. Die anhand von F i g. 5 beschriebene Verarbeitung der Daten wird erneut ausgeführt. Wenn eine zirkuläre Interpolation verwendet werden soll, folgt das logische Diagramm, das anhand der F i g. 6 beschrieben wird. Die in F i g. 6 gezeigte Logik erzeugt den Sinus und den Kosinus des Winkels Θ, der in F i g. 4 gezeigt ist Der Sinus und der Kosinus des Winkels θ werden beinötigt, da die Drehung des Vektors R, um den Winkel θ die sich ergebenden x-y-Komponenten als Sinus bzw. Kosinus von θ wiederspiegelt. Dies zeigen die Gleichungen 18 und 20, in denen YJR und XJR der Sinus von θ bzw. der Kosinus von θ darstellen. Die to Werte von θ werden durch die Logik 104 eingeführt. Die Logik 106 bestimmt dann, ob der Radius R dem System eingegeben ist oder nicht. Wenn kein Radius R vorliegt, tritt die Multiplizierlogik 107 in Funktion. Dort wird gemäß der Gleichung χ (0) = K ein Wert für den Radius geliefert Der sich ergebende Wert K ist der Veriängerungsfaktor für R bei dessen Drehung, wie in Gleichung 27 für Rn gezeigt. Er wird der Logik 109 zugeführt, wo der Winkel θ als Zielwinkel eingeführt
wird. Wenn am logischen Kreis 106 ein R-Wert vorliegt, wird der Logikkreis 106 dazu verwendet, χ (0) = K · R zu setzen. Danach führt der Kreis 109 wiederum θ als Zielwinkel ein. Für jeden Winkel verfolgt die Verarbeitung der Iterationsdaten in der in Fig. 6 gezeigten Art. Wenn σ positiv ist, geschieht die Verarbeitung durch den Logikkreis 128; wenn α negativ ist geschieht die Verarbeitung durch den Logikkreis 112.
Nachdem θ dem Zielwinkel eingegeben ist, wird die Logik 111 dazu verwendet, zu bestimmen, ob der Drehwinkel θ gegen den Uhrzeigersinn, d. h. negativ, oder im Uhrzeigersinn, d. h. positiv ist Wenn θ negativ ist. bildet der Addiererden Wert
ft+1 "■ ft" + Oi.
Die Vergleichslogik 113 vergleicht den Wert χ (i) mit NuIL Dabei wird bestimmt, ob der Wert von χ (i) positiv oder negativ ist Wenn ein negativer Wert ermittelt •^:rd, niirjut der Kreis 114 hiervon dss Kompliment, da bei digitaler Logik eine negative Zahl nicht verwendet werden kann. Nachdem die Logik 114 χ (i) positiv gemacht hat wird der Addierer 116 zur Ermittlung des Wertes
gleichslogik 111 übertragen. Das geschilderte Datenverarbeitungsverfahren wird für die nächste Iteration des Winkels tfwiederhott
Nun soll wieder auf die Logik Ul Bezug genommen werden. Wenn der Winkel θ größer als Null ist wird im Addierer 128 die Operation
ft+1 = ft— οι
ίο ausgeführt. Positive Werte von α werden also durch die Logik verarbeitet die sich an die Logik 112 anschließt; negative Werte werden von der Logik erfaßt die von der Logik 128 abzweigt Wenn der Wert ft+i ermittelt ist vergleicht die Logik 129 χ (I) mit Null. Dabei wird bestimmt ob χ größer oder kleiner als Null ist Wenn χ kleiner als Null ist ermitteln die negative Logik 131 und der Addierer 132 den Wert
\ erwendeu Wenn der Vergleich in der Stufe 113 positiv ausfällt errechnet der Addierer 117 den Parameter yn\. Sowohl beim Addierer 116 als auch beim Addierer 117 wird das 2~'fache dadurch erzeugt daß die Daten im Register um ein Bit nach rechts verschoben werden. Daher muß der Parameter Tr' nicht vom Vorprozessor 16 eingegeben werden.
Im wesentlichen in gleicher Weise wird der Parameter χ verarbeitet Es beginnt mit Logik 118, die / (i) mit Null vergleicht Dabei wird bestimmt ob y positiv oder negativ ist Wenn / negativ ist errechnen die logischen Kreise 119 und 121 den Wert
xy+,=x, + y,-2-'.
Wenn dagegen y positiv ist wird die Logik 122 zur Errechnung des Wertes
ΑΟ+ι -Xi-y,·· 2-'
verwendet. Die Logik 123 bringt dann die Zeiger auf den neuesten Stand. Dadurch wird angezeigt, welche Iteration ausgeführt wurde. Die Datenverarbeitung geht dann auf die Logik 124 über, wo eine Weiterleitung der Daten je nachdem stattfindet, ob der gesamte Winkel θ erfaßt wurde oder nicht. Der letzte Durchlauf wird dadurch bestimmt daß die Gesamtzahl der Durchläufe erfaßt wird, unabhängig davon, ob sie vom Kreis 121, 122,137 oder 138 eingegeben sind, und mit dem vorgegebenen Wert von /verglichen wird. Wenn die Zahl der Durchgänge gleich dem vorgegebenen Wert / ist oder diesen übersteigt wird ein Ausgangssignal abgegeben, das den letzten Durchgang anzeigt Wenn Daten für den gesamten Winkelbereich eingegeben sind, was beim letzten Schritt durch eine Anzeige bestätigt wird, errechnet der Addierer 126 den Ort des Mittelpunkts des Kreisbogens in absoluten Koordinaten, bezogen auf den Schnitt 0; 0 der Koordinatenachsen. Das System kehrt dann nach A zurück, wis in F i g. 7 gezeigt. Wenn der letzte Durchgang von der Logik 124 nicht angezeigt wird, wird die Datenverarbeitung zurück zur Ver
Wenn andererseits die Logik 129 anzeigt daß χ größer als Null ist errechnet der Addierer 133 den Wert
//+ι — yi—x,- 2~'·
Unabhängig von der Polarität von χ vergleicht die Logik 134 den Parameter / (I) mit Null. Dabei wird die positive oder negative Polarität von /festgestellt. Wenn /positiv ist errechnet der Addierer 138 den Wert
Wenn andererseits / negativ ist, errechnen die Logik 136 und der Addierer 137 den Wert
Xifi -χ/ —/i · 2-'.
Sowohl an den Addierer 137 als auch an den Addierer 138 schließt sich die Logik 123 an, worauf der letzte Durchgang ebenso bestimmt wird, wie dies für die Logik 121 und die Logik 122 beschrieben wurde.
Die in F i g. 6 gezeigte, bevorzugte Ausführungsform wird verwendet, wenn die zirkuläre Interpolation ausgeführt wird und ein Computer mit löschbarem Speicher,
d. h. ein software-System, verwendet wird. Eine bevorzugte Ausführungsform, die zur Durchführung der zirkulären Interpolation verwendet werden kann und ein hardware-System benutzt, ist in F i g. 8 gezeigt. Der zirkuläre hardware-Interpolator enthält eine Reihe von
so Schieberegistern 139, 141, 148, 149, 157 und 158. Die Schieberegister 139,148 bzw. 157 werden dazu verwendet, die Werte x*/,· und e zu speichern. Die Schieberegister 141 und 149 ermitteln die Werte /2-' und χ 2-'; das Register 158 speichert die Werte σ. Außerdem speichert ein Register 159 die Matrix des Iterationswinkcls Oi und ermittelt die Anzahl der Iterationen entsprechend der gewünschten Genauigkeit der Erzeugung von Sinus und Kosinus und führt diese in das c-Register 158 ein. Alle Register 139, 148 und 157 besitzen eine Vorzeichenkontrollc 167, 168 bzw. 169. Der logische Zustand der Vorzcichenkontrollc bestimmt ob der Plus- oder der Minuswert des entsprechenden gespeicherten Parameters dem entsprechenden Addierer 144,153 oder 162 zugeführt wird.
b-i Der Ausgang des ^Registers 139 ist an den Addierer 144 gekoppelt. Außerdem ist der Ausgang des /,-Registers 141 an den Addierer 144 über die Vorzeichcnkontrolle gekoppelt, die aus den Toren 142, 146 und 147
•»/+ι
di+i
ergibt. Wenn die Logik 173 zeigt, daß der Wert mx negativ ist, macht die Logik 176 den Wert mx positiv, indem das Zweierkompliment genommen wird. Auf diese Weise kann im Addierer 177 ein Verschieben stattfinden. Der Addierer 177 errechnet dann den Wert
besteht Die logischen Tore 142, 146 und 147 nehmen das Kompliment von 2, wenn der Wert y,■. ■ 2~' negativ ist, da eine negative Zahl nicht verschoben werden kann. Der Addierer 144 addiert die Werte x, und y, 2~', die er von den Registern 139 und 141 empfängt Auf diese Weise ist die Summe, die nach den Gleichungen 20 und 21 benötigt wird, das Ausgangssignal des Addierers 144.
Die Register 148 und 149 erzeugen zusammen mit dem Addierer 153 den Wert y, + χι · 2-'. Dies geschieht in der gleichen Weise, in der die Register 139, 141 mit dem Addierer 144 zusammenarbeiten. Außerdem liefern die Register 157 und 158 zusammen mit dem Addierer 162 die erforderlichen Werte von Θ. Das oi-Malnx-Register 159 gibt einen der festen Winkel σ in das o-Register 158 zu Beginn von jeder Iteration ein. Die zirkularen Interpolationsgleichungen 19,20 und 22 werden also mit dem in F i g. 8 dargestellten hardware-System gebildet.
Fig. 10 ist die bevorzugte Ausführungsform eines software-Systems. Es kann zur Ausführung der linearen Interpolation verwendet werden. Die bevorzugte Ausführungsform von F i g. 10 zeigt in größerem Detail den in F i g. 5 gezeigten linearen Interpolationsblock 86. Zu Beginn der linearen Interpolation wird die Anzahl der Iterationen D eingestellt, wie dies im Funktionsblock 171 angedeutet ist Dann entscheidet der Kreis 172, ob die ankommenden Daten für den Parameter m, oder my verarbeitet werden sollen. Wenn der Parameter mx ankommt, vergleicht der Kreis 173 mx mit Null. Er bestimmt, ob eine negative oder eine positive Zahl verarbeitet werden soll. Wenn die Steigung mx positiv ist, verarbeitet der Addierer 174 die Daten so, daß sich schließlich
Routine läuft aus, wie dies bei 185 angedeutet ist Hierzu 8 Blatt Zeichnungen
χ,+1
Xs — mx
Der entweder vom Addierer 174 oder vom Addierer 177 addierte Wert geht dann zur Auffrischungslogik 178 der Interpolatoren.
Zurück zur Vergleichslogik 172. Wenn die ankommenden Daten gemäß der Neigung my verarbeitet werden sollen, vergleicht die Logik 179 den Wert m, mit Null und bestimmt ob er positiv oder negativ ist. Wenn eine positive Steigung angezeigt wird, verarbeitet der Addierer 181 die Daten für den nächsten Wert y; wenn die Steigung my negativ ist, verarbeiten die Logik 182 und 183 die Daten für den nächsten Wert y. In der gleichen Art, wie die Steigung mx verarbeitet wird, werden die aufgefrischten Werte y und χ in die Auffrischungslogik 178 des Interpolators eingespeist. Die Logik 184 bestimmt, ob der letzte Durchlauf ausgeführt wurde. Die Ausführung des letzten Durchlaufes wird dadurch bestimmt, ob die Anzahl der Iterationen kleiner ist als die eingestellte Zählung oder nicht. Solange also der verglichene Wert negativ ist, wurde der letzte Durchlauf noch nicht angezeigt. Die Entscheidung »nein« wird auf den Vergleichskreis 172 gegeben; der Vorgang wird wiederholt. Sobald der Vergleich für den letzten Durchlauf zu einem Wert NuIi oder einem positiven Wert führt, ist der letzte Durchlauf angezeigt; die

Claims (3)

1 2 weise Vorschubbewegung eines Werkzeuges so zu steu- Patentansprüche: era, daß der einzelne Vorschubschritt eine Mindestschrittlänge aufweist, und am Ende eines bestimmten
1. Verfahren zur Bahnsteuerung eines Elementes Streckenabschnittes die Mindestschrittlänge so zu wähmittels linearer oder zirkularer Interpolation, bei 5 len, daß eine zu kleine Schrittlänge vermieden wird, dem die programmierten, durch die Koordinaten des Hierzu dient ein Vergleich zwischen dem bereits zu-Anfangs- und Endpunktes bestimmten Abschnitte rückgelegten Weg mit der Gesamtstrecke sowie eine der zu interpolierenden Geraden oder Kreisbögen Mindestschrittlogik, die den Restverstellweg in mehrere in eine Anzahl Einzelintervalle von bei einer vorbe- gleiche Mindestschritte unterteilt In diesem Zjsamstimmten Vorschubgeschwindigkeit gleicher Länge io menhang ist es auch bekannt (DE-OS 19 10 577), bereits unterteilt werden, die beim Abfahren des Abschnit- nach Ausführen der ersten Schrittlänge den zurückgetes aufaddiert werden, wobei die Steigung der Gera- legten Weg aufzuaddieren und mit dem noch zu verbleiden oder die Winkeldrehung eines Radius um den benden Restweg zu vergleichen. Auch mit einer anderen Mittelpunkt des Kreisbogens der Bahnsteuerung des bekannten Steuerung (DE-AS 20 52 757) soll der letzt-Elementes zugrunde liegt, dadurch gekenn- 15 auszuführende Schritt ein vorgegebenes Maß nicht unzeichnet, daß die Länge jedes Einzelintervalls terschreiten.
durch die während der Bahnsteuerung veränderbare Demgegenüber liegt der Erfindung die Aufgabe zu-
Vorschubgeschwindigkeit des Elementes bestimmt gründe, bei einem Verfahren der eingangs gerannten wird, daß nach Erreichen eines Restverstellweges Art den Realzeitbedarf weiter zu verringern. Diese Aufdie Bahnsteuerung nach Einzelintervallen beendet 20 gäbe ist durch die im Patentanspruch 1 gekennzeichnewird und daS das Element dann in einem einzigen ten Merkmale gelöst Schritt zum Koordinatenendpunkt geführt wird. Durch die Erfindung wird die Realzeit minimalisiert,
2. Verfahren nach Anspruch 1, dadurch gekenn- die zur Ausführung des Verfahrens erforderlich ist Das zeichnet, daß das Element in einem einzigen Schritt Verfahren verwendet wahlweise lineare oder zirkuläre zum Koordinatenendpunkt geführt wird, wenn der 25 Interpolation, so daß jeweils die Interpolationsart ver-Restverstellweg innerhalb des anderthalbfachen wendet wird, die am wenigsten Datenverarbeitung er-Wertes des Einzelintervalls Hegt fordert. Bei der erfindungsgemäßen Interpolation benö-
3. Verfahren nach Anspruch 1 oder 2, dadurch tigt die Realzeitrechnung weniger Additionen und Mulgekennzeichnet, daß die Einzelintervalle bei linearer tiplikationen. Zusätzlich kann die Vorschubgeschwin-Interpolation nach der Gleichung 30 digkeit bei der Interpolation verändert werden, da die
Parameter, welche den Weg des Elements definieren,
AD = — = ^ «= Id — JL·] ι ) unabhängig von der Berechnung der Vorschubge-/V- = (IT ™ L 60 Z) J schwindigkeit sind; nur die Geschwindigkeit des gesteuerten Elements wird in Übereinstimmung mit der Vorberechnet werden, in der 35 Schubgeschwindigkeit verändert ohne daß der Weg des
gesteuerten Elements erneut berechnet werden müßte.
AD *· Einzelintervall (cm) Die Erfindung wird im folgenden anhand der in der
D — Streckenabschnitt (cm) Zeichnung dargestellten Ausfuhrungsbeispiele näher
N = Anzahl der Einzelintervalle erläutert; es zeigt
T = Zeitdauer zum Durchfahren eines Einzelin- 40 F i g. 1 eine schematische Darstellung einer Vorrich-
tervallsfof tung zum Durchführen des Verfahrens,
t — Zeitdauer zum Durchfahren eines Strek- F i g. 2 eine Aufstellung der Eingangsdaten und der
kenabschnitts (s) vorverarbeiteten Datenparameter, die dem linearen und
{ = Vorschubgeschwindigkeit (cm/min) dem zirkulären Interpolator eingegeben werden,
/0 = Multiplikationsfaktor für die Vorschubge- 45 Fig. 3 eine Erläuterung der linearen Interpolation,
schwindigkeit (—). F i g. 4 eine Erläuterung der zirkulären Interpolation,
Fig.5 eine Steuerlogik zur Eingabe der Daten und
zur Wahl der linearen oder zirkulären Interpolation,
F i g. 6 eine bevorzugte Ausführungsform eines zirku-
so laren Interpolators,
Die Erfindung betrifft ein Verfahren zur Bahnsteue- F i g. 7 eine Steuerlogik, welche die Betriebsbereit-
rung eines Elementes mittels linearer oder zirkularer schaft der Vorrichtung verifiziert,
Interpolation gemäß dem Oberbegriff des Patentan- Fig. 8 eine bevorzugte Ausführungsform eines zirku-
spruchs 1. laren hardware-Interpolators,
Ein solches Verfahren ist aus W. Simon, Die numeri- 55 F i g. 9 die Art, in der Kurven durch eine Reihe kurzer,
sehe Steuerung von Werkzeugmaschinen, Karl Hanser gerader Abschnitte simuliert werden können,
Verlag München, 1963, Seiten 195—201 bekannt. Dort Fig. 10die bevorzugte Ausführungsform eines linea-
ist ein Interpolationsverfahren erläutert, bei dem die ren software-Interpolators.
Steigung eines Streckenabschnitts bzw. die Drehung ei- Wie in F i g. 1 dargestellt, enthält das System einen
ncs Kreisradius zur Herleitung von Interpolationsbezie- 00 Bandleser 11, der zur Eingabe der Daten in das System
hungen dient. Dabei wird ein Streckenabschnitt in ein von einem Lochstreifen 12 dient. Der Streifen wird von
gan/.zahligcs Vielfaches von Zeitintervallcn unterteilt. einer Vorratsrolle 13 auf eine Aufnahmcrollc 14 in be-
Der Realzeitbedarf für die Rechenvorgänge ist vcrrin- kanntcr Weise übertragen. Der Streifen 12 trügt eine
gen, doch ist eine Veränderung der Vorschubgeschwin- Reihe von Löchern oder magnetischen Markierungen,
ili^koit wührend des Intorpolationsvnrgangs nicht mög- t>r> die in biniircr Weise den Weg darstellen, welchem das
lieh. gesteuerte Element folgen soll. Die auf den Streifen 12
Bei numerischen Steuerungen für Werkzeugmaschi- aufkodierten Daten enthalten die Koordinaten des zu
nen ist es ferner bekannt (DE-OS 23 46 318), die schritt- verfolgenden Weges, die Art der Interpolation, die bei
DE2636148A 1975-08-12 1976-08-11 Verfahren zur Bahnsteuerung eines Elementes mittels linearer oder zirkularer Interpolation Expired DE2636148C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/603,986 US4031369A (en) 1975-08-12 1975-08-12 Interpolation and control apparatus and method for a numerical control system

Publications (2)

Publication Number Publication Date
DE2636148A1 DE2636148A1 (de) 1977-02-24
DE2636148C2 true DE2636148C2 (de) 1985-03-21

Family

ID=24417714

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2636148A Expired DE2636148C2 (de) 1975-08-12 1976-08-11 Verfahren zur Bahnsteuerung eines Elementes mittels linearer oder zirkularer Interpolation

Country Status (6)

Country Link
US (1) US4031369A (de)
JP (1) JPS5222679A (de)
DE (1) DE2636148C2 (de)
FR (1) FR2321146A1 (de)
GB (1) GB1532907A (de)
IT (1) IT1067789B (de)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4179602A (en) * 1976-07-16 1979-12-18 Shin Meiwa Industry Co., Ltd. Method and system of velocity control for automatic welding apparatus
JPS586959B2 (ja) * 1976-08-20 1983-02-07 日本電信電話株式会社 曲線発生器
JPS597963B2 (ja) * 1977-06-28 1984-02-22 沖電気工業株式会社 数値制御における円弧補間回路
JPS5433980A (en) * 1977-08-19 1979-03-13 Oki Electric Ind Co Ltd N c system and devic
JPS54127098A (en) * 1978-03-24 1979-10-02 Toshiba Machine Co Ltd Method of deciding direction of tool on basis of axial moving data and tool turn controller that use said method
US4284943A (en) * 1979-02-13 1981-08-18 Electric Machinery Mfg. Company Apparatus and method for controlling the speed of an induction motor in a closed-loop system
JPS5642809A (en) * 1979-09-14 1981-04-21 Tokico Ltd Robot
US4433210A (en) * 1980-06-04 1984-02-21 Federal Screw Works Integrated circuit phoneme-based speech synthesizer
JPS5750010A (en) * 1980-09-08 1982-03-24 Fanuc Ltd Numeric control system
JPS5769314A (en) * 1980-10-13 1982-04-28 Fanuc Ltd Numerical control system
JPS584377A (ja) * 1981-03-18 1983-01-11 株式会社安川電機 関節形産業用ロボツトの制御装置
DE3113970A1 (de) * 1981-04-07 1982-11-04 Dr. Johannes Heidenhain Gmbh, 8225 Traunreut Numerische bahnsteuerung fuer eine werkzeugmaschine
US4423481A (en) * 1981-05-26 1983-12-27 Rca Corporation Numerically controlled method of machining cams and other parts
FR2514530B1 (fr) * 1981-10-09 1987-06-19 Lemoine Cie Ets Procede de saisie de donnees representatives de la forme d'un objet
US4508953A (en) * 1982-04-27 1985-04-02 Kabushiki Kaisha Kobe Seiko Sho Method of multi-layer welding
DE3244307A1 (de) * 1982-11-30 1984-05-30 Siemens AG, 1000 Berlin und 8000 München Robotersteuerung
JPS6020209A (ja) * 1983-07-14 1985-02-01 Matsushita Electric Ind Co Ltd ロボツトの補間制御方法
JPS60107106A (ja) * 1983-11-15 1985-06-12 Mitsubishi Electric Corp 曲線補間装置
US4763293A (en) * 1984-02-27 1988-08-09 Canon Kabushiki Kaisha Data processing device for interpolation
JPS60195600A (ja) * 1984-03-19 1985-10-04 三洋電機株式会社 パラメ−タ内插方法
JPS61161517A (ja) * 1985-01-09 1986-07-22 Toko Inc 補間装置
US4680519A (en) * 1985-09-23 1987-07-14 General Electric Co. Recursive methods for world-to-joint transformation for a robot manipulator
US5025405A (en) * 1986-08-15 1991-06-18 Hewlett-Packard Company Method of interpolating pixel values
JPH0782554B2 (ja) * 1986-09-10 1995-09-06 フアナツク株式会社 曲面加工方法
CA1282142C (en) * 1986-10-21 1991-03-26 Sony Corporation Method for generating offset surface data
JPS63155206A (ja) * 1986-12-18 1988-06-28 Fanuc Ltd 数値制御方式
CA1293812C (en) * 1987-10-26 1991-12-31 Tetsuzo Kuragano Method and system for generating free curved surface
US5047966A (en) * 1989-05-22 1991-09-10 Airfoil Textron Inc. Airfoil measurement method
JP2843362B2 (ja) * 1989-07-06 1999-01-06 東芝機械株式会社 Nc装置の楕円補間制御方法およびnc装置
US5175701A (en) * 1989-07-25 1992-12-29 Eastman Kodak Company System for performing linear interpolation
DE3940621A1 (de) * 1989-12-08 1991-06-13 Bosch Gmbh Robert Verfahren zur numerischen steuerung einer drehmaschine
JPH03217907A (ja) * 1990-01-23 1991-09-25 Toshiba Mach Co Ltd 円弧補間軌跡表示機能を有する数値制御方法およびその装置
EP0477398B1 (de) * 1990-09-25 1994-12-14 Dr. Johannes Heidenhain GmbH Verfahren für die Bearbeitung von Werkstücken mit numerisch gesteuerten Maschinen
ES2083409T3 (es) * 1990-09-25 1996-04-16 Heidenhain Gmbh Dr Johannes Procedimiento para determinar el contorno de trayectoria de herramientas para maquinas de control numerico.
JPH04269152A (ja) * 1991-02-21 1992-09-25 Toshiba Mach Co Ltd 数値制御工作機械における内円切削制御装置
US5416716A (en) * 1993-03-30 1995-05-16 Gerber Garment Technology, Inc. Contour builder
US5508596A (en) * 1993-10-07 1996-04-16 Omax Corporation Motion control with precomputation
US5726896A (en) * 1995-08-30 1998-03-10 University Of Utah Research Foundation Method and system for spline interpolation, and their use in CNC
EP1151397B1 (de) * 1998-07-10 2003-09-24 Landmark Graphics Corporation Null-linien basierte radiale interpolation für gitternetzdaten
US6820074B1 (en) 1998-07-10 2004-11-16 Landmark Graphics Corporation Null-line based radial interpolation of gridded data
CN101687332B (zh) * 2006-08-25 2012-07-04 记忆批发公司 手持式图案产生装置及其使用方法
CA2740102A1 (en) * 2008-10-09 2010-04-15 Making Memories Hands free pattern creating device
CN102193530B (zh) * 2010-03-10 2012-12-19 中国科学院自动化研究所 一种基于双核构架协同工作的数控系统及控制方法
US8699174B2 (en) * 2011-08-29 2014-04-15 Quantum Corporation Control system for tape drive to compensate for system disturbances without use of feed-forward sensor
US8904912B2 (en) 2012-08-16 2014-12-09 Omax Corporation Control valves for waterjet systems and related devices, systems, and methods
US10859997B1 (en) 2017-12-04 2020-12-08 Omax Corporation Numerically controlled machining
US11554461B1 (en) 2018-02-13 2023-01-17 Omax Corporation Articulating apparatus of a waterjet system and related technology
WO2021127253A1 (en) 2019-12-18 2021-06-24 Hypertherm, Inc. Liquid jet cutting head sensor systems and methods
EP4127527A1 (de) 2020-03-24 2023-02-08 Hypertherm, Inc. Hochdruckdichtung für ein flüssigkeitsstrahlschneidsystem
KR20230005840A (ko) 2020-03-30 2023-01-10 하이퍼썸, 인크. 다기능 접속 종방향 단부들을 갖는 액체 제트 펌프를 위한 실린더

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3634661A (en) * 1968-09-26 1972-01-11 Giddings & Lewis Data processing method for minimizing potential errors occurring during linear and circular interpolation
US3720814A (en) * 1970-09-18 1973-03-13 Warner Swasey Co Direct numerical control system
DE2052757C3 (de) * 1970-10-28 1974-10-17 Siemens Ag, 1000 Berlin Und 8000 Muenchen Einrichtung zum numerischen Steuern der Bewegung einer Werkzeugmaschine
US3728528A (en) * 1971-03-24 1973-04-17 Allen Bradley Co Circular interpolation by finite differences
US3740535A (en) * 1971-08-16 1973-06-19 Westinghouse Electric Corp Numerical contouring control system
US3864613A (en) * 1972-12-29 1975-02-04 Hymie Cutler Path generating system for numerical control apparatus
US3882304A (en) * 1973-05-04 1975-05-06 Allen Bradley Co Parametric interpolation of three-dimensional surfaces
JPS5024686A (de) * 1973-07-09 1975-03-15
US3916175A (en) * 1973-08-29 1975-10-28 Westinghouse Electric Corp Programmable digital frequency multiplication system with manual override
DE2346318A1 (de) * 1973-09-14 1975-03-27 Bosch Ind Ausruestung Numerische steuerung fuer werkzeugmaschinen

Also Published As

Publication number Publication date
FR2321146A1 (fr) 1977-03-11
JPS5222679A (en) 1977-02-21
FR2321146B1 (de) 1978-11-03
US4031369A (en) 1977-06-21
IT1067789B (it) 1985-03-16
GB1532907A (en) 1978-11-22
DE2636148A1 (de) 1977-02-24

Similar Documents

Publication Publication Date Title
DE2636148C2 (de) Verfahren zur Bahnsteuerung eines Elementes mittels linearer oder zirkularer Interpolation
DE3406255C2 (de)
DE102014018973B4 (de) Numerische Steuerung zum Glätten des Werkzeugwegs im Betrieb basierend auf Daten in Tabellenform
DE2422102A1 (de) Numerische steuerung zur erzeugung einer parabolischen auskehlung
DE102017001783B4 (de) Numerische Steuervorrichtung, die eine Erhöhung der Anzahl Analyseziffern eines Programmbefehls ermöglicht
DE2330054A1 (de) Verfahren und geraet zur steuerung der bewegung eines elementes einer maschine, insbesondere eines automaten oder bedienungsgeraetes
DE112017000203T5 (de) Numerische Steuerung und numerisches Steuerungsverfahren
DE102011108282A1 (de) Numerische Steuerung für eine Mehrachsenmaschine zum Bearbeiten einer geneigten Bearbeitungsebene
DE1219717B (de) Digital arbeitender Interpolator
DE112012006403T5 (de) Numerik-Steuervorrichtung
DE2114225C2 (de) Digitale Funktionsgeneratoranordnung
DE2713869A1 (de) Positioniersystem in einer numerisch gesteuerten vorrichtung
DE2338880A1 (de) Verfahren und vorrichtungen zur steuerung der beweglichen teile einer werkzeugmaschine durch ein numerisches umriss- oder punkt-fuer-punkt-steuerungssystem, wobei zwei teile der maschine unabhaengig voneinander entlang einer gemeinsamen achse bewegt werden koennen
DE112016007167B4 (de) Numerische Steuervorrichtung
DE1588093A1 (de) Anordnung zum automatischen Steuern von Werkzeugmaschinen
DE2632151C3 (de) Positioniersteuerung
DE2103049C3 (de) Vorrichtung eines numerisch gesteuerten Folgesystems
DE1763180A1 (de) Numerisches Steuersystem
DE112021005488T5 (de) Numerische steuervorrichtung
DE2219705B2 (de) Numerisch arbeitende programmsteuerung
DE3688395T2 (de) Verfahren zur flaechenbehandlung.
DE1549634B1 (de) Anordnung zur numerischen bahnsteuerung insbesondere bei einer werkzeugmaschine
DE2226547A1 (de) Proportional Interpolator fur Mehr achsenmaschinen
DE4102688A1 (de) Numerisch gesteuertes vorschubgeraet und verfahren zum ausfuehren einer vorschubtaetigkeit
DE2418360B2 (de) Numerische werkzeugkorrektur bei einer werkzeugmaschinensteuerung

Legal Events

Date Code Title Description
D2 Grant after examination
8363 Opposition against the patent
8325 Change of the main classification

Ipc: G05B 19/415

8327 Change in the person/name/address of the patent owner

Owner name: DYNAPATH SYSTEMS, INC., DETROIT, MICH., US

8328 Change in the person/name/address of the agent

Free format text: HAUCK, H., DIPL.-ING. DIPL.-WIRTSCH.-ING., 8000 MUENCHEN SCHMITZ, W., DIPL.-PHYS. GRAALFS, E., DIPL.-ING., 2000 HAMBURG WEHNERT, W., DIPL.-ING., 8000 MUENCHEN DOERING, W., DIPL.-WIRTSCH.-ING. DR.-ING., PAT.-ANW., 4000 DUESSELDORF

8331 Complete revocation