用于过程控制的OLE (OLE for Process Control,opc)的出现为基于Windows的应用程序和现场过程控制应用建立了桥梁。在过去,为了存取现场设备的数据信息,每一个应用软件开发商都需要编写专用的接口函数。由于现场设备的种类繁多,且产品的不断升级,往往给用户和软件开发商带来巨人的工作负担。通常这样也不能满足工作的实际需要,系统集成商和开发商急切需要一种具有高效性、可靠性、开放性、可互操作性的即插即用的设备驱动程序。在这种情况下,OPC标准应运而生。OPC标准以微软公司的OLE技术为基础,它的制定是通过提供一套标准的OLECOM接口完成的,在OPC技术中使用的是OLE 2技术,OLE标准允许多台微机之间交换文档、图形等对象。
OPC的远程配置其实就是DCOM的远程配置。 对于远程访问OPC服务器,需要在客户端和服务器计算机上都进行DCOM设置,一般采用的方式是:客户端、服务器都建立一个名字、密码相同的具有管理员权限的账号,并分别以此登录,在服务器端将OPC服务器的启动方式设为交互式用户。这种方法虽然方便,但安全性较差,不利于在实际应用中推广。这里提供一些较合理的解决方案。(假定都是在工作组里) 在使用了OPC技术并有网络数据访问的应用系统中,不可避免地要进行OPC DCOM权限配置。 DCOM配置与Windows操作系统的安全体系结合在一起,而各版本操作系统(9x、NT、2000、XP等)的安全体现又或多或少地有所区别;同时,OPC服务器运行的方式也不尽相同(进程内、进程外、系统服务、有无界面……);而且,不同的应用系统对安全的要求也不同。总之,要想根据具体情况尽量合理地完成OPC DCOM配置并不是一件很轻松的事。 1)准备 要进行DCOM安全配置,操作者通常必须拥有客户端和服务器计算机的管理员权限。 注意:一般情况下,DCOM通信是基于TCP/UDP的,所使用的端口不固定,很可能被一些防火墙软件屏蔽。如果本文下述配置不成功,请尝试关闭客户端和服务器计算机上的防火墙,或者以带网络连接的安全模式启动系统(这时防火墙软件一般不被自动运行)。 2)简单的情况 用户对网络安全基本上没有要求,或者处于客户端、服务器程序开发阶段。 3)服务器计算机始终有用户登录的情况(NT/2000) 这也是实际应用中比较常见的情况,但对于以NT服务方式运行的OPC服务器不适合。设置方法如下: (1)在服务器计算机上建立一个用户,如OPCUser,可以是管理员,也可以是一般用户,服务器计算机在运行OPC服务器时必须以这个用户登录。 (2)在服务器计算机上建立一个用户组,如OPCClients(单一客户情况下可以不建立,建这个组的目的是管理方便)。 (3)在各个OPC客户计算机中,分别建立OPCUser用户,口令也要与服务器上的一致,可以设为普通用户以保证安全。 (4)客户端计算机运行时不必以OPCUser登录,比如使用ClientA登录,就要在服务器上建立相同的用户ClientA及相同的密码,并在服务器计算机上将ClientA加入OPCClients组中。ClientA在客户端和服务器计算机上都可以是普通用户。 (5)服务器端DCOM配置,运行dcomcnfg,进行如下设置。 ①默认属性:启用DCOM。 ②默认身份验证级别:连接。 ③默认模拟级别:标识。 ④默认安全机制: a.默认访问权限——至少要保证OPCClients组允许访问,也可放宽至Everyone; b.默认启动权限——至少保证允许INTERACTIVE用户调用; c.默认配置权限——一般情况下不需修改。 ⑤默认协议:保证面向连接的TCP/IP在最上,其他可以删除。 ⑥具体的服务器配置: a.常规——身份验证级别为默认值; b.位置——在这台计算机上运行; c.安全性——使用默认的访问和启动权限,配置权限不要修改; d.身份标识——交互式用户; e.终结点——不修改。 ⑦OPCEnum程序配置:在dcomcnfg程序的应用程序列表里找到opcenum.exe,对其按照上面具体服务器的配置进行设置。 (6)客户端计算机的配置:为了保证OPC数据订阅等回调机制能正常运行,需要对客户端计算机的DCOM权限进行配置。默认属性、默认协议的配置和服务器端基本一致;默认安全机制只需要修改默认访问权限。保证允许OPCUser访问,也可放宽至Everyone。 注意:在服务器没有用户登录的情况下,远程将无法启动OPC服务器;对于有用户界面,并需要界面交互的OPC服务器,建议(可能必须)采用这种方式。 4) OPC服务器为后台程序的情况(NT/2000) 这种情况下,服务器计算机可以没有用户登录。作为后台程序,OPC服务器有两种运行方式:系统服务( service)方式和普通用户程序方式。这里只介绍普通用户程序方式。OPC服务器作为普通方式运行的后台程序,一般没有用户界面,完全可以有界面的方式进行配置,即设置为交互式用户启动。但是有界面的配置方式限定了服务器计算机必须有用户登录,而且登录用户必须在客户端计算机上有DCOM访问权限。所以,无界面的后台OPC服务器可以用另一种更灵活的方式运行。 配置方法(未明确说明的部分与3)相同):在服务器端按照3)中所述建立一个OPCUser用户,专门用来运行OPC服务器。然后在OPC服务器属性配置中,将启动方式改为指定用户,注意要输入用户密码。这样,OPC服务器计算机可以用任意用户登录,当客户端计算机发出连接请求时,系统负责以OPCUser的身份运行OPC服务器,如果已经运行则使用已有的OPC服务器。 注意:还有一种启动方式,是“启动”用户,即系统以发连接请求的用户身份启动OPC服务器,这可能造成服务器计算机上同时运行多个OPC服务器的实例,显然不妥。所以一般情况下不建议设置为“启动”用户,虽然它是默认选项。 5) Windows XP系统下的配置说明 在XP操作系统(SP1,不包括SP2及其以后版本)下,OPC的配置实际上和NT/2000基本一样,这体现在OPC DCOM相关的各项配置在注册表中的位置、名称都是一致的,二者只是配置界面不同。
|