feat: 25 Norm-Pflichtmassnahmen (Mandatory=true)
Neue Kategorie: Massnahmen die durch harmonisierte Normen VORGESCHRIEBEN sind. Abweichung = Verlust der Konformitaetsvermutung. Pressen: Zweihandschaltung, Stoesselabsturzsicherung, Schutztuere Roboter/Cobot: Kraft-/Geschwindigkeitsbegrenzung, Sicherheitsscanner Aufzuege: Fangvorrichtung, Geschwindigkeitsbegrenzer, Puffer Gabelstapler: Redundante Lastaufnahme, Kippschutz Holz: Spaltkeil, Saegeblattschutzhaube Krane: Ueberlastsicherung, Endschalter Allgemein: Not-Halt, Hauptschalter, Schutzleiter, PL/SIL-Nachweis AGV: Personenerkennung, Notbremse Kettensaege: Kettenbremse Fahrtreppe: Kammplatte Druckgeraete: Sicherheitsventil Schweissen: Leerlaufspannungsbegrenzung Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -11,6 +11,7 @@ func GetProtectiveMeasureLibrary() []ProtectiveMeasureEntry {
|
||||
all = append(all, getDesignMeasures()...)
|
||||
all = append(all, getProtectiveMeasures()...)
|
||||
all = append(all, getInformationMeasures()...)
|
||||
all = append(all, GetMandatoryNormMeasures()...) // Norm-Pflichtmassnahmen
|
||||
return all
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
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 Kap. 5.3.3", 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 Kap. 5.3.7", 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 Kap. 5.3.2", 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 Kap. 5.5.4", 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 Kap. 5.5.2", 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 Kap. 5.11", 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 Kap. 5.6", 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 Kap. 5.6.2", 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 Kap. 5.8", 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 Kap. 5.3", 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 Kap. 5.2", 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 Kap. 5.3.3", 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 Kap. 5.3.2", 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 Kap. 5.3", 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 Kap. 5.2.6", 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 Kap. 4.1", 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 Kap. 5.3", 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 Kap. 8", 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 Kap. 4.7", 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 Kap. 4.4", 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 Kap. 4.11", 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 Kap. 5.6", 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 Kap. 4", 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 Kap. 4", 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 Kap. 7.3", NormReferences: []string{"EN 60974-1"}},
|
||||
}
|
||||
}
|
||||
@@ -179,6 +179,12 @@ type ProtectiveMeasureEntry struct {
|
||||
Examples []string `json:"examples,omitempty"`
|
||||
NormReferences []string `json:"norm_references,omitempty"`
|
||||
Tags []string `json:"tags,omitempty"`
|
||||
// Mandatory indicates this measure is REQUIRED by a harmonized standard.
|
||||
// When true, the measure must be implemented if the referenced norm is applied.
|
||||
// The norm creates a "presumption of conformity" — deviating requires the
|
||||
// manufacturer to independently prove equivalent safety.
|
||||
Mandatory bool `json:"mandatory,omitempty"`
|
||||
MandatoryNorm string `json:"mandatory_norm,omitempty"` // e.g. "EN 1726-1 Kap. 5.3"
|
||||
}
|
||||
|
||||
// ValidateMitigationHierarchyRequest is the request for hierarchy validation
|
||||
|
||||
Reference in New Issue
Block a user