1、 目 录摘 要1Abstract21 引 言32 概 述42.1 建筑结构健康监测的国内外现状42.1.1 国外研究现状42.1.2 国内研究现状42.1.3 物联网应用于建筑结构健康监测52.1.4 建筑结构健康监测技术发展52.2 建筑结构健康监测系统研究意义62.2.1 研究背景62.2.2 研究意义73 需求分析83.1 任务概述83.1.1 目标83.1.2 运行环境83.2 功能需求93.4 性能需求94 概要设计104.1 硬件环境104.2 软件环境104.3 开发环境114.4 总体设计124.4.1 硬件架构124.4.2 软件架构134.5 数据库设计144.6 通信协议
2、设计164.6.1 整体说明164.6.2 地址编码方案174.6.3 通信包格式设计184.6.4 消息操作码编码方案195 详细设计215.1 软件流程描述215.2 关键模块详细设计225.2.1 监听模块225.2.2 数据解析模块235.2.3 命令处理模块255.3 难点和解决方案275.3.1 并行处理275.3.2 下载配置表285.3.3 解析采集时间295.3.4 解析采集数据306 系统测试336.1 命令解析测试336.1.1 入网请求测试336.1.2 全网对时测试346.1.3 通道重启测试356.2 数据解析测试356.3 压力测试36结 论37致 谢38参考文献
3、39基于物联网的建筑结构健康监测系统 服务器软件设计摘 要:近年来各种大型建筑坍塌事故频发,给人民的生命和财产造成巨大损失,并带来极坏的社会影响。然而,现有的监测手段无法适应海量数据的监测和实时在线监测的要求。物联网技术作为当今计算机应用领域的主流技术,将其应用于建筑结构健康监测可以实时、快捷、高效地对重大建筑工程进行监测,可以及时有效地发现待监测建筑的结构损伤,准确评估其安全性。本论文着重于建筑结构健康监测系统服务器软件的设计与实现,通过该软件可以实时获取底层传感器采集到的建筑结构数据,经过解析处理后存储于MicrosoftSQlServer2008数据库中。同时,服务器软件还可以解析Exc
4、el配置表,将Excel数据解析为hex记录下发用于配置底层硬件工作模式。此外,服务器软件还能响应客户端软件的命令,根据具体命令提供相应的服务操作。关键词:建筑结构健康监测,服务器软件设计,数据解析。Structural Health Monitoring System Based On IOT Technology Server Software DesignAbstract:In recent years, the large building collapse accidents occur frequently, causing huge loss to lives and prope
5、rty of the people, and bring a very bad impact on society. However, the existing monitoring tools can not adapt to the requirements of real-time online monitoring of massive data. The IOT technology as the mainstream of todays computer applications technology will be applied to the construction of s
6、tructural health monitoring. It can help to monitor the structural health of buildings in a real-time, fast, and efficient way. It can also find the structural damage of buildings timely and give out an accurate security assessment.This thesis focuses on the design and implementation of structural h
7、ealth monitoring system server software. The server software can get the real-time data of building structural health collected by the underlying sensors. The data of building structural health will be stored in Microsoft SQL Server 2008 after parsing process. Meanwhile, the server software can also
8、 resolve the Excel table which is used to deploy the mode of underlying sensors. Keywords: Structural Health Monitoring,Server Software Design,Data Parse.21 引 言近年来建筑安全事故屡有发生,例如:上海闵行区在建13层住宅楼整体倒塌事故;重庆涪陵化工厂垮塌事故等,对经济财产和人身安全造成了巨大的损害。因此,对建筑结构的各种负载、环境因素,以及结构可靠度、耐久度的监测显得必要。基于物联网技术的建筑结构监测系统,能够实时、快捷、高效地对重大建筑
9、工程进行监测,可以及时有效地发现待监测建筑的结构损伤,准确评估其安全性,并预测其结构的性能变化、施工安全性和剩余寿命,帮助做出维护决策。本论文设计的软件,是建筑结构健康监测系统的服务器软件,主要负责接收和解析采集节点通过无线传感网络上传的建筑结构数据,然后将解析后的数据存入服务器数据库。同时,还能够配置底层硬件的采集频率和采集通道号。这篇论文包括以下几部分:2 概述部分:介绍了建筑结构健康监测的国内外研究现状和研究的背景意义,并说明了本文设计的服务器软件在建筑结构健康监测中发挥的作用。3需求分析部分:从功能上和性能上对建筑结构健康监测系统服务器软件进行了需求分析。4 概要设计部分:重点说明了建
10、筑结构健康监测系统服务器软件的架构,开发环境,数据库设计,通信协议设计。5详细设计部分:具体描述了建筑结构健康监测系统服务器软件的工作流程,详细说明了重要功能模块的实现方法以及发开过程中遇到的难点和其解决方案。6 软件测试部分:介绍了系统的测试与运行情况,并给出了相应的截图。2 概 述2.1 建筑结构健康监测的国内外现状建筑结构健康监测是指运用部署在现场的传感器,通过长期监测建筑物荷载及环境变量,并分析结构安全性能、结构动力响应等一系列结构特性,经过评价分析得到检测结构是否安全与健康的结果。2.1.1 国外研究现状在土木工程领域中,结构健康监测概念早在1985年就已经提出,最初主要应用在桥梁健
11、康监测方面,近十几年来,逐步推广到针对建筑结构的健康监测开展了大量的研究。随着土木工程结构设计的大型化、复杂化以及智能化,结构健康监测的内容逐渐变得丰富起来,不再是单纯的载荷应力监测,而要向结构损伤检测、快速损伤定位、结构剩余寿命预测等方向努力。国外尤其是北美、日本及欧洲研究的比较早,应用较广泛。最先在桥梁上应用,如Sunshine Skyway桥,对桥面、桥塔和桥墩截面的应变和温度及环境温度和湿度进行了长期健康监测。在应用于桥梁健康监测上的技术逐渐完善和成熟后,逐步发展到其他民用建筑上,如为德国的莱特火车站大楼而设计的健康监测系统,对屋顶支柱的垂直位移差进行了监控。意大利某安装了健康监测系统
12、监测外部环境对某教堂的长期损害作用。2.1.2 国内研究现状在国内,近几年结构健康监测系统的应用逐渐增多,如杭州湾跨海大桥南航道桥健康监测工程、深圳湾公路大桥结构监测、北京地铁四号线南站施工监测、国家数字图书馆工程基坑监测、中央电视台新台址施工监测、天津津塔施工过程监测中钢大厦施工监测、国家体育场(鸟巢)钢结构施工监测、奥运会羽毛球馆新型预应力弦支穹顶结构全寿命健康监控、水立方钢膜结构安全监测、昆明新机场结构抗震及安全性监测。2.1.3 物联网应用于建筑结构健康监测全球信息技术产业分别在1965年、1980年、1995年前后发生了以大型机、个人计算机普及、互联网为标志的变革,人称“十五年周期定
13、律”。在当下的“十五年”,一场新的变革正悄然兴起,那就是“物联网”(Internet of things,简称IOT)。在“物联网”这个领域中,我国的技术研发水平正处于世界前列。物联网通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把物品与互联网连接起来,进行信息交换和通讯,以实现智能化识别、定位、跟踪、监控和管理的一种网络。物联网把物理世界与信息网络系统连接起来,把物理基础设施与IT基础设施整合在一起,让生产制造、经济运行、社会管理以至个人生活有了全新的基础设施,从而形成“智慧地球”。将物联网技术应用于重大建筑结构健康监测与安全监控,可以解决目前建
14、筑健康监测与全寿命安全监控的关键技术难题,实现监测数据采集实时化、传输无线化、评判智能化,满足重大建筑工程健康监测与安全监控的实际需要,将成为建筑结构健康监测的必然发展趋势。2.1.4 建筑结构健康监测技术发展 总体来说,结构健康监测技术的发展大致经历了以下三个阶段:第一阶段,是以结构监测领域的专业人士的外部观察和专业经验等为基础,对诊断处的结构信息只能作简单的数据处理,得出大致的结论;第二阶段借助传感技术以及动态测试技术,以信号处理分析和建模计算为基础,分析结构的健康程度,由于现代传感技术和测试技术的发展,此阶段在工程中得到了大量的应用,其准确度也超过第一阶段;第三阶段,近些年为了对一些重点
15、大型复杂结构进行健康诊断,进入了以数据处理为核心,信号处理与知识处理相融合的智能发展阶段。传统的结构健康监测监控技术在工程实践中存在以下问题,例如:(1)采集速度慢、精度差、误差较大,而且布线较为复杂,在应用上存在较大的局限性;(2)信号调制、数据接口、系统整合等技术性问题还有待进一步研究,以提高系统的工作效率和抗干扰能力,降低成本;(3)如何在含噪声的环境中利用尽可能少的传感器获取全面、精确、灵敏的结构参数信息,并使所测结果具有良好的实用性和代表性;(4)数据采集系统在实时性、自动化、智能化等方面有待进一步提高;(5)已有的采集系统中,往往存在监测项目种类不足,而个别项目的规模又过于庞大等问
16、题,尤其在数据的管理方面,海量数据的存储与处理还未得到有效解决。物联网的应用使建筑健康监测技术更加完善,改善传统监控技术的不足。运用物联网进行重大建筑的监控,使得监控更加全面,采集速度快、精度高、实时性好、自动化程度高,实现在线监测,使得结构在进行安全评判时更具有科学性。所以,在施工阶段和使用阶段,这种监测技术可以达到及时有效的保证建筑的安全性,具有很好的实际意义。2.2 建筑结构健康监测系统研究意义2.2.1 研究背景当前我国正处于城市化建设进程进一步推进、重大建筑工程和基础设施大规模建设的高峰时期,我国2000年完成建筑业总产值为1.25万亿元,2005年已跃升至3.46万亿元;2006年
17、,我国建筑业实现增加值11856.5亿元,占当年GDP的5.66;2009年全国共完成建筑业总产值75864亿元;2010年我国建筑业完成总产值95206亿元。城市化建设过程中出现了一批大跨、高层、异型建筑物,如2008年北京奥运工程国家体育馆“鸟巢”、国家游泳中心“水立方”、国家大剧院、2010年上海世博会系列场馆、武汉体育馆、常州会展中心、首都机场航站楼、合肥新桥机场等。重大建筑工程作为城市标志性建筑或与广大人民群众生活密切相关,社会影响力较大的建筑物,具有使用功能要求高、建筑造型新颖、结构受力性能复杂等特点,因此建设期的施工技术复杂、使用期健康与安全性能要求高。由于重大建筑工程施工阶段的
18、复杂性,结构不完整性和受力性能的时变性,以及运营使用过程环境载荷作用、疲劳效应、腐蚀效应和材料老化以及其它使用不当的人为因素的影响, 建筑结构将不可避免地产生影响安全使用的隐患, 如果不加以监测控制,可能导致重大事故的发生,给人民的生命和财产造成巨大损失,并带来极坏的社会影响。综合有关资料表明,影响重大建筑工程健康与安全的事故往往是由多方面的原因造成的,如施工阶段未进行施工监测或施工监测数据不可靠,施工过程安全性分析与控制不当,导致施工阶段缺陷;运营使用阶段火灾或地震等突发性灾害下结构失效,长期使用造成的累积损失或者结构使用不当等因素。2.2.2 研究意义本次毕业设计来源于国家物联网发展专项资
19、金项目,工信部科2012583号,基于物联网的大型建筑结构健康监测与安全监控平台研发与产业化。着重于建筑结构健康监测与安全监控平台服务器软件的设计与实现。建筑结构健康监测与安全监控平台,能够实时监测建筑的安全和健康状态,进行分析和评估,发现异常及时预警,以便做出必要的控制,提高建筑的安全性和使用寿命,最大限度地减少不必要的财产损失与生命伤亡。基于物联网的建筑结构健康监测及安全评估,可以及时有效的发现其结构损伤,准确评估其安全性,并预测其结构的性能变化、施工安全性和剩余寿命来做出维护决定。对于提高建筑的运营效率,减少维修和检测的成本,保障建筑在建设和使用期的安全,保障人民生命财产安全具有重大的意
20、义。3 需求分析3.1 任务概述建筑结构健康监测系统服务器软件,需要完成对采集数据的解析,完成对客户端命令的解析,提供对底层硬件工作模式的配置功能,提供系统日志功能。为保证系统的安全可靠性,还需提供网络超时处理、数据重传机制。3.1.1 目标1) 设计服务器软件与底层采集节点之间的通信协议包括地址编码方案,通信包格式设计,网络同步方案,操作码编码方案等。2) 接收底层采集节点实时上传的UDP数据包,根据目标1)中订好的通信协议对其解析处理,并将解析后的数据存入 MicrosoftSQLServer2008 R2数据库。3) 解析客户端下发的命令,根据具体的命令提供相应的服务操作。4) 通过解析
21、Excel配置表,将Excel数据解析为hex记录下发实现对底层硬件工作模式的配置。5) 设计异常处理机制以保证服务器软件的稳定性和可靠性。6) 设计系统日志功能,用于错误数据的记录和异常情况的记录。7) 用c#编写可视化界面软件,用于服务器软件的功能测试和性能测试。3.1.2 运行环境硬件环境: CPU:1.5GHz及以上 内存:1G及以上 显卡:128M及以上软件环境: 操作系统: Windows 7/Windows 8 运行平台:Eclipse 数据库:SQL Server 2008 R2版本及以上3.2 功能需求1) 数据接收功能:接收底层采集节点上传的UDP数据包,并对数据进行初步的
22、合法性判断,对不合法的数据进行丢弃处理,对合法数据进行备份处理。2) 数据解析功能:完成对采集时间的解析和建筑结构数据的解析。3) 数据库操作功能:完成对数据库的增、删、改、查操作,提供对数据库日志的查询。4) 下载功能: 分为采集节点的配置表下载和程序下载。采集节点配置表下载,是将存储采集节点工作频率和通道号信息的Excel表解析成hex记录下发;程序下载,是将单片机/嵌入式程序解析成hex记录下发。5) 全网对时功能:校准所有采集节点的系统时间。6) 节点查询功能:查询具体节点的工作模式,网络地址,工作状态。7) 系统日志功能:完成对非法数据的记录和异常情况的记录。3.4 性能需求1) 稳
23、定性:在PC机正常工作的情况下,服务器程序能够稳定运行。2)可靠性:在网络超时等异常情况下保证数据的正确性。3) 并发性:具有一定的并发处理能力,在同一时刻能够响应n个采集节点的请求,并对其上传的数据进行解析。4 概要设计4.1 硬件环境建筑结构健康监测系统采用典型的物联网三层架构:采集层、传输层、应用层。用到的硬件环境如下:采集层硬件环境:应力应变传感器、裂缝传感器、挠度传感器、风力风向传感器、沉降传感器、位移传感器、倾斜传感器、加速度传感器、温湿度传感器等传感器、多传感器融合模块、太阳能采电模块、供电模块。传输层硬件环境:ZigBee模块、WiFi模块、交换机、嵌入式网关服务器、光纤/以太
24、网接入。应用层硬件环境:软件可在Windows 2000/XP/Vista/server 2003操作系统上运行,暂不支持UNIX/Linux环境以及Mac OS环境。由于开发的系统为C/S架构,因而需要路由器或交换机进行局域网的组建。可采用华为、TP-LINK、D-LINK等公司的路由器或交换机产品,路由器或交换机的网线接入口的数目4个。4.2 软件环境本次毕业设计用到的软件环境如下:Microsoft Windows 7/ Windows 8操作系统或Microsoft Windows Server2008服务器操作系统下,安装并配置Microsoft SQL Server 2008数据库
25、管理系统。4.3 开发环境图4.1 开发环境示意图建筑结构健康监测系统服务器软件采用Java语言编写,使用Eclipse开发,数据存储于Microsoft SQL Server 2008中。服务器软件的测试工具采用C#语言编写,使用Visual Studio 2010开发。Eclipse(集成开发环境):Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse 附带了一个标准的插件集,包括Java开发工具。Visual Studio 2010:Visual Studio是微软公司推出的开发环境。是目前
26、最流行的Windows平台应用程序开发环境。其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。Visual Studio 2010同时带来.NET Framework 4.0、Microsoft Visual Studio 2010 CTP(Community Technology Preview),并且支持开发面向Windows 7的应用程序。除了Microsoft SQL Server,它还支持 IBM DB2和Oracle数据库。SQL Server 2008 R2:是由美国微软公司所推出的关系数据库解决方案,近年来它的应用范围有所扩展,已经触及到大型、跨国企业的数据库管
27、理。SQL Server数据库的内置语言是由美国标准局(ANSI)和国际标准组织 (ISO) 所定义的SQL语言,微软公司对它进行了部分扩充而成为作业用SQL (Transact-SQL)。4.4 总体设计4.4.1 硬件架构建筑结构健康监测系统的物理架构采用的是传统的物联网三层架构进行设计,如图4.2所示的系统整体架构图,分布于建筑各个关键监测点的各类建筑专用传感器如沉降、倾斜、风力风向、温湿度、挠度、震动加速度、裂缝计等,通过多传感器集成模块以ZigBee短距离无线传感网络进行组网,因建筑距离和跨度较大,在传输部分采用的是三级布网方案,一级网络为ZigBee网,二级网络为长距离WiFi布网
28、,三级网络通过网关与Internet或者光纤进行三级组网,使最终的数据汇聚到中心机房的建筑结构健康监测服务器端,在应用层设计了多种应用开发,其中包括基于B/S架构的web应用程序、基于C/S架构的WinForm桌面应用程序、基于安卓系统的手持平板电脑专用软件、短信报警模块等。图4.2 建筑结构健康监测系统总体架构4.4.2 软件架构建筑结构健康监测系统服务器软件主要由初始化模块、监听模块、解析模块、数据库操作模块、系统配置模块、命令处理模块和系统日志这7个模块构成,如图4.3所示。图4.3 服务器软件的模块结构图初始化模块:完成服务器程序IP和端口的初始化以及全局静态变量的初始化。监听模块:创
29、建socket,循环监听端口,接收连接请求并获取UDP数据包。解析模块:按照协议对UDP包进行解析,如果解析得到的是数据则将数据存入数 据库,如果解析到的为命令则提供相应的命令处理操作。数据库操作模块:对数据库进行增、删、改、查等操作。命令处理模块:完成对下载、全网对时、入网请求命令、节点查询命令的处理。系统配置模块:解析Excel配置表,将Excel数据解析为hex记录下发实现对底层硬件工作模式的配置。系统日志模块:完成异常处理的记录和错误数据的记录。4.5 数据库设计1) Mac地址与逻辑地址映射表 如表4.1 表4.1 Mac地址与逻辑地址映射表字段名称中文说明键别是否空数据类型长度备注
30、Id标识IDPKNOINT自增Mac_address物理地址NONVARCHAR20Logic_address逻辑地址NONVARCHAR20Parent_id父节点IDNOINTNet_in_state在子网中的标号NOINTVersion版本号NONVARCHAR202) 数据记录表 如表4.2表4.2 数据记录表字段名称中文说明键别是否空数据类型长度备注Id标识IDPKNOINT自增repeat_adress回复地址NOVARCHAR10collect_adress采集地址NOVARCHAR10data_style数据类型NONVARCHAR20data数据NOVARCHAR40self
31、_time采集时间NONVARCHAR20write_time入库时间NODATETIME3) 操作记录表 如表4.3表4.3 操作记录表字段名称中文说明键别是否空数据类型长度备注Id标识IDPKNOINT自增logal_adress逻辑地址NOVARCHAR10operate_type操作类型NOVARCHAR10operate_para操作对象NONVARCHAR20operate_results操作结果NOVARCHAR40time时间NONVARCHAR20 4) 节点信息配置表表4.4 节点信息配置表字段名称中文说明键别是否空数据类型长度备注Id标识IDPKNOINT自增port_n
32、umber端口号NOVARCHAR10serial_number流水号NOVARCHAR10config配置信息NOVARCHAR60Bl测量值低值NOVARCHAR5N采样次数NOVARCHAR5TD1通道类型NOVARCHAR5TD2端口类型NOVARCHAR5Tadd端口地址NOVARCHAR5N1采样字数长NOVARCHAR5N2无效低位NOVARCHAR5Xmin基本底数NOVARCHAR5Z1上报警数NOVARCHAR5Z2下报警数NOVARCHAR5Y1最小记差NOVARCHAR5Y2最小发差NOVARCHAR5Tn1正常采集频数NOVARCHAR5Tn2报警采集频数NOVARC
33、HAR5Nsg采样间隙数NOVARCHAR5Time采集时间NODATE54.6 通信协议设计4.6.1 整体说明建筑结构健康监测系统的整体数据包流向如图4.3所示,底层485传感器采集到数据后,为数据加上485包头和包尾组成485报文,上传至zigbee模块。zigbee为485报文加上zigbee包头和包尾组成zigbee报文,上传至中继节点。中继节点获取485报文后,进行第三次封装,上传至3G模块。图4.4 数据包流向图4.6.2 地址编码方案表4.5 地址表示概述表名称数据/控制中心汇聚节点中继节点采集节点485采集盒/通道物理地址设备ID路由器MAC固化CC2430 硬件ID固化CC
34、2430 硬件IDCC2430 硬件ID逻辑地址固定IP汇聚节点编号频段号某个频段下节点号通道号物理地址大小(B)6B4B4B4B逻辑地址大小(B)114bit(低四位全0)4bit1n 设备物理地址l 汇聚节点:用路由器MAC地址标识,共48位,如:00 25 B3 46 68 C2l 中继&采集节点&485采集盒:用四个字节标识其物理地址,全0全1暂且不用;高八位标识类型,共256种(现分别为中继、采集节点及485采集盒);低24位标识每种类型节点的序号。n 网络逻辑地址表4.6 逻辑地址结构23 15 11 7 0汇聚节点ID中继节点ID采集节点ID通道号l 详细说明 汇聚节点ID:用一
35、个字节表示,表明属于哪个工程,采集数据上传时在中继节点中标识于数据包前端。 中继节点编码和采集节点编码组成节点的逻辑地址,由一个字节组成,中继节点编码有此字节的高四位表示,范围从0x100xE0进行编码,全网共有14个中继节点;采集节点编码有此字节的低四位表示,从0x010x0E进行编码,所以一个中继节点最多能够管辖14个采集节点。4.6.3 通信包格式设计表4.7 通信包格式设计表 包头有效载荷包尾*0长度1汇聚ID2消息地址3ACK标志会话结束标志4流水号5消息类型6消息参数列表7#1B1B1B1B1B1B1B1Bn 长度:以字节数为单位,表明数据包的总长度。(例如:* 5 a b #)n
36、 汇聚节点ID:用一个字节表示,表明是哪个工程。n 消息地址:用一个表示。l 上传请求时,该字段表示消息发起方源地址;上传采集数据时,该字段为中继ID。l 若为下发控制命令时,该字段表示消息的目的地址(命令的施予方)。注:若为通道命令时,该字段表示采集节点的逻辑地址,具体通道在作用通道中指出。n 流水号、消息类型:皆用一个字节表示。4.6.4 消息操作码编码方案消息操作码用8位表示,高四位表示消息类型编码,全0全1暂且不用;低四位表示消息类内序号编码,全0全1暂且不用,故此消息操作码可编码14*14种消息。表4.8 消息格式详细设计表消息类别消息名称功能含义操作码参数列表备注上传数据类0x10
37、TCDTransport Normal Data:上传正常采集数据0x11缓冲长度(UINT8);缓冲区采集数据TADTransport Alarm Data:上传报警采集数据0x12缓冲长度(UINT8);缓冲数据包TVD Transport Vibration Data:上传振动数据0x13长度(UINT8);振动数据TDD Transport Debug Data:上传调试数据0x14长度(UINT8);调试数据THDTransport Hardware Error Data:上传硬件故障数据0x15缓冲长度(UINT8);缓冲数据包请求类0x20RUPRequest Update Pr
38、ogram:请求更新程序0x21RUCRequest Update Configure Table:请求更新节点配置表0x23RNRRequest Net Repeater:节点入网请求(中继和采集节点0x24节点物理ID(UINT32);TLTest Link:发送探测链路握手请求0x25TRTimestamp Request:时间戳请求0x26Originate Timestamp(UINT16):起始请求时间;Receive Timestamp(UINT16):接收方接收到的时间;Transmit Timestamp(UINT16):TRY要回复的时间;RPReply Program回复
39、更新程序请求0x31程序包请求回复类0x30RTTReply Topology Table:回复中继节点配置表0x32回复此请求的时间(UINT16);该中继节点的网络拓扑设置表见RCTReply Configure Table:回复采集节点配置表请求0x33配置表包RLAReply Logical Address:回复采集节点其逻辑地址0x34时间(UINT16);采集节点逻辑地址(UINT8);采集节点物理地址(UINT32)RLSReply Link Success:返回链路连接成功0x36TRYTimestamp Reply:时间戳回复时间戳消息有以下功能:时间同步、测网络延时、询问时
40、间0x37Originate Timestamp(UINT16):起始请求时间;Receive Timestamp(UINT16):接收方接收到的时间;Transmit Timestamp(UINT16):TRY要回复的时间;5 详细设计5.1 软件流程描述建筑结构健康监测系统服务器软件流程如图5.1所示。程序启动后,首先完成初始化工作,对本地IP和Port进行赋值。接着启动监听线程,循环监听端口;当有连接请求时,接收请求并获取UDP数据包;接着会对UDP包做初步的合法性判断,不合法则丢弃,如果合法则启动解析线程进行解析,如果解析为数据则将数据存入数据库,如果为命令则移交命令处理线程进行处理。
41、图5.1 建筑结构健康监测系统服务器软件流程示意图5.2 关键模块详细设计5.2.1 监听模块监听模块的流程如图5.2所示。监听模块是一个死循环,循环监听端口9000,等待连接请求。为了不阻塞主线程,所以创建了一个MainListener监听线程。MainListener启动时会创建一个套接字receiveSocket,并绑定本地端口。当收到连接请求时,接受请求获取UDP包,并创建一个DatagramPacket用于备份UDP包。然后根据协议对UDP包的合法性做初步判断(包头是否为*,包尾是否为#),假如不合法则直接丢弃并且记入系统日志,假如合法则移交解析模块。图5.2 监听模块流程示意图5.
42、2.2 数据解析模块数据解析的流程如图5.3所示。解析模块也是单独创建了线程。首先获取监听模块传递过来的UDP包,根据定好的协议,UDP包的第一个字节为begin起始位,第二字节为length包长,第三字节为汇聚ID,第四个字节消息地址,第五个字节为ACK标志位,第六个字节为流水号,第七个字节是消息类型,第八个字节开始是消息参数部分,最后一个字节是结束位,图5.4所示。图5.3 数据解析流程示意图包头有效载荷包尾*0长度1汇聚ID2消息地址3ACK标志会话结束标志4流水号号5消息类型6消息参数列表7#1B1B1B1B1B1B1B1B 图5.4通信包格式设计图 根据第七个字节消息类型可以判定,此
43、次接收到的是数据还是命令,假如是数据,则第八个字节开始直至结束位是数据部分,这部分是由n个长度为6字节的数据包构成,最高两个字节为数据地址,中间两个字节为采集时间,最底两个字节为采集数据,如图 5.5所示。图5.5 采集数据包格式图 2个字节数据地址是由1个字节的通道号和1个字节的逻辑地址构成。解析模块会根据逻辑地址查询数据库的地址映射表,得到物理Mac地址。再根据Mac地址和通道号查询节点配置表如图5.6所示,获取通道类型,通道类型表明了这个包是什么类型的数据。最后根据具体的数据类型,将最低两字节的采集数据解析为常规格式。 图 5.6 采集节点配置表5.2.3 命令处理模块命令处理模块流程如
44、图5.7所示。图5.7命令处理模块流程示意图 假设收到的指令为中继入网请求,那么将节点配置表打包下发,告诉中继所属网络的拓扑结构;并等待接收来自中继的ACK确认回复,如果一段时间内无回复,则继续下发节点配置表。假设收到的指令为全网校时,那么获取系统当前时间,转换成16进制后组包下发,并且等待下位机的ACK确认回复,如果一段时间内无回复,则继续下发并将计数器加1,如果计数器的值大于10,则认为网络超时,响应失败。假设收到的是下载指令,首先区分是下载程序还是下载节点配置表。假设是下载节点配置表,那么读取用于存储节点信息的Excel表,并将Excel表中的数据解析成hex记录下发;假设是下载程序,那么获取