feat(iace): ISO 12100 Anhang B mapping — split noise/vibration + section identifier
Phase 16 of the Klaerungen / risk-assessment polish. Sources from
EN ISO 12100 Anhang B Tabelle B.1 are now first-class:
A) HazardPattern.ISO12100Section identifier (string), persisted only as
the section number (e.g. "6.3.5.5") — not the norm text. Keeps the
library urheberrechtlich neutral (DIN/Beuth license). 57 patterns
labeled today; rest will follow on touch.
B) Category split per ISO 12100 Nr. 4 vs Nr. 5:
- 16 patterns reclassified noise_vibration -> noise_hazard
- 7 patterns reclassified noise_vibration -> vibration_hazard
- 1 pattern (HP228 UV-/Laermexposition) kept multi-cat
acceptableMeasureCategories now accepts both new aliases plus the
legacy noise_vibration. Coverage test recognises both as valid.
C) 5 new ISO-12100-Annex-B gap patterns (HP1900-HP1904):
- HP1900 Vakuum-Verletzung (6.3.5.5)
- HP1901 Federenergie / elastische Elemente (6.2.10)
- HP1902 Rutschen/Stolpern auf rauer Oberflaeche (6.3.5.6)
- HP1903 Hochdruckinjektion (6.3.5.4) — includes clarifying
"no hand-locating of leaks" question
- HP1904 Ersticken durch Brustkorbquetschung (6.3.5.2)
The library now mirrors the ISO 12100 Annex B structure for the gaps
the Bremse benchmark surfaced.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -60,6 +60,14 @@ func acceptableMeasureCategories(patternCat string) map[string]bool {
|
|||||||
"mechanical_hazard": {"mechanical"},
|
"mechanical_hazard": {"mechanical"},
|
||||||
"electrical_hazard": {"electrical"},
|
"electrical_hazard": {"electrical"},
|
||||||
"thermal_hazard": {"thermal", "material_environmental"},
|
"thermal_hazard": {"thermal", "material_environmental"},
|
||||||
|
// ISO 12100 Anhang B splits Nr. 4 Laerm and Nr. 5 Vibration into
|
||||||
|
// two top-level groups. The legacy combined alias noise_vibration
|
||||||
|
// is kept for backwards compat — all three resolve to the same
|
||||||
|
// measure pool today (the library doesn't separate noise vs
|
||||||
|
// vibration measures), but the pattern category now matches the
|
||||||
|
// norm structure.
|
||||||
|
"noise_hazard": {"noise_vibration", "ergonomic"},
|
||||||
|
"vibration_hazard": {"noise_vibration", "ergonomic"},
|
||||||
"noise_vibration": {"noise_vibration", "ergonomic"},
|
"noise_vibration": {"noise_vibration", "ergonomic"},
|
||||||
"pneumatic_hydraulic": {"pneumatic_hydraulic", "mechanical"},
|
"pneumatic_hydraulic": {"pneumatic_hydraulic", "mechanical"},
|
||||||
"material_environmental": {"material_environmental"},
|
"material_environmental": {"material_environmental"},
|
||||||
|
|||||||
@@ -70,6 +70,12 @@ type HazardPattern struct {
|
|||||||
// is relevant. Written into the Hazard's LifecyclePhase field on creation.
|
// is relevant. Written into the Hazard's LifecyclePhase field on creation.
|
||||||
// Empty = not set (pattern does not specify lifecycle applicability).
|
// Empty = not set (pattern does not specify lifecycle applicability).
|
||||||
ApplicableLifecycles []string `json:"applicable_lifecycles,omitempty"`
|
ApplicableLifecycles []string `json:"applicable_lifecycles,omitempty"`
|
||||||
|
// ISO12100Section is a free-text identifier of the ISO 12100 Annex B
|
||||||
|
// section that owns this hazard type (e.g. "6.2.2.1" or "6.3.5.5").
|
||||||
|
// Stored as an identifier only — the norm text is NOT included to
|
||||||
|
// keep the library urheberrechtlich neutral (DIN/Beuth license).
|
||||||
|
// The frontend renders it as "EN ISO 12100 Abschnitt 6.3.5.5".
|
||||||
|
ISO12100Section string `json:"iso_12100_section,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Standard human roles for machinery interaction (ISO 12100 + BetrSichV).
|
// Standard human roles for machinery interaction (ISO 12100 + BetrSichV).
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ func builtinElectricalPatterns() []HazardPattern {
|
|||||||
HarmDE: "Stromschlag, Herzkammerflimmern, Verbrennungen, Todesfolge bei Hochspannung.",
|
HarmDE: "Stromschlag, Herzkammerflimmern, Verbrennungen, Todesfolge bei Hochspannung.",
|
||||||
AffectedDE: "Wartungspersonal, Elektrofachkraefte, Bedienpersonal",
|
AffectedDE: "Wartungspersonal, Elektrofachkraefte, Bedienpersonal",
|
||||||
ZoneDE: "Schaltschrank, Klemmenkasten, Motoranschluss, Frequenzumrichter",
|
ZoneDE: "Schaltschrank, Klemmenkasten, Motoranschluss, Frequenzumrichter",
|
||||||
|
ISO12100Section: "6.2.9",
|
||||||
DefaultSeverity: 5, DefaultExposure: 2,
|
DefaultSeverity: 5, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -31,6 +32,7 @@ func builtinElectricalPatterns() []HazardPattern {
|
|||||||
HarmDE: "Stromschlag, lokale Verbrennungen, Muskelverkrampfung.",
|
HarmDE: "Stromschlag, lokale Verbrennungen, Muskelverkrampfung.",
|
||||||
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
||||||
ZoneDE: "Motorgehaeuse, Anschlussklemmen, Netzteile, Kabelkanaele",
|
ZoneDE: "Motorgehaeuse, Anschlussklemmen, Netzteile, Kabelkanaele",
|
||||||
|
ISO12100Section: "6.2.9",
|
||||||
DefaultSeverity: 4, DefaultExposure: 2,
|
DefaultSeverity: 4, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -46,6 +48,7 @@ func builtinElectricalPatterns() []HazardPattern {
|
|||||||
HarmDE: "Stromschlag, Verbrennungen durch Lichtbogen, Explosion bei Lithium-Akkus.",
|
HarmDE: "Stromschlag, Verbrennungen durch Lichtbogen, Explosion bei Lithium-Akkus.",
|
||||||
AffectedDE: "Elektrofachkraefte, Wartungspersonal",
|
AffectedDE: "Elektrofachkraefte, Wartungspersonal",
|
||||||
ZoneDE: "Zwischenkreiskondensatoren, Batteriefaecher, USV-Anlagen",
|
ZoneDE: "Zwischenkreiskondensatoren, Batteriefaecher, USV-Anlagen",
|
||||||
|
ISO12100Section: "6.2.10",
|
||||||
DefaultSeverity: 4, DefaultExposure: 2,
|
DefaultSeverity: 4, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -76,6 +79,7 @@ func builtinElectricalPatterns() []HazardPattern {
|
|||||||
HarmDE: "Fehlausloesung von Aktoren, unerwartete Bewegung, Ausfall von Sicherheitsfunktionen.",
|
HarmDE: "Fehlausloesung von Aktoren, unerwartete Bewegung, Ausfall von Sicherheitsfunktionen.",
|
||||||
AffectedDE: "Bedienpersonal, Personen im Maschinenbereich",
|
AffectedDE: "Bedienpersonal, Personen im Maschinenbereich",
|
||||||
ZoneDE: "Gesamte Maschinenumgebung, insbesondere Signalleitungen und Sensorik",
|
ZoneDE: "Gesamte Maschinenumgebung, insbesondere Signalleitungen und Sensorik",
|
||||||
|
ISO12100Section: "6.3.3",
|
||||||
DefaultSeverity: 3, DefaultExposure: 2,
|
DefaultSeverity: 3, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -363,7 +363,7 @@ func GetElevatorPatterns() []HazardPattern {
|
|||||||
MachineTypes: []string{"elevator", "lift", "escalator"},
|
MachineTypes: []string{"elevator", "lift", "escalator"},
|
||||||
RequiredComponentTags: []string{"elevator_traction", "noise_source"},
|
RequiredComponentTags: []string{"elevator_traction", "noise_source"},
|
||||||
RequiredEnergyTags: []string{},
|
RequiredEnergyTags: []string{},
|
||||||
GeneratedHazardCats: []string{"noise_vibration"},
|
GeneratedHazardCats: []string{"noise_hazard"},
|
||||||
SuggestedMeasureIDs: []string{"M141"},
|
SuggestedMeasureIDs: []string{"M141"},
|
||||||
SuggestedEvidenceIDs: []string{"E20"},
|
SuggestedEvidenceIDs: []string{"E20"},
|
||||||
Priority: 55,
|
Priority: 55,
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ func builtinEnvironmentPatterns() []HazardPattern {
|
|||||||
ID: "HP023", NameDE: "Laermgefahr", NameEN: "Noise hazard",
|
ID: "HP023", NameDE: "Laermgefahr", NameEN: "Noise hazard",
|
||||||
RequiredComponentTags: []string{"noise_source"},
|
RequiredComponentTags: []string{"noise_source"},
|
||||||
RequiredEnergyTags: []string{"acoustic"},
|
RequiredEnergyTags: []string{"acoustic"},
|
||||||
GeneratedHazardCats: []string{"noise_vibration"},
|
GeneratedHazardCats: []string{"noise_hazard"},
|
||||||
SuggestedMeasureIDs: []string{"M091", "M131"},
|
SuggestedMeasureIDs: []string{"M091", "M131"},
|
||||||
SuggestedEvidenceIDs: []string{"E01", "E12"},
|
SuggestedEvidenceIDs: []string{"E01", "E12"},
|
||||||
Priority: 70,
|
Priority: 70,
|
||||||
@@ -17,13 +17,14 @@ func builtinEnvironmentPatterns() []HazardPattern {
|
|||||||
HarmDE: "Laermschwerhoerigkeit (BK 2301), Tinnitus, Konzentrationsstoerung.",
|
HarmDE: "Laermschwerhoerigkeit (BK 2301), Tinnitus, Konzentrationsstoerung.",
|
||||||
AffectedDE: "Bedienpersonal, Personen im Umfeld",
|
AffectedDE: "Bedienpersonal, Personen im Umfeld",
|
||||||
ZoneDE: "Gesamter Arbeitsbereich um die Maschine, insbesondere Auslassseite",
|
ZoneDE: "Gesamter Arbeitsbereich um die Maschine, insbesondere Auslassseite",
|
||||||
|
ISO12100Section: "6.3.3.2.1",
|
||||||
DefaultSeverity: 3, DefaultExposure: 4,
|
DefaultSeverity: 3, DefaultExposure: 4,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ID: "HP024", NameDE: "Vibrationsgefahr", NameEN: "Vibration hazard",
|
ID: "HP024", NameDE: "Vibrationsgefahr", NameEN: "Vibration hazard",
|
||||||
RequiredComponentTags: []string{"vibration_source"},
|
RequiredComponentTags: []string{"vibration_source"},
|
||||||
RequiredEnergyTags: []string{"vibration"},
|
RequiredEnergyTags: []string{"vibration"},
|
||||||
GeneratedHazardCats: []string{"noise_vibration"},
|
GeneratedHazardCats: []string{"vibration_hazard"},
|
||||||
SuggestedMeasureIDs: []string{"M092", "M131"},
|
SuggestedMeasureIDs: []string{"M092", "M131"},
|
||||||
SuggestedEvidenceIDs: []string{"E01", "E13"},
|
SuggestedEvidenceIDs: []string{"E01", "E13"},
|
||||||
Priority: 65,
|
Priority: 65,
|
||||||
@@ -32,13 +33,14 @@ func builtinEnvironmentPatterns() []HazardPattern {
|
|||||||
HarmDE: "Hand-Arm-Vibrationssyndrom (BK 2104), Durchblutungsstoerung, Gelenkschaeden.",
|
HarmDE: "Hand-Arm-Vibrationssyndrom (BK 2104), Durchblutungsstoerung, Gelenkschaeden.",
|
||||||
AffectedDE: "Bedienpersonal, Maschinenfuehrer",
|
AffectedDE: "Bedienpersonal, Maschinenfuehrer",
|
||||||
ZoneDE: "Griffe, Bedienelemente, Standfussbereich, Fahrersitz",
|
ZoneDE: "Griffe, Bedienelemente, Standfussbereich, Fahrersitz",
|
||||||
|
ISO12100Section: "6.3.3.2.1",
|
||||||
DefaultSeverity: 3, DefaultExposure: 4,
|
DefaultSeverity: 3, DefaultExposure: 4,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ID: "HP025", NameDE: "Laerm durch rotierende Hochgeschwindigkeitsteile", NameEN: "Noise from high-speed rotating parts",
|
ID: "HP025", NameDE: "Laerm durch rotierende Hochgeschwindigkeitsteile", NameEN: "Noise from high-speed rotating parts",
|
||||||
RequiredComponentTags: []string{"rotating_part", "high_speed"},
|
RequiredComponentTags: []string{"rotating_part", "high_speed"},
|
||||||
RequiredEnergyTags: []string{},
|
RequiredEnergyTags: []string{},
|
||||||
GeneratedHazardCats: []string{"noise_vibration"},
|
GeneratedHazardCats: []string{"noise_hazard"},
|
||||||
SuggestedMeasureIDs: []string{"M091", "M092", "M131"},
|
SuggestedMeasureIDs: []string{"M091", "M092", "M131"},
|
||||||
SuggestedEvidenceIDs: []string{"E01", "E12", "E13"},
|
SuggestedEvidenceIDs: []string{"E01", "E12", "E13"},
|
||||||
Priority: 70,
|
Priority: 70,
|
||||||
@@ -47,6 +49,7 @@ func builtinEnvironmentPatterns() []HazardPattern {
|
|||||||
HarmDE: "Gehoerschaedigung, Tinnitus, erhoehtes Unfallrisiko durch Konzentrationsverlust.",
|
HarmDE: "Gehoerschaedigung, Tinnitus, erhoehtes Unfallrisiko durch Konzentrationsverlust.",
|
||||||
AffectedDE: "Bedienpersonal, Personen im Hallenbereich",
|
AffectedDE: "Bedienpersonal, Personen im Hallenbereich",
|
||||||
ZoneDE: "Umgebung der Spindel/Schleifscheibe, Maschinengehaeuse, offene Bearbeitungszone",
|
ZoneDE: "Umgebung der Spindel/Schleifscheibe, Maschinengehaeuse, offene Bearbeitungszone",
|
||||||
|
ISO12100Section: "6.3.3.2.1",
|
||||||
DefaultSeverity: 3, DefaultExposure: 4,
|
DefaultSeverity: 3, DefaultExposure: 4,
|
||||||
},
|
},
|
||||||
// Ergonomic
|
// Ergonomic
|
||||||
|
|||||||
@@ -434,7 +434,7 @@ func GetDGUVExtendedPatterns() []HazardPattern {
|
|||||||
ID: "HP132", NameDE: "Ganzkoepervibrration bei Fahrzeugen/Maschinen", NameEN: "Whole-body vibration from vehicles/machines",
|
ID: "HP132", NameDE: "Ganzkoepervibrration bei Fahrzeugen/Maschinen", NameEN: "Whole-body vibration from vehicles/machines",
|
||||||
RequiredComponentTags: []string{"vibration_source"},
|
RequiredComponentTags: []string{"vibration_source"},
|
||||||
RequiredEnergyTags: []string{"vibration"},
|
RequiredEnergyTags: []string{"vibration"},
|
||||||
GeneratedHazardCats: []string{"noise_vibration"},
|
GeneratedHazardCats: []string{"vibration_hazard"},
|
||||||
SuggestedMeasureIDs: []string{"M141"},
|
SuggestedMeasureIDs: []string{"M141"},
|
||||||
Priority: 65,
|
Priority: 65,
|
||||||
ScenarioDE: "Ganzkoerpervibration bei Fahren von Flurfoerderfahrzeugen", HarmDE: "Wirbelsaeulenschaeden, Bandscheibenvorfall",
|
ScenarioDE: "Ganzkoerpervibration bei Fahren von Flurfoerderfahrzeugen", HarmDE: "Wirbelsaeulenschaeden, Bandscheibenvorfall",
|
||||||
@@ -444,7 +444,7 @@ func GetDGUVExtendedPatterns() []HazardPattern {
|
|||||||
ID: "HP133", NameDE: "Hand-Arm-Vibration bei handgefuehrten Werkzeugen", NameEN: "Hand-arm vibration from handheld tools",
|
ID: "HP133", NameDE: "Hand-Arm-Vibration bei handgefuehrten Werkzeugen", NameEN: "Hand-arm vibration from handheld tools",
|
||||||
RequiredComponentTags: []string{"vibration_source"},
|
RequiredComponentTags: []string{"vibration_source"},
|
||||||
RequiredEnergyTags: []string{"vibration"},
|
RequiredEnergyTags: []string{"vibration"},
|
||||||
GeneratedHazardCats: []string{"noise_vibration"},
|
GeneratedHazardCats: []string{"vibration_hazard"},
|
||||||
SuggestedMeasureIDs: []string{"M054", "M141"},
|
SuggestedMeasureIDs: []string{"M054", "M141"},
|
||||||
Priority: 70,
|
Priority: 70,
|
||||||
ScenarioDE: "Hand-Arm-Vibration durch handgefuehrtes Schlagwerkzeug", HarmDE: "Durchblutungsstoerungen, Weissfingerkrankheit",
|
ScenarioDE: "Hand-Arm-Vibration durch handgefuehrtes Schlagwerkzeug", HarmDE: "Durchblutungsstoerungen, Weissfingerkrankheit",
|
||||||
|
|||||||
@@ -780,7 +780,7 @@ func GetFinalPatternsB() []HazardPattern {
|
|||||||
ID: "HP1148", NameDE: "Impulslaerm Stanzpresse", NameEN: "Impulse noise punch press",
|
ID: "HP1148", NameDE: "Impulslaerm Stanzpresse", NameEN: "Impulse noise punch press",
|
||||||
RequiredComponentTags: []string{"noise_source", "high_force"},
|
RequiredComponentTags: []string{"noise_source", "high_force"},
|
||||||
RequiredEnergyTags: []string{},
|
RequiredEnergyTags: []string{},
|
||||||
GeneratedHazardCats: []string{"ergonomic_hazard", "noise_vibration"},
|
GeneratedHazardCats: []string{"ergonomic_hazard", "noise_hazard"},
|
||||||
SuggestedMeasureIDs: []string{"M141"},
|
SuggestedMeasureIDs: []string{"M141"},
|
||||||
SuggestedEvidenceIDs: []string{"E01", "E20"},
|
SuggestedEvidenceIDs: []string{"E01", "E20"},
|
||||||
Priority: 72, ScenarioDE: "Impulslaerm bei jedem Stanzhub",
|
Priority: 72, ScenarioDE: "Impulslaerm bei jedem Stanzhub",
|
||||||
@@ -816,7 +816,7 @@ func GetFinalPatternsB() []HazardPattern {
|
|||||||
ID: "HP1151", NameDE: "Dauerlaerm ueber 85 dB(A)", NameEN: "Continuous noise above 85 dB(A)",
|
ID: "HP1151", NameDE: "Dauerlaerm ueber 85 dB(A)", NameEN: "Continuous noise above 85 dB(A)",
|
||||||
RequiredComponentTags: []string{"noise_source"},
|
RequiredComponentTags: []string{"noise_source"},
|
||||||
RequiredEnergyTags: []string{},
|
RequiredEnergyTags: []string{},
|
||||||
GeneratedHazardCats: []string{"ergonomic_hazard", "noise_vibration"},
|
GeneratedHazardCats: []string{"ergonomic_hazard", "noise_hazard"},
|
||||||
SuggestedMeasureIDs: []string{"M141"},
|
SuggestedMeasureIDs: []string{"M141"},
|
||||||
SuggestedEvidenceIDs: []string{"E01", "E20"},
|
SuggestedEvidenceIDs: []string{"E01", "E20"},
|
||||||
Priority: 72, ScenarioDE: "Dauerhafte Laermbelastung ueber Ausloeeschwelle",
|
Priority: 72, ScenarioDE: "Dauerhafte Laermbelastung ueber Ausloeeschwelle",
|
||||||
|
|||||||
@@ -239,7 +239,7 @@ func GetFoodProcessingPatterns() []HazardPattern {
|
|||||||
MachineTypes: []string{"food_processing", "packaging"},
|
MachineTypes: []string{"food_processing", "packaging"},
|
||||||
RequiredComponentTags: []string{"noise_source", "high_pressure"},
|
RequiredComponentTags: []string{"noise_source", "high_pressure"},
|
||||||
RequiredEnergyTags: []string{},
|
RequiredEnergyTags: []string{},
|
||||||
GeneratedHazardCats: []string{"noise_vibration"},
|
GeneratedHazardCats: []string{"noise_hazard"},
|
||||||
SuggestedMeasureIDs: []string{"M141"},
|
SuggestedMeasureIDs: []string{"M141"},
|
||||||
SuggestedEvidenceIDs: []string{"E12", "E20"},
|
SuggestedEvidenceIDs: []string{"E12", "E20"},
|
||||||
Priority: 65,
|
Priority: 65,
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ func GetGTBremseHazardPatterns() []HazardPattern {
|
|||||||
HarmDE: "Person wird von kippender oder einsturzender Anlage getroffen, Quetschungen, Knochenbrueche.",
|
HarmDE: "Person wird von kippender oder einsturzender Anlage getroffen, Quetschungen, Knochenbrueche.",
|
||||||
AffectedDE: "Bedienpersonal, Wartungspersonal, Umstehende",
|
AffectedDE: "Bedienpersonal, Wartungspersonal, Umstehende",
|
||||||
ZoneDE: "Aufstellort der Maschine, Bereich um die Anlage",
|
ZoneDE: "Aufstellort der Maschine, Bereich um die Anlage",
|
||||||
|
ISO12100Section: "6.3.5.5",
|
||||||
DefaultSeverity: 4, DefaultExposure: 1,
|
DefaultSeverity: 4, DefaultExposure: 1,
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -44,6 +45,7 @@ func GetGTBremseHazardPatterns() []HazardPattern {
|
|||||||
HarmDE: "Person wird von weggeschleudertem Werkstueck getroffen. Prellungen, Knochenbrueche je nach Werkstueckgewicht und Beschleunigung.",
|
HarmDE: "Person wird von weggeschleudertem Werkstueck getroffen. Prellungen, Knochenbrueche je nach Werkstueckgewicht und Beschleunigung.",
|
||||||
AffectedDE: "Bedienpersonal in der Naehe der Zelle, Personal an der Werkstueckaufgabe",
|
AffectedDE: "Bedienpersonal in der Naehe der Zelle, Personal an der Werkstueckaufgabe",
|
||||||
ZoneDE: "Schutzzaun, Bereich um die Roboterzelle, Werkstueckaufgabe",
|
ZoneDE: "Schutzzaun, Bereich um die Roboterzelle, Werkstueckaufgabe",
|
||||||
|
ISO12100Section: "6.2.6",
|
||||||
DefaultSeverity: 3, DefaultExposure: 2,
|
DefaultSeverity: 3, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -64,6 +66,7 @@ func GetGTBremseHazardPatterns() []HazardPattern {
|
|||||||
HarmDE: "Augenverletzung durch Partikel im Druckluftstrahl, Hautirritation, Einstich durch Druckluft.",
|
HarmDE: "Augenverletzung durch Partikel im Druckluftstrahl, Hautirritation, Einstich durch Druckluft.",
|
||||||
AffectedDE: "Bedienpersonal, Reinigungspersonal",
|
AffectedDE: "Bedienpersonal, Reinigungspersonal",
|
||||||
ZoneDE: "Bearbeitungszelle Werkzeugmaschine, Reinigungsduese",
|
ZoneDE: "Bearbeitungszelle Werkzeugmaschine, Reinigungsduese",
|
||||||
|
ISO12100Section: "6.3.5.4",
|
||||||
DefaultSeverity: 2, DefaultExposure: 3,
|
DefaultSeverity: 2, DefaultExposure: 3,
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -83,6 +86,7 @@ func GetGTBremseHazardPatterns() []HazardPattern {
|
|||||||
HarmDE: "Rueckenleiden, Bandscheibenvorfall, Muskel- und Gelenkverletzungen.",
|
HarmDE: "Rueckenleiden, Bandscheibenvorfall, Muskel- und Gelenkverletzungen.",
|
||||||
AffectedDE: "Bedienpersonal an manueller Be-/Entladestelle",
|
AffectedDE: "Bedienpersonal an manueller Be-/Entladestelle",
|
||||||
ZoneDE: "Manuelle Be-/Entladestelle, Transportbaender",
|
ZoneDE: "Manuelle Be-/Entladestelle, Transportbaender",
|
||||||
|
ISO12100Section: "6.4.5.1",
|
||||||
DefaultSeverity: 3, DefaultExposure: 4,
|
DefaultSeverity: 3, DefaultExposure: 4,
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -102,6 +106,7 @@ func GetGTBremseHazardPatterns() []HazardPattern {
|
|||||||
HarmDE: "Verspannungen, Rueckenleiden, Schulter- und Nackenbeschwerden bei dauerhafter Belastung.",
|
HarmDE: "Verspannungen, Rueckenleiden, Schulter- und Nackenbeschwerden bei dauerhafter Belastung.",
|
||||||
AffectedDE: "Bedienpersonal an HMI/Steuerstand",
|
AffectedDE: "Bedienpersonal an HMI/Steuerstand",
|
||||||
ZoneDE: "Bedienstand HMI, Steuerpult",
|
ZoneDE: "Bedienstand HMI, Steuerpult",
|
||||||
|
ISO12100Section: "6.4.5.1",
|
||||||
DefaultSeverity: 2, DefaultExposure: 4,
|
DefaultSeverity: 2, DefaultExposure: 4,
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -121,6 +126,7 @@ func GetGTBremseHazardPatterns() []HazardPattern {
|
|||||||
HarmDE: "Hautirritationen, Ekzeme, allergische Kontaktdermatitis, bei Aerosolen Atembeschwerden und Asthma.",
|
HarmDE: "Hautirritationen, Ekzeme, allergische Kontaktdermatitis, bei Aerosolen Atembeschwerden und Asthma.",
|
||||||
AffectedDE: "Bedienpersonal, Wartungspersonal, Reinigungspersonal",
|
AffectedDE: "Bedienpersonal, Wartungspersonal, Reinigungspersonal",
|
||||||
ZoneDE: "Bearbeitungszentrum, KSS-Aufbereitungsanlage, KSS-fuehrende Leitungen",
|
ZoneDE: "Bearbeitungszentrum, KSS-Aufbereitungsanlage, KSS-fuehrende Leitungen",
|
||||||
|
ISO12100Section: "6.2.5",
|
||||||
DefaultSeverity: 3, DefaultExposure: 4,
|
DefaultSeverity: 3, DefaultExposure: 4,
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -141,6 +147,7 @@ func GetGTBremseHazardPatterns() []HazardPattern {
|
|||||||
HarmDE: "Stromschlag, Brand, Folgeschaeden an Steuerung. Person erleidet Brandverletzungen oder elektrischen Schlag.",
|
HarmDE: "Stromschlag, Brand, Folgeschaeden an Steuerung. Person erleidet Brandverletzungen oder elektrischen Schlag.",
|
||||||
AffectedDE: "Reinigungspersonal, Wartungspersonal",
|
AffectedDE: "Reinigungspersonal, Wartungspersonal",
|
||||||
ZoneDE: "Schaltschrank, elektrisch aktive Komponenten der Maschine",
|
ZoneDE: "Schaltschrank, elektrisch aktive Komponenten der Maschine",
|
||||||
|
ISO12100Section: "6.2.9",
|
||||||
DefaultSeverity: 4, DefaultExposure: 2,
|
DefaultSeverity: 4, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -161,6 +168,7 @@ func GetGTBremseHazardPatterns() []HazardPattern {
|
|||||||
HarmDE: "Person wird von wegfliegenden Teilen oder unter Druck austretender Luft getroffen. Augenverletzung, Einstichverletzung.",
|
HarmDE: "Person wird von wegfliegenden Teilen oder unter Druck austretender Luft getroffen. Augenverletzung, Einstichverletzung.",
|
||||||
AffectedDE: "Wartungspersonal, Einrichter",
|
AffectedDE: "Wartungspersonal, Einrichter",
|
||||||
ZoneDE: "Pneumatik-Komponenten der Anlage, Wartungsbereich",
|
ZoneDE: "Pneumatik-Komponenten der Anlage, Wartungsbereich",
|
||||||
|
ISO12100Section: "6.2.10",
|
||||||
DefaultSeverity: 2, DefaultExposure: 3,
|
DefaultSeverity: 2, DefaultExposure: 3,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,94 @@
|
|||||||
|
package iace
|
||||||
|
|
||||||
|
// GetISO12100GapPatterns returns hazard patterns for sources/effects from
|
||||||
|
// ISO 12100 Annex B (Tabelle B.1) that were missing in the previous IACE
|
||||||
|
// library: Vakuum, elastische Elemente (Federn), raue/rutschige Oberflaeche,
|
||||||
|
// Hochdruckinjektion und Ersticken. All entries reference the relevant
|
||||||
|
// ISO 12100 section identifier (no norm text reproduced — only the section
|
||||||
|
// number, which is a fact, not a copyrighted work).
|
||||||
|
//
|
||||||
|
// HP range: HP1900-HP1909.
|
||||||
|
func GetISO12100GapPatterns() []HazardPattern {
|
||||||
|
return []HazardPattern{
|
||||||
|
{
|
||||||
|
ID: "HP1900", NameDE: "Verletzung durch Vakuum (Vakuumgreifer / Saug-Anlage)", NameEN: "Vacuum injury (suction/vacuum equipment)",
|
||||||
|
RequiredComponentTags: []string{"clamping_part"},
|
||||||
|
RequiredEnergyTags: []string{"pneumatic"},
|
||||||
|
GeneratedHazardCats: []string{"mechanical_hazard"},
|
||||||
|
SuggestedMeasureIDs: []string{"M061", "M002", "M141"},
|
||||||
|
Priority: 90,
|
||||||
|
ApplicableLifecycles: []string{"normal_operation", "setup", "maintenance"},
|
||||||
|
ScenarioDE: "Vakuum-Werkzeug (Greifer, Saugplatte) erzeugt im Versagensfall Sog auf menschliches Gewebe (Hand, Haut). Auch nach Abschalten kann Restvakuum gefaehrlich sein.",
|
||||||
|
TriggerDE: "Hand am Sauger waehrend Aktivierung, Anlauf des Vakuums ohne Sichtkontakt, fehlende Vakuum-Schnellentlueftung.",
|
||||||
|
HarmDE: "Quetschende Saugverletzung an Haut/Hand, Haematom, im Extremfall Avulsion oberflaechlichen Gewebes.",
|
||||||
|
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
||||||
|
ZoneDE: "Vakuumgreifer, Saugnaepfe, Sauganlagen-Auslass",
|
||||||
|
ISO12100Section: "6.3.5.5",
|
||||||
|
DefaultSeverity: 3, DefaultExposure: 2,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ID: "HP1901", NameDE: "Freisetzung gespeicherter Federenergie (elastische Elemente)", NameEN: "Release of stored spring energy (elastic elements)",
|
||||||
|
RequiredComponentTags: []string{"stored_energy"},
|
||||||
|
GeneratedHazardCats: []string{"mechanical_hazard"},
|
||||||
|
SuggestedMeasureIDs: []string{"M046", "M047", "M061", "M141"},
|
||||||
|
Priority: 92,
|
||||||
|
ApplicableLifecycles: []string{"maintenance", "fault_clearing", "changeover"},
|
||||||
|
ScenarioDE: "Vorgespannte Federn, Gasdruckfedern oder elastische Elemente entladen ihre Energie unerwartet bei Demontage oder Loesen einer Arretierung.",
|
||||||
|
TriggerDE: "Loesen einer Schraube/Arretierung ohne vorherige Entlastung; Materialermuedung der Feder; Verschleiss der Halterung.",
|
||||||
|
HarmDE: "Schlag oder Wegschleudern durch entladende Feder; Augen-, Prell- und Schnittverletzungen.",
|
||||||
|
AffectedDE: "Wartungspersonal, Einrichter",
|
||||||
|
ZoneDE: "Federmechanismen, Gasdruckfedern, vorgespannte Riemen",
|
||||||
|
ISO12100Section: "6.2.10",
|
||||||
|
DefaultSeverity: 3, DefaultExposure: 2,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ID: "HP1902", NameDE: "Ausrutschen/Stolpern auf rauer oder rutschiger Oberflaeche", NameEN: "Slipping/tripping on rough or slippery surface",
|
||||||
|
RequiredComponentTags: []string{"structural_part"},
|
||||||
|
GeneratedHazardCats: []string{"mechanical_hazard"},
|
||||||
|
SuggestedMeasureIDs: []string{"M141", "M538"},
|
||||||
|
Priority: 80,
|
||||||
|
ApplicableLifecycles: []string{"normal_operation", "setup", "cleaning", "maintenance"},
|
||||||
|
ScenarioDE: "Bediener rutscht aus oder stolpert auf einer Oberflaeche im Anlagenbereich (rutschig durch KSS, Oel oder Wasser; uneben durch Kabel, Schwellen, raue Bodenstrukturen).",
|
||||||
|
TriggerDE: "Fluessigkeits-Leckage, unregelmaessige Bodengeometrie, lose Verlegung von Kabeln/Schlaeuchen.",
|
||||||
|
HarmDE: "Prellungen, Knochenbrueche, Kopfverletzungen bei Sturz; Aufprall an Anlagenkanten.",
|
||||||
|
AffectedDE: "Bedienpersonal, Reinigungspersonal, Wartungspersonal",
|
||||||
|
ZoneDE: "Verkehrswege im Maschinenbereich, Anlagenboden, Wartungspodeste",
|
||||||
|
ISO12100Section: "6.3.5.6",
|
||||||
|
DefaultSeverity: 3, DefaultExposure: 4,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ID: "HP1903", NameDE: "Hochdruckinjektion durch austretendes Medium", NameEN: "High-pressure injection injury",
|
||||||
|
RequiredComponentTags: []string{"high_pressure"},
|
||||||
|
GeneratedHazardCats: []string{"pneumatic_hydraulic"},
|
||||||
|
SuggestedMeasureIDs: []string{"M483", "M484", "M141"},
|
||||||
|
Priority: 96,
|
||||||
|
ApplicableLifecycles: []string{"normal_operation", "maintenance", "fault_clearing"},
|
||||||
|
ScenarioDE: "Unter Druck stehendes Medium (Hydraulikoel, KSS, Druckluft, Wasserstrahl) tritt aus undichten Verschraubungen oder geplatzten Leitungen aus und dringt unmerklich in menschliches Gewebe ein.",
|
||||||
|
TriggerDE: "Pinhole-Leckage in Druckleitung; Annaehern der Hand zum Lokalisieren der Leckage; bestes Risiko bei Druecken > 7 bar / 100 psi.",
|
||||||
|
HarmDE: "Hochdruckinjektionsverletzung — initial wie kleiner Stich, fuehrt aber innerhalb von Stunden zu Gewebenekrose. Sofortige chirurgische Behandlung erforderlich.",
|
||||||
|
AffectedDE: "Wartungspersonal, Einrichter, Reinigungspersonal",
|
||||||
|
ZoneDE: "Druckleitungen, Verschraubungen, Schlauchverbindungen, Hochdruckduesen",
|
||||||
|
ISO12100Section: "6.3.5.4",
|
||||||
|
ClarificationQuestionsDE: []string{
|
||||||
|
"Sind alle Hochdruckleitungen druckdicht nach EN ISO 4413/4414 ausgelegt und periodisch geprueft?",
|
||||||
|
"Wird das Wartungspersonal explizit zur Hochdruckinjektionsgefahr unterwiesen (kein Lokalisieren der Leckage mit der Hand)?",
|
||||||
|
},
|
||||||
|
DefaultSeverity: 5, DefaultExposure: 2,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ID: "HP1904", NameDE: "Ersticken durch Quetschung des Brustkorbs / Einschluss", NameEN: "Asphyxiation by chest compression or entrapment",
|
||||||
|
RequiredComponentTags: []string{"moving_part", "guard"},
|
||||||
|
GeneratedHazardCats: []string{"mechanical_hazard"},
|
||||||
|
SuggestedMeasureIDs: []string{"M061", "M489", "M488", "M141"},
|
||||||
|
Priority: 96,
|
||||||
|
ApplicableLifecycles: []string{"normal_operation", "maintenance", "fault_clearing"},
|
||||||
|
ScenarioDE: "Person wird zwischen bewegtem und feststehendem Anlagenteil so eingeklemmt, dass der Brustkorb komprimiert wird (kompressive Asphyxie). Oder Person wird in einem geschlossenen Maschinenbereich eingeschlossen und kann nicht mehr atmen.",
|
||||||
|
TriggerDE: "Roboterarm presst Person gegen Wand; Schutztuer schliesst auf Person; Person rutscht in engen Maschinenraum ohne Selbstrettungsmoeglichkeit.",
|
||||||
|
HarmDE: "Kompressive Asphyxie (Atemstillstand durch Brustkorbkompression), Todesfolge innerhalb weniger Minuten.",
|
||||||
|
AffectedDE: "Wartungspersonal, Reinigungspersonal",
|
||||||
|
ZoneDE: "Schwenkbereich Roboterarm, geschlossene Bearbeitungsraeume, schmale Wartungsoeffnungen",
|
||||||
|
ISO12100Section: "6.3.5.2",
|
||||||
|
DefaultSeverity: 5, DefaultExposure: 1,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -225,7 +225,7 @@ func GetLaserPatterns() []HazardPattern {
|
|||||||
MachineTypes: []string{"medical_device", "laser_device"},
|
MachineTypes: []string{"medical_device", "laser_device"},
|
||||||
RequiredComponentTags: []string{"noise_source", "radiation_risk"},
|
RequiredComponentTags: []string{"noise_source", "radiation_risk"},
|
||||||
RequiredEnergyTags: []string{},
|
RequiredEnergyTags: []string{},
|
||||||
GeneratedHazardCats: []string{"noise_vibration"},
|
GeneratedHazardCats: []string{"noise_hazard"},
|
||||||
SuggestedMeasureIDs: []string{"M141"},
|
SuggestedMeasureIDs: []string{"M141"},
|
||||||
SuggestedEvidenceIDs: []string{"E12", "E20"},
|
SuggestedEvidenceIDs: []string{"E12", "E20"},
|
||||||
Priority: 60,
|
Priority: 60,
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ func builtinMechanicalPatterns() []HazardPattern {
|
|||||||
HarmDE: "Quetschung, Amputation von Fingern/Hand. Schwere abhaengig von Schliesskraft und Masse.",
|
HarmDE: "Quetschung, Amputation von Fingern/Hand. Schwere abhaengig von Schliesskraft und Masse.",
|
||||||
AffectedDE: "Bedienpersonal, Einrichter",
|
AffectedDE: "Bedienpersonal, Einrichter",
|
||||||
ZoneDE: "Bewegungsbereich des Schlittens/Stempels, Einzugsstelle",
|
ZoneDE: "Bewegungsbereich des Schlittens/Stempels, Einzugsstelle",
|
||||||
|
ISO12100Section: "6.3.5.4",
|
||||||
DefaultSeverity: 4, DefaultExposure: 3,
|
DefaultSeverity: 4, DefaultExposure: 3,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -31,6 +32,7 @@ func builtinMechanicalPatterns() []HazardPattern {
|
|||||||
HarmDE: "Einzug, Umschlingung, Skalpierung, Frakturen, in schweren Faellen Todesfolge.",
|
HarmDE: "Einzug, Umschlingung, Skalpierung, Frakturen, in schweren Faellen Todesfolge.",
|
||||||
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
||||||
ZoneDE: "Wellenenden, Kupplungen, Walzenspalte, Antriebselemente",
|
ZoneDE: "Wellenenden, Kupplungen, Walzenspalte, Antriebselemente",
|
||||||
|
ISO12100Section: "6.3.5.4",
|
||||||
DefaultSeverity: 5, DefaultExposure: 3,
|
DefaultSeverity: 5, DefaultExposure: 3,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -46,6 +48,7 @@ func builtinMechanicalPatterns() []HazardPattern {
|
|||||||
HarmDE: "Schnittverletzung, tiefe Schnittwunde, ggf. Sehnen-/Nervenverletzung.",
|
HarmDE: "Schnittverletzung, tiefe Schnittwunde, ggf. Sehnen-/Nervenverletzung.",
|
||||||
AffectedDE: "Bedienpersonal, Einrichter",
|
AffectedDE: "Bedienpersonal, Einrichter",
|
||||||
ZoneDE: "Schneidzone, Werkzeugwechselbereich, Materialzufuhr",
|
ZoneDE: "Schneidzone, Werkzeugwechselbereich, Materialzufuhr",
|
||||||
|
ISO12100Section: "6.2.2.2",
|
||||||
DefaultSeverity: 3, DefaultExposure: 3,
|
DefaultSeverity: 3, DefaultExposure: 3,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -151,6 +154,7 @@ func builtinMechanicalPatterns() []HazardPattern {
|
|||||||
HarmDE: "Schlagartige Freisetzung: Prellung, Fraktur, Schnittverletzung durch zurueckschnellendes Teil.",
|
HarmDE: "Schlagartige Freisetzung: Prellung, Fraktur, Schnittverletzung durch zurueckschnellendes Teil.",
|
||||||
AffectedDE: "Wartungspersonal, Einrichter",
|
AffectedDE: "Wartungspersonal, Einrichter",
|
||||||
ZoneDE: "Federpaket, Gegengewicht, Riemenspannbereich, angehobene Baugruppen",
|
ZoneDE: "Federpaket, Gegengewicht, Riemenspannbereich, angehobene Baugruppen",
|
||||||
|
ISO12100Section: "6.2.10",
|
||||||
DefaultSeverity: 4, DefaultExposure: 2,
|
DefaultSeverity: 4, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ func GetPackagingPatterns() []HazardPattern {
|
|||||||
ID: "HP327", NameDE: "Laerm durch Druckluft-Auswurf", NameEN: "Noise from compressed air ejection",
|
ID: "HP327", NameDE: "Laerm durch Druckluft-Auswurf", NameEN: "Noise from compressed air ejection",
|
||||||
RequiredComponentTags: []string{"noise_source", "pneumatic_part"},
|
RequiredComponentTags: []string{"noise_source", "pneumatic_part"},
|
||||||
RequiredEnergyTags: []string{"pneumatic_pressure"},
|
RequiredEnergyTags: []string{"pneumatic_pressure"},
|
||||||
GeneratedHazardCats: []string{"noise_vibration"},
|
GeneratedHazardCats: []string{"noise_hazard"},
|
||||||
SuggestedMeasureIDs: []string{"M141"},
|
SuggestedMeasureIDs: []string{"M141"},
|
||||||
SuggestedEvidenceIDs: []string{"E12", "E20"},
|
SuggestedEvidenceIDs: []string{"E12", "E20"},
|
||||||
Priority: 60,
|
Priority: 60,
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ func GetPressHazardPatterns() []HazardPattern {
|
|||||||
ID: "HP053", NameDE: "Impulslaerm Pressvorgang", NameEN: "Impact noise during press operation",
|
ID: "HP053", NameDE: "Impulslaerm Pressvorgang", NameEN: "Impact noise during press operation",
|
||||||
RequiredComponentTags: []string{"noise_source", "high_force"},
|
RequiredComponentTags: []string{"noise_source", "high_force"},
|
||||||
RequiredEnergyTags: []string{},
|
RequiredEnergyTags: []string{},
|
||||||
GeneratedHazardCats: []string{"noise_vibration"},
|
GeneratedHazardCats: []string{"noise_hazard"},
|
||||||
SuggestedMeasureIDs: []string{"M141"},
|
SuggestedMeasureIDs: []string{"M141"},
|
||||||
SuggestedEvidenceIDs: []string{"E20"},
|
SuggestedEvidenceIDs: []string{"E20"},
|
||||||
Priority: 70,
|
Priority: 70,
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ func GetRobotCellPatterns() []HazardPattern {
|
|||||||
HarmDE: "Quetschungen, Knochenbrueche, innere Verletzungen durch Einklemmen von Koerperteilen.",
|
HarmDE: "Quetschungen, Knochenbrueche, innere Verletzungen durch Einklemmen von Koerperteilen.",
|
||||||
AffectedDE: "Bedienpersonal, Einrichter, Wartungspersonal, Reinigungspersonal",
|
AffectedDE: "Bedienpersonal, Einrichter, Wartungspersonal, Reinigungspersonal",
|
||||||
ZoneDE: "Roboterarm, feststehende Anlagenteile innerhalb der Roboterzelle",
|
ZoneDE: "Roboterarm, feststehende Anlagenteile innerhalb der Roboterzelle",
|
||||||
|
ISO12100Section: "6.2.3",
|
||||||
DefaultSeverity: 4, DefaultExposure: 3,
|
DefaultSeverity: 4, DefaultExposure: 3,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -39,6 +40,7 @@ func GetRobotCellPatterns() []HazardPattern {
|
|||||||
AffectedDE: "Bedienpersonal, Reinigungspersonal",
|
AffectedDE: "Bedienpersonal, Reinigungspersonal",
|
||||||
ZoneDE: "Schutzzaun-Oberkante, Roboterarm",
|
ZoneDE: "Schutzzaun-Oberkante, Roboterarm",
|
||||||
ClarificationQuestionsDE: []string{"Ist Dynamic Safety Configuration (DCS) am Roboter konfiguriert und durch den Hersteller validiert?", "Wurde der Reach-Over-Sicherheitsabstand nach EN ISO 13857 anlagenbezogen berechnet?"},
|
ClarificationQuestionsDE: []string{"Ist Dynamic Safety Configuration (DCS) am Roboter konfiguriert und durch den Hersteller validiert?", "Wurde der Reach-Over-Sicherheitsabstand nach EN ISO 13857 anlagenbezogen berechnet?"},
|
||||||
|
ISO12100Section: "6.3.5.2",
|
||||||
DefaultSeverity: 3, DefaultExposure: 2,
|
DefaultSeverity: 3, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -53,6 +55,7 @@ func GetRobotCellPatterns() []HazardPattern {
|
|||||||
HarmDE: "Quetschungen, Stoss durch anlaufenden Roboter.",
|
HarmDE: "Quetschungen, Stoss durch anlaufenden Roboter.",
|
||||||
AffectedDE: "Wartungspersonal, Einrichter, Reinigungspersonal",
|
AffectedDE: "Wartungspersonal, Einrichter, Reinigungspersonal",
|
||||||
ZoneDE: "Inneres der Roboterzelle",
|
ZoneDE: "Inneres der Roboterzelle",
|
||||||
|
ISO12100Section: "6.2.3",
|
||||||
DefaultSeverity: 4, DefaultExposure: 2,
|
DefaultSeverity: 4, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -68,6 +71,7 @@ func GetRobotCellPatterns() []HazardPattern {
|
|||||||
AffectedDE: "Bedienpersonal in der Naehe des Schutzzauns",
|
AffectedDE: "Bedienpersonal in der Naehe des Schutzzauns",
|
||||||
ZoneDE: "Schutzzaun, Bereich um die Roboterzelle",
|
ZoneDE: "Schutzzaun, Bereich um die Roboterzelle",
|
||||||
ClarificationQuestionsDE: []string{"Ist Dynamic Safety Configuration (DCS) am Roboter konfiguriert und durch den Hersteller validiert?", "Ist nach EN ISO 13857 die Tabelle 1 (Niedrigrisiko) anwendbar oder muss Tabelle 2 angewandt werden?"},
|
ClarificationQuestionsDE: []string{"Ist Dynamic Safety Configuration (DCS) am Roboter konfiguriert und durch den Hersteller validiert?", "Ist nach EN ISO 13857 die Tabelle 1 (Niedrigrisiko) anwendbar oder muss Tabelle 2 angewandt werden?"},
|
||||||
|
ISO12100Section: "6.3.5.2",
|
||||||
DefaultSeverity: 3, DefaultExposure: 2,
|
DefaultSeverity: 3, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -82,6 +86,7 @@ func GetRobotCellPatterns() []HazardPattern {
|
|||||||
HarmDE: "Prellungen, Quetschungen durch Kontakt mit Werkzeug/Greifer am Roboterarm.",
|
HarmDE: "Prellungen, Quetschungen durch Kontakt mit Werkzeug/Greifer am Roboterarm.",
|
||||||
AffectedDE: "Einrichter, Programmierer, Wartungspersonal",
|
AffectedDE: "Einrichter, Programmierer, Wartungspersonal",
|
||||||
ZoneDE: "Inneres der Roboterzelle, Schwenkbereich Werkzeug/Greifer",
|
ZoneDE: "Inneres der Roboterzelle, Schwenkbereich Werkzeug/Greifer",
|
||||||
|
ISO12100Section: "6.3.5.4",
|
||||||
DefaultSeverity: 3, DefaultExposure: 3,
|
DefaultSeverity: 3, DefaultExposure: 3,
|
||||||
},
|
},
|
||||||
// ================================================================
|
// ================================================================
|
||||||
@@ -99,6 +104,7 @@ func GetRobotCellPatterns() []HazardPattern {
|
|||||||
HarmDE: "Quetschung oder Amputation von Fingern durch Greifkraft.",
|
HarmDE: "Quetschung oder Amputation von Fingern durch Greifkraft.",
|
||||||
AffectedDE: "Bedienpersonal, Einrichter",
|
AffectedDE: "Bedienpersonal, Einrichter",
|
||||||
ZoneDE: "Greifer des Roboterarms, Werkstueckaufnahme",
|
ZoneDE: "Greifer des Roboterarms, Werkstueckaufnahme",
|
||||||
|
ISO12100Section: "6.3.5.4",
|
||||||
DefaultSeverity: 3, DefaultExposure: 3,
|
DefaultSeverity: 3, DefaultExposure: 3,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -114,6 +120,7 @@ func GetRobotCellPatterns() []HazardPattern {
|
|||||||
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
||||||
ZoneDE: "Bereich unterhalb des Greifer/Roboterarms",
|
ZoneDE: "Bereich unterhalb des Greifer/Roboterarms",
|
||||||
ClarificationQuestionsDE: []string{"Welche Druckhalte-Logik ist am Greifer realisiert? (Empfehlung: 5-3 Wegeventil mit Sperrmittelstellung, auch bei Not-Halt)", "Ist nachgewiesen, dass das Werkstueck bei Spannungs- oder Druckluftausfall sicher gehalten wird (Fail-Safe)?"},
|
ClarificationQuestionsDE: []string{"Welche Druckhalte-Logik ist am Greifer realisiert? (Empfehlung: 5-3 Wegeventil mit Sperrmittelstellung, auch bei Not-Halt)", "Ist nachgewiesen, dass das Werkstueck bei Spannungs- oder Druckluftausfall sicher gehalten wird (Fail-Safe)?"},
|
||||||
|
ISO12100Section: "6.2.6",
|
||||||
DefaultSeverity: 3, DefaultExposure: 2,
|
DefaultSeverity: 3, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -129,6 +136,7 @@ func GetRobotCellPatterns() []HazardPattern {
|
|||||||
AffectedDE: "Bedienpersonal in der Naehe der Roboterzelle",
|
AffectedDE: "Bedienpersonal in der Naehe der Roboterzelle",
|
||||||
ZoneDE: "Schutzzaun, Bereich um die Roboterzelle",
|
ZoneDE: "Schutzzaun, Bereich um die Roboterzelle",
|
||||||
ClarificationQuestionsDE: []string{"Ist die Lastbemessung der Einhausung auf max. Werkstueckgewicht * max. Roboter-TCP-Geschwindigkeit dokumentiert?", "Sind max. Werkstueckgewicht und Roboter-TCP-Geschwindigkeit in der Betriebsanleitung explizit angegeben?"},
|
ClarificationQuestionsDE: []string{"Ist die Lastbemessung der Einhausung auf max. Werkstueckgewicht * max. Roboter-TCP-Geschwindigkeit dokumentiert?", "Sind max. Werkstueckgewicht und Roboter-TCP-Geschwindigkeit in der Betriebsanleitung explizit angegeben?"},
|
||||||
|
ISO12100Section: "6.2.6",
|
||||||
DefaultSeverity: 3, DefaultExposure: 2,
|
DefaultSeverity: 3, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
// ================================================================
|
// ================================================================
|
||||||
@@ -147,6 +155,7 @@ func GetRobotCellPatterns() []HazardPattern {
|
|||||||
AffectedDE: "Bedienpersonal, Reinigungspersonal",
|
AffectedDE: "Bedienpersonal, Reinigungspersonal",
|
||||||
ZoneDE: "Foerderbaender, Bandein- und -auslauf",
|
ZoneDE: "Foerderbaender, Bandein- und -auslauf",
|
||||||
ClarificationQuestionsDE: []string{"Ist die Bandgeschwindigkeit im manuell zugaenglichen Bereich dokumentiert? (Empfehlung: <= 100 mm/s)", "Sind Quetsch- und Einzugsstellen am Band konstruktiv ausgeschlossen oder durch Lichtschranke gesichert?"},
|
ClarificationQuestionsDE: []string{"Ist die Bandgeschwindigkeit im manuell zugaenglichen Bereich dokumentiert? (Empfehlung: <= 100 mm/s)", "Sind Quetsch- und Einzugsstellen am Band konstruktiv ausgeschlossen oder durch Lichtschranke gesichert?"},
|
||||||
|
ISO12100Section: "6.3.5.4",
|
||||||
DefaultSeverity: 2, DefaultExposure: 3,
|
DefaultSeverity: 2, DefaultExposure: 3,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -161,6 +170,7 @@ func GetRobotCellPatterns() []HazardPattern {
|
|||||||
HarmDE: "Quetschung von Hand oder Arm durch Roboterarm oder bewegte Maschinenteile.",
|
HarmDE: "Quetschung von Hand oder Arm durch Roboterarm oder bewegte Maschinenteile.",
|
||||||
AffectedDE: "Bedienpersonal",
|
AffectedDE: "Bedienpersonal",
|
||||||
ZoneDE: "Oeffnung der Foerderbaender im Schutzzaun, Roboterbereich dahinter",
|
ZoneDE: "Oeffnung der Foerderbaender im Schutzzaun, Roboterbereich dahinter",
|
||||||
|
ISO12100Section: "6.3.5.4",
|
||||||
DefaultSeverity: 3, DefaultExposure: 3,
|
DefaultSeverity: 3, DefaultExposure: 3,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -176,6 +186,7 @@ func GetRobotCellPatterns() []HazardPattern {
|
|||||||
AffectedDE: "Bedienpersonal am Be-/Entladeplatz",
|
AffectedDE: "Bedienpersonal am Be-/Entladeplatz",
|
||||||
ZoneDE: "Ende der Transportbaender, Be-/Entladeplatz",
|
ZoneDE: "Ende der Transportbaender, Be-/Entladeplatz",
|
||||||
ClarificationQuestionsDE: []string{"Sind mechanische Anschlaege an allen Bandenden vorhanden und auf maximale Werkstueckmasse + Bandgeschwindigkeit dimensioniert?"},
|
ClarificationQuestionsDE: []string{"Sind mechanische Anschlaege an allen Bandenden vorhanden und auf maximale Werkstueckmasse + Bandgeschwindigkeit dimensioniert?"},
|
||||||
|
ISO12100Section: "6.2.6",
|
||||||
DefaultSeverity: 2, DefaultExposure: 3,
|
DefaultSeverity: 2, DefaultExposure: 3,
|
||||||
},
|
},
|
||||||
// ================================================================
|
// ================================================================
|
||||||
@@ -193,6 +204,7 @@ func GetRobotCellPatterns() []HazardPattern {
|
|||||||
HarmDE: "Schnittwunden an Haenden und Armen.",
|
HarmDE: "Schnittwunden an Haenden und Armen.",
|
||||||
AffectedDE: "Bedienpersonal, Wartungspersonal, Reinigungspersonal",
|
AffectedDE: "Bedienpersonal, Wartungspersonal, Reinigungspersonal",
|
||||||
ZoneDE: "Zugaengliche Kanten der Maschine und Einhausung",
|
ZoneDE: "Zugaengliche Kanten der Maschine und Einhausung",
|
||||||
|
ISO12100Section: "6.2.2.2",
|
||||||
DefaultSeverity: 2, DefaultExposure: 3,
|
DefaultSeverity: 2, DefaultExposure: 3,
|
||||||
},
|
},
|
||||||
// ================================================================
|
// ================================================================
|
||||||
@@ -210,6 +222,7 @@ func GetRobotCellPatterns() []HazardPattern {
|
|||||||
HarmDE: "Prellungen, Augenverletzungen durch abspringenden Schlauch.",
|
HarmDE: "Prellungen, Augenverletzungen durch abspringenden Schlauch.",
|
||||||
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
||||||
ZoneDE: "Pneumatikschlaeuche der Automation",
|
ZoneDE: "Pneumatikschlaeuche der Automation",
|
||||||
|
ISO12100Section: "6.3.5.4",
|
||||||
DefaultSeverity: 2, DefaultExposure: 2,
|
DefaultSeverity: 2, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -224,6 +237,7 @@ func GetRobotCellPatterns() []HazardPattern {
|
|||||||
HarmDE: "Person wird von wegfliegenden Teilen oder unkontrolliert loesenden Verbindungen getroffen. Prellungen, Schnittverletzungen.",
|
HarmDE: "Person wird von wegfliegenden Teilen oder unkontrolliert loesenden Verbindungen getroffen. Prellungen, Schnittverletzungen.",
|
||||||
AffectedDE: "Wartungspersonal, Einrichter",
|
AffectedDE: "Wartungspersonal, Einrichter",
|
||||||
ZoneDE: "Pneumatikschlaeuche und -komponenten",
|
ZoneDE: "Pneumatikschlaeuche und -komponenten",
|
||||||
|
ISO12100Section: "6.2.10",
|
||||||
DefaultSeverity: 2, DefaultExposure: 2,
|
DefaultSeverity: 2, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
// HP1632 (Bersten) ist semantisch DISTINKT zu HP1630 (Abspringen).
|
// HP1632 (Bersten) ist semantisch DISTINKT zu HP1630 (Abspringen).
|
||||||
@@ -246,6 +260,7 @@ func GetRobotCellPatterns() []HazardPattern {
|
|||||||
"Sind alle Pneumatik-Komponenten (Leitungen, Dichtungen, Verbindungen) auf den Anlagen-Nenndruck nach EN ISO 4414 ausgelegt?",
|
"Sind alle Pneumatik-Komponenten (Leitungen, Dichtungen, Verbindungen) auf den Anlagen-Nenndruck nach EN ISO 4414 ausgelegt?",
|
||||||
"Liegen Berstdrucknachweise der Schlauchhersteller fuer den eingesetzten Druckbereich vor?",
|
"Liegen Berstdrucknachweise der Schlauchhersteller fuer den eingesetzten Druckbereich vor?",
|
||||||
},
|
},
|
||||||
|
ISO12100Section: "6.2.10",
|
||||||
DefaultSeverity: 2, DefaultExposure: 2,
|
DefaultSeverity: 2, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
// ================================================================
|
// ================================================================
|
||||||
@@ -263,6 +278,7 @@ func GetRobotCellPatterns() []HazardPattern {
|
|||||||
HarmDE: "Quetschung, Schnittverletzung durch Greiferkanten oder Werkzeug am Roboter.",
|
HarmDE: "Quetschung, Schnittverletzung durch Greiferkanten oder Werkzeug am Roboter.",
|
||||||
AffectedDE: "Einrichter, Programmierer",
|
AffectedDE: "Einrichter, Programmierer",
|
||||||
ZoneDE: "Inneres der Roboterzelle, Greifer/Werkzeug am Roboterarm",
|
ZoneDE: "Inneres der Roboterzelle, Greifer/Werkzeug am Roboterarm",
|
||||||
|
ISO12100Section: "6.3.5.4",
|
||||||
DefaultSeverity: 3, DefaultExposure: 3,
|
DefaultSeverity: 3, DefaultExposure: 3,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -291,6 +307,7 @@ func GetRobotCellPatterns() []HazardPattern {
|
|||||||
HarmDE: "Person wird von KSS-Strahl getroffen. Einstichverletzung, Hautreizung, Rutschgefahr.",
|
HarmDE: "Person wird von KSS-Strahl getroffen. Einstichverletzung, Hautreizung, Rutschgefahr.",
|
||||||
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
||||||
ZoneDE: "Druckschlaeuche des Kuehlschmierstoffsystems, Verbindungsstellen",
|
ZoneDE: "Druckschlaeuche des Kuehlschmierstoffsystems, Verbindungsstellen",
|
||||||
|
ISO12100Section: "6.3.5.4",
|
||||||
DefaultSeverity: 2, DefaultExposure: 2,
|
DefaultSeverity: 2, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -305,6 +322,7 @@ func GetRobotCellPatterns() []HazardPattern {
|
|||||||
HarmDE: "Ausrutschen und Sturz, Prellungen, Knochenbrueche.",
|
HarmDE: "Ausrutschen und Sturz, Prellungen, Knochenbrueche.",
|
||||||
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
||||||
ZoneDE: "Boden um Bearbeitungszentrum und Kuehlschmierstoffanlage",
|
ZoneDE: "Boden um Bearbeitungszentrum und Kuehlschmierstoffanlage",
|
||||||
|
ISO12100Section: "6.3.5.6",
|
||||||
DefaultSeverity: 2, DefaultExposure: 3,
|
DefaultSeverity: 2, DefaultExposure: 3,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -353,6 +371,7 @@ func GetRobotCellPatterns() []HazardPattern {
|
|||||||
AffectedDE: "Wartungspersonal, Einrichter",
|
AffectedDE: "Wartungspersonal, Einrichter",
|
||||||
ZoneDE: "Zugaengliche Kabel, Klemmen, Schaltschrank",
|
ZoneDE: "Zugaengliche Kabel, Klemmen, Schaltschrank",
|
||||||
ClarificationQuestionsDE: []string{"Liegt ein Pruefprotokoll nach EN 60204-1 fuer die Niederspannungs-Isolation vor?", "Sind die Schutzart IP2X bzw. IPXXB an allen niederspannungsfuehrenden Gehaeusen messtechnisch nachgewiesen?"},
|
ClarificationQuestionsDE: []string{"Liegt ein Pruefprotokoll nach EN 60204-1 fuer die Niederspannungs-Isolation vor?", "Sind die Schutzart IP2X bzw. IPXXB an allen niederspannungsfuehrenden Gehaeusen messtechnisch nachgewiesen?"},
|
||||||
|
ISO12100Section: "6.2.9",
|
||||||
DefaultSeverity: 4, DefaultExposure: 2,
|
DefaultSeverity: 4, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -369,6 +388,7 @@ func GetRobotCellPatterns() []HazardPattern {
|
|||||||
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
||||||
ZoneDE: "Beruehrbare leitfaehige Oberflaechen der Anlage",
|
ZoneDE: "Beruehrbare leitfaehige Oberflaechen der Anlage",
|
||||||
ClarificationQuestionsDE: []string{"Wurde der Schutzleiterwiderstand an allen leitfaehigen Oberflaechen gemessen und protokolliert?", "Liegen die Ableitstroeme unter 10 mA, oder ist einer der Massnahmen aus EN 60204-1 Ziff. 8.2.6 umgesetzt?"},
|
ClarificationQuestionsDE: []string{"Wurde der Schutzleiterwiderstand an allen leitfaehigen Oberflaechen gemessen und protokolliert?", "Liegen die Ableitstroeme unter 10 mA, oder ist einer der Massnahmen aus EN 60204-1 Ziff. 8.2.6 umgesetzt?"},
|
||||||
|
ISO12100Section: "6.2.9",
|
||||||
DefaultSeverity: 4, DefaultExposure: 2,
|
DefaultSeverity: 4, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ func GetRobotCellPatternsExt() []HazardPattern {
|
|||||||
HarmDE: "Person ausserhalb wird von Zaunteilen oder dem Roboterarm getroffen.",
|
HarmDE: "Person ausserhalb wird von Zaunteilen oder dem Roboterarm getroffen.",
|
||||||
AffectedDE: "Bedienpersonal in der Naehe des Schutzzauns",
|
AffectedDE: "Bedienpersonal in der Naehe des Schutzzauns",
|
||||||
ZoneDE: "Schutzzaun, Bereich um die Roboterzelle",
|
ZoneDE: "Schutzzaun, Bereich um die Roboterzelle",
|
||||||
|
ISO12100Section: "6.3.5.2",
|
||||||
DefaultSeverity: 3, DefaultExposure: 2,
|
DefaultSeverity: 3, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -34,6 +35,7 @@ func GetRobotCellPatternsExt() []HazardPattern {
|
|||||||
HarmDE: "Schwere Quetschungen, Knochenbrueche durch anlaufenden Roboter.",
|
HarmDE: "Schwere Quetschungen, Knochenbrueche durch anlaufenden Roboter.",
|
||||||
AffectedDE: "Wartungspersonal, Einrichter, Reinigungspersonal",
|
AffectedDE: "Wartungspersonal, Einrichter, Reinigungspersonal",
|
||||||
ZoneDE: "Inneres der Roboterzelle, Roboterarm",
|
ZoneDE: "Inneres der Roboterzelle, Roboterarm",
|
||||||
|
ISO12100Section: "6.3.5.2",
|
||||||
DefaultSeverity: 4, DefaultExposure: 3,
|
DefaultSeverity: 4, DefaultExposure: 3,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -48,6 +50,7 @@ func GetRobotCellPatternsExt() []HazardPattern {
|
|||||||
HarmDE: "Quetschungen, Schnittverletzungen, Prellungen durch Werkzeug/Greifer.",
|
HarmDE: "Quetschungen, Schnittverletzungen, Prellungen durch Werkzeug/Greifer.",
|
||||||
AffectedDE: "Bedienpersonal, Einrichter",
|
AffectedDE: "Bedienpersonal, Einrichter",
|
||||||
ZoneDE: "Inneres der Roboterzelle, Greifer/Werkzeug des Roboterarms",
|
ZoneDE: "Inneres der Roboterzelle, Greifer/Werkzeug des Roboterarms",
|
||||||
|
ISO12100Section: "6.3.5.4",
|
||||||
DefaultSeverity: 3, DefaultExposure: 3,
|
DefaultSeverity: 3, DefaultExposure: 3,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -62,6 +65,7 @@ func GetRobotCellPatternsExt() []HazardPattern {
|
|||||||
HarmDE: "Quetschungen, Prellungen, Knochenbrueche abhaengig von Werkstueckgewicht.",
|
HarmDE: "Quetschungen, Prellungen, Knochenbrueche abhaengig von Werkstueckgewicht.",
|
||||||
AffectedDE: "Bedienpersonal, Einrichter",
|
AffectedDE: "Bedienpersonal, Einrichter",
|
||||||
ZoneDE: "Inneres der Roboterzelle, Greifer des Roboterarms",
|
ZoneDE: "Inneres der Roboterzelle, Greifer des Roboterarms",
|
||||||
|
ISO12100Section: "6.3.5.4",
|
||||||
DefaultSeverity: 3, DefaultExposure: 3,
|
DefaultSeverity: 3, DefaultExposure: 3,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -80,6 +84,7 @@ func GetRobotCellPatternsExt() []HazardPattern {
|
|||||||
"Ist Dual Check Safety (DCS bei FANUC, SafeMove bei ABB, SafeOperation bei KUKA) am Roboter konfiguriert und nach EN ISO 13849-1 PLd/Kat.3 validiert?",
|
"Ist Dual Check Safety (DCS bei FANUC, SafeMove bei ABB, SafeOperation bei KUKA) am Roboter konfiguriert und nach EN ISO 13849-1 PLd/Kat.3 validiert?",
|
||||||
"Ist die Lastbemessung des Schutzzauns auf max. Werkstueck-Gewicht * max. Roboter-TCP-Geschwindigkeit nachgewiesen?",
|
"Ist die Lastbemessung des Schutzzauns auf max. Werkstueck-Gewicht * max. Roboter-TCP-Geschwindigkeit nachgewiesen?",
|
||||||
},
|
},
|
||||||
|
ISO12100Section: "6.2.6",
|
||||||
DefaultSeverity: 3, DefaultExposure: 2,
|
DefaultSeverity: 3, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -94,6 +99,7 @@ func GetRobotCellPatternsExt() []HazardPattern {
|
|||||||
HarmDE: "Quetschung von Hand oder Arm zwischen Greifer/Werkstueck und feststehenden Teilen.",
|
HarmDE: "Quetschung von Hand oder Arm zwischen Greifer/Werkstueck und feststehenden Teilen.",
|
||||||
AffectedDE: "Bedienpersonal",
|
AffectedDE: "Bedienpersonal",
|
||||||
ZoneDE: "Schutzzaun-Oberkante, Greifer/Werkstueck am Roboterarm",
|
ZoneDE: "Schutzzaun-Oberkante, Greifer/Werkstueck am Roboterarm",
|
||||||
|
ISO12100Section: "6.3.5.4",
|
||||||
DefaultSeverity: 3, DefaultExposure: 2,
|
DefaultSeverity: 3, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
// ================================================================
|
// ================================================================
|
||||||
@@ -157,6 +163,7 @@ func GetRobotCellPatternsExt() []HazardPattern {
|
|||||||
AffectedDE: "Einrichter, Wartungspersonal",
|
AffectedDE: "Einrichter, Wartungspersonal",
|
||||||
ZoneDE: "Bearbeitungsraum der Werkzeugmaschine, Achsen, Werkzeug, Spannvorrichtung",
|
ZoneDE: "Bearbeitungsraum der Werkzeugmaschine, Achsen, Werkzeug, Spannvorrichtung",
|
||||||
ClarificationQuestionsDE: []string{"Ist die Werkzeugmaschine (z.B. Robodrill) als CE-konformes Subsystem integriert? Herstellererklaerung anfordern.", "Sind sicherer Automatik- und Einrichtbetrieb durch die CE-Erklaerung der WZM abgedeckt oder erforderlich separate Sicherheitsfunktionen?"},
|
ClarificationQuestionsDE: []string{"Ist die Werkzeugmaschine (z.B. Robodrill) als CE-konformes Subsystem integriert? Herstellererklaerung anfordern.", "Sind sicherer Automatik- und Einrichtbetrieb durch die CE-Erklaerung der WZM abgedeckt oder erforderlich separate Sicherheitsfunktionen?"},
|
||||||
|
ISO12100Section: "6.3.5.4",
|
||||||
DefaultSeverity: 3, DefaultExposure: 3,
|
DefaultSeverity: 3, DefaultExposure: 3,
|
||||||
},
|
},
|
||||||
// ================================================================
|
// ================================================================
|
||||||
@@ -188,6 +195,7 @@ func GetRobotCellPatternsExt() []HazardPattern {
|
|||||||
HarmDE: "Augenverletzung durch Spaene, Hautverletzung durch Druckluftstoss.",
|
HarmDE: "Augenverletzung durch Spaene, Hautverletzung durch Druckluftstoss.",
|
||||||
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
||||||
ZoneDE: "Bearbeitungszelle, Druckluftreinigungsduesen",
|
ZoneDE: "Bearbeitungszelle, Druckluftreinigungsduesen",
|
||||||
|
ISO12100Section: "6.3.5.6",
|
||||||
DefaultSeverity: 2, DefaultExposure: 3,
|
DefaultSeverity: 2, DefaultExposure: 3,
|
||||||
},
|
},
|
||||||
// ================================================================
|
// ================================================================
|
||||||
@@ -205,6 +213,7 @@ func GetRobotCellPatternsExt() []HazardPattern {
|
|||||||
HarmDE: "Person wird von abspringendem Schlauch getroffen (Peitscheneffekt). KSS-Spritzer unter Druck verletzen Haut und Augen. Rutschgefahr durch austretenden KSS.",
|
HarmDE: "Person wird von abspringendem Schlauch getroffen (Peitscheneffekt). KSS-Spritzer unter Druck verletzen Haut und Augen. Rutschgefahr durch austretenden KSS.",
|
||||||
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
||||||
ZoneDE: "Druckschlaeuche des Kuehlschmierstoffsystems",
|
ZoneDE: "Druckschlaeuche des Kuehlschmierstoffsystems",
|
||||||
|
ISO12100Section: "6.3.5.4",
|
||||||
DefaultSeverity: 2, DefaultExposure: 2,
|
DefaultSeverity: 2, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
// ================================================================
|
// ================================================================
|
||||||
@@ -240,6 +249,7 @@ func GetRobotCellPatternsExt() []HazardPattern {
|
|||||||
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
||||||
ZoneDE: "Beruehrbare leitfaehige Oberflaechen der Anlage",
|
ZoneDE: "Beruehrbare leitfaehige Oberflaechen der Anlage",
|
||||||
ClarificationQuestionsDE: []string{"Wurden alle Steckdosenkreise mit Fehlerstromschutzeinrichtung (RCD) ausgestattet und auf Wirksamkeit geprueft?", "Ist das Schutzleitersystem durchgaengig validiert und protokolliert?"},
|
ClarificationQuestionsDE: []string{"Wurden alle Steckdosenkreise mit Fehlerstromschutzeinrichtung (RCD) ausgestattet und auf Wirksamkeit geprueft?", "Ist das Schutzleitersystem durchgaengig validiert und protokolliert?"},
|
||||||
|
ISO12100Section: "6.2.9",
|
||||||
DefaultSeverity: 4, DefaultExposure: 2,
|
DefaultSeverity: 4, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -282,6 +292,7 @@ func GetRobotCellPatternsExt() []HazardPattern {
|
|||||||
HarmDE: "Elektrischer Schlag bei gleichzeitigem Beruehren von Teilen unterschiedlichen Potentials.",
|
HarmDE: "Elektrischer Schlag bei gleichzeitigem Beruehren von Teilen unterschiedlichen Potentials.",
|
||||||
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
||||||
ZoneDE: "Elektrisch leitfaehige Oberflaechen verschiedener Anlagenteile",
|
ZoneDE: "Elektrisch leitfaehige Oberflaechen verschiedener Anlagenteile",
|
||||||
|
ISO12100Section: "6.2.9",
|
||||||
DefaultSeverity: 4, DefaultExposure: 2,
|
DefaultSeverity: 4, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -296,6 +307,7 @@ func GetRobotCellPatternsExt() []HazardPattern {
|
|||||||
HarmDE: "Person erleidet elektrischen Schlag durch Fehlerstrom. Herzkammerflimmern, potentiell toedlich.",
|
HarmDE: "Person erleidet elektrischen Schlag durch Fehlerstrom. Herzkammerflimmern, potentiell toedlich.",
|
||||||
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
||||||
ZoneDE: "Steckdosen der Maschine, angeschlossene Betriebsmittel",
|
ZoneDE: "Steckdosen der Maschine, angeschlossene Betriebsmittel",
|
||||||
|
ISO12100Section: "6.2.9",
|
||||||
DefaultSeverity: 4, DefaultExposure: 2,
|
DefaultSeverity: 4, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
// ================================================================
|
// ================================================================
|
||||||
@@ -378,6 +390,7 @@ func GetRobotCellPatternsExt() []HazardPattern {
|
|||||||
HarmDE: "Gefaehrliche Beruehrungsspannung an beruehrbaren Teilen, Kurzschluss, Brand.",
|
HarmDE: "Gefaehrliche Beruehrungsspannung an beruehrbaren Teilen, Kurzschluss, Brand.",
|
||||||
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
||||||
ZoneDE: "Schaltgeraetekombinationen, elektrische Anschluesse",
|
ZoneDE: "Schaltgeraetekombinationen, elektrische Anschluesse",
|
||||||
|
ISO12100Section: "6.2.9",
|
||||||
DefaultSeverity: 4, DefaultExposure: 2,
|
DefaultSeverity: 4, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -392,6 +405,7 @@ func GetRobotCellPatternsExt() []HazardPattern {
|
|||||||
HarmDE: "Unkontrollierte Bewegung von Achsen, Werkzeug oder Roboterarm durch Steuerungsfehler.",
|
HarmDE: "Unkontrollierte Bewegung von Achsen, Werkzeug oder Roboterarm durch Steuerungsfehler.",
|
||||||
AffectedDE: "Bedienpersonal, Einrichter",
|
AffectedDE: "Bedienpersonal, Einrichter",
|
||||||
ZoneDE: "Bearbeitungsbereich, sicherheitsrelevante Steuerungen",
|
ZoneDE: "Bearbeitungsbereich, sicherheitsrelevante Steuerungen",
|
||||||
|
ISO12100Section: "6.3.3",
|
||||||
DefaultSeverity: 3, DefaultExposure: 2,
|
DefaultSeverity: 3, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
// ================================================================
|
// ================================================================
|
||||||
@@ -437,6 +451,7 @@ func GetRobotCellPatternsExt() []HazardPattern {
|
|||||||
HarmDE: "Einstichverletzung durch KSS-Strahl unter Druck, Augenverletzung, Rutschgefahr.",
|
HarmDE: "Einstichverletzung durch KSS-Strahl unter Druck, Augenverletzung, Rutschgefahr.",
|
||||||
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
||||||
ZoneDE: "Druckschlaeuche des Kuehlschmierstoffsystems",
|
ZoneDE: "Druckschlaeuche des Kuehlschmierstoffsystems",
|
||||||
|
ISO12100Section: "6.3.5.4",
|
||||||
DefaultSeverity: 2, DefaultExposure: 2,
|
DefaultSeverity: 2, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -451,6 +466,7 @@ func GetRobotCellPatternsExt() []HazardPattern {
|
|||||||
HarmDE: "KSS-Spritzer in Augen oder Gesicht, Rutschgefahr durch austretenden KSS.",
|
HarmDE: "KSS-Spritzer in Augen oder Gesicht, Rutschgefahr durch austretenden KSS.",
|
||||||
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
AffectedDE: "Bedienpersonal, Wartungspersonal",
|
||||||
ZoneDE: "Inneres des Bearbeitungszentrums, Bereich vor der Schutztuer",
|
ZoneDE: "Inneres des Bearbeitungszentrums, Bereich vor der Schutztuer",
|
||||||
|
ISO12100Section: "6.3.5.6",
|
||||||
DefaultSeverity: 1, DefaultExposure: 3,
|
DefaultSeverity: 1, DefaultExposure: 3,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -465,6 +481,7 @@ func GetRobotCellPatternsExt() []HazardPattern {
|
|||||||
HarmDE: "Person wird durch Brand, Flammen oder toxische Rauchgase verletzt. Verbrennungen, Rauchvergiftung.",
|
HarmDE: "Person wird durch Brand, Flammen oder toxische Rauchgase verletzt. Verbrennungen, Rauchvergiftung.",
|
||||||
AffectedDE: "Bedienpersonal",
|
AffectedDE: "Bedienpersonal",
|
||||||
ZoneDE: "Spannungsfuehrende Teile unterhalb/angrenzend von KSS-Leitungen",
|
ZoneDE: "Spannungsfuehrende Teile unterhalb/angrenzend von KSS-Leitungen",
|
||||||
|
ISO12100Section: "6.2.9",
|
||||||
DefaultSeverity: 3, DefaultExposure: 2,
|
DefaultSeverity: 3, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -115,6 +115,13 @@ func TestGetBuiltinHazardPatterns_HazardCategoriesValid(t *testing.T) {
|
|||||||
for _, h := range GetBuiltinHazardLibrary() {
|
for _, h := range GetBuiltinHazardLibrary() {
|
||||||
validCategories[h.Category] = true
|
validCategories[h.Category] = true
|
||||||
}
|
}
|
||||||
|
// ISO 12100 Annex B splits Nr. 4 Laerm and Nr. 5 Vibration into two
|
||||||
|
// top-level groups. Patterns adopted this in 2026-05 but the hazard
|
||||||
|
// library still carries entries under the legacy combined "noise_-
|
||||||
|
// vibration" key. Until the library is split, both new aliases are
|
||||||
|
// recognised as valid pattern categories.
|
||||||
|
validCategories["noise_hazard"] = true
|
||||||
|
validCategories["vibration_hazard"] = true
|
||||||
|
|
||||||
for _, p := range GetBuiltinHazardPatterns() {
|
for _, p := range GetBuiltinHazardPatterns() {
|
||||||
for _, cat := range p.GeneratedHazardCats {
|
for _, cat := range p.GeneratedHazardCats {
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ func GetTextileAgriPatterns() []HazardPattern {
|
|||||||
AffectedDE: "Bedienpersonal", ZoneDE: "Spinn-/Kardierbereich",
|
AffectedDE: "Bedienpersonal", ZoneDE: "Spinn-/Kardierbereich",
|
||||||
DefaultSeverity: 4, DefaultExposure: 5},
|
DefaultSeverity: 4, DefaultExposure: 5},
|
||||||
{ID: "HP1553", NameDE: "Laermexposition an Webmaschine", NameEN: "Noise exposure at loom",
|
{ID: "HP1553", NameDE: "Laermexposition an Webmaschine", NameEN: "Noise exposure at loom",
|
||||||
RequiredComponentTags: []string{"moving_mechanical_parts"}, GeneratedHazardCats: []string{"noise_vibration"},
|
RequiredComponentTags: []string{"moving_mechanical_parts"}, GeneratedHazardCats: []string{"noise_hazard"},
|
||||||
SuggestedMeasureIDs: []string{"M455", "M064"}, SuggestedEvidenceIDs: []string{"E01", "E29"},
|
SuggestedMeasureIDs: []string{"M455", "M064"}, SuggestedEvidenceIDs: []string{"E01", "E29"},
|
||||||
Priority: 75, MachineTypes: []string{"textile", "weaving"},
|
Priority: 75, MachineTypes: []string{"textile", "weaving"},
|
||||||
OperationalStates: []string{"automatic_operation"},
|
OperationalStates: []string{"automatic_operation"},
|
||||||
@@ -173,7 +173,7 @@ func GetTextileAgriPatterns() []HazardPattern {
|
|||||||
HarmDE: "Ueberfahren, Tod", AffectedDE: "Feldarbeiter, Passanten", ZoneDE: "Fahrweg",
|
HarmDE: "Ueberfahren, Tod", AffectedDE: "Feldarbeiter, Passanten", ZoneDE: "Fahrweg",
|
||||||
DefaultSeverity: 5, DefaultExposure: 3},
|
DefaultSeverity: 5, DefaultExposure: 3},
|
||||||
{ID: "HP1573", NameDE: "Laermexposition bei Erntemaschine", NameEN: "Noise exposure from harvester",
|
{ID: "HP1573", NameDE: "Laermexposition bei Erntemaschine", NameEN: "Noise exposure from harvester",
|
||||||
RequiredComponentTags: []string{"moving_mechanical_parts"}, GeneratedHazardCats: []string{"noise_vibration"},
|
RequiredComponentTags: []string{"moving_mechanical_parts"}, GeneratedHazardCats: []string{"noise_hazard"},
|
||||||
SuggestedMeasureIDs: []string{"M472", "M064"}, SuggestedEvidenceIDs: []string{"E01", "E29"},
|
SuggestedMeasureIDs: []string{"M472", "M064"}, SuggestedEvidenceIDs: []string{"E01", "E29"},
|
||||||
Priority: 70, MachineTypes: []string{"agricultural", "harvester"},
|
Priority: 70, MachineTypes: []string{"agricultural", "harvester"},
|
||||||
OperationalStates: []string{"automatic_operation"},
|
OperationalStates: []string{"automatic_operation"},
|
||||||
@@ -182,7 +182,7 @@ func GetTextileAgriPatterns() []HazardPattern {
|
|||||||
AffectedDE: "Fahrer", ZoneDE: "Kabine",
|
AffectedDE: "Fahrer", ZoneDE: "Kabine",
|
||||||
DefaultSeverity: 3, DefaultExposure: 5},
|
DefaultSeverity: 3, DefaultExposure: 5},
|
||||||
{ID: "HP1574", NameDE: "Ganzkoerper-Vibration auf Traktor", NameEN: "Whole-body vibration on tractor",
|
{ID: "HP1574", NameDE: "Ganzkoerper-Vibration auf Traktor", NameEN: "Whole-body vibration on tractor",
|
||||||
RequiredComponentTags: []string{"chassis"}, GeneratedHazardCats: []string{"noise_vibration"},
|
RequiredComponentTags: []string{"chassis"}, GeneratedHazardCats: []string{"vibration_hazard"},
|
||||||
SuggestedMeasureIDs: []string{"M473"}, SuggestedEvidenceIDs: []string{"E01"},
|
SuggestedMeasureIDs: []string{"M473"}, SuggestedEvidenceIDs: []string{"E01"},
|
||||||
Priority: 68, MachineTypes: []string{"agricultural", "tractor"},
|
Priority: 68, MachineTypes: []string{"agricultural", "tractor"},
|
||||||
OperationalStates: []string{"automatic_operation"},
|
OperationalStates: []string{"automatic_operation"},
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ func builtinThermalPatterns() []HazardPattern {
|
|||||||
HarmDE: "Kontaktverbrennung, Blasenbildung an Haenden.",
|
HarmDE: "Kontaktverbrennung, Blasenbildung an Haenden.",
|
||||||
AffectedDE: "Wartungspersonal, Einrichter",
|
AffectedDE: "Wartungspersonal, Einrichter",
|
||||||
ZoneDE: "Motorgehaeuse, Getriebegehaeuse, Linearantrieb",
|
ZoneDE: "Motorgehaeuse, Getriebegehaeuse, Linearantrieb",
|
||||||
|
ISO12100Section: "6.3.4.5",
|
||||||
DefaultSeverity: 2, DefaultExposure: 2,
|
DefaultSeverity: 2, DefaultExposure: 2,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ func GetWorkshopPatterns() []HazardPattern {
|
|||||||
HarmDE: "Erhoehte Unfallgefahr, Herz-Kreislauf-Risiko", AffectedDE: "Schichtpersonal", ZoneDE: "Produktionsstaette",
|
HarmDE: "Erhoehte Unfallgefahr, Herz-Kreislauf-Risiko", AffectedDE: "Schichtpersonal", ZoneDE: "Produktionsstaette",
|
||||||
DefaultSeverity: 3, DefaultExposure: 5},
|
DefaultSeverity: 3, DefaultExposure: 5},
|
||||||
{ID: "HP616", NameDE: "Laermbedingte psychische Belastung", NameEN: "Noise-induced psychological stress",
|
{ID: "HP616", NameDE: "Laermbedingte psychische Belastung", NameEN: "Noise-induced psychological stress",
|
||||||
RequiredComponentTags: []string{"noise_source"}, GeneratedHazardCats: []string{"ergonomic_hazard", "noise_vibration"},
|
RequiredComponentTags: []string{"noise_source"}, GeneratedHazardCats: []string{"ergonomic_hazard", "noise_hazard"},
|
||||||
SuggestedMeasureIDs: []string{"M082", "M141"}, SuggestedEvidenceIDs: []string{"E20"}, Priority: 50,
|
SuggestedMeasureIDs: []string{"M082", "M141"}, SuggestedEvidenceIDs: []string{"E20"}, Priority: 50,
|
||||||
ScenarioDE: "Dauerlerm erschwert Konzentration", TriggerDE: "Laerm >80 dB(A)",
|
ScenarioDE: "Dauerlerm erschwert Konzentration", TriggerDE: "Laerm >80 dB(A)",
|
||||||
HarmDE: "Stress, Konzentrationsstoerung", AffectedDE: "Alle im Laermbereich", ZoneDE: "Produktionshalle",
|
HarmDE: "Stress, Konzentrationsstoerung", AffectedDE: "Alle im Laermbereich", ZoneDE: "Produktionshalle",
|
||||||
@@ -333,46 +333,46 @@ func GetWorkshopPatterns() []HazardPattern {
|
|||||||
DefaultSeverity: 4, DefaultExposure: 3},
|
DefaultSeverity: 4, DefaultExposure: 3},
|
||||||
// — Laerm erweitert (HP650-HP653) —
|
// — Laerm erweitert (HP650-HP653) —
|
||||||
{ID: "HP650", NameDE: "Impulslaerm (Stanzen/Pressen)", NameEN: "Impulse noise stamping/pressing",
|
{ID: "HP650", NameDE: "Impulslaerm (Stanzen/Pressen)", NameEN: "Impulse noise stamping/pressing",
|
||||||
RequiredComponentTags: []string{"noise_source", "moving_part"}, GeneratedHazardCats: []string{"noise_vibration"},
|
RequiredComponentTags: []string{"noise_source", "moving_part"}, GeneratedHazardCats: []string{"noise_hazard"},
|
||||||
SuggestedMeasureIDs: []string{"M082", "M141"}, SuggestedEvidenceIDs: []string{"E20"}, Priority: 70,
|
SuggestedMeasureIDs: []string{"M082", "M141"}, SuggestedEvidenceIDs: []string{"E20"}, Priority: 70,
|
||||||
ScenarioDE: "Laermspitzen >137 dB(C) schaedigen sofort", TriggerDE: "Stanzhub, fehlender Gehoerschutz",
|
ScenarioDE: "Laermspitzen >137 dB(C) schaedigen sofort", TriggerDE: "Stanzhub, fehlender Gehoerschutz",
|
||||||
HarmDE: "Knalltrauma, Tinnitus, Hoerverlust", AffectedDE: "Bedienpersonal", ZoneDE: "Stanzmaschine",
|
HarmDE: "Knalltrauma, Tinnitus, Hoerverlust", AffectedDE: "Bedienpersonal", ZoneDE: "Stanzmaschine",
|
||||||
DefaultSeverity: 4, DefaultExposure: 4},
|
DefaultSeverity: 4, DefaultExposure: 4},
|
||||||
{ID: "HP651", NameDE: "Ultraschallemission", NameEN: "Ultrasound emission",
|
{ID: "HP651", NameDE: "Ultraschallemission", NameEN: "Ultrasound emission",
|
||||||
RequiredComponentTags: []string{"noise_source"}, GeneratedHazardCats: []string{"noise_vibration"},
|
RequiredComponentTags: []string{"noise_source"}, GeneratedHazardCats: []string{"noise_hazard"},
|
||||||
SuggestedMeasureIDs: []string{"M141"}, SuggestedEvidenceIDs: []string{"E20"}, Priority: 50,
|
SuggestedMeasureIDs: []string{"M141"}, SuggestedEvidenceIDs: []string{"E20"}, Priority: 50,
|
||||||
ScenarioDE: "Ultraschallgeraete emittieren unhorbaren Schall", TriggerDE: "Offener Betrieb ohne Kapselung",
|
ScenarioDE: "Ultraschallgeraete emittieren unhorbaren Schall", TriggerDE: "Offener Betrieb ohne Kapselung",
|
||||||
HarmDE: "Kopfschmerzen, Uebelkeit", AffectedDE: "Bedienpersonal", ZoneDE: "US-Reinigungsbad",
|
HarmDE: "Kopfschmerzen, Uebelkeit", AffectedDE: "Bedienpersonal", ZoneDE: "US-Reinigungsbad",
|
||||||
DefaultSeverity: 2, DefaultExposure: 4},
|
DefaultSeverity: 2, DefaultExposure: 4},
|
||||||
{ID: "HP652", NameDE: "Infraschall durch Grossmaschinen", NameEN: "Infrasound from large machines",
|
{ID: "HP652", NameDE: "Infraschall durch Grossmaschinen", NameEN: "Infrasound from large machines",
|
||||||
RequiredComponentTags: []string{"noise_source", "structural_part"}, GeneratedHazardCats: []string{"noise_vibration"},
|
RequiredComponentTags: []string{"noise_source", "structural_part"}, GeneratedHazardCats: []string{"noise_hazard"},
|
||||||
SuggestedMeasureIDs: []string{"M141"}, SuggestedEvidenceIDs: []string{"E20"}, Priority: 45,
|
SuggestedMeasureIDs: []string{"M141"}, SuggestedEvidenceIDs: []string{"E20"}, Priority: 45,
|
||||||
ScenarioDE: "Tieffrequenter Schall <20 Hz", TriggerDE: "Ungedaempfte Aufstellung, Resonanz",
|
ScenarioDE: "Tieffrequenter Schall <20 Hz", TriggerDE: "Ungedaempfte Aufstellung, Resonanz",
|
||||||
HarmDE: "Schwindel, Konzentrationsstoerung", AffectedDE: "Alle im Gebaeude", ZoneDE: "Kompressorraum",
|
HarmDE: "Schwindel, Konzentrationsstoerung", AffectedDE: "Alle im Gebaeude", ZoneDE: "Kompressorraum",
|
||||||
DefaultSeverity: 2, DefaultExposure: 4},
|
DefaultSeverity: 2, DefaultExposure: 4},
|
||||||
{ID: "HP653", NameDE: "Koerperschall ins Gebaeude", NameEN: "Structure-borne sound",
|
{ID: "HP653", NameDE: "Koerperschall ins Gebaeude", NameEN: "Structure-borne sound",
|
||||||
RequiredComponentTags: []string{"noise_source", "structural_part"}, GeneratedHazardCats: []string{"noise_vibration"},
|
RequiredComponentTags: []string{"noise_source", "structural_part"}, GeneratedHazardCats: []string{"noise_hazard"},
|
||||||
SuggestedMeasureIDs: []string{"M141"}, SuggestedEvidenceIDs: []string{"E20"}, Priority: 45,
|
SuggestedMeasureIDs: []string{"M141"}, SuggestedEvidenceIDs: []string{"E20"}, Priority: 45,
|
||||||
ScenarioDE: "Vibrationen uebertragen sich ueber Fundamente", TriggerDE: "Fehlende Schwingungsisolation",
|
ScenarioDE: "Vibrationen uebertragen sich ueber Fundamente", TriggerDE: "Fehlende Schwingungsisolation",
|
||||||
HarmDE: "Laermbelaestigung in Nachbarraeumen", AffectedDE: "Bueropersonal", ZoneDE: "Angrenzende Raeume",
|
HarmDE: "Laermbelaestigung in Nachbarraeumen", AffectedDE: "Bueropersonal", ZoneDE: "Angrenzende Raeume",
|
||||||
DefaultSeverity: 2, DefaultExposure: 5},
|
DefaultSeverity: 2, DefaultExposure: 5},
|
||||||
// — Vibration erweitert (HP654-HP656) —
|
// — Vibration erweitert (HP654-HP656) —
|
||||||
{ID: "HP654", NameDE: "Hand-Arm-Vibration durch Handmaschinen", NameEN: "Hand-arm vibration handheld tools",
|
{ID: "HP654", NameDE: "Hand-Arm-Vibration durch Handmaschinen", NameEN: "Hand-arm vibration handheld tools",
|
||||||
RequiredComponentTags: []string{"vibration_source"}, GeneratedHazardCats: []string{"noise_vibration"},
|
RequiredComponentTags: []string{"vibration_source"}, GeneratedHazardCats: []string{"vibration_hazard"},
|
||||||
SuggestedMeasureIDs: []string{"M082", "M141"}, SuggestedEvidenceIDs: []string{"E20"}, Priority: 60,
|
SuggestedMeasureIDs: []string{"M082", "M141"}, SuggestedEvidenceIDs: []string{"E20"}, Priority: 60,
|
||||||
RequiresExpertCalculation: true, ExpertHintDE: "A(8)-Bewertung nach LaeVibr erforderlich.",
|
RequiresExpertCalculation: true, ExpertHintDE: "A(8)-Bewertung nach LaeVibr erforderlich.",
|
||||||
ScenarioDE: "Vibrierende Handmaschinen (Schleifer, Bohrer)", TriggerDE: ">2h taegl. Exposition",
|
ScenarioDE: "Vibrierende Handmaschinen (Schleifer, Bohrer)", TriggerDE: ">2h taegl. Exposition",
|
||||||
HarmDE: "Weissfingerkrankheit, Nervenschaeden", AffectedDE: "Bedienpersonal", ZoneDE: "Handarbeitsplatz",
|
HarmDE: "Weissfingerkrankheit, Nervenschaeden", AffectedDE: "Bedienpersonal", ZoneDE: "Handarbeitsplatz",
|
||||||
DefaultSeverity: 3, DefaultExposure: 5},
|
DefaultSeverity: 3, DefaultExposure: 5},
|
||||||
{ID: "HP655", NameDE: "Ganzkoerpervibration auf Fahrersitz", NameEN: "Whole-body vibration driver seat",
|
{ID: "HP655", NameDE: "Ganzkoerpervibration auf Fahrersitz", NameEN: "Whole-body vibration driver seat",
|
||||||
RequiredComponentTags: []string{"vibration_source", "structural_part"}, GeneratedHazardCats: []string{"noise_vibration"},
|
RequiredComponentTags: []string{"vibration_source", "structural_part"}, GeneratedHazardCats: []string{"vibration_hazard"},
|
||||||
SuggestedMeasureIDs: []string{"M141"}, SuggestedEvidenceIDs: []string{"E20"}, Priority: 55,
|
SuggestedMeasureIDs: []string{"M141"}, SuggestedEvidenceIDs: []string{"E20"}, Priority: 55,
|
||||||
ScenarioDE: "Vibration uebertraegt sich auf Koerper", TriggerDE: "Defekte Sitzfederung, Unebenheiten",
|
ScenarioDE: "Vibration uebertraegt sich auf Koerper", TriggerDE: "Defekte Sitzfederung, Unebenheiten",
|
||||||
HarmDE: "Bandscheibenschaeden, LWS-Beschwerden", AffectedDE: "Fahrerpersonal", ZoneDE: "Fahrersitz",
|
HarmDE: "Bandscheibenschaeden, LWS-Beschwerden", AffectedDE: "Fahrerpersonal", ZoneDE: "Fahrersitz",
|
||||||
DefaultSeverity: 3, DefaultExposure: 5},
|
DefaultSeverity: 3, DefaultExposure: 5},
|
||||||
{ID: "HP656", NameDE: "Resonanzverstaerkung bei Drehzahl", NameEN: "Resonance amplification at RPM",
|
{ID: "HP656", NameDE: "Resonanzverstaerkung bei Drehzahl", NameEN: "Resonance amplification at RPM",
|
||||||
RequiredComponentTags: []string{"rotating_part", "vibration_source"},
|
RequiredComponentTags: []string{"rotating_part", "vibration_source"},
|
||||||
GeneratedHazardCats: []string{"noise_vibration", "mechanical_hazard"},
|
GeneratedHazardCats: []string{"vibration_hazard", "mechanical_hazard"},
|
||||||
SuggestedMeasureIDs: []string{"M082"}, SuggestedEvidenceIDs: []string{"E20"}, Priority: 55,
|
SuggestedMeasureIDs: []string{"M082"}, SuggestedEvidenceIDs: []string{"E20"}, Priority: 55,
|
||||||
ScenarioDE: "Resonanzfrequenz mit starker Vibration", TriggerDE: "Kritische Drehzahl",
|
ScenarioDE: "Resonanzfrequenz mit starker Vibration", TriggerDE: "Kritische Drehzahl",
|
||||||
HarmDE: "Bauteilbruch, Ermattungsrisse", AffectedDE: "Bedienpersonal", ZoneDE: "Rotierende Baugruppen",
|
HarmDE: "Bauteilbruch, Ermattungsrisse", AffectedDE: "Bedienpersonal", ZoneDE: "Rotierende Baugruppen",
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ var patternCategoryCompatibility = map[string]map[string]bool{
|
|||||||
"mechanical_hazard": {"mechanical": true},
|
"mechanical_hazard": {"mechanical": true},
|
||||||
"electrical_hazard": {"electrical": true},
|
"electrical_hazard": {"electrical": true},
|
||||||
"thermal_hazard": {"thermal": true, "material_environmental": true},
|
"thermal_hazard": {"thermal": true, "material_environmental": true},
|
||||||
|
"noise_hazard": {"noise_vibration": true, "ergonomic": true},
|
||||||
|
"vibration_hazard": {"noise_vibration": true, "ergonomic": true},
|
||||||
"noise_vibration": {"noise_vibration": true, "ergonomic": true},
|
"noise_vibration": {"noise_vibration": true, "ergonomic": true},
|
||||||
"pneumatic_hydraulic": {"pneumatic_hydraulic": true, "mechanical": true},
|
"pneumatic_hydraulic": {"pneumatic_hydraulic": true, "mechanical": true},
|
||||||
"material_environmental": {"material_environmental": true},
|
"material_environmental": {"material_environmental": true},
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ type PatternMatch struct {
|
|||||||
ApplicableLifecycles []string `json:"applicable_lifecycles,omitempty"`
|
ApplicableLifecycles []string `json:"applicable_lifecycles,omitempty"`
|
||||||
SuggestedMeasureIDs []string `json:"suggested_measure_ids,omitempty"`
|
SuggestedMeasureIDs []string `json:"suggested_measure_ids,omitempty"`
|
||||||
ClarificationQuestionsDE []string `json:"clarification_questions_de,omitempty"`
|
ClarificationQuestionsDE []string `json:"clarification_questions_de,omitempty"`
|
||||||
|
ISO12100Section string `json:"iso_12100_section,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// HazardSuggestion is a suggested hazard from pattern matching.
|
// HazardSuggestion is a suggested hazard from pattern matching.
|
||||||
@@ -224,6 +225,7 @@ func (e *PatternEngine) Match(input MatchInput) *MatchOutput {
|
|||||||
ApplicableLifecycles: p.ApplicableLifecycles,
|
ApplicableLifecycles: p.ApplicableLifecycles,
|
||||||
SuggestedMeasureIDs: p.SuggestedMeasureIDs,
|
SuggestedMeasureIDs: p.SuggestedMeasureIDs,
|
||||||
ClarificationQuestionsDE: p.ClarificationQuestionsDE,
|
ClarificationQuestionsDE: p.ClarificationQuestionsDE,
|
||||||
|
ISO12100Section: p.ISO12100Section,
|
||||||
})
|
})
|
||||||
|
|
||||||
for _, cat := range p.GeneratedHazardCats {
|
for _, cat := range p.GeneratedHazardCats {
|
||||||
|
|||||||
@@ -40,5 +40,6 @@ func collectAllPatterns() []HazardPattern {
|
|||||||
patterns = append(patterns, GetRobotCellPatterns()...) // HP1600-HP1649 Robot cell (GT benchmark)
|
patterns = append(patterns, GetRobotCellPatterns()...) // HP1600-HP1649 Robot cell (GT benchmark)
|
||||||
patterns = append(patterns, GetRobotCellPatternsExt()...) // HP1650-HP1699 Robot cell extended (GT gaps)
|
patterns = append(patterns, GetRobotCellPatternsExt()...) // HP1650-HP1699 Robot cell extended (GT gaps)
|
||||||
patterns = append(patterns, GetGTBremseHazardPatterns()...) // HP1710-HP1729 GT Bremse coverage gaps
|
patterns = append(patterns, GetGTBremseHazardPatterns()...) // HP1710-HP1729 GT Bremse coverage gaps
|
||||||
|
patterns = append(patterns, GetISO12100GapPatterns()...) // HP1900-HP1909 ISO 12100 Annex B gaps (Vakuum, Federn, Rutsch, Hochdruckinjektion, Ersticken)
|
||||||
return patterns
|
return patterns
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user