APP下载

基于Qt的探测器温控上位机软件设计

2022-01-25孙洁茹陈晓宁潘瑞娟

关键词:温控上位串口

孙洁茹,陈晓宁,王 健,潘瑞娟

(安徽大学 电气工程与自动化学院,安徽 合肥 230601)

随着科技的发展,远程监控在各行各业均有广泛应用[1].通过上位机软件使探测器实现数据采集和工作模式控制,具有重要意义[2].Qt是 Qt Company开发的跨平台C++图形用户界面应用程序开发框架[3-5].文献[6]基于Qt设计了上位机软件,实现了与下位机的数据传输,但不能满足大量数据的存储及分类管理.文献[7]基于Qt和WiFi设计了一种室内环境监测系统,但未实现下位机的控制.以上研究结果表明,目前探测器设备存在数据存储不便、控制距离不远、数据显示不直观等问题.鉴于此,笔者拟设计基于Qt的探测器温控上位机软件,利用RS232串口采集探测器温度、电流等数据,通过数据库对数据进行分类存储及管理,且将这些数据直观显示于终端设备.

1 探测器温控系统的工作原理

探测器温控系统由探测器和上位机组成.探测器通过上位机软件获得相关设备数据并控制其工作模式.通过RS-232串口将数据传至上位机软件,上位机软件实现数据的存储、显示.探测器温控系统的工作原理如图1所示.

图1 探测器温控系统的工作原理

2 上位机软件的设计要求

为实现数据的实时监测和设备的自动控制,需设计上位机软件,以实现上位机与下位机间的通信[8].上位机软件的设计要求如下:

(1)通过串口实现数据的接收、发送.

(2)通过采集到的数据计算得到电压、电流及温度值.

(3)根据采集的数据实现反馈控制.

(4)定义相关计数,记录串口通信过程.

(5)绘制电压、电流实时动态曲线,且在界面显示探测器及热沉的实际温度.

(6)存储遥测数据、通讯指令数据、通讯日志数据.

3 上位机软件结构

笔者以Qt为开发平台设计上位机软件.通过XML的Qt Designer能拖拽控件,随时查看界面效果,减小代码量,缩短开发周期[9].上位机软件结构如图2所示.

图2 上位机软件结构

4 上位机软件功能模块

4.1 串口通信模块

上位机软件通过RS-232串口与探测器通信,以保证数据稳定传输[10].通过串口接收工控机采集的探测器数据.上位机根据通信协议解析接收的数据后,再进行相应的处理得到实际数据.

4.1.1 串口参数设置

使用Qt自带的QSerialPort类实现与下位机的通信,通过该类可访问串口[11].在pro文件中添加Qt+=serialport语句,创建QSerialPort 类对象,查找可用串口,添加串口名称,然后对波特率、数据位、检验位、停止位等参数进行设置.

4.1.2 数据处理

从缓存区获取数据帧,转化为16进制源码并显示于主界面.为了保证不同数据通信协议的一致性,在通信协议中添加命令码作为数据判断位.当命令码为50H时,有效数据位为2路探测器电压.当命令码为51H时,有效数据位为4路探测器热沉电压.当命令码为52H时,有效数据位为2路探测器电流.通信协议如表1所示.

表1 通信协议

将16进制源数据代入下式计算模拟输入电压

(1)

其中:DOUT为16进制源数据,VREF为参考电压,N为分辨率.

对温度进行采样的电路如图3所示.热敏电阻R0串联精密电阻R1是为了对基准电压分压.

图3 对温度进行采样的电路

将计算出的模拟输入电压代入下式计算热敏电阻

(2)

将R0代入下式计算探测器的温度

(3)

其中:a=-4.148,b=3 770.615,c=-118 278.184.

将R0代入下式,计算得到两个值,其中较大的值为探测器热沉温度

(4)

其中:a=-0.000 000 653,b=0.003 862 314,c=1-R0/1 000.

4.2 控制模块

每条指令发送前弹出确认窗口,避免误操作.下位机接收指令后执行相应控制,控制成功则返回信号至上位机.若10 s内未收到返回信号则重新下发指令,直到收到返回信号.发送指令后,在发送文本框内显示当前发出的指令.

(1)手动控制.用户根据系统运行状态手动选择指令,控制数据内容的采集.手动控制流程如图4(a)所示.

(2)自动控制.无人值守状况下,选择自动控制模式.设置时间间隔,发送采集指令.根据采集到的电压电流值判断系统运行状态.当检测到温度或驱动电流异常时发送控制指令,实现制冷器开关及驱动保护的自动控制.自动控制流程如图4(b)所示.

图4 控制流程图

