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