文档库 最新最全的文档下载
当前位置:文档库 › OPC技术研究及其客户端实现

OPC技术研究及其客户端实现

OPC技术研究及其客户端实现
OPC技术研究及其客户端实现

OPC客户端编程汇编

OPC编程汇编 OPC客户端的自动化实现 OPC是建立在COM,DCOM的基础商的,因此绝大多数语言都可以很好的进行开发。在Net中开发客户端有以下几种方式: (1)使用OPCNetAPI,需要用到OPCNetAPI.dll,https://www.wendangku.net/doc/fa7855439.html,.dll (2)使用自动化接口,需要用到OPCDAAuto.dll (3)使用自定义接口,需要用到多个Wrapper:OpcRcw.Ae.dll,OpcRcw.Batch.dll,https://www.wendangku.net/doc/fa7855439.html,n.dll,OpcRcw.Da.dll,OpcRcw.Dx.dll,OpcRcw.Hda.dll,OpcRcw.Sec.dll 以上开发方式所需的动态链接库可以从OPC基金会(https://www.wendangku.net/doc/fa7855439.html,/)的网站上下载,一些下载项目可能需要注册,或成为基金会的成员。 不同的方式有各自的有缺点,请参见… 本文使用自动化接口,https://www.wendangku.net/doc/fa7855439.html,语言进行开发,开发项目是无线射频(RFID)卡方面的应用,典型的如公交车,或公司考勤使用的刷卡机。需要注意的是自动化接口存在一个“不是问题”的问题,数组下标是以1开始的,而不是传统计算机开发上的以0开始。不知道设计者头脑是怎么想(有人知道吗?);这可能会给一些语言的开发造成问题(有人碰到吗,没有你就是幸运的) 需求:OPCDAAuto.dll或该Dll的Interop (一):客户端开发流程 OPC客户端的开发主要遵循下图所示的开发流程,下面就从以下几个开发步骤进行说明 (二):枚举OPC服务器列表 枚举服务器主要是通过OPCServer接口的GetOPCServers方法来实现的,该方法会返回OPC服务器数组(以1为下界,上面已有说明),以下是代码段 '枚举OPC服务器列表

OMRON-OPC培训

培训专题opc 周杨-2017年3月19日

基于OPC技术和欧姆龙协议宏的控制网络通信的实现 在工业控制网络中,由于控制软件和协议纷繁复杂,对工控产品联网和通信能力的要求不断提高,将不同厂家设备组网通信是一个关键环节。本文介绍了变风量空调控制系统中一种基于OPC技术和串口通信技术的网络通信方式,对系统硬件配置和软件编程做了简单介绍。

什么是opc? Opc(OLE for Process Control)用于过程控制的OLE是一个工业标准,管理这个标准的国际组织是OPC基金会,OPC基金会先有会员已超过220家。遍布全球,包括世界上所有主要的自动化控制系统、仪器仪表及过程控制系统的公司。 基于微软的OLE、COM(部件对象模型)和DCOM(分布式部件对象模型)技术。OPC包括一整套接口、属性和方法的标准集,用于过程控制和制造业自动化系统。

OPC的发展 OPC是基于Windows的应用程序和现场过程控制应用建立桥梁。过去,为了存取现场设备的数据信息,每一个应用软件开发商都需要编制专用的接口函数。现场设备的由于种类繁多,且产品的不断升级,往往给用户和软件开发商带来巨大的工作负担。通常这样也不能满足工作的实际需要,系统集成商和开发商急切需要一种具有高效性、可靠性、开放性、可互操作性的即插即用的设备驱动程序。在这种情况下,opc标准应运而生。OPC标准以微软公司的OLE技术为基础,它的制定是通过提供一套标准的OLE/COM接口完成的,在OPC技术中使用的是OLE2技术,OLE标准允许多台微机之间交换文档、图像等对象。

OPC应运领域 1.工控解决方案用户 2.楼控解决方案用户 3.工控解决方案厂商 4.楼控解决方案厂商 5.工控解决方案集成商 6.楼控解决方案集成商 7.ALL Automation Fields(所有自动化领域)

c#opc客户端开发

using System; using System.Collections.Generic; using https://www.wendangku.net/doc/fa7855439.html,ponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OPCAutomation; using https://www.wendangku.net/doc/fa7855439.html,; namespace Opc_Client { public partial class Form1 : Form { public Form1() { InitializeComponent(); } #region私?有?D变à?量¢? OPCServer SyServer; OPCGroups SyGroups; OPCGroup SyGroup; OPCItems SyItems; OPCItem SyItem; string strHostIP = string.Empty;

string strHostName = string.Empty; bool opc_connected = false; //连¢?接¨?状á??态?? int itmHandleClient = 0; //客¨a户?ì端?句?柄à¨2 int itmHandleServer = 0; //服¤t务?端?句?柄à¨2 #endregion #region方¤?法¤?§ private void GetLocalServer() { IPHostEntry IPHost = Dns.GetHostEntry(Dns.GetHostName()); if (IPHost.AddressList.Length > 0) { strHostIP = IPHost.AddressList[4].ToString(); this.tboxServerIP.Text = strHostIP.ToString(); } else { return; } IPHostEntry ipHostEntry = Dns.GetHostByAddress(strHostIP); strHostName = ipHostEntry.HostName.ToString(); try { SyServer = new OPCServer(); object serverList = SyServer.GetOPCServers(strHostName); foreach (string turn in (Array)serverList) { this.cmbServerName.Items.Add(turn); cmbServerName.SelectedIndex = 0; btnConnServer.Enabled = true; } } catch (Exception err) { MessageBox.Show("枚?举¨′本à?地ì?OPC服¤t务?器??出?错?¨a:êo"+err.Message,"提?¨¢示o?信?息?é",MessageBoxButtons.OK,MessageBoxIcon.Warning); } }

