工业水箱液位智能控制系统设计 | ![]() |
随着单片机技术以及通信技术的发展, 以前的通过人工方式管理工业水箱的方法已不能满足日益提高的工业生产的需求, 现代工业生产中虽然出现了许多由PLC或单片机组成的水位控制系统, 但大多数都存在数据传送不及时, 无可视画面操作的问题, 这样不仅降低了工业生产率, 而且有可能因为数据响应不及时对工业生产造成毁灭性的后果。
针对该类问题, 本设计采用核心为以ARM CortexM3为内核的STM32F103系列单片机作为下位机接收并传送数据, 该单片机反映实时性更强, 数据处理更快, 具有更高的灵活操作性。采用MCGS工控触摸屏作为上位机接收数据, 并达到对液位信息可视化的目的。该方案对工业生产具有更高的效益性和安全性。
1 系统结构设计液位控制系统由单片机模块、水位检测模块、电源电路、GSM报警模块、水泵驱动系统以及触摸屏人机交互系统组成。该系统原理为:当水位达到所设定的最低水位界限时, 水位传感器此时会收到低水位信号, 水位传感器电路导通并发出电平信号传送给单片机, 单片机对信号分析后输出信号给水泵, 驱动水泵给水箱加水, 当所加水位到达最高水位界限时, 水泵停止运作。系统结构图如图 1所示:
![]() |
图 1 液位控制系统结构图 |
2 系统硬件设计
水箱液位控制系统的硬件设计对整个系统正常运作至关重要, 系统中的每一个硬件电路发挥着不同的作用, 但是要想让每个电路协调的工作, 单片机STM32F103作为硬件系统的核心, 起到了控制大脑的作用, 它将多种电路模块结合在一起, 形成了完整的水箱液位智能控制硬件系统。
2.1 单片机模块STM32F103ZET6是基于ARM CortexM3为核心的32位微控制器, 有144个引脚, 其系统频率最高可达到72MHz, 数据和指令通过不同的通道进行传送, 从而其CPU可达到最优的运行速率[1]。其具有512KB的片内Flash, 即相当于硬盘, 程序存储器; 64KB的片内RAM, 即相当于内存, 数据存储器, 且片内Flash支持在线编程。42个16位的后备存储器, 可利用外置的纽扣电池实现掉电数据的保存功能。存在3个共16通道的12位模数转换器和2个共2通道的12位数模转换器, 支持片外独立电压基准[2]。STM32F103系列芯片功能强大、反应迅速而且功耗低, 是嵌入式系统中的正确选择。
2.2 电源电路电源电路的设计主要包括变压器, 整流桥, 稳压器和电容。电路中的变压器可将220 V的交流电源变成5 V的交流电源, 经连接于变压器的整流桥可将5 V交流电变为5 V直流电, 稳压器连接于整流桥, 可输出3.3 V直流电压, 连接于整流桥和稳压器的电容(可使用两个电解电容, 一个大容量, 一个小容量)这样能够让经过整流后输出的直流电压变成相对稳定的直流电压, 并且起到滤波抗干扰的作用。电源电路流程如图 2所示:
![]() |
图 2 电源电路设计图 |
2.3 水位检测模块
水位检测模块是通过在水箱中放置三根不同高度的金属杆构成的闭合回路来实现的, 金属杆A用来连接+3.3 V的电源, 金属杆B作为水位检测下限, 金属杆C作为水位检测的上限。当水箱中的水低于最低水位检测界限时, 杆B不导通, 此时B杆为低电平状态, 该电平信号通过信号处理电路传送给单片机, 单片机控制水泵运转, 实现供水动作。当水位到达最高水位界限时, C杆与水接触, 与A杆形成闭合回路, 此时C杆处于高电平状态, 该电平信号传送给单片机后控制单片机停止运转。当水位处于B、C两杆之间时, 电机无动作或保持原来动作。信号输出端接一下拉电阻用以去除电平干扰, 该水位检测电路简单易实现, 成本低, 检测精度高。其检测电路如图 3所示:
![]() |
图 3 水位检测电路图 |
2.4 水泵驱动系统
水泵驱动系统主要通过光耦合器来实现, 光耦合器可由一个发光二极管和一个光敏二极管组成[3]。当水位低于水位下限时, 单片机会将所接收到的低电平信号输出, 信号经缓冲器送到发光二极管的阴极, 这时发光二极管导通并发光, 光敏二极管接收到光源信号后发出信号使继电器开关闭合, 电机供水。当水位到达水位上限时, 单片机输出高电平, 光耦合器不导通, 电机停转。水泵驱动系统如图 4所示:
![]() |
图 4 水泵驱动系统图 |
2.5 GSM报警模块
当水箱中的水位低于最低水位界限时水泵没有供水或当水位达到水位上限水泵并没有停止运转时, 设定为水泵运行故障, 此时系统发出报警信号来提示负责人进行故障处理, 报警信号分为蜂鸣器现场报警和GSM模块短信报警两种。蜂鸣器报警可通过设置报警电路实现, 下面主要介绍GSM远程报警模块。
STM32通过RS232与GSM模块进行连接[4], STM32作为主控单元, 控制着信号的接收和发送, 当系统产生报警信号时, 信号以电平的方式传送到单片机, 单片机接收到信号后经内部处理会向GSM模块发送AT指令, 这时GSM模块的短信发送服务会启动, 根据在数据存储器存储的移动设备号码, 向远程端的液位管理负责人发送报警信息。
3 系统软件设计液位控制系统的软件设计主要包括MCGS触摸屏组态程序的设计和单片机程序设计。组态画面设计用以提供人机交互的动态画面, 实现水位控制测量数据的可视化[5]。单片机程序通过Keil uVision4软件进行编程, 将程序下载到单片机用以控制各个位置控制电路的正常运行。
3.1 触摸屏组态程序液位控制系统触摸屏画面的设计可以实现液位数据的读取, 并可以发送指令控制液位的升降, 其画面包括液位控制系统主界面、报警记录界面、实时数据显示界面以及历史数据显示界面。
主界面窗口作为触摸屏程序的启动窗口, 在主界面中包含其他界面的进入按钮以及有关数位数据的设定区域。其界面如图 5所示:
![]() |
图 5 触摸屏主界面设计 |
报警记录界面是根据在主界面所设定的水位报警上限和下限产生报警信息, 在报警记录栏里面生成报警时间以及报警描述, 其界面如图 6所示:
![]() |
图 6 报警记录界面图 |
实时数据显示界面和历史数据显示界面总称为数据显示, 前者用于显示实时发生的液位信息以及实时曲线图, 后者用于显示历史液位信息以及历史曲线图。界面图分别如图 7和图 8所示:
![]() |
图 7 实时数据显示界面 |
![]() |
图 8 历史数据显示界面 |
3.2 软件程序运行流程图
单片机将液位控制系统的各部分电路组合到一块, 其程序相当于人的大脑协调各部件的正常工作。软件流程图如图 9所示。当系统正常工作时, 水位检测电路会检测水箱的水位, 当水位处于水位上限和水位下限之间时, 水泵无动作; 当检测到水位低于水位下限时, 水泵启动, 开始供水并监测水位数据, 若水泵工作异常, 则会产生报警信号[6]; 当水位处于水位上限时, 水泵停止运作, 并显示此时的液位数据, 若此时水泵工作出现异常, 并产生报警信号[7]。
![]() |
图 9 软件程序运行流程图 |
4 结论
工业水箱液位智能控制系统是以STM32单片机为核心[8], 以水位检测电路、水泵驱动系统、电源电路以及GSM模块为主的控制电路构成, 并将数据传送到工控触摸屏上, 通过上位机实现对下位机的数据读取以及指令发送。本系统的创新之处在于, 将工控触摸屏和STM32结合到一块, 并在触摸屏组态画面设计中增加多个窗口用于显示实时数据曲线、历史数据曲线和报警记录信息, 不同画面通过按钮可进行自由切换, 该方法不仅提高了数据读取和指令执行的的速度, 而且上位机画面操作更加简洁方便, 提高了系统的灵活性; 其次, 水位报警信号采用两种方式报警, 现场蜂鸣器报警和GSM模块远程信息报警[9], 通过将报警信息发送到水位负责人的移动设备上, 可防止因负责人在远程端无法收到现场报警信号而造成损失。本系统在总体设计上实现了高速率、高效益和可视性人机交互的效果。
[1] |
谭淑梅. 简析STM32单片机原理及硬件电路设计[J]. 大庆师范学院学报, 2014, 34(6): 21-23. |
[2] |
宋维, 崔晓坤. M32的GSM模块综合应用[J]. 电脑知识与技术, 2012, 8(18): 4536-4540. DOI:10.3969/j.issn.1009-3044.2012.18.088 |
[3] |
唐彬夏, 许建明. 基于单片机的水塔水位控制系统设计[J]. 电子制作, 2013, 2(10): 58-59. |
[4] |
孙增雷, 黄俊年. 基于GSM的远程报警系统的研制[J]. 武汉理工大学学报, 2008, 30(6): 123-124. |
[5] |
乔永卫, 程帅. 基于Modbus协议的自动控制系统的通信研究[J]. 自动仪表, 2012, 27(08): 34-37. |
[6] |
蔡黎. 一种基于单片机的水位自动控制系统设计[J]. 仪器仪表用户, 2007(4): 26-27. DOI:10.3969/j.issn.1671-1041.2007.04.017 |
[7] |
张素萍, 高照阳, 张建芬. 基于STM32微控制器的无线水塔远程监控系统[J]. 化工自动化及仪表, 2016, 2(43): 195-205. |
[8] |
唐灵君, 唐杰. 基于单片机的水位控制系统设计[J]. 电子设计工程, 2012, 8(20): 62-64. DOI:10.3969/j.issn.1674-6236.2012.20.023 |
[9] |
张鲲, 陈美伊, 李壮. 基于单片机的家庭智能火灾报警系统的设计[J]. 软件, 2014, 35(4): 87-89. DOI:10.3969/j.issn.1003-6970.2014.04.023 |