架构设计不佳的SCADA系统在其整个生命周期中都将面临不断的打补丁、变通处理和事后补救与致歉。我们曾接手过一些项目,SCADA服务器与办公打印机连接在同一个网络交换机上,标签名是毫无规律的随机字符串,一次服务器故障就导致20万客户的监控瘫痪。相比之下,设计良好的SCADA架构是无形的——它运行可靠、扩展优雅,并提供操作员所需的数据,而无需让操作员疲于应对系统。本指南将详细介绍稳健的工业SCADA架构的每一层,从现场传感器到操作员屏幕。
1. SCADA架构基础
现代SCADA系统遵循基于ISA-95/普渡模型的多层分布式架构。每一层都有特定的功能,通过定义的接口进行通信,并且可以独立扩展或升级。这五层是:
- 现场设备(0-1层):测量和操纵物理过程的传感器和执行器
- 控制器(1层):执行实时控制和数据采集的PLC和RTU
- 通信网络(1.5-2层):将控制器连接到监控系统的工业网络
- SCADA服务器(2-3层):数据采集、报警处理、历史数据库和应用服务器
- HMI和客户端(2-3层):操作员工作站、Web客户端和移动设备
架构设计必须遵循三个不可妥协的原则:确定性控制(即使SCADA宕机,PLC也必须能够控制)、纵深防御(每一层都有安全防护,而不仅仅是边界)和可扩展性(添加新站点或标签不应要求重新设计系统)。
2. 第1层:现场设备
现场层是SCADA系统与物理世界交汇的地方。设备选择会影响数据质量、维护负担和系统可靠性:
- 传感器:压力变送器、液位传感器、流量计、温度探头和分析仪器。对于SCADA集成,请选择具有4-20mA HART、Modbus RTU或PROFINET/PROFIBUS输出的设备。智能HART变送器不仅提供过程变量,还提供可记录在历史数据库中的诊断数据(传感器健康状况、校准状态)。
- 执行器:电机启动器、变频器(VFD)、控制阀和电磁阀。对于SCADA监控,确保每个执行器提供反馈(运行状态、故障、位置),而不仅仅是命令输出。没有反馈的命令只是猜测——操作员无法确认动作是否已发生。
- 信号类型选择:模拟信号使用4-20mA(比0-10V抗干扰能力更强),状态使用数字输入(首选无源触点),温度使用RTD/温度模块。避免长距离直接连接热电偶——使用带4-20mA输出的温度变送器。
- 本安与危险区域:对于石油天然气、化工或矿山等危险区域应用,请使用防爆等级的现场设备,并在控制柜中使用隔离栅或本安模块。
3. 第2层:控制器(PLC/RTU)
控制器层是SCADA系统的边缘——它从现场设备收集数据,执行本地控制逻辑,并向上与SCADA服务器通信。
PLC与RTU的区别
两者的界限已变得模糊,但传统上:
- PLC(可编程逻辑控制器):针对工厂或机器内的本地高速控制进行优化。丰富的IEC 61131-3编程、快速的扫描时间、广泛的I/O模块选择。最适合工厂自动化、过程工厂和机器控制。
- RTU(远程终端单元):针对带宽较低的地理分布式站点进行优化。功耗更低、温度范围更宽、内置无线电/蜂窝通信以及存储转发数据缓冲。最适合管道泵站、井口和远程公用设施站点。
现代控制器——包括Siemens S7-1200/1500和Allen-Bradley CompactLogix——结合了PLC和RTU的功能,使得对于新安装项目而言,这种区别在很大程度上只是学术上的。关键的选择标准是控制器是否能够在通信中断期间自主维持控制、在本地缓冲数据,并在连接恢复时重新同步。
控制器冗余
对于关键过程,指定冗余控制器(例如Siemens S7-1500R/H、带冗余的Allen-Bradley ControlLogix L8x)。两个CPU通过专用光纤链路同步;如果主CPU故障,备用CPU将在100毫秒内接管,且不会中断I/O。冗余控制器是水处理、发电和石油天然气行业的标准——这些行业的计划外停机成本超过每小时50,000美元。
4. 第3层:通信网络
网络是SCADA系统的骨干。网络设计直接影响数据新鲜度、报警延迟和网络安全。
网络架构
- 过程网络(1-2层):连接PLC、远程I/O和SCADA数据服务器。使用工业管理型交换机(如Siemens SCALANCE、Hirschmann、Moxa),支持PROFINET/EtherNet/IP。对于高可用性系统,配置MRP(介质冗余协议)环网,切换时间低于200毫秒。
- 监控网络(2-3层):连接SCADA服务器、HMI客户端和历史数据库。通过防火墙与过程网络隔离。服务器到服务器和服务器到客户端的流量使用千兆以太网。
- DMZ(3.5层):控制网络和企业网络之间的非军事区,托管任何需要外部访问的服务器(Web HMI、OPC UA网关、远程访问服务器)。没有直接从4层(企业)到2层(控制)的流量——所有通信都通过DMZ。
- 现场广域网:对于远程站点,使用带VPN的4G/LTE、授权无线电或光纤。始终为关键站点指定双通信路径(例如4G主用+无线电备用),并具备自动故障切换功能。
⚠️ 关键网络设计规则
切勿在没有防火墙的情况下将SCADA或PLC设备连接到企业IT网络。企业网络具有互联网访问、电子邮件、网页浏览和用户安装的软件——这些都是可能危及控制系统的攻击媒介。使用物理隔离的网络,或者至少使用VLAN分段,并通过工业防火墙执行感知协议的访问控制(例如,仅允许SCADA服务器和DMZ网关之间端口4840上的OPC UA)。
5. 第4层:SCADA服务器
服务器层处理、存储和提供SCADA数据。中大型SCADA系统通常包括多个服务器角色:
- I/O数据服务器(SCADA运行时):轮询控制器,维护实时标签数据库,评估报警条件,并执行监控脚本。为实现冗余,部署主/备服务器,具备自动故障切换和同步实时数据功能。
- 历史数据库服务器:存储时间序列过程数据,用于趋势分析和报告。使用专用历史数据库(如OSIsoft PI、Aveva Historian、Ignition Historian或开源的InfluxDB),而不是记录到关系数据库——历史数据库针对时间序列压缩和查询进行了优化,性能可提高10-100倍。
- Web服务器:向基于浏览器的客户端提供HMI图形,无需安装客户端软件。托管在DMZ中以供外部访问。
- 报警服务器:专用于报警处理、路由和通知(短信、电子邮件、语音)的服务器。对于大型系统,将报警处理与数据采集分离可确保报警响应不会因高数据轮询负载而延迟。
- 工程/工作站服务器:用于SCADA配置、PLC编程和系统维护。与运行时系统隔离,以防止在运行期间发生意外更改。
服务器虚拟化
现代SCADA部署越来越多地使用虚拟化(VMware vSphere、Hyper-V)在冗余物理主机上托管多个服务器角色。虚拟化提供硬件独立性、基于快照的备份和更简单的灾难恢复。但是,请务必验证SCADA供应商是否支持虚拟化——一些较旧的平台存在许可或时序限制。对于实时I/O服务器,使用网络适配器的直接硬件直通以最小化延迟。
6. 第5层:HMI和客户端站
HMI是操作员了解过程的窗口。这里的设计决策直接影响操作员的工作效率和安全:
- 控制室工作站:双显示器设置,一个屏幕显示主过程图形,另一个屏幕显示报警列表/趋势。使用带有固态硬盘和冗余电源的工业级PC。
- 大屏幕显示器:对于管理多个区域的控制室,视频墙或大屏幕显示带有报警状态的网络概览。配置显示器以显示报警横幅,无论操作员在工作站上打开了什么。
- Web客户端:基于浏览器的HMI访问,供主管、维护和值班人员使用。Web客户端默认应提供只读访问,控制操作需要额外的身份验证。
- 移动访问:用于手机/平板访问的响应式Web HMI或专用移动应用。移动访问始终通过VPN进行,并且对大多数用户应为只读——通过手机进行远程控制会带来极大的误操作风险。
7. 何时需要冗余SCADA服务器?
冗余消除了单点故障。高可用性SCADA架构在多个层级提供冗余:
| 组件 | 冗余方法 | 切换时间 |
|---|---|---|
| 控制器 | 双CPU(S7-1500R/H、CLX冗余) | 10-100毫秒 |
| 网络 | MRP环网 / RSTP / 双网卡 | 50-500毫秒 |
| SCADA服务器 | 主/备数据同步 | 5-30秒 |
| 历史数据库 | 复制 / 集群历史数据库 | 数秒至数分钟 |
| 电源 | UPS + 备用发电机 | 0毫秒(UPS),10-30秒(发电机) |
| 广域网链路 | 双SIM / 无线电 + 蜂窝故障切换 | 30-60秒 |
并非每个系统都需要完全冗余。将冗余级别与过程的关键性相匹配。小型包装线可能只需要UPS。而为50万人服务的水处理厂则需要冗余的控制器、网络和服务器。
8. 标签数据库设计
标签数据库是每个SCADA系统的基础。结构不佳的标签数据库会使HMI开发、报警配置和维护变得异常困难。请遵循以下规则:
- 命名规范:使用分层的、自描述的格式:
[区域].[设备].[参数]。例如:PS03.Pump01.MotorCurrent、WT02.Filter04.InletPressure。切勿使用未在记录在案的数据字典中的缩写。标签名称应让从未见过该系统的操作员也能读懂。 - 数据类型:使用适当的数据类型:状态用Boolean,计数用Integer,模拟值用Float,标签用String。避免对应为整数的值使用浮点数——这会导致比较和报警问题。对重复设备使用结构化数据类型(UDT)(例如,包含RunCmd、RunStatus、Fault、Current、Speed、RunHours的“Pump”UDT)以确保一致性。
- 扫描类:按所需的更新率对标签进行分组。关键参数(压力、流量、紧急报警)以1秒轮询。常规状态(电机运行小时数、储罐温度)可以5-30秒轮询。非关键数据(环境温度、能量总计)可以1-5分钟轮询。这优化了通信带宽和控制器负载。
- 量程和单位:在SCADA标签配置中定义工程量程(原始4-20mA → 0-10 bar),而不是在HMI图形中。每个模拟标签必须具有定义的单位(bar、°C、m³/h、kW)以及合理的报警最小/最大限值。
9. 如何设计SCADA报警系统?
报警系统通常是SCADA实施中最受批评的部分。请按照ISA-18.2正确设计:
- 报警优先级:使用三个优先级:紧急(需要立即采取行动)、高(30分钟内采取行动)和低(知晓,无需立即采取行动)。分布应大致遵循5%/15%/80%的比例——如果超过10%的报警是“紧急”的,操作员将会忽略它们。
- 报警属性:每个报警必须包括:设定点、死区、开/关延迟、优先级、描述、所需响应和相关图形。配置报警帮助文本,告诉操作员该怎么做,而不仅仅是出了什么错。
- 报警路由:紧急报警触发声音/视觉HMI报警以及外部通知(短信/电话)。高报警出现在报警横幅中并被记录。低报警仅被记录并出现在每日摘要中。
- 报警搁置和抑制:允许操作员在维护期间暂时抑制烦人报警,并自动重新启用。未经主管批准和审计日志记录,绝不允许永久禁用报警。
- 报警分析:跟踪报警频率,识别“抖动”报警(快速切换的报警),并每月审查报警日志以优化设定点并消除烦人报警。管理良好的系统在正常运行期间每个操作员每小时产生的报警应少于10个。
10. 历史数据库与数据存储策略
历史数据库是SCADA系统的长期记忆。设计决策会影响查询性能、存储成本和数据可用性:
- 采集率:以1秒分辨率记录关键模拟值(或变化超过0.5%时记录),标准值以5-15秒记录,总计/计数器以1分钟间隔记录。使用基于异常的报告(仅在值变化超过阈值时记录),可将变化缓慢的参数的存储量减少50-80%。
- 保留策略:原始1秒数据保留90天,1分钟平均值保留1年,15分钟平均值保留5年,小时/日平均值永久保留。这种分层方法在详细故障排除数据与长期趋势报告之间取得平衡,而不会导致存储无限增长。
- 存储容量规划:粗略估计,10,000个标签以1秒分辨率每年大约生成5-15 GB的压缩历史数据库数据(具体取决于压缩算法和数据波动性)。现代历史数据库对典型过程数据可实现80-95%的压缩率。
- 备份与灾难恢复:每天将历史数据库备份到单独的存储系统。对于关键系统,复制到异地服务器。每季度测试恢复——无法恢复的备份不是备份。
11. 如何使用DMZ对SCADA网络进行分段?
网络分段是SCADA系统最有效的网络安全控制措施。正确分段的架构将网络划分为安全区域:
| 区域 | 内容 | 访问策略 |
|---|---|---|
| 控制区 | PLC、RTU、VFD、I/O | 无直接外部访问;仅通过特定协议访问SCADA数据服务器 |
| 监控区 | SCADA服务器、HMI工作站 | 操作员通过认证的HMI访问;工程师通过跳板机访问 |
| DMZ | Web服务器、OPC UA网关、远程访问 | 来自企业和互联网的受控访问;无到控制区的出站流量 |
| 企业区 | ERP、电子邮件、办公PC | 仅通过反向代理访问DMZ;无直接控制网络访问 |
工业防火墙(如Fortinet Rugged、Cisco ISA、Hirschmann EAGLE)通过状态包检测和感知协议的过滤来强制执行这些边界。它们理解工业协议(OPC UA、Modbus TCP、PROFINET),可以允许特定的功能码或寄存器范围,同时阻止其他所有内容——这是标准IT防火墙所不具备的能力。
12. 网络安全标准:IEC 62443
IEC 62443是工业自动化和控制系统(IACS)网络安全的国际标准。它定义了纵深防御方法,并在每个层级提出要求:
- IEC 62443-2-1(安全计划):建立包含风险评估、策略和程序的IACS安全管理系统。
- IEC 62443-3-2(风险评估):识别区域和管道,评估风险,并为每个区域定义安全级别(SL 1-4)。
- IEC 62443-3-3(系统安全):控制技术系统的要求:身份验证、授权、数据机密性、流量控制和审计日志。
- IEC 62443-4-2(组件安全):PLC、交换机和其他IACS组件的要求。
任何SCADA系统的实际最低控制措施:更改所有默认密码,禁用未使用的服务和端口,应用固件安全补丁,实施基于角色的访问控制,启用审计日志,对网络进行分段,并对所有远程访问使用VPN。根据ICS-CERT数据,这些措施可解决超过80%的已知ICS漏洞。
13. SCADA规模指南
| 规模 | 标签数 | 服务器 | 客户端 | 典型应用 |
|---|---|---|---|---|
| 小型 | <1,000 | 1(一体机) | 1-3 | 单机、小型工厂 |
| 中型 | 1,000-10,000 | 2(冗余对) | 3-10 | 工厂、处理厂 |
| 大型 | 10,000-100,000 | 4-6(独立角色) | 10-50 | 多站点公用设施、管道 |
| 企业级 | >100,000 | 多集群 | 50+ | 智慧城市、国家电网 |
14. 性能优化
- 轮询优化:使用基于异常的轮询(按异常报告)而不是持续扫描。按控制器对标签进行分组以最小化连接开销。避免从多个SCADA服务器轮询同一标签——使用一个数据集中器。
- 标签数量管理:臃肿的标签数据库会拖慢每个SCADA操作。定期审计并删除未使用的标签(来自退役设备、废弃的计算和测试点)。我们见过40%的标签已过时的系统。
- HMI性能:将屏幕元素限制在每个图形200个以下。对重复设备使用模板和间接寻址,而不是复制图形。避免刷新速度快于数据更新速度的动画。
- 网络带宽:对于通过广域网连接的远程站点,使用协议优化(按异常报告、数据压缩)来最小化蜂窝数据使用量。设计良好的远程SCADA系统在4G网络上每个站点每月可仅使用100-500 MB。
15. 按规模划分的典型架构
小型系统(100-1,000个标签):单台工业PC在一个应用程序中运行SCADA运行时、历史数据库和HMI客户端。它通过以太网连接一到两个PLC。一到两个额外的HMI客户端通过工厂网络访问服务器。无冗余——服务器故障意味着PLC继续本地控制,但操作员在服务器恢复前失去可见性。典型成本:15,000-50,000美元,包括硬件、软件和工程。
中型系统(1,000-10,000个标签):两台冗余SCADA服务器(主/备),配备独立的历史数据库。管理型交换机通过PROFINET连接5-20个PLC。全厂5-10个HMI客户端。DMZ托管用于管理报告的Web服务器。UPS和网络冗余。典型成本:80,000-300,000美元。
大型系统(10,000+个标签):分布式服务器架构,按区域划分独立的I/O服务器、专用历史数据库集群、报警服务器、DMZ中的Web服务器和工程工作站。双冗余网络(过程和监控)。关键站点的冗余控制器。20-100个HMI客户端。网络安全设备、远程访问VPN和完全符合IEC 62443。典型成本:300,000-2,000,000美元以上。
在SENTRADO,我们设计与每个客户的规模、关键性和预算相匹配的SCADA架构——从单站HMI到企业级分布式系统。我们的工程团队处理全栈:PLC控制柜、网络基础设施、SCADA配置、网络安全和操作员培训。我们还提供来自水处理、能源和制造领域已部署SCADA项目的详细案例研究。