上位机通过串口将控制指令发给探测器实现控制.采用主从结构,主机发送一帧,从机应答一帧.在界面中放入combox控件,按协议在下拉列表中添加对应的指令.工控机收到指令后,根据命令码解析对应的信息字符,根据信息字符执行相应动作,应答上位机.命令码对应的操作如表2所示.

表2 命令码对应的操作

4.3 通信计数模块

通过相关计数可对通信状态进行显示.若出现异常计数导致通信中断,则触发复位信号实现系统复位.通信计数模块中的计数操作如下:

(1)数据接收.从总线上收到字符,无论正确与否,该计数均加1.

(2)数据发送.接收正确时,下位机根据协议完成应答,每发送1帧,该计数加1.

(3)帧头错.接收帧第1个字节不是72H时,则该计数加1.

(4)接收超时.接收时,帧中的两个字节的间隔大于1 ms时,则该计数加1.

(5)接收校验位错误.当奇偶校验不是奇校验时,则该计数加1.

(6)累加和错误.当实际累加和与显示的累加和不一致时,则该计数加1.

(7)命令码错误.当实际命令码与定义的命令码不一致时,则该计数加1.

4.4 数据显示模块

数据显示模块是上位机的重要组成部分,能实现温度、电流实时动态曲线绘制及显示.

(1)数据动态曲线绘制.使用QCustomPlot控件[12],记录文档.为避免占据大量空间,将动态图放在子窗口显示.以时间为横轴、电流或温度为纵轴,使用addGraph()函数添加图层,使用addData()函数添加数据曲线.

(2)温度及电流实时显示.使用Lcd Number控件,将计算出的温度及电流实时显示在主窗口.通过直观显示的图像及数字,用户可随时查看探测器工作状态、掌握探测器运行情况,若有异常能及时处理.

4.5 数据存储与导出模块

数据存储与导出模块能实现遥测数据、通讯指令、通讯日志的存储与导出.数据使用体积小、效率高、简单易用的Mysql数据库[13]进行管理.首先创建一个QsqlDatabase对象,通过该对象的setHostName,setPort,setDatabaseName,setUserName,setPassword设置与数据库连接有关的参数,然后调用open连接数据库.

4.5.1 数据存储

(1)遥测数据存储.遥测数据为探测器传至上位机的数据,包括通道电流、温度参数.

(2)通讯指令存储.通讯指令为上位机发给探测器的控制指令,包括通道开关的状态、驱动输出开关的状态、恒流输出等信息.

(3)通讯日志存储.通讯日志为通信过程中异常的相关计数信息,用于分析系统的运行.通讯日志表中的字段默认值为0.

数据存储流程如图5所示.

图5 数据存储流程图

4.5.2 数据导出

为保证上位机软件界面的简洁、美观,将数据导出设置在二级界面.通过combox下拉串口选择数据内容、时间及导出路径[14].通过TableView控件实现导出数据的预览功能.对查询数据进行缓存处理,查询该数据时只要直接从缓存中读取,不需查询数据库,提高了上位机软件性能[15].数据导出流程如图6所示.

图6 数据导出流程图

5 测试结果

上位机主界面如图7所示.打开界面,设置串口参数,与下位机建立通信连接,显示采集的数据.在指令选择框选择待发送指令.计数显示窗口实时显示数据信息.数据接收及发送的源码在文本框显示.

图7 上位机主界面

上位机记录的数据及设备实际测量的数据分别如表3~4所示.

表3 上位机记录的数据

表4 设备实际测量的数据

根据表3~4的数据,计算得到VTsink1,VTsink2,VTsink3,VTsink4,VT1,VT2的记录数据误差范围为[-1%,+1%],I1,I2的记录数据误差范围为[-3%,+3%].上述结果表明,通过上位机软件上位机能与下位机稳定地传输数据,探测器能正常运行.

6 结束语

笔者以Qt为开发平台,设计了探测器温控上位机软件.实现了探测器温度、热沉温度、驱动电流等数据采集、处理、存储、显示的远程控制.测试结果表明:上位机软件运行稳定、操作简单、界面友好,能满足测、记、分析及无人值守一体化要求.使用该上位机软件的探测器温控系统既能保障探测器正常运行又能降低人工成本,具有应用推广价值.

猜你喜欢

温控上位串口
考虑用户满意度的温控负荷能效综合指标模型和调峰策略
基于小型化的功放单元和温控箱结构及散热设计
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
特斯拉 风云之老阿姨上位
船舶电子设备串口数据的软件共享方法
基于ZigBee和VC上位机的教室智能监测管理系统
客车发动机舱温控电子百叶窗系统设计
温控旋转型MINI卷发器