4. OPC UA通信协议与安全机制
在食品设备数据接入场景中,OPC UA 不只是一个"能读到数据"的协议,它同时提供了传输通道、消息安全与身份权限三层能力。理解这三层如何配合,才能为杀菌釜、灌装机、金属检测机、称重包装线等设备设计出既通得畅、又守得住的通信方案。本节围绕传输协议选择、安全策略配置、用户认证与授权展开,并给出可直接参考的配置思路。
一、传输协议:TCP 与 HTTPS 的分工
OPC UA 的传输绑定主要有两类。其一是 opc.tcp,基于 TCP 的二进制编码,默认端口 4840,传输开销小、时延低,是车间内 PLC、边缘网关与 SCADA 之间最常用的通道。其二是 HTTPS(opc.https / https),基于 HTTP 之上的二进制或 JSON 编码,默认端口 443,天然可穿越企业防火墙与代理,适合跨网段、跨厂区、向 MES 或云端平台汇聚数据的场景。
选择时可把握一个原则:实时采集走 opc.tcp,跨边界汇聚走 HTTPS。例如灌装线 PLC 的 100 ms 级液位、流量数据由边缘网关通过 opc.tcp 采集;网关再以 HTTPS 将聚合后的批次数据上送集团平台。需要注意,HTTPS 绑定在部分旧型号设备或嵌入式服务器上可能未实现,接入前应通过服务端 Endpoint 列表确认其支持的传输配置,而不是想当然地按端口连通性判断可用性。
二、安全策略:签名与加密的组合
OPC UA 的消息安全由 SecurityPolicy 决定,核心是两件事:签名保证报文未被篡改且来源可信,加密保证报文内容不被窃听。常见策略从弱到强大致为 None、Basic128Rsa15、Basic256、Basic256Sha256 及其 Aes 变体。生产环境应至少选用 Basic256Sha256 系列,禁用 None。
安全策略必须与安全模式配合使用:None 模式不签名不加密;Sign 模式只签名不加密,可防篡改但报文明文可见;SignAndEncrypt 模式签名并加密,是食品企业涉及配方、批次、工艺参数时的推荐配置。此外,客户端与服务端需交换并信任各自的应用实例证书,证书中的 ApplicationUri 必须与服务器配置一致,否则会话建立会因证书校验失败而被拒绝——这是现场最常见的接入故障之一。
三、用户认证与授权:从"能连上"到"只能做该做的事"
证书解决的是"这台客户端是否可信",用户认证解决的是"这个操作者是谁"。OPC UA 支持匿名、用户名密码、X.509 证书等认证方式。食品车间建议关闭匿名访问,为网关分配专用服务账号,并采用强密码;对无人值守的采集网关,可改用客户端证书认证,避免密码硬编码在配置文件中。
认证通过后进入授权环节。OPC UA 服务器通过用户角色(Role)与节点访问权限(AccessLevel、UserAccessLevel)控制读写。实践中应遵循最小权限:采集网关只授予工艺参数节点的读权限,配方下发账号才具备写权限,设备维护账号可访问诊断节点。这样即使某个网关凭据泄露,也无法篡改杀菌釜的温度设定值。
四、一个可参考的接入配置示例
以某乳品厂灌装线为例:PLC 内置 OPC UA 服务器,边缘网关采集液位、流量、运行状态,并上送 MES。关键配置如下(参数为教学示例,实际以设备手册为准):
# 网关侧 OPC UA 客户端连接参数(示例)
EndpointUrl = opc.tcp://192.168.10.21:4840
SecurityPolicy = Basic256Sha256
SecurityMode = SignAndEncrypt
ApplicationUri = urn:foodplant:gateway:line03
ClientCertificate= gateway_line03.der # 已导入服务器信任列表
UserIdentity = 用户名/密码(服务账号 gw_line03)
SessionTimeout = 60000 ms
PublishingInterval = 500 ms
# 采集节点(只读)
ns=2;s=Line03.Filler.Level
ns=2;s=Line03.Filler.FlowRate
ns=2;s=Line03.Filler.RunState
配置完成后,判断接入是否成功的依据不只是"能读到值",而应逐项确认:会话状态为 Activated;安全策略协商结果与配置一致;服务器信任列表中已出现网关证书;用错误密码连接应被拒绝;用只读账号尝试写入节点应返回 BadUserAccessDenied。这四项都通过,才说明安全链路真正生效。
综上,食品设备 OPC UA 接入的安全方案可以概括为:车间内用 opc.tcp 承载实时数据,跨边界用 HTTPS 汇聚;统一采用 Basic256Sha256 与 SignAndEncrypt;以证书建立可信通道、以账号区分操作者、以角色约束读写范围。三者叠加,才构成一条可审计、可追责、可持续运行的数据链路。