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.
Programming Example
Time-related block ahead limiting