Files
breakpilot-compliance/ai-compliance-sdk/internal/iace/measures_library_mandatory.go
T
Benjamin Admin c075ecb721 feat(iace): Phase 2 — RAG-validierte Massnahmen-Erweiterung 241→428, Evidenztypen 25→50
- 62 Kap.-Verweise durch Themen-Deskriptoren ersetzt (0 verbleibend)
- measures_library_trbs.go: +85 Massnahmen (M217-M301) aus TRBS 1111/1201/2111/2121/2131/2141/2152
- measures_library_osha.go: +70 Massnahmen (M302-M371) aus OSHA Machine Guarding/LOTO/Electrical/Robots/Noise/Ergonomics/Pressure Vessels
- measures_library_trgs.go: +11 Massnahmen (M372-M382) aus TRGS 600/500/401/402/509/727/555
- measures_library_supplementary.go: +21 Massnahmen (M383-M403) aus RAG-Gap-Analyse gegen 6.141 extrahierte Obligations
  - Brandschutz (8): TRGS 509/510/511/741/751 — Brandkonzept, Loeschanlagen, Brandmeldung, Fluchtweg
  - Strahlung/Laser (5): OSHA TM Ch.6 — Laserklasse, Laserschutz, LSB, Absaugung
  - TRBS 1115 Cybersecurity MSR (3): Cyber-GBU fuer Safety-SPS, Pruefung, Aenderungsmanagement
  - TRBS 1112 Instandhaltung (3): GBU Instandhaltung, kontrollierte Handsteuerung, Fremdfirmenkoordination
  - ASR (2): Sicherheitsbeleuchtung, Quetschschutz kraftbetaetigte Tueren
- tag_resolver.go: +25 Evidenztypen (E26-E50) — Materialzertifikat, EMV, Druckpruefung, Laser, ATEX, SIL/PL-Validierung, SBOM

Methodik: Systematische Obligation Extraction aus 152 Dokumenten (TRBS/TRGS/ASR/OSHA)
in Qdrant bp_compliance_ce (83.222 Chunks), Gap-Analyse gegen bestehende Bibliothek,
eigene Formulierungen (keine Normtext-Reproduktion).

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

62 lines
11 KiB
Go

