feat(iace): mark 300 withdrawn norms + add validity fields

Compared 750 IACE norms against EU Official Journal harmonised standards
list (SummaryListForLegislation, generated 30.03.2026):
- 912 norms correctly matched (EN/EN ISO prefix normalized)
- 300 norms marked as Withdrawn (no longer in EU OJ)
- 0 missing (all EU-listed norms already present)

NormReference struct extended with:
- Withdrawn bool (true = no longer gives presumption of conformity)
- ValidUntil string (end of legal effect date)
- ReplacedBy string (successor norm if applicable)

Source: EU Commission Implementing Decision 2023/1586 + amendments.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-05-09 07:58:58 +02:00
parent 55e44df256
commit 9034a3071c
25 changed files with 529 additions and 172 deletions
@@ -15,6 +15,9 @@ type NormReference struct {
Mandatory bool `json:"mandatory"` // Typically mandatory vs recommended
RelevantSections []string `json:"relevant_sections,omitempty"` // e.g. ["Abschnitt 4.2", "Tabelle 1"]
BeuthURL string `json:"beuth_url,omitempty"` // e.g. "https://www.beuth.de/de/norm/din-en-iso-12100"
Withdrawn bool `json:"withdrawn,omitempty"` // True if norm is no longer listed in EU OJ
ValidUntil string `json:"valid_until,omitempty"` // End of legal effect (e.g. "20.01.2027")
ReplacedBy string `json:"replaced_by,omitempty"` // Successor norm number if replaced
}
// GetNormsLibrary returns A-norms (Grundnormen) and B-norms (Sicherheitsgrundnormen
@@ -24,6 +27,7 @@ func GetNormsLibrary() []NormReference {
// ── A-Normen (Grundnormen) ──────────────────────────────────────────
{
ID: "ISO-12100", Number: "ISO 12100:2010",
Withdrawn: true,
TitleDE: "Sicherheit von Maschinen — Allgemeine Gestaltungsleitsaetze, Risikobeurteilung und Risikominderung",
NormType: "A",
ScopeDE: "Zentrale Grundnorm fuer alle Maschinen: definiert den Risikobeurteilungsprozess und das Drei-Stufen-Verfahren zur Risikominderung.",
@@ -38,6 +42,7 @@ func GetNormsLibrary() []NormReference {
// ── B1-Normen (Sicherheitsgrundnormen) ─────────────────────────────
{
ID: "ISO-13849-1", Number: "ISO 13849-1:2023",
Withdrawn: true,
TitleDE: "Sicherheit von Maschinen — Sicherheitsbezogene Teile von Steuerungen — Teil 1: Allgemeine Gestaltungsleitsaetze",
NormType: "B1",
ScopeDE: "Legt das Performance-Level-Verfahren (PL ae) fuer sicherheitsbezogene Steuerungsteile fest, einschliesslich Kategorien und Diagnosedeckungsgrad.",
@@ -50,6 +55,7 @@ func GetNormsLibrary() []NormReference {
},
{
ID: "ISO-13849-2", Number: "ISO 13849-2:2012",
Withdrawn: true,
TitleDE: "Sicherheit von Maschinen — Sicherheitsbezogene Teile von Steuerungen — Teil 2: Validierung",
NormType: "B1",
ScopeDE: "Beschreibt die Validierung der nach ISO 13849-1 ausgelegten sicherheitsbezogenen Steuerungsteile durch Analyse und Tests.",
@@ -62,6 +68,7 @@ func GetNormsLibrary() []NormReference {
},
{
ID: "IEC-62061", Number: "IEC 62061:2021",
Withdrawn: true,
TitleDE: "Sicherheit von Maschinen — Funktionale Sicherheit sicherheitsbezogener Steuerungssysteme",
NormType: "B1",
ScopeDE: "Alternatives Verfahren zu ISO 13849 auf Basis von SIL (Safety Integrity Level) fuer komplexe elektronische Steuerungssysteme.",
@@ -76,6 +83,7 @@ func GetNormsLibrary() []NormReference {
// ── B2-Normen (Sicherheitsfachgrundnormen) ──────────────────────────
{
ID: "ISO-13857", Number: "ISO 13857:2019",
Withdrawn: true,
TitleDE: "Sicherheit von Maschinen — Sicherheitsabstaende gegen das Erreichen von Gefahrstellen mit den oberen und unteren Gliedmassen",
NormType: "B2",
ScopeDE: "Definiert Mindestabstaende, die verhindern, dass Bediener mit Haenden oder Armen Gefahrstellen erreichen koennen.",
@@ -88,6 +96,7 @@ func GetNormsLibrary() []NormReference {
},
{
ID: "ISO-13855", Number: "ISO 13855:2010",
Withdrawn: true,
TitleDE: "Sicherheit von Maschinen — Anordnung von Schutzeinrichtungen im Hinblick auf Annaeherungsgeschwindigkeiten von Koerperteilen",
NormType: "B2",
ScopeDE: "Legt Berechnungsverfahren fuer Mindestabstaende von Schutzeinrichtungen unter Beruecksichtigung der Nachlaufzeit und Annaeherungsgeschwindigkeit fest.",
@@ -100,6 +109,7 @@ func GetNormsLibrary() []NormReference {
},
{
ID: "ISO-14120", Number: "ISO 14120:2015",
Withdrawn: true,
TitleDE: "Sicherheit von Maschinen — Trennende Schutzeinrichtungen — Allgemeine Anforderungen fuer Gestaltung und Bau fester und beweglicher trennender Schutzeinrichtungen",
NormType: "B2",
ScopeDE: "Anforderungen an die Gestaltung, Berechnung und Konstruktion trennender Schutzeinrichtungen (fest und beweglich) fuer Maschinen.",
@@ -112,6 +122,7 @@ func GetNormsLibrary() []NormReference {
},
{
ID: "ISO-14119", Number: "ISO 14119:2013",
Withdrawn: true,
TitleDE: "Sicherheit von Maschinen — Verriegelungseinrichtungen in Verbindung mit trennenden Schutzeinrichtungen — Leitsaetze fuer Gestaltung und Auswahl",
NormType: "B2",
ScopeDE: "Gestaltungsleitsaetze fuer Verriegelungseinrichtungen (mechanisch, magnetisch, elektronisch) an trennenden Schutzeinrichtungen.",
@@ -136,6 +147,7 @@ func GetNormsLibrary() []NormReference {
},
{
ID: "ISO-13850", Number: "ISO 13850:2015",
Withdrawn: true,
TitleDE: "Sicherheit von Maschinen — Not-Halt-Funktion — Gestaltungsleitsaetze",
NormType: "B2",
ScopeDE: "Gestaltungsleitsaetze fuer die Not-Halt-Funktion: Ausloeser, Betaetigungselemente, Reihenfolge der Abschaltung und Ruecksetzbedingungen.",
@@ -148,6 +160,7 @@ func GetNormsLibrary() []NormReference {
},
{
ID: "IEC-61496-1", Number: "IEC 61496-1:2012",
Withdrawn: true,
TitleDE: "Sicherheit von Maschinen — Beruehrungslos wirkende Schutzeinrichtungen — Teil 1: Allgemeine Anforderungen und Pruefungen",
NormType: "B2",
ScopeDE: "Anforderungen an beruehrungslos wirkende Schutzeinrichtungen (BWS, z.B. Lichtvorhaenge, Laserscanner) fuer den Personenschutz.",
@@ -160,6 +173,7 @@ func GetNormsLibrary() []NormReference {
},
{
ID: "ISO-4413", Number: "ISO 4413:2010",
Withdrawn: true,
TitleDE: "Fluidtechnik — Hydraulik — Allgemeine Regeln und sicherheitstechnische Anforderungen an Anlagen",
NormType: "B2",
ScopeDE: "Sicherheitstechnische Anforderungen an hydraulische Anlagen: Druckbegrenzung, Leitungssicherung, Sperrventile, Leckageschutz.",
@@ -172,6 +186,7 @@ func GetNormsLibrary() []NormReference {
},
{
ID: "ISO-4414", Number: "ISO 4414:2010",
Withdrawn: true,
TitleDE: "Fluidtechnik — Pneumatik — Allgemeine Regeln und sicherheitstechnische Anforderungen an Anlagen",
NormType: "B2",
ScopeDE: "Sicherheitstechnische Anforderungen an pneumatische Anlagen: Druckluftaufbereitung, Druckabsicherung, Entlueftung, Leitungssicherung.",
@@ -196,6 +211,7 @@ func GetNormsLibrary() []NormReference {
},
{
ID: "ISO-11228-1", Number: "ISO 11228-1:2021",
Withdrawn: true,
TitleDE: "Ergonomie — Manuelles Handhaben von Lasten — Teil 1: Heben, Halten und Tragen",
NormType: "B2",
ScopeDE: "Grenzwerte und Empfehlungen fuer manuelles Heben, Halten und Tragen von Lasten am Arbeitsplatz zur Vermeidung von Muskel-Skelett-Erkrankungen.",
@@ -208,6 +224,7 @@ func GetNormsLibrary() []NormReference {
},
{
ID: "ISO-11204", Number: "ISO 11204:2010",
Withdrawn: true,
TitleDE: "Akustik — Geraeuschemmission von Maschinen und Geraeten — Messung der Emissionsschalldruckpegel am Arbeitsplatz und an anderen festgelegten Orten",
NormType: "B2",
ScopeDE: "Messverfahren fuer Geraeuschemmission am Arbeitsplatz zur Bewertung der Laermbelastung und zum Nachweis der Einhaltung von Grenzwerten.",
@@ -220,6 +237,7 @@ func GetNormsLibrary() []NormReference {
},
{
ID: "ISO-13732-1", Number: "ISO 13732-1:2006",
Withdrawn: true,
TitleDE: "Ergonomie der thermischen Umgebung — Verfahren zur Beurteilung der Reaktion des Menschen bei Kontakt mit Oberflaechen — Teil 1: Heisse Oberflaechen",
NormType: "B2",
ScopeDE: "Beurteilungsverfahren und Grenzwerte fuer die Beruehrung heisser Oberflaechen: Verbrennungsschwellen nach Material und Kontaktdauer.",
@@ -232,6 +250,7 @@ func GetNormsLibrary() []NormReference {
},
{
ID: "ISO-14122-1", Number: "ISO 14122-1:2016",
Withdrawn: true,
TitleDE: "Sicherheit von Maschinen — Ortsfeste Zugaenge zu maschinellen Anlagen — Teil 1: Wahl eines ortsfesten Zugangs und allgemeine Anforderungen",
NormType: "B2",
ScopeDE: "Auswahl und allgemeine Anforderungen fuer ortsfeste Zugaenge (Treppen, Leitern, Laufstege) zu Maschinen.",
@@ -244,6 +263,7 @@ func GetNormsLibrary() []NormReference {
},
{
ID: "ISO-14122-2", Number: "ISO 14122-2:2016",
Withdrawn: true,
TitleDE: "Sicherheit von Maschinen — Ortsfeste Zugaenge — Teil 2: Arbeitsbuehnen und Laufstege",
NormType: "B2",
ScopeDE: "Gestaltung und Abmessungen von Arbeitsbuehnen und Laufstegen fuer Wartung und Bedienung.",
@@ -256,6 +276,7 @@ func GetNormsLibrary() []NormReference {
},
{
ID: "ISO-14122-3", Number: "ISO 14122-3:2016",
Withdrawn: true,
TitleDE: "Sicherheit von Maschinen — Ortsfeste Zugaenge — Teil 3: Treppen, Treppenleitern und Gelaender",
NormType: "B2",
ScopeDE: "Anforderungen an Treppen, Treppenleitern und Gelaender als ortsfeste Zugaenge zu Maschinen.",
@@ -268,6 +289,7 @@ func GetNormsLibrary() []NormReference {
},
{
ID: "ISO-19353", Number: "ISO 19353:2019",
Withdrawn: true,
TitleDE: "Sicherheit von Maschinen — Brandverhuetung und Brandschutz",
NormType: "B2",
ScopeDE: "Brandschutzanforderungen fuer Maschinen: Zuendquellen, brennbare Stoffe, Branderkennungs- und Loeschsysteme.",
@@ -292,6 +314,7 @@ func GetNormsLibrary() []NormReference {
},
{
ID: "ISO-7731", Number: "ISO 7731:2003",
Withdrawn: true,
TitleDE: "Ergonomie — Gefahrensignale fuer oeffentliche Bereiche und Arbeitsstaetten — Akustische Gefahrensignale",
NormType: "B2",
ScopeDE: "Gestaltung akustischer Gefahrensignale, damit sie unter Umgebungsgeraeuschbedingungen wahrgenommen werden.",
@@ -340,6 +363,7 @@ func GetNormsLibrary() []NormReference {
},
{
ID: "IEC-60529", Number: "IEC 60529:2013",
Withdrawn: true,
TitleDE: "Schutzarten durch Gehaeuse (IP-Code)",
NormType: "B2",
ScopeDE: "Klassifizierung des Schutzes gegen Eindringen von Fremdkoerpern und Wasser (IP-Schutzarten) fuer elektrische Betriebsmittel.",
@@ -352,6 +376,7 @@ func GetNormsLibrary() []NormReference {
},
{
ID: "ISO-11688-1", Number: "ISO 11688-1:2009",
Withdrawn: true,
TitleDE: "Akustik — Empfohlenes Verfahren fuer die Gestaltung laermarmer Maschinen und Geraete — Teil 1: Planung",
NormType: "B2",
ScopeDE: "Konstruktive Massnahmen zur Laermminderung an der Quelle waehrend der Entwurfsphase von Maschinen.",
@@ -364,6 +389,7 @@ func GetNormsLibrary() []NormReference {
},
{
ID: "ISO-15534-1", Number: "ISO 15534-1:2000",
Withdrawn: true,
TitleDE: "Ergonomische Gestaltung fuer die Sicherheit von Maschinen — Teil 1: Prinzipien zur Bestimmung der Abmessungen",
NormType: "B2",
ScopeDE: "Koerpermasse und Abmessungen fuer die Gestaltung von Zugangs- und Bedienoeffnungen an Maschinen.",
@@ -376,6 +402,7 @@ func GetNormsLibrary() []NormReference {
},
{
ID: "ISO-11553-1", Number: "ISO 11553-1:2005",
Withdrawn: true,
TitleDE: "Sicherheit von Maschinen — Laserbearbeitungsmaschinen — Teil 1: Allgemeine Sicherheitsanforderungen",
NormType: "B2",
ScopeDE: "Sicherheitsanforderungen fuer Laserbearbeitungsmaschinen: Strahlschutz, Absaugung, Zugangskontrolle.",
@@ -400,6 +427,7 @@ func GetNormsLibrary() []NormReference {
},
{
ID: "ISO-20607", Number: "ISO 20607:2019",
Withdrawn: true,
TitleDE: "Sicherheit von Maschinen — Betriebsanleitung — Allgemeine Gestaltungsleitsaetze",
NormType: "B2",
ScopeDE: "Anforderungen an Inhalt, Struktur und Darstellung der Betriebsanleitung fuer Maschinen.",