OPC接口使用技巧

   OPC接口是由OPC基金会制定的,基于DCOM技术的,用于控制系统软件之间进行数据通讯的接口规范。由于其开放性和高效性,现在已被广泛应用于自动化控制领域及生产信息管理中。紫金桥软件遵照OPC接口规范实现了相应接口,大大增加紫金桥软件的开放性。在使用OPC接口驱动时,由于配置参数或者运行环境设置不当,可能达不预期的效果,有的甚至影响控制系统的稳定性。下面根据实际工作经验介绍一些OPC接口使用技巧:

   认真阅读OPC Server使用手册
   在使用OPC接口进行数据采集时一定要先阅读OPC Server的使用手册或在线帮助,因为在通讯时使用的OPC服务器名称(ProgID)及进行DCOM配置时使用的组件名称通常是由OPC Server软件提供商自己定义的,我通常会从使用手册或在线帮助上获得相关信息。

   有的OPC Server是不支持在线浏览的,通讯时使用数据项(连接项)是按着一定规范定义的,这时我们也需要阅读使用手册或在线帮助获得相关信息。例如,在从老的OPTO22系统采集数据时,它是不支持在线浏览的。通过在线帮助我们知道它的数据项定义如下所示:

   ControllerName[RefreshGroupName]:ItemType.ItemName[start-end].Field.BITn

并且在数据项字义时要填写访问路径(”OPTO_MDS_0”)。控制器名、刷写组名、项类类型等信息我们要通过控制系统竣工资料或OPTO22的组态工程中查找。

   正确配置采集周期
   由于不同的OPC Server能够支持的最快采集周期是不同的,因此在实施数据采集时我们要根据OPC Server所能提供的最嘉采集速度进行配置。大部分的OPC Server支持的采集周期不是连续的,如果我们设置的采集周期是服务器不支持的采集周期,OPC Server会使用与设定周期相近的固有周期进行通讯调度。

   通讯量控制
   在通常情况下建议使用异步方式进行通讯,因为在这种方式下客户端程序获得数据由OPC Server根据数据变化情况主动发送的,具有较高的通讯效率。在实际应用中我们可能会遇到这样的问题:与实时数据库通讯的控制系统运行负荷较满,如果不对通讯量进行控制就可能影响控制系统的正常运行(在通过APP NODE的OPC Server读取TDC3000系统的数据时就愚到过类似问题)。在这种情况下建议使用同步方式或单组同步方式执行数据采集,在这两种通讯方式下我们可以通过调整每组采集的数据项数及采集周期来控制通讯量。

   注意服务器特殊限制
   在使用OPC接口进行数据通讯时还要注意一些OPC Server的特殊限制,有的对可以连接客户端数有限制,有的对最多可访问的数据项数有限制,有的则是对每组包含的数据项数有限制。对于这些有特殊限制的服务器,如果不能正确配置通讯参数或者购买相受权,将产生通讯错误或只能采集部分数据。对于有访问客户数目限制的OPC Server,如果达到最大客户数,我们要重新购买受权增加允许访问客户数。对于有访问数据项数的OPC Server最好的方法也是重新购买受权增加允许访问数据项数,但也可以接口中提供的“单组同步”方式来增加可采集的数据点数。“单组同步”通讯方式是以牺牲通讯速度为代价的,并且在这种方式下不能进行数据回写(从客户端更新服务器的数据)。对于每组有数据项数限制的OPC Server则比较好处理,只要在接口设备定义时,将限制个数填写到“每组项数”即可。

   

   通过DCOM配置实现分布式通讯
   在实际应用中有时出于安全或运行环境的考虑不能将数据采集程序与OPC Server安装在同一台计算机上,这时我们就需要利用OPC的DCOM属性实现数据采集程序与OPC Server之间基于网络的分布式通讯。DCOM技术是自NT4.0系统以后,由操作支持的一种组件间跨计算机间的通讯技术。在实现组件时只要遵照COM规范定义接口,当服务端和客户端程序分布在不同的计算机上时,只要对服务端及客户端的DCOM属性进行相应配置就可以通过网络实现远程通讯。DCOM配置在不同的操作系统上配置方法不同,除了在Windows XP SP2系统外,其它系统即可以用指定用户进行通讯,也可以用匿名方式进行通讯。关于DCOM配置过程这里就不详细说明了,可以参考《紫金桥OPC服务器及接口》文档。

