2. Ignition平台基础

Ignition 是 Inductive Automation 推出的工业级 SCADA/HMI 与 MES 平台,其最大特点是“以 Gateway 为中心”的 Web 架构。理解这套架构,是后续学习报警、报表与权限工程的前提。因为报警的触发与确认、报表的生成与下载、权限的校验与继承,最终都落在 Gateway 的服务、Designer 的配置以及 Vision/Perspective 的客户端呈现上。本节先建立整体地图,再逐层拆解各模块的职责与协作方式。

一、核心原理:以 Gateway 为中心的 Web 架构

Ignition 不是传统的“每台操作站装一份组态软件”的模式,而是把运行时、数据连接、报警引擎、历史存储、报表引擎、用户与权限全部集中在 Gateway 中。客户端(Vision Client、Perspective 浏览器/移动端、Designer)通过 HTTP/HTTPS 与 Gateway 通信,Gateway 再通过 OPC UA、Modbus、SQL 等驱动与 PLC、数据库交互。这种集中式架构带来三个直接结果:

  • 单点配置、全局生效:报警管道、报表模板、用户角色只需在 Gateway 配置一次,所有客户端共享。
  • 客户端零安装或轻安装:Perspective 只需浏览器;Vision 通过 Java Web Start 启动,无需逐台部署工程。
  • 权限集中校验:身份认证与角色授权在 Gateway 完成,Vision 与 Perspective 只负责按角色显示或隐藏功能。
一句话记忆:Gateway 是“大脑与服务端”,Designer 是“配置台”,Vision 与 Perspective 是“两张脸”,报警、报表、权限是贯穿三者的“三条业务线”。

二、模块职责与协作关系

下面这张结构关系图展示了 Gateway、Designer、Vision、Perspective 以及报警/报表/权限三条业务线的位置关系。图中左侧是配置侧,中间是运行时核心,右侧是客户端呈现,底部是数据与存储来源。

Ignition 平台架构与三条业务线 Designer 配置台 工程编辑 / 脚本 / 模板 报警管道配置 报表模板设计 Gateway 运行时核心 Web 服务 / 身份认证 / 项目运行 报警引擎 状态 / 确认 / 抑制 报表引擎 模板 / 调度 / 导出 用户、角色与权限(Identity Provider) 认证 · 角色映射 · 组件级授权 Vision 客户端 桌面 / 触屏 / 多窗口 报警状态表 · 报表查看 Perspective 客户端 浏览器 / 移动端 / 响应式 报警卡片 · 报表下载 按角色显示页面 数据与存储层 OPC UA / Modbus / SQL 数据库 / 历史库 三条业务线 ① 报警:触发→确认→归档 ② 报表:取数→渲染→导出 ③ 权限:登录→角色→授权 三者均在 Gateway 汇聚 由 Designer 配置、客户端呈现 部署 推送 推送 读写 配置

三、Vision 与 Perspective 的差异与选型

Vision 是 Ignition 的传统客户端,基于 Java Swing,适合固定工位、多显示器、复杂桌面交互的场景,例如中控室大屏、工程师站。Perspective 是新一代 HTML5 客户端,天然支持浏览器与移动端,适合远程访问、跨平台、响应式布局,例如车间平板点检、管理层手机查看报警。两者可以共存于同一 Gateway,共享报警与报表后端,但页面与组件不通用,需要分别设计。

对比项 Vision Perspective
运行方式 Java 客户端,需启动器 浏览器/移动端,无需安装
布局能力 绝对定位,适合大屏 响应式,适合多尺寸
报警呈现 Alarm Status Table 组件 报警卡片/列表,可自定义
报表查看 内嵌报表查看器 浏览器下载或在线预览
权限控制 组件级 visible/enabled 绑定角色 页面/组件级授权,支持会话
典型场景 中控室、工程师站 移动巡检、远程管理

四、报警、报表、权限的应用场景

把三条业务线放进真实场景,更容易理解它们如何依赖平台架构:

  • 报警场景:PLC 中某液位超过高限,Gateway 报警引擎按管道规则触发报警,Vision 中控室弹出报警状态表,值班人员点击“确认”,确认记录写入历史库;同时 Perspective 移动端向值班主管推送报警卡片。权限决定“谁能确认、谁能抑制”。
  • 报表场景:每天 08:00,Gateway 报表引擎按调度执行模板,从 SQL 历史库取前一日的产量与报警统计,生成 PDF 并邮件发送。操作员在 Perspective 中只能下载本班组报表,工程师可查看全部。
  • 权限场景:用户登录后,Gateway 完成认证并映射角色(如 Operator、Supervisor、Engineer)。Vision 中“参数修改”按钮仅对 Engineer 可见;Perspective 中“报警确认”页面对 Operator 开放,“报警抑制”仅对 Supervisor 开放。
设计建议:先在 Gateway 中规划好用户源(内置、AD 或 SSO)与角色命名,再在 Designer 中统一绑定。角色命名一旦确定,报警确认、报表下载、页面访问都复用同一套角色,避免后期到处改脚本。

五、常见误区与复盘

初学者最容易犯的错误,是把 Ignition 当成“单机组态软件”来用,导致配置分散、权限混乱。以下三点值得复盘:

  1. 误区一:在客户端脚本里写死权限判断。正确做法是使用 Gateway 的角色体系,在组件或页面级别绑定角色,脚本只做辅助。
  2. 误区二:报警确认与报表下载不做权限区分。应通过角色控制,避免操作员误确认或越权下载敏感报表。
  3. 误区三:Vision 与 Perspective 各配一套报警。报警管道应集中在 Gateway 配置,两个客户端只负责呈现,保证报警状态一致。
# 典型 Gateway 角色规划示例(概念示意)
角色          报警确认   报警抑制   报表下载   参数修改
Operator        ✓          ✗         本班组      ✗
Supervisor      ✓          ✓         全部        ✗
Engineer        ✓          ✓         全部        ✓
注意:Perspective 的会话与 Vision 的客户端会话是独立的。若使用同一用户在不同客户端登录,权限角色一致,但会话状态、页面缓存不同,排障时不要混淆。

掌握本节架构后,后续的报警管道配置、报表模板设计、权限角色绑定,都可以落到明确的模块上:配置在 Designer,运行在 Gateway,呈现在 Vision 与 Perspective。理解这条主线,学习效率会显著提升。