# Zeitbezogene Vorlaufbegrenzung

## Definition der Begrenzung

Bei der zeitbezogenen Vorlaufbegrenzung wird der maximal zulässige Decodiervorlauf durch die Angabe einer Zeit in Sekunden festgelegt. Die Begrenzung bestimmt, wie viele Sekunden die Decodierung der Programmausführung (Interpolation) voraus sein darf.

Hierbei wird ausschließlich die Verfahrzeit von Bewegungssätzen (wie G00, G01, G02, G03) sowie die Verweilzeit (G04, #TIME) betrachtet. Andere zeitverbrauchende NC-Funktionen, wie z.B. M-Funktionen werden nicht berücksichtigt.

Die Vorlaufbegrenzung der Decodierung basiert auf der programmierten idealen Sollgeschwindigkeit und der aktuellen Satzlänge. Hieraus ergeben sich insbesondere Abweichungen bei Funktionen, welche die Kontur- und Dynamik beeinflussen, wie z.B.:

- Echtzeitbeeinflussungen der Geschwindigkeit über FEEDHOLD, Override
- Gewichtungen der Geschwindigkeit, z.B. über #VECTOR LIMIT
- Abweichung, falls die programmierte Geschwindigkeit nicht erreicht werden kann, z. B. aufgrund der zu fahrenden Geometrie
- Konturbeinflussungen durch Polymonüberschleifen oder Splineinterpolation

Damit die Verfahrzeit für die Vorlaufbegrenzung dennoch realistisch abgeschätzt werden kann, stellt die Interpolation eine gemittelte Vorschubgeschwindigkeit (Durchschnittsgeschwindigkeit) der nächsten auszuführenden Verfahrsätze zur Verfügung.

In der Durchschnittsgeschwindigkeit sind krümmungsabhängige Dynamikbegrenzungen und Echtzeiteinflüsse wie Override und Feedhold berücksichtigt. Die berechnete Verfahrzeit basiert dann auf dem Minimum von Durchschnittsgeschwindigkeit und dem zum Decodierzeitpunkt im Satz gültigen Vorschub (F-Wort, Eilgang).

Für die Berechnung der Verfahrzeit gelten folgende Bedingungen:

- Es werden Linear- und Zirkularsätze betrachtet.
- Bei der Ermittlung der Verfahrzeit auf der Bahn werden nur Vorschubachsen (#FGROUP) berücksichtigt
- Sind nur Mitschleppachsen im Satz programmiert, wird bei der Berechnung der Verfahrzeit die langsamste Achse verwendet.

Restriktionen:

- Unabhängige Achsbewegungen (INDP_SYN. INDP_ASYN) und der "Z"-Anteil von Helikalbewegungen werden nicht berücksichtigt.
- Keine Berücksichtigung von M/H-Funktionen, Werkzeugwechseln etc.

Die An-/Abwahl der zeitbezogenen Vorlaufbegrenzung erfolgt analog zur satzbezogenen Vorlaufbegrenzung entweder

- im NC-Programm durch die spezielle V.G-Variable V.G.MAX_TIME_AHEAD = <Wert in [sek.]> oder
- generell durch den Kanalparameter P-CHAN-00269: max_time_ahead <Wert in [10-6 sek.]>

## Statusanzeige

Wenn die Decodierung die zeitbezogene Vorlaufgrenze erreicht hat, wird der Wartezustand des Decoders durch nachfolgendes Statusbit angezeigt. Bei Fortsetzung der Decodierung wird das Statusbit wieder zurückgenommen.

0x00200000 TIME_AHEAD_LOCK_ACTIVE

Das Anzeigedatum kann in den Diagnosedaten angezeigt werden.

## Interner Ablauf

Die Berechnung der relevanten Verfahrzeiten wird vollständig im Decoder durchgeführt.

Der Decoder schätzt für jeden (Verfahr-)Satz hierzu eine minimale Ausführungszeit = Bahnlänge / Geschwindigkeit ab.

Der Decoder hält in einer Tabelle für jeden ausgegebenen Verfahrsatz den Blockcount und die benötigte Zeit. Mit dem vom Interpolator angezeigten Blockcount wird dann über die Tabelle der Zeitvorlauf zum zuletzt verarbeiteten Verfahrsatz ermittelt.

Ist dieses Delta größer als die festgelegte zulässige Begrenzung, unterbricht der Decoder seine Bearbeitung und wartet so lange mit der Fortsetzung der Decodierung, bis der Interpolator die festgelegte Begrenzung wieder unterschreitet; also wieder "aufgeholt" hat.

## Wirksamkeit

Die Vorlaufbegrenzung ist nur dann wirksam, wenn die Satzversorgung des Interpolators (Überwachter Betriebsmodus, Kapitel „Zeitbezogene Vorlaufbegrenzung“) gewährleistet ist.

## Programmierbeispiel

Zeitbezogene Vorlaufbegrenzung

Zeitbezogene Vorlaufbegrenzung über Definition im NC-Programm

%MAIN

N190 #HSC[ MODE 1 CONTERROR 0.01]

N270 G54 G90

N280 V.G.MAX_TIME_AHEAD = 2 ;Anwahl Vorlaufbegrenzung 2 Sekunden

…

N320 #HSC ON

N47200: G1 F4000 Y597.771 Z-5.596

N47210 Y597.343 Z-5.205

N47220 Y596.911 Z-4.861

N47230 Y596.475 Z-4.561

N47240 Y596.067 Z-4.321

N47250 Y595.643 Z-4.112

N47260 Y595.278 Z-3.965

N47270 Y594.905 Z-3.841

N47280 Y594.524 Z-3.747

N47290 Y594.136 Z-3.683

…

N47440 Y589.152 Z-5.735

N47450 Y588.76 Z-6.156

N47460 Y588.235 Z-6.767

N47470 Y587.299 Z-7.889

N47480 Y587.034 Z-8.198

N47490 Y586.768 Z-8.463

N47500 Y586.492 Z-8.686

N47510 Y586.235 Z-8.853

N47520 Y585.994 Z-8.971

N47530 Y585.791 Z-9.039

N475403 V.G.MAX_TIME_AHEAD = 0 ;Abwahl Vorlaufbegrenzung

…

N999999 M30

## Weiterführende Informationen

- Programmbeispiele