4. PI AF属性数据引用与映射

在 PI AF 中,属性(Attribute)本身只是“容器”,真正决定它取什么值的是数据引用(Data Reference)。同一个属性,可以指向一个 PI Point 的实时值,也可以引用另一个属性的结果,还可以通过公式、表查找或字符串拼接动态生成。理解数据引用的类型与映射关系,是构建可维护 AF 模型的核心能力。

一、六类常用数据引用

AF 属性支持多种数据引用,本节聚焦最常用的六类:

  • PI Point 数据引用:属性直接绑定一个 PI Point,读取其当前值或归档值。这是最基础、最常用的引用方式,配置时需指定 Point 名称、可选的数据源(如 PI)以及是否使用 UOM 转换。
  • 属性间引用(Attribute Reference):属性值来自同一元素或关联元素中的另一个属性。例如“出口温度”引用“入口温度”做差值计算,或“效率”引用“功率”与“流量”。
  • 公式数据引用(Formula):在属性中直接写表达式,如 '功率' / '流量',支持四则运算、函数(如 Avg()、Sin())和条件判断。公式中引用其他属性时用单引号包裹属性名。
  • 表查找数据引用(Table Lookup):根据输入值在 AF 表中查找对应结果。典型场景是“温度—密度”对照表、设备型号—额定参数表。配置时需指定表名、查找列、返回列以及输入属性。
  • 字符串数据引用(String Builder):将多个字符串或属性拼接成一个字符串,常用于生成设备位号、路径或状态描述,如 Concat('区域', '-', '设备号')。
  • 属性映射到 PI Point:与“PI Point 数据引用”方向相反——把 AF 属性的计算结果写回 PI Point,实现“AF 计算、PI 存储”。这需要配置输出属性并启用写回。

这六类引用并非互斥,实际模型中常组合使用:公式引用属性,属性引用 PI Point,表查找再引用公式结果。下图展示了它们之间的数据流向与依赖关系。

AF 属性数据引用关系图 PI Point 实时值 / 归档值 属性A PI Point 数据引用 属性B 属性间引用 属性C 公式数据引用 属性D 表查找数据引用 AF 表 温度—密度对照 属性E 字符串数据引用 PI Point 写回 属性映射到 PI Point PI Point 引用 属性间引用 公式引用 表查找 字符串引用 写回 PI Point

二、属性映射到 PI Point 的写回机制

“属性映射到 PI Point”解决的是计算结果持久化问题。AF 中公式计算出的值默认只存在于 AF 内存或缓存中,若希望它像普通 PI Point 一样被归档、被其他系统读取,就需要把该属性映射到一个 PI Point 并启用写回。

配置要点:在属性配置界面选择“PI Point”数据引用,指定目标 Point 名称,并勾选“Output”或“Write to PI Point”选项。写回频率由 AF 分析(Analysis)或属性计算触发决定。例如,一个“效率”属性由公式 '功率' / ('流量' * 4.186 * ('出口温度' - '入口温度')) 计算得出,若将其映射到 PI Point Boiler.Efficiency,则每次分析运行时该 Point 会收到新值。

写回前需确认目标 PI Point 存在且当前用户有写入权限;若 Point 不存在,AF 分析会报错,属性值也不会更新。

三、批量创建与更新属性

当元素模板中需要定义几十个属性时,逐个手工创建效率极低。AF 提供了两种批量手段:

  • 元素模板批量实例化:在模板中定义好属性及其数据引用,基于模板创建的元素会自动继承全部属性。修改模板属性后,所有实例可同步更新。
  • PI Builder 批量导入导出:PI Builder 是 Excel 插件,可将 AF 元素、属性、分析等导出为工作表,在 Excel 中批量编辑后再导入。适合大规模属性初始化、批量修改数据引用路径或 UOM。

使用 PI Builder 的典型流程:在 Excel 中打开 PI Builder 选项卡 → 选择“Get Attributes”拉取现有属性 → 在表格中修改 DataReference、ConfigString、UOM 等列 → 点击“Save Attributes”写回 AF。注意:导入前建议先导出备份,避免误覆盖。

四、实操示例:为锅炉元素配置属性引用

假设已有一个锅炉元素 Boiler01,需要配置以下属性:

属性名数据引用类型配置内容
入口温度PI PointPoint: Boiler01.InletTemp
出口温度PI PointPoint: Boiler01.OutletTemp
温差公式'出口温度' - '入口温度'
效率公式'功率' / ('流量' * 4.186 * '温差')
密度表查找表: WaterDensity,输入: '入口温度',返回: Density
设备描述字符串Concat('锅炉-', '设备号')

配置完成后,在 AF 中右键元素选择“Check In”保存,然后通过 Analysis 或手动触发计算。观察“温差”属性是否等于出口温度减入口温度;若入口温度为 25°C、出口温度为 85°C,则温差应为 60°C。若结果异常,优先检查属性名是否拼写一致、PI Point 是否有当前值、公式中引用的属性是否已配置数据引用。

公式中引用属性时,属性名必须用单引号包裹,且区分大小写。若属性名包含空格或特殊字符,同样需要引号。表查找的输入属性必须与表中查找列的数据类型一致,否则查找失败返回空值。

五、常见问题与排查思路

属性值不更新或显示“No Data”时,按以下顺序排查:

  1. 检查数据引用类型是否选对,配置字符串是否指向正确的 Point 或属性名。
  2. 确认 PI Point 在 PI Data Archive 中存在且有归档数据;若 Point 无当前值,属性会显示旧值或空值。
  3. 公式引用属性时,确认被引用属性本身已有有效值,避免循环引用。
  4. 表查找失败时,检查输入值是否在表的查找列范围内,以及返回列名称是否正确。
  5. 写回 PI Point 失败时,检查目标 Point 是否存在、用户权限是否足够、AF 分析是否处于运行状态。

掌握这六类数据引用及其组合方式,就能在 AF 中构建出层次清晰、可追溯、可批量维护的属性体系,为后续实时指标计算和分析打下基础。