基于单片机的多路香水灌装机控制系统设计

2022-12-01 05:28魏克辉徐帅洪柯雯
电子制作 2022年20期
关键词:数码管灌装液位

魏克辉,徐帅,洪柯雯

(杭州萧山技师学院,浙江杭州,311201)

目前市场上有一些灌装机采用定时灌装,这种灌装方式准确度不高,不能满足本设计要求。还有一种是采用称重的方式进行灌装,这种方式灌装准确度高,但是称重传感器价格昂贵,面对多路灌装需求布线复杂,适用性不足。本文在现有灌装机的基础上,根据企业要求,设计一套对六个香水瓶同时进行灌装的自动化香水罐装机,并且可以选择罐装瓶的容量,保证罐装精度并把实时数据在数码管上显示出来,同时操作面板上可以实现参数的调整。

1 系统概述

本文提出了一种基于STC15W4K64S单片机控制的六路香水灌装机系统方案,可以实现100ml和300ml两种不同容量精油瓶的灌装,每一个灌装口的灌装精度控制在±1%。在罐装开始前可以实现参数设置等人机交互,并使用数码管和指示灯进行状态和参数显示。采用单片机控制六个蠕动泵进行灌装,灌装过程中非接触式液位传感器进行液位测量,测得信号经由单片机运算和处理,当香水灌装完成后,单片机控制蠕动泵停止灌装,并驱动推杆电机将推杆推出,进行人工换瓶。

2 香水灌装机技术实现

图1 系统硬件框图

本系统包括单片机、蠕动泵驱动器、液位传感器、电源、数码管显示、指示灯、输入按键等部分组成。在系统中电源电路采用双电源设计,将主控板内部供电与外部传感器、按键以及数码管指示灯等供电分开,传感器输入电路的设计,输出电路的设计,独立按键电路的设计都采用光电隔离,以最大限度地减少电源干扰,增加系统稳定性。

2.1 STC15W4K64S单片机

本系统中用到的STC15W4K64S系列单片机内部集成了6路各自独立的PWM波形发生器,芯片拥有众多的资源,包括4KB程序存储器空间,128B随机数据存储空间,众多的输入输出口,可以满足本系统设计要求。本系统中存在自动模式、手动模式的选择,在不同的模式下还有一些参数的设置,比如运行模式记忆、灌装容量、灌装时间、等待时间、灌装循环次数、灌装数量、灌装频率建立时间、灌装频率下降时间、灌装修正频率、灌装修正时间、灌装修正次数等需要断电存储的参数。该单片机可以提供足够的EEPROM空间用来存储系统中所涉及的参数。

2.2 蠕动泵以及驱动

本系统中使用的蠕动泵型号为KKTS-24B17A,步距角为1.8°,在测试中发现泵管的直径、泵管的管壁厚度、步进电机的运动参数共同决定蠕动泵泵送液体的最小分辨率及取样精确[1]。

在测试过程中为了保证罐装速度和蠕动泵转速的稳定性,综合考虑选择800Hz频率作为驱动脉冲。当步距角为1.8°时,200脉冲蠕动泵旋转一圈,所以800Hz时步进电机速度为一秒钟转4圈。在实际控制中为了提高控制精度,将角度细分数调节至16,在16细分下一圈的脉冲数=需走角度/步距角*细分数=360/1.8×16=3200,速度不变的情况下需要3200×4=12.8kHz频率,所以该系统设计中PWM最大频率采用12.8kHz频率。频率的不同就代表了蠕动泵的旋转速度不同,速度不同代表香水的灌装速度不同。

图2 STC15W4K64S单片机

单片机发出六组独立的时钟脉冲信号给六台步进电机驱动蠕动泵,从而控制六台蠕动泵不同的灌装速度、灌装容量、灌装时间、可以实现不同灌装口的启停单独控制。每一路的灌装过程都采用多段速的形式进行灌装,减少灌装中液位波动,提高传感器信号的准确性,提高控制精度[2]。

2.3 液位传感器电路

本系统中采用液位传感器作为灌装完成的反馈信号,液位传感器安装在精油瓶的支撑架上面,液位传感器型号为DSW.1002. 007A。此液位传感器为非接触性电容式传感器,输出信号为开关量信号,有信号输出时为逻辑0,无信号时输出为逻辑1,可以满足灌装完成反馈,但是准确度欠佳,在液位波动较大时,容易出现信号反复,另外当灌装液位大于灌装线时信号都是逻辑0。液位传感器的使用中,外围电路并联一个100μF的电容,传感器的外围输入电路与单片机I/O口之间都有光电隔离进行抗干扰处理。当液位传感器检测到位时输出信号yw1为0,经光电隔离后可以实现相同逻辑输出,同时还添加了电源隔离。

2.4 数码管驱动电路

图3 蠕动泵驱动电路

