刘中华,黄宴委,王惠(福州大学电气工程与自动化学院福建福州350108)近年来,随着桥梁安全事故的不断增多,桥梁健康监测技术逐渐成为学术界、工程界的一个研究热点,与此同时,也开发出了许多用于桥梁健康监测的系统软件。目前桥梁健康监测系统软件开发主要有两种方式,一种是利用高级语言编程工具,主要有VB,VC,Delphi;另一种是利用专业化的图形化编程语言LabVIEW。利用高级语言编程,不受开发工具的限制,可以根据开发者自身
刘中华,黄宴委,王惠
(福州大学 电气工程与自动化学院福建福州350108)
近年来,随着桥梁安全事故的不断增多,桥梁健康监测技术逐渐成为学术界、工程界的一个研究热点,与此同时,也开发出了许多用于桥梁健康监测的系统软件。目前桥梁健康监测系统软件开发主要有两种方式,一种是利用高级语言编程工具,主要有VB,VC,Delphi;另一种是利用专业化的图形化编程语言LabVIEW。利用高级语言编程,不受开发工具的限制,可以根据开发者自身的设计开发出比较友好美观的界面程序,但是对软件人员的要求较高;利用LabVIEW进行二次开发,虽然能够在短时间内开发出比较实用的软件,但是软件开发容易受限于开发工具。这两种开发方式各有利弊,应根据实际情况选择使用。本文软件编程采用的是面向对象的可视化编程语言VC++6.0,充分利用VC++自带的MFC类库,开发出了界面友好美观的桥梁健康监测系统软件。
1基于以太网的桥梁健康监测系统概述
桥梁健康监测技术是在桥梁体的关键部位安装一些传感器件,实时在线监测这些监测点所采集的结构参数在桥梁运营过程中的变化,通过对这些结构参数的分析和处理,综合评定桥梁的安全服役状况。因此,桥梁健康监测系统基本应该包含以下功能:
(1)各种传感器信号的采集和处理;
(2)将采集到的数据变送至上位机控制单元;
(3)上位机实时信号的监控、分析和处理;
(4)历史数据的保存和查阅。
随着通信技术的发展,网络技术也正逐步应用在国内外许多大型桥梁监测系统中。将监测仪通过以太网连接到中央控制机,可以实现采集数据的远程传输和共享,从而在监控中心就可以对桥梁各项结构参数的实时在线监测。
基于以太网的桥梁健康监测系统的框架结构如图1所示。其中,监测仪主要完成数据的采集和变送,由于桥梁监测系统采集和处理的数据量非常大,实时性要求非常高,以单片机实现的嵌入式系统难以满足要求,本次设计的监测仪主板的设计充分利用了DSP的强大数据处理能力和FPGA的时序逻辑功能,因此,可以满足大数据量、实时监测的系统需求。
中央控制机实时显示当前监测的各项性能指标,同时能够自行分析桥梁是否处在安全服役状态,当出现突发情况下桥梁的损伤、安全性能下降的情况下能提示安全警报,避免发生重大的恶习安全事故。
2基于以太网的桥梁健康监测系统的软件设计
2.1软件设计需求分析
现场监测仪将采集到的信号通过以太网传送到上位机PC,在PC机上实时显示、保存、分析采集数据信息,既能够充分利用了DSP在现场高速采集处理数据的能力,又能够充分利用了上位PC机在绘制图像和保存数据方面的优势。因此,一个完整的桥梁健康监测系统在中央监控部分应该完成以下几个功能:
(1)每台监测仪IP地址、MAC地址、Port端口等网络地址信息、运行模式以及系统采样时间的设定;
(2)监测仪8个通道的采样频率、放大倍数、采样保存时间的设定以及每个通道对应传感器类型的选择;
(3)动态实时显示数据曲线。数据的显示可以以原始数据和FFT两种格式,并且可以调整采样时间设定一帧采集的数据量的大小;
(4)八个通道数据采集数据的长度、采集的时间能够同步实时显示在中央控制机上;
(5)越限报警。当采集到的数据出现异常,超出正常的数据范围的时候,能够向中央控制单元报警,便于工作人员及时查找出现的故障和损伤;
(6)能够对采集到的数据进行实时分析。
2.2软件系统整体设计和流程
软件设计核心部分主要有两个,一个是中央控制单元向监测仪发送命令参数,另一个是中央控制单元接收监测仪发送回来的采集数据信息。PC机接收到采集的数据信息后,还需要根据系统要求绘制出数据曲线图,便于对采集到的数据进行分析,同时为了历史数据信息的查阅,还必须将采集到的数据保存到Excel文件,其流程图如图2所示。根据软件设计的整体设计和流程,采用了四个线程:
线程1:UINT SendCMDToDSP(LPVOID IParam),完成向DSP发送在主程序设定的命令参数;
线程2:UINT RecieveData(LPVOID lParam),完成接收采集的数据信息;
线程3:UINT DrawCurve(LPVOID lParam),将采集到的数据绘制成曲线图像;
线程4:UINT StoreToExcel(LPVOID lParam),将采集到的数据保存到Excel文件,便于查阅分析历史数据。
其中,由于PC是被动接收监测仪采集的数据,为了保证在接收数据时没有数据丢失,要把RecieveData线程的优先级设为最高。
Windows本身采用的是消息驱动机制,当一个线程发出一条消息时,操作系统首先接收到该消息,然后把该消息转发给目标线程。所以可以自定义消息,然后通过操作系统来实现一个线程向另一个线程发送消息。
首先SendCMDToDSP线程发送参数命令给监测仪主板核心器件DSP,DSP收到参数命令后,按参数命令的要求向PC发送数据,RecieveData线程监听到DSP开始发送采集数据后,开始接收数据。由于RecieveData线程优先级别高于SendCMDToDSP线程,所以当接收数据时发送命令参数,SendCMDToDSP线程则需要等待RecieveData线程接收完数据才能开始发送命令参数,这样就不会造成命令参数的覆盖。
在PC机内存区域开辟一块缓冲区用于接收数据,RecieveData开始接收数据,当内存缓冲区满的时候,RecieveData线程PostThreadMessage一个消息给DrawCurve线程,将缓冲区指针和大小作为消息参数传递过去,然后释放缓冲区,再等待接收数据;DrawCurve线程接收到消息后,分配另一块内存保存数据,绘完采集数据的曲线图像后,DrawCurve线程PostThreadMessage一个消息给StoreToExcel线程,将新的内存指针和大小作为消息参数传递过去,然后把数据缓冲区释放,再继续等待消息;StoreToExcel线程获取消息后,同样分配另一块内存保存数据,将采集的数据保存到Excel文件,然后把缓冲区释放,再继续等待消息。
2.3以太网通信模块设计
PC与DSP的数据通信采用的是以太网通信,上位PC机向DSP发送设定好的命令参数,DSP则按照接收到的命令参数采集数据,然后向PC机发送采集到的数据。以太网通信部分采用的是套接口Socket编程,套接口Socket提供了许多函数,利用这些函数,程序员就可以实现DSP和上位PC机的以太网通信。
2.3.1发送命令模块
当上位PC机向监测仪发送IP地址、MAC地址等命令参数时,监测仪作为服务器端,PC机作为客户端。在服务器端和客户端分别创建一个套接口Socket,然后在系统上电后,监测仪就处于监听状态,当监听到PC有连接请求时,监测仪服务端又创建一个新的套接口stcpctive来与PC建立连接,当监测仪与PC建立连接以后,PC就可以向监测仪发送命令参数了。在此过程中,PC每次向监测仪发送100B的命令参数,其中,第一个字节是区分不同命令参数的标志,监测仪接收到命令参数后,利用这个标志来设置的各项参数,通过这种方式,依次设定监测仪各个通道的采样频率、保存时间、PGA、采样阈值、FFT使能以及监测仪本身的IP地址、MAC地址、运行时模式以及监测仪系统时间的设置,其流程如图3所示。 |