4. Gateway Network架构原理
Ignition 的 Gateway Network(网关网络)并不是简单的“多台服务器连在一起”,而是一套建立在网关之间的分布式通信框架。它让多个 Ignition Gateway 能够互相发现、互相调用服务、互相同步数据,从而把单机 SCADA 扩展为跨厂区、跨层级、跨网络的分布式系统。理解它的关键,是分清“架构形态”和“通信机制”两个层面:前者决定网关之间如何组织,后者决定它们如何交换信息。
一、分布式架构:从单网关到多网关协同
在单机部署中,所有标签、历史、报警、客户端都集中在一个 Gateway 内。当项目扩展到多个车间、多个厂区或需要边缘与中心协同时,单网关会遇到性能瓶颈、网络隔离和单点故障问题。Gateway Network 的分布式架构把系统拆成多个自治网关,每个网关负责本地设备采集、本地逻辑和本地缓存,再通过网关网络与其他网关建立受控连接。
分布式架构的核心价值在于“本地自治、全局协同”。本地网关即使与中心断开,仍能继续采集和控制;恢复连接后,再按策略同步数据。这种设计特别适合广域网不稳定、边缘计算和分级管理的工业场景。
二、主从模式与对等模式
Gateway Network 支持两种典型的组织关系:主从模式和对等模式。
主从模式通常用于集中管理场景。一个中心 Gateway 作为主节点,负责全局标签提供、历史归档、报警汇总和客户端接入;多个边缘 Gateway 作为从节点,负责现场设备采集和本地控制。从节点通过 Gateway Network 向主节点提供标签、发送历史数据和报警事件。主节点也可以反向调用从节点的服务,例如读取某个边缘网关的实时状态。
对等模式则用于网关之间地位平等的场景。多个网关互相连接,任意一方都可以调用另一方的服务或订阅对方的数据。对等模式常见于多产线协同、跨厂区数据交换或没有明显中心节点的分布式系统。它的灵活性更高,但连接关系和权限管理也更复杂。
| 对比项 | 主从模式 | 对等模式 |
|---|---|---|
| 节点关系 | 中心主节点 + 多个从节点 | 网关之间地位平等 |
| 典型用途 | 集中归档、全局报警、统一客户端 | 多产线协同、跨厂区数据交换 |
| 数据流向 | 从节点向主节点汇聚,主节点可反向调用 | 任意方向,按需订阅或调用 |
| 管理复杂度 | 较低,权限集中 | 较高,需逐对配置信任关系 |
| 故障影响 | 主节点故障影响全局汇总 | 单点故障影响范围较小 |
三、远程服务调用机制
Gateway Network 的远程服务调用(Remote Service Call)是网关之间执行逻辑的通道。一个网关可以调用另一个网关暴露的服务,例如读取标签值、写入标签、查询历史、触发报警确认或执行项目脚本。调用过程并不是直接访问对方数据库,而是通过网关网络协议发送请求,由目标网关在本地执行后返回结果。
配置远程服务调用通常包括以下步骤:
- 在目标网关上启用 Gateway Network,并设置入站连接策略。
- 在源网关上添加远程网关连接,填写目标地址、端口和认证信息。
- 在目标网关上配置服务权限,决定哪些远程网关可以调用哪些服务。
- 在脚本或项目中通过系统函数发起远程调用,并处理返回结果或超时。
# 典型远程调用伪代码示例
result = system.util.remoteCall(
gateway="Line2_Gateway",
service="TagProvider",
method="readTag",
params={"path": "[Line2]Motor1/Speed"}
)
if result.isSuccess():
print result.value
else:
print "远程调用失败:", result.errorMessage
远程服务调用的关键参数包括目标网关名称、服务名、方法名、参数列表和超时时间。实际项目中,必须为远程调用设置合理的超时和异常处理,否则网络抖动会导致客户端长时间等待。
四、数据同步机制
数据同步是 Gateway Network 的另一条主线。它主要解决标签数据、历史数据和报警事件在网关之间的传递问题。常见同步方式包括:
- 远程标签提供者:一个网关把另一个网关的标签提供者作为远程标签源,客户端可以像访问本地标签一样访问远程标签。
- 历史同步:边缘网关先本地存储历史数据,再按策略将数据转发到中心历史库,避免广域网中断导致数据丢失。
- 报警同步:边缘网关产生的报警事件可以转发到中心网关,由中心统一做报警管道和通知。
- 项目同步:通过 Gateway Network 可以在多个网关之间同步项目资源,但生产环境通常更推荐版本控制和受控发布。
数据同步不是“实时镜像”,而是有策略、有缓冲、有重试的异步过程。设计时必须考虑网络带宽、数据量、同步频率和冲突处理。例如,历史数据同步通常采用“本地缓存 + 批量转发”的方式,而不是每条记录都立即发送。
五、典型场景与误区复盘
假设一个集团有两个厂区:A 厂区作为中心,部署主 Gateway,负责全局客户端、历史归档和报警汇总;B 厂区作为边缘,部署从 Gateway,负责现场 PLC 采集。B 厂区的标签通过远程标签提供者暴露给 A 厂区,历史数据先写入 B 本地,再定时同步到 A。A 厂区的操作员可以查看 B 厂区实时数据,也可以远程调用 B 厂区的服务执行确认操作。
常见误区有三个:第一,把 Gateway Network 当成数据库复制,认为所有数据会自动实时一致;第二,忽略入站连接策略和权限配置,导致远程调用被拒绝;第三,在广域网上直接做高频远程标签读取,造成延迟和带宽浪费。正确的做法是:本地优先、异步同步、按需调用,并为所有远程操作设置超时和降级策略。
总结来看,Gateway Network 的架构原理可以归纳为:分布式部署提供本地自治,主从模式解决集中管理,对等模式解决平等协同,远程服务调用解决逻辑执行,数据同步解决状态传递。只有把这几层关系同时设计清楚,才能构建稳定、可扩展的 Ignition 分布式系统。