本系统中每个灌装口都采用3联数码管显示,灌装口上有18个数码管,加上设置部分一共有24位数码管显示。每一位数码管在设计中考虑到提高亮度的原因都是采用74HC595芯片驱动静态显示。电路图设计如图5所示,每一个74HC595芯片采用级联的方式,极大地减少了单片机控制IO口的资源,系统中共使用了4个IO口实现了24位数码管的单独控制。

图4 液位传感器外围电路

图5 数码管驱动电路

3 软件

3.1 程序流程图

系统上电完成初始化后,首先读取单片机EEPROM中数据,数据包括:运行模式、灌装容量、灌装时间、等待时间、灌装循环次数、灌装数量、灌装频率建立时间、灌装频率下降时间、灌装修正频率、灌装修正时间、灌装修正次数等。系统在没有外界干预的情况下,根据之前设置的参数进行运行,然后判断工作环境以及是否含有报警信息。首次上电运行需要通过键盘设置灌装的各类参数,数码管显示设置参数以及灌装瓶子数量。选择手动模式则每次放好瓶子都需要按下启动按钮,机器只会完成当次罐装流程。当选择自动模式时,系统根据设置的推杆缩回时间以及循环次数来完成罐装流程[3~5]。

3.2 控制算法

本设计中对灌装精度要求是比较高的,蠕动泵的开环精度控制在±2%,不能满足控制要求,所以本设计中使用液位传感器用来提升控制精度。传感器在使用中由于滤波的需要外围电路并联100μF电容,在一定程度上牺牲了响应时间,其中液位传感器的响应时间为100ms,当有反馈信号给到单片机的时候,信号会由于香水在灌装线上下的波动而出现信号反复。

影响灌装控制系统精度的因素不仅包括流量传感器的反馈误差,还包含有控制系统,执行操作等环节的误差[2]。在控制中考虑到以上问题的存在,本文系统中采用了多段速控制,借鉴于PID算法中比例运算的思想,单片机控制蠕动泵的灌装速度在完成上升时间以后,采用最大速度灌装,通过灌装时间的控制预期,提前完成速度下降,采用低速继续灌装,等待传感器反馈信号完成灌装动作。通过低速灌装,既减少了香水的波动,又提高了灌装的控制精度。

3.3 控制时间的修正以及优化

图6 程序流程图

本设计中每个灌装口灌装时间需要单独记忆,系统通过记录每个口每次的灌装时间,对其进行数据处理和优化,得到更加精准的灌装时间。在使用中系统会对数据进行分析,主动抛弃重新上电的首帧数据以及一些差距过大的数据。当每个灌装口的灌装时间100次后,对这100次记录的时间数据进行排序,排序好的数据去掉最大和最小的一部分偏移数据,对其他时间数据取平均值,此平均值用来修正现在所使用的时间数据。通过每次灌装时间的记录以及灌装时间的修正,提高了灌装时间控制精度,每个灌装口的灌装时间数据可以掉电存储,以备下次上电使用。同时也可以通过人机交互清空灌装时间或者重新设定时间,系统会根据已有时间进行灌装,使用传感器对其进行重新优化。通过时间控制以及传感器反馈的双重控制,在蠕动泵低速的情况下完成最后的灌装过程,从而提高灌装效率以及精度[6]。

本设计在整个项目调试中遇到诸多问题,包括:电源启动功率不够、灌装泵接口漏气、灌装管径的厚度选择、长时间暂停后的再启动问题、蠕动泵失步、灌装精度不高等。首先在硬件上多次作出调整,针对蠕动泵与灌装管的连接进

3.4 灌装调试以及实验验证

行了加固处理;灌装管也根据蠕动泵进行了管子管径的重新选取;每个蠕动泵使用的开关电源也采用了单独的供电;步进电机的驱动器细分最终采用16细分;传感器的安装位置调整。硬件调整好后是软件的反复调试以及多次现场实验验证,最终实现100ml和300ml两种灌装容量下多次灌装精度平均误差控制在0.9g以下,可以满足控制精度在1±%的要求。

4 结语

本文采用单片机内部的六路独立PWM控制蠕动泵的形式完成了香水灌装机的基本要求,使用按键和数码管显示的方式完成模式的选择,参数的设置,灌装时间的显示,灌装数量的记录等功能。在精度的提高上采用蠕动泵的多段速控制从而提高后一段的传感器的反馈信号的准确度。通过记录多次灌装时间来优化每一个口的灌装时间,从而达到精度以及效率的双提升[7~8]。

猜你喜欢
数码管灌装液位
牙膏灌装机构设计及流动特性分析
纸盒无菌灌装包装材料灭菌工艺优化
物理项目教学设计,用单片机控制四位数码管显示
带有反馈补偿方式的灌装系统
基于51单片机的分数计数器设计
Arduino编程
MC9S08FL16单片机数码管静态显示分析
基于S7-200PLC的液体灌装及搬运系统的实现
关于机械式浮顶储罐液位开关设计的分析与研究
2009年宝马730Li发动机冷却液报警