Files
breakpilot-compliance/ai-compliance-sdk/internal/iace/hazard_patterns_cnc.go
T
Benjamin Admin c7e197d107 feat(iace): Sprint 3C — Werkzeugmaschinen (CNC/Dreh/Fraes/Schleifen/Schweissen)
35 CNC-spezifische Hazard Patterns (HP1400-HP1434):
- Werkzeugbruch, Schleifscheibenbruch, Spaeneflug, Kollision
- KSS-Exposition (Aerosol, Hautkontakt, Keimbelastung, Brand)
- Schweissrauch, UV-Strahlung, Spritzer, Stromschlag, Ex-Hohlkoerper
- Maschinenspezifisch: Quetschung Tuer, Spindelerfassung, Walzeneinzug
- Alle mit MachineTypes, OperationalStates, HumanRoles annotiert

18 Metalworking-Massnahmen (M404-M421), RAG-validiert gegen TRGS 551/528:
- KSS: Substitution, Aerosolabsaugung, Konzentrationskontrolle, Wechselintervalle, Hautschutzplan
- Schleifen: Schleifscheiben-Pruefung, Drehzahlbegrenzung
- Schweissen: Fortluft-Absaugung, brennerintegrierte Absaugung, raeumliche Trennung, Schweisserschutzschild
- Allgemein: AGW-Ueberwachung, Arbeitsmedizin, Reinigung, Unterweisung

5 Evidenztypen (E51-E55): KSS-Analyse, Schleifscheiben-/Spannmittel-Pruefung, Schweissnaht-Qualifikation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-10 08:43:21 +02:00

307 lines
18 KiB
Go