OPC详解

OPC详解 名词解释 OPC——OLE for Process Contrl,微软公司对象链接和嵌入技术在过程控制方面的应用,是一系列接口、方法和属性的标准集。它基于OLE、COM、DCOM技术、XML,采用客户端/服务器(Client/Server)结构,将通讯协议与设备/应用隔离的技术。微软的OLE、COM定义了各种不同的软件如何交互使用和分享数据,从而使得OPC能够提供通用的接口规范,用于各种过程控制设备之间的通讯,不论过程中采用何种应用软件和硬件设备。 OLE——Object Linking & Embeding,对象链接与嵌入,也就是现在的微软的ActiveX。 传统技术与OPC技术 传统的过程控制系统是一对一的系统,任何一种HMI等上位监控软件或其它应用软件,在使用某种硬件设备时都需要开发专用的驱动程序。系统构建完成后的最终结果是: 1种软件要使用N类硬件设备需要开发N个驱动程序; M类软件要使用N类硬件设备需要开发M*N个驱动程序; 每增加1个新的应用软件需要另外开发N个硬件设备的驱动程序; 每增加1个新的硬件设备需要为M个软件开发新的设备驱动程序。 基于OPC技术的过程控制系统结构 基于OPC技术的过程控制系统则可以完美地解决传统方式种的上述问题。

任何一种设备只需要提供一种驱动就可以供任何软件系统使用,系统构建完成后的最终结果是: M类软件要使用N类硬件设备只需要开发N个驱动。 每增加1个新的应用软件不需要另外开发硬件设备的驱动程序; 每增加1个新的硬件设备只需要为开发1个新设备的驱动程序; OPC服务器所兼容的设备分类 硬件设备:DCS,PLC,扫描仪,电子设备… 应用软件:HMI,历史数据库,震动检测器… 通讯协议:DDE,Modbus,ODBC,GenCS… 操作系统:Windows,UNIX,VMS,Macintosh,嵌入式OS… 即OPC服务器可以从上面任何一种形式的数据产生实体中读取数据。这个实体可以是霍尼韦尔PHD的Application,也可以是Modbus 的通讯协议,还可以是一种PLC,也就是一种Device(硬件设备),或者是一种Platform。 配置时的几个关键概念 Chanel——通道是一个从PC到一个或多个外部设备之间的传播媒介。一个通道可以用来代表一个串行端口(一个安装在个人电脑上的卡或是以太网接口)。 Device——设备代表了与服务器进行通信的PLC或其他硬件。它受限于Channel所选择的设备驱动程序(Device driver)。 Group——对tags的分类管理,自定义的。类似于Java中的包。 Tag——一个Tag代表与服务器进行通信的PLC或其它硬件设备上的一个地址。服务器允许动态标签(客户端自定义创建)和用户定义的静态标签(服务端管理人员创建的标签)。动态标签是直接进入

Delphi7.0开发OPC客户端程序(Siemens_Opc_client)

OPC是OLE for Process Control的缩写,即把OLE应用于工业控制领域,OPC是建立在O LE规范之上,它为工业控制领域提供了一种标准的数据访问机制。OPC服务器由三类对象组成:服务器(Server)、组(Group)、数据项(Item)。服务器对象(Server)拥有服务器的所有信息,同时也是组对象(Group)的容器。组对象(Group)拥有本组的所有信息,同时包容并逻辑组织OPC数据项(Item)。在这里数据项(Item)就是指所有的PLC信号的输入与输出。OPC组对象(Group)提供了客户组织数据的一种方法。客户可对之进行读写,还可以设置客户端的数据更新速率。当服务器缓冲区内的数据发生改变时,OPC将向客户发出通知,客户得到通知后再进行必要的处理。而无须浪费大量的时间进行查询。OPC规范定义了两种组对象:公共组和局部组(私有组)。公共组由多个客户共有,局部组只隶属于一个OPC客户。一般来说,客户和服务器的一对连接只需要定义一个组对象。在每个组对象中,客户可以加入多个OPC数据项(Item)。OPC数据项(Item)是服务器端定义的对象,通常指向设备的一个寄存器单元。OPC客户对设备寄存器的操作都是通过其数据项来完成的,通过OPC数据项(Ite m),OPC规范尽可能地隐藏了设备的特殊信息,也使OPC服务器的通用性大大增强。OPC 数据项(Item)并不提供对外接口,客户不能直接对之进行操作,所有的操作都是通过组对象进行的。每个OPC数据项(Item)的数据结构包括三个成员变量:即数据值、数据质量和时间 戳。数据值是以Variant形式表示的。 Delphi7.0加载Siemens动态库: 1.打开Delphi7.0,点击Project->Import Type Library 2.在Import Type Library里面找到Siemens OPC DAAutomation 2.0 (Version 1.0),在Clas s Nams里面可以看三个类方法(TOPCGroups,TOPCGroup,TOPCServer),默认的Palette Pag e为ActiveX,单击Install… Delphi7.0中编写客户端程序: 1.连接OPC服务器 在Form上面添加三个OPC控件: OPCGroup1: TOPCGroup; OPCGroups1: TOPCGroups; OPCServer1: TOPCServer;

