OPC UA通信在工业物联网中日益普及,但三菱PLC(如FX5U、Q系列)与上位机对接时,常因证书配置或节点地址映射错误导致连接失败。本文以某MES项目为例,详述排查过程。
某工厂上位机(基于Kepware OPC UA Server)需读取三菱FX5U的D寄存器数据,但连接始终报“BadSecurityChecksFailed”错误。初步排查网络连通性正常,防火墙端口(4840)开放。问题根源在于FX5U的OPC UA服务器证书未正确安装至上位机信任列表中。三菱GX Works3在创建OPC UA服务器时,会自动生成自签名证书,需将证书文件(.der)通过“安全设置”导出,并导入到Kepware的“信任证书”文件夹中。
证书问题解决后,又出现“节点不可达”错误。检查发现,工程师在GX Works3中配置的节点ID为“ns=3;s=D100”,但Kepware默认的三菱驱动节点命名空间(namespace)为2。解决方案:在GX Works3的OPC UA配置中,将“命名空间索引”设为2,或在Kepware中自定义节点映射,将“s=D100”解析为“ns=2;s=D100”。此外,注意数据类型匹配:FX5U的D寄存器默认为16位整数,而上位机请求32位整型,需在GX Works3的“变量映射”中指定数据类型为“Int32”,否则返回“BadTypeMismatch”。
调整后,通信恢复正常。此案例强调,OPC UA故障排查需遵循“证书-节点-数据类型”三步法:先确认双向证书信任,再核对命名空间与节点路径,最后统一数据类型,可高效定位90%以上的连接问题。