摘要:本文介绍了一种基于组态王和VB6.0的液位控制仿真实验平台的设计过程。本方案利用组态王良好的人机界面、数据采集功能,并结合VB环境编程的便利性,采用可靠的OPC接口建立组态王和VB之间的数据通讯。利用组态王开发服务器端画面,在VB客户端环境中编写控制算法,最终实现对水箱液位的精确控制。实验结果表明,此方法使用简单可靠,可广泛应用于教学及实验平台搭建工作。
关键词:仿真实验;组态王;VB6.0;OPC接口
0 引言
以PLC、组态软件为单元,可以组成从简单到复杂的各种工业控制系统[1]。PLC可以实现复杂的逻辑编程及简单的算法编程,但是对于先进控制算法,如模糊控制算法等涉及到矩阵运算[2],由于算法本身的复杂性,单纯依靠PLC编程功能已经不能满足要求;组态软件编程语言虽然简单,但大多数是脚本语言,在处理算法方面仍然存在诸多不便。因此,提出将算法写入VB(Visual Basic)程序的思路,借助VB的快速运算功能及丰富的函数库,可以方便的实现算法编写,求解输出值通过可靠的OPC接口反馈给组态软件[3],最终实现对控制对象的控制。
本文正是基于上述思路,设计开发了基于组态王和VB的液位控制仿真实验平台。该平台简单可靠,本文在VB环境中编写了传统的PID控制算法,实现了对双容水箱液位的仿真控制。此外,在此平台上可以继续开发其他高级算法,避免了联机编程测试的繁琐性。
1. 组态王与VB的OPC通信
1.1 OPC通讯原理
现在常用的组态王和VB通信的接口有DDE和OPC,但在实际使用过程中,广大用户发现采用DDE在设备和控制系统之间传递实时信息并非理想的办法,因为它在传输性能和可靠性等方面都存在许多限制,另外DDE不适用于大量数据的高速数据采集,并且DDE从来没有为不同计算机之间的数据交换提供可靠的机制;OPC的产生有效的解决了此类问题[4]。
OPC是用于工业设备服务器的一种标准化接口。OPCServer可以让设备与各种支持0PC 的组态软件之间进行简明的、标准化的数据交换。在过去,为了存取现场设备的数据信息,每一个应用软件开发商都需要编写专用的接口函数。由于现场设备的种类繁多,且产品的不断升级,往往给用户和软件开发商带来了巨大的工作负担。通常这样也不能满足工作的实际需要,系统集成商和开发商需要一种具有高效性、可靠性、开放性、可互操作性的即插即用的设备驱动程序。OPC 以OLE/COM/DCOM机制作为应用程序级的通信标准,采用客户/服务器模式,把开发访问接口的任务放在硬件生产厂家或第三方厂家,以OPC服务器的形式提供给用户,解决了软、硬件厂商的矛盾,完成了系统的集成,提高了系统的开放性和可互操作性。OPC技术的实现包括两个组成部分,OPC服务器部分及 OPC客户应用部分,其中OPCServer基本结构如图1所示。且在传输速率和可靠性方面,优于DDE接口,因此本文采用OPC接口完成VB与组态王数据通讯。
图 1 OPC Server基本结构图
1.2 OPC程序设计
为了方便用户使用组态王OPC Server功能,对组态王的实时数据进行访问,北京亚控为组态王OPC用户提供了kingvewcliend.dll动态链接库,其内部包含 StartCliend、ReadTag、WriteTag等丰富库函数。本方案在VB环境下,通过此动态链接库完成和组态王数据词典的动态数据交换,最终将下位机采集的数据通过OPC接口实时传输到组态王。
具体实现过程是,用StartCliend函数实现VB工程及组态王工程的连接,用户调用AddTag函数将要采集的项目添加到采集的列表中(如图2所示),用户必须进行此操作,否则不能进行项目的采集。当用户调用此函数后,函数将返回项目在采集列表中的位置(TagID)和项目的数据类型(TagDataType),用户将根据返回的信息进行采集。用户添加完成采集项目列表后,可以通过调用Readtag和WriteTag函数来对项目进行读写。
图 2 部分项目列表
向组态王写数据
For i = 1 To TagNo-5 Step 1
If i = 1 Then
Data = YeWei_Xia
End If
………………………………
xuhao = Val(i)
Select Case Typ(xuhao - 1)
Case 11
bVal = Val(Data)
Case 3
lVal = Val(Data)
Case 4
fVal = Val(Data)
Case 8
sVal = Data
Case Else
MsgBox "无效的数据类型,不能写数据。", 64, "错误"
Exit Sub
End Select
ret = WriteTag(i, bVal, lVal, fVal, sVal)
Next i
1.3 PID程序设计
在VB环境中编写液位的控制程序,为了确保整个系统的控制精度,我们在这采用串级控制,将下水箱液位作为主控对象,上水箱液位作为副控对象。采用PID控制算法(运算规律如式1),外环采用PID调节器,内环采用PI调节器。
2、组态画面的设计
北京亚控公司的组态王有良好的图形界面,丰富的驱动程序和网络功能,编程风格简单、纯中文界面,且与其他应用程序交换方便。本系统正是利用组态王强大的组态功能建立了双容水箱的服务器端画面,包括主画面、PID控制画面、历史趋势画面、报警画面及报表画面等。通过OPC协议建立组态王数据词典变量与VB客户端的连接,实现VB变量的实时监测。其中主画面如图3所示。
图3 组态王主画面
3、系统测试及结果分析
在组态王环境编辑好组态画面后,通过OPC协议建立与VB客户端连接。在VB客户端制作操作界面如图4所示。编译执行液位控制程序,并且通过点击“连接服务器”按钮建立OPC连接,并点击“添加项目”按钮建立组态王数据字典与VB变量连接,最终可实现对VB客户端液位及其他变量的实时监测。图5为组态王服务器端监测到的下水箱液位曲线,通过曲线可以看出,该平台数据通信实时性好,准确率高。
- 4. 结论
在组态王环境编辑好组态画面后,通过OPC协议建立与VB客户端连接。在VB客户端制作操作界面如图4所示。编译执行液位控制程序,并且通过点击“连接服务器”按钮建立OPC连接,并点击“添加项目”按钮建立组态王数据字典与VB变量连接,最终可实现对VB客户端液位及其他变量的实时监测。图5为组态王服务器端监测到的下水箱液位曲线,通过曲线可以看出,该平台数据通信实时性好,准确率高。
4、 结论
本文设计了一个基于OPC接口搭建的液位控制仿真实验平台。采用组态王建立服务器端画面,在VB客户端编写液位PID控制算法,两者通过OPC接口建立连接。实验结果表明,该实验平台数据通信实时性好,可广泛应用于教学场合。除此之外,此种方法也可以有效弥补PLC无法实现复杂算法编程的缺陷,使PLC控制方法更加灵活,具有一定的实用价值。
参考文献:
[1] 邵新华,金元郁,吕学芳.基于组态软件与VB的实时监控系统[J].控制工程.2003,10(5):439-440,459
[2] 李伟奖,马邕文.MCGS结合VB语言实现造纸废水处理智能控制.工业控制计算机.2009,22(3):22-23
[3] 于海生,潘松峰,丁军航,等.计算机控制技术[M].北京:机械工业出版社. 2007.
[4] 段开创等. DDE、OPC对组态王功能的扩展[J].工业控制计算机.2008,21(12):11-12
[5] 马龙博,郑建英.基于组态王和VB的智能仪表实时监控系统[J] .自动化仪表.2008,29(8):32-34