From 38d15d4d299f8161d3988061b2ce874acd7d2eed Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Fri, 15 May 2026 10:08:21 +0200 Subject: [PATCH] feat(iace): 5 differentiated patterns for GT duplicate scenarios When GT has two entries for the same zone with different scenarios (e.g. "eingeklemmt" vs "getroffen"), we need separate engine patterns. HP1700: Getroffen von bewegtem Werkzeug/Greifer (vs HP1652 eingeklemmt) HP1701: Greifer/Werkzeug durchschlaegt Zaun (vs HP1654 Werkstueck) HP1702: KSS-Schlauch platzt (vs HP1675 springt ab) HP1703: KSS-Bettspuelung bei offener Tuer (vs HP1670 allgemein) HP1704: Brand durch KSS auf elektrische Komponenten Extended synonym sets for potential/EMV matching. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../internal/iace/benchmark_synonyms.go | 5 +- .../iace/hazard_patterns_robot_cell_ext.go | 74 +++++++++++++++++++ 2 files changed, 77 insertions(+), 2 deletions(-) diff --git a/ai-compliance-sdk/internal/iace/benchmark_synonyms.go b/ai-compliance-sdk/internal/iace/benchmark_synonyms.go index 163bb5ca..4553dcac 100644 --- a/ai-compliance-sdk/internal/iace/benchmark_synonyms.go +++ b/ai-compliance-sdk/internal/iace/benchmark_synonyms.go @@ -38,8 +38,9 @@ var synonymSets = [][]string{ {"spritzer", "auge", "augenverletz"}, {"bersten", "platzen", "abspring"}, {"durchschlag", "durchbrech", "begrenz", "bewegungsbereich"}, - {"potentialausgleich", "potentialunter", "bezugspotential"}, - {"kriechstreck", "luft-", "kriechst", "dimensionie"}, + {"potentialausgleich", "potentialunter", "bezugspotential", "potential", "energieversorgung"}, + {"kriechstreck", "luft-", "kriechst", "dimensionie", "kurzschluss"}, + {"emv", "elektromagnet", "stoereinfluss", "stoerung", "sicherheitsrelevant"}, {"kuehlschmierstoff", "kss", "bettspuel", "kuehlung"}, {"rutsch", "ausrutsch", "stolper", "gleiten", "nassrutsch"}, } diff --git a/ai-compliance-sdk/internal/iace/hazard_patterns_robot_cell_ext.go b/ai-compliance-sdk/internal/iace/hazard_patterns_robot_cell_ext.go index 5f945379..51583cd1 100644 --- a/ai-compliance-sdk/internal/iace/hazard_patterns_robot_cell_ext.go +++ b/ai-compliance-sdk/internal/iace/hazard_patterns_robot_cell_ext.go @@ -395,5 +395,79 @@ func GetRobotCellPatternsExt() []HazardPattern { ZoneDE: "Bearbeitungsbereich, sicherheitsrelevante Steuerungen", DefaultSeverity: 3, DefaultExposure: 2, }, + // ================================================================ + // Differenzierte Patterns (GT-Benchmark: gleiche Zone, anderes Szenario) + // ================================================================ + { + ID: "HP1700", NameDE: "Getroffen von bewegtem Werkzeug/Greifer am Roboter", NameEN: "Struck by moving tool/gripper on robot", + RequiredComponentTags: []string{"moving_part", "clamping_part"}, + GeneratedHazardCats: []string{"mechanical_hazard"}, + SuggestedMeasureIDs: []string{"M054", "M061"}, + Priority: 94, + ApplicableLifecycles: []string{"normal_operation", "setup", "teach_mode", "cleaning"}, + ScenarioDE: "Person steht im Bewegungsbereich des Roboterarms und wird von bewegtem Werkzeug oder Greifer getroffen.", + TriggerDE: "Roboter schwenkt mit Werkzeug/Greifer in Richtung Person.", + HarmDE: "Prellungen, Schnittverletzungen durch Werkzeugkanten, Knochenbrueche.", + AffectedDE: "Bedienpersonal, Einrichter", + ZoneDE: "Inneres der Roboterzelle, Schwenkbereich Werkzeug/Greifer", + DefaultSeverity: 3, DefaultExposure: 3, + }, + { + ID: "HP1701", NameDE: "Greifer/Werkzeug durchschlaegt Schutzzaun", NameEN: "Gripper/tool penetrates safety fence", + RequiredComponentTags: []string{"clamping_part", "guard"}, + GeneratedHazardCats: []string{"mechanical_hazard"}, + SuggestedMeasureIDs: []string{"M061"}, + Priority: 92, + ApplicableLifecycles: []string{"normal_operation", "setup", "changeover"}, + ScenarioDE: "Greifer oder Werkzeug am Roboterarm durchschlaegt den Schutzzaun und trifft Person ausserhalb der Zelle.", + TriggerDE: "Bewegungsbegrenzung versagt, Schutzzaun nicht auf Aufprallenergie ausgelegt.", + HarmDE: "Person ausserhalb wird von Greifer/Werkzeug oder Zaunteilen getroffen.", + AffectedDE: "Bedienpersonal in der Naehe des Schutzzauns", + ZoneDE: "Bereich um Roboterarm ausserhalb der Roboterzelle", + DefaultSeverity: 3, DefaultExposure: 2, + }, + { + ID: "HP1702", NameDE: "KSS-Schlauch platzt unter Druck", NameEN: "Coolant hose bursts under pressure", + RequiredComponentTags: []string{}, + GeneratedHazardCats: []string{"mechanical_hazard"}, + SuggestedMeasureIDs: []string{"M420"}, + Priority: 90, MachineTypes: []string{"cnc", "metalworking", "automotive"}, + ApplicableLifecycles: []string{"normal_operation", "maintenance", "fault_clearing"}, + ScenarioDE: "Schlauch der Kuehlschmierstoffversorgung platzt und spritzt KSS unter Druck in die Umgebung.", + TriggerDE: "Alterung, Beschaedigung oder Ueberdruck fuehrt zum Versagen des Schlauchs.", + HarmDE: "Einstichverletzung durch KSS-Strahl unter Druck, Augenverletzung, Rutschgefahr.", + AffectedDE: "Bedienpersonal, Wartungspersonal", + ZoneDE: "Druckschlaeuche des Kuehlschmierstoffsystems", + DefaultSeverity: 2, DefaultExposure: 2, + }, + { + ID: "HP1703", NameDE: "KSS-Bettspuelung bei geoeffneter Schutztuer", NameEN: "Coolant bed wash with open guard door", + RequiredComponentTags: []string{}, + GeneratedHazardCats: []string{"mechanical_hazard"}, + SuggestedMeasureIDs: []string{"M061"}, + Priority: 90, MachineTypes: []string{"cnc", "metalworking", "automotive"}, + ApplicableLifecycles: []string{"normal_operation", "cleaning", "maintenance", "fault_clearing"}, + ScenarioDE: "Bettspuelung oder Kuehlschmierstoffpumpe laeuft waehrend die Schutztuer des Bearbeitungszentrums geoeffnet ist.", + TriggerDE: "Kein automatisches Abschalten der KSS-Pumpe bei geoeffneter Tuer.", + HarmDE: "KSS-Spritzer in Augen oder Gesicht, Rutschgefahr durch austretenden KSS.", + AffectedDE: "Bedienpersonal, Wartungspersonal", + ZoneDE: "Inneres des Bearbeitungszentrums, Bereich vor der Schutztuer", + DefaultSeverity: 1, DefaultExposure: 3, + }, + { + ID: "HP1704", NameDE: "Brand durch KSS-Leckage auf elektrische Komponenten", NameEN: "Fire from coolant leakage on electrical components", + RequiredComponentTags: []string{}, + RequiredEnergyTags: []string{"electrical"}, + GeneratedHazardCats: []string{"electrical_hazard"}, + SuggestedMeasureIDs: []string{"M420", "M009"}, + Priority: 92, MachineTypes: []string{"cnc", "metalworking", "automotive"}, + ApplicableLifecycles: []string{"normal_operation", "cleaning", "maintenance"}, + ScenarioDE: "Kuehlschmierstoff tritt aus Leckage aus und gelangt auf spannungsfuehrende Teile oder in den Schaltschrank.", + TriggerDE: "KSS-Leitung undicht oberhalb elektrischer Komponenten, tropft auf Klemmen oder Leiterplatten.", + HarmDE: "Kurzschluss, Brand, Rauchentwicklung.", + AffectedDE: "Bedienpersonal", + ZoneDE: "Spannungsfuehrende Teile unterhalb/angrenzend von KSS-Leitungen", + DefaultSeverity: 3, DefaultExposure: 2, + }, } }