Unabhängige Achsen

Bei der Programmierung s.g. unabhängiger Achsen werden zwei Betriebsmodis unterschieden:

Unabhängige Achsen 1:
Abbildung 19-1: Prinzipielles Bewegungsschema Bahnachsverbund/unabhängige Achsen

Bei unabhängigen Achsen werden keine Verschiebungen berücksichtigt.

Der additive Handsatzbetrieb (G201/G202) mit einer unabhängigen Achse ist möglich.

Syntax zur Programmierung unabhängiger Achsen:

<Achsname> [ INDP_SYN | INDP_ASYNG90 | G91G00 | G01FEED<expr> | TIME<expr> |
FEED_MAX_WEIGHT <expr> POS <expr> [SLOPE_PROFIL<expr>]
{M<expr>} {H<expr>} ]

<Achsname> Name der unabhängigen Achse

INDP_SYN Kennung für die synchrone (satzweise) unabhängige Achsbewegung. Übergang zum nächsten Satz erfolgt erst dann, wenn alle Achsen ihre Endpositionen erreicht haben. Muß immer als erstes Schlüsselwort programmiert sein.

INDP_ASYN Kennung für die asynchrone (satzübergreifende) unabhängige Achs-bewegung. Keine Synchronisierung auf Endpositionen. Die Synchronisierung erfolgt durch einen speziellen Befehl (#WAIT INDP) oder durch Programmierung der unabhängigen Achse als Bahnachse. Muß immer als erstes Schlüsselwort programmiert sein.

G90 / G91 Absolut- / Relativmaß

G00 / G01 Eilgang- / Linearinterpolation

FEED<expr> Achsspezifischer Vorschub in Wegeinheiten/min

TIME<expr> Achsspezifische Verfahrzeit in s

FEED_MAX_WEIGHT<expr> Gewichtungsfaktor in % bezogen auf den achsspezifischen maximalen Vorschub. Es sind nur Gewichtungswerte kleiner 100% erlaubt. (gemäß G194, Kapitel 4.25)

POS<expr> Achsposition

SLOPE_PROFIL<expr> Slope-Profiltypen (0, 1, 2) (gemäß #SET SLOPE PROFIL, Kapitel) Wenn kein Slopetyp programmiert ist, wird per Default der Slopetyp aus dem Kanalparametersatz gesetzt.

M<expr> Achsspezifische M-Funktion

H<expr> Achsspezifische H-Funktion

Achsspezifische M/H-Funktionen können auch ohne die Programmierung einer Bewegung an eine unabhängige Achse ausgegeben werden. Dazu ist zusätzlich nur die Kennung INDP_SYN bzw. INDP_ASYN erforderlich:

<Achsname> [ INDP_SYN | INDP_ASYNM<expr> {M<expr>} H<expr> {H<expr>} ]

<Achsname> Name der unabhängigen Achse

INDP_SYN/INDP_ASYN Kennung für eine unabhängige Achse

M<expr> Achsspezifische M-Funktion

H<expr> Achsspezifische H-Funktion

Die Synchronisation bestimmter asynchroner Achsbewegungen (INDP_ASYN) wird erzwungen durch den Befehl:

#WAIT INDP [ <Achsname> { ,<Achsname> } ]

<Achsname> Name der asynchronen Achse

Unabhängige Achsen 2:

Wird eine asynchrone Achse vor oder ohne dem entsprechenden #WAIT INDP [ ] erneut programmiert, so wird die Synchronisation implizit im Interpolator durchgeführt.

Die Synchronisation von allen momentan aktiven asynchronen Achsbewegungen (INDP_ASYN) wird erzwungen durch den Befehl:

#WAIT INDP ALL 

Programmierbeispiel

: 
N10 X10 Y11 Z[INDP_SYN POS50 G01 FEED100 G90] (N10 ist beendet, wenn X,)
(Y und die unabhängige)
(synchr. Z-Achse ihre Be-)
(wegung beendet haben)
N20 X20 Y22 (N20 wird ausgeführt, nachdem alle Bewegungen in)
(N10 beendet sind)
N30 X5 Y10 Z[INDP_ASYN POS500 G01 FEED200 G90] (N30 ist beendet, wenn X)
(und Y ihre Bewegung)
(beendet haben; die unab-)
(hängige asynchrone Z-)
(Achse fährt weiter)
N40 X20 Y30 (N40 wird interpoliert; die asynchrone unab-)
(hängige Z-Achse fährt weiter)
N50 #WAIT INDP[Z] (Erzwungene Synchronisierung der Z-Bewegung)
(aus N30)
N60 X30 Y40 Z60 (N60 wird mit X, Y, Z im Bahnverbund interpoliert,)
(wenn in N50 die Z-Achse synchronisiert wurde)
N70 Z[INDP_SYN M50] (Ausgabe von M50 über unabhängige Z-Achse)
N80

Programmierbeispiel

N10 X10 Y11 Z[INDP_ASYN POS500 G01 FEED200 G90] (N10 wird interpoliert,)
(die unabhängige asyn-)
(chrone Z-Achse fährt)
(weiter)
N20 X20 Y22 (N20 wird interpoliert, die unabhängige asynchrone Z-)
(Achse fährt weiter))
N30 Z550 (Implizite Synchronisation der Z-Bewegung von N10 bevor)
(Bewegung Z550 begonnen wird)
N40 X20 Y30 Z60 (N40 wird interpoliert)
N50
Unabhängige Achsen 3:

Wird die Achse einer vorbelegten achsspezifischen M/H-Funktion im gleichen NC-Satz als unabhängige Achse programmiert, so wird eine Fehlermeldung ausgegeben.
Beispiel:M10 ist X-achsspezifisch vorbelegt (m_default_outp_ax_name[10] x):
N10 M10X [INDP_SYN G01 G90 POS10 FEED1000 M7]
|_____| <- Fehler!