紫金桥OPC接口使用技巧的更多相关文章

  1. OPC接口相关资料地址

    OPC官方网址:https://opcfoundation.org/ OPC中国官网: http://www.chinaopc.org/ ------------------------------- ...

  2. C#中泛型方法与泛型接口 C#泛型接口 List<IAll> arssr = new List<IAll>(); interface IPerson<T> c# List<接口>小技巧 泛型接口协变逆变的几个问题

    http://blog.csdn.net/aladdinty/article/details/3486532 using System; using System.Collections.Generi ...

  3. BA-siemens-insight在win7下如何配置opc接口

    一.运行环境:win7(OPC接口在win_xp下配置需安装插件,不好意思没搞定,现在只有win7系统32位下的教程了) 由于OPC(OLE for Process Control)建立在Micros ...

  4. C#接口实现技巧之借助第三方

    一个类继承了一个接口,对接口实现通常的做法---直接在这个类中对接口进行实现. 利用继承的概念,可以很巧妙地借助第三方类对接口进行实现,这种方式在实际的项目开发过程中其实用途很是比较大的,至少我们的游 ...

  5. OPC协议解析-OPC客户端与服务器通讯解析

    1      OPC服务器 OPC服务器, 是指按照OPC基金组织规定的OPC规范群开发的软件驱动.OPC服务器作为中间媒介负责从数据源读取数据再跟另外一端的客户端通信.在 OPC客户端/服务器 的结 ...

  6. OPC协议解析-关于OPC协议的几个问题

    1    什么是OPC协议? 为了便于自动化行业不同厂家的设备和应用程序能相互交换数据,定义了一个统一的接口函数,就是OPC协议规范.有了OPC就可以使用统一的方式去访问不同设备厂商的产品数据. OP ...

  7. 高并发秒杀系统--mybatis整合技巧

    mybatis实现DAO接口编码技巧 1.XML文件通过namespace命名空间关联接口类 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD ...

  8. 开发 C# OPC 客户端

    编写 opc 客户端的思路 1. 使用OPC Client浏览服务器, 查看测试代码修改后的结果. 2. 根据OPC Client搜集到的服务器信息编写代码和服务器交互 3. OPC Client 操 ...

  9. OPC服务器开发浅谈 — 服务器模型(转)

    这里主要讨论的是OPC Data Access 2.0服务器的开发,在掌握了这个最常用的OPC服务器开发之后,对其它类型的OPC服务器,如A&E.HDA等就可以触类旁通了. 一个OPC服务器的 ...

随机推荐

  1. opencv:图像的基本变换

    0.概述 图像变换的基本原理都是找到原图和目标图的像素位置的映射关系,这个可以用坐标系来思考,在opencv中, 图像的坐标系是从左上角开始(0,0),向右是x增加方向(cols),向下时y增加方向( ...

  2. Oracle 使用小技巧

    1.小数转换成字符往往会丢失前面的零. 解决方法: to_char(0.12345,'fm9999999990.00'); 2.除数为零的话oracle老是报错. 解决方法: decode(B,0,0 ...

  3. git重要命令

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  4. Nginx配置请求转发location及rewrite规则

    一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所有的地址都以 / 开头,所以这 ...

  5. Mac上安装第三方应用显示包资源破坏解决办法

    Mac上安装第三方应用显示包资源破坏解决办法 步骤1:Spotlight搜索(快捷键:command+空格或右上角搜索的符号):搜索 “终端”步骤2:直接复制粘贴 sudo spctl --maste ...

  6. 使用LeakCanary进行内存泄漏追踪

    LeakCanary使用 1.在build.gradle 中 dependencies {     //添加     debugCompile 'com.squareup.leakcanary:lea ...

  7. 201621123006 《Java程序设计》第2周学习总结

    1. 本周学习总结 以几个关键词描述本周的学习内容.并将关键词之间的联系描述或绘制出来. 原则:少而精,自己写.即使不超过5行也可,但请一定不要简单的复制粘贴. java数据类型:java数据类型分为 ...

  8. L147 Low Cost Study Has High Impact Results For Premature Babies

    No one knows exactly why some babies are born prematurely(早产), but some of the smallest premature ba ...

  9. The program environment for cypress cy8ckit-002

    customer use cypress ic to make sure the  wireless products, we are prepare to establish the environ ...

  10. 利用层序遍历(含空节点)和中序遍历重建二叉树 python

    给定一颗二叉树的层序遍历(不含None的形式)和中序遍历序列,利用两个序列完成对二叉树的重建. 还是通过一个例子来说明整个过程,下图所示的二叉树,层序遍历结果为[a,b,c,d,e],中序遍历结果为[ ...