焊条保温桶智能检测系统设计
2023-01-10李智斌
陈 超,杨 琪,李智斌
(东方电气集团东方锅炉股份有限公司,四川 德阳 618000)
0 引言
在工业生产过程中,焊条保温桶常用于焊工施焊过程中对焊条的加热保温。其工作原理为:采用独立的(70~80)V交直流电源对焊条保温桶上、中、下3个加热区域进行供电,通过内置加热控制系统将焊条保温桶内部温度控制在(100~150)℃之间。因此,为保证其保温性能可靠,需定期对其加热保温性能进行检测。在实际检测过程中,一般要求对焊条保温桶内部上、中、下3个区域温度均上升至100℃后的第一个控温周期内(升温、降温、升温)最高、最低温度进行记录,3个区域温度均能保持在(100~150)℃ ± 10℃之间则视为焊条保温桶检测合格。
目前,工业中对焊条保温桶加热保温性能检测的常用做法是通过自制工装将3支热电偶放置于焊条保温桶内部上、中、下3个位置进行温度测量,并利用打点式自动平衡记录仪实现温度记录及确认。该方法存在检测效率低下,易受自动平衡记录仪性能及环境温湿度影响,无法自动记录检测人员、检测时间等关键信息,检测数据不便于存档及后期查找,不利于后期量值溯源的缺点。因此,为解决上述缺点,本文设计了一种基于STM32、Qt的焊条保温桶智能检测系统。
1 系统总体结构设计
系统主要由下位机温度采集部分和上位机数据处理部分两个部分组成。下位机温度采集部分利用MAX31855热电偶温度转换芯片对用于测量焊条保温桶内部温度的集成式三点测温热电偶温度采集信号进行放大、冷端补偿、模数转换,然后通过单片机STM32F407ZGT6接收并处理热电偶温度数据后实时显示在OLED显示屏上,同时单片机通过串口将温度数据发送给上位机。上位机利用Qt实现温度数据实时接收解析、存储、绘图显示、极值点寻找、检测结果判定及历史数据查询等功能。具体而言系统应满足如下功能需求:
1)准确测量焊条保温桶内部上、中、下3个区域的温度,测温误差应小于±1℃,并实现OLED显示屏实时显示温度数据。
2)提供用户登录、注册功能,并对用户信息的合法性进行验证,以此保障系统的安全性。
3)实现温度数据的实时保存、绘图显示,便于用户直观查看温度变化及后期查询。
4)自动寻找各路温度数据的极值点并实时显示,检测完成后自动判定检测结果,并用红色对误差超标的数据加以区分。
5)提供历史检测数据查询功能,方便用户管理各台焊条保温桶,方便后期量值溯源。
6)当检测完成后,系统及时切断焊条保温桶电源,确保用电安全。
2 系统硬件设计
系统硬件部分主要由单片机系统模块、温度采集模块、OLED显示模块、电源控制模块、串行通信模块组成。集成式三点测温热电偶分别采集焊条保温桶内部上、中、下三路温度数据,并由MAX31855处理补偿后传送给STM32F407ZGT6单片机。单片机将该温度数据进行滤波处理后,通过OLED显示模块实时显示,同时通过串口将温度数据传送给PC机,再由PC机做数据处理并保存。待检测完成后,系统通过电源控制模块自动切断焊条保温桶电源,使其停止加热保温。系统硬件结构图如图1。
图1 系统硬件结构图Fig.1 System hardware structure diagram
2.1 单片机系统模块
系统采用意法半导体公司设计的STM32F407ZGT6作为微处理器,它是基于ARM Cortex-M4内核的32位微处理器,主频高达168MHz,具有优异的实时数据处理能力。其具有1024K片上FLASH和192K SRAM、3个SPI、3个IIC、6个串口,内部集成SPI总线、串行总线、12位A/D等资源,完全满足系统开发以及后期功能扩展的需要[1]。另外,编程时可以选择基于HAL库的STM32CubeMX软件进行开发,其图像化的参数配置能极大缩短开发周期,降低编程难度。
2.2 温度采集模块
系统采用K型集成式三点测温热电偶实现焊条保温桶内部上、中、下3个位置的温度采集,并通过MAX31855热电偶温度转换芯片处理补偿热电偶的微弱信号,利用STM32F407ZGT6单片机的三路SPI串行通信通道即可读取焊条保温桶内部上、中、下3个位置的温度数据。MAX31855直接将热电偶信号转换为数字信号,具有信号放大、冷端补偿、线性化、检测热电偶开路、A /D转换及SPI串口数字化输出功能,通过SPI兼容接口输出14位带符号数据[2]。其最高温度读数为+1800℃,最低温度读数为-270 ℃,冷端补偿范围为-55℃~+127℃,温度分辨率为0.25℃[3]。在实际温度采集过程中,MAX31855内部的ADC采样会让温度数据产生0.25℃的波动,此时可以通过均值滤波的方式加以改善,经程序补偿处理后,最高可保持±1℃的精度。由于热电偶产生的电势差微弱,容易受电源电压的影响,导致热电偶产生的模拟信号严重失真,故在靠近芯片电源引脚的位置连接大小为1μF的旁路电容,用于降低电源对热电偶的影响[4]。集成式三点测温热电偶结构图、温度采集电路分别如图2、图3。
图2 集成式三点测温热电偶结构图Fig.2 Integrated three-point temperature measurement thermocouple structure diagram
图3 温度采集电路Fig.3 Temperature acquisition circuit
2.3 OLED显示模块
系统采用0.96英寸,分辨率为128×64的OLED作为下位机显示模块,通过单片机IIC通信接口进行连接。利用自制字库,提前绘制焊条保温桶相关信息界面,最后只需单片机定时将处理后的温度数据通过IIC通信接口发送给OLED显示屏,即可实现焊条保温桶内部上、中、下三路温度数据的实时显示。OLED信息显示如图4。
图4 OLED信息显示Fig.4 OLED Information display
2.4 电源控制模块
焊条保温桶作为大功率器件,不能直接和单片机连接,需要通过输出驱动器实现单片机对焊条保温桶电源通断的控制。由于固态继电器的众多优点,本文采用德力西CDG1-1DD/25A固态继电器作为连接焊条保温桶和单片机之间的驱动器,同时为提高系统稳定性,采用光电耦合器PC817C实现电气隔离。电源控制电路如图5。
图5 电源控制电路Fig.5 Power control circuit
3 软件设计
3.1 下位机软件设计
下位机程序采用模块化程序设计方法,包含温度采集子程序、数据处理子程序、OLED显示子程序、电源控制子程序、串口通讯子程序,主要实现对焊条保温桶内部上、中、下3个位置温度数据的采集、滤波处理,并将处理好的数据实时显示在OLED显示屏上,同时通过串口将数据传送给上位机。另外,电源控制子程序还负责接收上位机发出的电源控制指令,在系统检测完成后及时断开焊条保温桶电源。下位机程序流程图如图6。
图6 下位机程序流程图Fig.6 Lower computer program flow chart
3.2 上位机软件设计
上位机软件基于Qt进行开发,采用多线程编程方式,同时实现数据存储及绘图显示。Qt是Qt Company开发的跨平台C++图形用户界面应用程序开发框架,具有优良的跨平台特性、面向对象、丰富的API、大量的开发文档、开源等优点,用户可以轻而易举地通过拖拽的方式布控Qt界面控件[5-7]。上位机软件主要完成系统登录验证、数据接收解析、数据极值点寻找、数据存储及绘图、电源控制、历史数据查询等功能。上位机软件结构图如图7。
图7 上位机软件结构图Fig.7 Upper computer software structure diagram
3.2.1 系统登录验证模块
为辨别当前检测人员信息,系统设有用户注册、登录功能。同时为记录用户数据,此处选用Qt内置的SQLite数据库进行存储。该数据库支持标准的SQL命令,数据存储在单个物理文件中,零配置和安装,在系统崩溃或失电之后可自动恢复。访问速度快、体积小,访问数据库的程序直接从磁盘上的数据文件读写,具有高达2TB的大存储量,完全满足本应用程序的开发需求[8]。系统初始化时,SQLite数据库中包含一张带有系统管理员账号、密码的用户信息表单,该表单用于用户注册、登录、身份验证等功能,系统管理员可以通过登录管理员账号的方式实现对系统普通用户的增删改查。用户登录、注册界面如图8、图9。
图8 用户登录界面Fig.8 Login UI
图9 用户注册界面Fig.9 Registration UI
3.2.2 数据接收解析模块
上位机与下位机通过串口实现数据通信。为保证上位机接收数据的准确稳定,需要在上位机与下位机之间设定一个通信协议。下位机将采集到的三路温度数据打包成一定格式后,通过串口传输给上位机,此时上位机按照相同格式解析接收到的数据包即可获取焊条保温桶内部上、中、下3个位置的温度数据。
3.2.3 数据极值点寻找模块
根据焊条保温桶检测要求,需要对焊条保温桶内部上、中、下3个区域温度均上升至100℃后的第一个控温周期内的最高、最低温度进行记录。因此,当温度数据解析出来后,需要分别寻找这3个位置的温度极大、极小值。由于焊条保温桶保温曲线为伪正弦曲线,因而在程序设计时,通过将当前温度数据与下一个温度数据相互比较的方式求出温度极大值、极小值。温度极值寻找流程图如图10。
图10 温度极值寻找流程图Fig.10 Temperature extremum search flow chart
3.2.4 数据存储及绘图模块
为保存焊条保温桶检测过程中的温度数据,系统采用Qt内置的SQLite轻量级文件型数据库进行存储。当用户登录成功,填写被检焊条保温桶相关信息并开始检测后,此时系统根据用户所填信息,自动新建一张表名为被检焊条保温桶编号的新表单。该表单主要存放当前检测人员信息、检测日期、温度极值以及带时间标签的焊条保温桶内部3个温度采集点的温度数据。通过以上表单设置,可以极大方便后期查看不同编号焊条保温桶的检测信息。同时,系统采用QcustomPlot对解析出来的温度数据进行实时温度曲线绘制。QcustomPlot是基于Qt的用于绘图及数据可视化的C++部件,它没有复杂的依赖关系,在Qt工程中引入相应的头文件即可使用[9]。系统检测主界面如图11。
图11 系统检测主界面Fig.11 System verification main interface
3.2.5 电源控制模块
系统在检测完成后,通过固态继电器实现焊条保温桶电源的切断。当系统完成检测后,上位机软件通过串口向下位机发送电源断开“OFF”指令。当下位机接收到该指令后,立即将控制固态继电器通断的PC0引脚置为低电平,此时固态继电器断路,焊条保温桶电源被切断,本次检测完成。
3.2.6 历史数据查询模块
为方便用户查询历史数据,系统设有历史数据查询功能。用户可通过焊条保温桶编号、检测日期等信息精确查找该焊条保温桶的历史检测数据,并自动将所查询的历史温度数据通过QcustomPlot进行绘图显示,方便用户查看。另外,系统还通过调用Qt中QPdfWriter、QPainter类实现了检测证书PDF格式导出功能,用户可以根据需求选择是否导出检测证书。
4 测试结果及分析
为保证系统温度采集数据的准确性,选用温度波动范围为±0.05℃的热电偶恒温炉在50℃~200℃温度区间内每隔25℃对系统进行标定。在各项标定温度下,使用系统的上、中、下三路温度采集通道同时进行测量,从而得到三路温度采集通道的温度数据,系统测试数据见表1。通过表1数据可以看出,系统三路温度采集通道的测温最大绝对误差均在±1℃以内,系统温度采集准确性及稳定性良好,满足系统设计要求。
5 结束语
本文基于STM32和Qt设计并实现了焊条保温桶智能检测系统。系统利用STM32单片机采集温度数据,并通过串口将温度数据传送至Qt上位机。经过实际测试,系统成功实现了焊条保温桶内部温度数据的自动采集,实现了数据保存、曲线绘制、极值寻找及历史数据查询等功能,并能通过温度极值自动给出检测结论,检测完成后自动切断焊条保温桶电源。通过标定测试发现系统测温误差均在±1℃以内,温度采集准确性及稳定性良好,满足焊条保温桶的实际检测要求,具有良好的实用价值。