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,表查找再引用公式结果。下图展示了它们之间的数据流向与依赖关系。
二、属性映射到 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 会收到新值。
三、批量创建与更新属性
当元素模板中需要定义几十个属性时,逐个手工创建效率极低。AF 提供了两种批量手段:
- 元素模板批量实例化:在模板中定义好属性及其数据引用,基于模板创建的元素会自动继承全部属性。修改模板属性后,所有实例可同步更新。
- PI Builder 批量导入导出:PI Builder 是 Excel 插件,可将 AF 元素、属性、分析等导出为工作表,在 Excel 中批量编辑后再导入。适合大规模属性初始化、批量修改数据引用路径或 UOM。
使用 PI Builder 的典型流程:在 Excel 中打开 PI Builder 选项卡 → 选择“Get Attributes”拉取现有属性 → 在表格中修改 DataReference、ConfigString、UOM 等列 → 点击“Save Attributes”写回 AF。注意:导入前建议先导出备份,避免误覆盖。
四、实操示例:为锅炉元素配置属性引用
假设已有一个锅炉元素 Boiler01,需要配置以下属性:
| 属性名 | 数据引用类型 | 配置内容 |
|---|---|---|
| 入口温度 | PI Point | Point: Boiler01.InletTemp |
| 出口温度 | PI Point | Point: Boiler01.OutletTemp |
| 温差 | 公式 | '出口温度' - '入口温度' |
| 效率 | 公式 | '功率' / ('流量' * 4.186 * '温差') |
| 密度 | 表查找 | 表: WaterDensity,输入: '入口温度',返回: Density |
| 设备描述 | 字符串 | Concat('锅炉-', '设备号') |
配置完成后,在 AF 中右键元素选择“Check In”保存,然后通过 Analysis 或手动触发计算。观察“温差”属性是否等于出口温度减入口温度;若入口温度为 25°C、出口温度为 85°C,则温差应为 60°C。若结果异常,优先检查属性名是否拼写一致、PI Point 是否有当前值、公式中引用的属性是否已配置数据引用。
五、常见问题与排查思路
属性值不更新或显示“No Data”时,按以下顺序排查:
- 检查数据引用类型是否选对,配置字符串是否指向正确的 Point 或属性名。
- 确认 PI Point 在 PI Data Archive 中存在且有归档数据;若 Point 无当前值,属性会显示旧值或空值。
- 公式引用属性时,确认被引用属性本身已有有效值,避免循环引用。
- 表查找失败时,检查输入值是否在表的查找列范围内,以及返回列名称是否正确。
- 写回 PI Point 失败时,检查目标 Point 是否存在、用户权限是否足够、AF 分析是否处于运行状态。
掌握这六类数据引用及其组合方式,就能在 AF 中构建出层次清晰、可追溯、可批量维护的属性体系,为后续实时指标计算和分析打下基础。