把 OPC UA 连接到 Ignition(Inductive Automation)
| 产品 | Ignition (Inductive Automation) |
|---|---|
| 类别 | SCADA |
| OPC UA 角色 | 客户端与服务器 |
Ignition 既是 OPC UA 客户端也是 OPC UA 服务器。网关向外连接 PLC 和网关服务器,并通过内置的 OPC UA 服务器重新发布自己的标签,默认端口为 62541。常见的摩擦点是首次连接时的证书审批,以及硬编码了命名空间索引的标签路径。
开始之前
- 一个已授权的 Ignition 网关,包含你打算使用的 OPC UA 和驱动模块。你的授权包含哪些模块、标签如何计数,必须向 Inductive Automation 确认。
- 从网关到每个 PLC 端点的网络可达性,或者在网络层只允许出站会话时采用 reverse connect 方案。
- 带配置权限的网关 Web 界面访问权,因为证书批准和 OPC 连接都在那里。
- 一个关于下游系统是消费 Ignition 自身的 OPC UA 服务器、还是改用其历史数据库和 MQTT 通路的决定,因为这决定了你的标签语义存放在哪里。
配置方法
- 把远程服务器添加为 OPC 客户端连接在网关配置中添加一个 OPC UA 客户端连接,填入端点 URL、服务器所提供的安全策略与模式,以及它接受的身份令牌。先用安全模式 None 验证网络通路,再作为一次独立的变更切换到签名并加密的端点,这样你才知道是哪一步改动导致了问题。
- 在双向上批准证书第一次安全连接尝试通常会以故障告终。网关会隔离它不信任的服务器证书;请在网关的证书配置中批准它。然后把网关自身的客户端证书从 PLC 的拒绝库移入信任库。任何一侧单独完成都不起作用。
- 用 OPC 浏览器浏览服务器并确认模型用网关的 OPC 浏览器遍历地址空间,检查你关心的节点上的类型定义。这能在一分钟内告诉你设备是按伴随规范建模的,还是一堆扁平标签,从而决定后续需要多少映射工作。
- 用浏览器拖拽创建标签,不要手工输入路径把节点拖入标签文件夹会自动生成 OPC item path,避免抄写错误。让标签层级对应工厂结构而不是 PLC 数据块结构,因为标签树是每个下游消费者所看到的东西。
- 尽可能替换 item path 中的裸命名空间索引Ignition 标签的 item path 会按写入的形式携带命名空间索引。如果 PLC 在程序下载后重新编号命名空间,所有受影响的标签会同时变为坏值。把映射集中在一处维护,记录哪个索引对应哪个命名空间 URI,并在每次 PLC 下载后重新验证。
- 有意识地配置 Ignition 自身的 OPC UA 服务器网关会在自己的端点上通过 OPC UA 提供其标签,默认端口 62541。先决定这个端点是否有必要存在、提供哪些安全策略、允许谁连接,然后与每个消费端完成信任交换。
- 把扫描类设置为数据所需的节奏标签组决定 Ignition 向 PLC 请求的订阅速率。不同速率的数量越少,嵌入式服务器上的订阅就越少,这往往就是 PLC 连接稳定与否的分界。
地址空间是什么样子
这里同时存在两个地址空间,把它们混淆是 Ignition 集成争论的主要来源。南向,Ignition 看到的是 PLC 或网关发布的内容,带着它们的命名空间索引和标识符,并按标签存为 OPC item path。北向,Ignition 通过自己的 OPC UA 服务器发布自己的标签树,因此消费方看到的是 Ignition 的文件夹结构和标签名,而不是 PLC 的。这棵重新发布的树是一个偏扁平的标签层次,用的是 Ignition 自己的命名,不是伴随规范模型:除非你用标签建了等价物,否则它不带设备标识类型、不带标准状态机、不带标准计数器。如果下游需要可移植的语义,建模决策就落在 Ignition 标签树的形状上。
陷阱
- 第一次安全连接失败是正常的,而且这种失败是双向对称的。在整个网关体系中,证书审批是最大的单一部署障碍,因此要在第十台设备之前、而不是之后建立一套书面流程。
- 标签项路径里直接写死了命名空间索引。一次使索引偏移的 PLC 程序下载会让整个标签文件夹同时失效,而 PLC 侧的症状是对仍然存在的节点返回 BadNodeIdUnknown。
- Ignition 自身的 OPC UA 服务器是一个真实暴露的服务器。如果因为它是内部的就放任安全配置宽松,它就是一条通往全厂每一个标签的免认证通路。
- 每一个不同的标签组速率都会在 PLC 上形成一个独立的订阅。嵌入式服务器的订阅数上限很低,因此标签组泛滥是 PLC 连接间歇性故障的常见原因。
- Ignition 会保留最后一个已知值并附带质量标志。除非显示质量标志,否则读取陈旧值的看板与读取实时值的看板看起来完全一样,因此请在重要画面上显示质量,并在任何计算中显式处理坏质量。
- 历史库记录的是 Ignition 按其订阅速率所订阅的内容。事后扩大标签组不会追溯提高分辨率,而建立在旧分辨率上的 OEE 计算会悄然改变行为。
从中获取 OEE 数据
Ignition 适合作为计算 OEE 的地方,不适合凭空造出计算所需的数据。可用率需要设备状态信号,而不是推断出来的运行位:订阅状态变量并存储其迁移,因为每秒采样一次的标签组看不到 400 ms 的停机。计数应当以数值方式从 PLC 计数器读取,溢出和复位在变换中处理,而不是由 Ignition 计数边沿。原因最好以报警或有文档记录的原因代码承载,这样停机才能被归因而不是靠猜。Ignition 可以把班次日历、计划生产时间和标准节拍时间作为自身数据保存,这确实有用,但要明确这是你录入的数据,不是来自设备的数据,而且必须与 MES 或 ERP 认定为权威的数据对账。
最后核对日期 2026 年 9 月 7 日,对照 OPC UA 1.05.07。OPC UA Connect 是教育资源,与 OPC Foundation 无隶属关系。