APP下载

基于STM32的凝结水液位监控系统的设计与实现

2017-01-13张坤鳌

计算机测量与控制 2016年8期
关键词:下位凝结水液位

张坤鳌,李 俊,方 欣

(西安科技大学计算机科学与技术学院,西安 710054)

基于STM32的凝结水液位监控系统的设计与实现

张坤鳌,李 俊,方 欣

(西安科技大学计算机科学与技术学院,西安 710054)

为降低PLC控制单容器液位控制系统的设计难度及成本,系统选用了STM32和STC89C51分别作为上位机与下位机的处理器,设计了基于Modbus-RTU通讯协议的凝结水液位监控系统;实现了数据的实时采集、显示、动画效果、故障报警功能和液位超限报警功能,此外为提高系统对凝结水液位的控制精度和达到水泵运行时节能减耗的目的,系统上位机的软件设计采用了PID算法,使系统根据采集数据动态的输出频率信号给变频器控制水泵的转速,很好地实现了凝结水液位的恒值控制和对水泵的变频控制,满足了系统的设计要求;最后给出了系统的仿真结果和测试结果,并对其解释分析;实验表明,该系统经济实用,抗干扰能力强,可以在工业控制中广泛使用。

STM32;STC89C51;Modbus-RTU协议;PID控制器;单容器液位系统

0 引言

近年来,由于工业控制技术的发展,其控制方案的设计与实现也越来越成熟[1 2],然而随着嵌入式系统开发技术的飞速发展,为现代工业控制技术领域提供了一种全新的设计与开发模式。

现阶段我国工业控制技术的主要问题是设计与开发的成本高,尤其是对电机机群的控制,大都采取MCGS作为人机交互接口,PLC作为数据收集传输和执行器,以及采用变频器作为电机的频率控制器[3]。这些设备经过很多年实际应用的检验,稳定性和可靠性得到了大家的认可。但是这样的开发模式成本太高,因此急需一种新型控制方案。

为此本系统上位机选择了意法半导体生产Cortex-M3内核的STM32F103系列的单片机作为处理器,该单片机不仅价格低廉,而且STM公司提供了该单片机开发的API,大大降低了开发的难度[4];下位机选择了经典的STC51系列的单片机,既满足了设计需求,又降低了系统成本[5];同时在通讯协议方面,系统采用了工控业应用广泛的Modbus-RTU通讯协议,保证了数据通讯的可靠性[6]。系统每一部分的实现都采取了低成本,应用广泛以及成熟,可靠性高的器件与技术,足以保证系统整体的可实施性和稳定性。

1 系统整体方案

系统整体的结构如图1所示。现场传感器接入下位机控制板,使传感器模拟量信号经过调理电路处理后,再送入A/D进行模数转换处理,处理好的数字量信号再传送给STC51单片机。

数据经过Modbus-RTU协议打包后上传给上位机,再经过由μcGUI设计的人机交互界面实时展示。数据实时的动态变化,可以让操作员准确控制电机启停,从而控制凝结水的液位在合理范围[7]。

系统根据预设参数与上传的实时数据,经过运算和判断后自动发出指令给下位机,使系统可以自动运行。在自动运行的过程中,上位机采用PID算法来调节凝结水液位[8-9]。上位机由上传的液位数据与预设的液位数据,实时下达变频器运行频率给下位机,下位机再将信号传给D/A处理,将数字信号转换为模拟量信号发送给变频器,从而可以有效控制电机转速,进而达到了凝结水液位的高精度实时控制。

2 系统硬件设计

该系统主要的硬件电路是由STM32芯片和外围接口电路组成的上位机控制器和显示器,以及由STC51单片机和外围接口电路、数据信号调理电路组成的数据采集和执行器,其次为通讯模块的电路、电源电路。

图1 系统结构图

2.1 主要硬件电路设计

上位机电路,即STM32最小系统电路和通信模块的电路以及LED显示屏电路;下位机电路,即STC89C51最小系统和AD和DA转换电路、信号采集以及通信模块电路。

