基于STM32多点无线通信的水源井遥控系统设计

时间:2023-10-16 19:44:01 来源:网友投稿

马和平,王 政

(包头职业技术学院 电气工程系,内蒙古 包头 014000)

乡村供水工程一直都是解决“三农”问题的关键,随着全面脱贫的结束和乡村振兴的开启,乡村供水如何向智能化方向发展,则成为巩固脱贫迈向振兴的重要环节[1]。由于乡村供水的水源所处地理位置有的较为偏僻,移动基站信号无法覆盖,导致目前4G或未来5G通信在水厂远程遥控汲水中直接使用受到限制。

目前水源井远程控制技术主要分为三部分,一是水源井终端设备,包括可编程控制器、分布式I/O、嵌入式系统控制器等终端控制及数据采集设备,主要完成开关量、模拟量的输入与输出功能,同时终端设备需要具备至少一种通信接口。二是远程通信技术,包括有线通信和无线通信,有线通信根据通信距离可以选择不同通信介质实现,主要有双绞线缆通信、以太网网线通信和光纤通信;
目前主流无线通信有NB-IoT、LoRa、WI-FI、ZigBee、Bluetooth等。三是上位机监控与管理系统,随着大数据及云计算的发展,高级语言正在发生着更迭变化,目前主要采用C#、C++、Python、Java编程语言与SQL Server、MySQL、Oracle、Access数据库结合,实现上位机监控、数据处理与数据存储功能。

水源井是供水的源头,水源井的主要设备为水泵, 因此水源井遥控系统需要实现水泵电机的启、停,过载故障判断,三相电压和电流的测量,出水压力和流量监测。遥控系统的控制命令需要从水厂控制中心上位机系统发出,再将采集到的测量参数回传上位机系统显示和存储。

2.1 水源井遥控终端硬件设计

水源井遥控系统终端使用STM32控制器为核心而设计,依据上述控制要求系统由电源、数字量输入、数字量输出、模拟量输入、RS485通信和LoRa模组六部分组成,水源井遥控系统框图如图1所示。在水源井遥控系统设计中为了保证模拟采集及串行通信的抗干扰性采用屏蔽接地处理,数字开关尽量采用光电隔离处理,隔离干扰。模拟量信号以4 mA~20 mA电流信号和0 V~10 V电压信号为主,为适用不同模拟量信号采集,需要通过电路的设计实现4 mA~20 mA电流信号和0 V~10 V电压信号的自由选择。设计方法其一在PCB板上设置转换跳线,通过跳线实现同一AD通道上电流与电压信号复用,设计方法其二采用多路AD通道,分别规划模拟电流输入端和电压输入端,同一AD通道上电流信号和电压信号不可复用。具体设计如图2所示。

2.2 水源井无线中继硬件设计

水源井遥控系统中较为关键的技术是把LoRa无线网络与NB-IoT无线网络的结合。WIFI、Zigbee和Bluetooth属于局域网通信技术,广泛使用在室内等短距离通信场所;
LoRa和NB-IoT属于广域网通信技术,广泛使用在室外等长距离通信场所[2]。LoRa无线网络其优点是组网及网络运行成本较低,缺点是不适用于长距离远程通信;
NB-IoT无线网络其优点是广覆盖、宽连接[3],特别适合跨区域远程通信,缺点是不能自由组网以及在通信数据量较大应用背景下成本偏高。LoRa无线网络与NB-IoT无线网络的结合,可实现两者间优势互补。LoRa无线网络与NB-IoT无线网络的结合要充分

图1 水源井遥控终端系统框图

图2 水源井遥控终端硬件设计图

考虑两者间通信速率问题,要尽量减少收发时延,避免出现收发不同步。LoRa模组和NB-IoT模组与MCU芯片连接的电路原理如图3所示。LoRa模组采用型号E32-422T20S2T设备,设备为基于SX1278射频芯片的串口模块,可工作在410 MHz~441 MHz频段,默认频率433 MHz。E32-422T20S2T型LoRa模组具有定点发射和广播发射两种数据传输形式,定点发射时,只有接收方设置的“目标地址”和“信道号”与接收到的数据帧中包含的“目标地址”和“信道号”一致才可接收发送方的数据;
广播发射时,只要接收方的“信道号”与接收到的数据帧中的“信道号”一致均可接收数据。E32-422T20S2T型LoRa模组可工作在四种模式下,分别为一般模式、唤醒模式、省电模式、休眠模式。四种模式的选择由模组的M0和M1引脚电平状态组合决定,具体模式选择如表1所示。

在使用E32-422T20S2T型LoRa模组时,M0和M1引脚不可悬空使用。在中继设备与终端设备间的LoRa无线通信时,与NB-IoT无线通信相比较,

图3 无线模组与MCU硬件设计图

表1 E32-422T20S2T型LoRa模组工作模式选择

其安全框架可分为MAC层安全、传输层安全和应用层安全。MAC层安全保障终端设备与网络服务器之间的双向认证以及MAC控制命令的传输安全,传输层保障网关与网络服务器以及网络服务器与应用服务器之间的数据传输安全,应用层安全保障入网过程中的双向认证及数据载荷端到端的加密解密[4]。LoRa无线通信的安全框架保证了端到端的安全。因此,终端设备上的数据传输的安全性主要通过端到端间的连接设置实现,E32-422T20S2T型LoRa模组参数设置格式如表2所示。

表2 E32-422T20S2T型LoRa模组参数设置格式

水源井遥控系统分为终端和中继两部分,均由MCU为核心组成控制系统来实现各自功能。水源井遥控系统设计的第二个关键技术环节是为MCU控制器进行程序设计。水源井遥控系统设计中所使用的MCU型号为STM32F103ZET6。

