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. 通过格式化字符串漏洞绕过canary

    1.1    canary内存保护机制 1.1.1    canary工作原理 canary保护机制类似于/GS保护机制,是Linux下gcc编译器的安全保护机制之一,在栈中的结构如下图所示: 在函数 ...

  2. Chrome自定义最小字号

    ============= ============== =======================

  3. iOS 阶段学习第三天笔记(运算符)

    iOS学习(C语言)知识点整理笔记 1.运算符 一.算术运算符 1)表达式由变量.常量.运算符构成,有确定的类型和值 2)算术运算符包括: +(加),-(减),*(乘),/(除),%(模) 3)算术运 ...

  4. jq的.off解绑事件

    .off( events [, selector ] [, handler ] ) 描述:移除一个事件处理函数 events 类型: String 一个或多个空格分隔的事件类型和可选的命名空间,或仅仅 ...

  5. DOM 踩踩踩

    1.如果是想给一个DOM元素添加一个伪类,可以转换为  为这个元素添加一个类名,这个类名上面绑定一个伪类. 2.append一个元素,删除掉原来的元素再进行添加.

  6. iOS下简单实现滑动导航条

    功能介绍 最近在做一款ios的app,其中有一个页面需要分成三个版块,版块之间可以通过左右滑动来进行切换,也可以通过点击上方的按钮来切换,好像在android中可以用过ViewPager + Frag ...

  7. 网络编程(Socket)

    引言: 从2007年毕业开始一直从事.net web应用程序开发,负责冶金行业的MES系统开发,写了差不多6年左右的代码,由于工作性质是需要驻厂开发,一直出差,所以在2013年跳槽了,目前从事安防行业 ...

  8. Android HOOK工具Cydia Substrate使用详解

    目录(?)[+] Substrate几个重要API介绍 MShookClassLoad MShookMethod 使用方法 短信监控实例   Cydia Substrate是一个代码修改平台.它可以修 ...

  9. 使用Postman对Restful接口进行测试

    趁着项目需要,花了两天时间对postman进行了一下学习,因为看到各大测试群,各个初入测试的孩子们都在问postman,但其实网上也有很多的教程,这里我就再来发一篇. 1. Http协议 要对接口进行 ...

  10. FreeMarker自定义TemplateDirectiveModel

    [参考:http://blog.csdn.net/fangzhangsc2006/article/details/8687371] 在采用FreeMarker做前台视图模板的情况下,我们可以通过< ...