feat: Massnahmen-Bibliothek auf 200 erweitert (3-Stufen)

60 Design + 80 Schutz + 60 Information — alle mit Normenreferenzen.
Subtypes: geometry, force_energy, material, ergonomics, control_design,
fixed_guard, movable_guard, electro_sensitive, emergency_stop,
electrical/thermal/fluid protection, extraction, signage, manual,
training, ppe, organizational, marking.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-05-07 14:23:15 +02:00
parent 71802614cc
commit 3d7b09bcef
5 changed files with 376 additions and 14 deletions
@@ -51,21 +51,17 @@ func GetControlsLibrary() []ControlLibraryEntry {
}
}
// GetProtectiveMeasureLibrary returns the complete built-in protective measures library
// with 160 entries organized by reduction type (design, protection, information)
// following the ISO 12100 three-step method for risk reduction.
// NOTE: GetProtectiveMeasureLibrary() has moved to measures_library.go and
// measures_library_ext.go with ~200 entries covering the ISO 12100 three-step method.
//
// Each entry is categorized by sub-type and hazard category, with German-language
// names, descriptions, and practical examples for industrial machinery safety.
func GetProtectiveMeasureLibrary() []ProtectiveMeasureEntry {
// Legacy entries below are kept only as dead code for reference during the
// transition and will be removed in a future cleanup.
func init() {
_ = GetProtectiveMeasureLibrary // compile guard: the function must exist
}
func getProtectiveMeasureLibraryLegacy() []ProtectiveMeasureEntry {
return []ProtectiveMeasureEntry{
// ====================================================================
// Type 1: Design (ReductionType: "design") — Inhaerent sichere Konstruktion
// 50 entries: M001-M050
// ====================================================================
{ID: "M001", ReductionType: "design", SubType: "geometry", Name: "Gefahrstelle konstruktiv eliminieren", Description: "Durch konstruktive Gestaltung wird die Gefahrstelle vollstaendig beseitigt, sodass eine Gefaehrdung gar nicht erst entstehen kann.", HazardCategory: "mechanical", Examples: []string{"Quetschstelle durch Geometrieaenderung entfernen", "Einzugsstelle durch vergroesserten Spalt eliminieren", "Scherstelle durch Kinematikanpassung vermeiden"}},
{ID: "M002", ReductionType: "design", SubType: "force_energy", Name: "Bewegungsenergie reduzieren", Description: "Die kinetische Energie beweglicher Maschinenteile wird durch konstruktive Massnahmen auf ein sicheres Niveau begrenzt.", HazardCategory: "mechanical", Examples: []string{"Masse beweglicher Teile verringern", "Hublaenge verkuerzen", "Traegheitsmoment durch Leichtbau reduzieren"}},
{ID: "M003", ReductionType: "design", SubType: "force_energy", Name: "Geschwindigkeit reduzieren", Description: "Die Verfahrgeschwindigkeit wird konstruktiv auf ein Niveau begrenzt, bei dem keine gefaehrlichen Verletzungen auftreten koennen.", HazardCategory: "mechanical", Examples: []string{"Maximale Achsgeschwindigkeit mechanisch begrenzen", "Getriebeuebersetzung anpassen", "Drehzahlbegrenzer einbauen"}},
{ID: "M004", ReductionType: "design", SubType: "force_energy", Name: "Kraft begrenzen", Description: "Die maximal auftretende Kraft wird durch die Konstruktion so weit begrenzt, dass keine gefaehrlichen Verletzungen moeglich sind.", HazardCategory: "mechanical", Examples: []string{"Federbelastete Kraftbegrenzung einsetzen", "Antriebsdrehmoment begrenzen", "Nachgiebige Elemente verwenden"}},
@@ -73,7 +73,15 @@ func TestProtectiveMeasures_HazardCategoryNotEmpty(t *testing.T) {
}
}
// TestProtectiveMeasures_Count160 verifies at least 160 measures exist.
// TestProtectiveMeasures_Count200 verifies exactly 200 measures exist.
func TestProtectiveMeasures_Count200(t *testing.T) {
entries := GetProtectiveMeasureLibrary()
if len(entries) != 200 {
t.Fatalf("got %d protective measures, want exactly 200", len(entries))
}
}
// TestProtectiveMeasures_Count160 verifies at least 160 measures exist (legacy gate).
func TestProtectiveMeasures_Count160(t *testing.T) {
entries := GetProtectiveMeasureLibrary()
if len(entries) < 160 {
@@ -81,6 +89,76 @@ func TestProtectiveMeasures_Count160(t *testing.T) {
}
}
// TestProtectiveMeasures_NormReferencesPopulated verifies most measures have norm refs.
func TestProtectiveMeasures_NormReferencesPopulated(t *testing.T) {
withRefs := 0
for _, e := range GetProtectiveMeasureLibrary() {
if len(e.NormReferences) > 0 {
withRefs++
}
}
total := len(GetProtectiveMeasureLibrary())
threshold := total * 90 / 100
if withRefs < threshold {
t.Errorf("only %d/%d measures have NormReferences, want at least %d", withRefs, total, threshold)
}
}
// TestProtectiveMeasures_DesignProtectionInfoDistribution verifies balanced distribution.
func TestProtectiveMeasures_DesignProtectionInfoDistribution(t *testing.T) {
types := make(map[string]int)
for _, e := range GetProtectiveMeasureLibrary() {
types[e.ReductionType]++
}
design := types["design"]
protection := types["protection"]
information := types["information"]
if design < 50 {
t.Errorf("design measures: %d, want >= 50", design)
}
if protection < 70 {
t.Errorf("protection measures: %d, want >= 70", protection)
}
if information < 50 {
t.Errorf("information measures: %d, want >= 50", information)
}
t.Logf("Distribution: design=%d, protection=%d, information=%d", design, protection, information)
}
// TestProtectiveMeasures_IDSequential verifies IDs run M001-M200 without gaps.
func TestProtectiveMeasures_IDSequential(t *testing.T) {
entries := GetProtectiveMeasureLibrary()
for i, e := range entries {
expected := "M" + padID(i+1)
if e.ID != expected {
t.Errorf("entries[%d]: got ID %q, want %q", i, e.ID, expected)
}
}
}
func padID(n int) string {
if n < 10 {
return "00" + itoa(n)
}
if n < 100 {
return "0" + itoa(n)
}
return itoa(n)
}
func itoa(n int) string {
if n == 0 {
return "0"
}
s := ""
for n > 0 {
s = string(rune('0'+n%10)) + s
n /= 10
}
return s
}
// TestProtectiveMeasures_SubTypesPresent verifies subtypes are used.
func TestProtectiveMeasures_SubTypesPresent(t *testing.T) {
subtypes := make(map[string]int)
@@ -0,0 +1,94 @@
package iace
// GetProtectiveMeasureLibrary returns the complete built-in protective measures library
// with ~200 entries organized by reduction type (design, protection, information)
// following the ISO 12100 three-step method for risk reduction.
//
// Each entry is categorized by sub-type and hazard category, with German-language
// names, descriptions, and practical examples for industrial machinery safety.
func GetProtectiveMeasureLibrary() []ProtectiveMeasureEntry {
var all []ProtectiveMeasureEntry
all = append(all, getDesignMeasures()...)
all = append(all, getProtectiveMeasures()...)
all = append(all, getInformationMeasures()...)
return all
}
// getDesignMeasures returns Step 1: Inherently safe design measures (M001-M060).
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:2010 Kap. 6.2"}},
{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:2010 Kap. 6.2.2.1"}},
{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:2010 Kap. 6.2.2.1"}},
{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:2010 Kap. 6.2.2.2"}},
{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:2010 Kap. 6.2.3"}},
{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:2010 Kap. 6.2.2.1", "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:2010 Kap. 6.2.2.1"}},
{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:2010 Kap. 6.2.9"}},
{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:2010 Kap. 6.2.11.1"}},
// ── 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:2010 Kap. 6.2.2.2"}},
{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:2010 Kap. 6.2.2.2"}},
{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:2010 Kap. 6.2.2.2", "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:2010 Kap. 6.2.2.2"}},
{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:2010 Kap. 6.2.2.2"}},
{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:2010 Kap. 6.2.3", "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:2010 Kap. 6.2.2.2"}},
{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:2010 Kap. 6.2.3", "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:2010 Kap. 6.2.2.2"}},
{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:2010 Kap. 6.2.9"}},
{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:2010 Kap. 6.2.2.2"}},
{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:2010 Kap. 6.2.2.1"}},
// ── 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:2010 Kap. 6.2.2.1"}},
{ID: "M024", ReductionType: "design", SubType: "material", Name: "Stabile Konstruktion", Description: "Konstruktion auf ausreichende Festigkeit ausgelegt gegen strukturelles Versagen.", HazardCategory: "mechanical", Examples: []string{"Sicherheitsfaktoren bei Tragstrukturen", "Dauerfestigkeit der Schweissnaehte pruefen"}, NormReferences: []string{"ISO 12100:2010 Kap. 6.2.3", "EN 1993-1"}},
{ID: "M025", ReductionType: "design", SubType: "material", Name: "Splitterschutzglas", Description: "Sicherheitsglas verhindert Verletzungen durch Splitter bei Glasbruch.", HazardCategory: "mechanical", Examples: []string{"Verbundsicherheitsglas fuer Schutzhauben", "Polycarbonat-Scheiben an Drehmaschinen"}, NormReferences: []string{"ISO 12100:2010 Kap. 6.2.2.1", "ISO 14120"}},
{ID: "M026", ReductionType: "design", SubType: "material", Name: "Korrosionsbestaendige Materialien", Description: "Korrosionsfeste Werkstoffe verhindern Festigkeitsverlust und damit Versagen.", HazardCategory: "material_environmental", Examples: []string{"Edelstahl fuer feuchte Umgebungen", "Beschichtete Bauteile in chemischer Umgebung"}, NormReferences: []string{"ISO 12100:2010 Kap. 6.2.2.1"}},
{ID: "M027", ReductionType: "design", SubType: "material", Name: "Ausbrecharme Materialien", Description: "Werkstoffe, die bei Bruch keine scharfen Splitter erzeugen.", HazardCategory: "mechanical", Examples: []string{"Duktile Gusswerkstoffe statt sproeder", "Faserverstaerkte Kunststoffe statt Glas"}, NormReferences: []string{"ISO 12100:2010 Kap. 6.2.2.1"}},
{ID: "M028", ReductionType: "design", SubType: "material", Name: "Brandbestaendige Materialien", Description: "Feuerfeste Werkstoffe an brandgefaehrdeten Stellen minimieren Brandgefahr.", HazardCategory: "thermal", Examples: []string{"Flammhemmende Kabelisolierung", "Feuerfeste Hydraulikfluessigkeiten"}, NormReferences: []string{"ISO 12100:2010 Kap. 6.2.4", "EN 13501-1"}},
// ── Ergonomics (M029-M038) ──────────────────────────────────────────
{ID: "M029", ReductionType: "design", SubType: "ergonomics", Name: "Ergonomische Arbeitshoehe", Description: "Arbeitshoehe ist an Bedienergroesse anpassbar fuer belastungsarmes Arbeiten.", HazardCategory: "ergonomic", Examples: []string{"Hoehenverstellbare Arbeitstische", "Bedienfeld auf Ellbogenhoehe"}, NormReferences: []string{"EN 614-1", "ISO 12100:2010 Kap. 6.2.8"}},
{ID: "M030", ReductionType: "design", SubType: "ergonomics", Name: "Greifraum-Optimierung", Description: "Bedienelemente sind in ergonomisch guenstiger Reichweite platziert.", HazardCategory: "ergonomic", Examples: []string{"Haeufig genutzte Taster im Nahbereich", "Reichweitendiagramme bei der Planung anwenden"}, NormReferences: []string{"EN 614-1", "EN 894-3"}},
{ID: "M031", ReductionType: "design", SubType: "ergonomics", Name: "Gewichtsreduzierung Handhabung", Description: "Gewicht von Handwerkzeugen und Handhabungsteilen unter ergonomischen Grenzwerten.", HazardCategory: "ergonomic", Examples: []string{"Gewicht von Handwerkzeugen unter 2,5 kg", "Hebevorrichtungen fuer schwere Teile"}, NormReferences: []string{"EN 1005-2", "ISO 11228-1"}},
{ID: "M032", ReductionType: "design", SubType: "ergonomics", Name: "Intuitive Bedienoberflaeche", Description: "Bedienelemente und Anzeigen sind logisch angeordnet gegen Fehlbedienung.", HazardCategory: "ergonomic", Examples: []string{"Einheitliche Farbcodierung", "Logische Anordnung der Bedienelemente"}, NormReferences: []string{"EN 894-1", "EN 894-2", "EN 894-3"}},
{ID: "M033", ReductionType: "design", SubType: "ergonomics", Name: "Gute Sichtbarkeit", Description: "Sicherheitsrelevante Bereiche sind vom Bedienstandort einsehbar.", HazardCategory: "ergonomic", Examples: []string{"Transparente Schutzhauben verwenden", "Kamerabasierte Sichthilfen installieren"}, NormReferences: []string{"EN 614-1", "ISO 12100:2010 Kap. 6.2.8"}},
{ID: "M034", ReductionType: "design", SubType: "ergonomics", Name: "Sichere Mensch-Maschine-Interaktion", Description: "Schnittstelle Bediener/Maschine schliesst gefaehrliche Missverstaendnisse aus.", HazardCategory: "ergonomic", Examples: []string{"Eindeutige Statusindikatoren", "Bestaetigung vor kritischen Befehlen"}, NormReferences: []string{"EN 894-1", "IEC 60447"}},
{ID: "M035", ReductionType: "design", SubType: "ergonomics", Name: "Sichere Wartungszugaenge", Description: "Wartungsbereiche sind gefahrlos zugaenglich ohne Demontage von Schutzeinrichtungen.", HazardCategory: "ergonomic", Examples: []string{"Wartungsklappen mit Sicherheitsverriegelung", "Ausreichende Arbeitsflaeche im Wartungsbereich"}, NormReferences: []string{"EN 547-3", "ISO 12100:2010 Kap. 6.2.8"}},
{ID: "M036", ReductionType: "design", SubType: "ergonomics", Name: "Sichere Montagepunkte", Description: "Montagepunkte fuer sicheres Handling waehrend Montage und Demontage.", HazardCategory: "ergonomic", Examples: []string{"Anschlagpunkte fuer Hebezeuge", "Passstifte fuer lagegenaue Montage"}, NormReferences: []string{"ISO 12100:2010 Kap. 6.2.8"}},
{ID: "M037", ReductionType: "design", SubType: "ergonomics", Name: "Sichere Servicezugaenge", Description: "Servicebereiche sind bei abgeschalteter Maschine sicher zugaenglich.", HazardCategory: "ergonomic", Examples: []string{"Servicetreppen und -plattformen", "Beleuchtung im Servicebereich"}, NormReferences: []string{"EN 547-3", "ISO 14122-3"}},
{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:2010 Kap. 6.2.11.4", "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:2010 Kap. 6.2.10"}},
{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 Kap. 5.4", "ISO 12100:2010 Kap. 6.2.10"}},
{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 Kap. 9.2.5.4"}},
{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:2010 Kap. 6.2.11.10", "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:2010 Kap. 6.2.11.4", "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:2010 Kap. 6.2.9"}},
{ID: "M052", ReductionType: "design", SubType: "fluid_design", Name: "Sichere Pneumatikdimensionierung", Description: "Pneumatik so ausgelegt, dass Druckverlust zu sicherem Zustand fuehrt.", HazardCategory: "pneumatic_hydraulic", Examples: []string{"Federrueckstellung bei Druckausfall", "Druckbegrenzer in Versorgungsleitungen"}, NormReferences: []string{"ISO 4414", "ISO 12100:2010 Kap. 6.2.9"}},
{ID: "M053", ReductionType: "design", SubType: "fluid_design", Name: "Druckbegrenzung", Description: "Passive Druckbegrenzung verhindert Ueberschreiten des zulaessigen Drucks.", HazardCategory: "pneumatic_hydraulic", Examples: []string{"Berstscheiben an Druckbehaeltern", "Ueberdruckventile in Hydraulikkreisen"}, NormReferences: []string{"ISO 4413", "EN 764-7"}},
{ID: "M054", ReductionType: "design", SubType: "fluid_design", Name: "Sichere thermische Auslegung", Description: "Thermische Belastung beruecksichtigt zur Vermeidung von Ueberhitzung und Brandgefahr.", HazardCategory: "thermal", Examples: []string{"Waermeableitung durch Kuehlrippen", "Brandlast durch Materialwahl minimieren"}, NormReferences: []string{"ISO 12100:2010 Kap. 6.2.4"}},
{ID: "M055", ReductionType: "design", SubType: "fluid_design", Name: "Temperaturbegrenzung", Description: "Zugaengliche Oberflaechen erreichen keine gefaehrlichen Temperaturen.", HazardCategory: "thermal", Examples: []string{"Oberflaechentemperatur unter 43 Grad Celsius", "Thermische Abschirmungen an Oefen"}, NormReferences: []string{"EN ISO 13732-1", "ISO 12100:2010 Kap. 6.2.4"}},
{ID: "M056", ReductionType: "design", SubType: "fluid_design", Name: "Passive Kuehlung", Description: "Waermeabfuhr ohne aktive Komponenten verhindert Kuehlungsausfall.", HazardCategory: "thermal", Examples: []string{"Natuerliche Konvektion durch Rippendesign", "Waermeleitrohre (Heatpipes) einsetzen"}, NormReferences: []string{"ISO 12100:2010 Kap. 6.2.4"}},
{ID: "M057", ReductionType: "design", SubType: "fluid_design", Name: "Sichere Leitungsfuehrung", Description: "Hydraulik-/Pneumatikleitungen sind vor Beschaedigung geschuetzt.", HazardCategory: "pneumatic_hydraulic", Examples: []string{"Leitungen in geschuetzten Kanaelen", "Farbcodierte Leitungen"}, NormReferences: []string{"ISO 4413", "ISO 4414"}},
{ID: "M058", ReductionType: "design", SubType: "fluid_design", Name: "Sichere Entlueftung", Description: "Entlueftungssysteme stellen sicheren Druckabbau bei Wartung und Notfall sicher.", HazardCategory: "pneumatic_hydraulic", Examples: []string{"Entlueftungspunkte an Druckbehaeltern", "Manuelle Entlueftung mit Sicherheitsventil"}, NormReferences: []string{"ISO 4413", "ISO 4414"}},
// ── Noise/Vibration (M059-M060) ─────────────────────────────────────
{ID: "M059", ReductionType: "design", SubType: "noise_vibration", Name: "Laermminderung an der Quelle", Description: "Laerm wird durch konstruktive Massnahmen an der Entstehungsstelle reduziert.", HazardCategory: "noise_vibration", Examples: []string{"Schalldaemmende Gehaeuse", "Leise Getriebevarianten einsetzen"}, NormReferences: []string{"ISO 11688-1", "EN 12053"}},
{ID: "M060", ReductionType: "design", SubType: "noise_vibration", Name: "Schwingungsisolierung", Description: "Maschine wird vom Boden entkoppelt zur Verhinderung von Koerperschallausbreitung.", HazardCategory: "noise_vibration", Examples: []string{"Elastische Maschinenfuesse", "Schwingungsdaempfer an Fundamenten"}, NormReferences: []string{"ISO 10816-1", "EN 1032"}},
}
}
@@ -0,0 +1,193 @@
package iace
// getProtectiveMeasures returns Step 2: Technical protective measures (M061-M140).
func getProtectiveMeasures() []ProtectiveMeasureEntry {
return []ProtectiveMeasureEntry{
// ── Fixed Guards (M061-M066) ────────────────────────────────────────
{ID: "M061", ReductionType: "protection", SubType: "fixed_guard", Name: "Feste trennende Schutzeinrichtung", Description: "Fest montierte Barriere verhindert Zugang zum Gefahrbereich, nur mit Werkzeug entfernbar.", HazardCategory: "mechanical", Examples: []string{"Verschraubte Schutzverkleidung an Antrieben", "Schutzhaube ueber Riementrieb"}, NormReferences: []string{"ISO 14120", "ISO 12100:2010 Kap. 6.3.2"}},
{ID: "M062", ReductionType: "protection", SubType: "fixed_guard", Name: "Schutzzaun", Description: "Feststehender Zaun umgibt den Gefahrbereich vollstaendig.", HazardCategory: "mechanical", Examples: []string{"Stahlgitterzaun um Roboterzelle", "Polycarbonat-Schutzwand an Drehmaschine"}, NormReferences: []string{"ISO 14120", "ISO 13857"}},
{ID: "M063", ReductionType: "protection", SubType: "fixed_guard", Name: "Schutzhaube", Description: "Feststehende Haube kapselt rotierende oder sich bewegende Teile ein.", HazardCategory: "mechanical", Examples: []string{"Schutzhaube ueber Riemenantrieb", "Kapselung ueber Kupplungen"}, NormReferences: []string{"ISO 14120"}},
{ID: "M064", ReductionType: "protection", SubType: "fixed_guard", Name: "Schutzverkleidung mit Zugangsschlitz", Description: "Feste Verkleidung mit definierten Oeffnungen begrenzt den Zugang auf zul. Masse.", HazardCategory: "mechanical", Examples: []string{"Materialzufuehr-Schlitz an Presse", "Einlegeoeffnung mit Sicherheitsabstand"}, NormReferences: []string{"ISO 13857", "ISO 14120"}},
{ID: "M065", ReductionType: "protection", SubType: "fixed_guard", Name: "Schutzgitter fuer Lueftungsoeffnungen", Description: "Gitter an Lueftungsschlitzen verhindert Hindurchgreifen in rotierende Teile.", HazardCategory: "mechanical", Examples: []string{"Fingerschutzgitter an Lueftern", "Schutzgitter an Motorgehaeuse"}, NormReferences: []string{"ISO 13857", "ISO 14120"}},
{ID: "M066", ReductionType: "protection", SubType: "fixed_guard", Name: "Tunnelfoermige Schutzeinhausung", Description: "Tunnelschutz am Materialein-/auslauf verhindert Zugriff in die Maschine.", HazardCategory: "mechanical", Examples: []string{"Foerderbandtunnel an Uebergabestellen", "Schutztunnel an Stanzenauslauf"}, NormReferences: []string{"ISO 14120", "ISO 13857"}},
// ── Movable Guards (M067-M072) ──────────────────────────────────────
{ID: "M067", ReductionType: "protection", SubType: "movable_guard", Name: "Bewegliche Schutzeinrichtung mit Verriegelung", Description: "Bewegliche Schutzeinrichtung mit Sicherheitsschalter, Maschine stoppt bei Oeffnung.", HazardCategory: "mechanical", Examples: []string{"Schwenkbare Schutzhaube mit Sicherheitsschalter", "Klappbare Schutzabdeckung"}, NormReferences: []string{"ISO 14119", "ISO 14120"}},
{ID: "M068", ReductionType: "protection", SubType: "movable_guard", Name: "Verriegelung mit Zuhaltung", Description: "Schutztuer kann nur bei stillstehender Maschine geoeffnet werden.", HazardCategory: "mechanical", Examples: []string{"Elektromagnetische Zuhaltung", "Bolzenverriegelung mit Positionsueberwachung"}, NormReferences: []string{"ISO 14119", "ISO 14120"}},
{ID: "M069", ReductionType: "protection", SubType: "movable_guard", Name: "Codierte Sicherheitsschalter", Description: "RFID-codierte Schalter verhindern Umgehung der Schutzeinrichtung.", HazardCategory: "mechanical", Examples: []string{"RFID-Sicherheitsschalter an Schutztuer", "Codierte Schalter mit Manipulationsschutz"}, NormReferences: []string{"ISO 14119", "EN 1088"}},
{ID: "M070", ReductionType: "protection", SubType: "movable_guard", Name: "Verriegelungssystem mit Fluchtentriegelung", Description: "Zuhaltung kann von innen ohne Werkzeug geoeffnet werden (Personenschutz).", HazardCategory: "mechanical", Examples: []string{"Fluchtentriegelung an Einhausung", "Innenliegende Notentriegelung"}, NormReferences: []string{"ISO 14119", "ISO 14120"}},
{ID: "M071", ReductionType: "protection", SubType: "movable_guard", Name: "Startverriegelung", Description: "Maschine startet nur wenn alle Schutzeinrichtungen in Schutzstellung sind.", HazardCategory: "mechanical", Examples: []string{"Start nur bei geschlossener Schutztuer", "Automatische Rueckmeldung aller Schutzpositionen"}, NormReferences: []string{"ISO 14119", "ISO 12100:2010 Kap. 6.3.2"}},
{ID: "M072", ReductionType: "protection", SubType: "movable_guard", Name: "Zeitverzoegerte Zuhaltung", Description: "Zuhaltung gibt erst nach Auslauf gefaehrlicher Bewegungen frei.", HazardCategory: "mechanical", Examples: []string{"Zeitrelais an Spindelstopp", "Verzoegerte Tuerfreigabe nach Pressstopp"}, NormReferences: []string{"ISO 14119"}},
// ── Electro-sensitive (M073-M079) ───────────────────────────────────
{ID: "M073", ReductionType: "protection", SubType: "electro_sensitive", Name: "Lichtvorhang Typ 2", Description: "Optoelektronischer Schutz mit 30mm Aufloesung fuer Koerpererkennung.", HazardCategory: "mechanical", Examples: []string{"Koerperschutz-Lichtvorhang an Verpackungsmaschine", "Zugangsschutz an Palettieranlage"}, NormReferences: []string{"IEC 61496-1", "IEC 61496-2"}},
{ID: "M074", ReductionType: "protection", SubType: "electro_sensitive", Name: "Lichtvorhang Typ 4", Description: "Optoelektronischer Schutz mit 14mm Aufloesung fuer Handschutz.", HazardCategory: "mechanical", Examples: []string{"Handschutz-Lichtgitter an Pressenzufuehrung", "Fingerschutz an Abkantpresse"}, NormReferences: []string{"IEC 61496-1", "IEC 61496-2"}},
{ID: "M075", ReductionType: "protection", SubType: "electro_sensitive", Name: "Laserscanner", Description: "Flaechenscanner ueberwacht Bodenbereich mit Warn- und Schutzfeld.", HazardCategory: "mechanical", Examples: []string{"Sicherheitslaserscanner an mobiler Plattform", "Multizonen-Scanner mit anpassbaren Feldern"}, NormReferences: []string{"IEC 61496-3", "ISO 13855"}},
{ID: "M076", ReductionType: "protection", SubType: "electro_sensitive", Name: "Sicherheitslichtschranke", Description: "Einstrahl-Lichtschranke ueberwacht Zugang und loest Stopp aus.", HazardCategory: "mechanical", Examples: []string{"Einstrahl-Lichtschranke an Maschinenzugang", "Reflex-Lichtschranke an Auswurfoeffnung"}, NormReferences: []string{"IEC 61496-1", "ISO 13855"}},
{ID: "M077", ReductionType: "protection", SubType: "electro_sensitive", Name: "Kamerabasiertes Schutzsystem", Description: "Bildverarbeitungssystem erkennt Personen im Gefahrbereich dreidimensional.", HazardCategory: "mechanical", Examples: []string{"3D-Kamerasystem an Roboterzelle", "Stereokamera-Absicherung an Portal"}, NormReferences: []string{"IEC 61496-4", "ISO 13855"}},
{ID: "M078", ReductionType: "protection", SubType: "electro_sensitive", Name: "Radarbasiertes Schutzsystem", Description: "Radarsensor erkennt Personen auch bei Staub, Nebel oder Verschmutzung.", HazardCategory: "mechanical", Examples: []string{"Radarsensor an Outdoor-Anlage", "Radarueberwachung bei verschmutzter Umgebung"}, NormReferences: []string{"IEC 61496-1"}},
{ID: "M079", ReductionType: "protection", SubType: "electro_sensitive", Name: "Ultraschallsensor-Absicherung", Description: "Ultraschallsensoren erkennen Personen anhand reflektierter Schallwellen.", HazardCategory: "mechanical", Examples: []string{"Ultraschallnaeherungssensor an Fahrzeugen", "Kollisionswarnung an FTS"}, NormReferences: []string{"IEC 61496-1"}},
// ── Pressure-sensitive (M080-M082) ──────────────────────────────────
{ID: "M080", ReductionType: "protection", SubType: "pressure_sensitive", Name: "Schaltmatte", Description: "Druckempfindliche Bodenmatte erkennt Betreten des Gefahrbereichs.", HazardCategory: "mechanical", Examples: []string{"Sicherheitsmatte vor Roboterzelle", "Schaltmatte unter Palettierstation"}, NormReferences: []string{"ISO 13856-1", "ISO 13855"}},
{ID: "M081", ReductionType: "protection", SubType: "pressure_sensitive", Name: "Schaltleiste", Description: "Druckempfindliche Leiste an Maschinenkante stoppt bei Beruehrung.", HazardCategory: "mechanical", Examples: []string{"Schaltleiste an Schutztuer-Unterkante", "Tastleiste an verfahrbarer Einheit"}, NormReferences: []string{"ISO 13856-2"}},
{ID: "M082", ReductionType: "protection", SubType: "pressure_sensitive", Name: "Schaltpuffer", Description: "Druckempfindliche Pufferelemente an Fahrzeugkanten erkennen Kollisionen.", HazardCategory: "mechanical", Examples: []string{"Schaltpuffer an FTS/AGV", "Bumper an Shuttle-System"}, NormReferences: []string{"ISO 13856-3", "ISO 3691-4"}},
// ── Emergency Stop (M083-M086) ──────────────────────────────────────
{ID: "M083", ReductionType: "protection", SubType: "emergency_stop", Name: "Not-Halt Kategorie 0", Description: "Sofortiges Abschalten aller Aktoren durch Unterbrechung der Energiezufuhr.", HazardCategory: "general", Examples: []string{"Pilztaster an jedem Bedienfeld", "Drahtloser Not-Halt fuer mobile Bedienung"}, NormReferences: []string{"ISO 13850", "IEC 60204-1 Kap. 9.2.5.4"}},
{ID: "M084", ReductionType: "protection", SubType: "emergency_stop", Name: "Not-Halt Kategorie 1", Description: "Kontrolliertes Stillsetzen, dann Energietrennung nach Stillstand.", HazardCategory: "general", Examples: []string{"Kontrolliertes Abbremsen vor Abschaltung", "Gesteuerter Stopp mit anschliessender Energietrennung"}, NormReferences: []string{"ISO 13850", "IEC 60204-1 Kap. 9.2.5.4"}},
{ID: "M085", ReductionType: "protection", SubType: "emergency_stop", Name: "Not-Halt-Seilzug", Description: "Reissleine entlang langer Foerderstrecken fuer sofortigen Stopp.", HazardCategory: "general", Examples: []string{"Seilzug-Nothalt an Bandfoerderern", "Reissleine entlang Rollenbahnen"}, NormReferences: []string{"ISO 13850", "EN 620"}},
{ID: "M086", ReductionType: "protection", SubType: "emergency_stop", Name: "Notabschaltung", Description: "Sofortige Trennung von der Energieversorgung bei unmittelbarer Lebensgefahr.", HazardCategory: "general", Examples: []string{"Notabschaltung am Hauptschalter", "Schnellablass fuer Hydraulikdruck"}, NormReferences: []string{"IEC 60204-1 Kap. 9.2.5.3", "ISO 12100:2010 Kap. 6.3.5"}},
// ── Electrical Protection (M087-M094) ───────────────────────────────
{ID: "M087", ReductionType: "protection", SubType: "electrical_protection", Name: "Fehlerstromschutzschalter RCD", Description: "Erkennt Fehlerstromanteile und trennt den Stromkreis zum Schutz vor Stromschlag.", HazardCategory: "electrical", Examples: []string{"RCD 30mA fuer Steckdosenkreise", "RCD Typ B fuer Frequenzumrichter"}, NormReferences: []string{"IEC 60204-1", "DIN VDE 0100-410"}},
{ID: "M088", ReductionType: "protection", SubType: "electrical_protection", Name: "Schutzerdung", Description: "Leitfaehige Gehaeuseteile sind geerdet zum Schutz bei Isolationsfehlern.", HazardCategory: "electrical", Examples: []string{"PE-Leiter an allen Metallgehaeuse", "Potenzialausgleichsschiene im Schaltschrank"}, NormReferences: []string{"IEC 60204-1 Kap. 8", "DIN VDE 0100-540"}},
{ID: "M089", ReductionType: "protection", SubType: "electrical_protection", Name: "Schutzisolierung", Description: "Doppelte oder verstaerkte Isolierung als Schutz ohne Erdungsleiter.", HazardCategory: "electrical", Examples: []string{"Schutzisoliertes Handwerkzeug", "Doppelt isolierte Motorwicklung"}, NormReferences: []string{"IEC 60204-1 Kap. 6.3", "EN 61140"}},
{ID: "M090", ReductionType: "protection", SubType: "electrical_protection", Name: "Schutzkleinspannung SELV/PELV", Description: "Betriebsspannung unter 50V AC / 120V DC eliminiert Stromschlagrisiko.", HazardCategory: "electrical", Examples: []string{"24V-Steuerungsspannung", "PELV-Beleuchtung im Maschineninneren"}, NormReferences: []string{"IEC 60204-1 Kap. 6.4", "EN 61140"}},
{ID: "M091", ReductionType: "protection", SubType: "electrical_protection", Name: "Zweihandbedienung", Description: "Maschine nur ausloesbar wenn beide Haende gleichzeitig an Bedienelementen.", HazardCategory: "mechanical", Examples: []string{"Zweihand-Sicherheitsschaltung an Presse", "Typ-IIIC-Zweihandsteuerung"}, NormReferences: []string{"ISO 13851", "EN 574"}},
{ID: "M092", ReductionType: "protection", SubType: "electrical_protection", Name: "Zustimmschalter", Description: "Dreistufenschalter erlaubt Verfahren nur bei aktivem Gedrueckthalten.", HazardCategory: "mechanical", Examples: []string{"Zustimmtaster am Roboter-Handgeraet", "Zustimmfunktion fuer Teach-Betrieb"}, NormReferences: []string{"IEC 60204-1 Kap. 10.9", "ISO 12100:2010 Kap. 6.2.11.9"}},
{ID: "M093", ReductionType: "protection", SubType: "electrical_protection", Name: "Sicherheitsrelais", Description: "Zwangsgefuehrte Relais ueberwachen Schutzeinrichtungen zuverlaessig.", HazardCategory: "electrical", Examples: []string{"Not-Halt-Sicherheitsrelais", "Tuerverriegelungs-Auswertegeraet"}, NormReferences: []string{"ISO 13849-1", "IEC 60947-5-1"}},
{ID: "M094", ReductionType: "protection", SubType: "electrical_protection", Name: "Lockout-Tagout (LOTO)", Description: "Verfahren zur Verriegelung und Kennzeichnung von Energiequellen bei Wartung.", HazardCategory: "electrical", Examples: []string{"Persoenliche Sicherheitsschloesser", "LOTO-Verfahrensanweisung an der Maschine"}, NormReferences: []string{"IEC 60204-1 Kap. 5.4", "ISO 14118"}},
// ── Thermal Protection (M095-M097) ──────────────────────────────────
{ID: "M095", ReductionType: "protection", SubType: "thermal_protection", Name: "Thermische Isolierung", Description: "Isolierung an heissen Oberflaechen verhindert Verbrennungen bei Beruehrung.", HazardCategory: "thermal", Examples: []string{"Rohrleitungsisolierung an Dampfleitungen", "Isolierhaube an Extruder"}, NormReferences: []string{"EN ISO 13732-1", "ISO 12100:2010 Kap. 6.3.2.7"}},
{ID: "M096", ReductionType: "protection", SubType: "thermal_protection", Name: "Beruehrungsschutz heisse Teile", Description: "Abschirmungen verhindern versehentliche Beruehrung heisser Komponenten.", HazardCategory: "thermal", Examples: []string{"Schutzgitter an Heizungen", "Abstandshalter an heissen Rohren"}, NormReferences: []string{"EN ISO 13732-1"}},
{ID: "M097", ReductionType: "protection", SubType: "thermal_protection", Name: "Kuehlfallen und Waermetauscher", Description: "Aktive Kuehlsysteme halten Oberflaechentemperaturen unter sicheren Grenzwerten.", HazardCategory: "thermal", Examples: []string{"Wasserkuehlung an Laser-Schneidkopf", "Oelkuehler fuer Hydraulikoel"}, NormReferences: []string{"ISO 12100:2010 Kap. 6.2.4"}},
// ── Fluid Protection (M098-M101) ────────────────────────────────────
{ID: "M098", ReductionType: "protection", SubType: "fluid_protection", Name: "Druckbegrenzungsventil", Description: "Voreingestelltes Ventil schuetzt das System vor unzulaessig hohem Druck.", HazardCategory: "pneumatic_hydraulic", Examples: []string{"DBV in Hydraulik-Hauptleitung", "Reduzierventil in Pneumatik-Zuluft"}, NormReferences: []string{"ISO 4413", "ISO 4414"}},
{ID: "M099", ReductionType: "protection", SubType: "fluid_protection", Name: "Schlauchbruchsicherung", Description: "Ventil schliesst automatisch bei ploetzlichem Druckabfall durch Leitungsbruch.", HazardCategory: "pneumatic_hydraulic", Examples: []string{"Schlauchbruchsicherung an Hydraulikzylinder", "Rueckschlagventil bei Leitungsabriss"}, NormReferences: []string{"ISO 4413"}},
{ID: "M100", ReductionType: "protection", SubType: "fluid_protection", Name: "Sicherheitsventil", Description: "Federbelastetes Ventil oeffnet bei Ueberdruck und leitet Medium ab.", HazardCategory: "pneumatic_hydraulic", Examples: []string{"Sicherheitsventil am Druckbehaelter", "Entlueftungsventil bei Pneumatik"}, NormReferences: []string{"ISO 4126-1", "EN 764-7"}},
{ID: "M101", ReductionType: "protection", SubType: "fluid_protection", Name: "Auffangeinrichtung fuer Betriebsfluide", Description: "Auffangwannen verhindern Umweltkontamination und Rutschgefahr bei Leckagen.", HazardCategory: "material_environmental", Examples: []string{"Oelwanne unter Hydraulikaggregat", "Auffangrinne unter Schmierstoffleitungen"}, NormReferences: []string{"ISO 12100:2010 Kap. 6.3.2.7"}},
// ── Extraction (M102-M104) ──────────────────────────────────────────
{ID: "M102", ReductionType: "protection", SubType: "extraction", Name: "Absauganlage", Description: "Absaugung entfernt gesundheitsschaedliche Daempfe, Staub und Rauch.", HazardCategory: "material_environmental", Examples: []string{"Schweissrauchabsaugung", "Staubabsaugung an Holzbearbeitungsmaschine"}, NormReferences: []string{"EN 626-1", "EN 1093-1"}},
{ID: "M103", ReductionType: "protection", SubType: "extraction", Name: "Oelnebelabscheider", Description: "Filtert Oelnebel aus der Maschinenumgebung zum Schutz der Atemwege.", HazardCategory: "material_environmental", Examples: []string{"Oelnebelabscheider an CNC-Maschine", "Aerosolabscheider an Kuehlschmiermittel"}, NormReferences: []string{"EN 1093-1"}},
{ID: "M104", ReductionType: "protection", SubType: "extraction", Name: "Spaenesauganlage", Description: "Absaugsystem entfernt Metallspaene und verhindert Verletzungen durch Spaeneflug.", HazardCategory: "mechanical", Examples: []string{"Spaenefoerderer an Drehmaschine", "Spaeneabsaugung an Fraesmaschine"}, NormReferences: []string{"EN 1093-1"}},
// ── Safety Control (M105-M113) ──────────────────────────────────────
{ID: "M105", ReductionType: "protection", SubType: "safety_control", Name: "Sichere SPS", Description: "Fehlersichere SPS fuehrt sicherheitsrelevante Funktionen redundant aus.", HazardCategory: "software_control", Examples: []string{"Zweikanalige SPS mit Kreuzvergleich", "SIL-3-zertifizierte Safety-SPS"}, NormReferences: []string{"IEC 62061", "ISO 13849-1"}},
{ID: "M106", ReductionType: "protection", SubType: "safety_control", Name: "Watchdog", Description: "Timer ueberwacht Steuerungssoftware und loest sicheren Zustand bei Ausfall aus.", HazardCategory: "software_control", Examples: []string{"Hardware-Watchdog auf Safety-SPS", "Fenster-Watchdog mit engem Zeitfenster"}, NormReferences: []string{"IEC 61508-2", "ISO 13849-1"}},
{ID: "M107", ReductionType: "protection", SubType: "safety_control", Name: "Sichere Fehlerbehandlung", Description: "Jeder erkannte Fehler wird systematisch in definierten sicheren Zustand ueberfuehrt.", HazardCategory: "software_control", Examples: []string{"Exception-Handler fuer kritische Bereiche", "Unbehandelte Fehler loesen sicheren Stopp aus"}, NormReferences: []string{"IEC 61508-3", "IEC 62443-4-1"}},
{ID: "M108", ReductionType: "protection", SubType: "safety_control", Name: "Sichere Recovery", Description: "Nach Fehler wird Maschine in Ausgangszustand zurueckgesetzt vor Weiterbetrieb.", HazardCategory: "software_control", Examples: []string{"Referenzfahrt nach Steuerungswiederanlauf", "Konfigurationscheck nach Recovery"}, NormReferences: []string{"IEC 62061", "ISO 12100:2010 Kap. 6.2.11.4"}},
{ID: "M109", ReductionType: "protection", SubType: "safety_control", Name: "Sichere Degradationsstrategie", Description: "Bei Teilausfaellen Uebergang in Modus mit reduzierter Leistung aber erhaltener Sicherheit.", HazardCategory: "software_control", Examples: []string{"Reduzierte Geschwindigkeit bei Sensorausfall", "Automatischer Wechsel auf Handbetrieb"}, NormReferences: []string{"IEC 62061", "ISO 13849-1"}},
{ID: "M110", ReductionType: "protection", SubType: "safety_control", Name: "Automatische Abschaltung bei Fehler", Description: "Bei schwerwiegenden Fehlern automatische sichere Abschaltung.", HazardCategory: "software_control", Examples: []string{"Stopp-Kategorie 0 bei kritischem Fehler", "Energietrennung bei unbehebbarem Fehler"}, NormReferences: []string{"IEC 60204-1", "ISO 13850"}},
{ID: "M111", ReductionType: "protection", SubType: "safety_control", Name: "Sichere Speicherverwaltung", Description: "Steuerungssoftware verwendet sichere Speicherverwaltung gegen Datenverlust.", HazardCategory: "software_control", Examples: []string{"Speicherschutz fuer Safety-Bereiche", "Stack-Overflow-Schutz implementieren"}, NormReferences: []string{"IEC 61508-3"}},
{ID: "M112", ReductionType: "protection", SubType: "safety_control", Name: "Selbsttest", Description: "Sicherheitsbaugruppen fuehren automatische Selbsttests durch und melden Fehler.", HazardCategory: "software_control", Examples: []string{"Anlauftestung des Lichtgitters", "ROM-CRC-Pruefung bei Steuerungsstart"}, NormReferences: []string{"IEC 61508-2", "ISO 13849-1"}},
{ID: "M113", ReductionType: "protection", SubType: "safety_control", Name: "Sichere Kommunikationsprotokolle", Description: "Sichere Industrieprotokolle fuer authentifizierte Steuerungskommunikation.", HazardCategory: "software_control", Examples: []string{"PROFIsafe fuer SPS-Kommunikation", "CIP Safety fuer EtherNet/IP"}, NormReferences: []string{"IEC 61784-3", "IEC 62280"}},
// ── Monitoring (M114-M120) ──────────────────────────────────────────
{ID: "M114", ReductionType: "protection", SubType: "monitoring", Name: "Sichere Positionsueberwachung", Description: "Redundante Positionserfassung mit Plausibilitaetspruefung an Sicherheitsachsen.", HazardCategory: "mechanical", Examples: []string{"Doppelte Absolutwertgeber an Servoachsen", "Sichere Positionsauswertung ueber Safety-SPS"}, NormReferences: []string{"IEC 61800-5-2", "IEC 62061"}},
{ID: "M115", ReductionType: "protection", SubType: "monitoring", Name: "Sichere Geschwindigkeitsueberwachung", Description: "Geschwindigkeit wird sicher ueberwacht mit Stopp bei Ueberschreitung.", HazardCategory: "mechanical", Examples: []string{"Sichere Drehzahlueberwachung an Spindeln", "Geschwindigkeitsbegrenzung im Einrichtbetrieb"}, NormReferences: []string{"IEC 61800-5-2", "IEC 62061"}},
{ID: "M116", ReductionType: "protection", SubType: "monitoring", Name: "Temperaturueberwachung", Description: "Temperatursensoren loesen Schutzreaktion bei Grenzwertueberschreitung aus.", HazardCategory: "thermal", Examples: []string{"Temperaturfuehler an Motorwicklungen", "Thermoelement an Hydrauliktank"}, NormReferences: []string{"ISO 12100:2010 Kap. 6.3.2.7"}},
{ID: "M117", ReductionType: "protection", SubType: "monitoring", Name: "Vibrationsueberwachung", Description: "Schwingungssensoren warnen vor drohendem Komponentenversagen.", HazardCategory: "noise_vibration", Examples: []string{"Beschleunigungssensoren an Hauptlagern", "Grenzwertbasierte Vibrationswarnung"}, NormReferences: []string{"ISO 10816-1", "ISO 13373-1"}},
{ID: "M118", ReductionType: "protection", SubType: "monitoring", Name: "Druckueberwachung", Description: "Druckueberwachung in Hydraulik/Pneumatik mit Schutzreaktion bei Grenzwert.", HazardCategory: "pneumatic_hydraulic", Examples: []string{"Druckschalter in Hydraulik-Hauptleitung", "Differenzdruck-Ueberwachung an Filtern"}, NormReferences: []string{"ISO 4413", "ISO 4414"}},
{ID: "M119", ReductionType: "protection", SubType: "monitoring", Name: "Redundante Sensorik", Description: "Sicherheitskritische Messstellen mit zwei unabhaengigen Sensoren und Vergleich.", HazardCategory: "software_control", Examples: []string{"Zweikanalige Positionserfassung", "Diversitaere Druckmessung"}, NormReferences: []string{"ISO 13849-1", "IEC 62061"}},
{ID: "M120", ReductionType: "protection", SubType: "monitoring", Name: "Zustandsueberwachung (Condition Monitoring)", Description: "Kontinuierliche Maschinenzustandsueberwachung fuer fruehzeitige Fehlererkennung.", HazardCategory: "general", Examples: []string{"Condition-Monitoring-System fuer Lager", "Trendanalyse fuer Motorstroeme"}, NormReferences: []string{"ISO 13379-1", "ISO 17359"}},
// ── Cybersecurity (M121-M130) ───────────────────────────────────────
{ID: "M121", ReductionType: "protection", SubType: "cybersecurity", Name: "Zugangskontrolle", Description: "Physisches/elektronisches Zugangskontrollsystem fuer autorisierte Bedienung.", HazardCategory: "cyber_network", Examples: []string{"RFID-Chipkarten fuer Maschinenzugang", "Schluesselsystem fuer Betriebsartenwahl"}, NormReferences: []string{"IEC 62443-3-3", "ISO 12100:2010 Kap. 6.2.11.10"}},
{ID: "M122", ReductionType: "protection", SubType: "cybersecurity", Name: "Sichere Netzwerksegmentierung", Description: "Maschinennetzwerk von anderen Netzwerken getrennt gegen Uebergreifen von Angriffen.", HazardCategory: "cyber_network", Examples: []string{"OT-Netzwerk per VLAN trennen", "DMZ zwischen Office und Produktion"}, NormReferences: []string{"IEC 62443-3-3", "IEC 62443-2-1"}},
{ID: "M123", ReductionType: "protection", SubType: "cybersecurity", Name: "Firewall", Description: "Konfigurierte Firewall schuetzt Steuerungsnetzwerk vor unautorisiertem Verkehr.", HazardCategory: "cyber_network", Examples: []string{"Industrie-Firewall vor SPS-Netzwerk", "Deep-Packet-Inspection fuer Industrieprotokolle"}, NormReferences: []string{"IEC 62443-3-3"}},
{ID: "M124", ReductionType: "protection", SubType: "cybersecurity", Name: "Sichere Fernwartung", Description: "Fernzugriff nur ueber verschluesselte, authentifizierte, zeitbegrenzte Verbindungen.", HazardCategory: "cyber_network", Examples: []string{"VPN fuer Fernwartung", "Fernzugriff nur nach lokaler Freigabe"}, NormReferences: []string{"IEC 62443-3-3", "VDI/VDE 2182"}},
{ID: "M125", ReductionType: "protection", SubType: "cybersecurity", Name: "Signierte Software-Updates", Description: "Updates werden vor Installation auf Authentizitaet und Integritaet geprueft.", HazardCategory: "cyber_network", Examples: []string{"Code-Signing fuer Steuerungssoftware", "Hash-Pruefung vor Update-Installation"}, NormReferences: []string{"IEC 62443-4-1", "IEC 62443-4-2"}},
{ID: "M126", ReductionType: "protection", SubType: "cybersecurity", Name: "Integritaetspruefung", Description: "Regelmaessige automatische Pruefung der Steuerungssoftware-Integritaet.", HazardCategory: "cyber_network", Examples: []string{"CRC-Pruefung bei jedem Start", "Hash-Verifizierung der Firmware im Betrieb"}, NormReferences: []string{"IEC 62443-4-2"}},
{ID: "M127", ReductionType: "protection", SubType: "cybersecurity", Name: "Sichere Bootkette", Description: "Secure Boot laed nur vertrauenswuerdige Software beim Steuerungsstart.", HazardCategory: "cyber_network", Examples: []string{"Secure Boot im BIOS", "Chain-of-Trust bis zur Applikation"}, NormReferences: []string{"IEC 62443-4-2", "NIST SP 800-147"}},
{ID: "M128", ReductionType: "protection", SubType: "cybersecurity", Name: "Verschluesselte Kommunikation", Description: "Alle sicherheitsrelevanten Kommunikationsverbindungen sind verschluesselt.", HazardCategory: "cyber_network", Examples: []string{"TLS fuer HMI-Kommunikation", "OPC UA mit Sign&Encrypt"}, NormReferences: []string{"IEC 62443-3-3", "IEC 62443-4-2"}},
{ID: "M129", ReductionType: "protection", SubType: "cybersecurity", Name: "Audit-Trail", Description: "Alle sicherheitsrelevanten Aktionen unveraenderbar mit Zeitstempel protokolliert.", HazardCategory: "cyber_network", Examples: []string{"Geschuetztes Logfile fuer Sicherheitsereignisse", "Aenderungshistorie fuer Konfiguration"}, NormReferences: []string{"IEC 62443-3-3", "IEC 62443-4-2"}},
{ID: "M130", ReductionType: "protection", SubType: "cybersecurity", Name: "Sichere Parameteraenderung", Description: "Sicherheitsparameter-Aenderungen erfordern Authentifizierung und Protokollierung.", HazardCategory: "cyber_network", Examples: []string{"Parameterschutz ueber Zugangsstufen", "Vier-Augen-Prinzip bei Safety-Parametern"}, NormReferences: []string{"IEC 62443-3-3", "IEC 62443-4-1"}},
// ── Alarmierung (M131-M133) ─────────────────────────────────────────
{ID: "M131", ReductionType: "protection", SubType: "monitoring", Name: "Optische Alarmierung", Description: "Signalleuchten zeigen Betriebszustand und warnen bei Gefahr.", HazardCategory: "general", Examples: []string{"Signalleuchte gelb bei Warnung, rot bei Gefahr", "Blinkende Warnleuchte vor Maschinenstart"}, NormReferences: []string{"IEC 60204-1 Kap. 10.3", "IEC 60073"}},
{ID: "M132", ReductionType: "protection", SubType: "monitoring", Name: "Akustische Alarmierung", Description: "Akustische Signale warnen vor Gefahrsituationen und Maschinenstart.", HazardCategory: "general", Examples: []string{"Hupe vor automatischem Anlauf", "Alarmsirene bei Schutztuerverletzung"}, NormReferences: []string{"IEC 60204-1 Kap. 10.3", "ISO 7731"}},
{ID: "M133", ReductionType: "protection", SubType: "monitoring", Name: "Anomalieerkennung", Description: "System erkennt ungewoehnliche Verhaltensmuster und warnt fruehzeitig.", HazardCategory: "ai_specific", Examples: []string{"ML fuer Normalbetriebsprofil", "Netzwerk-Anomalieerkennung"}, NormReferences: []string{"IEC 62443-3-3"}},
// ── Bremsen / mechanische Schutz (M134-M140) ────────────────────────
{ID: "M134", ReductionType: "protection", SubType: "electrical_protection", Name: "Bremssystem", Description: "Zuverlaessiges Bremssystem stoppt bewegliche Teile bei Abschaltung oder Notfall.", HazardCategory: "mechanical", Examples: []string{"Federspeicherbremse an Vertikalachse", "Redundante Bremse mit diversitaerem Wirkprinzip"}, NormReferences: []string{"ISO 13849-1", "IEC 61800-5-2"}},
{ID: "M135", ReductionType: "protection", SubType: "electrical_protection", Name: "Sicherheitskupplung", Description: "Trennt Kraftuebertragung bei Drehmomentueberschreitung.", HazardCategory: "mechanical", Examples: []string{"Rutschkupplung im Antriebsstrang", "Brechbolzenkupplung als Sollbruchstelle"}, NormReferences: []string{"ISO 12100:2010 Kap. 6.3.2"}},
{ID: "M136", ReductionType: "protection", SubType: "electrical_protection", Name: "Sichere Energieabschaltung (Schutz)", Description: "Zuverlaessige Energietrennung mit Absperrvorrichtung fuer Wartungszugang.", HazardCategory: "electrical", Examples: []string{"Reparaturschalter mit Vorhangschloss", "Pneumatik-Absperrung mit Entlueftung"}, NormReferences: []string{"IEC 60204-1 Kap. 5.4", "ISO 14118"}},
{ID: "M137", ReductionType: "protection", SubType: "electrical_protection", Name: "Kontaktlose Energieuebertragung", Description: "Induktive Energieuebertragung eliminiert Verschleiss und Lichtbogenrisiko.", HazardCategory: "electrical", Examples: []string{"Induktive Koppler an Drehtischen", "Kontaktlose Leistungsuebertragung an FTS"}, NormReferences: []string{"IEC 60204-1"}},
{ID: "M138", ReductionType: "protection", SubType: "electrical_protection", Name: "Blitzschutz und Ueberspannungsableiter", Description: "Ableiter schuetzen Steuerungselektronik vor transienten Ueberspannungen.", HazardCategory: "electrical", Examples: []string{"Ueberspannungsableiter am Schaltschrankeingang", "EMV-Filter an Signalleitungen"}, NormReferences: []string{"IEC 62305-4", "IEC 60204-1 Kap. 6.6"}},
{ID: "M139", ReductionType: "protection", SubType: "electrical_protection", Name: "Isolationsueberwachung", Description: "Dauerhaftes Monitoring des Isolationswiderstands erkennt Fehler vor Gefaehrdung.", HazardCategory: "electrical", Examples: []string{"Isolationswaechter im IT-Netz", "Isolationsmessung an Motorwicklungen"}, NormReferences: []string{"IEC 61557-8", "IEC 60204-1"}},
{ID: "M140", ReductionType: "protection", SubType: "electrical_protection", Name: "Selektiver Ueberstromschutz", Description: "Selektive Absicherung begrenzt Fehlerstromauswirkung auf den betroffenen Zweig.", HazardCategory: "electrical", Examples: []string{"Selektive Staffelung der Sicherungen", "Motorschutzschalter an jedem Abgang"}, NormReferences: []string{"IEC 60204-1 Kap. 7", "IEC 60947-2"}},
}
}
// getInformationMeasures returns Step 3: User information measures (M141-M200).
func getInformationMeasures() []ProtectiveMeasureEntry {
return []ProtectiveMeasureEntry{
// ── Signage (M141-M150) ─────────────────────────────────────────────
{ID: "M141", ReductionType: "information", SubType: "signage", Name: "Sicherheitszeichen nach ISO 7010", Description: "Normgerechte Sicherheitsschilder fuer Gebote, Verbote und Warnungen.", HazardCategory: "general", Examples: []string{"Gebotszeichen fuer Gehoerschutz", "Verbotszeichen an gesperrten Zugaengen"}, NormReferences: []string{"ISO 7010", "ASR A1.3"}},
{ID: "M142", ReductionType: "information", SubType: "signage", Name: "Warnhinweis heisse Oberflaeche W017", Description: "Warnzeichen an Maschinenteilen mit Verbrennungsgefahr.", HazardCategory: "thermal", Examples: []string{"Warnaufkleber an Gehaeuse", "Warnschild an Rohrleitungen"}, NormReferences: []string{"ISO 7010 W017", "EN ISO 13732-1"}},
{ID: "M143", ReductionType: "information", SubType: "signage", Name: "Gefahrenhinweis elektrische Spannung W012", Description: "Warnzeichen an Stellen mit elektrischer Gefaehrdung.", HazardCategory: "electrical", Examples: []string{"Warnschild am Schaltschrank", "Elektrogefahr-Symbol an Anschlussdosen"}, NormReferences: []string{"ISO 7010 W012", "IEC 60204-1"}},
{ID: "M144", ReductionType: "information", SubType: "signage", Name: "Gefahrenkennzeichnung Bodenmarkierung", Description: "Gelb-schwarze Schraffur markiert Gefahrbereiche am Boden.", HazardCategory: "general", Examples: []string{"Bodenmarkierung um Roboterzelle", "Gefahrenzone mit Schraffur kennzeichnen"}, NormReferences: []string{"ASR A1.3", "ISO 12100:2010 Kap. 6.4"}},
{ID: "M145", ReductionType: "information", SubType: "signage", Name: "Gefahrenpiktogramme sprachunabhaengig", Description: "Piktogramme warnen ohne Textverstaendnis vor spezifischen Gefaehrdungen.", HazardCategory: "general", Examples: []string{"Piktogramm fuer Handverletzungsgefahr", "Laserwarnsymbol an Bearbeitungsanlage"}, NormReferences: []string{"ISO 7010", "ISO 3864-1"}},
{ID: "M146", ReductionType: "information", SubType: "signage", Name: "PSA-Gebotszeichen", Description: "Gebotszeichen zeigen vorgeschriebene Schutzausruestung fuer den Bereich.", HazardCategory: "general", Examples: []string{"Gehoerschutz-Gebot ab 85 dB(A)", "Schutzbrille-Gebot bei Spanabnahme"}, NormReferences: []string{"ISO 7010", "PSA-BV"}},
{ID: "M147", ReductionType: "information", SubType: "signage", Name: "Sicherheitsplakat", Description: "Gut sichtbares Plakat fasst wichtigste Sicherheitsregeln zusammen.", HazardCategory: "general", Examples: []string{"Sicherheitsplakat am Maschinenzugang", "Notfall-Verhaltensregeln darstellen"}, NormReferences: []string{"ASR A1.3"}},
{ID: "M148", ReductionType: "information", SubType: "signage", Name: "Restrisiko-Kennzeichnung", Description: "Hinweis auf verbleibende Risiken die nicht konstruktiv eliminiert werden konnten.", HazardCategory: "general", Examples: []string{"Restrisiko-Schild an Nachlaufbereich", "Hinweis auf Quetschgefahr trotz Schutzeinrichtung"}, NormReferences: []string{"ISO 12100:2010 Kap. 6.4.3"}},
{ID: "M149", ReductionType: "information", SubType: "signage", Name: "Sicherheitsdiagramme aushangen", Description: "Sicherheitskreise und Schutzeinrichtungen als Diagramm sichtbar machen.", HazardCategory: "general", Examples: []string{"Schaltschema im Schaltschrank", "Blockschaltbild der Sicherheitssteuerung"}, NormReferences: []string{"IEC 60204-1 Kap. 18"}},
{ID: "M150", ReductionType: "information", SubType: "signage", Name: "Notfallkontaktliste", Description: "Aktuelle Notfallnummern am Bedienplatz fuer schnelle Erreichbarkeit.", HazardCategory: "general", Examples: []string{"Notfallnummern am Bedienplatz", "Herstellerhotline fuer technische Notfaelle"}, NormReferences: []string{"ASR A2.3", "DGUV Vorschrift 1"}},
// ── Manual / Documentation (M151-M160) ──────────────────────────────
{ID: "M151", ReductionType: "information", SubType: "manual", Name: "Betriebsanleitung", Description: "Umfassende Anleitung fuer sicheren Betrieb in allen vorgesehenen Betriebsarten.", HazardCategory: "general", Examples: []string{"Vollstaendige Anleitung in Landessprache", "Kapitel zur bestimmungsgemaessen Verwendung"}, NormReferences: []string{"ISO 12100:2010 Kap. 6.4.5", "IEC 82079-1"}},
{ID: "M152", ReductionType: "information", SubType: "manual", Name: "Restrisiko-Hinweise in Anleitung", Description: "Dokumentation aller verbleibenden Risiken mit Schutzmassnahmen fuer den Betreiber.", HazardCategory: "general", Examples: []string{"Restrisiken kapitelweise auflisten", "Schutzempfehlungen fuer jedes Restrisiko"}, NormReferences: []string{"ISO 12100:2010 Kap. 6.4.5.1 f"}},
{ID: "M153", ReductionType: "information", SubType: "manual", Name: "Wartungsanleitung", Description: "Detaillierte Wartungsanweisungen mit erforderlichen Sicherheitsmassnahmen.", HazardCategory: "general", Examples: []string{"Schritt-fuer-Schritt-Wartungsanleitung", "Sicherheitsmassnahmen vor jeder Taetigkeit"}, NormReferences: []string{"ISO 12100:2010 Kap. 6.4.5.1 e", "IEC 82079-1"}},
{ID: "M154", ReductionType: "information", SubType: "manual", Name: "Servicehandbuch", Description: "Alle Informationen fuer sichere Diagnose, Reparatur und Instandsetzung.", HazardCategory: "general", Examples: []string{"Schaltplaene und Hydraulikplaene", "Diagnoseprozeduren fuer Fehlercodes"}, NormReferences: []string{"IEC 82079-1"}},
{ID: "M155", ReductionType: "information", SubType: "manual", Name: "Notfallanweisung", Description: "Sofortmassnahmen bei Unfaellen und Stoerungen an der Maschine.", HazardCategory: "general", Examples: []string{"Notfallplan an der Maschine aushangen", "Erste-Hilfe bei maschinenspezifischen Verletzungen"}, NormReferences: []string{"DGUV Vorschrift 1", "ISO 12100:2010 Kap. 6.4.5.1 d"}},
{ID: "M156", ReductionType: "information", SubType: "manual", Name: "Betreiberhandbuch", Description: "Zusammenfassung aller organisatorischen Pflichten des Maschinenbetreibers.", HazardCategory: "general", Examples: []string{"Betreiberpflichten aus Maschinenrichtlinie", "Pruef- und Wartungspflichten"}, NormReferences: []string{"2006/42/EG Anhang I", "BetrSichV"}},
{ID: "M157", ReductionType: "information", SubType: "manual", Name: "Reinigungsanweisung", Description: "Sichere Vorgehensweise bei Reinigung der Maschine und Komponenten.", HazardCategory: "general", Examples: []string{"Zulaessige Reinigungsmittel", "Reinigung nur bei abgeschalteter Maschine"}, NormReferences: []string{"ISO 12100:2010 Kap. 6.4.5.1 e"}},
{ID: "M158", ReductionType: "information", SubType: "manual", Name: "Stoerungsanweisung", Description: "Sicheres Vorgehen bei typischen Maschinenstoerungen und deren Behebung.", HazardCategory: "general", Examples: []string{"Stoerungsbilder mit Abhilfemassnahmen", "Eskalationsprozess bei nicht behebbaren Stoerungen"}, NormReferences: []string{"IEC 82079-1", "ISO 12100:2010 Kap. 6.4.5.1 d"}},
{ID: "M159", ReductionType: "information", SubType: "manual", Name: "Softwareupdateanleitung", Description: "Sicheres Einspielen von Software-/Firmware-Updates auf Maschinensteuerung.", HazardCategory: "software_control", Examples: []string{"Backup vor jedem Update", "Funktionspruefung nach Update"}, NormReferences: []string{"IEC 62443-2-3"}},
{ID: "M160", ReductionType: "information", SubType: "manual", Name: "Entsorgungsanleitung", Description: "Fachgerechte und sichere Entsorgung der Maschine und Betriebsstoffe.", HazardCategory: "material_environmental", Examples: []string{"Gefahrstoffe identifizieren", "Entsorgungsnachweis fuer Fluide"}, NormReferences: []string{"2006/42/EG Anhang I Kap. 1.7.4.2 v"}},
// ── Training (M161-M168) ────────────────────────────────────────────
{ID: "M161", ReductionType: "information", SubType: "training", Name: "Erstunterweisung Bediener", Description: "Initiale Sicherheitsunterweisung vor erstem Maschinenbetrieb.", HazardCategory: "general", Examples: []string{"Einweisungsprogramm fuer neue Bediener", "Praktische Uebung am Not-Halt"}, NormReferences: []string{"BetrSichV §12", "DGUV Vorschrift 1"}},
{ID: "M162", ReductionType: "information", SubType: "training", Name: "Jaehrliche Wiederholungsunterweisung", Description: "Regelmaessige Auffrischung der Sicherheitskenntnisse.", HazardCategory: "general", Examples: []string{"Jaehrliche Sicherheitsschulung", "Schulungsnachweise dokumentieren"}, NormReferences: []string{"ArbSchG §12", "DGUV Vorschrift 1"}},
{ID: "M163", ReductionType: "information", SubType: "training", Name: "LOTO-Schulung", Description: "Schulung zum Lockout-Tagout-Verfahren fuer Wartungspersonal.", HazardCategory: "electrical", Examples: []string{"Praktische LOTO-Uebung an der Maschine", "Zertifizierung fuer LOTO-Berechtigung"}, NormReferences: []string{"ISO 14118", "DGUV Vorschrift 3"}},
{ID: "M164", ReductionType: "information", SubType: "training", Name: "Benutzerrollenbeschreibung", Description: "Dokumentation der Aufgaben, Verantwortlichkeiten und Qualifikationen pro Rolle.", HazardCategory: "general", Examples: []string{"Rollenbeschreibung Maschinenbediener", "Qualifikationsanforderungen Instandhalter"}, NormReferences: []string{"BetrSichV", "DGUV Vorschrift 1"}},
{ID: "M165", ReductionType: "information", SubType: "training", Name: "Notfalltraining", Description: "Praktische Uebungen fuer Notfallsituationen an der Maschine.", HazardCategory: "general", Examples: []string{"Not-Halt-Uebung mit allen Bedienern", "Erste-Hilfe-Training maschinenspezifisch"}, NormReferences: []string{"ArbSchG §10", "DGUV Vorschrift 1"}},
{ID: "M166", ReductionType: "information", SubType: "training", Name: "Cybersecurity-Awareness-Training", Description: "Schulung zu IT-Sicherheitsrisiken an Maschinen und Steuerungen.", HazardCategory: "cyber_network", Examples: []string{"Passwortsicherheit an HMI", "Erkennung von Social Engineering"}, NormReferences: []string{"IEC 62443-2-1"}},
{ID: "M167", ReductionType: "information", SubType: "training", Name: "Schulung Schutzeinrichtungen", Description: "Unterweisung zur korrekten Funktion und Pruefung aller Schutzeinrichtungen.", HazardCategory: "general", Examples: []string{"Funktionstest der Lichtgitter erklaeren", "Pruefung der Schutztuerverriegelung zeigen"}, NormReferences: []string{"BetrSichV §12", "DGUV Vorschrift 1"}},
{ID: "M168", ReductionType: "information", SubType: "training", Name: "Gefahrstoffunterweisung", Description: "Schulung zum sicheren Umgang mit Gefahrstoffen an der Maschine.", HazardCategory: "material_environmental", Examples: []string{"Umgang mit Kuehlschmiermitteln", "Verhalten bei Oelleckage"}, NormReferences: []string{"GefStoffV §14", "DGUV Vorschrift 1"}},
// ── PPE (M169-M175) ─────────────────────────────────────────────────
{ID: "M169", ReductionType: "information", SubType: "ppe", Name: "Schutzbrille", Description: "Augenschutz gegen Spaeneflug, Spritzer und UV-Strahlung.", HazardCategory: "mechanical", Examples: []string{"Schutzbrille bei Schleifarbeiten", "Vollsichtbrille bei chemischen Spritzern"}, NormReferences: []string{"EN 166", "PSA-BV"}},
{ID: "M170", ReductionType: "information", SubType: "ppe", Name: "Gehoerschutz Kapsel", Description: "Kapselgehoerschuetzer bei Laermpegeln ueber 85 dB(A).", HazardCategory: "noise_vibration", Examples: []string{"Kapselgehoerschutz an lauten Maschinen", "Aktiver Gehoerschutz fuer Kommunikation"}, NormReferences: []string{"EN 352-1", "LärmVibrationsArbSchV"}},
{ID: "M171", ReductionType: "information", SubType: "ppe", Name: "Schutzhandschuhe mechanisch", Description: "Handschuhe gegen Schnitt-, Stich- und Abriebverletzungen.", HazardCategory: "mechanical", Examples: []string{"Schnittschutzhandschuhe Level 5", "Vibrationsschutz-Handschuhe"}, NormReferences: []string{"EN 388", "PSA-BV"}},
{ID: "M172", ReductionType: "information", SubType: "ppe", Name: "Sicherheitsschuhe S3", Description: "Sicherheitsschuhe mit Zehenschutzkappe und durchtrittsicherer Sohle.", HazardCategory: "mechanical", Examples: []string{"S3-Schuhe im Produktionsbereich", "S5-Gummistiefel bei Nassreinigung"}, NormReferences: []string{"EN ISO 20345", "PSA-BV"}},
{ID: "M173", ReductionType: "information", SubType: "ppe", Name: "Atemschutz FFP2/FFP3", Description: "Atemschutzmaske gegen Staub, Rauch und Aerosole.", HazardCategory: "material_environmental", Examples: []string{"FFP2-Maske bei Schweissrauch", "FFP3-Maske bei Feinstaub"}, NormReferences: []string{"EN 149", "GefStoffV"}},
{ID: "M174", ReductionType: "information", SubType: "ppe", Name: "Schutzkleidung chemisch", Description: "Chemikalienschutzkleidung gegen Spritzer und Kontamination.", HazardCategory: "material_environmental", Examples: []string{"Chemikalienschuerze an Galvanikanlage", "Vollschutzanzug bei Reinigungsarbeiten"}, NormReferences: []string{"EN 14605", "GefStoffV"}},
{ID: "M175", ReductionType: "information", SubType: "ppe", Name: "Schutzhelm", Description: "Kopfschutz gegen herabfallende Teile und Anstossen.", HazardCategory: "mechanical", Examples: []string{"Industrieschutzhelm in Montagehalle", "Anstosskappen in niedrigen Bereichen"}, NormReferences: []string{"EN 397", "PSA-BV"}},
// ── Organizational (M176-M192) ──────────────────────────────────────
{ID: "M176", ReductionType: "information", SubType: "organizational", Name: "Zugangsregelung", Description: "Organisatorische Festlegung wer unter welchen Bedingungen Zugang erhaelt.", HazardCategory: "general", Examples: []string{"Zugangsberechtigungsliste fuehren", "Begleitpflicht fuer Besucher"}, NormReferences: []string{"BetrSichV", "DGUV Vorschrift 1"}},
{ID: "M177", ReductionType: "information", SubType: "organizational", Name: "Betriebsanweisung", Description: "Arbeitsplatzspezifische Anweisung zum sicheren Umgang mit der Maschine.", HazardCategory: "general", Examples: []string{"Betriebsanweisung am Bedienplatz", "Taeglich zu beachtende Sicherheitshinweise"}, NormReferences: []string{"BetrSichV §12", "TRBS 1201"}},
{ID: "M178", ReductionType: "information", SubType: "organizational", Name: "Gefaehrdungsbeurteilung", Description: "Systematische Ermittlung und Bewertung aller Gefaehrdungen am Arbeitsplatz.", HazardCategory: "general", Examples: []string{"Gefaehrdungsbeurteilung pro Maschine", "Massnahmen aus Beurteilung ableiten"}, NormReferences: []string{"ArbSchG §5", "BetrSichV §3"}},
{ID: "M179", ReductionType: "information", SubType: "organizational", Name: "Wartungsplan", Description: "Detaillierter Plan mit Intervallen und Umfang aller planmaessigen Wartung.", HazardCategory: "general", Examples: []string{"Taeglich zu pruefende Sicherheitseinrichtungen", "Jaehrliche Hauptinspektion planen"}, NormReferences: []string{"BetrSichV §10", "TRBS 1201"}},
{ID: "M180", ReductionType: "information", SubType: "organizational", Name: "Inspektionsplan", Description: "Art und Haeufigkeit der Inspektionen sicherheitsrelevanter Komponenten.", HazardCategory: "general", Examples: []string{"Tagesinspektion Schutzeinrichtungen", "Quartalinspektion Hydraulikleitungen"}, NormReferences: []string{"BetrSichV §10", "TRBS 1201"}},
{ID: "M181", ReductionType: "information", SubType: "organizational", Name: "Pruefplan wiederkehrende Pruefungen", Description: "Festlegung welche Pruefungen an welchen Bauteilen in welchen Intervallen.", HazardCategory: "general", Examples: []string{"Wiederkehrende Pruefung Druckbehaelter", "Pruefung nach DGUV V3"}, NormReferences: []string{"BetrSichV §14-16", "TRBS 1201"}},
{ID: "M182", ReductionType: "information", SubType: "organizational", Name: "Incident-Reporting", Description: "Meldung und Dokumentation aller Sicherheitsvorfaelle.", HazardCategory: "general", Examples: []string{"Meldeformular fuer Vorfaelle", "Vorfallanalyse und Massnahmenverfolgung"}, NormReferences: []string{"DGUV Vorschrift 1 §28", "ArbSchG §15-16"}},
{ID: "M183", ReductionType: "information", SubType: "organizational", Name: "Aenderungsmanagement", Description: "Strukturiertes Change-Management mit Sicherheitsbewertung jeder Aenderung.", HazardCategory: "general", Examples: []string{"Aenderungsantrag mit Sicherheitsbewertung", "Risikobeurteilung bei jeder Aenderung aktualisieren"}, NormReferences: []string{"ISO 12100:2010 Kap. 6.1", "IEC 62443-2-4"}},
{ID: "M184", ReductionType: "information", SubType: "organizational", Name: "Auditverfahren", Description: "Regelmaessige Ueberpruefung der Wirksamkeit aller Sicherheitsmassnahmen.", HazardCategory: "general", Examples: []string{"Internes Sicherheitsaudit jaehrlich", "Massnahmen aus Audits nachverfolgen"}, NormReferences: []string{"ISO 45001", "DGUV Vorschrift 1"}},
{ID: "M185", ReductionType: "information", SubType: "organizational", Name: "Passwortpolicy", Description: "Mindestanforderungen an Passwoerter fuer Steuerungssysteme.", HazardCategory: "cyber_network", Examples: []string{"Mindestlaenge und Komplexitaet", "Standardpasswoerter bei Inbetriebnahme aendern"}, NormReferences: []string{"IEC 62443-2-1"}},
{ID: "M186", ReductionType: "information", SubType: "organizational", Name: "Backup-Anweisung", Description: "Regelmaessige Sicherung von Steuerungsprogrammen und Konfigurationsdaten.", HazardCategory: "software_control", Examples: []string{"Woechentliches Backup der SPS-Programme", "Backup nach jeder Parameteraenderung"}, NormReferences: []string{"IEC 62443-2-1"}},
{ID: "M187", ReductionType: "information", SubType: "organizational", Name: "Konfigurationsrichtlinie", Description: "Festlegung wie sicherheitsrelevante Parameter dokumentiert und freigegeben werden.", HazardCategory: "software_control", Examples: []string{"Parameterliste mit Wertebereichen", "Freigabeprozess fuer Aenderungen"}, NormReferences: []string{"IEC 62443-2-1", "IEC 62443-4-1"}},
{ID: "M188", ReductionType: "information", SubType: "organizational", Name: "Update-Freigabeprozess", Description: "Definierter Prozess stellt sicher dass Updates vor Einspielen geprueft werden.", HazardCategory: "software_control", Examples: []string{"Testprozedur auf Testmaschine", "Freigabe durch Sicherheitsbeauftragten"}, NormReferences: []string{"IEC 62443-2-3", "IEC 62443-4-1"}},
{ID: "M189", ReductionType: "information", SubType: "organizational", Name: "Reset-Anweisung", Description: "Sichere Vorgehensweise zum Quittieren von Fehlern und Wiederanlauf.", HazardCategory: "software_control", Examples: []string{"Reset-Prozedur nach Not-Halt", "Pruefschritte vor Produktionsfreigabe"}, NormReferences: []string{"ISO 12100:2010 Kap. 6.4.5.1 d"}},
{ID: "M190", ReductionType: "information", SubType: "organizational", Name: "Inbetriebnahmecheckliste", Description: "Vor erstem Betrieb alle Sicherheitsvoraussetzungen systematisch pruefen.", HazardCategory: "general", Examples: []string{"Schutzeinrichtungen auf korrekte Montage", "Sicherheitsfunktionen einzeln testen"}, NormReferences: []string{"BetrSichV §14", "TRBS 1201"}},
{ID: "M191", ReductionType: "information", SubType: "organizational", Name: "Stilllegungscheckliste", Description: "Sichere Ausserbetriebnahme und Entsorgung der Maschine.", HazardCategory: "general", Examples: []string{"Energiequellen sicher trennen", "Betriebsstoffe umweltgerecht entsorgen"}, NormReferences: []string{"2006/42/EG Anhang I Kap. 1.7.4.2 v"}},
{ID: "M192", ReductionType: "information", SubType: "organizational", Name: "Sicherheitsprotokoll", Description: "Dokumentation aller durchgefuehrten Sicherheitspruefungen und Ergebnisse.", HazardCategory: "general", Examples: []string{"Pruefprotokoll wiederkehrende Pruefungen", "Abnahmeprotokoll nach Umbau"}, NormReferences: []string{"BetrSichV §14", "TRBS 1201"}},
// ── Marking (M193-M196) ─────────────────────────────────────────────
{ID: "M193", ReductionType: "information", SubType: "marking", Name: "Typenschild", Description: "Dauerhaftes Typenschild mit Herstellerangaben, Leistung und CE-Kennzeichnung.", HazardCategory: "general", Examples: []string{"CE-Kennzeichnung auf Typenschild", "Baujahr und Seriennummer"}, NormReferences: []string{"2006/42/EG Anhang I Kap. 1.7.3", "ISO 12100:2010 Kap. 6.4.4"}},
{ID: "M194", ReductionType: "information", SubType: "marking", Name: "Leitungskennzeichnung", Description: "Eindeutige Kennzeichnung aller Leitungen nach Medium, Flussrichtung und Druck.", HazardCategory: "pneumatic_hydraulic", Examples: []string{"Farbcodierung nach Norm", "Flussrichtungspfeile an Leitungen"}, NormReferences: []string{"ISO 14726", "DIN 2403"}},
{ID: "M195", ReductionType: "information", SubType: "marking", Name: "Komponentenkennzeichnung", Description: "Alle sicherheitsrelevanten Komponenten eindeutig beschriftet fuer Wartung.", HazardCategory: "general", Examples: []string{"Kabelmarkierungen an Klemmen", "Ventilkennzeichnung im Hydraulikplan"}, NormReferences: []string{"IEC 60204-1 Kap. 16", "ISO 12100:2010 Kap. 6.4.4"}},
{ID: "M196", ReductionType: "information", SubType: "marking", Name: "Pruefplakette", Description: "Plakette dokumentiert erfolgte Pruefung mit Datum und naechstem Prueftermin.", HazardCategory: "general", Examples: []string{"Pruefplakette an Druckbehaelter", "DGUV V3-Pruefplakette an Elektrogeraet"}, NormReferences: []string{"BetrSichV §14", "DGUV Vorschrift 3"}},
// ── Checklisten (M197-M200) ─────────────────────────────────────────
{ID: "M197", ReductionType: "information", SubType: "organizational", Name: "Taeglich Sicherheits-Checkliste", Description: "Standardisierte Checkliste fuer taegliche Sicherheitspruefung vor Betrieb.", HazardCategory: "general", Examples: []string{"Sichtpruefung Schutzeinrichtungen", "Funktionspruefung Not-Halt"}, NormReferences: []string{"BetrSichV §10", "DGUV Vorschrift 1"}},
{ID: "M198", ReductionType: "information", SubType: "organizational", Name: "Wartungscheckliste", Description: "Systematische Abarbeitung aller Wartungspunkte mit Dokumentation.", HazardCategory: "general", Examples: []string{"Checkliste woechentliche Wartung", "Oelstand und Filter pruefen"}, NormReferences: []string{"BetrSichV §10"}},
{ID: "M199", ReductionType: "information", SubType: "organizational", Name: "Schichtwechsel-Checkliste", Description: "Checkliste fuer sichere Uebergabe zwischen Schichten.", HazardCategory: "general", Examples: []string{"Maschinenzustand dokumentieren", "Offene Stoerungen uebergeben"}, NormReferences: []string{"DGUV Vorschrift 1"}},
{ID: "M200", ReductionType: "information", SubType: "organizational", Name: "Cyber-Security-Hinweise fuer Betreiber", Description: "Hinweise zum Schutz der Maschinensteuerung vor Cyberangriffen.", HazardCategory: "cyber_network", Examples: []string{"Netzwerksicherheitshinweise", "Regelmaessige Aktualisierung empfehlen"}, NormReferences: []string{"IEC 62443-2-1", "VDI/VDE 2182"}},
}
}
@@ -177,6 +177,7 @@ type ProtectiveMeasureEntry struct {
Description string `json:"description"`
HazardCategory string `json:"hazard_category,omitempty"`
Examples []string `json:"examples,omitempty"`
NormReferences []string `json:"norm_references,omitempty"`
Tags []string `json:"tags,omitempty"`
}