OPC数据采集DCOM配置指南-转载

OPC数据采集DCOM配置指南

https://rtcloud.ipcsun.com/cms/docs/reader/OPC数据采集DCOM配置指南(500)#Bmc1Q-PGbk

开放平台通信Open Platform Communications)简称OPC
,旧称“用于过程控制OLE
”,是用于工业自动化
的一种通信标准。设备制造商(特别是PLC)如果遵从这一标准,则实时数据可提供给OPC
Server,上位机的软件(称为OPC Client)直接访问OPC Server就可以获取到设备数据,从而对不同的设备的差异透明化。

1996年首次发布后,由OPC基金会
维护这一标准。[1]
2011年名字从“用于过程控制的OLE”改为“开放平台通信”,[2]
以反映OPC已经从过程控制领域推广到智能建筑离散制造
等。OPC也超出了传统的OLE技术
,采用了.NET FrameworkXML
、OPC基金会的二进制编码TCP格式。

起源与使用

开放平台通信(OPC)规范是以微软
所开发,针对Microsoft Windows
操作系统下的对象链接与嵌入
(DDE)、组件对象模型
(COM)及Distributed COM
(DCOM)技术为基础。规格定义了过程控制及工厂自动化需要的对象接口
方法,目的是为了达到互操作性
。最常见的OPC规范是读写实时资料用的OPC资料存取
(OPC DA)。许多制造商提到OPC时,所指的其实就是OPC Data Access。OPC DA在初版发行起,已有三个主要的版本,所有版本都向后兼容。第一版OPC
DA的客户端仍可以存取第三版OPC DA的服务器,各版本会增加机能,但原有的机能仍然要支持。不过若客户端允许资料写入,就不支持旧版的服务器,例如DA
3 相同的客户端不一定支持DA 1.0的服务器。

除了OPC
DA规范外,OPC基金会也维护OPC Historical Data Access
(OPC HDA)的规范。OPC DA存取的是实时的资料,OPC HDA允许存取及检索已存档的历史资料。

OPC基金会还维护OPC Alarms and
Events的规范,定义警告及事件型式的消息信息,类似变量状态及状态管理的消息[3]

设计

开放平台通信的设计目的是提供Windows-based软件应用程序以及程序控制硬件共同的桥梁。规范中定义从车间楼层设备存取现场设备的一致性方法。不论资料的来源及类型如何,方法都是不变的。某一硬件设备的OPC服务器提供OPC
Client存取资料的方式,和其他设备的OPC服务器提供的方式都是一样的。目的是为了减少硬件设计者、软件合作厂商、SCADA
HMI
厂商花在处理这类问题,创建相关接口上的心力。只要硬件制造商针对其硬件设备开发了OPC服务器,他们的工作就已经完成,任何设备都可以存取其信息,只要SCADA制造商开发了OPC
client,就可以存取OPC相同的硬件。

OPC服务器提供方法给许多不同的软件包(前提是这些软件要是OPC
client),让程序控制设备(例如PLCDCS
)来存取资料。传统上,若软件需要从一个设备存取资料,需要撰写客制的界面(驱动程序)。OPC的目的就是定义共同的接口,只要开发一次,任何SCADA、人机界面或是电脑软件都可以用此接口存取资料。

OPC规格没有限制服务器提供哪些资料给程序控制设备。OPC服务器可以发送MCU的内部温度,也可以发送某一地区目前的温度。

只要某个设备已经有了OPC服务器,其他可以作为OPC
client的软件就可以存取此一设备。OPC服务器使用微软的OLE技术(也称为组件对象模型,COM)来和client通信。COM技术提供在软件应用程序以及程序硬件之间即时的资料交换。

OPC规范中有一些已经出版发行,其他一部分只开放给OPC协会的成员,没有一家公司拥有OPC规范,任何一家公司就算不是OPC协会的成员,也可以开发OPC服务器,非成员不一定要使用到最新的规范。任何人都可以集成OPC产品,系统集成商也不需要属于任何组织。每家需要OPC产品的公司可以自行决定其产品是否要经过认证,其系统集成商是否有需要接受必要的训练。

未来

OPC UA(OPC Unified Architecture)已经有对应的规范,并且其早期Adopters版本已经部署并且进行测试。OPC
UA可以用JavaMicrosoft .NETC语言
实现,避免了早期OPC版本需要用Microsoft Windows
为基础的系统才能实现的问题。UA结合了现有OPC接口的功能,又加入了像XML
Web Services
等技术,来支持高阶的制造执行系统
(MES)及企业资源计划(ERP)等应用。

