基于容器技术实现边缘计算的智能配用电一体化终端

2021-04-10 05:50:22任宝军高志勇
综合智慧能源 2021年3期
关键词:进程容器处理器

任宝军,高志勇

(南京国电南自电网自动化有限公司,南京210000)

0 引言

近年来我国电力系统发展迅速,国网电力系统二次侧终端类产品类型逐年剧增。在配用电领域,采用智能终端设备来实现对各种目标节点的监测以及数据采集,并将采集到的数据上传到主站,其产生的巨大计算量对运维管理主站的运算能力提出了一定的要求。其次,现场功能需求的多样化,要求同时部署多种类型的装置来满足实际业务要求。而目前传统配用电终端为了实现各种复杂功能,其内部软件在开发方式上多数采用多进程方法进行结构解耦。但是多个应用程序(APP)相互之间缺少安全管理机制,某个异常的APP 会影响其他正常的APP 进程,导致整个装置系统瘫痪。基于以上问题,提出一种就地化采集数据并计算处理的技术,即边缘计算。采用容器技术[1]实现内部应用程序安全隔离,在功能结构上采用实时系统融合管理系统的设计方案,综合具备实时采样计算保护与大数据量接入进行边缘计算高级应用分析并存储的能力。

1 常规配用电终端特点介绍

目前常规用电类产品主要装置功能集中于就地数据采集与上传,如进行电表数据采集与计量,并将数据上传至主站。因此常规用电类产品需要选用具备完善文件存储方案及强大网络协议栈功能的Linux 操作系统为基础平台,在该平台上开发各种应用程序。同时,由于配电类产品注重实时采样计算与保护功能,因此对系统的实时性要求较高,一般会选择嵌入式实时操作系统为开发平台。

1.1 系统平台安全性

某装置以Linux 操作系统为基础运行各种应用进程,每个进程实现各自的业务需求功能,如图1所示。各个进程间采用消息传输机制或共享内存等方式进行进程间通信。这种传统开发方式的优点是开发快捷、更新升级方便,但是系统中各个进程的安全性无法得到有效控制[2]。

图1 常规应用服务开发架构Fig.1 Development architecture of general application service

具体分析如下:应用服务bin1,bin2,bin3 运行过程中,各个bin 服务间可以直接访问系统信息以及调用系统操作接口。bin1获取系统内其他进程号之后,可以对任何进程进行人为kill 操作来结束该进程;bin3服务在运行一段时间后,由于内部程序设计缺陷等问题导致出现该进程占用中央处理器(CPU)以及内存使用率高达98.0%以上,且长期占用闪存(flash memory)的写操作;bin2 进程正常运行。当出现上述3 种运行态服务进程后,bin1 可随时终止其他程序进程的正常运行;bin3 进程由于其本身存在漏洞一直占用系统硬件资源,导致其他正常进程无法获取足够硬件资源保持正常运行。最终bin2 进程由于受到bin1 的威胁及bin3 的占用导致无法正常运行,整个装置所有软件功能服务将彻底瘫痪。

1.2 装置功能性

基于Linux 操作系统平台开发的用电类产品在数据采集、大容量存储以及网络传输方面具有一定的优势。用电设备一般通过电力线载波通信方式抄读各个电表或者采集器数据。但随着用户对现场功能需求逐步提高,在某些应用场景下不仅要实现数据就地采集与传输,还需要实现就地线路保护功能,实时监测线路运行状态。当线路发生短路或接地故障时,要求装置能快速检测并切除故障。而Linux系统在实时信号处理方面远不如实时系统。

为解决这一问题,常规做法是再增加1 台专用的配电保护装置,如图2 所示。该装置运行实时系统实现就地故障检测与保护。因此用电类产品主要用于现场终端设备的数据抄读,配电类产品装置则用于对现场用户线路的故障检测与故障切除。对于用户来说就需要维护2 种类型的装置,项目投运初期现场调试较为繁琐。

图2 现场架构示意Fig.2 On⁃site framework

2 边缘计算终端方案实现

针对常规配用电终端装置内部安全性以及功能性方面存在的问题,提出基于边缘计算的终端解决方案,同时采用相互优势融合的设计方案满足现场使用需求。

2.1 安全容器

基于Docker 的安全容器[3]技术,容器内部包含Systemd 系统服务管理软件、日志服务软件、Cron 服务软件等基础工具。虚拟容器[4]在Linux 系统上运行,并拥有独立的内存、硬盘、处理器以及可映射的硬件接口。各种服务程序从源码阶段编译成二进制文件,再经过一定的转换方式将可执行的二进制文件安装到容器中。

装置系统内部容器运行原理如图3 所示,整个系统中首先部署容器运行环境,原有的进程经过一系列的转换成为APP 安装包。在系统内部可根据实际现场运行需要创建多个容器,如Docker 1,Docker 2,…,Docker N。每个容器内部安装多个应用软件APP 1,APP 2,…,APP N。容器与容器之间相互隔离,无法直接进行数据访问与交互[5]。另一方面,每个容器都可以独立进行内存、存储、CPU 使用率上限等参数的设置。当容器中的APP 由于其自身故障导致占用负荷率较高时,会引起容器报警。同时,不同容器之间又是相互隔离的,因此不会影响到其他容器。这就解决了由于某一个进程异常导致整个系统崩溃的问题。

