package iace import "time" // builtinHazardsMachineSafety returns hazard library entries covering // mechanical, environmental and machine safety hazards. func builtinHazardsMachineSafety() []HazardLibraryEntry { now := time.Now() return []HazardLibraryEntry{ // Category: mechanical_hazard (6 entries) // ==================================================================== { ID: hazardUUID("mechanical_hazard", 1), Category: "mechanical_hazard", Name: "Unerwarteter Anlauf nach Spannungsausfall", Description: "Nach Wiederkehr der Versorgungsspannung laeuft die Maschine unerwartet an, ohne dass eine Startfreigabe durch den Bediener erfolgt ist.", DefaultSeverity: 5, DefaultProbability: 3, ApplicableComponentTypes: []string{"controller", "firmware"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230 Anhang I §1.2.6", "ISO 13849"}, SuggestedMitigations: mustMarshalJSON([]string{"Anlaufschutz", "Anti-Restart-Funktion", "Sicherheitsrelais"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("mechanical_hazard", 2), Category: "mechanical_hazard", Name: "Restenergie nach Abschalten", Description: "Gespeicherte kinetische oder potentielle Energie (z.B. Schwungmasse, abgesenktes Werkzeug) wird nach dem Abschalten nicht sicher abgebaut.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"actuator", "controller"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230 Anhang I §1.6", "ISO 13849"}, SuggestedMitigations: mustMarshalJSON([]string{"Energieabbau-Prozedur", "Mechanische Haltevorrichtung", "LOTO-Freischaltung"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("mechanical_hazard", 3), Category: "mechanical_hazard", Name: "Unerwartete Maschinenbewegung", Description: "Die Maschine fuehrt eine unkontrollierte Bewegung durch (z.B. Antrieb faehrt ohne Kommando los), was Personen im Gefahrenbereich verletzt.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"actuator", "controller", "software"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230", "ISO 13849", "IEC 62061"}, SuggestedMitigations: mustMarshalJSON([]string{"Safe Torque Off (STO)", "Geschwindigkeitsueberwachung", "Schutzzaun-Sensorik"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("mechanical_hazard", 4), Category: "mechanical_hazard", Name: "Teileauswurf durch Fehlfunktion", Description: "Werkzeuge, Werkstuecke oder Maschinenteile werden bei einer Fehlfunktion unkontrolliert aus der Maschine geschleudert.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"actuator", "controller"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230 Anhang I §1.3.2"}, SuggestedMitigations: mustMarshalJSON([]string{"Trennende Schutzeinrichtung", "Sicherheitsglas", "Spannkraft-Ueberwachung"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("mechanical_hazard", 5), Category: "mechanical_hazard", Name: "Quetschstelle durch fehlende Schutzeinrichtung", Description: "Zwischen beweglichen und festen Maschinenteilen entstehen Quetschstellen, die bei fehlendem Schutz zu schweren Verletzungen fuehren koennen.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"actuator"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230 Anhang I §1.3.7", "ISO 13857"}, SuggestedMitigations: mustMarshalJSON([]string{"Schutzverkleidung", "Sicherheitsabstaende nach ISO 13857", "Lichtvorhang"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("mechanical_hazard", 6), Category: "mechanical_hazard", Name: "Instabile Struktur unter Last", Description: "Die Maschinenstruktur oder ein Anbauteil versagt unter statischer oder dynamischer Belastung und gefaehrdet Personen in der Naehe.", DefaultSeverity: 5, DefaultProbability: 1, ApplicableComponentTypes: []string{"other"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230 Anhang I §1.3.1"}, SuggestedMitigations: mustMarshalJSON([]string{"Festigkeitsberechnung", "Ueberlastsicherung", "Regelmaessige Inspektion"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, // ==================================================================== // Category: electrical_hazard (6 entries) // ==================================================================== { ID: hazardUUID("electrical_hazard", 1), Category: "electrical_hazard", Name: "Elektrischer Schlag an Bedienpanel", Description: "Bediener kommen mit spannungsfuehrenden Teilen in Beruehrung, z.B. durch defekte Gehaeuseerdung oder fehlerhafte Isolierung.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"hmi", "controller"}, RegulationReferences: []string{"Niederspannungsrichtlinie 2014/35/EU", "IEC 60204-1"}, SuggestedMitigations: mustMarshalJSON([]string{"Schutzkleinspannung (SELV)", "Schutzerdung", "Isolationsmonitoring"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("electrical_hazard", 2), Category: "electrical_hazard", Name: "Lichtbogen durch Schaltfehler", Description: "Ein Schaltfehler erzeugt einen Lichtbogen, der Bediener verletzen, Geraete beschaedigen oder einen Brand ausloesen kann.", DefaultSeverity: 5, DefaultProbability: 1, ApplicableComponentTypes: []string{"controller"}, RegulationReferences: []string{"Niederspannungsrichtlinie 2014/35/EU", "IEC 60204-1"}, SuggestedMitigations: mustMarshalJSON([]string{"Lichtbogenschutz-Schalter", "Kurzschlussschutz", "Geeignete Schaltgeraete"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("electrical_hazard", 3), Category: "electrical_hazard", Name: "Kurzschluss durch Isolationsfehler", Description: "Beschaedigte Kabelisolierungen fuehren zu einem Kurzschluss, der Feuer ausloesen oder Sicherheitsfunktionen ausser Betrieb setzen kann.", DefaultSeverity: 4, DefaultProbability: 2, ApplicableComponentTypes: []string{"network", "controller"}, RegulationReferences: []string{"Niederspannungsrichtlinie 2014/35/EU", "IEC 60204-1"}, SuggestedMitigations: mustMarshalJSON([]string{"Isolationsueberwachung", "Kabelschutz", "Regelmaessige Sichtpruefung"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("electrical_hazard", 4), Category: "electrical_hazard", Name: "Erdschluss in Steuerkreis", Description: "Ein Erdschluss im Steuerkreis kann unbeabsichtigte Schaltzustaende ausloesen und Sicherheitsfunktionen beeinflussen.", DefaultSeverity: 4, DefaultProbability: 2, ApplicableComponentTypes: []string{"controller", "network"}, RegulationReferences: []string{"IEC 60204-1", "ISO 13849"}, SuggestedMitigations: mustMarshalJSON([]string{"Erdschluss-Monitoring", "IT-Netz fuer Steuerkreise", "Regelmaessige Pruefung"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("electrical_hazard", 5), Category: "electrical_hazard", Name: "Gespeicherte Energie in Kondensatoren", Description: "Nach dem Abschalten verbleiben hohe Spannungen in Kondensatoren (z.B. Frequenzumrichter, USV), was bei Wartungsarbeiten gefaehrlich ist.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"controller"}, RegulationReferences: []string{"Niederspannungsrichtlinie 2014/35/EU", "IEC 60204-1"}, SuggestedMitigations: mustMarshalJSON([]string{"Entladewartezeit", "Automatische Entladeschaltung", "Warnhinweise am Geraet"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("electrical_hazard", 6), Category: "electrical_hazard", Name: "Elektromagnetische Kopplung auf Safety-Leitung", Description: "Hochfrequente Stoerfelder koppeln auf ungeschirmte Safety-Leitungen und erzeugen Falschsignale, die Sicherheitsfunktionen fehl ausloesen.", DefaultSeverity: 3, DefaultProbability: 3, ApplicableComponentTypes: []string{"network", "sensor"}, RegulationReferences: []string{"EMV-Richtlinie 2014/30/EU", "IEC 62061"}, SuggestedMitigations: mustMarshalJSON([]string{"Geschirmte Kabel", "Raeumliche Trennung", "EMV-Pruefung"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, // ==================================================================== // Category: thermal_hazard (4 entries) // ==================================================================== { ID: hazardUUID("thermal_hazard", 1), Category: "thermal_hazard", Name: "Ueberhitzung der Steuereinheit", Description: "Die Steuereinheit ueberschreitet die zulaessige Betriebstemperatur durch Lueftungsausfall oder hohe Umgebungstemperatur, was zu Fehlfunktionen fuehrt.", DefaultSeverity: 3, DefaultProbability: 3, ApplicableComponentTypes: []string{"controller", "firmware"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230", "IEC 60068"}, SuggestedMitigations: mustMarshalJSON([]string{"Temperaturueberwachung", "Redundante Lueftung", "Thermisches Abschalten"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("thermal_hazard", 2), Category: "thermal_hazard", Name: "Brandgefahr durch Leistungselektronik", Description: "Defekte Leistungshalbleiter oder Kondensatoren in der Leistungselektronik erwaermen sich unkontrolliert und koennen einen Brand ausloesen.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"controller"}, RegulationReferences: []string{"Niederspannungsrichtlinie 2014/35/EU", "IEC 60204-1"}, SuggestedMitigations: mustMarshalJSON([]string{"Thermosicherungen", "Temperatursensoren", "Brandschutzmassnahmen"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("thermal_hazard", 3), Category: "thermal_hazard", Name: "Einfrieren bei Tieftemperatur", Description: "Sehr tiefe Umgebungstemperaturen fuehren zum Einfrieren von Hydraulikleitungen oder Elektronik und damit zum Ausfall von Sicherheitsfunktionen.", DefaultSeverity: 3, DefaultProbability: 3, ApplicableComponentTypes: []string{"controller", "actuator"}, RegulationReferences: []string{"Maschinenverordnung 2023/1230", "IEC 60068"}, SuggestedMitigations: mustMarshalJSON([]string{"Heizung", "Mindestbetriebstemperatur definieren", "Temperatursensor"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("thermal_hazard", 4), Category: "thermal_hazard", Name: "Waermestress an Kabelisolierung", Description: "Langfristige Einwirkung hoher Temperaturen auf Kabelisolierungen fuehrt zu Alterung und Isolationsversagen mit Kurzschlussrisiko.", DefaultSeverity: 3, DefaultProbability: 3, ApplicableComponentTypes: []string{"network", "controller"}, RegulationReferences: []string{"IEC 60204-1", "Maschinenverordnung 2023/1230"}, SuggestedMitigations: mustMarshalJSON([]string{"Hitzebestaendige Kabel (z.B. PTFE)", "Kabelverlegung mit Abstand zur Waermequelle", "Regelmaessige Inspektion"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, // ==================================================================== // Category: emc_hazard (5 entries) // ==================================================================== { ID: hazardUUID("emc_hazard", 1), Category: "emc_hazard", Name: "EMV-Stoerabstrahlung auf Safety-Bus", Description: "Hohe elektromagnetische Stoerabstrahlung aus benachbarten Geraeten stoert den industriellen Safety-Bus (z.B. PROFIsafe) und erzeugt Kommunikationsfehler.", DefaultSeverity: 5, DefaultProbability: 2, ApplicableComponentTypes: []string{"network", "controller"}, RegulationReferences: []string{"EMV-Richtlinie 2014/30/EU", "IEC 62061", "IEC 61784-3"}, SuggestedMitigations: mustMarshalJSON([]string{"EMV-gerechte Verkabelung", "Schirmung", "EMC-Pruefung nach EN 55011"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("emc_hazard", 2), Category: "emc_hazard", Name: "Unbeabsichtigte elektromagnetische Abstrahlung", Description: "Die Maschine selbst strahlt starke EM-Felder ab, die andere sicherheitsrelevante Einrichtungen in der Naehe stoeren.", DefaultSeverity: 2, DefaultProbability: 3, ApplicableComponentTypes: []string{"controller", "actuator"}, RegulationReferences: []string{"EMV-Richtlinie 2014/30/EU"}, SuggestedMitigations: mustMarshalJSON([]string{"EMV-Filter", "Gehaeuseabschirmung", "CE-Zulassung Frequenzumrichter"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("emc_hazard", 3), Category: "emc_hazard", Name: "Frequenzumrichter-Stoerung auf Steuerleitung", Description: "Der Frequenzumrichter erzeugt hochfrequente Stoerungen, die auf benachbarte Steuerleitungen koppeln und falsche Signale erzeugen.", DefaultSeverity: 4, DefaultProbability: 3, ApplicableComponentTypes: []string{"actuator", "network"}, RegulationReferences: []string{"EMV-Richtlinie 2014/30/EU", "IEC 60204-1"}, SuggestedMitigations: mustMarshalJSON([]string{"Motorfilter", "Kabeltrennabstand", "Separate Kabelkanaele"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("emc_hazard", 4), Category: "emc_hazard", Name: "ESD-Schaden an Elektronik", Description: "Elektrostatische Entladung bei Wartung oder Austausch beschaedigt empfindliche Elektronikbauteile, was zu latenten Fehlfunktionen fuehrt.", DefaultSeverity: 3, DefaultProbability: 3, ApplicableComponentTypes: []string{"controller", "firmware"}, RegulationReferences: []string{"IEC 61000-4-2", "Maschinenverordnung 2023/1230"}, SuggestedMitigations: mustMarshalJSON([]string{"ESD-Schulung", "ESD-Schutzausruestung", "ESD-gerechte Verpackung"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, { ID: hazardUUID("emc_hazard", 5), Category: "emc_hazard", Name: "HF-Stoerung des Sicherheitssensors", Description: "Hochfrequenz-Stoerquellen (z.B. Schweissgeraete, Mobiltelefone) beeinflussen die Funktion von Sicherheitssensoren (Lichtvorhang, Scanner).", DefaultSeverity: 4, DefaultProbability: 3, ApplicableComponentTypes: []string{"sensor"}, RegulationReferences: []string{"EMV-Richtlinie 2014/30/EU", "IEC 61496"}, SuggestedMitigations: mustMarshalJSON([]string{"EMV-zertifizierte Sicherheitssensoren", "HF-Quellen trennen", "Gegensprechanlagenverbot in Gefahrenzone"}), IsBuiltin: true, TenantID: nil, CreatedAt: now, }, } }