feat: IACE CE-Compliance Module — Normen, Risikobewertung, Production Lines

Major features:
- 215 norms library with section references + Beuth URLs (A/B1/B2/C norms)
- 173 hazard patterns with detail fields (scenario, trigger, harm, zone)
- Deterministic pattern matching: Component × Lifecycle × Pattern cross-product
- SIL/PL auto-calculation from S×E×P risk graph
- Risk assessment table with editable S/E/P dropdowns
- Production Line Dashboard with animated station flow (Running Dots)
- IACE process flow + norms coverage on start page
- Non-blocking cookie banner, ProcessFlow SSR fix
- 104 Playwright E2E tests passing

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-05-07 10:53:26 +02:00
parent 3853a0838a
commit e7f2f98da3
59 changed files with 8326 additions and 525 deletions
@@ -0,0 +1,290 @@
package iace
// GetExtendedCNormsLibrary returns additional machine-specific C-norms
// for less common machine categories.
func GetExtendedCNormsLibrary() []NormReference {
return []NormReference{
// ── Erdbaumaschinen ─────────────────────────────────────────────────
{
ID: "EN-474-1", Number: "EN 474-1:2006+A6:2019",
TitleDE: "Erdbaumaschinen — Sicherheit — Teil 1: Allgemeine Anforderungen",
NormType: "C",
ScopeDE: "Allgemeine Sicherheitsanforderungen fuer Erdbaumaschinen: Standsicherheit, Sichtverhaeltnisse, Hydrauliksysteme, Ueberrollschutz.",
MachineTypes: []string{"earth_moving", "excavator", "wheel_loader"},
HazardCats: []string{"mechanical_hazard", "pneumatic_hydraulic"},
Tags: []string{"high_force", "gravity_risk", "hydraulic_part"},
Mandatory: false,
RelevantSections: []string{"Abschnitt 5 (Sicherheitsanforderungen)", "Abschnitt 6 (Standsicherheit)"},
BeuthURL: "https://www.beuth.de/de/norm/din-en-474-1",
},
// ── Flurfoerderzeuge ────────────────────────────────────────────────
{
ID: "EN-1726-1", Number: "EN 1726-1:1998+A1:2008",
TitleDE: "Sicherheit von Flurfoerderzeugen — Teil 1: Motorisch angetriebene Flurfoerderzeuge bis einschliesslich 10000 kg",
NormType: "C",
ScopeDE: "Sicherheitsanforderungen fuer Flurfoerderzeuge (Gabelstapler): Standsicherheit, Bremsen, Fahrerschutz, Lasthandhabung.",
MachineTypes: []string{"forklift", "industrial_truck"},
HazardCats: []string{"mechanical_hazard"},
Tags: []string{"moving_part", "gravity_risk"},
Mandatory: false,
RelevantSections: []string{"Abschnitt 5 (Sicherheitsanforderungen)"},
BeuthURL: "https://www.beuth.de/de/norm/din-en-1726-1",
},
// ── Hebezeuge / Krane ───────────────────────────────────────────────
{
ID: "EN-15011", Number: "EN 15011:2011+A1:2014",
TitleDE: "Krane — Brueckenkrane und Portalkrane",
NormType: "C",
ScopeDE: "Sicherheitsanforderungen fuer Bruecken- und Portalkrane: Tragfaehigkeit, Endschalter, Ueberlastsicherung, Windlastberuecksichtigung.",
MachineTypes: []string{"crane", "bridge_crane", "gantry_crane"},
HazardCats: []string{"mechanical_hazard"},
Tags: []string{"gravity_risk", "high_force", "moving_part", "person_under_load"},
Mandatory: true,
RelevantSections: []string{"Abschnitt 5 (Sicherheitsanforderungen)", "Abschnitt 6 (Lastaufnahme)"},
BeuthURL: "https://www.beuth.de/de/norm/din-en-15011",
},
{
ID: "EN-14492-1", Number: "EN 14492-1:2006+A1:2009",
TitleDE: "Krane — Kraftbetriebene Winden und Hubwerke — Teil 1: Kraftbetriebene Winden",
NormType: "C",
ScopeDE: "Sicherheitsanforderungen fuer kraftbetriebene Winden: Bremssystem, Seilwicklung, Ueberlastschutz, Endlagenschalter.",
MachineTypes: []string{"crane", "winch", "hoist"},
HazardCats: []string{"mechanical_hazard"},
Tags: []string{"gravity_risk", "high_force"},
Mandatory: false,
RelevantSections: []string{"Abschnitt 5 (Sicherheitsanforderungen)"},
BeuthURL: "https://www.beuth.de/de/norm/din-en-14492-1",
},
// ── Schweissmaschinen ───────────────────────────────────────────────
{
ID: "EN-60974-1", Number: "EN 60974-1:2012",
TitleDE: "Lichtbogenschweisseinrichtungen — Teil 1: Schweissstromquellen",
NormType: "C",
ScopeDE: "Sicherheitsanforderungen fuer Schweissstromquellen: Isolation, Leerlaufspannung, thermischer Schutz, EMV.",
MachineTypes: []string{"welding_machine", "arc_welder"},
HazardCats: []string{"electrical_hazard", "thermal_hazard"},
Tags: []string{"electrical_part", "high_temperature", "high_voltage"},
Mandatory: false,
RelevantSections: []string{"Abschnitt 5 (Sicherheitsanforderungen)"},
BeuthURL: "https://www.beuth.de/de/norm/din-en-60974-1",
},
// ── Druckmaschinen (erweitert) ──────────────────────────────────────
{
ID: "EN-1010-2", Number: "EN 1010-2:2006+A1:2010",
TitleDE: "Sicherheit von Maschinen — Sicherheitsanforderungen an Druckmaschinen — Teil 2: Druck- und Lackiermaschinen",
NormType: "C",
ScopeDE: "Sicherheitsanforderungen fuer Druck- und Lackiermaschinen: Farbwerk, Lackierwalzen, Loesemittelhandhabung, Explosionsschutz.",
MachineTypes: []string{"printing_press", "coating_machine"},
HazardCats: []string{"mechanical_hazard", "material_substance_hazard"},
Tags: []string{"rotating_part", "chemical_risk", "entanglement_risk"},
Mandatory: false,
RelevantSections: []string{"Abschnitt 5 (Sicherheitsanforderungen)"},
BeuthURL: "https://www.beuth.de/de/norm/din-en-1010-2",
},
// ── Pumpen / Kompressoren ───────────────────────────────────────────
{
ID: "EN-809", Number: "EN 809:1998+A1:2009",
TitleDE: "Pumpen und Pumpenaggregate fuer Fluessigkeiten — Allgemeine Sicherheitsanforderungen",
NormType: "C",
ScopeDE: "Allgemeine Sicherheitsanforderungen fuer Pumpen: Druckbegrenzung, Dichtungen, Leckageschutz, Trockenlaufschutz.",
MachineTypes: []string{"pump"},
HazardCats: []string{"mechanical_hazard", "pneumatic_hydraulic"},
Tags: []string{"rotating_part", "hydraulic_part", "high_pressure"},
Mandatory: false,
RelevantSections: []string{"Abschnitt 5 (Sicherheitsanforderungen)"},
BeuthURL: "https://www.beuth.de/de/norm/din-en-809",
},
{
ID: "EN-1012-1", Number: "EN 1012-1:2010",
TitleDE: "Kompressoren und Vakuumpumpen — Sicherheitsanforderungen — Teil 1: Kompressoren",
NormType: "C",
ScopeDE: "Sicherheitsanforderungen fuer Kompressoren: Druckbehaelter, Ueberdrucksicherung, Kuehlsystem, Laermminderung.",
MachineTypes: []string{"compressor"},
HazardCats: []string{"mechanical_hazard", "noise_vibration"},
Tags: []string{"high_pressure", "pneumatic_part", "noise_source", "high_temperature"},
Mandatory: false,
RelevantSections: []string{"Abschnitt 5 (Sicherheitsanforderungen)"},
BeuthURL: "https://www.beuth.de/de/norm/din-en-1012-1",
},
// ── Textilmaschinen ─────────────────────────────────────────────────
{
ID: "EN-ISO-11111-1", Number: "EN ISO 11111-1:2009",
TitleDE: "Textilmaschinen — Sicherheitsanforderungen — Teil 1: Gemeinsame Anforderungen",
NormType: "C",
ScopeDE: "Gemeinsame Sicherheitsanforderungen fuer Textilmaschinen: Einzugstellen an Walzen, Fadenrisse, Nadelschutz, Laermminderung.",
MachineTypes: []string{"textile_machine"},
HazardCats: []string{"mechanical_hazard"},
Tags: []string{"rotating_part", "entanglement_risk"},
Mandatory: false,
RelevantSections: []string{"Abschnitt 4 (Allgemeine Gefaehrdungen)"},
BeuthURL: "https://www.beuth.de/de/norm/din-en-iso-11111-1",
},
// ── Giessereimaschinen ──────────────────────────────────────────────
{
ID: "EN-710", Number: "EN 710:1997+A1:2008",
TitleDE: "Sicherheitsanforderungen an Giessereiformmaschinen und -anlagen",
NormType: "C",
ScopeDE: "Sicherheitsanforderungen fuer Giessereiformmaschinen: Formschliessbewegung, Sandaufbereitung, Giessvorgaenge, thermische Gefaehrdungen.",
MachineTypes: []string{"foundry_machine", "casting_machine"},
HazardCats: []string{"mechanical_hazard", "thermal_hazard"},
Tags: []string{"high_temperature", "high_force"},
Mandatory: false,
RelevantSections: []string{"Abschnitt 5 (Sicherheitsanforderungen)"},
BeuthURL: "https://www.beuth.de/de/norm/din-en-710",
},
{
ID: "EN-869", Number: "EN 869:2006+A1:2009",
TitleDE: "Sicherheit von Maschinen — Sicherheitsanforderungen an Druckgiessmaschinen",
NormType: "C",
ScopeDE: "Sicherheitsanforderungen fuer Druckgiessmaschinen: Schliesskraft, Metallspritzer, Hydraulik, Temperaturueberwachung.",
MachineTypes: []string{"die_casting", "foundry_machine"},
HazardCats: []string{"mechanical_hazard", "thermal_hazard"},
Tags: []string{"high_temperature", "high_force", "hydraulic_part"},
Mandatory: false,
RelevantSections: []string{"Abschnitt 5 (Sicherheitsanforderungen)"},
BeuthURL: "https://www.beuth.de/de/norm/din-en-869",
},
// ── Aufzuege ────────────────────────────────────────────────────────
{
ID: "EN-81-20", Number: "EN 81-20:2020",
TitleDE: "Sicherheitsregeln fuer die Konstruktion und den Einbau von Aufzuegen — Teil 20: Personen- und Lastenaufzuege",
NormType: "C",
ScopeDE: "Sicherheitsregeln fuer Personen- und Lastenaufzuege: Triebwerk, Fangvorrichtung, Tuersysteme, Steuerung, Notbetrieb.",
MachineTypes: []string{"elevator", "lift"},
HazardCats: []string{"mechanical_hazard", "electrical_hazard"},
Tags: []string{"gravity_risk", "moving_part", "electrical_part"},
Mandatory: true,
RelevantSections: []string{"Abschnitt 5 (Mechanik)", "Abschnitt 6 (Elektrik)"},
BeuthURL: "https://www.beuth.de/de/norm/din-en-81-20",
},
// ── Landmaschinen ───────────────────────────────────────────────────
{
ID: "ISO-4254-1", Number: "ISO 4254-1:2013",
TitleDE: "Landmaschinen — Sicherheit — Teil 1: Allgemeine Anforderungen",
NormType: "C",
ScopeDE: "Allgemeine Sicherheitsanforderungen fuer Landmaschinen: Gelenkwellenschutz, Zugangsleitern, Betriebsanleitung, Standsicherheit.",
MachineTypes: []string{"agricultural_machine"},
HazardCats: []string{"mechanical_hazard"},
Tags: []string{"moving_part", "rotating_part"},
Mandatory: false,
RelevantSections: []string{"Abschnitt 4 (Allgemeine Anforderungen)"},
BeuthURL: "https://www.beuth.de/de/norm/din-en-iso-4254-1",
},
// ── Zentrifugen ─────────────────────────────────────────────────────
{
ID: "EN-12547", Number: "EN 12547:2009",
TitleDE: "Zentrifugen — Allgemeine Sicherheitsanforderungen",
NormType: "C",
ScopeDE: "Sicherheitsanforderungen fuer Zentrifugen: Unwuchtschutz, Deckelverriegelung, Drehzahlueberwachung, Berstschutz.",
MachineTypes: []string{"centrifuge"},
HazardCats: []string{"mechanical_hazard"},
Tags: []string{"rotating_part", "high_speed"},
Mandatory: false,
RelevantSections: []string{"Abschnitt 5 (Sicherheitsanforderungen)"},
BeuthURL: "https://www.beuth.de/de/norm/din-en-12547",
},
// ── Trocknungsanlagen / Oefen ───────────────────────────────────────
{
ID: "EN-1539", Number: "EN 1539:2015",
TitleDE: "Trockner und Oefen mit Freisetzung brennbarer Stoffe — Sicherheitsanforderungen",
NormType: "C",
ScopeDE: "Sicherheitsanforderungen fuer Trockner und Oefen: Explosionsschutz, Lueftung, Temperaturueberwachung, Inertisierung.",
MachineTypes: []string{"dryer", "oven", "kiln"},
HazardCats: []string{"thermal_hazard", "material_substance_hazard"},
Tags: []string{"high_temperature", "chemical_risk"},
Mandatory: false,
RelevantSections: []string{"Abschnitt 4 (Risikobeurteilung)", "Abschnitt 5 (Schutzmassnahmen)"},
BeuthURL: "https://www.beuth.de/de/norm/din-en-1539",
},
// ── Nahrungsmittelmaschinen (erweitert) ─────────────────────────────
{
ID: "EN-1678", Number: "EN 1678:1998+A1:2010",
TitleDE: "Nahrungsmittelmaschinen — Gemuese-Schneidmaschinen — Sicherheits- und Hygieneanforderungen",
NormType: "C",
ScopeDE: "Sicherheits- und Hygieneanforderungen fuer Gemuese-Schneidmaschinen: Messerabdeckung, Einzugstellen, Reinigbarkeit.",
MachineTypes: []string{"food_machine", "food_cutter"},
HazardCats: []string{"mechanical_hazard"},
Tags: []string{"cutting_part", "rotating_part"},
Mandatory: false,
RelevantSections: []string{"Abschnitt 5 (Sicherheitsanforderungen)"},
BeuthURL: "https://www.beuth.de/de/norm/din-en-1678",
},
// ── Gummi-/Kunststoff (erweitert) ───────────────────────────────────
{
ID: "EN-1612-1", Number: "EN 1612-1:1997+A1:2008",
TitleDE: "Kunststoff- und Gummimaschinen — Reaktionsgiessmaschinen — Teil 1: Sicherheitsanforderungen",
NormType: "C",
ScopeDE: "Sicherheitsanforderungen fuer Reaktionsgiessmaschinen: Mischkopf, Chemikalienhandhabung, Druckueberwachung.",
MachineTypes: []string{"reaction_molding", "plastics_machine"},
HazardCats: []string{"mechanical_hazard", "material_substance_hazard"},
Tags: []string{"high_temperature", "chemical_risk"},
Mandatory: false,
RelevantSections: []string{"Abschnitt 5 (Sicherheitsanforderungen)"},
BeuthURL: "https://www.beuth.de/de/norm/din-en-1612-1",
},
// ── Industrieoefen ──────────────────────────────────────────────────
{
ID: "EN-746-1", Number: "EN 746-1:1997+A1:2009",
TitleDE: "Industrielle Thermoprozessanlagen — Teil 1: Allgemeine Sicherheitsanforderungen",
NormType: "C",
ScopeDE: "Allgemeine Sicherheitsanforderungen fuer industrielle Thermoprozessanlagen: Temperaturueberwachung, Beschickung, Atmosphaerenkontrolle.",
MachineTypes: []string{"industrial_furnace", "heat_treatment"},
HazardCats: []string{"thermal_hazard", "material_substance_hazard"},
Tags: []string{"high_temperature", "chemical_risk"},
Mandatory: false,
RelevantSections: []string{"Abschnitt 5 (Schutzmassnahmen)"},
BeuthURL: "https://www.beuth.de/de/norm/din-en-746-1",
},
{
ID: "EN-746-2", Number: "EN 746-2:2010",
TitleDE: "Industrielle Thermoprozessanlagen — Teil 2: Sicherheitsanforderungen an Feuerungen und Brennstoffversorgung",
NormType: "C",
ScopeDE: "Sicherheitsanforderungen fuer Feuerungen und Brennstoffversorgung: Flammueberwachung, Gasleckageerkennung, Spuelprogramme.",
MachineTypes: []string{"industrial_furnace", "heat_treatment"},
HazardCats: []string{"thermal_hazard", "material_substance_hazard"},
Tags: []string{"high_temperature", "chemical_risk"},
Mandatory: false,
RelevantSections: []string{"Abschnitt 5 (Sicherheitsanforderungen Feuerung)"},
BeuthURL: "https://www.beuth.de/de/norm/din-en-746-2",
},
// ── Mischer / Kneter ────────────────────────────────────────────────
{
ID: "EN-453", Number: "EN 453:2000+A1:2009",
TitleDE: "Nahrungsmittelmaschinen — Teigknetmaschinen — Sicherheits- und Hygieneanforderungen",
NormType: "C",
ScopeDE: "Sicherheits- und Hygieneanforderungen fuer Teigknetmaschinen: Knetarmschutz, Deckelverriegelung, Reinigbarkeit.",
MachineTypes: []string{"mixer", "kneading_machine", "food_machine"},
HazardCats: []string{"mechanical_hazard"},
Tags: []string{"rotating_part", "entanglement_risk"},
Mandatory: false,
RelevantSections: []string{"Abschnitt 5 (Sicherheitsanforderungen)"},
BeuthURL: "https://www.beuth.de/de/norm/din-en-453",
},
// ── Schneidemaschinen Papier ────────────────────────────────────────
{
ID: "EN-1010-3", Number: "EN 1010-3:2002+A1:2009",
TitleDE: "Sicherheit von Maschinen — Druck- und Papierverarbeitungsmaschinen — Teil 3: Schneidemaschinen",
NormType: "C",
ScopeDE: "Sicherheitsanforderungen fuer Papierschneidemaschinen: Messerbalken, Zweihandschaltung, Pressbalken, Schnittlaengenbegrenzung.",
MachineTypes: []string{"cutting_machine", "paper_machine"},
HazardCats: []string{"mechanical_hazard"},
Tags: []string{"cutting_part", "high_force"},
Mandatory: false,
RelevantSections: []string{"Abschnitt 5 (Sicherheitsanforderungen)"},
BeuthURL: "https://www.beuth.de/de/norm/din-en-1010-3",
},
// ── Sicherheitskomponenten (B2-nah, haeufig in C-Norm-Listen) ──────
{
ID: "EN-ISO-13851", Number: "EN ISO 13851:2019",
TitleDE: "Sicherheit von Maschinen — Zweihandschaltungen — Gestaltungsleitsaetze",
NormType: "C",
ScopeDE: "Gestaltungsleitsaetze fuer Zweihandschaltungen: Typ-Klassifikation (I, II, IIIA, IIIB, IIIC), Betaetigungszeit, Nachlaufueberwachung.",
MachineTypes: []string{},
HazardCats: []string{"safety_function_failure", "mechanical_hazard"},
Tags: []string{"two_hand_control_required", "crush_point"},
Mandatory: false,
RelevantSections: []string{"Abschnitt 4 (Typen)", "Abschnitt 5 (Gestaltung)"},
BeuthURL: "https://www.beuth.de/de/norm/din-en-iso-13851",
},
}
}