冯工聊数采NodeSCADA · 工控老兵手记 · OPC UA对接MES 数采软件OPC UA PLC数据OPC UA
OPC UA这个词,做自动化的人不陌生,但真正在项目里用过的不多。大多数人的印象停留在"西门子高端PLC支持OPC UA",或者"SCADA软件有OPC UA客户端",但采集软件这边起一个OPC UA Server——这个方向很多人没想到过或者没注意过。
这篇说的就是这件事。

先说OPC UA适合什么场景
前几篇说的HTTP推送和MQTT,都是采集软件主动把数据推出去。OPC UA的逻辑反过来——采集软件起一个Server,上层系统来连、来读,想要什么点位的数据自己取。
这种"拉"的模式,在几个场景下特别顺手。
多个上层系统都要读同一批数据。 OPC UA Server起来之后,所有有权限的客户端都能连上来读,采集侧不需要为每个系统单独配推送任务。
甲方IT对HTTP和MQTT不熟,但自动化背景强。 OPC UA是工业标准,做自动化的人接受度高,有时候比说HTTP更容易推进。
传统做法:中间多一层网关
没有OPC UA Server能力的数采软件,要把数据暴露给支持OPC UA的上层系统,通常要加一台OPC UA网关——采集软件写数据库,网关读数据库再转成OPC UA节点,上层系统连网关。
多一层就多一个故障点,多一份维护成本,数据延迟也多一截。
我在4月份的一个项目里就踩过这个坑。食品厂,甲方的MES原生支持OPC UA,但当时用的数采软件没有OPC UA Server能力,集成商给的方案是加一台硬件OPC UA网关做中转,结果网关存数据库有问题,它的强项是采数,存数据库这里有BUG,数采、网关、MES三边互相排查,耗了两天才定位到是网关bug,最后无奈换方案解决。
采集软件直接起OPC UA Server
后来换了思路,用NodeSCADA做采集,它可以直接启动一个OPC UA Server,有好几个好处
- 所有采集进来的点位自动作为节点暴露出去
- 不需要手动配置映射
- 不需要中间网关。
MES那边OPC UA客户端连上来,浏览节点树,直接绑定就能用。

这个方式的好处是:
点位新增不需要额外操作。 采集侧加了新设备、新点位,OPC UA Server里自动就有了,上层系统刷新一下节点树就能看到,不需要去网关里手动加节点。
省掉一层架构。 链路从"采集软件→数据库→OPC UA网关→MES"变成"采集软件→MES",少了两个环节,延迟低,故障点少,维护简单。
OPC UA的安全认证
OPC UA协议本身支持证书认证和加密传输,比HTTP裸推安全性高,这也是它在工业场景里被推崇的原因之一。
但实际项目里,安全配置这块经常卡人。第一次搞不熟悉的话容易折腾半天。内网环境、对安全要求不高的项目,可以先用匿名模式跑通,然后开启 用户名密码模式 安全认证。
什么时候不适合用OPC UA
说了这么多OPC UA的好,也说说它不适合的场景。
上层系统没有OPC UA客户端,或者二次开发成本高。这种情况下,HTTP推送反而更省事,对方有HTTP接口就能对接,不需要上层系统做任何改造。
需要主动推送、有数据完整性要求的场景。OPC UA是拉模式,采集侧不主动推,如果网络不稳定上层系统没来读,那段数据就可能漏。对数据完整性有要求的,HTTP历史库推送或者MQTT QoS更合适。
这两种情况回到主动推送就好——HTTP推送适合对接单个MES、有标准REST接口的场景;MQTT适合一份数据多个上层系统消费、或者要对接IoT平台的场景;RabbitMQ适合工厂IT本来就有消息队列基础设施的情况。这几种方式我在前面的文章里都具体说过,感兴趣可以翻一下这个专栏的前几篇。
如果你现在在做的项目,上层系统恰好支持OPC UA客户端,可以去看看 NodeSCADA,OPC UA Server功能开箱即用,点位自动映射,文档里有连接配置的详细说明。
下一篇用一个完整案例把前面说的几种方式串起来,看看实际项目里怎么组合用。
冯工聊数采NodeSCADA · 持续更新工控数采实战经验
1124



被折叠的 条评论
为什么被折叠?



