定义
OPC DA(OPC Data Access)是 OPC 基金会制定的数据访问规范,基于 Windows COM/DCOM,实现工控设备与上位机、SCADA、DCS 间的实时数据交换。因依赖 Windows 与 DCOM 配置,跨平台与防火墙穿透较复杂,现多由 OPC UA 替代,但老旧系统仍广泛使用。
技术特点
OPC DA 采用客户端/服务器架构,服务器连接 PLC、仪表等设备,客户端(HMI、SCADA、数据采集软件)通过 OPC 接口订阅或轮询数据。支持同步读写、异步读写、订阅(Subscription)等模式。数据项以 ItemID 标识,包含值、质量、时间戳。DCOM 需配置 Windows 防火墙、DCOM 权限,跨机器访问配置复杂;仅支持 Windows 平台。
与 OPC UA 迁移
OPC UA 为 OPC DA 的继任者,支持跨平台、安全加密、信息模型、PubSub 等。新项目建议采用 OPC UA。老旧 DCS、SCADA 若仅支持 OPC DA,可通过 OPC DA 到 OPC UA 的桥接网关,将数据转换为 OPC UA 供云平台、MES 采集。
组件身份与订阅质量
服务器把设备点映射成项
数据访问规范里,服务器站在设备和客户端之间。它自己用厂商驱动去读 PLC 或仪表,再把结果登记成数据项。客户端不关心下面是哪一种总线,只按项标识读取值、质量和时间戳。质量码用来说明这个值能不能用:通信中断、传感器超量程或服务器刚启动尚未刷新时,值字段可能仍残留旧数,质量码才会告诉监控画面“不要信”。
交互有三种节奏。同步读写要等这一次完成才返回,项很多时界面会卡住。异步读写把结果事后送回。订阅则由服务器按约定的刷新周期推送变化,适合画面。订阅周期不是设备本身的扫描周期,点在控制器里已经变了,画面仍要等到下一次回调。把订阅周期设得比工艺变化还慢,报警会晚到。
仅适合同域 Windows 主机
这项技术建立在组件对象模型上,服务器和客户端通常都要跑在 Windows 上,并且能用同一套身份互相启动对象。它适合机房里已经有组态软件、点表多年不变、暂时不能改控制器程序的老系统。新的跨平台采集、需要穿过防火墙或跑在非 Windows 网关上的场合,不应再把这种远程组件调用当作唯一通道,而应评估桥接到新协议。
远程访问前要明确三件事:哪一个 Windows 账号有权启动服务器,防火墙是否放行组件所用的端口,以及服务器进程在没人登录时是否仍会运行。很多现场是工程师登录后正常、注销后画面全停,因为服务器被配成只在交互会话里启动。域策略一改,这种配置就会集体失效。
权限、防火墙和质量码
最常见的故障是权限而不是点表。客户端能 ping 通服务器,浏览项列表却失败,多半是启动和访问身份不一致。用管理员临时打开、用普通服务账号长期运行,结果不同。第二是防火墙只放了固定端口,动态端口仍被挡住,本地连接正常,跨机器订阅随机超时。第三是忽略质量码,通信已经中断,画面继续显示最后一次的压力和温度,操作员据此调节。
项标识跟着服务器工程走,换一台服务器或升级驱动,标识字符串可能变化,客户端全部要重绑。不要把浏览到的顺序当成稳定地址。写命令更要限制权限,否则任何能连上组件的程序都能改设定值。若必须把数据交给非 Windows 的 Modbus 采集侧,应使用专门的桥接,并在桥接点再次检查质量码,禁止把坏质量写成一个看似正常的寄存器。
服务器进程的优先级也要低于控制任务。刷新上千个项时若抢占了同一台工控机上的组态运行,画面和采集会互相拖慢,操作员看到的延迟被误当成现场设备慢。应限制订阅项数量和刷新周期,并把服务器放到独立的主机上,避免和操作站抢同一颗处理器。