基于OPC技术的水箱实时监控系统
2018-12-28雷菊阳
李 欣,雷菊阳
(上海工程技术大学机械工程学院,上海 201620)
0 引言
水箱在高层建筑、工业生产和日常生活等供水系统中发挥着极其重要的作用。水箱的密闭性使其在使用过程中无污染,因此在工业生产生活中能够广泛使用。在高层小区内,水箱的使用避免了高层用户用水困难的情况,但由于水箱的密闭不通透性,使得在水箱在进水和排水过程中容易出现溢水和缺水现象。这种情况的出现将在很大程度上造成水箱水位过高和水位过低,从而影响正常的生产生活。为了避免这些情况的发生,使水箱内的水位控制在一定的范围,利用MATLAB控制系统与WinCC监视系统调节泵的开度对水箱水位进行控制,具有良好的实用性[1]。自动控制系统能使生产更安全,方便高层建筑的工作人员操作和控制[2]。
1运行环境
1.1 用于过程控制的OLE协议技术
用于过程控制的OLE(OLE for process control,OPC)是应用程序和过程控制应用之间的标准化接口协议[3]。OPC是由标准的OLE/COM接口进行设计的,而它的过程控制是一种客户端/服务器模式[4]。OPC分为定制接口和自动化接口两种。为了使传递过程统一、高效,OPC协议统一了接口函数,使客户端的访问方式不根据现场设备的变化而变化[5]。因此,运用OPC协议技术,可以有效地组态系统,使系统内部数据进行实时传递;同时,可降低系统的复杂性,节省生产时间,提高系统的稳定性和高效性,方便软硬件的运行[6]。
1.2 视窗控制中心组态软件
视窗控制中心(windows control center,WinCC)是工控过程中运用较广且具有较高性价比的一款人机界面组态软件[6]。WinCC通过与OPC服务器的通信连接进行数据交换,从而实现数据高速传递。WinCC提供三个OPC服务器,使外部程序与WinCC进行数据传递[7]:OPC_DA Server对工控过程的实时数据进行交互,OPC_HDA Server对历史数据进行交互,OPC A&E Server对报警信息数据进行实时数据交互[8]。因此,利用OPC_DA_Server的数据交互优势与其他控制软件相结合的方法,可以满足对系统运行过程中的设计要求[9]。
1.3 矩阵实验室软件
矩阵实验室(matrix laboratory,MATLAB)是集编程环境、图形处理、功能强大的工具箱、程序接口和应用软件开发为一体的应用软件[10]。作为一款专门为数值计算开发的软件,MATLAB在数字计算领域有很大的优势,如使用人数较多、现有的资料比较完善等,其在控制系统仿真方面的技术也很成熟[11]。
MATLAB7.0以上的版本中有OPC工具箱。在MATLAB命令窗口的命令行输入“opctool”,对服务器进行设置,可实现与OPC服务器的连接;通过读取和控制OPC服务器中的对应变量的值,来进行程序的开发。因此,MATLAB可以读取系统开发过程中的实时变量值,并对其进行控制,生成实时控制图;在客户端绘制变量的实时趋势图,使操作员能随时了解开发过程中控制状态的变化[7]。
2 WinCC与MATLAB之间的连接
水箱液位监控运用WinCC和MATLAB,实现对水箱液面变化的控制。MATLAB与WinCC组态软件通OPC协议进行通信,并完成数据交换。控制过程原理如图1所示。
图1 控制过程原理图
2.1 S7-300的硬件组态
为了实现水箱中的水能循环流动,使WinCC与可编程逻辑控制器(programmable logic controller,PLC)之间完成通信连接,需要对S7-300 PLC进行硬件组态。由于本试验为模拟仿真试验,因此选用信息传递接口(message passing interface,MPI)接口进行WinCC与PLC的通信。新建TEST项目,插入SIMATIC 300站,MPI地址为2,导轨选择RACK-300下的Rail,电源模块型号选用PS 307 5A以满足所有模块使用,中央处理器选择CPU 314,信号模块选择数字量模块DI16/DO16x24V/0.5A和模拟量模块AI4/A04x14/12Bit。
在S7程序块内,采用LAD梯形图编写组织程序块OB1、OB35和OB100。OB35的主要作用为:当进水泵1和排水泵2接通以后,OB1直接调用该组织块内的程序,并完成循环中断为1 000 ms进水速度的操作。OB100组织块程序的主要作用是设定水箱总液位为100 m3、水箱控制液位为97 m3。在进水泵1打开之后,使水箱实时液位值不超过总液位值100 m3。通过控制器调节,最后使水箱液位稳定在控制液位97 m3左右。
打开仿真软件,将程序段下载到仿真软件PLCSIM,程序块和SIMATIC 300下载到仿真器;然后点击运行,实现液体流动。
2.2 WinCC V7.3的组态过程
WinCC的组态过程包括新建项目、组态变量、组态画面和运行项目[6]。新建MyFirstProject项目,在变量管理下添加驱动程序SIMATIC S7 Protocol Suite,选择MPI通道单元,修改MPI系统参数中的逻辑设备名称采用PLCSIM.MPI.1。在MPI通道单元下建立逻辑连接S7-300,在该逻辑连接下对外部变量进行设置,建立M00、M01、MW2、MW4和MW6五个外部变量。M00控制泵1的开关,M01控制泵2的开关,MW2为总液位,MW4为实时液位,MW6为控制液位。为了在组态画面中显示当前时间,用同样的方法添加系统驱动程序System Info、连接MyPLC、变量Time。
打开图形编辑器,新建画面并对外部变量进行设置,使各个外部变量与相对应的画面在项目运行之后能够成功连接。组态软件WinCC运行之后,打开泵1按钮。当泵1工作、泵2不工作时,水箱处于进水状态;当水箱中的实时液体达到设定值时,泵2工作,泵1不工作,以实现排水状态;当水箱中的液位超过控制液位时,报警器开始报警。
2.3 MATLAB的组态过程
在采用MATLAB建立OPC Server的通信之前,为了防止OPC服务组件未注册成功,需要重新安装OPC Core Components Redistributable (x64),在MATLAB命令行输入opcregister(‘install’),重启计算机,完成注册。
2.4 MATLAB与WinCC之间的通信连接
以WinCC作为OPC的Server端,MATLAB作为OPC的Client端,Server作为数据的提供方,Client作为数据的访问方。将Server端与Client端通过OPC协议接口建立联系,则可以实现数据的双向传送[12]。
WinCC作为OPC的Server端,需要在变量管理下添加OPC.chn驱动程序。右击OPC Groups(OPCHN Unit #1)进入系统参数,在OPC条目管理器下选择OPCServer.WinCC.1。点击浏览器完成项目的添加,将建立的外部变量添加到OPC Groups下,并建立OPCServer.WinCC.1连接[13]。
MATLAB作为OPC的Client端,需要添加客户机、组对象和项对象。在MATLAB命令行输入opctool,进入OPC服务器。右击OPC Network添加localhost,点击OPCServer.WinCC.1创建客户端,添加客户端所需组对象和项对象并对变量进行设置,确保MATLAB与WinCC之间通信的成功连接。在组对象Group_1下添加OPC服务器变量,即M00、M01、MW2、MW4和MW6五个项对象。
3 液位控制模型及结果
MATLAB通过比例积分微分(proportation integral derivative,PID)运算,实现对水箱液位的实时控制,即在该控制过程中控制器选用PID控制器。经过计算,该水箱被控对象的模型为一个比例环节和一阶惯性环节相结合。PID控制可以通过比例调节、积分调节和微分调节三个环节相结合,对传递函数进行控制。同时,PID控制具有原理简单、适应性强和鲁棒性强的优点[14],通过控制Kp、Ti和Td三个参数来调节整个控制系统。PID控制过程如图2所示。
图2 PID控制过程图
MATLAB通过OPC读取WinCC服务器中变量的变化值,在MATLAB上编写控制程序,通过OPC Server将改变变量传递到WinCC客户端,并由监视过程显示。MATLAB控制结果如图3所示。
图3 MATLAB控制结果图
3.1 试验结果
由图3可知,通过PID控制后的水箱液位值达到预期要求,即实时液位不超过控制液位。当水箱中的液位超过液位控制量时,WinCC组态软件中的报警画面会出现提示。WinCC通过OPC将外部变量的变化值传递给MATLAB服务器;MATLAB通过PID控制,对变量进行调节,从而将液位控制在一定的范围。通过WinCC组态软件中的趋势图,可以实时观察液位的控制过程。其过程图与MATLAB实时液位控制图相一致。
3.2 试验分析
为了使该控制过程达到预期效果,在控制过程中需要对PID参数进行整定。当系统因响应速度过快而导致系统的稳定性变差时,通过减小比例系数Kp的值、增大积分时间Ti或者增大微分时间Td来增加系统的稳定性、减小系统的超调量。在试凑的过程中,遵循先比例、后积分、再微分的整定步骤。按照该参数整定方法,调整Kp、Ti和Td,使液位控制系统达到满意的调节效果,并使水箱液位最终趋于稳定。
4 结束语
本文设计的水箱液位监控系统,通过OPC技术结合MATLAB与WinCC,既发挥了MATLAB强大的控制能力,又发挥了WinCC的可视化、报警画面和数据归档的优点,使得对水箱液位的实时控制过程更清晰明了。在该控制过程中,WinCC变量管理器从自动化系统采集过程值的周期时间为250 ms,保存到归档数据需要500 ms,因此能更及时地将WinCC采集到的数据传递到MATLAB中,并能将控制变量快速反馈到水箱液位。
仿真试验结果表明,该系统充分利用了MATLAB、WinCC和S7-300 PLC的各自长处,极大地提升了水箱液位的控制效果,提高了系统的控制品质,使水箱的液位控制达到理想的效果。由于控制对象模型的建立使该试验不仅仅局限于实物的研究,对象的虚拟化更便于各层次的研究人员的研究工作和系统的安全调试。水箱液位实时监控系统是自动化控制系统,能有效节省人力和财力,保证生产作业更安全、高效,在工业控制领域具有很高的实用价值。