基于OPC技术的上位机与PLC之间的通信

基于OPC技术的上位机与PLC之间的通信 2008-10-31 11:02:00网络转载供稿1 引言 现代工业控制系统通常以pc机为上位机,通过与现场工控设备如plc的数据交换与处理,实现对生产过程的自动控制。对于小型控制系统,采用专门的组态软件成本太高,用vb设计监控系统则可以降低成本,但首先要解决上位机与plc之间通信问题。以往使用较多的进程间通信方式是dde(动态数据交换)方式,随着opc技术的发展和普及,它已成为工业过程控制的通信标准。opc服务器有两类接口,其中自动化接口主要用于vb、delphi等开发工具。本文利用罗克韦尔公司提供的opc接口,用vb编写了客户端应用程序,实现了上位机与ab可编程控制器之间的数据交换。 2 opc技术简介 opc(ole for process control—用于过程控制的对象连接与嵌入)是一套以微软对象连接与嵌入ole、组件对象模型com、分布式组件对象模型dcom(distributed com)技术为基础,基于wind ows操作平台,为工业应用程序之间提供高效的信息集成和交互功能的组件对象模型接口标准。opc 实际上是提供了一种机制,通过这种机制,系统能够以服务器/客户端标准方式从服务器获取数据并将其传递给任何客户应用程序。这样,只要生产商开发一套遵循opc规范的服务器与数据进行通信,其他任何客户应用程序便能通过服务器访问设备。 opc服务器有两类接口:定制接口和自动化接口。定制接口为c++程序服务,自动化接口为vb这一类可使用自动化对象的程序服务。定制接口是服务商必须提供的,而自动化接口则是可选的,不过o pc基金会提供了一个叫做“自动化包装器”的动态连接库,用于在两者间转换。 opc数据存取规范规定的基本对象有三类:服务器(server)、组(group)和数据项(item)。服务器对象包含服务器的所有信息,也是组对象的容器,一个服务器对应于一个opc server,即一种设备的驱动程序。组对象除了包含它自身信息外,还负责管理数据项。每一个数据项代表到数据源的一个连接,但它没有提供外部接口,客户端程序无法对数据项直接进行操作,应用程序必须依靠数据项的容器组对象来对它进行操作。 3 通信实现 3.1 rslinx的配置 rslinx是ab可编程控制器在windows环境下建立工厂所用通信方案的工具,它不仅提供了多种网络驱动程序,而且提供了最快速的opc、dde和custom c/c++接口。本设计中上位机与logix55 50控制器采用rs-232串口方式连接,在rslinx中要对df1网络驱动程序组态,设置串口特性:com 1、波特率19200bps、一个停止位、无奇偶校验、全双工、bcc校验码。此外要使用rslinx的opc

