2677bca9ca
CI / detect-changes (push) Successful in 7s
CI / branch-name (push) Has been skipped
CI / guardrail-integrity (push) Has been skipped
CI / secret-scan (push) Has been skipped
CI / dep-audit (push) Has been skipped
CI / sbom-scan (push) Has been skipped
CI / build-sha-integrity (push) Failing after 4s
CI / validate-canonical-controls (push) Successful in 11s
CI / loc-budget (push) Failing after 14s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / nodejs-build (push) Successful in 2m23s
CI / test-go (push) Failing after 37s
CI / iace-gt-coverage (push) Successful in 24s
CI / test-python-backend (push) Has been skipped
CI / test-python-document-crawler (push) Has been skipped
CI / test-python-dsms-gateway (push) Has been skipped
#1 Risk-number comparison in the benchmark: ComputeRiskComparison derives the tool's S/F/W/P + Fine-Kinney per matched hazard and compares to the GT values; exposed on the benchmark response and rendered in a new RiskComparison table with GREEN/YELLOW/RED traffic lights on the risk number R (like the Excel), plus per-axis within-1 agreement cards. #2 Generic misuse pattern HP2103 "Personenbefoerderung auf Hebezeug" — gated to lift-family machine types, fires for ANY lifting device (not machine-specific). #3 Benchmark matcher is now 1:n — one broad engine hazard may cover several fine-grained GT sub-scenarios (foot/hand/leg crush), so coverage reflects real risk coverage rather than 1:1 wording matches. Validated on BOTH ground truths (robot cell + lift): leakage 0, ghosts 0, coverage held. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
123 lines
6.8 KiB
Go
123 lines
6.8 KiB
Go
package iace
|
|
|
|
// Body-part-specific crush hazards at lift / hoist / scissor-lift endstops.
|
|
// Bridges the gap that the Kistenhubgeraet re-init exposed: the abstract
|
|
// "Bremse versagt bei Absenkbewegung" pattern fires, but the concrete
|
|
// "Fuss unter absenkender Hubplattform" body-part variant did not exist.
|
|
//
|
|
// Each pattern restricts to lift-family machine types via MachineTypes,
|
|
// so a press / CNC / textile project does not pick them up. Mitigations
|
|
// reference the new M600-M604 (lift endstop) library plus the existing
|
|
// M001 (geometry), M002 (safety distance), M141 (warning sign).
|
|
|
|
func GetLiftEndstopPatterns() []HazardPattern {
|
|
liftTypes := []string{"lift", "hoist", "elevator", "scissor_lift"}
|
|
return []HazardPattern{
|
|
{
|
|
ID: "HP2100",
|
|
NameDE: "Fuss-Quetschung unter absenkender Hubplattform am Bodenanschlag",
|
|
NameEN: "Foot crush under descending lift platform at floor stop",
|
|
RequiredComponentTags: []string{"crush_point", "gravity_risk", "person_under_load"},
|
|
RequiredEnergyTags: []string{"gravitational"},
|
|
MachineTypes: liftTypes,
|
|
GeneratedHazardCats: []string{"mechanical_hazard"},
|
|
SuggestedMeasureIDs: []string{"M600", "M601", "M604", "M141"},
|
|
Priority: 92,
|
|
ScenarioDE: "Fuss oder Bein des Bedieners gelangt waehrend des Absenkvorgangs unter die " +
|
|
"Hubplattform. Bei Erreichen der unteren Endlage wird der Fuss zwischen Plattform " +
|
|
"und Boden gequetscht.",
|
|
TriggerDE: "Unsachgemaesse Position des Bedieners beim Be-/Entladen, fehlende Schaltleiste, fehlender Trittschutz",
|
|
HarmDE: "Fussquetschung, Mittelfussfraktur, Zehenamputation",
|
|
AffectedDE: "Bediener, Wartungspersonal",
|
|
ZoneDE: "Bodenbereich unter Hubplattform, umlaufende Spalte",
|
|
DefaultSeverity: 4,
|
|
DefaultExposure: 3,
|
|
DefaultAvoidability: 2,
|
|
ISO12100Section: "6.3.5.5 Quetschen — Mindestabstaende",
|
|
ClarificationQuestionsDE: []string{
|
|
"Ist eine umlaufende Quetsch-Schaltleiste an der Plattformunterkante verbaut?",
|
|
"Ist die Hubgeschwindigkeit am unteren Endanschlag auf <=15 mm/s reduziert (siehe M600)?",
|
|
"Verhindert ein Trittblech / Unterfahrschutz das Hineinfahren von Fuessen?",
|
|
},
|
|
},
|
|
{
|
|
ID: "HP2103",
|
|
NameDE: "Bestimmungswidrige Personenbefoerderung auf Hebezeug",
|
|
NameEN: "Misuse: transporting persons on a lifting device",
|
|
RequiredComponentTags: []string{"gravity_risk"},
|
|
RequiredEnergyTags: []string{"gravitational"},
|
|
MachineTypes: liftTypes,
|
|
GeneratedHazardCats: []string{"mechanical_hazard"},
|
|
SuggestedMeasureIDs: []string{"M601", "M141"},
|
|
Priority: 90,
|
|
ScenarioDE: "Die Hebevorrichtung wird bestimmungswidrig zum Heben oder Befoerdern von " +
|
|
"Personen verwendet (z.B. Mitfahren auf der Plattform). Absturz aus der Hoehe oder " +
|
|
"Quetschen bei unkontrollierter Bewegung.",
|
|
TriggerDE: "Fehlendes Verbotsschild, keine konstruktive Verhinderung (z.B. zu kleine Standflaeche/Haltepunkte), unzureichende Unterweisung",
|
|
HarmDE: "Absturz aus der Hoehe, schwere Verletzungen, Tod",
|
|
AffectedDE: "Bediener, Dritte",
|
|
ZoneDE: "Hubplattform / Lastaufnahme",
|
|
DefaultSeverity: 4,
|
|
DefaultExposure: 1,
|
|
DefaultAvoidability: 2,
|
|
ISO12100Section: "6.4.5 Vernuenftigerweise vorhersehbare Fehlanwendung",
|
|
ClarificationQuestionsDE: []string{
|
|
"Ist ein Verbotsschild 'Personenbefoerderung verboten' (EN ISO 7010 P-Zeichen) angebracht?",
|
|
"Verhindert die Konstruktion das Mitfahren (z.B. zu kleine Standflaeche, keine Haltepunkte)?",
|
|
},
|
|
},
|
|
{
|
|
ID: "HP2101",
|
|
NameDE: "Hand- oder Koerper-Quetschung gegen feste Struktur beim Hochfahren der Hubeinheit",
|
|
NameEN: "Hand or body crush against fixed structure during lift upward travel",
|
|
RequiredComponentTags: []string{"crush_point", "gravity_risk"},
|
|
RequiredEnergyTags: []string{"gravitational"},
|
|
MachineTypes: liftTypes,
|
|
GeneratedHazardCats: []string{"mechanical_hazard"},
|
|
SuggestedMeasureIDs: []string{"M602", "M603", "M600", "M141"},
|
|
Priority: 90,
|
|
ScenarioDE: "Beim Hochfahren der Last gelangen Hand oder Koerperteile des Bedieners " +
|
|
"zwischen die hoechste Position der Hubeinheit (z.B. mit beladener Palette) und " +
|
|
"eine feste Struktur oberhalb (Decke, Vorbau, Querbalken einer umschliessenden Anlage).",
|
|
TriggerDE: "Eingriff in den Verfahrweg waehrend Hubvorgang, fehlende konstruktive Begrenzung der Endlage",
|
|
HarmDE: "Hand- oder Armquetschung, im Extremfall Brustkorbkompression",
|
|
AffectedDE: "Bediener, Einrichter, Wartungspersonal",
|
|
ZoneDE: "Oberhalb hoechster Hubposition, Vorbau/Decke der umschliessenden Anlage",
|
|
DefaultSeverity: 4,
|
|
DefaultExposure: 2,
|
|
DefaultAvoidability: 2,
|
|
ISO12100Section: "6.3.5.5 Quetschen — Mindestabstaende",
|
|
ClarificationQuestionsDE: []string{
|
|
"Welcher Mindestabstand zu festen Strukturen oberhalb der hoechsten Hubposition ist gegeben? (Empfehlung: 120 mm fuer Kopf, 100 mm fuer Hand)",
|
|
"Ist der Tippbetrieb (Hold-to-run) durch ein Testprotokoll mit Stop-Zeit-Messung verifiziert?",
|
|
"Existiert eine redundante Hardware-Endlage zusaetzlich zur Software-Begrenzung?",
|
|
},
|
|
},
|
|
{
|
|
ID: "HP2102",
|
|
NameDE: "Quetschung Bein/Koerper zwischen Hubeinheit und seitlicher Struktur",
|
|
NameEN: "Leg/body crush between lift unit and lateral structure",
|
|
RequiredComponentTags: []string{"crush_point", "gravity_risk", "moving_part"},
|
|
RequiredEnergyTags: []string{"gravitational"},
|
|
MachineTypes: liftTypes,
|
|
GeneratedHazardCats: []string{"mechanical_hazard"},
|
|
SuggestedMeasureIDs: []string{"M602", "M601", "M141"},
|
|
Priority: 85,
|
|
ScenarioDE: "Person befindet sich seitlich neben der Hubeinheit und wird waehrend " +
|
|
"der Bewegung gegen eine feste Struktur (Regalwand, Stuetze, andere Anlage) gequetscht.",
|
|
TriggerDE: "Aufenthalt in Quetschzone bei Bewegung, fehlende Absperrung",
|
|
HarmDE: "Beinfraktur, Beckenquetschung",
|
|
AffectedDE: "Bediener, vorbeigehende Personen",
|
|
ZoneDE: "Seitlicher Bereich neben Hubeinheit, Lichte Weite zu festen Strukturen",
|
|
DefaultSeverity: 4,
|
|
DefaultExposure: 2,
|
|
DefaultAvoidability: 2,
|
|
ISO12100Section: "6.3.5.5 Quetschen — Mindestabstaende",
|
|
ClarificationQuestionsDE: []string{
|
|
"Welcher Sicherheitsabstand zu seitlichen festen Strukturen ist gegeben (Empfehlung 500 mm Koerperdurchgang)?",
|
|
"Ist der Bereich seitlich der Hubeinheit als Gefahrenzone markiert oder abgeschrankt?",
|
|
},
|
|
},
|
|
}
|
|
}
|