package iace
// GetCNCHazardPatterns returns hazard patterns specific to CNC machining
// centres, lathes, milling machines, grinding machines, and drilling machines.
// Part 1: tool breakage, collision, KSS exposure, welding. IDs: HP1400-HP1419.
// Part 2 (HP1420-HP1434) is in hazard_patterns_cnc_ext.go.
func GetCNCHazardPatterns() []HazardPattern {
cncTypes := []string{"cnc", "lathe", "milling", "grinding", "drilling", "machining_centre"}
return []HazardPattern{
// ── Tool Breakage / Projectile (HP1400-HP1404) ──────────────
{
ID: "HP1400", NameDE: "Werkzeugbruch bei Hochgeschwindigkeitsbearbeitung", NameEN: "Tool breakage at high speed machining",
RequiredComponentTags: []string{"cutting_tool", "high_speed"},
GeneratedHazardCats: []string{"mechanical_hazard"},
SuggestedMeasureIDs: []string{"M409", "M061", "M025"},
SuggestedEvidenceIDs: []string{"E01", "E08"},
Priority: 90, MachineTypes: cncTypes,
OperationalStates: []string{"automatic_operation"},
HumanRoles: []string{"operator"},
ScenarioDE: "Werkzeug bricht bei Hochgeschwindigkeitsbearbeitung und Bruchstuecke durchschlagen Schutzscheibe",
TriggerDE: "Werkzeugverschleiss, Materiallunker oder Programmierfehler fuehrt zu ploetzlichem Werkzeugbruch",
HarmDE: "Durchdringende Verletzung durch Werkzeugfragment, Augenverletzung durch Splitter",
AffectedDE: "Bedienpersonal", ZoneDE: "Bearbeitungsraum, Bedienseite",
DefaultSeverity: 4, DefaultExposure: 3,
},
{
ID: "HP1401", NameDE: "Werkstueck loest sich aus Spannung", NameEN: "Workpiece released from clamping",
RequiredComponentTags: []string{"workpiece_holder"},
GeneratedHazardCats: []string{"mechanical_hazard"},
SuggestedMeasureIDs: []string{"M411", "M008", "M061"},
SuggestedEvidenceIDs: []string{"E01", "E53"},
Priority: 92, MachineTypes: cncTypes,
OperationalStates: []string{"automatic_operation", "manual_operation"},
ScenarioDE: "Werkstueck loest sich waehrend der Bearbeitung aus der Spannvorrichtung und wird herausgeschleudert",
TriggerDE: "Unzureichende Spannkraft, falscher Spannmitteleinsatz oder Vibrationen lockern Spannung",
HarmDE: "Quetschung, Prellungen oder Knochenbrueche durch herausgeschleudertes Werkstueck",
AffectedDE: "Bedienpersonal", ZoneDE: "Bearbeitungsraum, Maschinenumgebung",
DefaultSeverity: 4, DefaultExposure: 3,
},
{
ID: "HP1402", NameDE: "Schleifscheibenbruch", NameEN: "Grinding wheel burst",
RequiredComponentTags: []string{"grinding_wheel"},
GeneratedHazardCats: []string{"mechanical_hazard"},
SuggestedMeasureIDs: []string{"M412", "M413", "M061"},
SuggestedEvidenceIDs: []string{"E01", "E52"},
Priority: 94, MachineTypes: []string{"grinding"},
RequiresExpertCalculation: true,
ExpertHintDE: "Schleifscheibenfestigkeit nach EN 12413 pruefen. Schutzhaube nach EN 13218 dimensionieren.",
ScenarioDE: "Schleifscheibe bricht bei Betrieb und Fragmente durchschlagen die Schutzhaube",
TriggerDE: "Ueberschreitung der zulaessigen Drehzahl, Materialfehler oder thermischer Schock",
HarmDE: "Schwere Schnitt- und Durchdringungsverletzungen durch Scheibenfragmente",
AffectedDE: "Bedienpersonal, Umstehende", ZoneDE: "Bearbeitungsraum, seitlich der Maschine",
DefaultSeverity: 5, DefaultExposure: 2,
},
{
ID: "HP1403", NameDE: "Spaeneflug und Spaenewickel an Drehmaschine", NameEN: "Chip fly and chip entanglement on lathe",
RequiredComponentTags: []string{"cutting_tool", "rotating_part"},
GeneratedHazardCats: []string{"mechanical_hazard"},
SuggestedMeasureIDs: []string{"M410", "M061", "M169"},
SuggestedEvidenceIDs: []string{"E01", "E08"},
Priority: 82, MachineTypes: []string{"lathe", "cnc"},
OperationalStates: []string{"automatic_operation", "manual_operation"},
ScenarioDE: "Heisse, scharfkantige Metallspaene werden weggeschleudert oder wickeln sich um rotierende Teile",
TriggerDE: "Spanbildung bei Drehbearbeitung ohne Spanbrecher oder geschlossene Einhausung",
HarmDE: "Schnitt- und Brandverletzungen an Haenden und Armen, Augenverletzungen",
AffectedDE: "Bedienpersonal", ZoneDE: "Bearbeitungsraum, Bedienseite",
DefaultSeverity: 3, DefaultExposure: 4,
},
{
ID: "HP1404", NameDE: "Funkenflug beim Schleifen", NameEN: "Spark generation during grinding",
RequiredComponentTags: []string{"grinding_wheel"},
GeneratedHazardCats: []string{"fire_explosion", "mechanical_hazard"},
SuggestedMeasureIDs: []string{"M169", "M383", "M061"},
SuggestedEvidenceIDs: []string{"E01"},
Priority: 75, MachineTypes: []string{"grinding"},
ScenarioDE: "Funkenflug beim Schleifen entzuendet brennbare Materialien in der Umgebung",
TriggerDE: "Schleifvorgang an Stahl erzeugt Funken die auf oelgetraenkte Lappen oder KSS-Rueckstaende treffen",
HarmDE: "Brandverletzungen, Maschinenbrand",
AffectedDE: "Bedienpersonal", ZoneDE: "Maschinenumgebung, Spaenebehaelter",
DefaultSeverity: 3, DefaultExposure: 3,
},
// ── Collision / Programming (HP1405-HP1409) ─────────────────
{
ID: "HP1405", NameDE: "Kollision Werkzeug/Werkstueck bei Programmfehler", NameEN: "Tool-workpiece collision due to programming error",
RequiredComponentTags: []string{"cutting_tool", "programmable"},
GeneratedHazardCats: []string{"mechanical_hazard"},
SuggestedMeasureIDs: []string{"M041", "M039", "M409"},
SuggestedEvidenceIDs: []string{"E01", "E14"},
Priority: 85, MachineTypes: cncTypes,
OperationalStates: []string{"automatic_operation"},
ScenarioDE: "CNC-Programm enthaelt falschen Verfahrweg und Werkzeug kollidiert mit Werkstueck oder Spannmittel",
TriggerDE: "Programmierfehler bei G-Code, falscher Werkzeug-Offset oder fehlerhafte Nullpunktverschiebung",
HarmDE: "Werkzeugbruch mit Splitterflug, Maschinenschaden, Werkstueck wird herausgeschleudert",
AffectedDE: "Bedienpersonal, Einrichter", ZoneDE: "Bearbeitungsraum",
DefaultSeverity: 3, DefaultExposure: 3,
},
{
ID: "HP1406", NameDE: "Automatischer Werkzeugwechsel bei Aufenthalt im Gefahrbereich", NameEN: "Automatic tool change while person in danger zone",
RequiredComponentTags: []string{"cutting_tool", "programmable"},
RequiredEnergyTags: []string{"kinetic_translational"},
GeneratedHazardCats: []string{"mechanical_hazard"},
SuggestedMeasureIDs: []string{"M067", "M071", "M255"},
SuggestedEvidenceIDs: []string{"E01", "E08"},
Priority: 88, MachineTypes: cncTypes,
OperationalStates: []string{"automatic_operation"},
ScenarioDE: "Werkzeugwechsler bewegt sich waehrend Bediener im Maschinenraum fuer Kontrolle oder Reinigung",
TriggerDE: "Fehlende Verriegelung der Schutztuer oder Umgehung des Sicherheitsschalters",
HarmDE: "Quetschung an Werkzeugwechsler, Schnittverletzung durch rotierendes Werkzeug",
AffectedDE: "Bedienpersonal, Einrichter", ZoneDE: "Werkzeugmagazin, Bearbeitungsraum",
DefaultSeverity: 4, DefaultExposure: 2,
},
{
ID: "HP1407", NameDE: "Referenzfahrt ohne Personenfreiheit", NameEN: "Homing movement without person clearance",
RequiredComponentTags: []string{"moving_part", "programmable"},
GeneratedHazardCats: []string{"mechanical_hazard"},
SuggestedMeasureIDs: []string{"M042", "M071"},
SuggestedEvidenceIDs: []string{"E01"},
Priority: 86, MachineTypes: cncTypes,
OperationalStates: []string{"homing", "startup"},
HumanRoles: []string{"operator", "maintenance_tech"},
ScenarioDE: "Achsen fahren bei Referenzfahrt unkontrolliert in Endlage waehrend Person im Maschinenraum",
TriggerDE: "Referenzfahrt nach Stoerung oder Neustart ohne Pruefung ob Maschinenraum frei",
HarmDE: "Quetschung zwischen Schlitten und Maschinenrahmen",
AffectedDE: "Bedienpersonal, Einrichter", ZoneDE: "Verfahrbereich der Achsen",
DefaultSeverity: 4, DefaultExposure: 2,
},
{
ID: "HP1408", NameDE: "Falscher Werkzeug-Offset nach Einrichtung", NameEN: "Wrong tool offset after setup",
RequiredComponentTags: []string{"cutting_tool", "programmable"},
GeneratedHazardCats: []string{"mechanical_hazard"},
SuggestedMeasureIDs: []string{"M041", "M050"},
SuggestedEvidenceIDs: []string{"E14"},
Priority: 78, MachineTypes: cncTypes,
OperationalStates: []string{"teach_mode"},
HumanRoles: []string{"programmer"},
ScenarioDE: "Nach Werkzeugwechsel wird falscher Offset programmiert und Werkzeug faehrt in Spannmittel",
TriggerDE: "Manuelle Eingabe des Werkzeug-Offsets mit Vorzeichen- oder Wertfehler",
HarmDE: "Werkzeugbruch, Werkstueck-Beschaedigung, Splitterflug",
AffectedDE: "Programmierer, Einrichter", ZoneDE: "Bearbeitungsraum",
DefaultSeverity: 3, DefaultExposure: 3,
},
{
ID: "HP1409", NameDE: "Einrichtbetrieb ohne reduzierte Vorschubgeschwindigkeit", NameEN: "Setup mode without reduced feed rate",
RequiredComponentTags: []string{"moving_part", "programmable"},
GeneratedHazardCats: []string{"mechanical_hazard"},
SuggestedMeasureIDs: []string{"M012", "M049"},
SuggestedEvidenceIDs: []string{"E01"},
Priority: 84, MachineTypes: cncTypes,
OperationalStates: []string{"teach_mode", "manual_operation"},
HumanRoles: []string{"programmer", "maintenance_tech"},
ScenarioDE: "Achsen verfahren im Einrichtbetrieb mit voller Produktionsgeschwindigkeit",
TriggerDE: "Fehlende Geschwindigkeitsbegrenzung im Einrichtmodus oder Umgehung",
HarmDE: "Quetschung oder Schlagverletzung durch schnell verfahrende Maschinenteile",
AffectedDE: "Einrichter, Programmierer", ZoneDE: "Verfahrbereich der Achsen",
DefaultSeverity: 4, DefaultExposure: 3,
},
// ── KSS Exposure (HP1410-HP1414) ────────────────────────────
{
ID: "HP1410", NameDE: "KSS-Aerosol-Inhalation", NameEN: "MWF aerosol inhalation",
RequiredComponentTags: []string{"cutting_tool"},
RequiredEnergyTags: []string{"kinetic_rotational"},
GeneratedHazardCats: []string{"chemical_risk"},
SuggestedMeasureIDs: []string{"M405", "M406", "M418"},
SuggestedEvidenceIDs: []string{"E01", "E29", "E51"},
Priority: 80, MachineTypes: cncTypes,
OperationalStates: []string{"automatic_operation", "manual_operation"},
HumanRoles: []string{"operator"},
ScenarioDE: "Bediener atmet KSS-Aerosole und -Daempfe ein die bei Hochgeschwindigkeitsbearbeitung entstehen",
TriggerDE: "Unzureichende Absaugung oder geoeffnete Maschinentuer waehrend Bearbeitung",
HarmDE: "Atemwegsreizung, Alveolitis, Lungenfunktionsstoerung bei Langzeitexposition",
AffectedDE: "Bedienpersonal", ZoneDE: "Bedienbereich vor der Maschine",
DefaultSeverity: 3, DefaultExposure: 4,
},
{
ID: "HP1411", NameDE: "KSS-Hautkontakt und Hauterkrankung", NameEN: "MWF skin contact and dermatitis",
RequiredComponentTags: []string{"cutting_tool"},
GeneratedHazardCats: []string{"chemical_risk"},
SuggestedMeasureIDs: []string{"M408", "M376", "M171"},
SuggestedEvidenceIDs: []string{"E01", "E55"},
Priority: 78, MachineTypes: cncTypes,
HumanRoles: []string{"operator", "maintenance_tech"},
ScenarioDE: "Bediener hat direkten Hautkontakt mit KSS beim Werkstueckhandling oder bei Maschinenreinigung",
TriggerDE: "Wiederholter Hautkontakt mit KSS ohne Schutzhandschuhe oder Hautschutzmittel",
HarmDE: "Kontaktekzem, allergische Hautreaktion, Oelakne",
AffectedDE: "Bedienpersonal, Wartungspersonal", ZoneDE: "Bedienbereich, Maschineninneres",
DefaultSeverity: 2, DefaultExposure: 5,
},
{
ID: "HP1412", NameDE: "Biologische Gefaehrdung durch kontaminierten KSS", NameEN: "Biological hazard from contaminated MWF",
RequiredComponentTags: []string{"cutting_tool"},
GeneratedHazardCats: []string{"chemical_risk"},
SuggestedMeasureIDs: []string{"M406", "M407", "M420"},
SuggestedEvidenceIDs: []string{"E01", "E51"},
Priority: 76, MachineTypes: cncTypes,
OperationalStates: []string{"maintenance"},
HumanRoles: []string{"maintenance_tech"},
ScenarioDE: "Wartungspersonal kommt bei KSS-Wechsel mit mikrobiell belastetem KSS in Kontakt",
TriggerDE: "Keimwachstum in KSS-System durch fehlende Konzentrationskontrolle oder zu lange Standzeit",
HarmDE: "Atemwegsinfektionen, Hautinfektionen, allergische Reaktionen",
AffectedDE: "Wartungspersonal", ZoneDE: "KSS-Tank, Maschineninneres",
DefaultSeverity: 3, DefaultExposure: 3,
},
{
ID: "HP1413", NameDE: "KSS-Brandgefahr durch Oelnebel", NameEN: "MWF fire hazard from oil mist",
RequiredComponentTags: []string{"cutting_tool"},
RequiredEnergyTags: []string{"kinetic_rotational"},
GeneratedHazardCats: []string{"fire_explosion"},
SuggestedMeasureIDs: []string{"M405", "M383", "M385"},
SuggestedEvidenceIDs: []string{"E01"},
Priority: 82, MachineTypes: cncTypes,
ScenarioDE: "KSS-Oelnebel im Maschinenraum entzuendet sich durch Funken oder heisse Spaene",
TriggerDE: "Unzureichende KSS-Absaugung bei Minimalmengenschmierung oder MMS-Trockenlauf",
HarmDE: "Maschinenbrand, Verbrennungen, Rauchgasvergiftung",
AffectedDE: "Bedienpersonal", ZoneDE: "Maschinenraum, Oelnebelabscheider",
DefaultSeverity: 4, DefaultExposure: 2,
},
{
ID: "HP1414", NameDE: "Rutschgefahr durch KSS-Leckage am Boden", NameEN: "Slip hazard from MWF leakage on floor",
RequiredComponentTags: []string{"cutting_tool"},
GeneratedHazardCats: []string{"mechanical_hazard"},
SuggestedMeasureIDs: []string{"M420", "M101"},
SuggestedEvidenceIDs: []string{"E01"},
Priority: 65, MachineTypes: cncTypes,
ScenarioDE: "KSS-Leckage erzeugt rutschigen Bodenbelag um die Werkzeugmaschine",
TriggerDE: "Undichte KSS-Leitungen, ueberlaufender KSS-Tank oder Spritzerauswurf",
HarmDE: "Sturzunfaelle mit Prellungen, Knochenbruechen",
AffectedDE: "Bedienpersonal, Passanten", ZoneDE: "Maschinenumgebung, Verkehrswege",
DefaultSeverity: 2, DefaultExposure: 4,
},
// ── Welding-specific (HP1415-HP1419) ────────────────────────
{
ID: "HP1415", NameDE: "Schweissrauch-Inhalation", NameEN: "Welding fume inhalation",
RequiredComponentTags: []string{"welding_equipment"},
GeneratedHazardCats: []string{"chemical_risk"},
SuggestedMeasureIDs: []string{"M414", "M415", "M418"},
SuggestedEvidenceIDs: []string{"E01", "E29"},
Priority: 85, MachineTypes: []string{"welding", "cnc"},
HumanRoles: []string{"operator"},
ScenarioDE: "Schweisser atmet Schweissrauch mit Metalloxiden und ggf. krebserzeugenden Stoffen ein",
TriggerDE: "Fehlende oder unzureichende Schweissrauch-Absaugung, Schweissen in beengten Raeumen",
HarmDE: "Metallrauchfieber, Atemwegserkrankung, Lungenkarzinom bei Chrom-VI/Nickel",
AffectedDE: "Schweisser", ZoneDE: "Schweissplatz, angrenzende Arbeitsplaetze",
DefaultSeverity: 4, DefaultExposure: 4,
},
{
ID: "HP1416", NameDE: "UV-Strahlung beim Lichtbogenschweissen", NameEN: "UV radiation from arc welding",
RequiredComponentTags: []string{"welding_equipment"},
GeneratedHazardCats: []string{"radiation_hazard"},
SuggestedMeasureIDs: []string{"M392", "M169"},
SuggestedEvidenceIDs: []string{"E01"},
Priority: 80, MachineTypes: []string{"welding"},
HumanRoles: []string{"operator", "bystander"},
ScenarioDE: "UV-Strahlung des Lichtbogens trifft ungeschuetzte Haut oder Augen",
TriggerDE: "Fehlender Schweisserschutzschild, keine Abschirmung des Schweissplatzes",
HarmDE: "Verblitzen der Augen, Sonnenbrand-aehnliche Hautschaeden",
AffectedDE: "Schweisser, Umstehende", ZoneDE: "Schweissplatz, angrenzende Bereiche",
DefaultSeverity: 3, DefaultExposure: 4,
},
{
ID: "HP1417", NameDE: "Spritzer und Schlacke beim Schweissen", NameEN: "Spatter and slag during welding",
RequiredComponentTags: []string{"welding_equipment"},
GeneratedHazardCats: []string{"thermal_hazard", "mechanical_hazard"},
SuggestedMeasureIDs: []string{"M169", "M174", "M095"},
SuggestedEvidenceIDs: []string{"E01"},
Priority: 72, MachineTypes: []string{"welding"},
HumanRoles: []string{"operator"},
ScenarioDE: "Schweissspritzer und heisse Schlacke treffen Haut oder entzuenden brennbare Materialien",
TriggerDE: "Schweissvorgang ohne Schutzschuerze, brennbare Materialien in Spritzweite",
HarmDE: "Brandwunden, Augenverletzung, Brand in der Umgebung",
AffectedDE: "Schweisser", ZoneDE: "Schweissplatz, Boden im Spritzbereich",
DefaultSeverity: 3, DefaultExposure: 4,
},
{
ID: "HP1418", NameDE: "Elektrischer Schlag durch Schweissgeraet", NameEN: "Electric shock from welding equipment",
RequiredComponentTags: []string{"welding_equipment"},
RequiredEnergyTags: []string{"electrical"},
GeneratedHazardCats: []string{"electrical_hazard"},
SuggestedMeasureIDs: []string{"M087", "M090", "MN025"},
SuggestedEvidenceIDs: []string{"E01", "E10"},
Priority: 82, MachineTypes: []string{"welding"},
ScenarioDE: "Schweisser beruehrt spannungsfuehrende Teile des Schweissstromkreises",
TriggerDE: "Defekte Isolation am Schweissbrenner, feuchte Umgebung, beschaedigtes Kabel",
HarmDE: "Stromschlag mit Herzkammerflimmern, Verbrennungen",
AffectedDE: "Schweisser", ZoneDE: "Schweissbrenner, Masseklemme, Werkstueck",
DefaultSeverity: 5, DefaultExposure: 3,
},
{
ID: "HP1419", NameDE: "Explosionsgefahr beim Schweissen an Hohlkoerpern", NameEN: "Explosion when welding on hollow bodies",
RequiredComponentTags: []string{"welding_equipment"},
GeneratedHazardCats: []string{"fire_explosion"},
SuggestedMeasureIDs: []string{"M290", "M383"},
SuggestedEvidenceIDs: []string{"E01", "E35"},
Priority: 90, MachineTypes: []string{"welding"},
RequiresExpertCalculation: true,
ExpertHintDE: "Vor Schweissarbeiten an Behaeltern: Freimessen auf brennbare Gase/Daempfe.",
ScenarioDE: "Schweissflamme oder Lichtbogen entzuendet Restgas oder -daempfe in Hohlkoerper",
TriggerDE: "Schweissen an nicht freigemessenem Behaelter, Fass oder Rohrleitung",
HarmDE: "Explosion mit schweren Verletzungen, toedliche Druckwelle",
AffectedDE: "Schweisser, Umstehende", ZoneDE: "Schweissplatz, Behaelterinneres",
DefaultSeverity: 5, DefaultExposure: 2,
},
}
}