(C#)OPC客户端源码

【转】(C#)OPC客户端源码 转载申明 申明:本文为转载,如需转载本文,请获取原文作者大尾巴狼啊的同意,谢谢合作! 转自:大尾巴狼啊 原文出处:https://www.wendangku.net/doc/fa7855439.html,/xiaosacao/archive/2009/01/13/1374895.html 前几天我就发布过这篇文章,可惜的是,发布后代码有的却看不到,后来我就删了,至今不明白什么原因- -! 关于C++、VB来开发OPC客户端的资料网上有很多,但C#的至今没发现有多少。 由于近期项目的需要,就开发了OPC客户端的一个模块。在我想来,程序员挺累的,原因我很累。所以我想大家也很累~~~嘿嘿。特别是刚接手OPC客户端开发的前几天,天天盯住显示器,百度、GOOGLE不停的搜索。每天早上醒来,眼睛都瑟瑟的。 从事3年以上软件开发的朋友们,估计都会腰酸背痛吧!反正我是这样的。 不说那么多废话了,贴上源码,让需要的同行看看吧,代码的质量并不高,就当做抛砖引玉吧! 1、枚举本地服务器 2、获取服务器信息 3、列出了服务器上Tag 4、可以设置组的属性 5、读\写功能 6、可进行远程连接(DCOM需配置) 先看图:

引用类库: OPC服务器: 开发工具: 当前环境:

源码: ///程式使用C#.NET 2005 编写 ///引用类库OPCDAAuto.dll ///OPCServer采用KEPWare ///在windows xp sp2、sp3、windows 2003上测试通过///完成于:2008年12月31日 ///测试于:2009年01月05日 ///

///作者:潇洒草 ///Email:zhkai868@https://www.wendangku.net/doc/fa7855439.html, ///QQ:44649029 /// ///如分发,请保留此摘要。 ///鄙视那些拿代码当宝贝的人,鄙视那些你不拿源码换就不稀罕你的人,鄙视那些自私的人。///别人看到你的代码,你能死啊?对你有多大威胁啊?强烈鄙视~~~ ///如果你是这样的人,赶紧关了。。偶不欢迎。。 using System; using System.Collections.Generic; using https://www.wendangku.net/doc/fa7855439.html,ponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using https://www.wendangku.net/doc/fa7855439.html,; using System.Collections; using OPCAutomation; namespace OPC测试通过 { public partial class MainFrom : Form { public MainFrom() {

VC环境下的OPC客户端程序开发

VC环境下的OPC客户端程序开发 来源:中国论文下载中心 [ 08-07-30 15:41:00 ] 作者:赵健师奕兵编辑: studa0714 Ads by Google 曙光刀片服务器TC2600支持Intel? Xeon? 5000系列处理器高密度高能效易管理低成本https://www.wendangku.net/doc/fa7855439.html, OPC Grape Seed Extract Save 70% on our Premium Blend: Worldwide Shipping Quoted Upfront https://www.wendangku.net/doc/fa7855439.html, SapphireTrend Premier OPC Trending solution for realtime process control & analysis https://www.wendangku.net/doc/fa7855439.html, 摘要本文通过分析OPC 数据访问规范,介绍了有关OPC技术的基本概念、数据访问方式以及编写OPC客户端接口程序的一般方法。同时给出了一个具体实例,用Visual C++编写了一个OPC客户端接口程序,并利用OPC服务器KEPServer对其进行测试,实现了OPC客户端与OPC服务器之间的数据交换。 关键词OPC服务器;OPC客户端;COM技术 1 引言 随着通信技术、计算机技术和自动化技术的快速发展,大范围信息共享的需求在自动化系统中显得越来越来越重要,现代工业控制系统已逐渐发展成为以现场设备层、过程控制层和中央管理层三个层次组成的系统,因而对其开放性也提出了更高的要求。在传统的控制系统中,现场设备之间以及现场设备与控制软件之间的信息共享主要是通过驱动程序来实现的,不同厂家的设备使用不同的驱动程序,使得软件开发商不得不开发大量驱动程序来连接这些设备,即使设备厂家在硬件上做小小的改动,应用程序就可能重写,这也势必造成工业控制软硬件的升级与维护不便,给用户和软件开发商带来巨大的工作负担。同时,由于不同设备的驱动程序也有所不同,使得不同的应用程序也不能同时访问同一设备的数据,因此,需要制定一种统一开放的接口标准,使应用程序能够方便的存取一台或多台现场设备的数据,为不同厂商的软硬件提供一种系统集成和数据交换的途径。正是在自动化系统开放性要求的驱使下,促使了OPC技术的产生。 2 OPC技术简介 OPC(OLE for Process Control)是基于微软公司的DNA(Distributed InterNet Application)构架和COM (Component Object Model)/DCOM(Distributed COM)技术,根据易扩展性而设计的,OPC规范定义了一个工业标准接口,这个标准使得COM技术适用于过程控制和制造自动化等应用领域。OLE最初意思为对象链接与嵌入,是微软的复合文档技术。随着后续版本OLE2中导入了COM技术之后,现在的OLE在原版的基础上增加了更多新的功能,包括结构化存储、统一数据传输和自动化等,它已经成为独立于计算机语言、操作系统甚至硬件平台的

OPC客户端的实现

1引言 OPC(OLE for Process Control)是一个工业标准,他是许多世界领先的自动化和软、硬件公司与微软公司合作的结晶。管理该标准的组织是OPC基金会。该基金会的会员单位在世界范围内超过150个,包括了世界上几乎全部的控制系统、仪器仪表和过程控制系统的主要供应商。OPC 技术建立了一组符合工业控制要求的接口规范,将现场信号按照统一的标准与SCADA、HMI等软件无缝连接起来,同时将硬件和应用软件有效地分离开。只要硬件开发商提供带有OPC接口的服务器,任何支持OPC接口的客户程序均可采用统一的方式对不同硬件厂商的设备进行存取,无须重复开发驱动程序。如果希望将数据引入数据库进行统计分析,就要进行客户端开发。 2客户程序的设计方法与比较 客户程序的设计主要是指客户程序中OPC接口部分的设计。客户程序本身可以完成很多复杂的数据处理与显示功能,但需要通过OPC接口部分访问OPC服务器,对现场数据进行存取。 开发OPC、Data、Access、Client之前,要弄清服务器的大体情况,比如需要访问的服务器是否提供自动化接口、服务器的OPC的版本等,到目前为止,OPC有1.0和2.0两个版本,两个版本的接口定义不同,2.0版是对1.0的改进,但不兼容。 OPC客户端的主要任务: ①创建服务器对象。 ②建立与服务器的连接。 ③浏览OPC服务器的功能。客户程序需要创建OPC基金会提供的OPC服务器浏览器对象(OPCServerList)再通过该对象的IOPCServerList接口获得OPC服务器名称的列表;可以通过枚举注册表中包含“OPC”子键的程序名来浏览符合OPC数据存取规范的服务器,但效率较低。 ④通过OPC接口读写数据。 ⑤断开连接。

OPC客户端的自动化

OPC客户端的自动化实现 OPC是建立在COM,DCOM的基础商的,因此绝大多数语言都可以很好的进行开发。在Net中开发客户端有以下几种方式: (1)使用OPCNetAPI,需要用到OPCNetAPI.dll,https://www.wendangku.net/doc/fa7855439.html,.dll (2)使用自动化接口,需要用到OPCDAAuto.dll (3)使用自定义接口,需要用到多个Wrapper:OpcRcw.Ae.dll,OpcRcw.Batc h.dll,https://www.wendangku.net/doc/fa7855439.html,n.dll,OpcRcw.Da.dll,OpcRcw.Dx.dll,OpcRcw.Hda. dll,OpcRcw.Sec.dll 以上开发方式所需的动态链接库可以从OPC基金会(http://www.opcfoundati https://www.wendangku.net/doc/fa7855439.html,/)的网站上下载,一些下载项目可能需要注册,或成为基金会的成员。 不同的方式有各自的有缺点,请参见… 本文使用自动化接口,https://www.wendangku.net/doc/fa7855439.html,语言进行开发,开发项目是无线射频(RFID)卡方面的应用,典型的如公交车,或公司考勤使用的刷卡机。需要注意的是自动化接口存在一个“不是问题”的问题,数组下标是以1开始的,而不是传统计算机开发上的以0开始。不知道设计者头脑是怎么想(有人知道吗?);这可能会给一些语言的开发造成问题(有人碰到吗,没有你就是幸运的) 需求:OPCDAAuto.dll或该Dll的Interop (一):客户端开发流程 OPC客户端的开发主要遵循下图所示的开发流程,下面就从以下几个开发步骤进行说明 (二):枚举OPC服务器列表 枚举服务器主要是通过OPCServer接口的GetOPCServers方法来实现的,该方法会返回OPC服务器数组(以1为下界,上面已有说明),以下是代码段'枚举OPC服务器列表 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try GlobalOPCServer = New OPCAutomation.OPCServerClass() Dim ServerList As Object = GlobalOPCServer.GetOPCServers For index As Short = LBound(ServerList) To UBound(ServerList) '加入控件列 表中,注意这里使用LBound和UBound cbbServerList.Items.Add(ServerList(index)) Next If cbbServerList.Items.Count > 0 Then

基于OPC技术的伺服控制

上海交通大学 硕士学位论文 基于OPC技术的伺服控制 姓名:姜尚坤 申请学位级别:硕士 专业:控制理论与控制工程指导教师:陈坚 20060101

上海交通大学工学硕士学位论文 基于OPC技术的伺服控制 摘要 本论文是基于罗克韦尔自动化的Kinetix系统为对象,开发图形识别程序,OPC客户程序以及伺服控制程序从而实现对两轴绘图工具的精确控制。 本论文首先实现对图形坐标进行读取的:对于实时绘制图形通过用户选择的控件以及用户鼠标的移动来确定,而对于预先画好的图形则通过边缘检测的方法来读取图形的坐标。 然后在论文中通过编写的OPC客户程序,实现将系统读取到的坐标依次写到伺服控制器中。 本文最后实现在Kinetix系统上,根据通过OPC通讯传送来的用户设定的坐标值,编写伺服控制程序来实现对两轴绘图仪的驱动,从而绘制出用户要求的画面。 关键词Kinetix,边缘检测,OPC,现场总线 - -VI

上海交通大学工学硕士学位论文 Servo Control Based on OPC Tecnology ABSTRACT This paper takes the Kinetix system of Rockwell Automation as Object. It mainly introduce how to develop the identification of graphics, OPC client program and Servo Control program to realize the accurate control of two axis drawing device. First, the paper works out the problem which is how to identify the graphics and how to transfer them to coordinates: For the real-time graphics, we get the coordinates by the controls used by users and the movement of mouse; for the completed graphics, we get the coordinates by edge detection. Secondly, the paper develops a OPC client program to communicate with RSLinx OPC Server so that the system can transfer the coordinates from computer to the sevo-controller. Finally, the paper develops a PLC program to drive the two sevo motors to realize the accurate control based on the coordinates transferred from the Computer by OPC technology. Keywords Kinetix, Edge Detection, OPC, Field Bus - -VII

OPC客户端搭建

1.OPC对象的分层结构 OPC数据访问提供从数据源读取和写入特定数据的手段。OPC数据访问对象是由下图所示的分层结构构成。即一个OPC服务器对象(OPCServer)具有一个作为子对象的OPC组集合对象(OPCGroups)。在这个OPC组集合对象里可以添加多个的OPC组对象(OPCGroup)。各个OPC组对象具有一个作为子对象的OPC标签集合对象(OPCItems)。在这个OPC标签集合对象里可以添加多个的OPC标签对象(OPCItem)。此外,作为选用功能,OPC服务器对象还可以包含一个OPC浏览器对象(OPCBrowser)。 OPC对象中的最上层的对象是OPC服务器。一个OPC服务器里可以设置一个以上的OPC 组。OPC服务器经常对应于某种特定的控制设备。例如,某种DCS控制系统,或者某种PLC 控制装置。OPC组是可以进行某种目的数据访问的多个的OPC标签的集合,例如某监视画面里所有需要更新的位号变量。正因为有了OPC组,OPC应用程序就可以以同时需要的数据为一批的进行数据访问,也可以以OPC组为单位启动或停止数据访问。此外OPC组还提供组内任何OPC标签的数值变化时向OPC应用程序通知的数据变化事件(表1-4)。

2.OPC客户端搭建过程(部分代码) 1)连接服务器 a)查询服务器端主机的名字。 string hostname = Dns.GetHostName(); b)初始化服务器对象,搜索主机上的服务器ID,并枚举出来。 public void searchlocalsvr(string hostName)//寻找本地服务器 { try { OPCSvr = new OPCServer(); object serverList = OPCSvr.GetOPCServers(hostName); foreach (string server in (Array)serverList) { Console.WriteLine("本地OPC服务器:{0}", server); } } catch (Exception err) { Console.WriteLine("枚举本地OPC服务器出错:{0}", err.Message); } } c)连接服务器。 public void ctOPCSever(string HostName)//连接OPC服务器 { string OPCSvrName; searchlocalsvr(HostName); Console.WriteLine("请输入要连接的服务器名字:"); OPCSvrName = Console.ReadLine(); try { OPCSvr.Connect(OPCSvrName, ""); Console.WriteLine("连接服务器成功!"); } catch (Exception err) { Console.WriteLine("连接本地OPC服务器出错:{0}", err.Message); } } 2)创建组(OPCGroups)对象和添加数据项对象(OPCItems) public void CreateGrp()//创建组对象 { try

