3. 现有AVEVA系统资产盘点与依赖分析

升级迁移项目最容易失控的环节,往往不是安装新版本,而是“不知道旧系统里到底有什么”。AVEVA系统经过多年运行,标签、画面、脚本、历史数据和接口往往由不同时期、不同人员逐步叠加,形成大量隐性依赖。资产盘点的目标不是简单列一张表,而是建立一份可追溯、可验证、可映射到迁移动作的资产基线。没有这份基线,迁移范围、停机窗口、回滚方案和验收标准都只能靠猜。

一、盘点对象与分类口径

AVEVA系统资产通常分为五类:标签与位号、画面与图形、脚本与逻辑、历史数据、接口与通信。每一类都需要明确“盘点粒度”和“唯一标识”。例如标签盘点不能只记录标签名,还要记录数据类型、工程单位、扫描周期、所属区域、是否参与报警、是否被脚本引用。画面盘点要区分操作画面、趋势画面、报警画面和诊断画面,并记录其调用的标签、脚本和外部控件。脚本盘点要区分画面脚本、全局脚本、调度脚本和第三方脚本,记录触发条件、调用对象和外部依赖。历史数据盘点要记录测点、采样周期、存储位置、保留策略和归档方式。接口盘点要记录协议、方向、对端系统、数据点表和心跳机制。

分类口径一旦确定,就要在盘点模板中固定下来,避免不同人员按不同理解填写。建议为每类资产设置“资产编号、名称、类型、位置、责任人、版本、最后修改时间、迁移优先级、备注”等公共字段,再按类别扩展专属字段。

二、自动化盘点方法

自动化盘点的核心思路是“从系统自身导出,而不是靠人回忆”。AVEVA系统通常提供数据库导出、脚本遍历、配置文件和日志分析等途径。以标签盘点为例,可以从实时数据库或工程数据库中导出标签清单,再通过脚本批量提取属性。下面是一个示例性的导出与整理思路,参数为教学假设,实际字段名需按现场版本调整:

# 示例:从工程数据库导出标签基础清单(字段名仅为示意)
SELECT tag_name, data_type, eng_unit, scan_period,
       area, alarm_enable, description
FROM tag_definition
WHERE system_id = 'AVEVA_OLD'
ORDER BY area, tag_name;

# 示例:导出后按区域统计标签数量
awk -F',' 'NR>1 {count[$5]++} END {for (a in count) print a, count[a]}' tags.csv

画面和脚本的自动化盘点相对复杂,通常需要解析工程文件或使用系统提供的导出功能。可以编写遍历脚本,扫描画面目录,提取画面名称、引用标签、嵌入脚本和外部控件。对于脚本,可以提取函数名、调用关系、外部文件路径和数据库连接字符串。历史数据盘点可以通过查询归档配置表,导出测点、采样周期和存储路径。接口盘点可以通过通信配置文件和日志,提取通道、设备、数据点表和通信状态。

自动化盘点的结果必须经过抽样验证。建议按区域或类型抽取5%~10%的资产,人工核对导出结果与系统实际运行状态是否一致。如果偏差超过阈值,需要检查导出条件、过滤规则或权限设置。

三、手动盘点与补充确认

自动化无法覆盖的内容,必须通过手动盘点补充。典型场景包括:画面上的动态链接、脚本中的硬编码路径、第三方控件、外部数据库连接、未纳入工程库的临时标签、操作员日常使用的非正式报表等。手动盘点可以采用“走查+访谈+截图”的方式:先按工艺流程或区域划分走查路线,再与操作员、维护人员和集成商访谈,确认资产的实际使用情况和迁移影响。

手动盘点要避免“只记录不验证”。每一条手动记录都应附上证据,例如画面截图、脚本片段、配置文件路径或访谈记录。对于关键资产,还要标注“是否在用、是否可停用、是否有替代方案”。

四、依赖关系映射

