
OPC服务器的作用是通过OPC协议将DCS的数据取出,并开放,一般一个OPC服务器下面连接一个或多个客户端,客户端通过安装相应的软件(也支持OPC协议),来取得DCS的协议
乐拾芗逸盆然朵邢浏晔链特磊枫待谨璀楷塘丞彰OPC是为了不同供应厂商的设备和应用程序之间的软件接口标准化,使其间的数据交换更加简单化的目的而提出的,是为了连接数据源(OPC服务器)和数据的使用者(OPC应用程序)之间的软件接口标准
百科摘选:
OPC(OLE for Process Control, 用于过程控制的OLE)是一个工业标准,管理这个标准国际组织是OPC基金会,OPC基金会现有会员已超过220家。遍布全球,包括世界上所有主要的自动化控制系统、仪器仪表及过程控制系统的公司。
基于微软的OLE(现在的Active X)、COM (部件对象模型)和DCOM (分布式部件对象模型)技术。OPC包括一整套接口、属性和方法的标准集,用于过程控制和制造业自动化系统。
OPC全称是OLE for Process Control,它的出现为基于Windows的应用程序和现场过程控制应用建立了桥梁。在过去,为了存取现场设备的数据信息,每一个应用软件开发商都需要编写专用的接口函数。由于现场设备的种类繁多,且产品的不断升级,往往给用户和软件开发商带来了巨大的工作负担。通常这样也不能满足工作的实际需要,系统集成商和开发商急切需要一种具有高效性、可靠性、开放性、可互 *** 作性的即插即用的设备驱动程序。在这种情况下,OPC标准应运而生。OPC标准以微软公司的OLE技术为基础,它的制定是通过提供一套标准的OLE/COM接口完成的,在OPC技术中使用的是OLE 2技术,OLE标准允许多台微机之间交换文档、图形等对象。
COM是Component Object Model的缩写,是所有OLE机制的基础。COM是一种为了实现与编程语言无关的对象而制定的标准,该标准将Windows下的对象定义为独立单元,可不受程序限制地访问这些单元。这种标准可以使两个应用程序通过对象化接口通讯,而不需要知道对方是如何创建的。例如,用户可以使用C++语言创建一个Windows对象,它支持一个接口,通过该接口,用户可以访问该对象提供的各种功能,用户可以使用Visual Basic,C,Pascal,Smalltalk或其它语言编写对象访问程序。在Windows NT40 *** 作系统下,COM规范扩展到可访问本机以外的其它对象,一个应用程序所使用的对象可分布在网络上,COM的这个扩展被称为DCOM(Distributed COM)。
通过DCOM技术和OPC标准,完全可以创建一个开放的、可互 *** 作的控制系统软件。OPC采用客户/服务器模式,把开发访问接口的任务放在硬件生产厂家或第三方厂家,以OPC服务器的形式提供给用户,解决了软、硬件厂商的矛盾,完成了系统的集成,提高了系统的开放性和可互 *** 作性。
OPC服务器通常支持两种类型的访问接口,它们分别为不同的编程语言环境提供访问机制。这两种接口是:自动化接口(Automation interface);自定义接口(Custom interface)。自动化接口通常是为基于脚本编程语言而定义的标准接口,可以使用VisualBasic、Delphi、PowerBuilder等编程语言开发OPC服务器的客户应用。而自定义接口是专门为C++等高级编程语言而制定的标准接口。OPC现已成为工业界系统互联的缺省方案,为工业监控编程带来了便利,用户不用为通讯协议的难题而苦恼。任何一家自动化软件解决方案的提供者,如果它不能全方位地支持OPC,则必将被历史所淘汰。本文档根据各种不同的情况,讲述如何进行OPC DCOM配置。 对于远程访问OPC服务器,需要在客户和服务器计算机上都进行DCOM设置,以前我们采用的方式是: 客户、服务器都建立一个名字、密码相同的具有管理员权限的帐号,并分别以次登录,在服务器端将OPC服务器的启动方式设为交互式用户。这种方法虽然方便,但安全性较差,不利于在实际应用中推广。这里提供一些较合理的解决方案。(假定都是在工作组里) (1) 序言 在使用了OPC技术,并有网络数据访问的应用系统中,不可避免地要进行OPC DCOM权限配置。 DCOM配置与windows *** 作系统的安全体系结合在一起,而各版本的 *** 作系统(9x、NT、2000、XP等)的安全体现又或多或少地有所区别;同时,OPC服务器运行的方式也不尽相同(进程内、进程外、系统服务、有无界面……);而且,不同的应用系统对安全的要求也不同。总之,要想根据具体情况尽量合理地完成OPC DCOM配置并不是一件很轻松的事。 本文档根据各种不同的情况,讲述如何进行OPC DCOM配置。 (2) 准备 要进行DCOM安全配置, *** 作者通常必须拥有客户和服务器计算机的管理员权限。 注意一般情况下,DCOM通信是基于TCP/UDP的,所使用的端口不固定,很可能被一些防火墙软件屏蔽。如果本文下述配置不成功的话,请尝试关闭客户和服务器计算机上的防火墙,或者以带网络连接的安全模式启动系统(这时防火墙软件一般不被自动运行)。 (3) 最简单的情况 如果用户对网络安全基本上没有要求,或者处于客户、服务器程序开发阶段, (4) 服务器计算机始终有用户登录的情况(NT/2000) 这也是实际应用中比较常见的情况,但对于以NT服务方式运行的OPC服务器不适合。设置方法如下: Ø 在服务器计算机上建立一个用户,如OPCUser,可以是管理员,也可以是一般用户,服务器计算机在运行OPC服务器时必须以这个用户登录。 Ø 在服务器计算机上建立一个用户组,如OPCClients。 (单一客户情况下可以不建立,建这个组的目的是管理方便) Ø 在各个OPC客户计算机中,分别建立OPCUser用户,口令也要与服务器上的一致,可以设为普通用户以保证安全。 Ø 客户计算机运行时不必以OPCUser登录,比如使用ClientA登录,就要在服务器上建立相同的用户ClientA及相同的密码。并在服务器计算机上将ClientA加入到OPCClients组中。ClientA在客户和服务器计算机上都可以是普通用户。 Ø 服务器端DCOM配置 运行dcomcnfg,进行如下设置: 默认属性: 启用DCOM; 默认身份验证级别:连接 默认模拟级别:标识 默认安全机制: 默认访问权限: 至少要保证OPCClients组允许访问,也可放宽至Everyone; 默认启动权限:至少保证允许INTERACTIVE用户调用; 默认配置权限:一般情况下不需修改。 默认协议:保证面向连接的TCP/IP在最上,其它可以删除。 具体的服务器配置: 常规:身份验证级别为默认值; 位置:在这台计算机上运行; 安全性:使用默认的访问和启动权限,配置权限不要修改; 身份标识:交互式用户。 终结点:不修改。 OPCEnum程序配置: 在dcomcnfg程序的应用程序列表里找到opcenumexe,对其按照上面具体服务器的配置进行设置。 Ø 客户计算机的配置: 为了保证OPC数据订阅等回调机制能正常运行,需要对客户计算机的DCOM权限进行配置。 默认属性、默认协议的配置和服务器端基本一致; 默认安全机制只需要修改默认访问权限。保证允许OPCUser访问。也可放宽至Everyone。 注意 在服务器没有用户登录的情况下,远程将无法启动OPC服务器; 对于有用户界面,并需要界面交互的OPC服务器,建议(可能必须)采用这种方式。 (5) OPC服务器为后台程序的情况(NT/2000) 这种情况下,服务器计算机可以没有用户登录。 做为后台程序,OPC服务器有两种运行方式:系统服务(service)方式和普通用户程序。 这里只介绍普通程序方式,系统服务方式的配置说明以后添加。 OPC服务器做为普通方式运行的后台程序,一般没有用户界面。完全可以按照(1)中有界面的方式进行配置,即设置为交互式用户启动。 但是(1)的配置方式限定了服务器计算机必须有用户登录,而且登录用户必须在客户计算机上有DCOM访问权限。所以,无界面的后台OPC服务器可以用另一种更灵活的方式运行。 配置方法:(未明确说明的部分与(1)相同) 在服务器端按照(1)中所述建立一个OPCUser用户,专门用来运行OPC服务器。然后在OPC服务器属性配置中,将启动方式改为指定用户,注意要输入用户密码。 这样,OPC服务器计算机可以用任意用户登录,当客户计算机发出连接请求时,系统负责以OPCUser的身份运行OPC服务器,如果已经运行则使用已有的OPC服务器。 注意还有一种启动方式,是“启动”用户。即系统以发连接请求的用户的身份启动OPC服务器,这可能造成服务器计算机上同时运行多个OPC服务器的实例,显然不妥。所以一般情况下不建议设置为“启动”用户,虽然它是缺省选项。 (6) Windows XP系统下的配置说明 在XP *** 作系统(SP1,不包括SP2及其以后版本)下,OPC的配置实际上和NT/2000基本一样,这体现在OPC DCOM相关的各项配置在注册表中的位置、名称都是一致的。 二者只是配置界面不同开发方式有三种:
1。
简单的:就是应用已经有的如DDE to OPC 或串口 to OPC,modbus to
OPC等软件把您的设备变成相关的OPC服务器。方法简单实用,费用合理快速,让你马上搭上OPC的快车。主要缺陷:你的设备必需是标准设备或更标准设备
相容。这种方式比较适合产品多的厂家快速的转型,或提供OPC相关产品。
2。
一般的:应用第三方的开发包开发,这种方式相对来说减少了开发的难度,而且第三方有相应的技术支持,开发商专业做这种产品,产品有一定的稳定性。这种方式
对开发包有依赖性,并且OPC服务器的稳定性依赖第三方的开发水平。本方法适于老板要求你马上开发出OPC产品是^_^,或者入门者使用。国内相关的开发
包有华富慧通的和拓林的开发包。
3。有难度的:应用COM开发。这种开发方式是最可以学习到东西的。但需要有一定的基础,而且需要对英文有一定的认识度。我用过kepware写过,没用过组态王,不太明白你说的主动与被动。客户端添加Group的时候,你只要把IsSubscribed设置为true,服务器端就会在数据发生变化时,触发客户端的DataChange事件,这应该就是你说的主动;而客户端的异步读、写事件AsyncRead、AsyncWrite,则是主动向服务器请求,这应该就是你说的被动。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)