OPC组织和MTConnect
组织在2010年9月16日宣布会彼此合作,让两个标准之间有一致性及互操作性[4]

分布式COM(DCOM)

是一项Microsoft技术,可为Windows应用程序提供在LAN(局域网),WAN(广域网)或Internet(互联网)
连接上从一台计算机连接到另一台计算机的能力。例如,DCOM允许OPC客户端应用程序从一台计算机与另一台计算机上的OPC服务器通信。

img

DCOM

DCOM作为上世纪主流分布式应用技术占据了企业应用的巨大市场份额,导致了目前自动控制领域设备(DCS,PLC等)普遍支持OPC数据采集标准,但由于DCOM基于微软Windows操作系统的二进制标准,底层实现技术封闭,与Windows操作系统安全机制紧密耦合,DCOM配置繁琐,且过程极易失败等诸多问题也普遍为业界所诟病。

OPC DOM 配置方案

RtCloud(实时云平台)总结出一套行之有效的OPC DCOM配置解决方案。

如何顺利的配置OPC相关的DCOM?首先需要了解OPC DA的工作模式及相关程序(组件、服务)以及Windows的DCOM组件工作机制,然后才能正确的配置OPC
DCOM。

OPC DCOM 的工作机制

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)实时数据及其它通知(如服务器关闭)。

img

OPC Clientt/Server安装在同一台计算机

Client和Server在不同的计算机

img

OPC Client/Server安装在不同的计算机

首先,OPC客户端软件访问OPC服务器所在计算机上注册的OPCEnum.exe,查询服务器所在计算机上已注册的所有OPC服务器。OpcEnum组件负责返回所有已注册的OPC服务器信息。

第二步,OPC Client获取已注册OPC服务器信息后,确定需要连接的OPC服务器,并通过ConnectionPoint接口及AdviseSink接口获取服务器的各种配置信息、数据项(Tag)实时数据及其它通知(如服务器关闭)。

在简单了解OPC客户端与服务器的通讯过程后,可以得出一个结论,无论是在同一台计算机还是不同的计算机,OPC客户端和服务器之间的通讯主要涉及三个部分:
OPC ClientOPCEnumOPC Server

步骤1 配置访问账号

配置方案要求在采集侧(OPC客户端)和OPC服务端同时配置一个就有相同账号名称和密码的具有DCOM访问权限的账号,这里假设配置的账号名称为OPCUser,密码为OPCUser*。

调用Windows账号管理器,控制台命令:lusrmgr.msc

img

特别提示

账号要在OPC服务计算机和OPC客户端计算机同样配置

步骤2 设置系统和默认DCOM访问权限

调用DCOM配置管理器,控制台命令:dcomcnfg

img

img

img

img

确认 SystemOPCUser两个账号具有本地和远程访问的权限。

img

img

同样确认 SystemOPCUser两个账号具有本地和远程访问的权限。

img

img

确认 SystemOPCUser两个账号具有本地和远程访问的启动和激活的权限。

img

img

同样确认 SystemOPCUser两个账号具有本地和远程访问的启动和激活的权限

特别提示

上述设置系统和默认DCOM访问权限需要在OPC服务计算机和OPC客户端采集计算机同样进行。

步骤3 OPC服务器设置 OPCEnum 的DCOM访问权限

在OPC服务计算机调用DCOM配置管理器,控制台命令:dcomcnfg

img

img

img

img

img

img

步骤4 OPC服务器设置 OPCDA服务 的DCOM访问权限

在OPC服务计算机调用DCOM配置管理器,控制台命令:dcomcnfg

img

img

img

提示

上述DCOM设置完成后,应重启OPCEnum和OPC服务,使配置生效

步骤5 重启OPCEnum 和OPC服务

在OPC服务计算机调用服务配置管理器,控制台命令:services.msc

img

img

步骤6 设置网络访问安全策略

调用服务配置管理器,控制台命令:secpol.msc

img

img

img

img

特别提示

上述安全策略设置需要在OPC服务计算机和OPC客户端采集计算机同样进行。

步骤7 OPC服务计算机网络防火墙设置

调用防火墙管理器,控制台命令:firewall.cpl

img

配置DCOM 135端口的入站规则

img

img

img

img

配置OPCEnum 的入站规则

img

img

img

img

img

配置OPC 服务的入站规则

img

img

img

img

img

配置OPC 服务的出站规则

img

步骤8 OPC客户端采集计算机网络防火墙设置

配置DCOM 135端口的入站规则

同上述OPC服务计算机135端口的入账规则配置流程。

配置OPC 客户端(采集程序)的入站规则

img

img

img

img

img

img

配置OPC 客户端(采集程序)的出站规则

img

完成