How HEIDENHAIN TNC Tool Management Works – tool_p.tch Pocket Table + TOOL.T Tool Table + L/R Compensation + Tool Life

Many engineers moving from FANUC to HEIDENHAIN (TNC) get stuck at the very first hurdle: “where do I set the tool offset?” On FANUC you write G43 Hxx for length and Dxx with G41/G42 for radius. TNC is different – it keeps every tool’s geometry (length L, radius R, type, life) in a tool table TOOL.T, and “which tool sits in which magazine pocket” in a separate pocket table TOOL_P.TCH. The control applies the offsets automatically; in the program you only write Txx + M6 to change the tool.

This article follows the two-table mechanism shared across TNC 320 / 620 / 640 / iTNC 530 / TNC7. Exact soft-key names and how tool-life monitoring is triggered vary slightly by version – those points are flagged, so check your machine’s manual before acting.

One line: tool geometry lives in TOOL.T (one row per tool); magazine positions live in TOOL_P.TCH (one row per pocket, P0 is always the spindle); the program calls T number + M6, and length/radius compensation is taken automatically from TOOL.T – no G43 needed.

1. What TNC Tool Management Is (vs the FANUC approach)

TNC’s tool management is “data-driven”: all tool info lives in two tables, and both the program and the PLC read those tables, instead of hard-coding offset values into every block.

Overview of HEIDENHAIN TNC two-table tool management: TOOL.T tool table (one row per tool) maps via TOOL_P.TCH pocket table (one row per pocket) to the magazine and spindle; program calls with T + M6
ItemFANUCHEIDENHAIN TNC
Length compG43 Hxx + offset no.control reads L from TOOL.T automatically
Radius compDxx + G41/G42control reads R from TOOL.T automatically
Magazine positionparameters / PLCTOOL_P.TCH pocket table (P to T)
Tool changeTxx M6Txx M6 (same)

The key difference: on FANUC the offset hangs on an offset number and is called explicitly in the program; on TNC the offset hangs on the tool number and takes effect automatically after the tool is changed. So if you edit a tool’s L in TOOL.T, the next time that tool is mounted the new value is used.

2. The Two Core Tables: TOOL.T and TOOL_P.TCH

Both tables normally live in the TNC:\TABLE\ directory (the path can vary slightly by version; older controls name the tool table TOOL.T and the pocket table TOOL_P.TCH; TNC7 keeps the manual name tool_p.tch).

  • TOOL.T (tool table): one row per tool, holding that tool’s geometry and life data. Row 0 is usually a placeholder (do not delete row 0, or the table structure breaks).
  • TOOL_P.TCH (pocket / magazine table): one row per pocket, holding “which tool (T) is in which pocket (P)” plus whether the pocket is disabled, fixed, or reserved.
广告

How they relate: on a tool change the control first looks up in TOOL_P.TCH “which pocket P holds target tool T”, rotates the magazine to bring that tool to the spindle, then reads L/R for that tool from TOOL.T. A wrong pocket table means the wrong tool is fetched; a wrong tool table means the right tool but with wrong dimensions.

3. What to Fill in TOOL.T (L / R / Type / Life)

In TOOL.T, at minimum fill these kinds of data per tool (column names vary slightly by version, meaning is the same):

HEIDENHAIN TNC TOOL.T field quick reference: L length, R / R2 radius, DL/DR delta, type, name, life columns TIME1 / TIME2 / CUR_TIME / RT sister tool

Table 1: Common TOOL.T fields

FieldMeaningShop-floor note
T / rowtool numberwhat Txx in the program calls
TNAMEtool nametext, for identification
Llengthmeasured by presetter or on-machine; drives Z comp
R / R2radius / 2nd radiuscutter radius; R2 for formed tools (e.g. lollipop)
DL / DRlength / radius deltatrim after regrind, added onto L/R
Typemill / drill / bore…selects available cycles
TIME1pre-warn life“approaching life” at this value
TIME2max lifeforce change / alarm at this value
CUR_TIMElife usedaccumulated by control, can be zeroed
RTreplacement (sister)tool auto-substituted when this one expires

Filling tips: L and R must match the real tool (a presetter is most reliable); step/formed tools use R2, DL/DR; for life management fill TIME1/TIME2 and set RT to a backup tool.

4. How Length L and Radius R Compensation Take Effect (no G43)

This is the biggest difference from FANUC and must be clear:

  • TNC has no G43. After a tool change (Txx M6), the control automatically applies that tool’s L as length compensation and R as radius compensation to the current machining.
  • Just program the contour and depth normally; tool-length and tool-radius correction come from the tool table – to change an offset you edit the table, not the program.
  • The side of radius compensation (left/right) is still set in the program by RL (left, like G41) / RR (right, like G42), but the amount comes from R.

Experience: if “the whole size is off by one tool length” or “the side leaves wrong stock”, first check whether L/R for that tool in TOOL.T is wrong or overwritten with 0 – not the Z value in the program. On TNC, ~90% of “wrong offset” cases are a wrong table entry, not a wrong program.

5. Editing the Pocket Table TOOL_P.TCH (P↔T, P0 = spindle)

TOOL_P.TCH decides “which tool is in which magazine pocket”. Core columns per row: P (pocket no.), T (tool no.), TNAME (tool name), plus status bits: RSV (reserved pocket), ST (special/oversize tool), F (fixed pocket).

HEIDENHAIN TNC pocket table TOOL_P.TCH fields and P-to-T mapping: P0 is always the spindle (reserved), P1..Pn are magazine pockets, each row maps a pocket number to a tool number in the tool table

