From 768abdc1abae5faa450b7ce9d01e9a85af083252 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Fri, 13 Nov 2026 00:44:01 -0500 Subject: [PATCH] docs(heidenhain): class 3 / group 3 record from pyLSV2 #52; TNCcmd as the verification route (#853) Claude-Session: https://claude.ai/code/session_01GT67AD99zQQqpLCVm3p7xk --- docs/drivers/Heidenhain.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/drivers/Heidenhain.md b/docs/drivers/Heidenhain.md index 9e22939a9..f2ee8c190 100644 --- a/docs/drivers/Heidenhain.md +++ b/docs/drivers/Heidenhain.md @@ -324,7 +324,12 @@ public sources do establish: into the LSV2 class code, which is unconfirmed. - **Observed records (real iTNC 530, read-only).** class 7 / group 4 "Run test of cutout channels" (power-up self-test); class 7 / group 3 "701550 Cabin unlocked! B301" (Hermle70, Hermle29); class 1 / group 3 "700520 Tool life exceeded" - (Hermle49). Both 7xxxxx records are machine-builder PET messages and both report group 3 — consistent with 3 = PLC. + (Hermle49). Independently, pyLSV2 issue #52 (another user's iTNC 530) logged class 3 / group 3 + "010 Machine guard is open !" — a guard-open PLC message holding the program, which fits 3 = PGM HOLD **by meaning**, + not just by numbering. All three machine-builder PET messages report group 3 — consistent with 3 = PLC. +- **Verification route (read-only):** HEIDENHAIN's own TNCcmd `RUNINFO F` / `RUNINFO N` reads the same list and + displays the class and group (pyLSV2 issue #13). Running it against a control and comparing its labels with our raw + codes would check the table against vendor software instead of memory. - ⚠️ **"LSV2 shares the DNC numbering" is not a safe general assumption.** The DNC COM interface's `ExecutionMode` (0 MANUAL, 1 MDI, 2 RPF, 3 SINGLESTEP, 4 AUTOMATIC) matches LSV2 `R_RI 23`, but its `ProgramStatus` (0 IDLE, 1 RUNNING, …) does **not** match LSV2 `R_RI 26` (0 Started … 7 Idle, which real controls confirm). So the class/group