Heidenhain: confirm the alarm class/group to Part 9 condition-class mapping on a real control #853
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
From #839. Condition classes for Heidenhain native alarms are mapped from the controller's alarm class/group (class 5 emergency stop → Safety; groups 1–2 → Process; 4–5 → System; others Base). LSV2 does not document the codes; the numbering is taken from HEIDENHAIN's DNC/RemoTools error enums from memory, consistent with the one recorded iTNC 530 alarm (class 7 Info, group 4 General) but otherwise unproven. Confirm on real hardware alongside #829. Labels only — selection and severity do not depend on them.
2026-11-11: observed class 7 / group 3 (Hermle PLC messages) on Hermle29 and Hermle70, mapped to Base as the table says. Classes other than 7 (notably class 5, emergency stop) and groups 1, 2, 5 and 6 are still unobserved. Raw alarm numbers read as negative (0x81xxxxxx).
Real-alarm evidence (2026-11-13, read-only, alongside the #829 gate)
Live
ALARM:*conditions on three iTNC 530 controls, read through a deployed server:700520 Tool life exceeded701550 Cabin unlocked! B301701550 Cabin unlocked! B301Both are 7xxxxx PLC (OEM/Hermle) messages, and both report group 3 =
Plc. "Tool life exceeded" as class 1Warningand a cabin-door notice as class 7Infofit the DNC enum names. That makes three real records consistent with the numbering (with the earlier class 7 / group 4 one). The Safety (class 5) and Process/System (groups 1/2/4/5) branches are still unobserved, so this is corroboration, not proof. Leaving open until an E-stop or an operating/programming-group alarm is seen.Documentation search (2026-11-13), commit
2e537dc6I found no public source for
DNC_ERROR_CLASS/DNC_ERROR_GROUPor their numeric values. The table inHeidenhainAlarmClasseswas written from memory, and the code and docs now say so.What public sources do establish:
Names, but not numbers. The iTNC 530 HSCI Technical Manual's PLC error table (
.PET) documents:That is the same class set, in the same order, as our codes 2–6, and the same group set as our 1–4. WARNING, INFO and NOTE in our table may be the message type folded into the LSV2 class code. That is unconfirmed.
The DNC numbering can't be assumed to match LSV2. The HEIDENHAIN DNC COM interface enums, as listed by a third-party plugin (Senseforce), disagree with LSV2 in one place:
ExecutionModematches LSV2 R_RI 23.ProgramStatus(0 IDLE, 1 RUNNING, …) does not match LSV2 R_RI 26, where real controls report 7 for Idle.So we can't assume LSV2 uses the DNC numbering.
pyLSV2 can't help. It keeps class and group as raw numbers with no names.
Evidence now: four real iTNC 530 records: 7/4 once, 7/3 twice, and 1/3 once. Both group-3 alarm types are machine-builder PET messages, which fits 3 = PLC.
Still unobserved: class 5, which is the Safety branch, and groups 1, 2, 4 and 5 in the Process/System mapping. Closing that needs hardware, or HEIDENHAIN's DNC/RemoTools SDK headers, which are not public.
pyLSV2's issue tracker adds evidence and a verification route (commit
768abdc1)010 Machine guard is open !with class 3, group 3. It's the first class seen outside 1 and 7. A guard-open PLC message that holds the program fits 3 = PGM HOLD by its meaning, not just its number. All three machine-builder PLC messages now report group 3, which fits 3 = PLC.RUNINFO F/RUNINFO Nreads the same alarm list and shows the error class and group by name. It's read-only. Running it against Hermle29/49/59/70 while an alarm is active, and comparing its labels with our raw codes, would check the table against vendor software rather than memory. This needs a Windows host with TNCremo/TNCcmd that can reach the controls.Codes observed on iTNC 530 so far:
All are consistent with the table. Class 5, the Safety branch, is still unobserved.
ignitionoee CR capture (2026-11-13), and acceptance. A 7 h read-only sample of 26 live iTNC 530s at CR showed standing alarm classes 1, 7 and 8 (Warning / Info / Error in the table). These are consistent with the recorded class 7 / group 4, class 7 / group 3 and class 1 / group 3 records. Class 5 (EmergencyStop, the only class that drives Safety) was not observed. Nothing contradicts the mapping, so no code change follows.
Accepted per owner decision 2026-11-13 (the driver is accepted if the findings do not change the code). The mapping stays labels-only, never selection or severity, and its hardware-unproven numbering stays documented in
HeidenhainAlarmClassesremarks anddocs/drivers/Heidenhain.md. Closing; reopen if a real class-5 record contradicts it.