当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘要:介绍了地基沉降远程数据采集系统服务器端软件的设计与实现方法。该软件能够并发处理多个远程客户端传送过来的数据,并将数据保存到数据库中,同时采用B/S架构对采集的数据进行管理和分析,从而实现对地基沉降远程采集数据的实时监控与存储。经长时间测试,该软件运行正常,具有很强的实用性。

引言

地基沉降监测系统主要用于路基、路堑、桥梁、建筑、地铁、水利大坝、房屋等容易出现差异沉降的场所以及桥路过渡段的监测测量。随着现代通信、网络、计算机技术的发展,数据监测系统也逐渐由单机的简单数据采集监测系统向局域网或远程网络的分布式综合远程数据采集监测系统方向发展。因此,如何充分利用现代信息和通信技术,实现对路基、路堑、桥梁、建筑、地铁等领域安全监控和管理的信息化、网络化是当前的发展趋势。

本文对地基沉降系统中服务器端软件系统的设计与实现进行了系统的介绍,具体包括软件系统的结构、功能模块的设计与实现以及系统改进设想。

1数据采集软件系统结构

数据采集软件系统结构图如图1所示。数据采集软件系统包括数据接收存储子系统和数据管理显示子系统。数据接收存储子系统负责数据接收、数据解码、数据存储、定时/实时发送指令;数据管理显示子系统负责实时数据显示、数据查询、历史数据曲线浏览、数据导出等。

地基沉降远程数据采集软件的设计与实现

2功能模块设计与实现

数据接收存储子系统包含三个线程,分别是数据接收线程、解码和存储线程、定时/实时发送指令线程。

2.1数据接收线程

本数据采集软件部署在具有公网IP的服务器上,采集客户端很容易通过GPRS网络将数据传输至服务器器上。数据接收线程的作用就是用于接收异地各个客户端发送过来的采集数据。具体实现方法:针对每个客户端开辟一个接收线程,该接收线程是基于Socket技术,由于本软件系统采用Java语言来实现,因此可使用MINA框架或JAVARMI来实现数据的接收。

2.2数据解码/存储线程

数据接收完成后,需要对数据进行解码。本文每个客户端传送过来都是基于MODBUS协议的,可以同时传送超过100个以上的传感器节点数据。从解码数据可以得到传感器编号、频率、标定偏移量、实际偏移量数据。使用实际偏移量减去标定偏移量即为实际的偏移量数据,根据传感器编号可获知是哪个传感器的数据。数据解码完成后,需要将解码出来的数据存储到数据库中。

2.3定时/实时发送指令线程

通过设置定时参数,服务器将会定时发送指令(包括获取数据指令及标定指令),客户端收到指令后立刻发送相应的数据至服务器端。同时,该软件还支持实时发送指令,在服务器端点击实时发送按钮后,客户端就会立刻返回相应的数据。其详细流程如下:

首先是判断定时周期变化否,如果未变,继续执行,否则修改定时周期变量值,重启定时发送指令线程

其次是判断实时发送标志置位否,如果置位,则立刻发送指令至客户端,否则继续执行。

2.4实时数据显示

利用该系统可通过设置时间周期,定时获取数据库数据,并在网页上显示出来,其效果如图2所示。此外,在界面上还可以看到历史曲线及Excel数据导出。

图2实时数据列表

2.5数据查询

利用该系统也可根据传感器编号和日期来查询采集的数

其效果如图3所示。

图3数据查询界面

2.6历史曲线

点击传感器列表中的某一个传感器,即可查看相应的历史数据,效果如图4所示,使得管理员人员对被监测的传感器状态有着全面、直观的了解。

图4历史曲线

3系统改进设想

目前,显示数据的方法只有表格和历史曲线两种。在以后的版本中,应该考虑使用SVG、GIS、虚拟显示等技术对传感器进行可视化管理,使软件变得非常直观、形象。在此基础上,设置报警、短信提醒等人性化管理功能。

4结语

本软件为地基沉降监测系统的服务器软件部分,用于对远程数据的采集、存储、管理以及显示等。经过长时间运行测试,软件运行稳定,实现了稳定的、连续的、可靠的监控数据测量。该系统适合多客户端、长时间、短周期的地基沉降监测任务,为实时地基监测增加了科学的决策依据。

20211112_618e5f8df20da__地基沉降远程数据采集软件的设计与实现

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

(全球TMT2021年12月16日讯)摩尔线程与浪潮在京签署元脑战略合作协议。摩尔线程与浪潮将发挥各自在技术、生态和产业等方面的领先优势,基于创新算力芯片和元脑生态平台展开多维和深度合作,联手开发领先的人工智能行业解决...

关键字: 线程

目录Java线程与OS线程的区别与关联JNI的作用JNIEnv和JavaVM是啥JNI中数据是如何传递的Java线程与Native(OS)线程的区别联系:Java线程其实是一层OS线程的封装,本质上就是OS线程。【以前版...

关键字: Android NI 线程 LOADER

线程的同步是Java多线程编程的难点,往往开发者搞不清楚什么是竞争资源、什么时候需要考虑同步,怎么同步等等问题。

关键字: 线程 进程 JAVA

线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

关键字: 线程 进程 控制流

昨天我们用IntelI9的10核,每个核2个threads的机器跑了内核的编译:超线程SMT究竟可以快多少?今天,我换一台机器,采用AMDRyzen。 默认情况16核,每个核2个threads,共32个CPUs:下面编译...

关键字: zen 线程 SMT

众所周知,STL容器不是线程安全的。对于vector,即使写方(生产者)是单线程写入,但是并发读的时候,由于潜在的内存重新申请和对象复制问题,会导致读方(消费者)的迭代器失效。实际表现也就是招致了coredump。另外一...

关键字: 线程 ST

栈是什么?栈有什么作用?首先,栈(stack)是一种串列形式的数据结构。这种数据结构的特点是后入先出(LIFO,LastInFirstOut),数据只能在串列的一端(称为:栈顶top)进行推入(push)和弹出(pop)...

关键字: 内核 线程 进程

1.介绍本以为暂停线程是一条语句的事,结果发现事情并没有那么简单,而且我相信很多人都用错了,就是因为踩了这么一个坑,所以准备发这么一个帖子,让后面的人少踩坑。2.应用场景有三个线程,分别为A、B和C,把A线程比作是大脑,...

关键字: 线程

众所周知,STL容器不是线程安全的。对于vector,即使写方(生产者)是单线程写入,但是并发读的时候,由于潜在的内存重新申请和对象复制问题,会导致读方(消费者)的迭代器失效。实际表现也就是招致了coredump。另外一...

关键字: 线程 ST

关注、星标公众号,直达精彩内容来源:整理与网络素材1.线程概述线程是轻量级的进程(LWP:lightweightprocess),在Linux环境下线程的本质仍是进程。在计算机上运行的程序是一组指令及指令参数的组合,指令...

关键字: 线程

《物联网技术》杂志

2511 篇文章

关注

发布文章

编辑精选

技术子站

关闭