VB6.0编程客户端访问组态王OPC服务器的实现方法
2023-04-21
来源:好走旅游网
工程技术 武汉船舶职业技术学院学报2011年第3期 VB6.0编程客户端访问组态王 OPC服务器的实现方法 邹治军 (南京化工职业技术学院信息技术系,江苏南京 210048) 摘 要本文介绍了OPC规范,通过实例介绍了基于VB6.0编程客户端程序访问组态王OPC服务器的实现方法,具有 编程简单,容易实现的特点,有利于拓展其功能。 关键词VB;组态王;OPC 中图分类号TP311.5 文献标志码 A文章编号 1 671—8100(2011)03—0037—03 Kingview(组态王)是北京亚控公司特别为 中小型项目推出的用于监视与控制自动化设备和 生产过程的组态软件。组态王因其易学易用、功 能齐全、物美价廉的特点,目前已广泛应用于国内 中小型生产过程控制系统中。Kingview6.53的 1 OPC规范 工业控制系统包含大量的现场设备,这些设 备通常包括来自不同厂商的各种类型的仪器、仪 表、PLC和其他智能设备。不同的厂商提供的协 议各异,因此要与这些设备交换数据,需要编写不 亮点之一是设备集成能力强,可连接几乎所有的 设备和系统ll ],尤其是全面支持OPC标准,即组 态王既可以作为OPC客户端,也可以作为OPC 同的接口程序,即使硬件供应商在硬件上做了一 些小小改动,应用程序就需要重写,因此给用户和 软件开发商带来了巨大的工作负担。系统集成商 和开发商急切需要一种具有高效性、可靠性、开放 性、可互操作性的即插即用的设备驱动程序。近 年来,OPC已经成为工控领域新的通讯标准。由 于OPC技术采用开放式数据交互,传输可靠,速 度快,使来自不同公司的软硬件之间进行大批量 数据交换成为可能 J。 OPC服务器由三类对象组成:服务器(Serv— er)、组(Group)、数据项(Item)。服务器对象拥有 服务器来使用。用户若要使用组态王的OPC服 务器功能,通常需要购买第三方的客户端软件,无 疑增加了系统设计的成本。考虑到组态王提供给 用户与组态王OPC服务器连接的函数接口,用户 也可利用动态库KingvewCliend.dll,自行用VC ++、VB等编程语言编写组态王的OPC客户端 程序,通过组态王的OPC接口来访问组态王数据 库中的变量和变量的域。 Visual Basic是一种可视化的、面向对象和采 用事件驱动方式的结构化高级程序设计语言,常 用于开发Windows环境下的各类应用程序 ]。 Visual Basic6.0是Visual Basic向Visual Basic. 服务器的所有信息,同时也是组对象的容器。组 对象拥有本组的所有信息,同时包容并逻辑组织 OPC数据项。在每个组对象中,客户可以加入多 NET转变前的最后一个版本,Visual Basic6.0因 其简单易学、效率高以及功能强大等特点,已成为 广受欢迎的软件开发工具。本文将对基于Visual Basic6.0编程客户端程序访问Kingview6.53的 个OPC数据项,如图1所示。OPC组对象提供了 客户组织数据的一种方法。客户可对之进行读 写,还可设置客户端的数据更新速率。当服务器 缓冲区内数据发生改变时,OPC将向客户发出通 知,客户得到通知后再进行必要的处理,而无需浪 OPC服务器的方法进行详细介绍。 收稿日期:2011一O3—26 作者简介:邹治军,男,工学硕士,讲师,研究方向:智能检测与智能控制。 37 武汉船舶职业技术学院学报2011年第3期 图1 OPC服务器的组对象 费大量的时间进行查询。OPC规范定义了两种 组对象:公共组和局部组。公共组由多个客户共 有,局部组只隶属于一个OPC客户。一般说来, 客户和服务器的一对连接只需要定义一个组对 象。 OPC数据项是服务器端定义的对象,通常指 向设备的一个寄存器单元。OPC客户对设备寄 存器的操作都是通过其数据项来完成的,通过定 义数据项,OPC规范尽可能地隐藏了设备的特殊 信息,也使OPC服务器的通用性大大增强。OPC 数据项并不提供对外接口,客户不能直接对之进 行操作,所有操作都是通过组对象进行的。每个 数据项的数据结构包括三个成员变量:即数据值、 数据质量和时间戳。数据值是以VARIANT形 式表示的,可以把数据项看作数据源的地址,即数 据源的引用,而不应看作数据源本身。客户操作 数据项的一般步骤为: (1)通过服务器对象接口枚举服务器端定义 的所有数据项; (2)将要操作的数据项加入客户定义的组对 象中; (3)通过组对象对数据项进行读写等操作; 2 VB6.0编程客户端程序访问组态 王OPC服务器 组态王既可作为OPC客户端,也可以作为OPC 服务器。当组态王作为OPC客户端时,每个 OPC服务器都被视为一个外部设备,工程人员可 以很方便地定义、增加或删除OPC服务器,可以 从任何一个OPC服务器直接获取动态数据,并集 成到组态王中;反之将组态王作为OPC服务器使 用,则可向其他符合OPC规范的厂商的控制系统 提供数据。因此组态王的OPC功能可以大量地 节省不同厂商的控制系统相连的成本和工作量。 用户可以利用组态王提供的与组态王OPC服务 38 器连接的函数接口(KingvewCliend.dll动态库, 包括StartCliend、GetItemNames、AddTag等函 数),采用VC++,VB等编程语言编写客户端程 序实现对组态王OPC服务器的访问。下文对基 于Visual Basic6.0编制客户端程序,实现对组态 王OPC服务器的访问方法进行具体介绍。 (1)新建VB工程,在工程中添加一个模块, 在模块中声明要引用的OPC服务器的动态库函 数(如图2所示)。 图2声明OPC服务器动态库函数 (2)新建一个窗体,在窗体上加入按钮,分别 定义为:连接服务器、断开服务器、获得项目数、获 得项目名称、加入变量等(图3所示)。 图3 主窗口 (3)在窗体中加入一个简单列表框、MSH— FlexGrid和定时器控件。 (4)分别用各种函数连接到各个按钮上。获 得的项目总数作为全局变量,用该变量作循环获 得项目名,将项目名添加到列表框中,然后在定时 器定时事件中定义依次读取数据。在函数的调用 过程中,有先后顺序的要求。用户需要先调用 StartCliend函数,以启动与组态王OPC的连接, 用户可以通过此函数的NODE参数,来控制与哪 台计算机的组态王进行连接。 (5)运行连接服务器,然后读取项目名,将项 目名添加到MSHFlexGrid控件中,当定时器定 时事件发生时,便读取所有定义的项目的数据。 退出时,先断开服务器的连接。客户端程序运行 后,结果如图4所示。 VB6.0编程客户端访问组态王OPC服务器的实现方法 邹治军 态王OPC服务器的实现方法进行了具体介绍,具 有编程简单,容易实现的特点,用户可根据项目的 实际需求去补充完善客户端软件的功能。 断开服务器1 参考 文 献 . . . . .. . .一 1陈德美,牛秦洲,张烈平.基于OPC的MATLAB与组态王的 加入变蠢1 数据通信通信[J].长春工业大学学报(自然科学版),2006,27 ... .. . .. ... . ..J (4):308—310. 2华中平,张立.基于组态王和VB的立体车库管理控制系统的 设计[J].机电工程技术,2006,36(4):58—6. 图4 添加项目名结果 3邢晓怡,刘江.VisusalBasic程序设计教程[M].电子工业出版 社,2006,36(4):58—6. 3 结 语 4邓全亮,邹益仁.基于OPC技术的系统集成[J].计算机应用 研究,2005(1):160—164. 本文对基于VB6.0编程客户端程序访问组 5 http://www.chinaopc.org/About.aspx.EOI ]. The Realization Method of VB6.0 Programming Client’S Access to Kingview OPC Server ZOU Zhi-jun (Department of Information Technology,Nanj ing Chemical Vocational and Technical College,Nanjing 210048,China) Abstract:This paper introduces the OPC specification,and introduces the realization method of the client program based on VB6.0 programming visiting kingview OPC server.It has the characteristics of simple to program and easy to implement.Also,it can help to develop its function. Key words:VB,kingview,OPC (责任编辑:谭银元) 39