系统补充知识

特征配置中col_item 的解释逻辑

示例数据:
AA002,AA003,AA005,,&AA004,AA011,AA016,AA017,AB001,AB002,AA018,AA015

这段 col_item 会先用 & 分成“公共采集项”和“螺栓采集项”两部分:

1
2
3
AA002,AA003,AA005,,
&
AA004,AA011,AA016,AA017,AB001,AB002,AA018,AA015

第一部分:公共采集项

解析位置固定,对应关系来自 EquipCondContextLoader.java (line 48) 和具体 Loader 的 itemDefinition()

位置 配置值 参数名称 含义
0 AA002 result_identifier 结果编号
1 AA003 sn 产品 SN
2 AA005 tighten_status 拧紧状态
3 station_identifier 工位产品识别号,未配置
4 product_type 产品/机型类型,未配置

虽然代码使用的是普通 split(","),会丢弃末尾空字符串,但循环发现第 4、5 个位置不存在时,会自动补成 "",所以最终仍然是两个空参数。

假设当前设备编码是 EQUIP01,短采集项编码会补全为:

1
2
3
4
5
result_identifier = C-EQUIP01-AA002
sn = C-EQUIP01-AA003
tighten_status = C-EQUIP01-AA005
station_identifier = ""
product_type = ""

补全逻辑在 EquipCondContextLoader.java (line 85)

  • AA002 这种短编码,会转换成 C-{设备编码}-AA002
  • 如果本身已经是由 6 段组成的完整编码,则原样使用
  • 空字符串保持为空

第二部分:单螺栓采集项

这一部分先用分号 ; 分隔多个螺栓配置,再用逗号分隔每个螺栓的字段。当前没有分号,所以只配置了一个螺栓/轴。

按照 eccTorqueAngleSimplifyLoader 的解析规则:

位置 配置值 用途
0 AA004 程序名采集项,作为 boltItemMap 的 key
1 AA011 结果扭矩
2 AA016 螺栓开始时间戳
3 AA017 螺栓结束时间戳
4 AB001 扭矩曲线
5 AB002 角度曲线
6 AA018 螺栓位置编号/过程编号
7 AA015 结果角度

对应解析代码在 EccTorqueAngleSimplifyLoader.java (line 29)

补全设备编码后,写入计算上下文的 bolt 参数类似:

1
2
3
4
5
6
7
8
9
10
11
{
"C-EQUIP01-AA004": [
"C-EQUIP01-AA011",
"C-EQUIP01-AA016",
"C-EQUIP01-AA017",
"C-EQUIP01-AB001",
"C-EQUIP01-AB002",
"C-EQUIP01-AA018",
"C-EQUIP01-AA015"
]
}

后续计算时:

  • 使用 AA016AA017 切分每次拧紧的时间范围。
  • 使用 AA004 获取程序名并匹配模型参数。
  • 使用 AA018 获取螺栓过程/位置编号。
  • 使用 AA011 获取最终扭矩。
  • 使用 AB001AB002 获取扭矩和角度曲线。
  • 使用 AA015 获取最终角度,代码位置在 TorqueAngleSimplifyCalcStep.java (line 91)

需要注意:第 8 项 AA015 只有 eccTorqueAngleSimplifyLoader 会加入列表并用于计算最终角度。如果该特征模型的 loader_class 是旧的 eccTorqueAngleLoadereccTorqueLoader,这一项会被忽略。因此最终要结合 t_dict_feature_model.loader_class 确认。


系统补充知识
https://luischen.github.io/2026/08/13/manulism-work/20_Domain_Knowledge/22 曲线质量分析/09 系统补充知识/
作者
Luis Chen
发布于
2026年8月13日
许可协议