图3 装置系统内部容器运行示意Fig.3 Operation of internal containers in the system

2.2 实时与管理融合

采用基于Linux 系统运行的容器技术,保证了了系统内部各个APP的安全性。但是,Linux操作系统为非实时操作系统,无法在对实时性要求较高的场合使用。而电力系统中的故障判断与保护出口又完全依赖于实时系统进行处理。为此,提出一种将实时处理单元和管理单元融合为一体的边缘计算架构[6-7]。实时系统主要负责实现现场保护功能、采集并计算相关数据以及故障的检测与切除。管理系统负责用电类产品大容量数据采集与存储上传。这样可以在同一个装置中实现多种管理功能,简化现场维护复杂程度,也便于设备资产的管理。

边缘计算装置内部框架如图4所示,将Linux管理系统单元和实时操作系统(RTOS)单元集成在一个硬件平台上,其中前者主要负责接入各种外部设备,采集读取多种终端数据并进行边缘计算处理;后者负责采集当前线路的电压、电流等电气量数据并进行计算,同时根据预设保护逻辑进行实时监控与保护。RTOS 单元可采集故障点前后多个周期的录波曲线,供后续故障分析使用。

2.3 内部通信组件设计

基于安全容器技术设计的软件框架主要特点是各个容器相互隔离,且各APP 之间无法直接进行数据交互。故在解决安全性问题的基础上,还需要在隔离情况下实现数据交互功能。

图4 边缘计算装置内部框架Fig.4 Internal framework of edge computing devices

在系统内部创建一个内部通信组件如图5 所示,该通信组件基于消息队列遥测传输(MQTT)协议实现统一公共服务。这里定义为统一系统业务APP 交互组件(eSDK),该组件内部连接到系统中MQTT 代理服务器。MQTT 消息传输是当前物联网领域使用较多的一种基于“消息主题+消息内容”的传输方式,并以“订阅+接收”的方式接收或者发送数据。容器中的各个APP连接到MQTT代理服务器上,APP 之间通过MQTT 代理服务器进行数据交互,实现安全数据访问。具体数据访问流程是,各个APP 先根据自身需求向MQTT 代理服务器订阅目标主题,代理服务器会将各个APP 的订阅请求和主题记录到本地库中。当其中一个APP 向代理服务器发布主题数据时,代理服务器会根据当前的主题内容匹配本地的主题库,搜索出哪些APP 订阅了该主题,然后将该主题以及携带的数据内容转发给订阅者,这样就实现了容器内部APP之间的数据交互。

图5 内部通信组件示意Fig.5 Internal communication components

内部通信消息主题以路径为分隔符,格式为:{app}∕{operator}∕{infoType}∕{infoTarget}∕{infoPath}其中,app为发送方名称;operator为发送方执行的目标操作,例如设置或者查询等;infoType 代表是事件还是请求类消息;infoTarget 与infoType 相对应表明是响应请求或者是事件应答;infoPath是消息传送的目标方,比如对时则目标是系统时钟。消息体内容采用如下json格式:

"token":"12345",

"timestamp":"2004-05-03T17:30:08Z",

……

"body":消息体

消息内容以json 键值对对应的字符串形式表现,具备一定的可读性。消息体中token字段表示当前消息的序号体,timestamp 字段表示发送该消息的时标,用于标记该消息的产生时间。body 字段内容可根据实际现场应用需求自行定义。例如,设置系统时间的消息可以用如下方式表示:

{app}∕set∕request∕esdk∕clock

"dateTime":"2020-08-08T17:30:08Z",

"timeZone":"Asia∕Shanghai"

eSDK 组件在功能上主要分对上、对下2 种传输,对上完成各个容器中APP 之间数据转发工作,对下实现对装置硬件信息的更改,如修改装置IP 地址、修改串口波特率等。operator字段定义为传输方式,当传输方式是对上传输时,即代表eSDK 组件接收到APP 的消息传输请求,并根据主题中infoTarget和infoPath 来确定消息传递的目标方,再搜索本地消息主题库确定该主题是否被订阅、是否是转发内容。最终根据判断结果将本次消息内容转发给目标容器中的APP;当传输方式是对下传输时,eSDK组件首先判断该发起方APP 是否具有操作权限,并判断硬件的操作参数是否合法。如果权限不足或硬件操作非法则直接将回复操作失败的消息给发送方,如果校验通过则回复操作成功的消息到发送方。本装置中定义修改IP 地址、串口波特率、系统时间以及存储空间告警上限值为高级修改项目,需要较高的执行权限。

3 边缘计算终端硬件实现

3.1 系统硬件设计

