(1.国家管网集团北方管道有限责任公司技术支持中心(科技部) 河北廊坊 065000;2.天津LNG分公司生产运行部 天津 300000;3.国家管网集团北方管道有限责任公司华北分控中心 河北廊坊 065000;4.国家管网集团北方管道有限责任公司市场部 河北廊坊 065000 )
摘要:为了实时监测输油、输气场站中手动阀门的状态,同时解决原有监测手段需要在工艺区挖沟布线、费时耗力且后期维护困难的问题,研究出了一种基于 LoRa 通信方式的低功耗阀位监测发送器。该发送器仪器采用低功耗、远距离的窄带通信技术 LoRa,通过自组网的方式,配合高精度非接触式阀位开度传感器能实时上传手动阀门开度变化数据,结合高性能处理芯片 STM32F103,实现以较小数据量在输油、输气场站复杂场景的超远距离实时通信要求。
关键词: LoRa模块;阀位监测发送器;设计;运行;
0引言
在石油、天然气长输管道场站中各个手动阀门的状态是日常生产中重要的监测内容。现有的监测方式大多是采用有线监测既将阀门上阀头的开关量信号通过导线接入站控室PLC等设备。这种方式在施工时需要在工艺区挖沟布线,需要监测的阀门越多挖沟布线的工程量也就也大,因此监测成本及难度也相应较大,后期维修成本及难度也较大。由于是在工艺区作业也存在一定的施工风险。还有的监测方式干脆就是人工巡检,定时查看各个阀门当前的状态,存在信息反馈不及时、漏检等问题。因此本文结合远距离的窄带通信技术 LoRa设计了一款无线阀位监测装置。实现以低成本对手动阀门的实时监测。
1阀位监测发送器设计方案
阀位监测发送器以STM32F103为核心,主要有电源调理模块、DI输入模块、DO输出模块、AI采集模块、UART通讯模块、LoRa通讯模块组成。电源调理模块主要作用为给阀位监测发送器各模块供电; DI输入模块主要作用为采集输入数字量信号;DO输出模块主要作用为控制继电器输出;UART通讯模块有2路,一路与PC通讯,负责运行参数的设定。一路与高精度非接触式阀位开度传感器通讯,负责读取当前阀门开度数据;LoRa通讯模块负责将采集到的各种数据以LoRa传输方式发送至后台LoRa接收网关并接收来自LoRa接收网关的反馈信息。
2阀位监测发送器硬件组成
2.1电源供电模块
电源供电模块主要由供电组件、电压调节稳压模块组成。供电组件采用锂电池或者锂电池+太阳能组合,电压调节稳压模块采用线性稳压LDO方式。电压调节如用开关电源(DC-DC转换器)方式,开关电源芯片产生的波纹和尖峰脉冲会干扰射频。因此使用LDO供电,选用 BL8064 低压降线性稳压芯片可保证工作电压为 3.3 V,既能有效降低电源波纹系数,又能避免电平不匹配造成芯片损坏。在此项目中我们采用了2个BL8064芯片,提供了2路3.3V电压输出通道。一路给STM32F103单片机供电,全程供电无控制。另一路增加了由SI2307场效应管和S8050 NPN管组成的开关控制电路,此控制电路在BL8064芯片前端,可由单片机I/O口控制输入电压及稳压后3.3V供电的通断,用于高精度非接触式阀位开度传感器、LoRa模块和UART模块等外设的供电。高精度非接触式阀位开度传感器工作电压为5~30V,因此直接由输入电压供电,而LoRa模块和UART模块等外设工作电压为3.3V则需要稳压后的3.3V进行供电。在需要休眠时,关闭此供电,可将所有外设供电全部切断,以实现低功耗。
2.2 UART 通讯模块
UART通讯模块2路均采用MAX3078芯片, MAX3078工作电压3.3V是一款具备 ±15kV ESD-Protected, Fail-Safe, Hot-Swap功能的RS485/RS422收发器。本项目采用RS485通讯方式。
2.3 LoRa通讯模块
LoRa通讯模块采用E32-433T20S, 是基于 SEMTECH 公司 SX1278 射频芯片的无线串口模块(UART),采用透明传输方式, LoRa 扩频技术, 3.3V TTL 电平输出。发射功率为 20dBm ,载波频率433MHz,最大传输距离3KM。模块具有数据加密和压缩功能。模块在空中传输的数据,具有随机性,通过严密的加解密算法,使得数据截获失去意义。而数据压缩功能有概率减小传输时间,减小受干扰的概率,提高可靠性和传输效率。
3阀位监测发送器软件设计
阀位监测发送器软件由初始化、数据采集、UART通讯处理、LoRa通讯处理模块组成。软件由C语言编写,开发调试软件为Keil uVision5。下载调试工具为J-Link。上电初始化完毕后,有一个120秒钟的参数设定时间,此时间段可用PC端软件ValveMonitor对发送器进行参数配置,配置完毕后即可根据运行模式开始工作。运行模式分为低功耗休眠模式和非休眠模式2种。数据上报模式为阀门开度数据变化上报+定时上报。
3.1低功耗休眠模式
步骤1每间隔30秒钟系统唤醒一次程序,先读取高精度非接触式阀位开度传感器当前开度。步骤2判断跟上次开度相比是否有超过设定值的变化。步骤3有变化则连续采集当前阀门开度、DI输入状态、DO输出状态、供电电压、4路AI输入值后组包发送数据。每2秒钟一次,持续60秒钟,此发送模式下不监测LoRa接收网关反馈信息,发送完毕后休眠。步骤4无变化则判断定时上报时间是否到,时间到则采集当前阀门开度、DI输入状态、DO输出状态、供电电压、4路AI输入值后组包发送数据,此发送模式下监测LoRa接收网关反馈信息,如未收到反馈信息则重发发送10次。发送完毕后休眠。步骤5上报时间未到则直接休眠。
3.2非休眠模式
步骤1每间隔1秒钟读取高精度非接触式阀位开度传感器当前开度。步骤2判断跟上次开度相比是否有超过设定值的变化。步骤3有变化则连续采集当前阀门开度、DI输入状态、DO输出状态、供电电压、4路AI输入值后组包发送数据。每2秒钟一次,持续60秒钟,此发送模式下不监测LoRa接收网关反馈信息。发送完毕后返回步骤1。步骤4无变化则判断定时上报时间是否到,时间到则采集当前阀门开度、DI输入状态、DO输出状态、供电电压、4路AI输入值后组包发送数据,此发送模式下监测LoRa接收网关反馈信息,如未收到反馈信息则重发发送10次。发送完毕后返回步骤1。步骤5上报时间未到则返回步骤1。
3.3初始化模块
开机后,程序首先对阀位监测发送器进行初始化参数设置。设置内容包括 MCU 的各引脚状态、时钟、ADC、Uart、中断向量等, LoRa 数据传输模块参数配置。
3.4数据采集模块
程序对各模块初始化后,数据采集模块开始工作。数据采集模块采集高精度非接触式阀位开度传感器当前开度、采集供电电压、采集4路AI数据、采集4路DI输入状态、采集2路DO输出状态。数据采集模块流程图如图1所示。
图1数据采集模块流程图
3.5 UART通讯处理模块
UART通讯处理模块负责2路RS485通讯的数据收发处理,2路通讯均采用modbus RTU协议,波特率为9600,数据位8,停止位1,无校验。第一路通讯为阀位监测发送器与高精度非接触式阀位开度传感器通讯,Master模式,阀位监测发送器主动发送读取数据命令给阀位开度传感器,并等待阀位开度传感器返回数据。第二路通讯为阀位监测发送器与配置软件ValveMonitor通讯,SLAVE模式,阀位监测发送器等待配置软件ValveMonitor发送命令并对其进行回应。
3.6 LoRa通讯处理模块
上述所有采集数据组包后通过LoRa模块向外发送。所有阀位监测发送器的数据全部发往LoRa接收网关,因此LoRa模块选择使用点对点的发送模式。既单个阀位监测发送器发送的数据只有LoRa接收网关能收到,其余阀位监测发送器是无法收到的,反之LoRa接收网关回应的数据也只能由需要回应的阀位监测发送器收到,其余阀位监测发送器也是无法收到的。这样既增加了数据的安全性也省去了各个模块处理非必要接收数据的工作量,大大提高设备工作效率。定时上报模式下LoRa模块发送的数据需要监测LoRa接收网关反馈信息, LoRa模块定时发送数据流程图所示。
图2 LoRa模块定时发送数据流程图
4结束语
本文提出了一种基于LoRa的阀位监测发送器,主要介绍了硬件组成部分和控制软件工作流程。该阀位监测发送器具备阀门开度数据变化上报和定时上报结合的上报模式,可实现对阀门状态的实时监测。也具备低功耗休眠模式和非休眠模式2种工作方式,满足用户的不同需求。可有效替代现有的有线监测方式和人工巡检方式。
参考文献
[1]刘瑶,谭松玲,陈涛涛,邢琳琳,苏峥.手动阀门阀位监测识别装置特征及应用[J].科技创新导报,2020,17(02):37-38.
[2][2]高爱进,林盛阳,翁乙友,胡北平,刘晓东.阀位反馈信号的开发与应用[J].中国石油和化工标准与质量,2018,38(06):66-67.
[3]徐霞军.两自由度连接方式在汽轮机调阀阀位监测装置改造中的应用[J].中国仪器仪表,2016(01):47-49.