下位机主要为泵的三相电流检测电路。通过上位机可以预设电机的额定电流和过载电流,这样就可以在电机出现过载的情况下及时切断电机电路,达到停车保护的目的。为节约成本,每台泵可以只检测其两相电流。而为了检测两个泵的运行情况,所以下位机需要四路电流互感器检测电路。电路主要通过电流互感器将泵的大电流转换小电流,再通过整流桥将小信号电流整流为直流电流,经过滤波后,再将电流转换为电压信号送入ADC0809转换为数字信号,最后将数字信号送给STC89C51单片机进行处理。其电路如图2所示。

图2 电流互感器电路图

其次为4~20 m A液位信号处理电路,此信号要经过ADC的处理转化为数字信号后送入51单片机进行处理。其电路如图3所示。

图3 液位信号I/U处理图

所有外部信号经过调理电路处理,转换为电压信号送入ADC0809进行模数转换。ADC0809可以有8路模拟量同时输入,但是8路模拟量的转换是由不同地址经过地址锁存器译码后分时转换输出。此次设计用到5路模拟量输入,分别为4路电流检测信号和一路液位信号。ADC0809接口电路如图4所示。

数模信号转换后送入STC89C51单片机进行处理,并经过Modbus-RTU协议包装后通过通讯模块实时上传数据。

图4 ADC0809接口电路图

所有外部信号采集并转换完毕,送入上位机经由STM32处理。如判断电机的运行电流是否过流,和此时的液位情况等。在系统自动运行的情况下,经过数据处理,上位机计算出数字量的电机运行频率,并发送给下位机处理器STC89C51,下位机将数字信号发送给MAX536D/A转换器,将频率的数字信号转换为模拟信号送给变频器,这样就能达到对电机的PID控制。MAX536与单片机的接口电路如图5所示。

图5 MAX536与单片机的接口电路图

3 系统软件设计

系统软件的设计分为上位机和下位机两部分。上位机的软件设计,即基于STM32处理器的人机交互界面,Modbus-RTU通讯协议和互感器电流运算,控制策略软件编写;下位机软件设计,即各个硬件模块的驱动,如ADC0809的数据采集驱动,MAX536的数据输出驱动,以及下位机的Modbus-RTU的通讯协议的软件编写等。

3.1 下位机软件设计

下位机主要完成的功能是数据采集以及上传,和接收上位机的指令,并发布指令控制电机启停和转速。下位机的软件工作流程如图6所示。

下位机主程序主要完成对数据的连续采集,并按照Modbus-RTU协议对其包装,等待上位机读取指令。其次主程序为接收中断程序,即上位机有数据发送,下位机便进入接收中断程序。中断程序首先需要接收一个完整包数据,然后对其CRC校验,如果为无效包则丢弃,否则需要对这包数据进行解释,然后执行相应动作。

3.2 Modbus-RUT通讯协议构建

Modbus-RTU协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络和其他设备之间可以通信。它已经成为一种工业标准。

图6 下位机软件工作流程图

当在一个Modbus-RTU协议网络上通信时,此协议决定了每个控制器需要知道它们自身的设备地址,从而可以识别按照地址发来的消息,决定产生何种行动。如果需要回应,控制器将产生反馈信息并用Modbus-RTU协议发出。Modbus-RTU主要由站地址(一个字节)+功能码(一个字节)+首地址(两个字节)+访问字数(两个字节)+校验码(CRC16 或LRC两个字节)总共8个字节组成。格式如图7所示。

图7 Mod Bus-RTU通信格式

接下来对Modbus-RTU协议的功能码部分进行阐述,具体如表1所示。

表1 Modbus-RTU协议功能码表

例如对功能码01 H的通讯过程的解释。首先由上位机(主站)发出询问指令数据包,询问节点0019~0055状态数据。主站指令包数据如表2所示。

表2 主站询问包