前文中已经介绍过,基于安全容器且具备边缘计算的配用电一体化装置需要接入多种外接设备进行大数据采集与存储,同时还要兼备现场故障检测与故障切除的功能。因此,在硬件设计上采用硬件实时系统[8]组合以Linux 系统为主的通信管理系统。实时系统负责进行对实时性要求较高的现场采样与计算,如交采采样、线路保护、故障切除。Linux 管理系统负责进行大数据采集与存储计算[9-10]。硬件核心设计架构如图6所示。

图6 装置硬件核心设计Fig.6 Core design of the hardware of the device

终端硬件方案中,主处理器选择主频为1.2 GHz 的ARM-A7 核心处理器。外部扩展2 GB 的运行内存用于对采集的大量数据进行边缘计算,并根据计算结果再次进行高级应用分析。同时,还需要在外部扩展8 GB 的闪存,用来对外接多种设备采集的数据进行历史存储,便于主站对历史数据进行召唤读取。硬件方案中的从处理器选择CORTEX-M4芯片,该芯片外接AD7606 模数转换芯片并通过电压和电流互感器实现对现场交流电压和电流数据的采集与计算[11],并根据处理器内部的傅里叶算法以及接地算法等计算并判断当前线路中是否存在短路故障或者其他异常情况。同时实时采集外部开入信号,开入信号可以满足国家电网公司2 ms 分辨率要求。主处理器与从处理器之间通过高速通用串行总线(USB)接口进行数据交互,从处理器将采集到的电压和电流数据以及开入信号传输给主处理器。当从处理器检测到线路故障[12]时会根据内部设置的逻辑单元直接进行保护跳闸[13]出口动作,同时记录下当前的故障类型及其发生时间,并对故障点前6 个周波和故障点后8 个周波进行录波操作,将最终记录的故障波形数据传输给主处理器。主处理器通过远传通信传送到远方主站系统。当主处理器接收到远方主站遥控下发的命令后,会通过USB 接口传输控制命令到从处理器端,实现上下交互功能。

3.2 主处理器接口扩展

边缘计算配用电一体化终端[14]在实现实时系统采集保护功能与大数据存储的同时,还需具备接入多种外部设备的能力。由于主处理器自身可供使用的通用异步收发传输器(UART)接口以及串行外设接口(SPI)有限,而在现场实际使用中采集传感器多数以串口作为数据输出途径,因此需要对主处理器进行串口扩展来满足多串口的应用需求,如图7 所示。选用2 片ST16C554 串口扩展芯片,通过8位数据总线连接到主处理器。每片串口扩展芯片可 以 扩 展4 路 串 口,2 片 共 计 扩 展8 路RS232 或RS485 接口,可连接电能表、断路器、智能无功补偿器等外部串口设备。

图7 接口扩展示意Fig.7 Interface extension

4 系统测试结果

测试时在边缘计算终端外接多块电能表模拟台区抄表现场,装置通过网络连接到用电采集主站系统。在用电采集主站系统中根据电表档案信息读取电表当前与历史记录数据,均能正确上传抄读项目数据,结果如图8所示。

通过继电保护测试仪对装置进行加量以测试装置实时采样计算系统功能性,同时通过内部维护工具查看装置对实时采样计算数据的结果,所有计算数据的精度均在0.5%的误差范围内。另外,给外部交采回路施加小电流接地故障特征波形,利用继电保护测试仪的故障回放功能施加故障波形。边缘计算配用电一体化终端能够正确判断识别出故障且上送故障特征录波波形曲线[15-16],波形显示如图9所示。

图8 电表数据抄读效果展示Fig.8 Display of readings on electricity meters

图9 线路故障抓取特征(截图)Fig.9 Feature extraction of line faults(screen shot)

5 结束语

基于安全容器技术实现边缘计算配用电一体化终端装置,在边缘计算层次上采用安全容器对各个APP 进行安全隔离管理,在功能层次上采用实时系统组合管理系统方式,具备多种传感设备接入、大数据抄读、历史数据存储功能以及对现场实时电压、电流等状态数据的采集计算,能监测线路故障特征并对故障点前后波形曲线进行录波操作,为后续故障分析提供一定的研判依据。在实际现场中,1 台装置实现了配电类装置和用电类产品的融合,降低了运维管理部门对多种产品型号的维护与管理成本,也降低了工程人员现场调试复杂程度。

猜你喜欢
进程容器处理器
Different Containers不同的容器
难以置信的事情
债券市场对外开放的进程与展望
中国外汇(2019年20期)2019-11-25 09:54:58
取米
Imagination的ClearCallTM VoIP应用现可支持Cavium的OCTEON® Ⅲ多核处理器
ADI推出新一代SigmaDSP处理器
汽车零部件(2014年1期)2014-09-21 11:41:11
呼噜处理器
小青蛙报(2014年1期)2014-03-21 21:29:39
社会进程中的新闻学探寻
民主与科学(2014年3期)2014-02-28 11:23:03
我国高等教育改革进程与反思
教育与职业(2014年7期)2014-01-21 02:35:04
Linux僵死进程的产生与避免