VB编写OPC客户端程序

如何用VB编写OPC客户端程序 一、引言 在工业自动化领域,计算机早已成为必不可少的工具,计算机技术的不断发展,大大加速了工业自动化技术的进步,而各种各样的工业控制应用软件正是具体实现这一进程的最重要的工具。 以往,应用软件开发商要为每一种硬件开发驱动程序,由于硬件的种类繁多,特征各异,软件开发商的负担异常繁重,尤其是如果硬件特征发生了变化,整个应用软件相应的驱动程序也要相应地修改,这对软件开发商,对整个工程都是很不利的。而且由于驱动程序的不统一,不同应用程序访问同一硬件设备时常常发生冲突。OPC(OLE for Process Control)技术标准正是在这种情况下产生的。OPC 基于微软的OLE、COM和DCOM技术,而且它本身就是一种特殊的COM,也正因为有微软的参与,以及以已经成熟的技术为基础,它比一般的工业标准制定的效率更高,它从开始制定到第一个可运行的规范开始运行,只用了不到一年的时间。 二、OPC原理及应用 OPC技术为工业自动化软件面向对象的开发提供了统一的标准。它大大减轻了软件开发商的负担,软件开发商不必再为每一硬件单独编写驱动程序,只要硬件的特征符合统一的OPC接口程序标准,或者硬件生产商提供OPC服务器,如图一所示,不同的应用软件开发商都可以采用OPC标准设计工控软件,以标准规定的统一接口通过OPC服务器存取现场数据。 这样,当现场设备发生变化或系统中加入新设备时,OPC服务器的提供商需要重新实现服务器接口,以适应硬件的变化,但由于服务器所提供的接口的一致性,工控软件不作更改即可继续使用,只是某些情况下可能需要重新组态(如添加新的PLC站点等),这样,软件开发商可以节省大量的时间致力于工控软件的性能方面的提高,不必再考虑硬件变化带来的影响,大大减小了软件维护的工作量。这正如OPC规范里所说,OPC将应用软件和硬件设备划清了界限。 2.1 OPC基本结构 OPC服务器有两类接口:定制接口(Custom Interface) 、自动化接口(Automation Interface),定制接口比较低级,它提供更多的功能,效率也比后者高,可以用C++语言调用此类接口,自动化接口主要用于VB、DELPHI等开发工具。按照OPC规范,定制接口是服务商必须提供的,而自动化接口则是可选的,不过,OPC基金会(管理OPC标准的国际组织)提供了一个叫做“自动化包装器”的动态连接库,用于在两者间转换。如图二所示: 在OPC的早期规范里主要包括OPC数据存取规范、OPC报警和事件、OPC 历史数据存取规范。OPC数据存取规范详细规定了客户程序和服务器程序进行数据通信的机制,其它类型的OPC服务器往往是在数据存取服务器的基础上通过增加对象、扩展接口而来的,所以该规范也是其它OPC规范的基础。OPC数据存取规范规定的基本对象有三类:OPC Server、OPC Group和OPC Item,OPC Server包含服务器的所有信息,也是OPC Group的容器,OPC Group除了包含它自身信息外,还负责管理OPC Item。它们的结构如图三所示。每一个OPC Item代表到数据源的一个连接,但它没有提供外部接口,客户端程序无法