package iace
// GetMandatoryNormMeasures returns protective measures that are REQUIRED
// by specific harmonized standards. These are not optional risk reductions
// but mandatory requirements that must be implemented when the referenced
// norm is applied. Deviating from these requires the manufacturer to
// independently prove equivalent safety (loss of presumption of conformity).
func GetMandatoryNormMeasures() []ProtectiveMeasureEntry {
return []ProtectiveMeasureEntry{
// ── Pressen (EN 692, EN 693, ISO 16092) ─────────────────────
{ID: "MN001", ReductionType: "protective", SubType: "safety_control", Name: "Zweihandschaltung Typ IIIC", Description: "Zweihandschaltung nach EN 574 Typ IIIC fuer Pressen mit Handbeschickung.", HazardCategory: "mechanical", Mandatory: true, MandatoryNorm: "EN 692 — Sicherheit mechanische Pressen", NormReferences: []string{"EN 692", "EN 574"}},
{ID: "MN002", ReductionType: "protective", SubType: "safety_control", Name: "Stoesselabsturzsicherung", Description: "Mechanische oder hydraulische Stoesselabsturzsicherung bei vertikalen Pressen.", HazardCategory: "mechanical", Mandatory: true, MandatoryNorm: "EN 693 — Sicherheit hydraulische Pressen", NormReferences: []string{"EN 693", "EN 692"}},
{ID: "MN003", ReductionType: "protective", SubType: "movable_guard", Name: "Schutztuere mit Zuhaltung (Presse)", Description: "Bewegliche trennende Schutzeinrichtung mit Zuhaltung am Werkzeugeinbauraum.", HazardCategory: "mechanical", Mandatory: true, MandatoryNorm: "EN 692 — Sicherheit mechanische Pressen", NormReferences: []string{"EN 692", "ISO 14119"}},
// ── Roboter/Cobot (ISO 10218, ISO/TS 15066) ─────────────────
{ID: "MN004", ReductionType: "protective", SubType: "safety_control", Name: "Kraft-/Geschwindigkeitsbegrenzung Cobot", Description: "Begrenzung von Kontaktkraft und TCP-Geschwindigkeit gemaess ISO/TS 15066 Tabelle A.2.", HazardCategory: "mechanical", Mandatory: true, MandatoryNorm: "ISO/TS 15066 — Kraft-/Druckgrenzwerte Cobot", NormReferences: []string{"ISO/TS 15066", "ISO 10218-1"}},
{ID: "MN005", ReductionType: "protective", SubType: "safety_control", Name: "Sicherheitsbewerteter Stopp (Roboter)", Description: "Sicherheitsbewerteter ueberwachter Stopp bei Personeneintritt in den Arbeitsraum.", HazardCategory: "mechanical", Mandatory: true, MandatoryNorm: "ISO 10218-1 — Geschwindigkeitsbegrenzung Roboter", NormReferences: []string{"ISO 10218-1", "ISO 10218-2"}},
{ID: "MN006", ReductionType: "protective", SubType: "electro_sensitive", Name: "Sicherheitsscanner Cobot-Arbeitsraum", Description: "Optoelektronische Raumüberwachung fuer Geschwindigkeitsreduzierung bei Annaeherung.", HazardCategory: "mechanical", Mandatory: true, MandatoryNorm: "ISO 10218-2 — Kollaborativer Betrieb", NormReferences: []string{"ISO 10218-2", "IEC 61496-3"}},
// ── Aufzuege (EN 81-20) ──────────────────────────────────────
{ID: "MN007", ReductionType: "protective", SubType: "safety_control", Name: "Fangvorrichtung Aufzug", Description: "Mechanische Fangvorrichtung die den Fahrkorb bei Seilbruch oder Uebergeschwindigkeit stoppt.", HazardCategory: "mechanical", Mandatory: true, MandatoryNorm: "EN 81-20 — Sicherheit Aufzuege", NormReferences: []string{"EN 81-20"}},
{ID: "MN008", ReductionType: "protective", SubType: "safety_control", Name: "Geschwindigkeitsbegrenzer Aufzug", Description: "Geschwindigkeitsbegrenzer der bei Uebergeschwindigkeit die Fangvorrichtung ausloest.", HazardCategory: "mechanical", Mandatory: true, MandatoryNorm: "EN 81-20 — Sicherheit Aufzuege", NormReferences: []string{"EN 81-20"}},
{ID: "MN009", ReductionType: "protective", SubType: "safety_control", Name: "Puffer im Aufzugsschacht", Description: "Energieabsorbierende Puffer am Schachtboden und -decke als letzte Sicherung.", HazardCategory: "mechanical", Mandatory: true, MandatoryNorm: "EN 81-20 — Sicherheit Aufzuege", NormReferences: []string{"EN 81-20"}},
// ── Flurfoerderzeuge (EN 1726, EN ISO 3691) ──────────────────
{ID: "MN010", ReductionType: "protective", SubType: "safety_control", Name: "Redundante Lastaufnahme (Gabelstapler)", Description: "Zweifache Lastaufhaengung: Jede Kette/Gurt muss einzeln die volle Last tragen koennen.", HazardCategory: "mechanical", Mandatory: true, MandatoryNorm: "EN 1726-1 — Sicherheit Flurfoerderzeuge", NormReferences: []string{"EN 1726-1", "EN ISO 3691-1"}},
{ID: "MN011", ReductionType: "protective", SubType: "safety_control", Name: "Kippschutz Gabelstapler", Description: "Standsicherheitsnachweis bei max. Nennlast und maximaler Hubhoehe.", HazardCategory: "mechanical", Mandatory: true, MandatoryNorm: "EN 1726-1 — Sicherheit Flurfoerderzeuge", NormReferences: []string{"EN 1726-1"}},
// ── Holzbearbeitung (EN 1870, EN 848) ────────────────────────
{ID: "MN012", ReductionType: "protective", SubType: "fixed_guard", Name: "Spaltkeil Kreissaege", Description: "Spaltkeil hinter dem Saegeblatt verhindert Rueckschlag.", HazardCategory: "mechanical", Mandatory: true, MandatoryNorm: "EN 1870-1 — Sicherheit Kreissaegen", NormReferences: []string{"EN 1870-1"}},
{ID: "MN013", ReductionType: "protective", SubType: "fixed_guard", Name: "Saegeblattschutzhaube", Description: "Schutzhaube ueber dem nicht arbeitenden Teil des Saegeblatts.", HazardCategory: "mechanical", Mandatory: true, MandatoryNorm: "EN 1870-1 — Sicherheit Kreissaegen", NormReferences: []string{"EN 1870-1"}},
// ── Krane (EN 15011, EN 13000) ───────────────────────────────
{ID: "MN014", ReductionType: "protective", SubType: "safety_control", Name: "Ueberlastsicherung Kran", Description: "Automatische Lastmomentbegrenzung die Hub bei Ueberschreitung der Nennlast sperrt.", HazardCategory: "mechanical", Mandatory: true, MandatoryNorm: "EN 15011 — Sicherheit Brueckenkrane", NormReferences: []string{"EN 15011", "EN 13000"}},
{ID: "MN015", ReductionType: "protective", SubType: "safety_control", Name: "Endschalter Kran (Hub/Fahrt)", Description: "Begrenzungsschalter fuer Hubbewegung, Katzfahrt und Kranfahrt.", HazardCategory: "mechanical", Mandatory: true, MandatoryNorm: "EN 15011 — Sicherheit Brueckenkrane", NormReferences: []string{"EN 15011"}},
// ── Allgemein (ISO 13850, EN 60204-1) ────────────────────────
{ID: "MN016", ReductionType: "protective", SubType: "emergency_stop", Name: "Not-Halt Kategorie 0 oder 1", Description: "Not-Halt-Einrichtung an jeder Bedienstelle, gut sichtbar und erreichbar.", HazardCategory: "safety_function", Mandatory: true, MandatoryNorm: "ISO 13850 — Not-Halt-Gestaltung", NormReferences: []string{"ISO 13850", "EN 60204-1"}},
{ID: "MN017", ReductionType: "protective", SubType: "electrical_protection", Name: "Hauptschalter absperrbar", Description: "Hauptschalter muss in Aus-Stellung abschliessbar sein (Lockout).", HazardCategory: "electrical", Mandatory: true, MandatoryNorm: "EN 60204-1 — Trennen und Ausschalten", NormReferences: []string{"EN 60204-1"}},
{ID: "MN018", ReductionType: "protective", SubType: "electrical_protection", Name: "Schutzleiteranschluss", Description: "Alle leitfaehigen Gehaeuseteile muessen mit dem Schutzleiter verbunden sein.", HazardCategory: "electrical", Mandatory: true, MandatoryNorm: "EN 60204-1 — Steuerstromkreise", NormReferences: []string{"EN 60204-1"}},
// ── AGV (EN ISO 3691-4) ──────────────────────────────────────
{ID: "MN019", ReductionType: "protective", SubType: "safety_control", Name: "Personenerkennung AGV", Description: "Sicherheitssensor (Laserscanner) zur Personenerkennung im Fahrweg des AGV.", HazardCategory: "mechanical", Mandatory: true, MandatoryNorm: "EN ISO 3691-4 — Fahrerlose Transportsysteme", NormReferences: []string{"EN ISO 3691-4"}},
{ID: "MN020", ReductionType: "protective", SubType: "safety_control", Name: "Notbremseinrichtung AGV", Description: "Automatische Bremsung bei Hinderniserkennung, manueller Not-Halt am Fahrzeug.", HazardCategory: "mechanical", Mandatory: true, MandatoryNorm: "EN ISO 3691-4 — Fahrerlose Transportsysteme", NormReferences: []string{"EN ISO 3691-4"}},
// ── Kettensaege (ISO 11681) ──────────────────────────────────
{ID: "MN021", ReductionType: "protective", SubType: "safety_control", Name: "Kettenbremse (Kettensaege)", Description: "Kettenbremse die bei Rueckschlag die Kette innerhalb von 0,12s stoppt.", HazardCategory: "mechanical", Mandatory: true, MandatoryNorm: "ISO 11681-1 — Kettensaegen Vibrationsschutz", NormReferences: []string{"ISO 11681-1"}},
// ── Fahrtreppen (EN 115-1) ───────────────────────────────────
{ID: "MN022", ReductionType: "protective", SubType: "safety_control", Name: "Kammplatte Fahrtreppe", Description: "Kammplatten am Zu- und Abgang verhindern Einklemmen von Schuhwerk und Kleidung.", HazardCategory: "mechanical", Mandatory: true, MandatoryNorm: "EN 115-1 — Sicherheit Fahrtreppen", NormReferences: []string{"EN 115-1"}},
// ── Sicherheitsfunktionen allgemein (ISO 13849-1) ────────────
{ID: "MN023", ReductionType: "protective", SubType: "safety_control", Name: "Sicherheitsfunktion PL/SIL-konform", Description: "Jede Sicherheitsfunktion muss das per Risikograph ermittelte PL/SIL nachweislich erreichen.", HazardCategory: "safety_function", Mandatory: true, MandatoryNorm: "ISO 13849-1 — Gestaltungsleitsaetze", NormReferences: []string{"ISO 13849-1", "IEC 62061"}},
// ── Druckgeraete (EN ISO 4126-1) ─────────────────────────────
{ID: "MN024", ReductionType: "protective", SubType: "fluid_protection", Name: "Sicherheitsventil Druckbehaelter", Description: "Jeder Druckbehaelter muss mit einem Sicherheitsventil gegen unzulaessigen Ueberdruck gesichert sein.", HazardCategory: "pneumatic_hydraulic", Mandatory: true, MandatoryNorm: "EN ISO 4126-1 — Sicherheitsventile", NormReferences: []string{"EN ISO 4126-1"}},
// ── Schweissen (EN 60974-1) ──────────────────────────────────
{ID: "MN025", ReductionType: "protective", SubType: "electrical_protection", Name: "Leerlaufspannungsbegrenzung Schweissgeraet", Description: "Leerlaufspannung bei Lichtbogenhandschweissgeraeten max. 113V Spitze (AC) bzw. 113V (DC).", HazardCategory: "electrical", Mandatory: true, MandatoryNorm: "EN 60974-1 — Schweissgeraete Isolierung", NormReferences: []string{"EN 60974-1"}},
}
}