城市生命线工程

1.工程特点

广东省城市生命线工程的桥梁项目,都是户外的大型基础设施,现场的施工作业难度非常大,而且还涉及周边市政部门去现场的协调。 这个特点,使得去现场作业的人员,时间窗口非常有限,对现场的设备,基本上只能到场后快速接入,然后尽快离场。

上面的工程特点,就是物联网技术方案的约束条件。

2.技术方案

每座桥梁上面拥有的众多物联网设备,它们通过RS485总线、LORA、以太网的方式,共同构成了一个现场的物联网。

数据采集设备,部署各个位置上,负责对现场桥梁数据,进行各种数据采集。

在桥梁的某个固定位置,会部署一个中控机柜。数据采集设备们,在完成数据采集后,会通过有线或者无线的方式,将数据汇总上报到中控机柜。

中控机柜,里面只要是负责供电的电源模组,复杂网络接入的交换机,负责数据集中处理的边缘端工控机。

2.1 组网方式

在现场侧,由于施工和维护的难度限制,桥梁跨度又非常大,所以存在如下组网原则:

镭射一体机、振动仪这类高速通信的设备,采用光纤/以太网这类有线方式,安装位置在机柜附近

温湿度计、水准仪、应变计、位移计、倾角计,这类低功耗的设备,采用LORAWAN这类有线方式,安装位置桥梁的各个位置。

边缘计算设备、LORAWAN网关、交换机网关、电源模组,安装在机柜中,各种传感器数据通过有线和无线,汇聚接入到机柜中。 数据在边缘计算设备上进行汇聚之后,再由边缘计算设备作为中控,从4G无线网络推送给云端。

2.2 关键技术

2.2.1 主动上报

由于功耗的限制,桥梁项目的设备采用的是数据主动上报的技术方案,它们在完成现场测量之后,会将数据主动上报给自己的管理设备。

现场施工人员,首先要在现场要对这些设备进行安装、调测和配置,使之能够工作后,定期将数据主动上报,这些设备的上报信息包含有它们自己的身份特征信息。

2.2.2 自动发现

为了减少现场人员的配置工作,边缘计算设备,采用的是自动发现的技术方案,也就是工程人员一旦将设备接入,这些设备过一会会自动上报自己的报文信息。

这些设备的上报报文,包含有自己的身份和数据信息,边缘端设备会根据这些收到的信息,自动创建设备、通道,让这些设备自动接入。

那么,现场的工程人员,只要将设备接入机柜之后,等待一会,就能看到边缘端上自动生成的设备配置了,这时候就知道是否在边缘端接入成功了。

2.2.3 本地MQTT

MQTT是一个非常易用和维护的物联网接入方式,边缘端工控机,是基于LINUX操作系统的系统。

边缘端工控机出厂的时候,除了预先安装了边缘计算的Fox-Edge系统之外,还安装了一个本地的MQTT服务器。

现场的数据采集设备,会将自己的数据推送到该本地的MQTT服务器之中,而边缘端Fox-Edge的子系统 channel-mqtt-client 服务会订阅设备推送的MQTT消息, 然后对这些MQTT上报消息进行报文分析(Topic和Playload),从而得到数据采集设备的 身份特征采样数据

3.注意事项

尽管边缘端的工控机在出厂的时候,预装好了边缘端系统,希望现场工程人员能够即插即用,但由于设备的版本升级,组网方案的后期调整等各种原因。

这时候,需要远程登录到边缘端工控机上,进行 软件升级重新配置 的处理。

3.1 软件升级

边缘端的升级主要包括 解码器后台服务 两种情况

3.1.1 解码器

进入 组件仓库 》动态解码 页面,检查解码器状态,如果现场设备对应的解码器没有安装或者有升级,可以选择安装和升级,进行安装和更新。

3.1.2 后台服务

进入 组件仓库 》服务模块 页面,跟生命线桥梁工程相关的两个服务主要是 channel-mqtt-client-nativeiot-thingspanel-native

这部件在出厂时已经自带,但是可能是早期的旧版本,如果设备不能自动接入和发现,可以尝试下载新的版本。