OPC技术与集成方案设计分析

OPC技术及集成方案设计分析 The Analyse and Designing of OPC Industry Control Systems Integration 摘要 当今工业生产中,为了保证控制系统中各种设备充分挥作用以实现控制系统整体的协调有效运行,系统集成越来越受到人们的视。OPC技术把对象链接和嵌入技术应用于工业过程控制领域,为工业控网络的集成创造了条件。 OPC规范主要基于COM心COM的分布式组件技术。通过深入研究O规范和COM技术,对几种网络集成技术的比较研究,论文实现了控制网络的横向和纵向集成,解了网络传输确定性问题。通过采用交换式以太网技术,提高了系统的实性、网络平台的开放性和可扩展性。模块化设计的方法为其它类型的OPC服务器的开发提供了一种通用性依据。 关键词:系统集成;OPC;COM/DCOM; ABSTRACT In order to achieve the coordination of the system, the equipments must be used fully, so the system integration attracted more attention . Object Link and Embed technology were applied to industry process control by the technology of OPC, which created conditions for integration of industry control system. OPC was mainly developed based on COM/DCOM technology. Firstly, a composite industry control system that was based on OPC was set up by occupational OPC criterion and COM. The landscape and portrait integration were realized, and the question of veracity in net transmission was resolved. The real-time, openness and expansibility of the system were improved by adopting Switched Ethernet. Key words: system integration; OPC; COM/DCOM; 1.工业控制系统集成的现状及发展趋势 提到系统集成,就不可避免要提到信息孤岛(自动化孤岛),信息孤岛使信息资源大量流失、沉淀,不能充分发挥信息在低层控制和高层管理决策中的主导作用。“自动化孤岛”、“信息孤岛”是伴随工控组态软件的发展和应用而逐渐形成的。单个系统的运行效果无可挑剔,但各个系统难以做更大规模的集成,因此如何将异构工控系统群集成受到人们的普遍关注。 1.1控制网络和信息网络的集成 控制网络的通信技术不同于以传输信息和资源共享为目的的信息网络,其最终目标是实现对被控对象中能量和物质转移的有效控制,使系统安全稳定地运行。因此要求具有协议简单、安全可靠、纠错性好、成本低等特点。其网络负载稳定,多为短帧传输,信息交换频繁。控制网与信息网集成的含义是实现网际间信息与资源的共享。实现控制网络与信息网络的紧密集成为企业的优化控制、调度决策提供依据,是建立企业综合实时信息库的基础;通过控制网络与信息网络的结合,可以建立统一的分布式数据库,保证所有数据的完整性和互操作性;现场设备与信息网络实时通信,使用户通过信息网络中标准的图形界面随时随地了解生产情况;控制网络和信息网络的紧密集成也便于实现远程监控、诊断和维护功能。 1.2.软件功能的无缝集成 自OPC规范提出以后,多总线集成的问题终于有望得到解决。采用OPC技术,各现场总线能实现信息共享和无缝集成,大大提高了多现场总线控制系统的互操作性和适应性。OPC技术的实现包括两个组成部分,OPC服务器及OPC客户端。OPC服务器收集现场设备数据信息,通过标准OPC接口传给OPC客户端。OPC客户端通过OPC接口与OPC服务器通信,获取OPC服务器的各种信息。OPC技术在现场总线下的应用模式如图1.1所示,每个OPC客户端可访问多个OPC服务器,获取不同现场总线下的各个设备信息,同时每个OPC服务器也可为多个OPC客户端服务。

