logo资料库

opc dcom配置出现问题的解决方案.pdf

第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
资料共14页,剩余部分请下载后查看
OPC DCOM 问题处理 文档类型 (User Guide) Edition (2008 年 12 月) Troubleshooting DCOM
摘 要 本文档介绍如何解决 OPC 通讯中的 DCOM 的问题 关键词 OPC DCOM Key Words OPC DCOM IA&DT Service & Support Page 2-14
目 录 1.不能浏览远程计算机的OPC Server 2. 不能连接到远程计算机的OPC Server 3. 所有的Item显示为Bad 4. OPC Client 不能接收更新的数据 5. OPC Server 所在的计算机有高的CPU利用率。 IA&DT Service & Support Page 3-14
OPC 技术提供一种互联的, 可靠的和安全的通讯平台。然而, OPC 是非常依赖于DCOM架构. 这包括了Windows 的安全和防火墙的设置, 访问控制列表, server认证, 等等.因此,OPC 不 能向期望的那样正常工作,而且最终解决这些问题是很困难,原因是一个问题会导致多个症 状. 本文讨论最常发生的5问题,导致问题的原因,和如何解决。 一个结构化的方法快速的解决这5问题: 1.不能浏览远程计算机的OPC Server 2. 不能连接到远程计算机的OPC Server 3. 所有的Item显示为Bad 4. OPC Client 不能接收更新的数据 5. OPC Server 所在的计算机有高的CPU利用率 当出现了上面所描述的问题后,下面将介绍出现问题原因及解决的办法。 1. 不能浏览远程计算机的OPC Server 首先遇到的问题是不能浏览远程计算机的OPC Servers . 浏览的功能是OPC Client应用程 序能够查看安装在远程计算机的OPC Servers. 当OPC Client执行了一次浏览实际上是它连 接到驻留在远程计算机上的OpcEnum的映像, 并检索出可访问OPC Server的列表. 这包括了 每个OPC Server 的ProgID (友好的用户接口名字) 和GUID (数字形式的识别号). 从这一 点看出, OPC Client并不是真正直接连接到OPC Server. 因此, 检索出的列表是与OPC Server的状态是无关的或者说是与OPC Server的可操作与否是无关. 浏览OPC Servers失败 导致的直接结果是不能获得远程计算机OpcEnum中通讯所需参数. 造成这个问题可能有几个 原因,如下所述. 1.1 OpcEnum没有安装 OPC基金会负责创建和维护OpcEnum. OPC基金会的成员能够从OPC基金会直接免费获得 OpcEnum OpcEnum一般会在安装OPC Client或者OPC Server时安装; 然而,并非都如此. 因 IA&DT Service & Support Page 4-14
此,可能出现没有安装 OpcEnum的情况. OpcEnum 仅能浏览运行它所在计算机上的OPC Servers,因此, OpcEnum 不能浏览远程的计算机. 即使是安装了OpcEnum在你的计算机上, 也不能浏览远程的计算机.用Windows Explorer去查找一下OpcEnum是否安装在你期望浏览的 计算机上.文件名为OpcEnum.exe. 如果OpcEnum没有安装, 需要安装. 1.2 OpcEnum 被禁止 即使是OpcEnum被安装在了远程的计算机上,它也必须能够被执行,否则,通讯将会失败.如果 在“Startup Type” OpcEnum被设置成为“Disabled” 那么Windows将不能运行OpcEnum. 因此, 必须使能able OpcEnum. 检查OpcEnum启动的类型,按下列步骤: •单击开始, 再单击控制面板. 在单击性能和维护, 单击管理工具,然后双击计算机管理. 在计算机管理窗口里的控制树的根目录下显示"Computer Management (Local)" • 在面板树里, 展开服务和应用并单击服务 •在右面的window面板里. 如果启动类型被设置为 “Disabled”,那么OpcEnum实际是关闭的 需要选择使能 (下面). 如果在列表里没有 OpcEnum,那么可能是像步骤 “1.1 OpcEnum 没 有被安装启动类型已被设置为手动或者自动,那么需要跳到步骤“1.3 匿名登陆权限没有设 置。 •为了使能 OpcEnum, 右击 OpcEnum, 选择属性选项在启动类型的组合框里选择手动. 当然也 可以选择自动设置, 这里建议选择手动,这样当 OpcEnum 只有当需要执行时才执行. IA&DT Service & Support Page 5-14
现在已经正常设置了OpcEnum的启动类型, 再一次试着去浏览远程计算机. 如果仍然不能正 常工作, 可参考下面的步骤. 1.3 匿名访问的权限没有被设置 OpcEnum需要匿名访问的的权限才能正常的工作. 如果不提供这个访问权限, 没有一个可以连 接到OpcEnum 并且浏览计算机. 这一点往往是容易被忽视的因此也需要在Windows COM缺省安 全中添加匿名访问的权限。 2. 不能连接到远程计算机的OPC Server 能够浏览远程计算机的OPC Server 和连接到远程计算机的OPC Server是无关的. 例如, 即使 是远程计算机没有安装OPCEnum ,也是可以连接到远程计算机的OPC Server. 在这种情况下, 只要知道远程计算机的识别号(可以通过浏览或者只是简单“knowing”正确的GUID), 但如果 还是不能建立OPC的连接, 可能有其它的原因造成失败。 2.1 OPC Server被禁止 如果OPC Server被设置以Windows 服务的方式运行,是不能够禁止的.所以需要检查一下,检 查的方法和前面 “1.2 OpcEnum 被禁止”里提到的方法一样. 设置OPC Server启动类型按 OPC Server供应商建议的方式设置. IA&DT Service & Support Page 6-14
2.2 用户身份认证的问题 可能的原因是在远程的计算机身份认证没有通过. 认证是验证用户身份的流程. Windows系统 会比较用户名和密码, 如果是操作系统不能识别的用户,就会立即拒绝访问更不用提是与 OPC Server建立连接,这可能发生了下面的两种情况 a) 用户的账户在远程的计算机上并不存在 : 如果试图从的一个域访问另一个域时,需要建 立域间的信任关系,或者添加用户到所有的域.如果使用的是工作组,就需要添加用户到远程的 计算机.如果使用单域系统就不存在这个问题. b) 关闭Simple File Sharing is turned on: Simple File Sharing 可以去掉远程访问计 算机的用户名和密码,这样用户就不能正确的被认证. 2.3 访问控制列表问题 当认证了一个来访问的用户账户后, 存在系统检查是否用户账户有启动或者访问OPC Server 的权限. 这是利用访问控制列表来完成的(ACL). 对于每个应用程序的ACL 包括了用户账户 的信息,哪些用户被被允许或者拒绝对具有特定操作权限. 因此,可能在ACL中由于账户没有 有相应的操作权限而被操作系统拒绝访问. 2.4 OPC Server身份验证的问题 IA&DT Service & Support Page 7-14
访问OPC Servers是由ACL管理. 然而, 必须把OPC的认证方式与实际的情况结合. 关于OPC Server认证的问题可参考“OPC 和 DCOM: 需要知道的5个步骤.”中的 “4.配置DCOM特殊设 置”. 3.所有的项显示为Bad 当与一个OPC Server建立连接时, 必须能够识别远程计算机的账户并且给予它适当的访问 OPCServer 的权限. 这就需要与OPCServer建立同步的通讯连接而且能够轮询到OPC Server 的数据.如果所有的 OPC Server 项数据指示为bad quality,这可能是由于下面的两个原因引 起. a)在OPC Server里的数据实际就是bad.换言之, OPC Server从数据源中获得的数据就是失败 的. 这可能是由于各种原因造成的, 但总的来说,可能是由于OPC Server没有和PLC建立连接. 位上了找到是否是这种情况, 简单的用同步读设备. 这类读的方法直接使OPC Server从数据 源中检索最近的数据. 如果在 OPC Server仍然返回的是bad值,那么必须检查一下OPC Server和数据之间的通讯. b)OPC Client采用订阅的方式来更新,可能是由于回调失败. 如果是这种情况,可按 “4. OPCClient不接收更新的数据”. 4. OPC Client不接收更新的数据 由于安全配置的问题会导致OPC Client应用不能接收更新的数据. 在得出这个结论前,参考 “3. 所有的项显示Bad Quality” 保证OPC Server实际上可以接收正确的接收数据. 一旦 确认OPC Server实际上是能够接收数据的,这样就不用怀疑是OPC Server通讯失败造成的.OPC 支持基于时间汇报机制,因此当数据发生了变化OPC Server就会发送更新的数据到OPC Client. OPC术语中指的 “subscription.”机制. OPC Servers通过异步回调把订阅的数据更新. 换 言之,当OPC Server侦察到一个数据的改变,它就会立即“calls” client带着更新的数据. 这也是一个异步机制因为OPC Client不知到OPC Server将会在什么时候发送数据. 然而如果 不能正确设为设置安全的设置,数据的更新就会失败. 在OPC Client 应用程序指示为 “Bad.” 若发现从OPC Server中取得的数据不更新, 就可以尝试用同步的方式从OPC Server 读数据. 若此时数据读到了,那么肯定是异步回调失败, 这可能是由下面的原因造成. 4.1 防火墙 如果OPC Client计算机在防火墙(硬件的或者软件的) 之后, 到达目的地时回调可能失败.当 然OPC Client 能够发出OPC 请求,但当从OPC Server发出的回调被防火墙阻塞. 关于如何关 IA&DT Service & Support Page 8-14
分享到:
收藏