Files
breakpilot-compliance/ai-compliance-sdk/internal/iace/measures_library_lift_endstop.go
T
Benjamin Admin 0f443b6a9c fix(iace): roadmap group B — citation/license/tier cleanup
C1: drop the misleading OSHA §1910.212(a)(5) fan-guard citation from M602
    (overhead lift clearance) — EN 349 + EN ISO 13854 already cover it.
C2: frame M237's 25/500 mm as Richtwerte to be determined per EN ISO 13854
    (single factual values in prose are facts, not table reproduction — but
    keep the conservative caveat).
C3: keep ergonomic W=2 deliberately and document why — ESAW ranks it the most
    frequent non-fatal mode (24.7%) but that population doesn't transfer to an
    acute machine point-hazard; the machine GT governs.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-11 15:21:25 +02:00

183 lines
8.8 KiB
Go

package iace
// Lift / hoist / scissor-lift endstop mitigations — bridges the OSHA
// minimum-distance library (minimum_distances.go, Task #18) into the
// pattern-engine measure library. Each entry cites the concrete OSHA
// value AND its EU-norm pendant by identifier only.
//
// Engineering rounding values come from MD_OSHA_* IDs in
// minimum_distances.go. We do not duplicate the source text here —
// the Tech-File renderer can join MD_OSHA_* into the rendered text
// at output time.
func getLiftEndstopMeasures() []ProtectiveMeasureEntry {
return []ProtectiveMeasureEntry{
// M600 — Cruise/creep speed at end of travel
{
ID: "M600",
ReductionType: "protection",
SubType: "speed_control",
Name: "Kriechgeschwindigkeit am Endanschlag (Hubgeraete)",
Description: "Hubgeschwindigkeit am Ende der Verfahrbewegung (oben und unten) auf maximal 15 mm/s " +
"reduzieren. OSHA 29 CFR 1910.217 Hand-Speed-Konstante 63 in/s = 1.600 mm/s als Obergrenze " +
"fuer Stopp-Reaktionszeit. Damit ist auch bei spaeter Auslosung der Quetsch-Schaltleiste " +
"genug Bremsweg vorhanden.",
HazardCategory: "mechanical",
Examples: []string{
"Hub-Endschalter mit Soft-Stop und Geschwindigkeitsstufe < 15 mm/s in den letzten 50 mm",
"Servo-Antrieb mit Ramp-down-Profil ueber die letzten 100 mm Verfahrweg",
"Drehzahl-Begrenzer im Frequenzumrichter mit Endlagen-Trigger",
},
NormReferences: []string{
"OSHA 29 CFR 1910.217 (Ds = 63 in/s x Ts)",
"EN ISO 13855 (Anordnung von Schutzeinrichtungen)",
"EN 1570-1 (Hubtische — Bauanforderungen)",
},
RiskReduction: &RiskReduction{SeverityDelta: -1, ExposureDelta: -1, ProbabilityDelta: -1},
Tags: []string{"crush_point", "gravity_risk", "speed_limit"},
},
// M601 — Trip-edge sensor under platform (safety bumper)
{
ID: "M601",
ReductionType: "protection",
SubType: "safety_device",
Name: "Quetsch-Schaltleiste unterhalb der Hubplattform",
Description: "Druckempfindliche Schaltleiste (gemaess EN ISO 13856-2) am unteren Rand der Hubplattform " +
"loest bei Beruehrung den Hubantrieb sofort aus und kehrt die Bewegung um. Verhindert Quetschung " +
"von Fuessen oder Beinen unter absenkender Last. PL c oder hoeher nach EN ISO 13849-1.",
HazardCategory: "mechanical",
Examples: []string{
"Schaltleiste umlaufend an Bodenkante der Hubplattform",
"Trittschutz mit redundanter Auswertung am Hubtisch",
"Lichtgitter im Bodenbereich als Ergaenzung bei freistehenden Anlagen",
},
NormReferences: []string{
"EN ISO 13856-2 (Schaltleisten)",
"EN ISO 13849-1 (PL-Bestimmung)",
"EN 1570-1",
},
RiskReduction: &RiskReduction{SeverityDelta: -2, ExposureDelta: -2, ProbabilityDelta: -2},
Tags: []string{"crush_point", "gravity_risk", "safety_device"},
},
// M602 — Minimum clearance to fixed structure above max lift position
{
ID: "M602",
ReductionType: "design",
SubType: "geometry",
Name: "Mindestabstand zu festen Strukturen oberhalb der Hubendlage",
Description: "Zwischen hoechstem Punkt der Hubeinheit (mit beladenem Werkstueck) und festen Strukturen " +
"oberhalb (Decke, Vorbau, Querbalken) muss ein Sicherheitsabstand verbleiben, der das Quetschen " +
"von Haenden und Koerper verhindert. Empfehlung: 120 mm fuer Kopf, 100 mm fuer Hand, 25 mm fuer " +
"Finger — abgeleitet aus EN 349 / EN ISO 13854 unabhaengig zu pruefen.",
HazardCategory: "mechanical",
Examples: []string{
"Konstruktive Begrenzung der oberen Hubposition durch mechanischen Anschlag",
"Software-Endlage mit redundantem Hardware-Sicherheitsschalter",
"Auslegungs-Pruefung mit beladener Standard-Palette und Maximal-Hubhoehe",
},
NormReferences: []string{
"EN 349 (Mindestabstaende gegen Quetschen von Koerperteilen)",
"EN ISO 13854 (Mindestabstaende gegen Quetschen)",
},
RiskReduction: &RiskReduction{SeverityDelta: -2, ExposureDelta: -1},
Tags: []string{"crush_point", "gravity_risk"},
},
// M603 — Hold-to-run with two-hand operation for manual descent
{
ID: "M603",
ReductionType: "protection",
SubType: "control_device",
Name: "Tippbetrieb / Hold-to-run beim Absenken (mit Verifikations-Nachweis)",
Description: "Absenken nur im Tippbetrieb (Hold-to-run): Bedientaster muss waehrend des gesamten " +
"Absenkvorgangs gedrueckt gehalten werden. Bei Loslassen stoppt die Bewegung sofort. " +
"Im bodennahen Bereich (Empfehlung: unter 200 mm Bodenabstand) ist das Absenken nur im " +
"Tippbetrieb mit zusaetzlich reduzierter Geschwindigkeit (Empfehlung: <= 75 mm/s) zulaessig. " +
"Im Limits-Form als 'Tippbetrieb' deklariert — durch Tests verifizieren (Stop-Reaktionszeit " +
"<= 0,3 s im voll beladenen Zustand).",
HazardCategory: "mechanical",
Examples: []string{
"Tipptaster mit elektrischer Selbstrueckstellung",
"Zweihand-Bedienung fuer kritische Absenk-Bereiche (Tipp + Zustimmtaster)",
"Pruefprotokoll Stop-Zeit gemaess EN ISO 13849-1 PL c",
},
NormReferences: []string{
"EN ISO 13849-1 (Sicherheitsbezogene Steuerungsteile)",
"EN ISO 13851 (Zweihandschaltungen)",
"BetrSichV § 4 (Schutzmassnahmen)",
},
RiskReduction: &RiskReduction{SeverityDelta: -1, ExposureDelta: -2, ProbabilityDelta: -1},
Tags: []string{"crush_point", "gravity_risk", "control_device"},
},
// M604 — Underrun guard / kick plate at platform base
{
ID: "M604",
ReductionType: "design",
SubType: "geometry",
Name: "Trittblech / Unterfahrschutz an der Hubplattform",
Description: "Unter der Hubplattform befindet sich ein umlaufendes Trittblech oder Unterfahrschutz, " +
"das das Hineinfahren von Fuessen unter die Plattform mechanisch verhindert. Hoehe ueber Boden " +
"maximal 5 mm in unterster Stellung. Trittblech haelt die Last eines Schuhs (mind. 150 kg) " +
"ohne Verformung.",
HazardCategory: "mechanical",
Examples: []string{
"Umlaufendes Stahlblech 3 mm Wandstaerke mit Fasen-Kante",
"Kombination mit M601 (Schaltleiste) als doppelte Sicherung",
"Pruefung jaehrlich auf Verformung und Funktion der Auflage",
},
NormReferences: []string{
"EN 1570-1 (Hubtische)",
"EN ISO 13857 (Sicherheitsabstaende)",
},
RiskReduction: &RiskReduction{SeverityDelta: -2, ExposureDelta: -1},
Tags: []string{"crush_point", "gravity_risk"},
},
// M605 — Inherently limited general lift/lower speed (by drive design)
{
ID: "M605",
ReductionType: "design",
SubType: "force_energy",
Name: "Konstruktiv begrenzte Hub-/Senkgeschwindigkeit",
Description: "Die generelle Hub- und Senkgeschwindigkeit ist durch die Antriebsauslegung " +
"(z. B. Schneckengetriebe, Drehzahlbegrenzung im Frequenzumrichter) inhaerent begrenzt " +
"(Empfehlung fuer manuell zugaengliche Hubgeraete: <= 150 mm/s), sodass Personen " +
"Bewegungen rechtzeitig erkennen und ausweichen koennen. Ergaenzt die endlagennahe " +
"Kriechgeschwindigkeit (M600).",
HazardCategory: "mechanical",
Examples: []string{
"Schneckengetriebe begrenzt Hub/Senk konstruktiv auf <= 150 mm/s",
"Frequenzumrichter mit fest parametrierter Maximaldrehzahl",
"Hydraulik mit Stromregelventil zur Geschwindigkeitsbegrenzung",
},
NormReferences: []string{
"EN 1570-1 (Hubtische — Bauanforderungen)",
"EN ISO 13849-1 (sicher reduzierte Geschwindigkeit)",
},
RiskReduction: &RiskReduction{ExposureDelta: -1, ProbabilityDelta: -1},
Tags: []string{"crush_point", "gravity_risk", "speed_limit"},
},
// M606 — Limited uncontrolled descent on power/energy loss
{
ID: "M606",
ReductionType: "design",
SubType: "control_design",
Name: "Begrenztes Absenken bei Energieausfall (Lasthalteeinrichtung)",
Description: "Bei Spannungs-/Energieausfall haelt eine Lasthalteeinrichtung (Senkbremsventil, " +
"Rohrbruchsicherung, selbsthemmendes Getriebe, mechanische Ruecklaufsperre) die Last; " +
"ein etwaiges Nachsetzen ist auf ein ungefaehrliches Mass begrenzt (Empfehlung: <= 100 mm). " +
"Verhindert schlagartiges Absacken auf darunter befindliche Koerperteile.",
HazardCategory: "mechanical",
Examples: []string{
"Senkbremsventil direkt am Hydraulikzylinder (max. ~100 mm Nachsetzen)",
"Selbsthemmendes Schneckengetriebe ohne Rueckdrehen",
"Mechanische Ruecklaufsperre / Fangvorrichtung am Hubschlitten",
},
NormReferences: []string{
"EN 1570-1 (Hubtische)",
"EN ISO 12100 (Energieausfall — sichere Zustaende)",
},
RiskReduction: &RiskReduction{SeverityDelta: -2, ProbabilityDelta: -1},
Tags: []string{"crush_point", "gravity_risk", "energy_isolation"},
},
}
}