本节摘要:SCADA 系统的寿命以十年计,而需求一定会在十年里长出来。扩展性讨论系统「装得下」增长的能力——点数、站数、流量、用户;开放性讨论系统「接得出」数据与功能的能力——接口、语义、第三方集成。两者共同的落点是把模糊的「留有余地」翻译成可写进技术协议、可在验收时核对的数字与规范。
某水厂二期扩建,原 SCADA 厂商报价单上写着「测点扩容按点收费」,单价高得离谱;业主想换平台,才发现一期系统的点表格式、报警逻辑、历史数据全部私有,迁移成本比新建还贵。合同没签成,二期最后变成了两套系统并存的怪胎:操作员要看两块屏,报表要做两遍。这类故事的教训不是「别签这份合同」,而是扩展性与开放性必须在一期的技术协议里定义——等需要它们的时候再谈,你已经没有筹码。
点数余量。 软件授权点数与硬件 I/O 余量要分开谈。软件侧,授权点数通常按终期规模上浮适当比例采购,并明确「点」的计数口径——模拟量、开关量、内部计算点是否都占授权;硬件侧,控制器、网关、机箱要留空槽位与空端子,屏柜内预留一定比例的安装空间。水厂项目的经验值:控制器负载率按终期不超过合理上限校核,I/O 槽位按预留比例留空——具体数字各行业规程有规定,抄规范比拍脑袋稳。
接入余量。 站场数量、并发客户端数、通信连接数。中心平台要能接纳「还没建的泵站」:网关接入数、规约实例数、历史库测点容量都按终期规模校核,而不是按一期。
流量与存储余量。 带宽按高峰轮询流量加事件风暴估算,存储按「采样周期 × 保留年限 × 单点字节」算出终期容量再留增长系数。历史库的磁盘阵列要能在线扩容,否则五年后的扩容就是停机迁移。
组织余量。 操作员账号、维护账号、外部只读账号的数量与角色模型。角色模型一旦要推翻重来,权限梳理的工作量会超乎想象。
接口战线。 现场侧,设备接入优先走标准规约(第 4 章展开),要求投标设备承诺提供规约说明与点表模板,拒绝「私有协议、授权另议」。中心侧,数据外供接口按标准服务形态开放:实时数据的订阅接口、历史数据的查询接口、报警事件的推送接口。接口文档、示例、限流策略随交付提供——「接口有,文档没有」等于接口没有。
语义战线。 接口解决了「数据出得去」,语义解决「出去的数据别人看得懂」。工程上的抓手就是点表规范:统一的编码规则、单位制式、质量标记约定。语义规范的投入产出比极高——它让二期接入变成「按规范填表」,而不是「开协调会翻译」。第 3 章的点表设计会把这件事落成可执行的规范模板。
余量解决「装得下」,模块化解决「改得动」。评估一个平台的模块化程度,用三个问题就够:加一座泵站,要改动中心的组态范围有多大?升级报警规则,会不会牵连画面与历史库?替换画面引擎,历史数据要不要迁移?三个问题的答案指向同一件事——模块间的耦合面。耦合面小的系统,组态按站分块、报警规则独立版本化、数据访问走统一服务层而不是直连库表。
工程做法上,把「站场级组态模板化」是性价比最高的一步:定义一座标准泵站的组态包(画面模板、点表模板、报警模板、报表模板),新站接入即实例化。水厂项目里,三座同构加压站的接入工时从首座的数周降到后续的数天,差价就是模板的钱。
某项目一期评审时,自动化负责人坚持在中心机房预留一排机柜、在核心交换机上预留端口、在平台授权里买断了终期点数,被审计质疑「过度设计」。四年后二期上马,新增三座泵站、一套深度处理工艺、一个集团数据订阅需求,一期架构原封不动地装下了全部增量:泵站接入走预留端口,新工艺用标准站模板实例化,集团订阅走一期就定义好的历史数据服务接口。二期没有动一期的任何服务器与数据库——没有停机窗口,没有数据迁移,没有双系统并存。案例的解读可以更冷峻一点:留路的钱是一期花的,收益是二期收的,中间隔着换了一届的领导班子——能穿越这种时间差的决策,靠的不是眼光,是把余量写进了一期合同和技术协议,让它变成可审计的资产而非某个人的远见。
评审时识别「假扩展」的四个信号,比正面清单更有排查力。反模式一:以License换扩展。 平台宣称「支持百万点」,但每加一批点要重新授权、重启服务、甚至更换授权狗——扩展能力被商业机制锁死。验证方法:现场演示导入一批新点表,看是否停机、是否要走授权流程。反模式二:以冗余掩掩盖扩展。 系统负载逼近上限时的对策是「再加一台服务器」,但数据架构不支持横向分片,加机器只扩了存储没扩接入能力。识别方法:问清接入容量的瓶颈在进程模型还是硬件。反模式三:以接口数目冒充开放性。 宣传页列十种接口,每种都「有」但都不带文档、不保证版本兼容。真正的开放性看三样:接口文档完备度、第三方是否真能对接成功、接口版本升级的兼容承诺。反模式四:语义漂移。 初版点表规范良好,两年后新增测点未经审批自由命名,扩展能力被自己的纪律松懈腐蚀。这恰是 3.4 节点表变更纪律要防的事。
四类反模式的共同点是「把扩展性当卖点而不是能力」。买方评估时的总原则:要求现场演示三个扩展动作(加点、加站、第三方取数)并计时——能当场演示的扩展性才是真的,写在 PPT 上的都是期货。
讨论开放性时必须同时划出安全的边界:开放接口是「受控的数据出口」,不是「敞开的大门」。三条边界纪律:其一,接口白名单——每个对外接口有明确的调用方登记与用途说明,匿名可访问的数据服务在工控环境里没有生存权;其二,接口限流与配额——第三方异常调用(死循环拉全量历史)不能拖垮平台,限流是自我保护;其三,接口数据的最小必要——集团要月度水量就不必开放秒级曲线,按需收敛出口的数据面。这些纪律与第 6 章 DMZ 管道设计一脉相承:开放性解决「数据出得去、看得懂」,安全解决「出去的口子可控」。两件事必须同时设计——只谈开放不谈边界的技术协议,等于在防火墙上留了一扇不上锁的方便门。
扩展性与开放性的设计输出,建议浓缩成一张进协议的自检表:
| 检查项 | 协议里的写法 | 验收核对方法 |
|---|---|---|
| 点数授权 | 终期点数口径与上浮比例 | 现场导入满量模拟点表实测 |
| I/O 余量 | 槽位与端子预留比例 | 打开机柜清点空槽空端子 |
| 接入余量 | 网关与规约实例数按终期 | 接入模拟站实测 |
| 存储余量 | 终期容量与在线扩容承诺 | 查磁盘阵列扩容手册并演练 |
| 数据接口 | 订阅、查询、推送三类接口及文档 | 按文档从第三方环境取数成功 |
| 语义规范 | 点表编码与单位制式规范 | 抽查二期站按模板接入工时 |
💡 评审会上判断扩展性条款是不是空话,有个速效办法:要求投标方当场演示「加一个测点、加一座站、导一份数据」三个动作。演示不了的条款,写进协议也没用。
至此架构章收束。下一章回到链路起点:现场层的硬件怎么选、点表怎么编。