基于ZMQ通信架构的巡检机器人离网控制系统
2023-12-20孟浩方小文张永龙
孟浩,方小文,张永龙
(内蒙古京能盛乐热电有限公司,内蒙古呼和浩特 011518)
0 前言
电力巡检是指对电网中的电缆、变电站、配电站内的设备进行巡检,及时发现设备隐患,避免设备故障引发停电事故。当前我国电力巡检主要依靠巡检人员定期定时人工巡检,但电缆、变电站通常地处偏远,地理条件恶劣,而配电站数量繁多。同时,变电站、配电站内设备放置密集,巡检质量及到位率均难以保证,因此电力巡检机器人对于电网的安全、可靠运维具有重要意义。
通常电站有多条电缆隧道,需要每月定期对电缆隧道进行防火封堵、积水情况等检查,由于电缆隧道空间比较狭小,地面不平整,人工巡检受环境制约较大,且电缆隧道气体成分、含量未知,人员进入存在一定的风险。因此,需要巡检机器人在狭小空间对电缆隧道的环境、电缆运行情况进行巡检。通过巡检机器人对电缆隧道的全面检查,及时准确测量隧道中温度、气体含量、湿度等,既提高了巡检效率和巡检质量,又有效避免人员隧道巡检的隐患,同时机器人能自动对历史巡检数据进行分析和预测,给出运行报告。
经过大量的现场调研、信号测试发现,封闭的电缆沟内网络通信环境很差,使得在其中运行的依赖无线通信的移动巡检机器人难以完成相应的巡检任务。因此,需要巡检机器人能在无网络的情况下自主进行脱机巡检,在巡检机器人从电缆隧道出来之后,再次连上网络的情况下,将自主巡检的结果上传到相应的服务器上。
普遍的移动机器人采用机器人操作系统ROS[1-2],它是一个适用于机器人的开源的元操作系统,集成了大量的工具、库、协议,提供类似OS所提供的功能,简化对机器人的控制。它提供了操作系统应有的服务,包括硬件抽象、底层设备控制、进程间消息传递以及包管理。
但在使用ROS的过程中,存在若干问题[3-5]:
(1)使用ROS平台来进行通信,一旦ROS核心服务roscore挂掉崩溃,整个系统通信都出现问题,各个节点间无法进行通信。
(2)使用ROS平台来开发业务,强依赖此平台,灵活性受限于该平台,扩展性差。
(3)使用ROS平台开发的程序,在发布部署时,需要安装ROS运行的依赖环境,否则程序无法运行,复杂性高。
(4)对网络要求比较高,一旦网络信号变弱,节点间通信会断,并没有重连机制,这是灾难性的。
针对现有技术的不足,本文作者提出基于ZMQ[6-8]通信的分布式架构的脱机控制系统,提供一种高稳定性、高性能、高扩展性和高可移植的通信方式。这种方法具有稳定可靠、网络可重连机制、基本无第三方库依赖等优点,解决了开发、部署使用过程中的问题。
文中的主要创新点如下:
(1)摒弃系统核心服务节点,系统各节点使用分布式架构进行部署,解决了中心化引起的系统通信不可达的严重性问题。
(2)系统部署无第三方依赖,提高了安装部署的便利性。
(3)系统对网络依赖弱,弱网环境依然可以自主运行,具有稳定可靠的重连机制。
(4)具有自适应网络强度机制,自适应分包、解包。
1 系统架构与方案
1.1 管廊巡检机器人简介
电缆是变电站电能传送和信息传输的重要载体,电缆主要在电缆沟中敷设,电缆沟上铺设盖板进行电缆保护。现阶段输变电工程大多实行无人值守,且电缆沟位于地下,空间狭窄封闭,给运行人员定期巡检带来困难,很难及时发现电缆火灾或运行过程中的不安全隐患。2016年6月18日凌晨,陕西西安330 kV南郊变(110 kV韦曲变)发生主变烧损事故,事故调查结果显示:西安市长安区凤栖路与北长安街十字路口(距330 kV南郊变约700 m)电缆沟道井口发生爆炸;随即,110 kV韦曲变#4、#5主变及330 kV南郊变#3主变相继起火;约2 min后,330 kV南郊变6回出线(南寨Ⅰ,南柞Ⅰ、Ⅱ,南上Ⅰ、Ⅱ,南城Ⅰ)相继跳闸。事故造成负荷损失24.3×104kW·h,占西安地区总负荷的7.34%;停电用户8.65万户,占西安地区总用户数的4.32%。此外还造成了严重的设备损毁和社会影响。
当前,电缆隧道中主要故障有:渗水、电缆老化、线缆腐蚀破损、电缆自燃等。开展机器人电缆隧道巡检,能够快速确定故障位置,及时消除电缆故障,在减少电缆火灾发生的同时,还能够确保电能的可靠输出,避免操作人员受到伤害。此外,巡检机器人的应用还能够提高输电安全检测的自动化程度。考虑到电缆隧道的特点,加大电缆隧道巡检机器人的研制具有重要意义,要开发出一种操作方便、灵活性强、安全可靠的机器人,从而有效扩大巡检范围,确保电能输送的可靠性。
隧道电缆巡检机器人见图1。适合电缆沟内使用的小型化巡检机器人本体结构,具备防护等级要求及防爆要求。
图1 电缆隧道巡检机器人
图2 B/S架构软件界面
机器人控制系统与后台数据分析软件平台能够对机器人进行远程遥控,并能够将巡检数据实时回传并对可见光视频、热成像图片、有害气体及环境数据进行分析,诊断现场问题。
系统构架为对等网络的监控站,基于C/S模式的本地高速历史数据共享和B/S模式的WEB数据浏览与运行平台构成,利用网络技术把上述系统集成为一个整体。利用机器人、图像识别技术有效补充在线监测设备、人员巡检的不足,并通过大数据分析等对象建模的方法,建立了一套适用于管廊安全及管理的一种方法,实现资源共享和信息互通。通过建立管廊中各子系统的联动和快速反应机制,来达到各系统协调运行。
1.2 基于ZMQ通信的分布式系统的架构
图3是基于ZMQ通信的分布式架构的脱机机器人控制系统。
图3 基于ZMQ通信的巡检机器人框架
说明如下:
上述架构可划分为3层,即网络层、服务层、业务层。
在网络层,使用了基于ZMQ消息队列技术中的请求-回复和发布-订阅两种模式实现了分布式架构各节点间的消息通信,保证了节点通信消息的高速转发;
在服务层,使用了基于协程技术的同步RPC方案,它让分布式调用流程变得更加简单,在提供强大的远程调用能力时不损失本地调用的语义简洁性,并且提高了开发效率和可维护性。同时在数据序列化和反序列化中提出了更高效的方式,加快了同步RPC响应的速度;
在业务层,即各个业务节点,用来处理巡检机器人的各个业务逻辑。
1.3 ZMQ分布式节点通信工作过程及原理
巡检机器人分布式节点之间通信架构如图4所示。
图4 基于ZMQ分布式节点之间通信架构
如图4所示,ZMQ分布式节点有5个,分别是机器人控制系统、机器人巡检业务控制系统、机器人附属设备控制系统、内部算法系统、外部算法系统。
机器人控制系统一般是用WEB或者QT开发的用来控制机器人的系统,它通过ZMQ的请求-响应模式和发布-订阅模式与机器人巡检业务控制系统进行交互,控制命令使用请求-响应模式,获取机器人状态信息使用发布-订阅模式。控制指令如图5所示。
图5 控制指令流程
状态获取流程如图6所示。
图6 状态获取流程
机器人巡检业务控制系统即机器人的核心大脑,主要接收机器人控制系统发来的指令然后执行相应的动作。它主要跟机器人附属设备控制系统、内部算法系统和外部算法系统进行交互。
机器人与其附属设备控制系统的通信,主要是机器人用来控制一些附属设备(比如防火门、卷帘门等),其流程如图7所示。
图7 附属设备控制流程
机器人与算法系统的交互通信,主要是进行算法识别,请求算法模块后算法模块返回结果。
如果是内部算法系统,则满足脱机巡检的要求,即机器人无需外部网络即可自主进行全面巡检任务,后期控制中心PC连上机器人后即可查看巡检报告。
如果是外部算法系统,则一般是进行一些复杂的算法识别,机器人内部的算力无法满足,这时候需要网络要求,机器人需要通过网络请求服务器上的算法模块,然后服务器上的算法模块返回识别结果。
其流程如图8所示。
图8 请求算法识别流程
2 测试案例与测试结果
2.1 系统运行案例
(1)将该系统部署到图1所示的电缆巡检机器人,并启动该机器人,设置好巡检任务时间点:从1月份到3月份,每两天零点执行周期任务,持续进行巡检任务。
(2)观察机器人生成的巡检报告,有无丢失。
由图9可以看出:从1月份到3月份,每两天会生成一个巡检报告,系统并没有丢失巡检报告,说明巡检机器人每天到点都会执行巡检任务。
图9 巡检机器人生成的巡检报告
随机抽查几份巡检报告,观察巡检报告生成的时间点,如图10—12所示:每份巡检报告都是在零点启动,并且每次巡检的巡检点拍的可见光图片都是相同位置,没有巡检报告丢失的情况。
图10 1月8日的巡检报告
图11 1月22日的巡检报告
图12 1月30日的巡检报告
图15 3月25日的巡检报告
2.2 测试结果
部署了该系统的巡检机器人,在复杂的地理环境、在规定的时间点、在巡检点的固定位置对巡检点拍照,巡检报告没有丢失的情况,每次拍照的位置也是稳定的,没有错位。由此可以看出:该系统具有高稳定性、高网络自适应性的特点,并由此获得了客户的高度满意。
3 结论
通过上述实施案例可以看出,此方案能提高巡检机器人系统运行的稳定性,无论在复杂环境还是在正常环境,尤其是机器人处于离网状态下,系统都能有效、稳定、不间断地执行巡检业务。