这部件在出厂时已经自带,但是可能是早期的旧版本,如果设备不能推送成功,可以尝试下载新的版本。

4 问题定位

在工程实践中,现场可能会遇到跟软件配置和软件版本,导致的一些问题,以下是现场碰到的问题和解决办法

4.1 登录失败

有次现场工程人员发现,在边缘端系统,登录失败

边缘端系统是依赖Redis服务的,通常是Redis安装存在问题,无法启动成功,进而导致边缘端系统无法启动成功。

让管理人员使用root用户登录Linux,重新安装Redis服务,确保Redis服务可以正常启动

4.2 设备无法自动发现

有次现场工程人员发现,MQTT的连接正常,但是下面的传感器设备,接入边缘端工控机,自动发现失败

该传感器未安装或者未升级,无法正确处理传感器设备上报的报文

登录边缘端的管理界面后,进入 组件仓库动态解码 页面,选择该设备对应的解码器,进行安装或者升级。

然后,进入 系统管理系统参数 页面,channel-mqtt-client-native和serverConfig的配置项目,在handler中检查topic和解码器是否已经配置。

然后,重启channel-mqtt-client-native服务,重新启动这些配置

此前被旧的解码器自动发现生成的设备和通道,数据结构是旧的,可能并不可用,可以全部手动删除,等待重新自动发现。

进入 设备管理设备列表 页面,选择该型号的设备,全部选择后,手动删除。

进入 通道管理通道列表 页面,选择该型号的通道,全部选择后,手动删除。

4.3 设备自动发现后,但没有保存记录

在生命线工程中,设备在自动发现后,上报的数据会在 记录管理数值记录 记录页面,会产生记录内容。

这些记录内容,后面是要被iot-thingspanel-native服务推送到云端的真正内容。

但是,有些时候,工程人员发现,在这个页面上看不到记录内容。

未位置为,需要将收集到的数据,进行持久化保存到sqlite数据库

进入 系统管理系统参数 页面,persist-native和serverConfig的配置项目,deviceValueRecord的enable,修改为true。

也就是说,设备的采样数值,不但要保存到redis,还需要保存到sqlite

4.4 向云端推送失败

现场人员,多次遇到边缘端已经产生了数据,但是推送到云端的时候,不成功。

边缘端向云端的推送,是由 iot-thingspanel-native 和 云平台互相的互相配合来完成的。

4.4.1 账号密码不正确

iot-thingspanel-native服务要配置一个MQTT账号和密码,这个MQTT账号和密码是云端专门给它分配的,这些账号密码往往比较复杂。

手动输入,容易输入错误。

复制密码,也经常遇到图片OCR账号密码,导致的密码错误。

粘贴密码,也经常会遇到多粘贴空格和星号字符之类的错误。

不管是哪种错误,可以进入 系统管理前台日志 页面,查看iot-thingspanel-native的日志,是否有显示 连接成功 字样。

如果没有显示这个字样,那么基本上就是账号密码不正确,导致认证不成功。

前台日志,显示建立连接,仅仅是MQTT的连接在尝试准备建立,需要 连接成功 字样出现,才是成功连接了。

4.4.2 版本不匹配

旧版本曾经采用设备的名称,转为小写的方式,然后上传。后面云端和边缘端,同步改成了大小写敏感的方式,进行设备名称匹配。

两边新旧版本的不匹配,导致数据无法上传到云端。

进入 组件仓库 》服务模块 页面,下载和升级 iot-thingspanel-native 新的服务。

4.4.3 自动发现的设备无法推送

自动发现的设备,无法被推送。

iot-thingspanel-native服务要会去设备的通道参数上,查找 devEUI 配置项,并将该内容作为云端的设备名称,推送给云端。

这个配置项是解码器,根据设备上报的身份信息,而自动构造的。

如果旧的解码器已经创建了通道,那么新的解码器将无法重新创建通道,从而无法填入新的 devEUI 配置项

进入 通道管理通道列表 页面,选择该型号的通道,全部选择后,手动删除。