APP下载

OPC技术在高炉生产测控系统中的应用

2012-08-26尹静涛刘利平

制造业自动化 2012年1期
关键词:组态王编程语言调用

尹静涛,刘利平

YIN Jing-tao1, LIU Li-ping2

(1.河北能源职业技术学院 机电工程系,唐山 063004;2.河北联合大学 信息工程学院,唐山 063009)

1 高炉生产测控系统的组成

高炉生产测控系统由工业控制机、RS-485网络、ADAM-5000/TCP数据采集系统和现场的传感变送器等设备组成,如图1所示。其作用是对高炉运行时的各项工艺参数进行实时采集、屏幕显示、趋势记录、超限报警和统计报表等,为正常生产提供了有效的保障。

图1 高炉生产参数测控系统示意图

ADAM-5000/TCP数据采集系统由ADAM-5000/TCP主机和各种I/O模块组成。ADAM-5000/TCP主机上有RS-485接口,可以方便地构成包括多台ADAM-5000/TCP和上位计算机的测控网络。ADAM-5000/TCP采用以太网技术克服了原来分布式控制系统的局限性,ADAM-5000/TCP整合了Modbus/TCP通讯协议, 它能够传输重要的数据信息并且整合基于Modbus标准的不同Fieldbus 总线的控制系统;ADAM-5000/TCP 还可以通过以太网读取远程数据结构并且在不用中转器的情况下最远可以传输100 m;ADAM-5000/TCP 确保了设备的互用性和可交换性,减少了存取和维护的费用而且增强了网络的可靠性和安全性,因此它是一个合适的结构方案和有效的管理系统。每个ADAM-5000/TCP底板上可以插4个I/O模块,用户可根据具体需要选择适当的配置。在本系统中,2台ADAM-5000/TCP上配置了3个5018热电偶输入模块、1个5013热电阻输入模块、2个5017模拟量输入模块和1个5068继电器输出模块。系统采集的高炉工艺参数主要包括:炉身温度、导出管温度、冷风温度、高炉料位、导出管压力、热风管压力、冷却水压力等。

系统监控软件使用组态王6.0组态编制。由于需要和工厂的管理信息网交互数据,所以在监控系统中设置了OPC数据服务器,通过编写OPC客户端程序来调用实时的高炉生产工艺参数。

2 OPC技术简介

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

COM是Component Object Model的缩写,是所有OLE机制的基础。COM是一种为了实现与编程语言无关的对象而制定的标准,该标准将Windows下的对象定义为独立单元,可不受程序限制地访问这些单元。这种标准可以使两个应用程序通过对象化接口通讯,而不需要知道对方是如何创建的。例如,用户可以使用C++语言创建一个Windows对象,它支持一个接口,通过该接口,用户可以访问该对象提供的各种功能,用户可以使用Visual Basic,C,Pascal,Smalltalk或其它语言编写对象访问程序。在Windows NT4.0操作系统下,COM规范扩展到可访问本机以外的其它对象,一个应用程序所使用的对象可分布在网络上,COM的这个扩展被称为DCOM(Distributed COM)。

通过DCOM技术和OPC标准,完全可以创建一个开放的、可互操作的控制系统软件。OPC采用客户/服务器模式,把开发访问接口的任务放在硬件生产厂家或第三方厂家,以OPC服务器的形式提供给用户,解决了软、硬件厂商的矛盾,完成了系统的集成,提高了系统的开放性和可互操作性。

OPC服务器通常支持两种类型的访问接口,它们分别为不同的编程语言环境提供访问机制。这两种接口是:自动化接口(Automation interface);自定义接口(Custom interface)。自动化接口通常是为基于脚本编程语言而定义的标准接口,可以使用VisualBasic、Delphi、PowerBuilder等编程语言开发OPC服务器的客户应用。而自定义接口是专门为C++等高级编程语言而制定的标准接口。

工业控制领域用到大量的现场设备,在OPC出现以前,软件开发商需要开发大量的驱动程序来连接这些设备。即使硬件供应商在硬件上做了一些小小改动,应用程序就可能需要重写;同时,由于不同设备甚至同一设备不同单元的驱动程序也有可能不同,软件开发商很难同时对这些设备进行访问以优化操作。硬件供应商也在尝试解决这个问题,然而由于不同客户有着不同的需要,同时也存在着不同的数据传输协议,因此也一直没有完整的解决方案。

自OPC提出以后,这个问题终于得到解决。OPC规范包括OPC服务器和OPC客户两个部分,其实质是在硬件供应商和软件开发商之间建立了一套完整的“规则”,只要遵循这套规则,数据交互对两者来说都是透明的,硬件供应商无需考虑应用程序的多种需求和传输协议,软件开发商也无需了解硬件的实质和操作过程。OPC现已成为工业界系统互联的缺省方案,为工业监控编程带来了便利,用户不用为通讯协议的难题而苦恼。任何一家自动化软件解决方案的提供者,如果它不能全方位地支持OPC,则必将被历史所淘汰。

