feat: IACE SIL/PL calculator + Cobot patterns + library extensions

SIL/PL Calculator: Deterministic S×E×P → PL (a-e) → SIL (1-3) mapping
Cobot Patterns (HP059-HP065): Human-robot collision, afterrun, misprogramming
Press Patterns split into separate file (500-line guardrail)
5 new components (C136-C140), 5 new tags, 18 keyword entries

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-05-05 09:29:03 +02:00
parent ea8353f1a0
commit 8dd1581fae
9 changed files with 430 additions and 150 deletions
@@ -126,6 +126,27 @@ func GetKeywordDictionary() []KeywordEntry {
{Keywords: []string{"luefter", "fan", "geblaese"}, ComponentIDs: []string{"C096"}, ExtraTags: []string{"rotating_part", "noise_source"}},
{Keywords: []string{"spannvorrichtung", "fixture", "clamp"}, ComponentIDs: []string{"C100"}, ExtraTags: []string{"clamping_part"}},
// ── Cobot / Kollaborativer Betrieb ──────────────────────────────
{Keywords: []string{"kollaborier", "kollaboration", "collaborative"}, ComponentIDs: []string{"C139"}, ExtraTags: []string{"collaborative_operation", "force_limited"}},
{Keywords: []string{"cobot"}, ComponentIDs: []string{"C139"}, ExtraTags: []string{"collaborative_operation"}},
{Keywords: []string{"endeffektor", "end effector", "werkzeug am roboter"}, ComponentIDs: []string{"C136"}, ExtraTags: []string{"tool_at_robot"}},
{Keywords: []string{"werkstueck", "workpiece"}, ComponentIDs: []string{"C137"}, ExtraTags: []string{"variable_workpiece"}},
{Keywords: []string{"sicherheitsscanner", "safety scanner"}, ComponentIDs: []string{"C138"}, ExtraTags: []string{"safety_device"}},
{Keywords: []string{"kraftsensor", "momentsensor", "force sensor", "torque sensor"}, ComponentIDs: []string{"C140"}, ExtraTags: []string{"force_limited"}},
{Keywords: []string{"nachlauf", "afterrun"}, ExtraTags: []string{"afterrun_risk"}},
{Keywords: []string{"traglast", "payload"}, ExtraTags: []string{"gravity_risk"}},
{Keywords: []string{"reichweite", "reach"}, ExtraTags: []string{"moving_part"}},
// ── Elektromotor-spezifisch ────────────────────────────────────
{Keywords: []string{"elektromotor", "electric motor", "asynchronmotor", "synchronmotor"}, ComponentIDs: []string{"C031"}, EnergyIDs: []string{"EN02", "EN05"}, ExtraTags: []string{"rotating_part"}},
{Keywords: []string{"wicklung", "winding", "stator", "rotor"}, ComponentIDs: []string{"C031"}, EnergyIDs: []string{"EN05"}, ExtraTags: []string{"rotating_part", "high_voltage"}},
{Keywords: []string{"lager", "bearing", "waelzlager", "kugellager"}, ComponentIDs: []string{"C013"}, ExtraTags: []string{"rotating_part"}},
{Keywords: []string{"luefter", "ventilator", "kuehlung"}, ComponentIDs: []string{"C096"}, ExtraTags: []string{"rotating_part", "noise_source"}},
{Keywords: []string{"klemmenkasten", "terminal box"}, ComponentIDs: []string{"C061"}, EnergyIDs: []string{"EN05"}, ExtraTags: []string{"high_voltage"}},
{Keywords: []string{"welle", "shaft", "abtriebswelle"}, ComponentIDs: []string{"C031"}, EnergyIDs: []string{"EN02"}, ExtraTags: []string{"rotating_part", "entanglement_risk"}},
{Keywords: []string{"drehmoment", "torque"}, EnergyIDs: []string{"EN02"}, ExtraTags: []string{"high_force", "rotating_part"}},
{Keywords: []string{"isolierung", "insulation"}, ExtraTags: []string{"high_voltage"}},
// ── Kontext-Keywords (keine Komponente, nur Tags) ───────────────
{Keywords: []string{"vollautomatisch", "automatisch"}, ExtraTags: []string{"auto_operation"}},
{Keywords: []string{"schutzausruestung", "psa", "ppe"}, ExtraTags: []string{"ppe_required"}},