基于物联网的铁路货车轴温监测系统
2.2 STM32网关软件设计
本文引用地址:https://www.eepw.com.cn/article/201703/345028.htm2.2.1 网关软件总体设计
嵌入式操作系统μC/OS-III是一种广泛应用于嵌入式系统微内核的实时操作系统,支持任务时间片轮转调度、任务间通信以及基本的内存管理机制等。将其移植到STM32F103上,主要对OS_CPU.H 头文件、OS_CPU_C.C源代码文件、OS_CPU_A.S 汇编代码文件的编写与修改。针对用户交互和数据存储方面的考虑,系统接着移植了STemWin图形用户界面系统和FATFS嵌入式文件系统。系统上电后,进入一系列硬件初始化工作,如串口、定时器、触摸屏、SD卡等;然后初始化μC/OS-III操作系统和STemWin图形界面系统。初始化完成后开始创建任务,主要为每个任务设置优先级、堆栈大小和任务函数,创建完成后调用OSStart()函数开启多任务调度。网关软件总体设计流程如图8所示。
图8 网关软件总体设计流程图
2.2.2 GPRS初始化任务
GPRS初始化任务主要是设置一系列A T指令完成SIM900A的初始化工作,设置TCP最大尝试连接的次数为5,GPRS初始化任务结束后挂起任务,并在LCD显示屏上显示地面监控中心主机的IP地址、端口号和GPRS连接状态。
2.2.3 串口接收任务
串口接收任务负责对ZigBee汇聚节点发来的数据包进行接收并解析,由于串口接收数据量较大,为区分不同节点的数据包,定义串口连续接收2个字符之间的时间差不大于10ms来决定是不是一次连续的数据。串口接收到一帧有效数据后对其进行解包,解包后的数据保存在结构体ZigMsg_Packet对应的成员变量中,如下所示:
typedef struct {
uchar Carnumber[5]; //车厢编号
uchar Et_temp[5]; //环境温度
uchar Bear1temp[5]; //轴承1温度
uchar Bear2temp[5]; //轴承2温度
uchar Bear3temp[5]; //轴承3温度
uchar Bear4temp[5]; //轴承4温度
uchar Bear5temp[5]; //轴承5温度
uchar Bear6temp[5]; //轴承6温度
uchar Bear7temp[5]; //轴承7温度
uchar Bear8temp[5]; //轴承8温度
uchar Bearstatus[8]; //轴承状态(8个字节)
uchar Bearnumber[8]; //轴承号(8个字节)
uchar Carstatus ; //车厢状态
}ZigMsg_Packet;
2.2.4 GUI显示任务
GUI界面显示任务主要完成了以下工作:1、确定界面布局,显示界面基本信息;2、显示LISTVIEW控件,并通过LISTVIEW显示采集的数据和报警信息;3、制作字模,建立字母和汉字库,并在屏幕上显示;4、显示当前时间和GPRS信息。界面显示如图9所示,图中显示的是2016年5月22日21点18分10秒接收的数据,LISTVIEW控件中显示了对应节点的车厢号、环境温度和8个轴承温度,由于采集节点中设置温度报警的阈值是26.5℃,可以看到轴承对应单元格的背景颜色均为绿色,说明当前轴承状态都是正常的。
图9 GUI界面显示
2.2.5 FATFS存储任务
FATFS存储任务负责将串口接收到的有效数据实时保存到本地SD卡中,以便货车维护人员查看数据。在保存数据时需要确认SD卡是否挂载成功,接着调用f_open()函数实现文件的建立和打开工作,如果文件已经建立则直接调用f_write()函数写入数据,待写入完成后调用f_close()函数关闭文件即可。图10为SD卡中保存的数据。
图10 FATFS保存数据
2.2.6 系统监视任务
由于系统的数据传输容量较大易发生网路拥塞,尤其是货车在过隧道或山洞时很容易造成断网现象,系统加入了监视任务每隔15秒查询一次GPRS状态,主要通过发送“AT+CSQ”查询信号质量、发送“AT+CPIN?”确定SIM卡是否在位,若没有定期返回“OK”则关闭移动场景、重新发起TCP连接指令,将连接状态在GUI上实时显示出来。
3 上位机的设计与实现
上位机的设计主要是以VC++ 2010为平台开发完成的。上位机作为C/S模式的服务器,运行程序时自动获取显示本机IP地址,手动配置一个端口号,开启监听之后,此时GPRS客户端需将目的地址很端口号设置成服务器端的地址和端口号,连接成功后,监控界面上连接状态会显示绿色,当有数据通过Socket发送时,系统根据编组号分别实时显示变化,若出现某一车厢编号工作状态为红色,表示本节车厢轴承出现故障,点击后面“查看”按钮,即可查询哪个轴承出现故障了。如图11所示,车厢编号为95271工作状态为红色,可知本节车厢的轴承有故障,点击控件“查看”后自动打开一个新的名为“轴承详细信息”的对话框,如图12所示。
图11 上位机监控主界面
图12 轴承详细信息
从图12可以清楚地发现3、5、6和8号轴承都出现故障。这也验证了系统所设计的报警功能的准确性。
从TCP/IP发送过来的数据,一方面实时显示,另一方面还需要自动存储到数据库,以便专家分析历史数据。本文采用的是Access 2010设计数据库表,当有数据接收时,表里面的内容就立即更新,图13是存入数据库表中数据的一部分。
图13 数据存放表
4 结论
本文将物联网技术应用到铁路货车轴温监测系统中,通过研究与试验工作,系统达到了轴承状态动态监控和数据可靠传输的效果,弥补了现有的轴温检测装置的不足,能够提高轴温监测的实时性、可靠性和方便性,在铁路货车行车安全监测领域具有较好的应用前景。
作者:陈启武 张高明 吴新春西南交通大学信息科学与技术学院(四川 成都 610031)
评论