feat(iace): Sprint 4A — Residual Risk Modeling (Suppression Engine)
RiskReduction Struct + automatische Risk Trajectory:
- RiskReduction{SeverityDelta, ExposureDelta, ProbabilityDelta} auf ProtectiveMeasureEntry
- CalculateRiskTrajectory() in engine.go: berechnet schrittweise Risikoreduktion
entlang ISO 12100 Hierarchie (design → protection → information)
- Kumulative Deltas pro Stufe, Clamp auf Minimum 1
- RiskTrajectoryStep mit Stage, S/E/P, Score, Level, IsAcceptable
101 Massnahmen mit RiskReduction-Profilen versehen:
- Design/Geometry (M001-M010): S-1, E-1 (Gefahrstelle eliminiert)
- Design/Force (M011-M022): S-2 (Energie/Kraft reduziert)
- Design/Control (M039-M050): P-2 (sichere Steuerung)
- Protection/Guards (M061-M072): E-2 (Zugang verhindert)
- Protection/Electro (M073-M079): E-1, P-1 (Erkennung)
- Protection/Safety (M105-M113): P-2 (sichere SPS)
- Protection/Monitoring (M114-M120): P-1 (Frueerkennung)
- Protection/Cyber (M121-M130): P-1
- Information/Training (M161-M168): P-1
- Information/PPE (M169-M175): S-1
8 neue Tests: NoMeasures, DesignReduce, FullHierarchy, ClampMin1,
OnlyProtection, WithoutReduction, MandatoryAsProtective, LibraryCount
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -25,30 +25,30 @@ func GetProtectiveMeasureLibrary() []ProtectiveMeasureEntry {
|
||||
func getDesignMeasures() []ProtectiveMeasureEntry {
|
||||
return []ProtectiveMeasureEntry{
|
||||
// ── Geometry (M001-M010) ─────────────────────────────────────────────
|
||||
{ID: "M001", ReductionType: "design", SubType: "geometry", Name: "Gefahrstelle konstruktiv eliminieren", Description: "Durch konstruktive Gestaltung wird die Gefahrstelle vollstaendig beseitigt.", HazardCategory: "mechanical", Examples: []string{"Quetschstelle durch Geometrieaenderung entfernen", "Einzugsstelle durch vergroesserten Spalt eliminieren"}, NormReferences: []string{"ISO 12100 — Inhaerent sichere Konstruktion"}},
|
||||
{ID: "M002", ReductionType: "design", SubType: "geometry", Name: "Sicherheitsabstaende vergroessern", Description: "Abstaende zwischen Gefahrstellen und zugaenglichen Bereichen werden nach Norm dimensioniert.", HazardCategory: "mechanical", Examples: []string{"Greifabstand an Walzen vergroessern", "Abstand zu heissen Oberflaechen erhoehen"}, NormReferences: []string{"ISO 13857", "ISO 13854"}},
|
||||
{ID: "M003", ReductionType: "design", SubType: "geometry", Name: "Scharfe Kanten entfernen", Description: "Alle zugaenglichen Kanten werden abgerundet oder entgratet.", HazardCategory: "mechanical", Examples: []string{"Radien an Blechkanten anbringen", "Entgratung aller Stanzteile sicherstellen"}, NormReferences: []string{"ISO 12100 — Geometrie und Anordnung"}},
|
||||
{ID: "M004", ReductionType: "design", SubType: "geometry", Name: "Sichere Geometrie", Description: "Die Bauteilgeometrie vermeidet Quetsch-, Scher- und Einzugsstellen.", HazardCategory: "mechanical", Examples: []string{"Abgerundete Formteile statt scharfkantiger verwenden", "Spaltmasse an Fuehrungen einhalten"}, NormReferences: []string{"ISO 12100 — Geometrie und Anordnung"}},
|
||||
{ID: "M005", ReductionType: "design", SubType: "geometry", Name: "Rotationsbewegung vermeiden", Description: "Rotierende Teile werden durch Alternativloesungen ersetzt.", HazardCategory: "mechanical", Examples: []string{"Linearantrieb statt Drehantrieb verwenden", "Riemenantrieb durch Zahnstange ersetzen"}, NormReferences: []string{"ISO 12100 — Physikalische Kenndaten"}},
|
||||
{ID: "M006", ReductionType: "design", SubType: "geometry", Name: "Kollisionsfreie Bewegungsbahnen", Description: "Bewegungsbahnen werden so geplant, dass Kollisionen mit Personen ausgeschlossen sind.", HazardCategory: "mechanical", Examples: []string{"Verfahrwege ausserhalb des Bedienerbereichs legen", "Bewegungsbahnen in der Simulation pruefen"}, NormReferences: []string{"ISO 12100 — Allgemeine technische Kenntnisse"}},
|
||||
{ID: "M007", ReductionType: "design", SubType: "geometry", Name: "Sichere Greiferkonstruktion", Description: "Greifersysteme verhindern unkontrolliertes Freisetzen von Werkstuecken.", HazardCategory: "mechanical", Examples: []string{"Formschluessige Greiferbacken verwenden", "Federbelastete Greifer fuer Fail-Safe"}, NormReferences: []string{"ISO 12100 — Geometrie und Anordnung", "ISO 10218-2"}},
|
||||
{ID: "M008", ReductionType: "design", SubType: "geometry", Name: "Sichere Werkstueckaufnahme", Description: "Werkstueckaufnahmen verhindern Herausschleudern bei allen Betriebszustaenden.", HazardCategory: "mechanical", Examples: []string{"Spannvorrichtung mit Formschluss", "Automatische Spannkontrolle integrieren"}, NormReferences: []string{"ISO 12100 — Geometrie und Anordnung"}},
|
||||
{ID: "M009", ReductionType: "design", SubType: "geometry", Name: "Sichere Kabelfuehrung", Description: "Elektrische Leitungen werden vor mechanischer Beschaedigung und Hitze geschuetzt.", HazardCategory: "electrical", Examples: []string{"Kabelkanaele mit Deckel verwenden", "Leitungen in Schleppketten fuehren"}, NormReferences: []string{"IEC 60204-1", "ISO 12100 — Minimierung Fehlerwahrscheinlichkeit"}},
|
||||
{ID: "M010", ReductionType: "design", SubType: "geometry", Name: "Sichere Sensorposition", Description: "Sensoren werden zuverlaessig messend und vor mechanischer Beschaedigung geschuetzt positioniert.", HazardCategory: "software_control", Examples: []string{"Sensoren in geschuetzten Nischen montieren", "Sensoren ausserhalb des Gefahrbereichs platzieren"}, NormReferences: []string{"ISO 12100 — Sicherheitsbezogene Steuerungssysteme"}},
|
||||
{ID: "M001", RiskReduction: &RiskReduction{SeverityDelta: -1, ExposureDelta: -1}, ReductionType: "design", SubType: "geometry", Name: "Gefahrstelle konstruktiv eliminieren", Description: "Durch konstruktive Gestaltung wird die Gefahrstelle vollstaendig beseitigt.", HazardCategory: "mechanical", Examples: []string{"Quetschstelle durch Geometrieaenderung entfernen", "Einzugsstelle durch vergroesserten Spalt eliminieren"}, NormReferences: []string{"ISO 12100 — Inhaerent sichere Konstruktion"}},
|
||||
{ID: "M002", RiskReduction: &RiskReduction{SeverityDelta: -1, ExposureDelta: -1}, ReductionType: "design", SubType: "geometry", Name: "Sicherheitsabstaende vergroessern", Description: "Abstaende zwischen Gefahrstellen und zugaenglichen Bereichen werden nach Norm dimensioniert.", HazardCategory: "mechanical", Examples: []string{"Greifabstand an Walzen vergroessern", "Abstand zu heissen Oberflaechen erhoehen"}, NormReferences: []string{"ISO 13857", "ISO 13854"}},
|
||||
{ID: "M003", RiskReduction: &RiskReduction{SeverityDelta: -1, ExposureDelta: -1}, ReductionType: "design", SubType: "geometry", Name: "Scharfe Kanten entfernen", Description: "Alle zugaenglichen Kanten werden abgerundet oder entgratet.", HazardCategory: "mechanical", Examples: []string{"Radien an Blechkanten anbringen", "Entgratung aller Stanzteile sicherstellen"}, NormReferences: []string{"ISO 12100 — Geometrie und Anordnung"}},
|
||||
{ID: "M004", RiskReduction: &RiskReduction{SeverityDelta: -1, ExposureDelta: -1}, ReductionType: "design", SubType: "geometry", Name: "Sichere Geometrie", Description: "Die Bauteilgeometrie vermeidet Quetsch-, Scher- und Einzugsstellen.", HazardCategory: "mechanical", Examples: []string{"Abgerundete Formteile statt scharfkantiger verwenden", "Spaltmasse an Fuehrungen einhalten"}, NormReferences: []string{"ISO 12100 — Geometrie und Anordnung"}},
|
||||
{ID: "M005", RiskReduction: &RiskReduction{SeverityDelta: -1, ExposureDelta: -1}, ReductionType: "design", SubType: "geometry", Name: "Rotationsbewegung vermeiden", Description: "Rotierende Teile werden durch Alternativloesungen ersetzt.", HazardCategory: "mechanical", Examples: []string{"Linearantrieb statt Drehantrieb verwenden", "Riemenantrieb durch Zahnstange ersetzen"}, NormReferences: []string{"ISO 12100 — Physikalische Kenndaten"}},
|
||||
{ID: "M006", RiskReduction: &RiskReduction{SeverityDelta: -1, ExposureDelta: -1}, ReductionType: "design", SubType: "geometry", Name: "Kollisionsfreie Bewegungsbahnen", Description: "Bewegungsbahnen werden so geplant, dass Kollisionen mit Personen ausgeschlossen sind.", HazardCategory: "mechanical", Examples: []string{"Verfahrwege ausserhalb des Bedienerbereichs legen", "Bewegungsbahnen in der Simulation pruefen"}, NormReferences: []string{"ISO 12100 — Allgemeine technische Kenntnisse"}},
|
||||
{ID: "M007", RiskReduction: &RiskReduction{SeverityDelta: -1, ExposureDelta: -1}, ReductionType: "design", SubType: "geometry", Name: "Sichere Greiferkonstruktion", Description: "Greifersysteme verhindern unkontrolliertes Freisetzen von Werkstuecken.", HazardCategory: "mechanical", Examples: []string{"Formschluessige Greiferbacken verwenden", "Federbelastete Greifer fuer Fail-Safe"}, NormReferences: []string{"ISO 12100 — Geometrie und Anordnung", "ISO 10218-2"}},
|
||||
{ID: "M008", RiskReduction: &RiskReduction{SeverityDelta: -1, ExposureDelta: -1}, ReductionType: "design", SubType: "geometry", Name: "Sichere Werkstueckaufnahme", Description: "Werkstueckaufnahmen verhindern Herausschleudern bei allen Betriebszustaenden.", HazardCategory: "mechanical", Examples: []string{"Spannvorrichtung mit Formschluss", "Automatische Spannkontrolle integrieren"}, NormReferences: []string{"ISO 12100 — Geometrie und Anordnung"}},
|
||||
{ID: "M009", RiskReduction: &RiskReduction{SeverityDelta: -1, ExposureDelta: -1}, ReductionType: "design", SubType: "geometry", Name: "Sichere Kabelfuehrung", Description: "Elektrische Leitungen werden vor mechanischer Beschaedigung und Hitze geschuetzt.", HazardCategory: "electrical", Examples: []string{"Kabelkanaele mit Deckel verwenden", "Leitungen in Schleppketten fuehren"}, NormReferences: []string{"IEC 60204-1", "ISO 12100 — Minimierung Fehlerwahrscheinlichkeit"}},
|
||||
{ID: "M010", RiskReduction: &RiskReduction{SeverityDelta: -1, ExposureDelta: -1}, ReductionType: "design", SubType: "geometry", Name: "Sichere Sensorposition", Description: "Sensoren werden zuverlaessig messend und vor mechanischer Beschaedigung geschuetzt positioniert.", HazardCategory: "software_control", Examples: []string{"Sensoren in geschuetzten Nischen montieren", "Sensoren ausserhalb des Gefahrbereichs platzieren"}, NormReferences: []string{"ISO 12100 — Sicherheitsbezogene Steuerungssysteme"}},
|
||||
|
||||
// ── Force / Energy (M011-M022) ──────────────────────────────────────
|
||||
{ID: "M011", ReductionType: "design", SubType: "force_energy", Name: "Bewegungsenergie reduzieren", Description: "Kinetische Energie beweglicher Maschinenteile wird auf ein sicheres Niveau begrenzt.", HazardCategory: "mechanical", Examples: []string{"Masse beweglicher Teile verringern", "Hublaenge verkuerzen"}, NormReferences: []string{"ISO 12100 — Physikalische Kenndaten"}},
|
||||
{ID: "M012", ReductionType: "design", SubType: "force_energy", Name: "Geschwindigkeit reduzieren", Description: "Verfahrgeschwindigkeit wird konstruktiv auf ein verletzungssicheres Niveau begrenzt.", HazardCategory: "mechanical", Examples: []string{"Maximale Achsgeschwindigkeit mechanisch begrenzen", "Drehzahlbegrenzer einbauen"}, NormReferences: []string{"ISO 12100 — Physikalische Kenndaten"}},
|
||||
{ID: "M013", ReductionType: "design", SubType: "force_energy", Name: "Kraft begrenzen", Description: "Die maximal auftretende Kraft wird konstruktiv so begrenzt, dass keine Verletzungsgefahr besteht.", HazardCategory: "mechanical", Examples: []string{"Federbelastete Kraftbegrenzung einsetzen", "Antriebsdrehmoment begrenzen"}, NormReferences: []string{"ISO 12100 — Physikalische Kenndaten", "ISO/TS 15066"}},
|
||||
{ID: "M014", ReductionType: "design", SubType: "force_energy", Name: "Kinematik aendern", Description: "Bewegungsart oder -richtung wird umgestaltet, sodass die Gefaehrdung entfaellt.", HazardCategory: "mechanical", Examples: []string{"Linearbewegung statt Rotation einsetzen", "Bewegungsrichtung von Bedienerseite wegfuehren"}, NormReferences: []string{"ISO 12100 — Physikalische Kenndaten"}},
|
||||
{ID: "M015", ReductionType: "design", SubType: "force_energy", Name: "Gewicht reduzieren", Description: "Gewicht beweglicher Maschinenteile wird minimiert zur Verringerung der Verletzungsschwere.", HazardCategory: "mechanical", Examples: []string{"Leichtbauwerkstoffe fuer bewegliche Arme", "Hohlprofile statt Vollmaterial"}, NormReferences: []string{"ISO 12100 — Physikalische Kenndaten"}},
|
||||
{ID: "M016", ReductionType: "design", SubType: "force_energy", Name: "Redundante Konstruktion", Description: "Sicherheitskritische Bauteile sind mehrfach ausgefuehrt fuer Ausfallsicherheit.", HazardCategory: "mechanical", Examples: []string{"Doppelte Tragseile an Hebezeugen", "Redundante Bremssysteme vorsehen"}, NormReferences: []string{"ISO 12100 — Allgemeine technische Kenntnisse", "ISO 13849-1"}},
|
||||
{ID: "M017", ReductionType: "design", SubType: "force_energy", Name: "Mechanische Begrenzung", Description: "Feste mechanische Anschlaege begrenzen den Bewegungsbereich.", HazardCategory: "mechanical", Examples: []string{"Feste Endanschlaege an Linearachsen", "Drehwinkelbegrenzung an Drehachsen"}, NormReferences: []string{"ISO 12100 — Physikalische Kenndaten"}},
|
||||
{ID: "M018", ReductionType: "design", SubType: "force_energy", Name: "Schwerkraftsichere Konstruktion", Description: "Konstruktion verhindert unkontrollierte Bewegung durch Schwerkraft bei Energieausfall.", HazardCategory: "mechanical", Examples: []string{"Lasthalteventile in Hubzylindern", "Federspeicherbremsen an Vertikalachsen"}, NormReferences: []string{"ISO 12100 — Allgemeine technische Kenntnisse", "EN 693"}},
|
||||
{ID: "M019", ReductionType: "design", SubType: "force_energy", Name: "Energiebegrenzung", Description: "Die gesamt verfuegbare Energie im System wird konstruktiv auf ein sicheres Niveau begrenzt.", HazardCategory: "mechanical", Examples: []string{"Kleine Pneumatikzylinder statt grosser verwenden", "Niedrigdruck-Hydraulik einsetzen"}, NormReferences: []string{"ISO 12100 — Physikalische Kenndaten"}},
|
||||
{ID: "M020", ReductionType: "design", SubType: "force_energy", Name: "Sichere Energieuebertragung", Description: "Energieleitungen werden so verlegt, dass Leckagen oder Brueche keine Gefaehrdung darstellen.", HazardCategory: "electrical", Examples: []string{"Schleppketten fuer flexible Leitungen", "Doppelwandige Druckleitungen verwenden"}, NormReferences: []string{"ISO 12100 — Minimierung Fehlerwahrscheinlichkeit"}},
|
||||
{ID: "M021", ReductionType: "design", SubType: "force_energy", Name: "Nachgiebige Elemente", Description: "Maschinenteile im Kontaktbereich werden nachgiebig gestaltet zur Verletzungsminimierung.", HazardCategory: "mechanical", Examples: []string{"Polsterungen an Klemmpunkten", "Federnd gelagerte Anschlaege"}, NormReferences: []string{"ISO/TS 15066", "ISO 12100 — Physikalische Kenndaten"}},
|
||||
{ID: "M022", ReductionType: "design", SubType: "force_energy", Name: "Sichere Kraftuebertragung", Description: "Kraftuebertragungselemente sind gesichert gegen Bruch oder Loesen.", HazardCategory: "mechanical", Examples: []string{"Wellensicherungen gegen Axialverschiebung", "Sicherheitswellen mit Sollbruchstelle"}, NormReferences: []string{"ISO 12100 — Geometrie und Anordnung"}},
|
||||
{ID: "M011", RiskReduction: &RiskReduction{SeverityDelta: -2}, ReductionType: "design", SubType: "force_energy", Name: "Bewegungsenergie reduzieren", Description: "Kinetische Energie beweglicher Maschinenteile wird auf ein sicheres Niveau begrenzt.", HazardCategory: "mechanical", Examples: []string{"Masse beweglicher Teile verringern", "Hublaenge verkuerzen"}, NormReferences: []string{"ISO 12100 — Physikalische Kenndaten"}},
|
||||
{ID: "M012", RiskReduction: &RiskReduction{SeverityDelta: -2}, ReductionType: "design", SubType: "force_energy", Name: "Geschwindigkeit reduzieren", Description: "Verfahrgeschwindigkeit wird konstruktiv auf ein verletzungssicheres Niveau begrenzt.", HazardCategory: "mechanical", Examples: []string{"Maximale Achsgeschwindigkeit mechanisch begrenzen", "Drehzahlbegrenzer einbauen"}, NormReferences: []string{"ISO 12100 — Physikalische Kenndaten"}},
|
||||
{ID: "M013", RiskReduction: &RiskReduction{SeverityDelta: -2}, ReductionType: "design", SubType: "force_energy", Name: "Kraft begrenzen", Description: "Die maximal auftretende Kraft wird konstruktiv so begrenzt, dass keine Verletzungsgefahr besteht.", HazardCategory: "mechanical", Examples: []string{"Federbelastete Kraftbegrenzung einsetzen", "Antriebsdrehmoment begrenzen"}, NormReferences: []string{"ISO 12100 — Physikalische Kenndaten", "ISO/TS 15066"}},
|
||||
{ID: "M014", RiskReduction: &RiskReduction{SeverityDelta: -2}, ReductionType: "design", SubType: "force_energy", Name: "Kinematik aendern", Description: "Bewegungsart oder -richtung wird umgestaltet, sodass die Gefaehrdung entfaellt.", HazardCategory: "mechanical", Examples: []string{"Linearbewegung statt Rotation einsetzen", "Bewegungsrichtung von Bedienerseite wegfuehren"}, NormReferences: []string{"ISO 12100 — Physikalische Kenndaten"}},
|
||||
{ID: "M015", RiskReduction: &RiskReduction{SeverityDelta: -2}, ReductionType: "design", SubType: "force_energy", Name: "Gewicht reduzieren", Description: "Gewicht beweglicher Maschinenteile wird minimiert zur Verringerung der Verletzungsschwere.", HazardCategory: "mechanical", Examples: []string{"Leichtbauwerkstoffe fuer bewegliche Arme", "Hohlprofile statt Vollmaterial"}, NormReferences: []string{"ISO 12100 — Physikalische Kenndaten"}},
|
||||
{ID: "M016", RiskReduction: &RiskReduction{SeverityDelta: -2}, ReductionType: "design", SubType: "force_energy", Name: "Redundante Konstruktion", Description: "Sicherheitskritische Bauteile sind mehrfach ausgefuehrt fuer Ausfallsicherheit.", HazardCategory: "mechanical", Examples: []string{"Doppelte Tragseile an Hebezeugen", "Redundante Bremssysteme vorsehen"}, NormReferences: []string{"ISO 12100 — Allgemeine technische Kenntnisse", "ISO 13849-1"}},
|
||||
{ID: "M017", RiskReduction: &RiskReduction{SeverityDelta: -2}, ReductionType: "design", SubType: "force_energy", Name: "Mechanische Begrenzung", Description: "Feste mechanische Anschlaege begrenzen den Bewegungsbereich.", HazardCategory: "mechanical", Examples: []string{"Feste Endanschlaege an Linearachsen", "Drehwinkelbegrenzung an Drehachsen"}, NormReferences: []string{"ISO 12100 — Physikalische Kenndaten"}},
|
||||
{ID: "M018", RiskReduction: &RiskReduction{SeverityDelta: -2}, ReductionType: "design", SubType: "force_energy", Name: "Schwerkraftsichere Konstruktion", Description: "Konstruktion verhindert unkontrollierte Bewegung durch Schwerkraft bei Energieausfall.", HazardCategory: "mechanical", Examples: []string{"Lasthalteventile in Hubzylindern", "Federspeicherbremsen an Vertikalachsen"}, NormReferences: []string{"ISO 12100 — Allgemeine technische Kenntnisse", "EN 693"}},
|
||||
{ID: "M019", RiskReduction: &RiskReduction{SeverityDelta: -2}, ReductionType: "design", SubType: "force_energy", Name: "Energiebegrenzung", Description: "Die gesamt verfuegbare Energie im System wird konstruktiv auf ein sicheres Niveau begrenzt.", HazardCategory: "mechanical", Examples: []string{"Kleine Pneumatikzylinder statt grosser verwenden", "Niedrigdruck-Hydraulik einsetzen"}, NormReferences: []string{"ISO 12100 — Physikalische Kenndaten"}},
|
||||
{ID: "M020", RiskReduction: &RiskReduction{SeverityDelta: -2}, ReductionType: "design", SubType: "force_energy", Name: "Sichere Energieuebertragung", Description: "Energieleitungen werden so verlegt, dass Leckagen oder Brueche keine Gefaehrdung darstellen.", HazardCategory: "electrical", Examples: []string{"Schleppketten fuer flexible Leitungen", "Doppelwandige Druckleitungen verwenden"}, NormReferences: []string{"ISO 12100 — Minimierung Fehlerwahrscheinlichkeit"}},
|
||||
{ID: "M021", RiskReduction: &RiskReduction{SeverityDelta: -2}, ReductionType: "design", SubType: "force_energy", Name: "Nachgiebige Elemente", Description: "Maschinenteile im Kontaktbereich werden nachgiebig gestaltet zur Verletzungsminimierung.", HazardCategory: "mechanical", Examples: []string{"Polsterungen an Klemmpunkten", "Federnd gelagerte Anschlaege"}, NormReferences: []string{"ISO/TS 15066", "ISO 12100 — Physikalische Kenndaten"}},
|
||||
{ID: "M022", RiskReduction: &RiskReduction{SeverityDelta: -2}, ReductionType: "design", SubType: "force_energy", Name: "Sichere Kraftuebertragung", Description: "Kraftuebertragungselemente sind gesichert gegen Bruch oder Loesen.", HazardCategory: "mechanical", Examples: []string{"Wellensicherungen gegen Axialverschiebung", "Sicherheitswellen mit Sollbruchstelle"}, NormReferences: []string{"ISO 12100 — Geometrie und Anordnung"}},
|
||||
|
||||
// ── Material (M023-M028) ────────────────────────────────────────────
|
||||
{ID: "M023", ReductionType: "design", SubType: "material", Name: "Sichere Materialwahl", Description: "Werkstoffe werden so gewaehlt, dass sie keine zusaetzlichen Gefaehrdungen verursachen.", HazardCategory: "material_environmental", Examples: []string{"Nicht-toxische Kunststoffe waehlen", "Korrosionsbestaendige Legierungen einsetzen"}, NormReferences: []string{"ISO 12100 — Geometrie und Anordnung"}},
|
||||
@@ -71,18 +71,18 @@ func getDesignMeasures() []ProtectiveMeasureEntry {
|
||||
{ID: "M038", ReductionType: "design", SubType: "ergonomics", Name: "Vibrationsarme Konstruktion", Description: "Vibrationen und Koerperschall werden an der Quelle minimiert.", HazardCategory: "noise_vibration", Examples: []string{"Schwingungsdaempfer an Motoren", "Elastische Maschinenlagerung"}, NormReferences: []string{"ISO 5349-1", "EN 1032"}},
|
||||
|
||||
// ── Control Design (M039-M050) ──────────────────────────────────────
|
||||
{ID: "M039", ReductionType: "design", SubType: "control_design", Name: "Sichere Software-Fallbacks", Description: "Steuerungssoftware enthaelt Rueckfallstrategien fuer sichere Zustaende bei Fehlern.", HazardCategory: "software_control", Examples: []string{"Standardwerte bei Sensorausfall", "Sicherer Stopp bei unplausiblen Daten"}, NormReferences: []string{"IEC 62443-4-1", "ISO 13849-1"}},
|
||||
{ID: "M040", ReductionType: "design", SubType: "control_design", Name: "Deterministische Steuerungslogik", Description: "Steuerungslogik erzeugt bei identischen Eingaben immer identische Ausgaben.", HazardCategory: "software_control", Examples: []string{"Keine Zufallselemente in Sicherheitsfunktionen", "Feste Zykluszeiten fuer Safety-Tasks"}, NormReferences: []string{"IEC 61508-3", "IEC 62443-4-1"}},
|
||||
{ID: "M041", ReductionType: "design", SubType: "control_design", Name: "Definierte Zustandsmaschine", Description: "Alle Maschinenzustaende und Uebergaenge sind vollstaendig definiert und abgesichert.", HazardCategory: "software_control", Examples: []string{"Zustandsdiagramm erstellen", "Ungueltige Uebergaenge softwareseitig blockieren"}, NormReferences: []string{"IEC 61508-3", "ISO 13849-1"}},
|
||||
{ID: "M042", ReductionType: "design", SubType: "control_design", Name: "Sichere Restart-Logik", Description: "Neustart nur durch bewusste Bedienerhandlung, kein automatischer Wiederanlauf.", HazardCategory: "software_control", Examples: []string{"Automatischen Wiederanlauf nach Netzausfall verhindern", "Quittierungspflicht vor Neustart"}, NormReferences: []string{"ISO 12100 — Stillsetzen im Notfall", "IEC 60204-1"}},
|
||||
{ID: "M043", ReductionType: "design", SubType: "control_design", Name: "Sichere Fehlermodi", Description: "Jeder erkannte Fehler fuehrt automatisch in einen vordefinierten sicheren Zustand.", HazardCategory: "software_control", Examples: []string{"Fail-Safe bei Sensorausfall", "Fehlerkatalog mit sicheren Zustaenden"}, NormReferences: []string{"ISO 13849-1", "IEC 62061"}},
|
||||
{ID: "M044", ReductionType: "design", SubType: "control_design", Name: "Zweikanalige Steuerung", Description: "Sicherheitsfunktionen werden ueber zwei unabhaengige Kanaele ausgefuehrt.", HazardCategory: "software_control", Examples: []string{"Kategorie-3/4-Architektur nach ISO 13849", "Zwei getrennte Abschaltpfade"}, NormReferences: []string{"ISO 13849-1", "IEC 62061"}},
|
||||
{ID: "M045", ReductionType: "design", SubType: "control_design", Name: "Steuerungstechnische Sicherheit", Description: "Steuerungsarchitektur ist auf Fehlererkennung und sichere Reaktion ausgelegt.", HazardCategory: "software_control", Examples: []string{"Cross-Monitoring zwischen Kanaelen", "Diversitaere Signalverarbeitung"}, NormReferences: []string{"ISO 13849-1", "IEC 61508"}},
|
||||
{ID: "M046", ReductionType: "design", SubType: "control_design", Name: "Sichere Energieabschaltung", Description: "Maschine kann jederzeit sicher von allen Energiequellen getrennt werden.", HazardCategory: "electrical", Examples: []string{"Hauptschalter mit Absperrmoeglichkeit", "Pneumatik-Absperrventil am Eingang"}, NormReferences: []string{"IEC 60204-1", "ISO 12100 — Automatisierungstechnik"}},
|
||||
{ID: "M047", ReductionType: "design", SubType: "control_design", Name: "Sichere Energieentladung", Description: "Alle gespeicherten Energien werden nach Abschalten kontrolliert abgebaut.", HazardCategory: "electrical", Examples: []string{"Kondensatoren ueber Entladewiderstaende", "Druckspeicher ueber Entlastungsventil"}, NormReferences: []string{"IEC 60204-1 — Trennen und Ausschalten", "ISO 12100 — Automatisierungstechnik"}},
|
||||
{ID: "M048", ReductionType: "design", SubType: "control_design", Name: "Sichere Notzustaende", Description: "Fuer alle Notsituationen sind definierte Zustaende festgelegt.", HazardCategory: "general", Examples: []string{"Not-Halt-Zustand mit definierten Positionen", "Evakuierungszustand mit geoeffneten Schutztoren"}, NormReferences: []string{"ISO 13850", "IEC 60204-1 — Not-Halt-Steuerung"}},
|
||||
{ID: "M049", ReductionType: "design", SubType: "control_design", Name: "Sichere Betriebsartenwahl", Description: "Umschaltung zwischen Betriebsarten ist abgesichert und nur kontrolliert moeglich.", HazardCategory: "software_control", Examples: []string{"Schluesselschalter fuer Betriebsarten", "Sichere Betriebsartenerkennung in SPS"}, NormReferences: []string{"ISO 12100 — Sicherheitsbezogene Steuerungssysteme0", "IEC 60204-1"}},
|
||||
{ID: "M050", ReductionType: "design", SubType: "control_design", Name: "Sicherer Anlauf nach Stoerung", Description: "Wiederanlauf nach Stoerung folgt definierter Prozedur mit Bedienerfreigabe.", HazardCategory: "software_control", Examples: []string{"Schrittweiser Anlauf nach Fehler", "Pruefsequenz vor Produktionsfreigabe"}, NormReferences: []string{"ISO 12100 — Stillsetzen im Notfall", "IEC 60204-1"}},
|
||||
{ID: "M039", RiskReduction: &RiskReduction{ProbabilityDelta: -2}, ReductionType: "design", SubType: "control_design", Name: "Sichere Software-Fallbacks", Description: "Steuerungssoftware enthaelt Rueckfallstrategien fuer sichere Zustaende bei Fehlern.", HazardCategory: "software_control", Examples: []string{"Standardwerte bei Sensorausfall", "Sicherer Stopp bei unplausiblen Daten"}, NormReferences: []string{"IEC 62443-4-1", "ISO 13849-1"}},
|
||||
{ID: "M040", RiskReduction: &RiskReduction{ProbabilityDelta: -2}, ReductionType: "design", SubType: "control_design", Name: "Deterministische Steuerungslogik", Description: "Steuerungslogik erzeugt bei identischen Eingaben immer identische Ausgaben.", HazardCategory: "software_control", Examples: []string{"Keine Zufallselemente in Sicherheitsfunktionen", "Feste Zykluszeiten fuer Safety-Tasks"}, NormReferences: []string{"IEC 61508-3", "IEC 62443-4-1"}},
|
||||
{ID: "M041", RiskReduction: &RiskReduction{ProbabilityDelta: -2}, ReductionType: "design", SubType: "control_design", Name: "Definierte Zustandsmaschine", Description: "Alle Maschinenzustaende und Uebergaenge sind vollstaendig definiert und abgesichert.", HazardCategory: "software_control", Examples: []string{"Zustandsdiagramm erstellen", "Ungueltige Uebergaenge softwareseitig blockieren"}, NormReferences: []string{"IEC 61508-3", "ISO 13849-1"}},
|
||||
{ID: "M042", RiskReduction: &RiskReduction{ProbabilityDelta: -2}, ReductionType: "design", SubType: "control_design", Name: "Sichere Restart-Logik", Description: "Neustart nur durch bewusste Bedienerhandlung, kein automatischer Wiederanlauf.", HazardCategory: "software_control", Examples: []string{"Automatischen Wiederanlauf nach Netzausfall verhindern", "Quittierungspflicht vor Neustart"}, NormReferences: []string{"ISO 12100 — Stillsetzen im Notfall", "IEC 60204-1"}},
|
||||
{ID: "M043", RiskReduction: &RiskReduction{ProbabilityDelta: -2}, ReductionType: "design", SubType: "control_design", Name: "Sichere Fehlermodi", Description: "Jeder erkannte Fehler fuehrt automatisch in einen vordefinierten sicheren Zustand.", HazardCategory: "software_control", Examples: []string{"Fail-Safe bei Sensorausfall", "Fehlerkatalog mit sicheren Zustaenden"}, NormReferences: []string{"ISO 13849-1", "IEC 62061"}},
|
||||
{ID: "M044", RiskReduction: &RiskReduction{ProbabilityDelta: -2}, ReductionType: "design", SubType: "control_design", Name: "Zweikanalige Steuerung", Description: "Sicherheitsfunktionen werden ueber zwei unabhaengige Kanaele ausgefuehrt.", HazardCategory: "software_control", Examples: []string{"Kategorie-3/4-Architektur nach ISO 13849", "Zwei getrennte Abschaltpfade"}, NormReferences: []string{"ISO 13849-1", "IEC 62061"}},
|
||||
{ID: "M045", RiskReduction: &RiskReduction{ProbabilityDelta: -2}, ReductionType: "design", SubType: "control_design", Name: "Steuerungstechnische Sicherheit", Description: "Steuerungsarchitektur ist auf Fehlererkennung und sichere Reaktion ausgelegt.", HazardCategory: "software_control", Examples: []string{"Cross-Monitoring zwischen Kanaelen", "Diversitaere Signalverarbeitung"}, NormReferences: []string{"ISO 13849-1", "IEC 61508"}},
|
||||
{ID: "M046", RiskReduction: &RiskReduction{ProbabilityDelta: -2}, ReductionType: "design", SubType: "control_design", Name: "Sichere Energieabschaltung", Description: "Maschine kann jederzeit sicher von allen Energiequellen getrennt werden.", HazardCategory: "electrical", Examples: []string{"Hauptschalter mit Absperrmoeglichkeit", "Pneumatik-Absperrventil am Eingang"}, NormReferences: []string{"IEC 60204-1", "ISO 12100 — Automatisierungstechnik"}},
|
||||
{ID: "M047", RiskReduction: &RiskReduction{ProbabilityDelta: -2}, ReductionType: "design", SubType: "control_design", Name: "Sichere Energieentladung", Description: "Alle gespeicherten Energien werden nach Abschalten kontrolliert abgebaut.", HazardCategory: "electrical", Examples: []string{"Kondensatoren ueber Entladewiderstaende", "Druckspeicher ueber Entlastungsventil"}, NormReferences: []string{"IEC 60204-1 — Trennen und Ausschalten", "ISO 12100 — Automatisierungstechnik"}},
|
||||
{ID: "M048", RiskReduction: &RiskReduction{ProbabilityDelta: -2}, ReductionType: "design", SubType: "control_design", Name: "Sichere Notzustaende", Description: "Fuer alle Notsituationen sind definierte Zustaende festgelegt.", HazardCategory: "general", Examples: []string{"Not-Halt-Zustand mit definierten Positionen", "Evakuierungszustand mit geoeffneten Schutztoren"}, NormReferences: []string{"ISO 13850", "IEC 60204-1 — Not-Halt-Steuerung"}},
|
||||
{ID: "M049", RiskReduction: &RiskReduction{ProbabilityDelta: -2}, ReductionType: "design", SubType: "control_design", Name: "Sichere Betriebsartenwahl", Description: "Umschaltung zwischen Betriebsarten ist abgesichert und nur kontrolliert moeglich.", HazardCategory: "software_control", Examples: []string{"Schluesselschalter fuer Betriebsarten", "Sichere Betriebsartenerkennung in SPS"}, NormReferences: []string{"ISO 12100 — Sicherheitsbezogene Steuerungssysteme0", "IEC 60204-1"}},
|
||||
{ID: "M050", RiskReduction: &RiskReduction{ProbabilityDelta: -2}, ReductionType: "design", SubType: "control_design", Name: "Sicherer Anlauf nach Stoerung", Description: "Wiederanlauf nach Stoerung folgt definierter Prozedur mit Bedienerfreigabe.", HazardCategory: "software_control", Examples: []string{"Schrittweiser Anlauf nach Fehler", "Pruefsequenz vor Produktionsfreigabe"}, NormReferences: []string{"ISO 12100 — Stillsetzen im Notfall", "IEC 60204-1"}},
|
||||
|
||||
// ── Fluid Design (M051-M058) ────────────────────────────────────────
|
||||
{ID: "M051", ReductionType: "design", SubType: "fluid_design", Name: "Sichere Hydraulikdimensionierung", Description: "Hydrauliksystem so ausgelegt, dass Druckspitzen keine unkontrollierten Bewegungen verursachen.", HazardCategory: "pneumatic_hydraulic", Examples: []string{"Druckspeicher mit Berstscheibe", "Hydraulikleitungen druckfest dimensioniert"}, NormReferences: []string{"ISO 4413", "ISO 12100 — Minimierung Fehlerwahrscheinlichkeit"}},
|
||||
|
||||
Reference in New Issue
Block a user