基于LoRa 和ARM 的电机实时温度在线监测系统研究
2021-04-02姜拴雷程维明陈凯吴亚旗
姜拴雷,程维明,陈凯,吴亚旗
(1.201620 上海市 上海工程技术大学 机械与汽车工程学院;2.201900 上海市 上海悍鹰电气有限公司)
0 引言
随着技术的进步和各种器件成本的逐步降低,电机在线监测技术应运而生。目前,基于光纤通信、GPRS 及以太网技术设计的电机在线监测系统已然出现[1-2],但是其组网复杂、成本高,传统的无线通信技术如WIFI,zigbee 通信距离较近,信号数据在传输过程中衰减速度快。并且,由于中大型电机工作环境恶劣,信号环境杂乱,周边的大功率生产设备产生较大的磁场和电场干扰,使得现有的工厂数据传输技术的应用效果并不理想。因此,必须选择其他合适的通信方式。
LoRa 是美国Semtech 公司采用和推广的一种基于扩频调制技术的远距离无线传输方案,可在低发射功率下最大程度兼顾远距离传输,并且在复杂环境下,其融合的前向纠错编码技术能够确保数据采集传输的准确性[3]。LoRa 的出现解决了电机在线监测所要求的成本低、抗干扰能力强及传输距离远等问题。
为了实现对中大型电机多路温度参数的实时监控,设计了一套基于LoRa 的电机多参数在线监测系统。本系统利用STM32F103 单片机采集温度传感器获取的电机三相绕组的表面温度、轴承表面温度、进/出风口温度、机壳表面温度及铁芯表面温度,数据经过处理后通过LoRa 模块发送到上位机进行数据及波形显示、数据存储、历史数据查询、上限阈值报警、温度补偿。
1 传感器的选择与安装
中大型电机温度的测量针对不同部位采用不同的检测方法。中大型电机用电阻法测量电机三相绕组时存在2 个问题:一是对于用电解铜线做的绕组,只有当温度在-50~150℃范围内时,电阻值与温度值之间才满足一定的函数关系[4];二是用电阻法测得的是绕组的平均温度,不能反映最热点部位的温度或温升,并且是断电测量,也不能实时反映电机运行过程中的状态。红外测温法适合于现场巡检测温,仅能测量表面温度,不能测量电机内部温度,并且考虑到用红外测温的成本和稳定性等因素,红外测温法并不适合电机的现场在线监测。
中大型电机的三相绕组、铁芯、轴承表面一般已埋置好Pt100 铂电阻传感器,因此采用埋置检温计法,而进/出风口温度以及机壳表面温度采用温度计法。
铂热电阻具有测量范围大、性能稳定及示值复现性高等优点,因此,在工业用温度传感器中应用广泛,工业铂电阻测温范围为-200~850℃,它在0℃的电阻为100 Ω[5],每变化1℃,电阻值变化3.908 7×10-3Ω,因此,采用Pt100 铂热电阻作为电机温度测温元件。根据设计需求,进出风口温度以及机壳表面温度采用磁吸式铂电阻温度传感器。
2 系统总体设计
本系统主要用于对电机在工业现场运转过程中的状态进行实时监测。电机温度无线采集系统如图1 所示,主要由温度信号调理电路、下位机、LoRa 发送和接收电路及上位机组成。
温度采集所选用的Pt100 铂电阻传感器,电阻的变化经过调理电路转化为电压输出到下位机,下位机将采集到的数据经过处理后发送给LoRa 发送模块的双环形FIFO 缓冲区[3],LoRa—USB 接收模块实时与上位机实现数据传输,在上位机软件实现电机的在线监测。测量参数如表1所示。
图1 系统总体框图Fig.1 Overall system diagram
表1 测量参数及监测部位Tab.1 Measurement parameters and monitoring parts
上位机软件在美国国家仪器公司(NI)的软件LabVIEW 开发环境中设计,实现数据采集、波形显示、温度补偿、数据保存与查询、上限温度阈值设置及报警等功能,上位机软件界面简洁,操作简单。
3 系统硬件设计
3.1 电源稳压模块
图2 为电机温度在线监测系统电源稳压模块电路图,采用LM2596S 电源稳压模块。LM2596S是一款3 A 电流输出降压开光型集成稳压芯片,具有1.23 V 的基准稳压器和150 kHz 的固定频率振荡器,该系列芯片具有保护电路、电流限制及热关断电路完善等功能,通过该器件构成的高效稳压电路只需要很少的外围器件。
图2 电源稳压模块Fig.2 Power regulator module
输入电压采用DC12 V/1 A 的电源适配器将电压经过滤波后输入到LM2596S 开关稳压电路,由于电源适配器输出的电压纹波小,故采用的滤波电容较小。LM2596S 的4 引脚作为反馈引脚,利用调整精密可调电位器VR1 将DC12 V 电压调整到5 V 附近,LC 滤波电路电压稳定到5 V 为传感器提供电源。另外,5 V 电压通过AMS1117-3.3 转换后为微控制器提供电压。
3.2 温度信号调理电路
温度信号调理电路采用铂电阻和其他3 个匹配电阻构成惠斯普电桥对温度进行测量。任意一路温度信号调理电路如图3 所示。为保证电桥输出电压信号的稳定性,MCP1541 为信号变换电路中的单臂电桥提供4.096 V 精确电压基准,该器件采用先进的CMOS 电路和EPROM 微调技术的组合,初始精度最大能够达到1%,并且这款芯片具有低输出噪声及低温度漂移等特性。基准电压的稳定和准确性决定了系统的准确性,并且考虑到为减少输入电压的瞬时噪声,在电源输入端外接一个官方推荐的0.1μF 的旁路电容,负载电容C02 是用来稳定电压基准。
电桥电路将电阻的变化率转化为电压差分信号输出到AD627 放大电路[6],经过低通滤波后输入到下位机采集节点模数转换的I/O 口。电桥的一个桥臂VR2 采用可调电阻,通过调节R2 可以调整输入到运放的差分信号的大小,常用于调整零点。在系统中此电阻大小决定监测系统温度的最低值,即为-20 ℃,对应的电阻值为92.16 Ω。运算放大器AD627 的反馈电阻R8 决定微弱电压的放大倍数。
图3 温度信号调理电路Fig.3 Temperature signal conditioning circuit
3.3 下位机
下位机选用STM32F103ZET6 芯片,它是基于ARM Cortex-M3 的微控制器。STM32F103ZET6的CPU 工作频率为72 MHz,外设包括:512 K字节的Flash,64 K 字节的数据存储器、5 路USART、8 个16 位定时器、112 个通用GPIO 口引脚、12 位16 通道的模数转换、76 个中断(16个内核中断,60 个可屏蔽中断)以及12 通道DMA 控制器等,能够应用于各种复杂多变的监测控制场合,满足本系统的设计研发应用要求[7]。
3.4 LoRa 数据通信
LoRa 数据通信采用SX1278 无线传输模块,考虑到车间内环境复杂及干扰严重的问题,匹配高增益吸盘天线,工作频率为433 MHz,在通信功能下,包含一般模式、唤醒模式、省电模式及信号强度模式,模块处于配置功能下通过发送AT 指令设置通信模式。下位机USART2 的PB10及PB11 引脚用于接收RXD 及TXD 引脚输出的TTL 串口数据,AUX 作为指示模块工作状态引脚接下位机PA4 外部中断输入引脚,VCC 选择3.3~5.0 V 供电。
4 系统程序设计
4.1 下位机测温软件实现
下位机以STM32F103ZET6 单片机为核心,通过温度信号调理电路将Pt100 铂电阻信号转化为电压信号进行温度数据采集。下位机基于DMA 方式实现8 路模拟温度信号的实时数据采集,根据通道数量和采集的点数配置相应数目的连续存储单元。为保证采集数据的平滑性,将采集到的数据依次经过滑动滤波处理,LoRa 模块将打包好的数据上传至上位机。下位机主程序流程图如图4 所示。
图4 下位机程序流程图Fig.4 Flow chart of lower computer program
4.2 数据包程序设计
由于该监测系统长期在工业现场环境下运行,工作环境恶劣,周边的大功率生产设备产生较大的磁场和电场干扰,信号环境杂乱[8],数据在无线传输过程中会有丢包及误码情况发生,导致PC 端电机监测软件误报警。为防止此情况的发生,将其设置成如表2 所示的数据包格式。下位机将采集完成的一组温度数据与帧头对应的ASCII 码经过异或校验后作为校验字节附加到数据包的帧尾,转换完成的一帧数据利用LoRa 技术和上位机通信。
表2 数据包格式Tab.2 Packet format
校验字节的计算方式是将数据包中的帧头和数据区每个字节进行异或校验,校验公式为
4.3 LoRa 模块程序设计
LoRa 模块设计采用高效的ISM 频段射频SX1278 扩频芯片,模块的工作频率为410~441 MHz,以1 MHz 频率为步进信道,共32 个信道,每个信道有65 536 个地址。通过AT指令配置模块传输参数,上下位机之间采用透明传输的方式,传输波特率为9 600 b/s,射频发射功率为20 dBm,空中速率为19.2 kb/s,模块地址选择1,通信信道1。
下位机上电时,时钟芯片默认使用内部高速时钟。上电之后,下位机根据配置使用精度高的外部时钟[9],然后进行系统的初始化,对下位机串口通信波特率、校验位等进行配置。LoRa 模块初始化及配置程序如下:
LoRa_Init();//LoRa 初始化
LoRa_Set();//LoRa 配置
Aux_Int(1);//设置LoRa_AUX 上升沿中断
模块根据MD0 的配置与AUX 引脚的状态会进入不同的功能。AUX 用于无线收发缓冲指示,当LoRa 模块开始发送一帧用户数据时,AUX 引脚输出高电平,此时,单片机响应中断服务函数,设置下降沿触发,当模块把所有数据通过RF 芯片并启动发射后,AUX 输出低电平,表明1 帧数据已经发送结束,LoRa_AUX 中断服务函数如下:
4.4 PC 端上位机软件设计
上位机软件采用基于G 语言的LabVIEW开发,实现电机在运行过程中的数据及波形显示、信号分析和处理、温度补偿、数据保存与查询以及上限阈值报警的功能[10],系统根据运行日期自动创建Excel 数据库,并实时存储采集的数据。
如图5 所示,PC 端电机监测界面包括主界面、波形显示界面、参数设置界面及历史数据界面。主界面中主要是串口选择的设置、8 路温度数据的实时在线显示、用8 个布尔灯对系统运行状态的监测以及查询某天或某时间段电机运行过程中的数据,并在历史数据界面显示查询数据。波形显示界面用于实时在线显示电机的运行状态曲线,设置界面不仅可以设置温度上限报警阈值,也可对采集的温度数据进行非线性补偿。
图5 PC 端电机监测软件主界面Fig.5 Main interface of PC terminal motor monitoring software
5 结论
本文提出了一种基于LoRa 技术与单片机的电机温度在线监测系统,利用STM32F103 单片机作为控制核心,实时采集温度传感器及其信号调理电路获取的电机温度数据。采集的数据在下位机经过滤波等处理后,通过LoRa 模块的扩频调制技术发送到上位机LoRa—USB 接收模块,在上位机软件实现数据的分析处理、温度补偿、数据保存与查询、图形化表达以及上限阈值报警等功能。与传统电机温度监测系统相比,本系统具有良好的抗干扰性、运行稳定性,并且传输距离远、可扩展性强,PC 端电机监测界面友好直观,各操作界面之间可方便切换。有助于解决数据传输过程中实时性、精确性的问题及防止电机故障情况的发生。