1. 前言
OPC DCOM的设置是实现跨网络OPC通信的基础,现有的一些OPC DCOM配置教程虽然讲解了如何配置DCOM,但没有讲清楚为什么要这么做,而且各个教程涉及的配置方法也不尽相同。
为了彻底搞清楚OPC DCOM的配置过程,我重新做了两台机器的系统,一台是Windows 7 32位,一台是Windows 10 64位,并且重零开始完整的测试了正常运行OPC DCOM所需的最少的配置条件,并进而测试了如何在不关闭Windows防火墙,不切换专用用户(一般的教程都需要在OPC客户端和OPC服务器的计算机上使用同一个用户账户登录)。不敢独享成果,拿出来和各位专业人士商榷。
本文为原创文章,请勿抄袭。谢谢
2. 基础知识
如何顺利的配置OPC相关的DCOM?首先需要了解OPC DA的工作模式及相关程序(组件、服务)以及Windows的DCOM组件工作机制,然后才能正确的配置OPC DCOM。
所谓的正确配置DCOM,不仅仅是能完成客户端与服务器的通信,而是要求能够确保Windows系统的安全,还包括灵活运用Windows账户,而不是非得需要在服务器和客户端计算机上使用同一个账户。另外,也无需关闭Windows防火墙就能实现OPC DCOM通信。
2.1 OPC DCOM的工作机制。
2.1.1 Client和Server在同一台计算机
当Client和Server在同一台计算机时,首先,Client向OpeEnum组件(CLSID: {13486D51-4821-11D2-A494-3CB306C10000})发起查询本机已注册的所有OPC服务器(包括2.0标准(GUID : {63D5F431-CFE4-11D1-B2C8-0060083BA1FB})的及1.0标准(GUID : {63D5F430-CFE4-11d1-B2C8-0060083BA1FB})的服务器。OpcEnum组件负责返回所有已注册的OPC服务器信息。
第二步,OPC Client获取已注册OPC服务器信息后,确定需要连接的OPC服务器,并通过ConnectionPoint接口及AdviseSink接口获取服务器的各种配置信息、数据项(Tag)实时数据及其它通知(如服务器关闭)。

2.1.2 Client和Server在不同的计算机
OPC Slient和Server安装在不同的计算机上,如果需要实现Client和Serve的互联互通,Client和Server所在计算机必须安装有标准的OPC DA组件,并完成系统注册。标准的OPC DA组件包括:
- opc_aeps.dll
- opcbc_ps.dll
- opccomn_ps.dll
- opcdaauto.dll
- opchda_ps.dll
opcproxy.dll
opcsec_ps.dll

首先,OPC客户端软件访问OPC服务器所在计算机上注册的OPCEnum.exe,查询服务器所在计算机上已注册的所有OPC服务器。OpcEnum组件负责返回所有已注册的OPC服务器信息。
第二步,OPC Client获取已注册OPC服务器信息后,确定需要连接的OPC服务器,并通过ConnectionPoint接口及AdviseSink接口获取服务器的各种配置信息、数据项(Tag)实时数据及其它通知(如服务器关闭)。
在简单了解OPC客户端与服务器的通讯过程后,可以得出一个结论,无论是在同一台计算机还是不同的计算机,OPC客户端和服务器之间的通讯主要涉及三个部分:OPC Client、OPCEnum.exe和OPC Server。
下面以Windows 7 32位版本为例,说明OPC DCOM的配置过程。
3 基本(最简单)的配置方法
3.1 概述
本节所介绍内容,均通过Windows 10及Windows 7的测试。
3.2 关闭Windows防火墙
为了简