OPC客户端源码

申明:本文为转载,如需转载本文,请获取原文作者大尾巴狼啊的同意,谢谢合作! 转自:大尾巴狼啊 原文出处: 前几天我就发布过这篇文章,可惜的是,发布后代码有的却看不到,后来我就删了,至今不明白什么原因- -! 关于C++、VB来开发OPC客户端的资料网上有很多,但C#的至今没发现有多少。 由于近期项目的需要,就开发了OPC客户端的一个模块。在我想来,程序员挺累的,原因我很累。所以我想大家也很累~~~嘿嘿。特别是刚接手OPC客户端开发的前几天,天天盯住显示器,百度、GOOGLE不停的搜索。每天早上醒来,眼睛都瑟瑟的。 从事3年以上软件开发的朋友们,估计都会腰酸背痛吧!反正我是这样的。 不说那么多废话了,贴上源码,让需要的同行看看吧,代码的质量并不高,就当做抛砖引玉吧! 1、枚举本地服务器 2、获取服务器信息 3、列出了服务器上Tag 4、可以设置组的属性 5、读\写功能 6、可进行远程连接(DCOM需配置) 先看图: 引用类库: OPC服务器:

当前环境: 源码: ET 2005 编写 oString(); } else { return; } + "."+ } oString() + " Error:"+ (i).ToString(); } } oString(); = (i).ToString(); = (i).ToString(); } } mail 2009-03-31 15:01 | 李默[未注册用户]

能给我份源码吗? 2009-04-04 19:01 | 滕大鹏[未注册用户] #30楼回复引用 我想要文档,能给份吗?谢谢 2009-04-04 19:03 | 滕大鹏[未注册用户] #31楼回复引用 谢谢楼主,我的邮箱是,能给我发一份全部的资料吗? 2009-04-07 14:02 | TJC #32楼回复引用 谢谢,传份给我,要全部资源(文档+源码),万分感谢!2009-04-08 22:02 | hxf[未注册用户] #33楼回复引用 急需一份资料谢谢 2009-04-11 16:34 | jhjohn[未注册用户] #34楼回复引用 麻烦传份给我,要全部资源(文档+源码),万分感谢 2009-04-13 08:36 | yldx #35楼回复引用 您好!麻烦传分全部资源(文档+源码),谢谢 2009-04-15 13:00 | xhm0924[未注册用户] #36楼回复引用 谢谢,传份给我,要全部资源(文档+源码),万分感谢!急用2009-04-25 09:35 | bestyaq

OPC技术介绍五

