Time-related block ahead limiting
Definition of limiting
In the case of time-related block ahead limiting, the maximum permissible decoding lead is defined by specifying a time in seconds, i.e. The limit defines by how many seconds the decoding of program execution (interpolation) may be ahead.
In this case, only the motion time of motion blocks (such as G00, G01, G02, G03) is considered as well as the dwell time (G04, #TIME). Other time-consuming NC functions such as M functions, etc. are not considered.
The decoder block ahead limiting function is based on the ideal programmed command velocity and the current block length. This results in particular in deviations in functions which influence contours and dynamics, such as:
- Real-time influences of velocity via FEEDHOLD, Override
- Velocity weightings, e.g. via #VECTOR LIMIT
- Deviation if the programmed velocity cannot be reached, for example due to the geometry path
- Contour influences by polynomial smoothing or spline interpolation
In order to estimate the motion time for block ahead limiting realistically, the interpolation supplies a mean feed velocity (average velocity) of the next motion blocks to be executed.
The average velocity includes curvature-dependent dynamic limits and real-time influences such as override and feedhold. The calculated motion time is then based on the minimum average velocity and the feed valid in the block at the time of decoding (F word, rapid traverse)-
The following conditions apply to calculation of the motion time:
- Linear and circular blocks are considered.
- When motion time on the path is determined, only feed axes are considered (#FGROUP)
- If only slave axes are programmed in the block, the slowest axis is used to calculate motion time.
Restrictions:
- Independent axis motions (INDP_SYN. INDP_ASYN) and the "Z" amount of helical motions are not considered.
- No consideration given to M/H functions, tool changes, etc.
Selecting and deselecting time-related block ahead limiting is executed analogous to block-related block ahead limiting either
- in the NC program by the special V.G variable V.G.MAX_TIME_AHEAD = <value in [sec]> or
- generally by the channel parameter P-CHAN-00269: max_time_ahead <value in [10-6 sec]>
Status display
When decoding reaches the block ahead limit, the decoder waiting state is indicated by the following status bit. The status bit is cancelled when decoding is continued.
0x00200000 TIME_AHEAD_LOCK_ACTIVE
The display datum can be indicated in the diagnostic data.
Internal sequence
Calculating the relevant motion times takes place completely in the decoder.
As a result, the decoder estimates a minimum execution time = path length/velocity for each (motion) block.
The decoder stores the block count and the time required in a table for each motion block that is output. Together with the block count indicated by the interpolator, the time lead relative to the motion block last processed is then determined via the table.
If this delta is greater than the defined permissible limit, the decoder interrupts its execution and waits before continuing decoding until the interpolator again falls below the defined limit, i.e. has in fact "caught up" again.
Effectiveness
Block ahead limiting is only active when the interpolator block supply (Monitored operating mode, section “Time-related block ahead limiting”) is ensured.
Programing Example
Time-related block ahead limiting
Time-related block ahead limiting by definition in the NC program
%MAIN
N190 #HSC[ MODE 1 CONTERROR 0.01]
N270 G54 G90
N280 V.G.MAX_TIME_AHEAD = 2 ;Select block ahead limiting 2 seconds
…
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 ;Deselect block ahead limiting
…
N999999 M30