近两年做工控信创改造的朋友,大概率都被OPC UA折腾过。
原本在Windows Server上跑了好几年的OPC UA采集程序,往统信UOS、银河麒麟上一迁,直接千疮百孔:连接握手失败、证书不被信任、订阅功能失效、数据类型乱码;对接汇川、禾川这些国产PLC的OPC UA服务器更是头疼,标准功能实现参差不齐,有的不支持批量订阅,有的节点Browse路径奇奇怪怪,连不上、读不对是常态。再叠加上国密合规要求,标准OPC UA的RSA-SHA256安全策略过不了测评,改加密协议更是无从下手。
很多人第一反应是换国产组态软件,可定制化差、对接现有业务成本高,很多老系统的业务逻辑根本没法迁。去年我们做了两个市政类的信创改造项目,从Windows迁统信UOS,对接七八款国产PLC和仪表,前前后后踩了半个月的坑,从运行环境、设备兼容到国密安全,硬生生把一套标准OPC UA客户端改造成了全链路国产化适配版本。最终业务代码一行没动,只换了底层适配层,就完成了全系统信创迁移,还过了国密二级测评。
今天就把完整的适配方案分享出来,从跨平台运行、国产设备兼容,到国密安全扩展、工程化兜底,全是现场踩坑验证过的实战经验。不用推翻原有架构,分层改造就能落地。
一、先搞懂:信创环境下OPC UA互通,难在哪?
很多人觉得OPC UA是国际标准,跨平台互通本该是理所当然。真到了国产环境就会发现,标准是标准,实现是实现,从系统到设备再到合规,每一层都有自己的“国情”。
1. 运行环境:跨平台不是改个编译目标那么简单
老的OPC UA客户端大多基于.NET Framework写的,依赖Windows的证书存储、COM组