DE2636148C2 - Verfahren zur Bahnsteuerung eines Elementes mittels linearer oder zirkularer Interpolation - Google Patents
Verfahren zur Bahnsteuerung eines Elementes mittels linearer oder zirkularer InterpolationInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/18—Numerical 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/41—Numerical 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/4103—Digital 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
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/
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
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
χ,+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. 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
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)
| 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)
| 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 |
-
1975
- 1975-08-12 US US05/603,986 patent/US4031369A/en not_active Expired - Lifetime
-
1976
- 1976-07-28 GB GB31480/76A patent/GB1532907A/en not_active Expired
- 1976-08-10 FR FR7624378A patent/FR2321146A1/fr active Granted
- 1976-08-10 IT IT7626176A patent/IT1067789B/it active
- 1976-08-11 DE DE2636148A patent/DE2636148C2/de not_active Expired
- 1976-08-12 JP JP51095463A patent/JPS5222679A/ja active Pending
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 |