Key rules:

  • P0.0 is always the spindle position, not a magazine pocket. Writing a real magazine tool into P0 breaks the “spindle-clear” logic and aborts the next tool change immediately – never touch P0.
  • Every tool you want to use must exist in BOTH TOOL.T (its data) and TOOL_P.TCH (its pocket); missing either means it cannot be called.
  • If the machine lost power, the buffer battery died, or the magazine was rotated by hand, the P↔T in the pocket table no longer matches physical reality, and the first M6 stalls mid-rotation with “magazine position incorrect / tool change impossible”.

6. Tool Life Management (TIME1 / TIME2 / CUR_TIME, warn & force change)

TNC reserves life columns right inside TOOL.T – no extra option needed:

  • TIME1 (pre-warn life): when used life CUR_TIME reaches it, the control warns “tool approaching life” so you can plan a change, but it is not forced.
  • TIME2 (max life): when reached, the control forces a tool change (or alarms) to avoid using a dull tool.
  • CUR_TIME (used): accumulated by the control by machining time/count, can be zeroed on the table to restart.
  • RT (replacement): when this tool expires, the control can auto-substitute this backup tool to cut downtime.

Exactly “how to start life monitoring and make it warn/force” differs by TNC version (some use a “tool life” soft key, some use Q parameters or a dedicated cycle). Follow your machine’s TNC-version tool-life manual for that part – this article only explains the field meanings and does not invent specific cycle numbers.

7. Calling a Tool in the Program + Field: tool_p.tch unreadable / not taking effect

广告

To call a tool in the program, write Txx (select tool, xx = the tool number in TOOL.T) together with M6 (execute the change, bringing the tool to the spindle). After the change L/R apply automatically; just run the contour.

图片[4]-How HEIDENHAIN TNC Tool Management Works - tool_p.tch Pocket Table + TOOL.T Tool Table + L/R Compensation + Tool Life-CNCShare | 数控电气技术中心
  • tool_p.tch unreadable / PGM management shows empty magazine: usually the NCK buffer battery failed or power was lost, so the volatile mirror of the pocket table is gone and the magazine initializes empty. Fix: replace the buffer battery with the control powered on (to avoid losing the mirror again), then enter “Programming and Editing” mode to check/rebuild TOOL_P.TCH so P↔T matches the physical magazine, and run a tool-change initialization.
  • edited TOOL.T / TOOL_P.TCH but machine won’t accept it: check you edited in the correct mode (must be “Programming and Editing” / the proper edit mode with the EDITING soft key ON to write to disk); confirm the file is really in TNC:\TABLE\ with the correct name; on some versions you must “save / exit” for changes to take effect, and ending with END mid-edit loses them. Also the PLC has a “tool ready” flag – if the table changed but the PLC has not re-synced, the first M6 can also be rejected.
  • Frequently Asked Questions

    What is the difference between tool_p.tch and TOOL.T?

    TOOL.T is the tool table, one row per tool, holding that tool’s own geometry and life data (L length, R radius, type, TIME1/TIME2 life, etc.). TOOL_P.TCH is the pocket table (magazine table), one row per pocket, holding “which tool is in which pocket” (P to T mapping) and pocket status. Simply: TOOL.T answers “what does this tool look like”, TOOL_P.TCH answers “where in the magazine is this tool”. On a tool change the control first looks up the pocket in the pocket table, then reads the dimensions from the tool table.

    How do I set tool length and radius compensation on TNC (do I write G43)?

    No G43. TNC has no G43/H scheme – after a tool change (Txx M6) the control automatically applies that tool’s L as length compensation and R as radius compensation to machining; just program the contour and depth normally. The left/right side of radius compensation is set by RL (left) / RR (right), and the amount comes from R. So to change an offset you edit the value in TOOL.T, not the program. If the whole size is off by one tool length, first check whether L/R for that tool in TOOL.T is wrong.

    Pocket table edited but machine won’t accept it / tool_p.tch unreadable?

    Unreadable usually means the NCK buffer battery failed or power was lost, the pocket table’s volatile mirror is gone, and the magazine initialized empty – replace the buffer battery with the control powered on, then rebuild TOOL_P.TCH in edit mode so P↔T matches the physical magazine. If edits don’t take: check you edited in the correct mode (EDITING soft key ON) and saved/exited properly, the file is in TNC:\TABLE\ with the right name, and the PLC “tool ready” flag re-synced (a table change can make the first M6 reject until the PLC re-syncs). P0 is always the spindle – never write a real tool into P0.

    Last updated: 2026-10-29

    Where to go next

    • FANUC Troubleshooting — the full guide library: alarms, diagnosis numbers, servo, spindle, PMC and electrical faults, organised by symptom.
    • CNC Repair Tools — which instrument measures what: multimeters, clamp meters, insulation testers and oscilloscopes, with the specification that actually matters.
    • Remote Technical Support — have the readings reviewed with you: alarm reverse lookup, PMC ladder analysis and servo tuning advice by call. Repair companies and integrators welcome.

    Read the guide, get the right instrument, or walk the diagnosis through with someone — pick whichever you need.

    Also available in Chinese: 海德汉 TNC 刀具管理怎么用?tool_p.tch 刀库表 + TOOL.T 刀具表 + L/R 补偿 + 刀具寿命一图读懂
    The original Chinese version — same procedure, with the full field notes.
    © 版权声明
    THE END
    喜欢就支持一下吧
    点赞12赞赏 分享
    评论 抢沙发

    请登录后发表评论

      暂无评论内容