热点追踪 5月《最新变频器技术与应用》,9月《自动化综合技术》,欢迎投稿! 56OPC技术介绍(五) ◆ OPC组对象 OPC组对象OPCGroup提供满足OPC应用程序要求的数据访问手段。所有OPC组支持的属性、方法和事件的一览如表1、表2和表3所示。 表1 OPC组的属性 属性名属性说明 Parent 只读返回所属OPC服务器对象。 Name 读写OPC组的名称。 IsPublic 只读OPC组是否是公用组的真伪值。 IsActive 读写用以控制OPC组的活动状态。只有活动状态的 OPC组才进行定期的数据更新。IsSubscribed 读写用以控制OPC组的订阅状态。 ClientHandle 读写客户句柄是由应用程序指定的用于识别某个 OPC组的长整型数。当进行数据访问或询问 OPC组状态时,服务器将这个数值和结果一起 返回给OPC应用程序。 ServerHandle 只读服务器句柄是由OPC服务器指定的用于识别某 个OPC组的一个独特的长整型数。 LocaleID 读写区域标识符。 TimeBias 读写数据采样时间的时间偏差值,用于调整设备时 间和OPC服务器时间之间的偏差。DeadBand 读写不敏感带(全量程的百分比;合法值从0到 100)。只有数据变化超过此不敏感带时,服务 器才触发数据变化事件发生。 UpdateRate 读写数据更新周期(毫秒)。 OPCItems 只读OPC组的默认属性,OPC项集合对象。 表2 OPC组的方法 方法名说明 SyncRead 同期读取OPC组内单个或者多个OPC项的数据值, 质量标志和采样时间。 SyncWrite 同期写入OPC组内单个或者多个OPC项的数据值。AsyncRead 非同期读取OPC组内单个或者多个OPC项的数据 值,质量标志和采样时间。 AsyncWrite 非同期写入OPC组内单个或者多个OPC项的数据 值。 AsyncRefresh 触发数据变化事件发生,刷新OPC组内所有活动的 OPC项的数据。结果由数据变化(DataChange)事件 返回。 AsyncCancel 取消尚未完成的非同期数据访问事务。处理结果由非 同期取消完成(AsyncCancelComplete)事件返回。 表3 OPC组的事件 事件名说明 DataChange 在OPC组内任何OPC项的数据值或者质量 标志变化时触发的事件。AsyncReadComplete 在非同期读取(AsyncRead)完成时发生的事 件。 AsyncWriteComplete 在非同期写入(AsyncWrite)完成时发生的 事件。 AsyncCancelComplete 在取消非同期访问(AsyncCancel)完成时发 生的事件。 ◆ OPC项集合对象 OPC项集合对象OPCItems具有OPC项的默认属性,当添加新的OPC项时,下述的DefaltXXX属性将是新添加的OPC 项的默认属性值。所有OPC项集合支持的属性和方法的一览如表4和表5所示。 表4 OPC项集合的属性 属性名属性说明 Parent 只读返回所属的OPC组对象。DefaultRequestedDataType 读写在添加OPC项时,默认的要求数据 类型。初期值是VT_Empty(=控制 设备的固有数据类型)。DefaltAccessPath 读写在添加OPC项时,默认的数据访问 路径。初期值是""(=无路径)。DefaultIsActive 读写在添加OPC项时,默认的活动状态。 初期值是True(真=活动)。Count 只读集合对象的固有属性。OPC项集合 中的OPC项数。 表5 OPC项集合的方法 方法名说明 Item 返回OPC项集合中由集合索引(ItemSpecifier)指定 的OPC项。 GetOPCItem 返回OPC项集合中由服务器句柄指定的OPC项。AddItem 在OPC项集合中添加新的OPC项。 Remove 清除指定的OPC项。 Validate 检查被添加的OPC项。 SetActive 分别设置OPC项为活动状态或非活动状态。SetClientHandles 设置OPC项的客户句柄。 SetDataTypes 设置OPC项的要求的数据类型。 ◆ OPC项对象 OPC项对象OPCItem表示与OPC服务器内某个数据的连接。各个OPC项由数据值、质量标志以及采样时间构成。所有OPC项支持的属性和方法的一览如表6和表7所示。 表6 OPC项的属性 属性名属性说明 Parent 只读返回所属的OPC组对象。ClientHandle 读写客户句柄是由应用程序指定的用于识别 某个OPC项的长整型数。当OPC组事件 发生时,服务器将这个客户句柄和结果 一起返回给OPC应用程序。ServerHandle 只读服务器句柄是由OPC服务器设置的用于 识别某个OPC项的一个独特长整型数。AccessPath 只读返回OPC应用程序指定的访问路径。AccessRight 只读返回OPC项的访问权限。 ItemID 只读返回识别这个OPC项的标识符。IsActive 读写用以控制OPC项的活动状态。只有活动 状态的OPC项才进行定期的数据更新。RequestedDataType 读写要求的数据类型。 Value 只读返回从OPC服务器读取的最新数据值。Quality 只读返回从OPC服务器读取的最新数据的质 量标志。 TimeStamp 只读返回从OPC服务器读取的最新数据的采 样时间。 CanonicalDataType 只读返回OPC服务器内固有的数据类型。EUType 只读返回工程单位(Engineering Unit)的数据

相关文档