基于OPC技术的DCS数据获取的实现方法

来源 :科技风 | 被引量 : 0次 | 上传用户:money51
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:介绍了基于OPC技术的DCS数据获取的原理和方法,结合实际叙述了上位机软件DCS与OPC服务器之间的通信以及OPC服务器与OPC客户端之间的通信,重点给出了关键程序示例。在OPC数据交换接口的基础上,后续的上层应用系统的开发变得简捷高效。
  关键词:OPC技术;数据获取;DCS
  中图分类号:TP273 文献标识码:A
  随着企业信息化建设的投资比例增大,许多企业为了实现不同生产装置的DCS系统和数据采集接口之间的数据通讯,解决生产管理过程中的上层监控与底层控制脱节的问题,提高企业生产效益,OPC技术应运而生。OPC作为软件和硬件之间数据通信的桥梁,是一种标准。本文应用了OPC技术规范作用于DCS系统实现数据获取的目的。
  1 OPC技术
  OPC(OLE for Process Control),是微软公司以COM/DCOM技术为基础,采用客户端/服务器模式,开发出的应用于控制领域的一种工业标准。针对当前工业控制领域不同生产装置互相通信的要求,OPC为其制定了完整的编程接口属性和方法,这就为不同设备包括软硬件之间的交互访问提供了依据[1]。
  OPC既可以应用于本地PC机,同时也支持网络内不同应用程序间包括跨平台应用程序间的通讯,实现了硬件设备与系统软件之间实时通讯。该规范的基本思想是:由支持OPC接口的硬件厂商开发对应其硬件设备的OPC服务器,负责获取硬件设备生产的数据并暂存;OPC客户端,即支持OPC接口的系统软件就可以通过连接OPC服务器来读写之前获取到的数据。OPC连接模式如下图所示。
  OPC服务器支持两种类型的数据访问接口:自动化接口(Automation interface);定制接口(Custom interface)。两种接口定义了OPC客户端和OPC服务器之间进行通讯的方法。用户可以自己编写OPC客户端程序,在客户端程序中调用OPC服务器对象接口及对应的方法来访问OPC服务器读写数据。
  一个OPC数据访问服务器中包含3类对象模型,OPC服务器(Server)、OPC组(Group)、OPC项(Item)。它们之间的联系是Server对象维护有关服务器的信息并作为Group对象的容器,而Group对象维护有关其自身的信息,提供包容Item对象的机制,并管理Item对象[2-3]。
  2 OPC客户端程序的设计开发
  这里采用了Java语言编写的开源项目J-Interop和Utgard实现OPC客户端[4]。
  2.1 Utgard
  Utgard属于Openscada开源项目,基于J-Interop做的,纯Java语言编写,具有跨平台的特点,用于和OPC Server进行通讯。Openscada可以很好的实现与OPC服务器的连接以及读写数据的功能,并且可以随时获取和修改OPC的Server和Item的属性状态信息等。而J-Intgard是纯Java封装的用于COM/DCOM通讯的开源项目。需要注意的是,在使用Utgard之前需要配置好服务器端的DCOM组件。
  2.2 使用Utgard访问OPC server
  开发步骤及相应代码大致为:
  (1)导入关键jar包。
  (2)编写配置文件,设置连接服务器的主机用户密码等信息。
  (3)遍历当前所连接的服务器上所有支持OPC DA2.0规范的OPC服务器应用。
  (4)创建ConnectionInformation类。
  final ConnectionInformation ci = new ConnectionInformation();
  ci.setHost(host);
  ci.setClsid(serverList.getClsIdFromProgId ("Matrikon.OPC.Simulation"));
  ci.setUser(user);
  ci.setPassword(password);
  其中通过Clsid的方式查找OPC Server更快,但如果事先不知道clsid,也可以通过ServerList类的getClsIdFromProgId方法来查询相应OPC
  Server名称的Clsid。
  (5)创建Server类并连接:ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor();
  Server server = new Server(ci, exec);
  server.connect();
  (6)Utgard有两种数据访问方式——直接通过item的read/write方法或者使用AccessBase(读取数据)。需要注意的是,不管采用哪一种方式,返回结果都是通过ItemState类来获取,通过调用ItemState的getValue方法可以获得访问结果,返回结果是JIVarant类型的,里面包含了OPC访问时的各种类型及处理方法。
  按照上述方法步骤,使用Utgard连接至OPC服务器,然后使用Async20Access类隔時间段地进行异步读取数据。客户端程序在Windows下和Linux下均能成功连接OPC Server,并获取到数据。
  3 结语
  本文给出了利用OPC技术实现DCS数据获取的方法,基于Java语言成功开发出OPC客户端并实现跨平台连接OPC服务器。这一构建方法为工业领域上层应用系统的开发提供了一种有效途径[5]。
  参考文献:
  [1]胡强,赵英凯.OPC技术在DCS与工厂管理网数据通讯中的应用[J].工业仪表与自动化装置,2002(03):25-28.
  [2]王燕,王健.OPC接口技术在DCS数据交换中的应用[J].微计算机信息,2010,26(31):48-49+37.
  [3]晏明军.基于Java的OPC客户端的实现[J].电子技术,2010,47(07):56-57.
  [4]孙亮清.用Java实现OPC客户端[J].上海船舶运输科学研究所学报,2011,34(01):34-37.
  [5]谢鹏华,牛昱光.DCS远程监控实验教学系统的OPC技术实现方法[J].太原理工大学学报,2011,42(02):149-154.
其他文献
本文以矩形板-重流体(水)声振耦合为研究对象,探究了任意安装边界条件下板辐射声问题。板的振动位移函数通过谱几何法获取,即假设板的振动位移由傅里叶余弦级数添加相应的附
少年邹德慈:踏实铺路“功夫在平时”1934年,上海。邹德慈出生在一个知识分子家庭。他的祖父给他起了”德慈”这么一个富含深厚底蕴的名字,希望他能德慈兼备.
专家简介:祝成光,理学博士,山东大学物理学院教授,从事高能物理物理分析,探测器设计和高能物理实验方法和技术研究。1999年~2005年,为ATLAS实验合作组研制TGC探测器;2005年至
研究采用SCL—90症状自评量表对某师范专科学校2009至2011级3689名新生的心理健康状况进行调查分析。结果显示该校这三年严重心理问题检出率为8.86%,心理健康水平多个方面显
本文对青少年、应对、危机应对以及青少年危机应对的维度进行了较为系统的梳理。发表自己的几点管见,供争鸣。
本研究以职高一年级酒店服务与管理专业学生为研究对象,采用Rempel & Homles,(1986)信任量表(Trust Scale),从可预测性、可依靠性和信赖三方面来了解职高学生的同伴信任状况,通过了解
社会学中,按照交往的密切程度和情感强度可将社会关系分为强关系与弱关系,本研究试图探索为自己、强关系他人和弱关系他人消费时,人们的主观幸福感是否相同。研究者要求102名
城市薄弱学校学生在行为习惯养成方面存在诸多问题,管理难度极大。本文拟针对城市薄弱学校学生在习惯养成方面存在的主要问题,分析成因,从家庭教育、社会教育、学校教育等维度探
新世纪是大陆民众自我探索及追求灵性成长的重要时代。身心灵的传播是东西方的文化传统和思维方式整合的结果。新时代运动的灵性观既有传统东方宗教文化的色彩,又有融合西方
随着网络的普及,大学生的人际关系随之呈现新的特点。目前国内外关于大学生人际关系的研究取得了一定的成果,但关于网络化生存的研究相对较少。本文旨在将两者结合起来,探究网络