package iace import "time" // builtinHazardsSafetyFunctions returns hazard library entries for // safety function failures, environmental hazards, and maintenance hazards. func builtinHazardsSafetyFunctions() []HazardLibraryEntry { now := time.Now() return []HazardLibraryEntry{ // ==================================================================== // Category: safety_function_failure (8 entries) // ==================================================================== { ID: hazardUUID("safety_function_failure", 1), Category: "safety_function_failure", Name: "Not-Halt trennt Energieversorgung nicht", Description: "Der Not-Halt-Taster betaetigt die Sicherheitsschalter, die Energiezufuhr wird jedoch nicht vollstaendig unterbrochen, weil das Sicherheitsrelais versagt.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"controller", "actuator"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230 Anhang I §1.2.4", "IEC 60947-5-5", "ISO 13849"}, SuggestedMitigations: mustMarshalJSON([]string{"Regelmaessiger Not-Halt-Test", "Redundantes Sicherheitsrelais", "Selbstueberwachender Sicherheitskreis"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("safety_function_failure", 2), Category: "safety_function_failure", Name: "Schutztuer-Monitoring umgangen", Description: "Das Schutztuer-Positionssignal wird durch einen Fehler oder Manipulation als 'geschlossen' gemeldet, obwohl die Tuer offen ist.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"sensor", "controller"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230", "ISO 14119", "ISO 13849"}, SuggestedMitigations: mustMarshalJSON([]string{"Zwangsöffnender Positionsschalter", "Codierter Sicherheitssensor", "Anti-Tamper-Masssnahmen"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("safety_function_failure", 3), Category: "safety_function_failure", Name: "Safe Speed Monitoring fehlt", Description: "Beim Einrichten im reduzierten Betrieb fehlt eine unabhaengige Geschwindigkeitsueberwachung, so dass der Bediener nicht ausreichend geschuetzt ist.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"controller", "software"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230", "IEC 62061", "ISO 13849"}, SuggestedMitigations: mustMarshalJSON([]string{"Sicherheitsumrichter mit SLS", "Unabhaengige Drehzahlmessung", "SIL-2-Geschwindigkeitsueberwachung"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("safety_function_failure", 4), Category: "safety_function_failure", Name: "STO-Funktion (Safe Torque Off) Fehler", Description: "Die STO-Sicherheitsfunktion schaltet den Antriebsmoment nicht ab, obwohl die Funktion aktiviert wurde, z.B. durch Fehler im Sicherheits-SPS-Ausgang.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"actuator", "controller"}, RegulationReferences: []string{"IEC 61800-5-2", "Maschinenverordnung 2023/1230", "IEC 62061"}, SuggestedMitigations: mustMarshalJSON([]string{"STO-Pruefung bei Inbetriebnahme", "Pruefzyklus im Betrieb", "Zertifizierter Sicherheitsumrichter"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("safety_function_failure", 5), Category: "safety_function_failure", Name: "Muting-Missbrauch bei Lichtvorhang", Description: "Die Muting-Funktion des Lichtvorhangs wird durch Fehler oder Manipulation zu lange oder unkontrolliert aktiviert, was den Schutz aufhebt.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"sensor", "controller"}, RegulationReferences: []string{"IEC 61496-3", "Maschinenverordnung 2023/1230"}, SuggestedMitigations: mustMarshalJSON([]string{"Zeitbegrenztes Muting", "Muting-Lampe und Alarm", "Protokollierung der Muting-Ereignisse"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("safety_function_failure", 6), Category: "safety_function_failure", Name: "Zweihand-Taster durch Gegenstand ueberbrueckt", Description: "Die Zweihand-Betaetigungseinrichtung wird durch ein eingeklemmtes Objekt permanent aktiviert, was den Bediener aus dem Schutzkonzept loest.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"hmi", "controller"}, RegulationReferences: []string{"ISO 13851", "Maschinenverordnung 2023/1230", "ISO 13849"}, SuggestedMitigations: mustMarshalJSON([]string{"Anti-Tie-Down-Pruefung", "Typ-III-Zweihand-Taster", "Regelmaessige Funktionskontrolle"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("safety_function_failure", 7), Category: "safety_function_failure", Name: "Sicherheitsrelais-Ausfall ohne Erkennung", Description: "Ein Sicherheitsrelais versagt unentdeckt (z.B. verklebte Kontakte), sodass der Sicherheitskreis nicht mehr auftrennt.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"controller"}, RegulationReferences: []string{"ISO 13849", "IEC 62061"}, SuggestedMitigations: mustMarshalJSON([]string{"Selbstueberwachung (zwangsgefuehrt)", "Regelmaessiger Testlauf", "Redundantes Relais"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("safety_function_failure", 8), Category: "safety_function_failure", Name: "Logic-Solver-Fehler in Sicherheits-SPS", Description: "Die Sicherheitssteuerung (Safety-SPS) fuehrt sicherheitsrelevante Logik fehlerhaft aus, z.B. durch Speicherfehler oder Prozessorfehler.", DefaultSeverity: 5, DefaultProbability: 1, ApplicableComponentTypes: []string{"controller", "software"}, RegulationReferences: []string{"IEC 61511", "IEC 61508", "ISO 13849"}, SuggestedMitigations: mustMarshalJSON([]string{"SIL-zertifizierte SPS", "Watchdog", "Selbsttest-Routinen (BIST)"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, // ==================================================================== // Category: environmental_hazard (5 entries) // ==================================================================== { ID: hazardUUID("environmental_hazard", 1), Category: "environmental_hazard", Name: "Ausfall durch hohe Umgebungstemperatur", Description: "Hohe Umgebungstemperaturen ueberschreiten die spezifizierten Grenzwerte der Elektronik oder Aktorik und fuehren zu Fehlfunktionen.", DefaultSeverity: 4, DefaultProbability: 3, ApplicableComponentTypes: []string{"controller", "sensor"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230", "IEC 60068-2"}, SuggestedMitigations: mustMarshalJSON([]string{"Betriebstemperatur-Spezifikation einhalten", "Klimaanlagensystem", "Temperatursensor + Abschaltung"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("environmental_hazard", 2), Category: "environmental_hazard", Name: "Ausfall bei Tieftemperatur", Description: "Sehr tiefe Temperaturen reduzieren die Viskositaet von Hydraulikfluessigkeiten, beeinflussen Elektronik und fuehren zu mechanischen Ausfaellen.", DefaultSeverity: 4, DefaultProbability: 3, ApplicableComponentTypes: []string{"actuator", "controller"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230", "IEC 60068-2"}, SuggestedMitigations: mustMarshalJSON([]string{"Tieftemperatur-spezifizierte Komponenten", "Heizung im Schaltschrank", "Anlaeufroutine bei Kaeltestart"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("environmental_hazard", 3), Category: "environmental_hazard", Name: "Korrosion durch Feuchtigkeit", Description: "Hohe Luftfeuchtigkeit oder Kondenswasser fuehrt zur Korrosion von Kontakten und Leiterbahnen, was zu Ausfaellen und Isolationsfehlern fuehrt.", DefaultSeverity: 3, DefaultProbability: 4, ApplicableComponentTypes: []string{"controller", "sensor"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230", "IEC 60529"}, SuggestedMitigations: mustMarshalJSON([]string{"IP-Schutz entsprechend der Umgebung", "Belueftung mit Filter", "Regelmaessige Inspektion"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("environmental_hazard", 4), Category: "environmental_hazard", Name: "Fehlfunktion durch Vibrationen", Description: "Mechanische Vibrationen lockern Verbindungen, schuetteln Kontakte auf oder beschaedigen Loetpunkte in Elektronikbaugruppen.", DefaultSeverity: 4, DefaultProbability: 3, ApplicableComponentTypes: []string{"controller", "sensor"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230", "IEC 60068-2-6"}, SuggestedMitigations: mustMarshalJSON([]string{"Vibrationsdaempfung", "Vergossene Elektronik", "Regelmaessige Verbindungskontrolle"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("environmental_hazard", 5), Category: "environmental_hazard", Name: "Kontamination durch Staub oder Fluessigkeiten", Description: "Staub, Metallspaeene oder Kuehlmittel gelangen in das Gehaeuseinnere und fuehren zu Kurzschluessen, Isolationsfehlern oder Kuehlproblemen.", DefaultSeverity: 3, DefaultProbability: 4, ApplicableComponentTypes: []string{"controller", "hmi"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230", "IEC 60529"}, SuggestedMitigations: mustMarshalJSON([]string{"Hohe IP-Schutzklasse", "Dichtungen regelmaessig pruefen", "Ueberdruck im Schaltschrank"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, // ==================================================================== // Category: maintenance_hazard (6 entries) // ==================================================================== { ID: hazardUUID("maintenance_hazard", 1), Category: "maintenance_hazard", Name: "Wartung ohne LOTO-Prozedur", Description: "Wartungsarbeiten werden ohne korrekte Lockout/Tagout-Prozedur durchgefuehrt, sodass die Maschine waehrend der Arbeit anlaufen kann.", DefaultSeverity: 5, DefaultProbability: 3, ApplicableComponentTypes: []string{"controller", "software"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230 Anhang I §1.6.3"}, SuggestedMitigations: mustMarshalJSON([]string{"LOTO-Funktion in Software", "Schulung", "Prozedur im Betriebshandbuch"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("maintenance_hazard", 2), Category: "maintenance_hazard", Name: "Fehlende LOTO-Funktion in Software", Description: "Die Steuerungssoftware bietet keine Moeglichkeit, die Maschine fuer Wartungsarbeiten sicher zu sperren und zu verriegeln.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"software", "hmi"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230 Anhang I §1.6.3"}, SuggestedMitigations: mustMarshalJSON([]string{"Software-LOTO implementieren", "Wartungsmodus mit Schluessel", "Energiesperrfunktion"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("maintenance_hazard", 3), Category: "maintenance_hazard", Name: "Wartung bei laufender Maschine", Description: "Wartungsarbeiten werden an betriebener Maschine durchgefuehrt, weil kein erzwungener Wartungsmodus vorhanden ist.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"software", "controller"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230", "ISO 13849"}, SuggestedMitigations: mustMarshalJSON([]string{"Erzwungenes Abschalten fuer Wartungsmodus", "Schluesselschalter", "Schutzmassnahmen im Wartungsmodus"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("maintenance_hazard", 4), Category: "maintenance_hazard", Name: "Wartungs-Tool ohne Zugangskontrolle", Description: "Ein Diagnose- oder Wartungswerkzeug ist ohne Authentifizierung zugaenglich und ermoeglicht die unbeaufsichtigte Aenderung von Sicherheitsparametern.", DefaultSeverity: 4, DefaultProbability: 2, ApplicableComponentTypes: []string{"software", "hmi"}, RegulationReferences: []string{"IEC 62443", "CRA"}, SuggestedMitigations: mustMarshalJSON([]string{"Authentifizierung fuer Wartungs-Tools", "Rollenkonzept", "Audit-Log fuer Wartungszugriffe"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("maintenance_hazard", 5), Category: "maintenance_hazard", Name: "Unsichere Demontage gefaehrlicher Baugruppen", Description: "Die Betriebsanleitung beschreibt nicht, wie gefaehrliche Baugruppen (z.B. Hochvolt, gespeicherte Energie) sicher demontiert werden.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"other"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230 Anhang I §1.7.4"}, SuggestedMitigations: mustMarshalJSON([]string{"Detaillierte Demontageanleitung", "Warnhinweise an Geraet", "Schulung des Wartungspersonals"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("maintenance_hazard", 6), Category: "maintenance_hazard", Name: "Wiederanlauf nach Wartung ohne Freigabeprozedur", Description: "Nach Wartungsarbeiten wird die Maschine ohne formelle Freigabeprozedur wieder in Betrieb genommen, was zu Verletzungen bei noch anwesendem Personal fuehren kann.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"software", "hmi"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230 Anhang I §1.6.3", "ISO 13849"}, SuggestedMitigations: mustMarshalJSON([]string{"Software-Wiederanlauf-Freigabe", "Gefahrenbereich-Pruefung vor Anlauf", "Akustisches Warnsignal vor Anlauf"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, } }