当下位机(子站)收到数据包并进行校验正确后,就要组织数据包,并将其返回。子站返回数据中,输出状态按位表示,1表示开状态,0表示关状态。起始数据从第一个数据的最低位开始排列,由低到高,字节顺序也是由低到高排列。如果返回数据不是8的倍数,则最后字节的其它位均填零。字节数的内容指数据的长度。从站恢复数据包如表3所示。

表3 从站数据包

输出状态26-19的数据位CD:11001101,最低位1表示26节点的开状态,最低位1表示19节点的开状态。55-51的数据位1B:00011011,低五位是有效数据,高三位是无效数据,均填写零补充。

3.3 上位机软件设计

上位机软件设计主要实现两个功能,一为显示以μcGUI建立的人机交互界面,并且实时刷新上传数据;另一个根据下位机采集泵的三相电流和液位数据,实现过载保护和液位控制,合理运用PID算法控制泵的转速,提高了系统的鲁棒性,也达到了节能的目的。上位机软件工作流程如图8所示。

图8 上位机软件工作流程图

3.4 采集数据转换

上位机主要收集四路电流信号和液位变送器的液位信号,这些信号都是由A/D转换后的无量纲数值,需要根据实际硬件电路图的设计,利用软件把这些数据转换为实际值。数据一方面在上位机显示,另一方面通过上位机参与冷凝水液位自动控制。

根据电流互感器电路设计,其电流值换算过程如下:

因为互感器为40A/16m A,设电机的实际运行电流为A1,则转换后的电流为:

由实际电路得转换电路两端电压为:

由电阻分压得进入A/D0809的电压值为:

设A/D0809输入电压值为Y1,则可求出A1:

由实际电路可得实际液位值换算公式,其中设A/D0809采集的液位电压值为Y2,实际液位值为A2,实际液位量程为H2,则:

3.5 PID控制过程设计

单容水箱特性(图9)只有一个液位,流入量为Q1,流出量为Q2,随着上游生产工艺的变化,凝结水收集的量也随之变化,其流入水箱量的大小也受阀门1的开度控制;在阀门1开度不变的情况下,液位H越高,流出量Q2也应越大。

图9 凝结水单容器水箱结构图

其控制方框图如图10所示。

图10 单容器液位控制方框图

根据液位动态平衡关系,求得:

在零初始条件下,对上式求拉氏变换,得:

式中,T=R2×C为水箱的时间常数(受阀门1开度影响),K =R2为过程的放大倍数也是阀门2的液阻,C为水箱的底面积。令输入量Q1(S)=R0/S,R0为常量,则输出液位高度为:

当t=T时,则有:

式(8)和式(9)表示一阶惯性环节的响应曲线是一单调上升的指数函数。对于阶跃输入,该系统采用比例(P)调节器来控制,系统有余差,而这个余差与比例度是近似成正比的。对此进行凝结水液位控制仿真,其开环的接触器控制方式和闭环的PID控制方式仿真曲线图如图11所示。

图11 凝结水液位控制仿真曲线

4 测试与分析

图12为实际测试的水位曲线图,和2号泵故障图。

图12 水位动态控制结果

实测与仿真结果对比表明,系统实现了对凝结水液位的恒值控制。由图12(a)可看出,系统把测量的初始水位45 cm送入STM32控制器与给定值(10 cm)比较,根据水位偏差,上位机系统按PID规律调节电机的运行频率,控制电机抽水,经过大概7分钟,使凝结水液位保持在10 cm左右,满足了控制精度;其中曲线波动部分为凝结水进水带来的干扰,系统立即响应,最终将水位控制在10 cm高度,反映出系统具有一定的鲁棒性。图12(b)表明当电机过载运行时,系统可停止电机运行并发出报警信号,达到了对电机的过载保护。

由系统运行时的凝结水液位图12(a)分析,可以看出图中凝结水液位远超过设定水位时,水泵应该满负荷运行,水位曲线应该直线下降,但是图中曲线有波动。原因一方面来自于凝结水进水大于出水,其主要原因为液位信号的波动,导致水泵输出频率有微小的扰动,从而影响了水泵的转速,因此使得水位曲线图出现微小的波动。为避免此现象,系统可以增加模拟量数据采集的滤波电路,此外考虑到51单片机的运算能力,下位机软件可增加简单的滤波程序,从而可达到在硬件和软件上对模拟量数据采集的三重滤波,可实现模拟量数据的稳定性。