3.1 水源井遥控终端程序设计

水源井主要任务是通过水泵抽取地下水,为水厂进一步生产提供可持续的水原料。其主要控制对象为水泵电机,监测的参数有水泵电机三相电压、三相电流、有功功率、井口出水压力和流量。首先要实现接收远程信号对水泵电机的启、停控制,并且要能将水泵电机实际启、停状态反馈给信号发送端。其次对水源井出水压力和流量两个模拟量通过MCU模拟量通道采集,采集到的模拟量使用MCU的USART1端口发送到中继器,经中继器转发至上位机系统。最后MCU通过Modbus RTU协议与电量采集模块通信,测量水泵电机三相电压、三相电流和有功功率。依据水源井控制要求对MCU进行程序设计,程序流程如图4所示。

图4 水源井遥控终端程序流程图

3.2 水源井无线中继程序设计

如图3所示,水源井无线中继主要实现LoRa无线通信与NB-IoT无线通信的互转。LoRa模组和NB-IoT模组分别与MCU的USART1和USART2两个端口连接,通过对MCU的USART1和USART2编程,完成从USART1到USART2以及从USART2到USART1的数据双向转发。通过采用USART1和USART2的串行接收中断的方式,可降低USART1与USART2间的数据转发延时,实现低延时转发。此外,在接收和发送时均采用了CRC校验,保证了从接收到发送的中转过程数据的准确性。根据以上控制要求,水源井无线中继程序设计流程如图5所示。

图5 水源井无线中继程序设计流程图

水源井遥控系统其功能主要实现水源井水泵电机的启停、出水压力和流量、水泵能耗电量的监测等。上位机根据功能需要划分为用户登录模块、通信设备监测模块、运行监控模块、数据记录模块和故障显示模块。上位机系统采用C#语言设计,具有很高的安全性与稳定性[5]。

4.1 基于B/S模式监控设计

通过点击选择站点,系统连接前端设备,将实时数据显示在监控画面中,如图6所示。

图6 运行监控模块

4.2 程序代码

4.2.1 服务器代码

Server.RegisterArea(S7Server.srvAreaDB,1, ref DB1,DB1.Length);

Server.RegisterArea(S7Server.srvAreaDB,2, ref DB2, DB2.Length);

Server.RegisterArea(S7Server.srvAreaDB,3, ref DB3, DB3.Length);

TheEventCallBack = new S7Server.TSrvCallback(EventCallback);

TheReadCallBack = new S7Server.TSrvCallback(ReadEventCallback);

Server.EventMask = ~S7Server.evcDataRead;

Server.SetEventsCallBack(TheEventCallBack, IntPtr.Zero);

Server.SetReadEventsCallBack(TheReadCallBack, IntPtr.Zero);

int Error=Server.Start();

if (Error == 0)

{

Console.ReadKey();

Server.Stop();

}

else {

Console.WriteLine(Server.ErrorText(Error));

}

4.2.2客户端代码

byte[] Buffer = new byte[0x10000];

int Size = Buffer.Length;

int res = Client.AsUpload(S7Client.Block_SDB, 0, Buffer, ref Size);

if (res == 0)

{

res = Client.WaitAsCompletion(3000);

};

if (Check(res, "Async Block Upload (Wait completion) (SDB 0)"))

{

Console.WriteLine("Dump : " + Size.ToString() + " bytes");

HexDump(Buffer, Size);

}

通过某水厂的水源井遥控系统实地软硬件测试,达到预期控制效果,测试结果如下:

(1)LoRa无线信号对水源井区域覆盖率达到100%,无掉线情况出现,信号强度稳定。

(2)压力、流量等模拟量数据采集误差在±5%,水泵电压、电流和有功功率误差在±1%,水泵启停反馈信号延时在300 ms至500 ms之间。

(3)水源井无线中继与水源井终端间数据传输误码率低,CRC校验效果明显。

水源井遥控系统设计以意法半导体公司的STM32F103ZET6为控制器,分别设计水源井终端设备和水源井中继设备,水源井中继设备的MCU将LoRa模组与NB-IoT模组相结合,实现了LoRa无线通信组网与NB-IoT无线组网无缝对接,解决了水源井处无线通信信号的覆盖强度低的问题。此外,采用C#语言设计的上位机可控制水源井水泵电机启停,监控水泵运行状态、水泵电机的能耗、水源井出水压力和流量。水源井遥控系统的设计为无线通信信号较差的乡村供水工程提供了一种数据采集的方案,且方案有较强的扩展性,可为跨区域水资源统筹调配及大数据统计提供基础。

猜你喜欢模拟量中继模组自适应多中继选择系统性能分析无线电通信技术(2019年1期)2019-12-24瑞利信道下全双工中继系统性能研究太原科技大学学报(2019年6期)2019-11-18基于融合架构的多路服务器系统架构设计电子技术与软件工程(2019年17期)2019-10-09光学薄膜技术及在背光模组中的应用研究电子制作(2019年12期)2019-07-16基于信号集中监测的轨道电路模拟量报警分析铁道通信信号(2018年12期)2019-01-31高速公路表贴透镜模组设计浅谈中国交通信息化(2018年5期)2018-08-21浅谈石墨烯材料在LED路灯模组中的应用及该模组的设计电子制作(2018年8期)2018-06-26一种基于无线蜂窝网络的共享中继模型中国科技纵横(2016年14期)2016-10-10关于600MW火电机组模拟量控制系统设计和研究电子制作(2016年21期)2016-05-17中继测控链路动态分析与计算方法研究航天器工程(2015年3期)2015-10-28

推荐访问:多点 无线通信 水源