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>
This commit is contained in:
Benjamin Admin
2026-05-10 08:43:21 +02:00
parent 80ae196853
commit c7e197d107
6 changed files with 581 additions and 0 deletions
@@ -0,0 +1,306 @@
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,
},
}
}
@@ -0,0 +1,228 @@
package iace
// GetCNCHazardPatternsExt returns the second batch of CNC/metalworking
// hazard patterns: machine-specific mechanical, ergonomic/noise,
// software/control, and maintenance. IDs: HP1420-HP1434.
func GetCNCHazardPatternsExt() []HazardPattern {
cncTypes := []string{"cnc", "lathe", "milling", "grinding", "drilling", "machining_centre"}
return []HazardPattern{
// ── Machine-specific mechanical (HP1420-HP1424) ─────────────
{
ID: "HP1420", NameDE: "Quetschung an Maschinentuer (CNC)", NameEN: "Crushing at machine door (CNC)",
RequiredComponentTags: []string{"moving_part"},
GeneratedHazardCats: []string{"mechanical_hazard"},
SuggestedMeasureIDs: []string{"M067", "M069"},
SuggestedEvidenceIDs: []string{"E01", "E08"},
Priority: 78, MachineTypes: cncTypes,
ScenarioDE: "Bediener wird an kraftbetaetigter CNC-Maschinentuer eingequetscht",
TriggerDE: "Tuer schliesst automatisch waehrend Bediener im Tuerbereich steht",
HarmDE: "Quetschung an Oberschenkel, Rumpf oder Arm",
AffectedDE: "Bedienpersonal", ZoneDE: "Maschinentuer-Schliesskante",
DefaultSeverity: 3, DefaultExposure: 4,
},
{
ID: "HP1421", NameDE: "Erfassen durch rotierende Welle (Drehmaschine)", NameEN: "Entanglement by rotating spindle (lathe)",
RequiredComponentTags: []string{"rotating_part"},
GeneratedHazardCats: []string{"mechanical_hazard"},
SuggestedMeasureIDs: []string{"M061", "M240", "M067"},
SuggestedEvidenceIDs: []string{"E01", "E08"},
Priority: 92, MachineTypes: []string{"lathe"},
OperationalStates: []string{"automatic_operation", "manual_operation"},
HumanRoles: []string{"operator"},
ScenarioDE: "Kleidung, Haare oder Handschuhe werden von rotierender Hauptspindel erfasst und aufgewickelt",
TriggerDE: "Fehlende Einhausung der Spindel, Arbeiten mit Handschuhen an Drehmaschine",
HarmDE: "Skalpierung, Abriss von Koerperteilen, Strangulation",
AffectedDE: "Bedienpersonal", ZoneDE: "Spindelbereich, Drehmitte",
DefaultSeverity: 5, DefaultExposure: 3,
},
{
ID: "HP1422", NameDE: "Einzugsgefahr an Vorschubwalzen", NameEN: "Drawing-in hazard at feed rollers",
RequiredComponentTags: []string{"rotating_part"},
GeneratedHazardCats: []string{"mechanical_hazard"},
SuggestedMeasureIDs: []string{"M239", "M061"},
SuggestedEvidenceIDs: []string{"E01", "E08"},
Priority: 85, MachineTypes: cncTypes,
ScenarioDE: "Finger oder Hand werden zwischen Vorschubwalzen und Werkstueck eingezogen",
TriggerDE: "Manuelles Zufuehren von Material ohne Schutzeinrichtung am Walzenspalt",
HarmDE: "Quetschung, Amputation von Fingern",
AffectedDE: "Bedienpersonal", ZoneDE: "Materialzufuehrung, Walzenspalt",
DefaultSeverity: 4, DefaultExposure: 3,
},
{
ID: "HP1423", NameDE: "Absturz schwerer Maschinenteile bei Wartung", NameEN: "Heavy machine part falling during maintenance",
RequiredComponentTags: []string{"moving_part"},
GeneratedHazardCats: []string{"mechanical_hazard"},
SuggestedMeasureIDs: []string{"M245", "M210"},
SuggestedEvidenceIDs: []string{"E01"},
Priority: 80, MachineTypes: cncTypes,
OperationalStates: []string{"maintenance"},
HumanRoles: []string{"maintenance_tech"},
ScenarioDE: "Schwere Maschinenteile (Spindelstock, Revolverkopf) fallen bei Demontage unkontrolliert herab",
TriggerDE: "Fehlende Abstuetzmittel oder Hebezeuge bei Wartung schwerer Baugruppen",
HarmDE: "Quetschung von Hand oder Fuss, Knochenbrueche",
AffectedDE: "Wartungspersonal", ZoneDE: "Maschineninneres, Wartungszugang",
DefaultSeverity: 4, DefaultExposure: 2,
},
{
ID: "HP1424", NameDE: "Hydraulik-Leckage an Spannvorrichtung", NameEN: "Hydraulic leak at clamping device",
RequiredComponentTags: []string{"workpiece_holder", "hydraulic_part"},
GeneratedHazardCats: []string{"pneumatic_hydraulic", "mechanical_hazard"},
SuggestedMeasureIDs: []string{"M099", "M411"},
SuggestedEvidenceIDs: []string{"E01", "E38"},
Priority: 78, MachineTypes: cncTypes,
ScenarioDE: "Hydraulikleckage an Spannvorrichtung fuehrt zu Spannkraftverlust waehrend Bearbeitung",
TriggerDE: "Verschleiss der Hydraulikdichtungen, Schlauchbruch am Spannzylinder",
HarmDE: "Werkstueck wird herausgeschleudert, Hydraulikoel-Hautinjektion",
AffectedDE: "Bedienpersonal", ZoneDE: "Spannvorrichtung, Hydraulikanschluss",
DefaultSeverity: 4, DefaultExposure: 2,
},
// ── Ergonomic / Noise (HP1425-HP1429) ───────────────────────
{
ID: "HP1425", NameDE: "Laermexposition an Werkzeugmaschinen", NameEN: "Noise exposure at machine tools",
RequiredComponentTags: []string{"cutting_tool"},
RequiredEnergyTags: []string{"kinetic_rotational"},
GeneratedHazardCats: []string{"noise_source"},
SuggestedMeasureIDs: []string{"M347", "M349", "M059"},
SuggestedEvidenceIDs: []string{"E01", "E12", "E29"},
Priority: 65, MachineTypes: cncTypes,
ScenarioDE: "Laerm durch Zerspanungsprozess, Spindel und Kuehlmittelpumpe uebersteigt Grenzwerte",
TriggerDE: "Betrieb mehrerer Maschinen in Halle ohne schalldaemmende Einhausung",
HarmDE: "Laermschwerhoerigkeit bei Dauerexposition",
AffectedDE: "Bedienpersonal", ZoneDE: "Maschinenhalle",
DefaultSeverity: 2, DefaultExposure: 5,
},
{
ID: "HP1426", NameDE: "Hand-Arm-Vibration bei Handschleifarbeit", NameEN: "Hand-arm vibration from manual grinding",
RequiredComponentTags: []string{"grinding_wheel"},
GeneratedHazardCats: []string{"vibration_source"},
SuggestedMeasureIDs: []string{"M351", "M038"},
SuggestedEvidenceIDs: []string{"E01", "E42"},
Priority: 60, MachineTypes: []string{"grinding"},
HumanRoles: []string{"operator"},
ScenarioDE: "Bediener ist bei laengerem Handschleifen Hand-Arm-Vibrationen ausgesetzt",
TriggerDE: "Dauerhafte Nutzung von Winkelschleifern oder Handschleifmaschinen",
HarmDE: "Weissfinger-Krankheit, Durchblutungsstoerungen, Nervenschaeden",
AffectedDE: "Bedienpersonal", ZoneDE: "Handwerkzeugbereich",
DefaultSeverity: 2, DefaultExposure: 4,
},
{
ID: "HP1427", NameDE: "Ergonomische Belastung bei Werkstueckhandling", NameEN: "Ergonomic strain from workpiece handling",
RequiredComponentTags: []string{"workpiece_holder"},
GeneratedHazardCats: []string{"ergonomic"},
SuggestedMeasureIDs: []string{"M354", "M031"},
SuggestedEvidenceIDs: []string{"E01", "E30"},
Priority: 55, MachineTypes: cncTypes,
HumanRoles: []string{"operator"},
ScenarioDE: "Bediener hebt und positioniert schwere Werkstuecke manuell in Spannvorrichtung",
TriggerDE: "Wiederholtes manuelles Handling von Werkstuecken ueber 10 kg ohne Hebevorrichtung",
HarmDE: "Rueckenschmerzen, Bandscheibenschaeden, Muskel-Skelett-Erkrankungen",
AffectedDE: "Bedienpersonal", ZoneDE: "Belade-/Entladebereich",
DefaultSeverity: 2, DefaultExposure: 5,
},
{
ID: "HP1428", NameDE: "Stolpergefahr durch Kabel und Schlaeuche", NameEN: "Trip hazard from cables and hoses",
RequiredComponentTags: []string{"cutting_tool"},
GeneratedHazardCats: []string{"mechanical_hazard"},
SuggestedMeasureIDs: []string{"M009", "M144"},
SuggestedEvidenceIDs: []string{"E01"},
Priority: 50, MachineTypes: cncTypes,
ScenarioDE: "KSS-Schlaeuche, Druckluftleitungen oder Elektrokabel liegen im Verkehrsweg",
TriggerDE: "Provisorische Verlegung von Versorgungsleitungen ohne Kabelbruecke",
HarmDE: "Sturz mit Prellungen oder Knochenbruechen",
AffectedDE: "Bedienpersonal, Passanten", ZoneDE: "Maschinenumgebung, Verkehrswege",
DefaultSeverity: 2, DefaultExposure: 4,
},
{
ID: "HP1429", NameDE: "Thermische Belastung durch heisse Spaene und Werkstuecke", NameEN: "Thermal stress from hot chips and workpieces",
RequiredComponentTags: []string{"cutting_tool"},
GeneratedHazardCats: []string{"high_temperature"},
SuggestedMeasureIDs: []string{"M095", "M171"},
SuggestedEvidenceIDs: []string{"E01"},
Priority: 60, MachineTypes: cncTypes,
HumanRoles: []string{"operator"},
ScenarioDE: "Bediener beruehrt heisse Spaene oder Werkstuecke nach der Bearbeitung",
TriggerDE: "Entnahme des Werkstuecks ohne Wartezeit oder Schutzhandschuhe",
HarmDE: "Verbrennung an Haenden",
AffectedDE: "Bedienpersonal", ZoneDE: "Bearbeitungsraum, Entnahmebereich",
DefaultSeverity: 2, DefaultExposure: 4,
},
// ── Software/Control CNC-specific (HP1430-HP1431) ───────────
{
ID: "HP1430", NameDE: "Sicherheitsfunktion Schutztuer-Verriegelung versagt", NameEN: "Safety door interlock failure",
RequiredComponentTags: []string{"programmable", "safety_device"},
GeneratedHazardCats: []string{"safety_function_failure"},
SuggestedMeasureIDs: []string{"M067", "M069", "M112"},
SuggestedEvidenceIDs: []string{"E01", "E08", "E07"},
Priority: 92, MachineTypes: cncTypes,
ScenarioDE: "Schutztuersicherheitsschalter versagt und Maschine laeuft bei geoeffneter Tuer weiter",
TriggerDE: "Defekter Sicherheitsschalter, Manipulation des Schalters, Kabelbruch",
HarmDE: "Zugang zum laufenden Bearbeitungsprozess mit Quetsch-/Schnittgefahr",
AffectedDE: "Bedienpersonal", ZoneDE: "Maschinentuer, Bearbeitungsraum",
DefaultSeverity: 4, DefaultExposure: 3,
},
{
ID: "HP1431", NameDE: "Spindelueberdrehzahl bei Steuerungsfehler", NameEN: "Spindle overspeed due to control error",
RequiredComponentTags: []string{"rotating_part", "programmable"},
GeneratedHazardCats: []string{"mechanical_hazard", "safety_function_failure"},
SuggestedMeasureIDs: []string{"M115", "M413", "M043"},
SuggestedEvidenceIDs: []string{"E01", "E07"},
Priority: 88, MachineTypes: cncTypes,
ScenarioDE: "Spindel dreht ueber zulaessige Drehzahl hinaus und erzeugt unkontrollierte Fliehkraefte",
TriggerDE: "Steuerungsfehler, falscher Drehzahl-Override, Ausfall des Drehzahlueberwachung",
HarmDE: "Werkzeug- oder Werkstueckbruch mit Splitterflug, Lagerschaden",
AffectedDE: "Bedienpersonal", ZoneDE: "Spindelbereich",
DefaultSeverity: 4, DefaultExposure: 2,
},
// ── Maintenance CNC-specific (HP1432-HP1434) ────────────────
{
ID: "HP1432", NameDE: "KSS-Systemreinigung ohne Schutzausruestung", NameEN: "MWF system cleaning without PPE",
RequiredComponentTags: []string{"cutting_tool"},
GeneratedHazardCats: []string{"chemical_risk"},
SuggestedMeasureIDs: []string{"M407", "M408", "M171"},
SuggestedEvidenceIDs: []string{"E01", "E51"},
Priority: 70, MachineTypes: cncTypes,
OperationalStates: []string{"maintenance"},
HumanRoles: []string{"maintenance_tech"},
ScenarioDE: "Wartungspersonal reinigt KSS-System ohne Schutzhandschuhe und Schutzbrille",
TriggerDE: "Fehlende Unterweisung oder unzureichende PSA-Bereitstellung bei KSS-Wartung",
HarmDE: "Hautreizung durch Systemreiniger, Augenveraetzung",
AffectedDE: "Wartungspersonal", ZoneDE: "KSS-Tank, Leitungssystem",
DefaultSeverity: 2, DefaultExposure: 3,
},
{
ID: "HP1433", NameDE: "Unkontrollierte Achsbewegung bei Probelauf nach Wartung", NameEN: "Uncontrolled axis movement during test run after maintenance",
RequiredComponentTags: []string{"moving_part", "programmable"},
GeneratedHazardCats: []string{"mechanical_hazard"},
SuggestedMeasureIDs: []string{"M212", "M050", "M042"},
SuggestedEvidenceIDs: []string{"E01"},
Priority: 85, MachineTypes: cncTypes,
OperationalStates: []string{"manual_operation", "teach_mode"},
HumanRoles: []string{"maintenance_tech", "programmer"},
StateTransitions: []string{"maintenance→manual_operation"},
ScenarioDE: "Nach Wartung oder Reparatur verfahren Achsen unkontrolliert beim ersten Testlauf",
TriggerDE: "Falsche Parameter nach Wartung, fehlende Referenzfahrt, Endschalter nicht justiert",
HarmDE: "Quetschung, Kollision Werkzeug/Werkstueck",
AffectedDE: "Wartungspersonal, Einrichter", ZoneDE: "Verfahrbereich, Bearbeitungsraum",
DefaultSeverity: 4, DefaultExposure: 2,
},
{
ID: "HP1434", NameDE: "Restkuehlmittel tropft auf elektrische Komponenten", NameEN: "Residual coolant dripping on electrical components",
RequiredComponentTags: []string{"cutting_tool"},
RequiredEnergyTags: []string{"electrical"},
GeneratedHazardCats: []string{"electrical_hazard"},
SuggestedMeasureIDs: []string{"M087", "M274"},
SuggestedEvidenceIDs: []string{"E01", "E10"},
Priority: 70, MachineTypes: cncTypes,
OperationalStates: []string{"maintenance"},
HumanRoles: []string{"maintenance_tech"},
ScenarioDE: "Restkuehlmittel tropft bei Wartung auf Schaltschrank oder Steuerungskomponenten",
TriggerDE: "Fehlende Auffangwanne oder Abdeckung bei Wartung an KSS-fuehrenden Bauteilen",
HarmDE: "Kurzschluss, Stromschlag bei Beruehrung nasser Teile",
AffectedDE: "Wartungspersonal", ZoneDE: "Schaltschrank, Steuerungsbereich",
DefaultSeverity: 3, DefaultExposure: 2,
},
}
}
@@ -16,6 +16,7 @@ func GetProtectiveMeasureLibrary() []ProtectiveMeasureEntry {
all = append(all, getOSHAMeasures()...) // OSHA-Pflichtmassnahmen (Phase 2)
all = append(all, getTRGSMeasures()...) // TRGS-Gefahrstoff-Massnahmen (Phase 2)
all = append(all, getSupplementaryMeasures()...) // Luecken-Massnahmen aus RAG-Abgleich (Phase 2)
all = append(all, getMetalworkingMeasures()...) // Metalworking-Massnahmen (Phase 3)
return all
}
@@ -0,0 +1,38 @@
package iace
// getMetalworkingMeasures returns protective measures specific to metalworking
// machinery (CNC, turning, milling, grinding, welding). Each measure is derived
// from obligations in TRGS 551 (Kuehlschmierstoffe) and TRGS 528 (Schweissen),
// validated against RAG-extracted obligation texts.
// IDs: M404M421 (18 measures).
func getMetalworkingMeasures() []ProtectiveMeasureEntry {
return []ProtectiveMeasureEntry{
// ── Kühlschmierstoff-Management (TRGS 551) ──────────────────
{ID: "M404", ReductionType: "design", SubType: "material", Name: "KSS-Substitutionspruefung durchfuehren", Description: "Vor Einsatz eines Kuehlschmierstoffs wird geprueft ob ein weniger gefaehrlicher Stoff oder ein emissionsaermeres Verfahren verfuegbar ist. Bei PAK-haltigen Produkten ist Substitution zwingend.", HazardCategory: "material_environmental", Examples: []string{"Mineraloel-KSS durch Ester-KSS ersetzen", "MMS statt Ueberflutungskuehlung pruefen"}, NormReferences: []string{"TRGS 551 — Substitutionspflicht", "TRGS 600 — Substitution"}},
{ID: "M405", ReductionType: "protection", SubType: "extraction", Name: "KSS-Aerosolabsaugung an Werkzeugmaschinen", Description: "Kuehlschmierstoff-Aerosole und -Daempfe werden direkt an der Bearbeitungsstelle erfasst und ueber Oelnebelabscheider mit geeignetem Abscheidegrad gereinigt.", HazardCategory: "material_environmental", Examples: []string{"Absaughaube an CNC-Fraese", "Oelnebelabscheider mit HEPA-Nachfilter"}, NormReferences: []string{"TRGS 551 — Technische Schutzmassnahmen", "EN 1093-1"}},
{ID: "M406", ReductionType: "information", SubType: "organizational", Name: "KSS-Konzentration regelmaessig kontrollieren", Description: "Konzentration, pH-Wert und Keimbelastung des Kuehlschmierstoffs werden in festgelegten Intervallen geprueft und dokumentiert.", HazardCategory: "material_environmental", Examples: []string{"Woechentliche Refraktometer-Messung", "Monatliche mikrobiologische Untersuchung"}, NormReferences: []string{"TRGS 551 — Organisatorische Schutzmassnahmen", "DGUV Regel 109-003"}},
{ID: "M407", ReductionType: "information", SubType: "organizational", Name: "KSS-Wechselintervalle und Systempflege festlegen", Description: "Wechselintervalle fuer Kuehlschmierstoffe werden festgelegt. Maschinen-Innenseiten werden bei jedem Wechsel gereinigt, Systemreiniger eingesetzt.", HazardCategory: "material_environmental", Examples: []string{"KSS-Wechsel bei Keimzahl ueber 10^6 KBE/ml", "Systemreinigung vor Neubefuellung"}, NormReferences: []string{"TRGS 551 — Hygienemassnahmen", "DGUV Regel 109-003"}},
{ID: "M408", ReductionType: "information", SubType: "ppe", Name: "KSS-Hautschutzplan fuer Metalworking erstellen", Description: "Fuer Arbeitsplaetze mit KSS-Hautkontakt wird ein taetigkeitsbezogener Hautschutzplan erstellt mit Schutz-, Reinigungs- und Pflegemitteln.", HazardCategory: "material_environmental", Examples: []string{"Hautschutzcreme vor Arbeitsbeginn", "Milde Hautreinigung statt Loesemittel"}, NormReferences: []string{"TRGS 551 — Hygienemassnahmen", "TRGS 401 — Hautschutz"}},
// ── Späne-/Werkzeugmanagement ────────────────────────────────
{ID: "M409", ReductionType: "protection", SubType: "fixed_guard", Name: "Werkzeugbruch-Schutzscheibe dimensionieren", Description: "Schutzscheiben an Werkzeugmaschinen werden fuer die maximale kinetische Energie bei Werkzeugbruch dimensioniert und regelmaessig auf Risse geprueft.", HazardCategory: "mechanical", Examples: []string{"Polycarbonat-Scheibe an CNC-Drehmaschine", "Sicherheitsglas an Fraesmaschine"}, NormReferences: []string{"EN 12417 — CNC-Maschinen", "ISO 14120"}},
{ID: "M410", ReductionType: "protection", SubType: "extraction", Name: "Spaeneabsaugung und -entsorgung", Description: "Metallspaene werden an der Entstehungsstelle abgesaugt oder per Spaenefoerderer abgefuehrt. Spaenebehaelter werden regelmaessig entleert.", HazardCategory: "mechanical", Examples: []string{"Spaenefoerderer in Maschinenunterbau", "Spaenecontainer mit Kuehlmittel-Ruecklauf"}, NormReferences: []string{"EN 12417 — CNC-Maschinen", "TRGS 551 — Reinigung"}},
{ID: "M411", ReductionType: "information", SubType: "organizational", Name: "Spannmittelpruefung vor Bearbeitung", Description: "Spannmittel werden vor jeder Bearbeitung auf ausreichende Spannkraft, korrekte Aufnahme und Unwuchtfreiheit geprueft.", HazardCategory: "mechanical", Examples: []string{"Spannkraftmessung am Drehfutter", "Sichtpruefung Spannbacken auf Verschleiss"}, NormReferences: []string{"EN 1550 — Spannzeuge", "DGUV Regel 109-003"}},
// ── Schleifmaschinen ────────────────────────────────────────
{ID: "M412", ReductionType: "information", SubType: "organizational", Name: "Schleifscheiben-Pruefung vor Erstinbetriebnahme", Description: "Jede neue Schleifscheibe wird vor der Montage einer Klangpruefung unterzogen und nach Montage einem Probelauf bei maximaler Drehzahl ohne Last durchgefuehrt.", HazardCategory: "mechanical", Examples: []string{"Klangprobe auf Risse", "Probelauf 1 Minute bei Nenndrehzahl"}, NormReferences: []string{"OSHA 29 CFR 1910.215 — Abrasive Wheel Machinery", "DGUV Regel 109-003"}},
{ID: "M413", ReductionType: "design", SubType: "force_energy", Name: "Schleifspindel-Drehzahlbegrenzung", Description: "Die maximale Drehzahl der Schleifspindel wird so begrenzt, dass die zulaessige Umfangsgeschwindigkeit der Schleifscheibe nicht ueberschritten wird.", HazardCategory: "mechanical", Examples: []string{"Mechanische Drehzahlbegrenzung", "Elektronische Ueberdrehzahl-Abschaltung"}, NormReferences: []string{"EN 13218 — Schleifmaschinen", "DGUV Regel 109-003"}},
// ── Schweissen (TRGS 528) ───────────────────────────────────
{ID: "M414", ReductionType: "protection", SubType: "extraction", Name: "Schweissrauch-Absaugung im Fortluftbetrieb", Description: "Waehrend des Schweissens wird die Absauganlage dauerhaft im Fortluftmodus betrieben. Umluftbetrieb ist nur in schweissfreien Zeiten zulaessig.", HazardCategory: "material_environmental", Examples: []string{"Absaugarm mit Fortluftanschluss", "Hallentechnische Lueftung als Ergaenzung"}, NormReferences: []string{"TRGS 528 — Absaugung bei Schweissen", "DGUV Regel 109-002"}},
{ID: "M415", ReductionType: "protection", SubType: "extraction", Name: "Brennerintegrierte Absaugung bei Handschweissen", Description: "Beim Handschweissen wird eine brennerintegrierte Absaugung eingesetzt. Mindest- und Maximal-Absaugvolumenstrom werden nach Herstellerangabe eingestellt.", HazardCategory: "material_environmental", Examples: []string{"MIG/MAG-Brenner mit integrierter Absaugung", "Absaugvolumenstrom 800-1000 m3/h"}, NormReferences: []string{"TRGS 528 — Absaugung bei Schweissen von Hand", "EN ISO 21904-1"}},
{ID: "M416", ReductionType: "information", SubType: "organizational", Name: "Schweissarbeiten raeumlich trennen", Description: "Schweissarbeiten an verschiedenen Werkstoffen (Baustahl, hochlegierter Stahl, Aluminium) werden raeumlich oder zeitlich getrennt um Kreuzkontamination zu vermeiden.", HazardCategory: "material_environmental", Examples: []string{"Separate Schweissplaetze je Werkstoff", "Zeitliche Trennung mit Zwischenreinigung"}, NormReferences: []string{"TRGS 528 — Schutzmassnahmen", "DGUV Regel 109-002"}},
{ID: "M417", ReductionType: "information", SubType: "ppe", Name: "Geblaeseunterstuetzter Schweisserschutzschild", Description: "Bei unzureichender technischer Absaugung wird ein geblaeseunterstuetzter Schweisserschutzschild mit geeignetem Partikelfilter bereitgestellt.", HazardCategory: "material_environmental", Examples: []string{"Geblaeseeinheit mit P3-Filter", "Vollvisier-Schweisserschutzhelm mit Frischluft"}, NormReferences: []string{"TRGS 528 — Persoenliche Schutzmassnahmen", "EN 12941"}},
// ── Allgemein Metalworking ──────────────────────────────────
{ID: "M418", ReductionType: "information", SubType: "organizational", Name: "AGW-Ueberwachung KSS-Aerosole und Schweissrauche", Description: "Expositionsmessungen fuer KSS-Aerosole und Schweissrauche werden regelmaessig durchgefuehrt und mit Arbeitsplatzgrenzwerten verglichen.", HazardCategory: "material_environmental", Examples: []string{"Personenbezogene KSS-Aerosol-Messung", "Stationaere Schweissrauch-Messung"}, NormReferences: []string{"TRGS 402 — Ermittlung und Beurteilung", "TRGS 551 — Substitutionspflicht"}},
{ID: "M419", ReductionType: "information", SubType: "organizational", Name: "Arbeitsmedizinische Vorsorge Metalworking", Description: "Beschaeftigte mit KSS- oder Schweissrauch-Exposition erhalten arbeitsmedizinische Pflicht- oder Angebotsvorsorge.", HazardCategory: "material_environmental", Examples: []string{"Pflichtvorsorge bei Chrom-VI-Exposition", "Angebotsvorsorge bei KSS-Hautkontakt"}, NormReferences: []string{"TRGS 551 — Organisatorische Schutzmassnahmen", "ArbMedVV"}},
{ID: "M420", ReductionType: "information", SubType: "organizational", Name: "Reinigung von Maschinen und Arbeitsplaetzen", Description: "Maschinen, Arbeitsplaetze und Umgebungsflaechen werden regelmaessig von KSS-Rueckstaenden und Metallstaeuben gereinigt.", HazardCategory: "material_environmental", Examples: []string{"Taegliche Maschinenreinigung", "Industriesauger statt Druckluft zum Reinigen"}, NormReferences: []string{"TRGS 551 — Hygienemassnahmen", "TRGS 500 — Allgemeine Schutzmaßnahmen"}},
{ID: "M421", ReductionType: "information", SubType: "training", Name: "Unterweisung KSS-Gefahren und Schweissrauch", Description: "Beschaeftigte werden ueber Gesundheitsgefahren durch KSS und Schweissrauch, korrekte Handhabung und Notfallverhalten unterwiesen.", HazardCategory: "material_environmental", Examples: []string{"Jaehrliche KSS-Unterweisung", "Schulung Absauganlage-Bedienung"}, NormReferences: []string{"TRGS 551 — Organisatorische Schutzmassnahmen", "TRGS 528 — Gefaehrdungsbeurteilung"}},
}
}
@@ -116,6 +116,8 @@ func NewPatternEngine() *PatternEngine {
patterns = append(patterns, GetFinalPatternsB()...) // HP1085-HP1169 electrical/thermal/chemical/bio/radiation
patterns = append(patterns, GetFinalPatternsC()...) // HP1170-HP1254 software/control/org/ergonomic/fire
patterns = append(patterns, GetFinalPatternsD()...) // HP1255-HP1335 lifecycle/special situations
patterns = append(patterns, GetCNCHazardPatterns()...) // HP1400-HP1419 CNC/metalworking part 1 (Phase 3)
patterns = append(patterns, GetCNCHazardPatternsExt()...) // HP1420-HP1434 CNC/metalworking part 2 (Phase 3)
return &PatternEngine{
resolver: NewTagResolver(),
patterns: patterns,
@@ -194,5 +194,11 @@ func GetEvidenceTypeLibrary() []EvidenceTypeInfo {
{ID: "E48", Category: "cyber", LabelDE: "Software-Versionsmanagement-Nachweis", LabelEN: "Software Version Management Evidence", Tags: []string{"cyber_evidence"}, Sort: 48},
{ID: "E49", Category: "cyber", LabelDE: "Vulnerability-Scan-Bericht", LabelEN: "Vulnerability Scan Report", Tags: []string{"cyber_evidence", "test_evidence"}, Sort: 49},
{ID: "E50", Category: "cyber", LabelDE: "SBOM-Vollstaendigkeitsnachweis", LabelEN: "SBOM Completeness Evidence", Tags: []string{"cyber_evidence"}, Sort: 50},
// ── Phase 3: Metalworking-Evidenztypen (E51-E55) ─────────────
{ID: "E51", Category: "test", LabelDE: "KSS-Analyseprotokoll", LabelEN: "MWF Analysis Protocol", Tags: []string{"test_evidence"}, Sort: 51},
{ID: "E52", Category: "test", LabelDE: "Schleifscheiben-Pruefprotokoll", LabelEN: "Grinding Wheel Test Protocol", Tags: []string{"test_evidence"}, Sort: 52},
{ID: "E53", Category: "test", LabelDE: "Spannmittel-Pruefprotokoll", LabelEN: "Clamping Device Test Protocol", Tags: []string{"test_evidence"}, Sort: 53},
{ID: "E54", Category: "inspection", LabelDE: "Schweissnaht-Qualifikationsnachweis", LabelEN: "Weld Qualification Record", Tags: []string{"certification_evidence"}, Sort: 54},
{ID: "E55", Category: "inspection", LabelDE: "KSS-Hautschutzplan (ausgefuellt)", LabelEN: "MWF Skin Protection Plan (completed)", Tags: []string{"inspection_evidence"}, Sort: 55},
}
}