4. Gateway Network架构原理

Ignition 的 Gateway Network(网关网络)并不是简单的“多台服务器连在一起”,而是一套建立在网关之间的分布式通信框架。它让多个 Ignition Gateway 能够互相发现、互相调用服务、互相同步数据,从而把单机 SCADA 扩展为跨厂区、跨层级、跨网络的分布式系统。理解它的关键,是分清“架构形态”和“通信机制”两个层面:前者决定网关之间如何组织,后者决定它们如何交换信息。

一、分布式架构:从单网关到多网关协同

在单机部署中,所有标签、历史、报警、客户端都集中在一个 Gateway 内。当项目扩展到多个车间、多个厂区或需要边缘与中心协同时,单网关会遇到性能瓶颈、网络隔离和单点故障问题。Gateway Network 的分布式架构把系统拆成多个自治网关,每个网关负责本地设备采集、本地逻辑和本地缓存,再通过网关网络与其他网关建立受控连接。

分布式架构的核心价值在于“本地自治、全局协同”。本地网关即使与中心断开,仍能继续采集和控制;恢复连接后,再按策略同步数据。这种设计特别适合广域网不稳定、边缘计算和分级管理的工业场景。

分布式架构不是把数据库简单复制多份,而是让每个网关保留自己的运行时状态,通过 Gateway Network 的服务调用与数据同步机制实现逻辑上的统一。

二、主从模式与对等模式

Gateway Network 支持两种典型的组织关系:主从模式和对等模式。

主从模式通常用于集中管理场景。一个中心 Gateway 作为主节点,负责全局标签提供、历史归档、报警汇总和客户端接入;多个边缘 Gateway 作为从节点,负责现场设备采集和本地控制。从节点通过 Gateway Network 向主节点提供标签、发送历史数据和报警事件。主节点也可以反向调用从节点的服务,例如读取某个边缘网关的实时状态。

对等模式则用于网关之间地位平等的场景。多个网关互相连接,任意一方都可以调用另一方的服务或订阅对方的数据。对等模式常见于多产线协同、跨厂区数据交换或没有明显中心节点的分布式系统。它的灵活性更高,但连接关系和权限管理也更复杂。

对比项 主从模式 对等模式
节点关系 中心主节点 + 多个从节点 网关之间地位平等
典型用途 集中归档、全局报警、统一客户端 多产线协同、跨厂区数据交换
数据流向 从节点向主节点汇聚,主节点可反向调用 任意方向,按需订阅或调用
管理复杂度 较低,权限集中 较高,需逐对配置信任关系
故障影响 主节点故障影响全局汇总 单点故障影响范围较小

三、远程服务调用机制

Gateway Network 的远程服务调用(Remote Service Call)是网关之间执行逻辑的通道。一个网关可以调用另一个网关暴露的服务,例如读取标签值、写入标签、查询历史、触发报警确认或执行项目脚本。调用过程并不是直接访问对方数据库,而是通过网关网络协议发送请求,由目标网关在本地执行后返回结果。

配置远程服务调用通常包括以下步骤:

  1. 在目标网关上启用 Gateway Network,并设置入站连接策略。
  2. 在源网关上添加远程网关连接,填写目标地址、端口和认证信息。
  3. 在目标网关上配置服务权限,决定哪些远程网关可以调用哪些服务。
  4. 在脚本或项目中通过系统函数发起远程调用,并处理返回结果或超时。
# 典型远程调用伪代码示例
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 Gateway Network 分布式架构与数据同步 中心 Gateway(主节点) 全局客户端 / 历史归档 / 报警汇总 远程标签提供者 / 服务调用入口 边缘 Gateway A(从节点) 本地 PLC 采集 / 本地缓存 历史缓冲 / 报警产生 边缘 Gateway B(从节点) 本地设备控制 / 标签提供 断网自治 / 恢复同步 对等 Gateway C 多产线协同 / 双向调用 按需订阅 / 权限受控 远程服务调用 / 反向读取 标签 / 历史 / 报警同步 远程调用 数据同步 对等调用 / 订阅 事件 / 数据回传 图例说明 远程服务调用(请求方向) 数据同步(标签 / 历史 / 报警) 对等模式双向通信 主从模式:边缘节点向中心汇聚数据,中心可反向调用边缘服务;对等模式:网关之间按需双向调用与订阅。

总结来看,Gateway Network 的架构原理可以归纳为:分布式部署提供本地自治,主从模式解决集中管理,对等模式解决平等协同,远程服务调用解决逻辑执行,数据同步解决状态传递。只有把这几层关系同时设计清楚,才能构建稳定、可扩展的 Ignition 分布式系统。