5 结论

采用 “STM32(上位机)+STC89C51(下位机)”的结构模式,设计了凝结水液位控制系统,上位机采用PID算法和μc GUI可视化人机界面,实现了对水箱液位及相关数据的实时监控。测试结果表明该系统运行稳定、功能完善、可靠性好、性价比高,在工业过程控制领域有很好的发展前景。

[1]Li S D,Xu X L.Design of liquid level control system based on PLC [A].Software Engineering and Knowledge Engineering:Theory and Practice[C].2012:415-424.

[2]Liu Y L,Tian X.Design of reinforced concrete detection system based on STM32[A].2014 11th IEEE International Conference on Mechatronics and Automation(ICMA 2014)[C].Tianjin,2014:2028-2033.

[3]胡开明,葛远香,傅志坚.基于PLC与组态技术的液位控制系统的设计与实现[J].东华理工大学学报(自然科学版),,2012,35 (3):297-300.

[4]刘火良,杨 森.STM32库开发实例指南[M].北京:机械工业出版社,2013.

[5]高 锰,马兆渊,刘宝勇,等.基于单片机的电动机智能软动控制系统研究与设计[J].机电信息,2011,(15):146-147.

[6]Si WH,Wei J P.Design and realization of S7-200 as Modbus-RTU master station[A].2012 10th World Congress on Intelligent Control and Automation[C].2012:3322-3325.

[7]杨 旭,周 悦,于广平,等.水箱液位控制系统的设计与研究[J].制造业自动化,2011,33(16):128-130.

[8]宁耀斌,李生民,孙旭霞,等.基于增益调整型模糊PID控制的变频恒压供水系统[J].西安理工大学学报,2010,26(2):207 -211.

[9]Derdiyok A,Basci A.The application of chattering-free sliding mode controller in coupled tank liquid-level control system[J].The Korean Journal of Chemical Engineering,2013,30(3):540 -545.

Design and Implementation of Condensate Water Level Monitor System Based on STM32

Zhang Kunao,Li Jun,Fang Xin

(School of computer science and technology,Xi′an University of Science And Technology,Xi′an 710054,China)

In order to reduce the difficulty and cost of the PLC control of the single tank liquid level system,the system uses STM32 and STC89C51 as the host computer and the slave computer,the liquid level monitoring system based on Modbus-RTU communication protocol has been developed,which realizes the function of real-time data collection,display,animation,fault alarm function and level alarm function.In addition,to improve the system control precision of the condensate level and reaches the pump run time save energy purposes,PC software system designed with PID algorithm,the system is based on dynamic data collection frequency output signal to the inverter control pump speed,to achieve a good level of condensate and constant control of the pump frequency control and meet the design requirements of the system.Finally,the system simulation results and test results are given,and the interpretation and analysis.Experimental results show that the system is economical and practical and has strong anti disturbance ability and can be widely used in industrial control field.

STM32;STC89C51;Modbus-RTU protocol;PID controller;single container liquid level system

1671-4598(2016)08-0079-04

10.16526/j.cnki.11-4762/tp.2016.08.021

:TP274

:A

2016-01-23;

:2016-03-01。

张坤鳌(1964-),男,河南省三门峡市人,硕士,副教授,主要从事嵌入式系统方向的研究。

猜你喜欢

下位凝结水液位
核燃料后处理厂蒸汽凝结水节能利用
发射机房监控系统之下位机
基于STM32燃气热水锅炉液位控制系统设计与实现
石油储罐液位开关的应用分析
景洪电厂监控系统下位机数据传输网络改造
某火电机组凝结水系统改造的可行性研究
围观党“下位”,吐槽帝“登基”
炼油厂凝结水的回收处理
CAN总线并发通信时下位机应用软件设计
宝马530车冷却液液位过低报警