2. 旧系统资产盘点
迁移工程最怕的不是“新系统不会用”,而是“旧系统里到底有什么没人说得清”。资产盘点就是给旧SCADA做一次完整体检,把散落在各处的标签、画面、脚本、报警、历史数据和通信接口逐一登记、分类、评估,形成后续迁移映射与工作量估算的唯一依据。盘点的目标不是简单列清单,而是回答三个问题:有什么、在哪里、迁移代价多大。
一、盘点对象与数据来源
AVEVA旧SCADA(如InTouch、System Platform、Citect等)的资产通常分布在工程文件、运行时数据库和外部接口三个层面。盘点时应先确定数据来源,再逐类提取:
- 标签(Tags):来自InTouch的Tagname Dictionary(.dbf或导出CSV)、System Platform的Galaxy数据库、Citect的Variable Tags。需记录标签名、类型(I/O、内存、间接)、数据类型、工程单位、量程、初始值、报警关联。
- 画面(Graphics):InTouch的WindowMaker窗口、Citect的Graphics Builder页面。需记录画面名、分辨率、引用标签数、嵌入脚本、ActiveX控件、动画链接。
- 脚本(Scripts):InTouch的Application Scripts、Window Scripts、Key Scripts、Condition Scripts;System Platform的Script Function。需记录触发条件、调用对象、外部依赖。
- 报警(Alarms):报警组、报警优先级、报警限值、报警文本、报警确认方式、报警历史存储位置。
- 历史数据(History):InTouch的Historian、System Platform的Historian、第三方数据库。需记录采集周期、存储时长、压缩方式、数据点数量。
- 通信接口(Communications):DAServer、I/O Server、OPC DA/UA、Modbus、DDE、SQL连接。需记录协议、设备地址、扫描周期、连接参数。
二、盘点方法与工具
手工逐条抄录效率低且易漏,推荐“导出+脚本解析+人工复核”三步法。以InTouch为例,可通过Tagname Dictionary的Export功能导出CSV,再用Python脚本统计标签类型分布、报警标签占比、间接标签引用关系。画面部分可用WindowMaker的“Export to CSV”或第三方工具提取窗口内所有动画链接。脚本则需逐文件导出为文本,用正则匹配外部调用(如SQL、DDE、文件读写)。
对于System Platform,可直接查询Galaxy数据库的Object、Attribute、Graphic、Script等表,用SQL导出资产清单。Citect则可通过Project Editor的“Export”功能导出变量、页面、报警和趋势配置。
三、资产分类与迁移优先级评估
盘点结果需要分类打标,才能指导后续迁移。建议按“迁移难度”和“业务重要性”两个维度评估:
| 资产类型 | 迁移难度 | 业务重要性 | 建议策略 |
|---|---|---|---|
| 简单I/O标签 | 低 | 高 | 批量映射,优先迁移 |
| 间接标签/数组 | 中 | 中 | 需重构为结构化标签 |
| 静态画面 | 低 | 中 | 可自动转换或重绘 |
| 复杂动画/ActiveX | 高 | 高 | 需重新设计,评估替代方案 |
| Application Scripts | 高 | 高 | 逐条分析,重写为现代脚本 |
| 报警配置 | 中 | 高 | 导出后按新系统报警模型重建 |
| 历史数据 | 中 | 高 | 评估归档格式,规划数据迁移 |
| OPC/DDE接口 | 中 | 高 | 优先升级为OPC UA |
四、盘点成果与交付物
一次完整的资产盘点应输出以下交付物:
- 标签清单:包含标签名、类型、数据类型、量程、单位、报警关联、迁移状态。
- 画面清单:画面名、分辨率、引用标签数、脚本数、ActiveX控件数、迁移难度评级。
- 脚本清单:脚本名、触发条件、调用对象、外部依赖、行数、迁移建议。
- 报警清单:报警组、优先级、限值、文本、确认方式、历史存储。
- 历史数据清单:数据点、采集周期、存储时长、压缩方式、归档路径。
- 通信接口清单:协议、设备地址、扫描周期、连接参数、替代方案。
这些清单不仅是迁移映射的输入,也是工作量估算和风险识别的依据。例如,若发现某画面引用了200个间接标签且嵌套三层,就需要单独评估重构成本;若某脚本调用了已停用的DDE接口,则需提前规划替代通信方案。
五、盘点中的常见陷阱
实际盘点时,有几个高频问题需要特别留意。第一,标签名重复或大小写不一致:InTouch标签不区分大小写,但导出到CSV后可能因工具差异产生重复记录,需去重并核对。第二,画面引用已删除标签:旧系统运行多年,部分标签已被删除但画面仍保留引用,迁移前需清理无效链接。第三,脚本中的硬编码路径:如脚本直接读写“D:\Data\report.csv”,迁移后路径可能不存在,需改为配置项。第四,报警限值写在脚本里而非报警配置中:这类“隐形报警”容易漏盘,需逐脚本搜索比较语句。第五,历史数据归档格式不兼容:旧Historian可能使用专有格式,需提前确认导出为CSV或SQL的可行性。
完成资产盘点后,你会得到一份覆盖六大类资产的完整清单,以及每项资产的迁移难度和策略建议。这份清单将直接驱动后续的标签映射、画面转换、脚本重写、报警重建、历史数据迁移和通信接口升级工作。没有盘点,迁移就是盲人摸象;有了盘点,每一步都有据可依。