3 组态王6.0的OPC功能

组态王充分利用了OPC服务器的强大性能,为工程人员提供方便高效的数据访问能力。在组态王中可以同时挂接任意多个OPC服务器,每个OPC服务器都被作为一个外部设备,工程人员可以定义、增加或删除它,如同一个PLC或仪表设备一样。

组态王在原有的OPC客户端的基础上添加了OPC服务器的功能,实现了组态王对OPC的服务器和客户端的统一。通过组态王OPC服务器功能,用户可以更方便的实现其他支持OPC客户的应用程序与组态王之间的数据通讯和调用。

为了方便用户使用组态王的OPC服务器功能,使用户无需在无其它需求的情况下再另外购买OPC客户端软件,组态王提供了一整套与组态王的OPC服务器连接的函数接口,这些函数可通过提供的动态库KingvewCliend.dll来实现。用户使用该动态库可以用VB、VC等编程语言编制自己的OPC客户端程序。

4 OPC客户端程序的编写

OPC客户端程序是使用VB6.0编写的。图2给出了一个OPC客户端例程的流程图,简要说明如下:

在用户工程中,首先应声明对动态库KingvewCliend.dll中的函数接口的引用:

Declare Function StartCliend Lib "C:kingvewcliend.dll" (ByVal pNode As String) As Integer

Declare Function StopCliend Lib "C:kingvewcliend.dll" () As Integer Declare Function ReadItemNo Lib "C:kingvewcliend.dll" () As Integer

图2 OPC客户端例程流程图

Declare Function GetItemNames Lib "C:kingvewcliend.dll" (ByVal ItemName As String,ByVal Index As Integer) As Integer

Declare Function AddTag Lib "C:kingvewcliend.dll"(ByVal pNode As String, ByRef TagID As Integer,ByRef DataType As Integer) As Integer

Declare Function ReadTag Lib "C:kingvewcliend.dll"(ByVal TagID As Integer, ByRef bVal As Boolean,ByRef lVal As Long, ByRef fVal As Double, ByRef sVal As String) As Integer

定义两个全局变量ginta、gintb作为系统运行时读项目名称、读采集列中变量实时值的循环次数。

根据设计好的用户窗体,将各个函数连接到相应的预定义过程中:首先,调用StartCliend()函数启动与OPC服务器的连接,可通过该函数的pNode参数来控制与哪台计算机的组态王进行连接;然后,调用ReadItemNo()函数,将返回的组态王OPC中列出的项目总数赋值给ginta;再以ginta为循环次数,依次调用GetItemNames()函数来获得项目的名称,并以列表框显示所有项目的名称;接着,调用AddTag()函数将用户选择采集的变量添加到采集列,并在用于数据显示的控件MSHFlexGrid中显示已选的项目变量、变量数据类型、变量采集的标识号等,同时累计采集列中的项目数赋值给gintb;最后,利用定时器定义数据采集频率,当定时器事件发生时,以gintb为循环次数、变量采集标识号为参数,依次调用ReadTag()函数,读取所选定的项目变量的数据,并显示在MSHFlexGrid控件中;退出客户端程序时,通过调用StopCliend()函数,断开与组态王OPC服务器的连接。

5 结束语

目前,OPC技术及标准已在各个领域中被广泛应用,OPC技术赋予了现代工业控制软件更强的生命活力。本文介绍的高炉测控系统中利用组态王6.0作OPC服务器,编制客户端程序的方法,能够满足高炉工艺参数与工厂管理信息网交互数据的需求,充分展示了系统的开放性,具有广泛的应用前景。

[1]北京亚控自动化软件科技有限公司.KingView 6.0用户手册[Z].2001.

[2]鸿志工作组.Visual Basic 6.0中文版应用与开发[M].北京:科学出版社,1999.

猜你喜欢

组态王编程语言调用
基于JavaScript编程语言之 闭包技术在焦点轮播上的应用
计算机软件开发的JAVA编程语言及其实际应用分析
核电项目物项调用管理的应用研究
系统虚拟化环境下客户机系统调用信息捕获与分析①
浅谈不同编程语言对计算机软件开发的影响
基于组态王软件和泓格PIO-D64 板卡的流水灯控制
高职计算机编程语言课程教学方法的相关分析
液压系统电气控制虚拟实验系统的开发
利用RFC技术实现SAP系统接口通信
组态王的SQL访问功能在某舰船模拟器中的应用