资产盘点的下一步是建立依赖关系。依赖关系通常分为四层:应用依赖、数据库依赖、网络依赖和第三方系统依赖。应用依赖指画面调用脚本、脚本调用标签、标签触发报警等关系;数据库依赖指实时数据库、历史数据库、关系数据库之间的数据流向;网络依赖指控制器、交换机、防火墙、OPC服务器之间的通信路径;第三方系统依赖指MES、ERP、LIMS、报表平台等外部系统通过接口获取或写入数据。

依赖关系映射建议采用“从资产到依赖”的正向追踪和“从故障到资产”的反向追踪相结合。正向追踪用于确定迁移范围,反向追踪用于评估停机影响。例如,如果某个历史数据归档任务依赖一个旧版OPC接口,而该接口又依赖一台即将下线的服务器,那么迁移时必须先处理这条依赖链。

AVEVA系统资产盘点与依赖关系映射示意 资产层(盘点对象) 标签 / 位号 名称·类型·单位·周期 画面 / 图形 操作·趋势·报警·诊断 脚本 / 逻辑 画面·全局·调度·第三方 历史数据 测点·周期·归档·保留 接口 / 通信 协议·方向·对端·心跳 盘点方法 自动化导出:数据库查询·脚本遍历·配置解析 手动补充:走查·访谈·截图·证据留存 抽样验证:5%~10%核对·偏差分析 依赖关系层 应用依赖 画面→脚本→标签→报警 数据库依赖 实时库→历史库→关系库 网络依赖 控制器→交换机→OPC服务器 第三方系统依赖 MES·ERP·LIMS·报表平台 盘点输出 资产清单(五类) 依赖关系矩阵 迁移优先级与风险标注 回滚与验收依据

五、盘点工具与模板实战

盘点工具不必追求复杂,关键是能落地。推荐组合是:数据库查询工具、脚本遍历工具、电子表格模板和依赖关系矩阵。电子表格模板可以按五类资产分工作表,每张表包含公共字段和专属字段。依赖关系矩阵可以用“源资产—目标资产—依赖类型—影响等级—迁移动作”五列表示。影响等级建议分为高、中、低三级:高表示停机后直接影响生产或安全,中表示影响监控或报表,低表示仅影响历史查询或辅助功能。

下面给出一个依赖关系矩阵的示例片段,数据为教学假设:

源资产 目标资产 依赖类型 影响等级 迁移动作
画面 P-101 脚本 S-205 应用依赖 高 同步迁移并回归测试
脚本 S-205 标签 TIC-101 应用依赖 高 核对标签映射
历史归档任务 H-03 OPC接口 OPC-01 数据库依赖 中 升级接口驱动
OPC接口 OPC-01 MES系统 第三方依赖 高 协调对端联调
报表 R-07 关系库 DB-02 数据库依赖 低 迁移后验证数据一致性

盘点完成后,需要输出三份成果:资产清单、依赖关系矩阵和迁移优先级清单。资产清单用于确定“有什么”,依赖关系矩阵用于确定“牵动谁”,迁移优先级清单用于确定“先做什么”。优先级排序建议综合考虑影响等级、依赖深度、停机窗口和回滚难度。对于高影响、深依赖、难回滚的资产,应优先安排专项验证和演练。

盘点不是一次性任务。建议在迁移前、迁移中、迁移后各做一次增量盘点,重点核对新增资产、变更依赖和临时绕过方案。每次盘点都要保留版本号和责任人,确保基线可追溯。
不要直接把自动化导出结果当作最终资产清单。导出结果可能包含已停用标签、测试画面、废弃脚本和无效接口。必须结合运行状态、操作员反馈和维护记录进行过滤和确认,否则会把大量无效资产带入迁移范围,浪费窗口并增加风险。

最后,盘点与依赖分析的成果要能直接支撑迁移方案。每一条资产都应能回答三个问题:迁移后是否还需要、迁移时依赖谁、迁移失败如何回滚。能回答这三个问题,盘点才算真正完成。