新闻中心
>
性能最强的电力物联网网关是如何炼成的
性能最强的电力物联网网关是如何炼成的
发布:2022-05-31

什么是电力物联网网关

物联网网关是实现感知网络与通信网络,以及不同类型感知网络之间的协议转换的网关设备,既可以实现局域互联,也可以实现广域互联。而电力物联网网关需要支持电力系统常用通信协议如IEC 104协议与各类通用工业通信协议之间的转换,实现可靠高速的电力大数据采集处理,为“双碳”战略背景下电力系统大量新能源的接入调控提供数据基础。


现有电力物联网网关通信实现方式

目前应用最为广泛的电力远动通信协议IEC 104协议多采用阻塞通信方式实现,通信效率较低。所谓阻塞是指会占用I/O资源的任务,比如从网络中获取数据或处理请求、读写文件内容或者到数据库中访问数据,在数据还没有准备好时,CPU会存在一段等待,在数据准备好时,CPU才可以继续执行之后的程序。这种任务可以抽象成一个连续执行的任务中插入了一段阻塞(Blocking)。通信的过程通常包括读取数据、数据解析和计算等多个任务,阻塞通信的实现流程示意图如下图所示:

1653042486(1).jpg

阻塞通信的原理

上图所示通信过程中,一个同步线程先执行了Task1,然后执行了Task2和Task3。Task1中存在一段阻塞,可以用于类比一个从网络中读取数据的操作,而Task2和Task3可以看作是数据解析和计算等其他的任务。在整个通信任务中,Task1中的阻塞让CPU处于空闲状态,浪费了CPU的宝贵资源。因为上一个请求的数据还没处理完,如果此时又有新的数据到达,可能造成数据队列的堆积。


在连接数较多或连续发送的报文量较大的情况下,阻塞I/O的实现方式会造成数据的延迟和资源的浪费,在某些情况下还有可能影响整个系统的运行状态。在未来新型电力系统大量分布式新能源接入及用户侧海量资源被唤醒的趋势下,采用阻塞通信方式存在效率不足、对硬件性能、成本要求高的不足。


如何提升电力物联网网关通信效率

随着网络通信技术的迅速发展,非阻塞通信可解决阻塞通信带来的通信延迟和资源浪费,以满足大规模通信并发和充分利用CPU计算资源。非阻塞下,某个任务的阻塞不会使线程阻塞,而是立即返回,这个返回值可能是一个非法的值,这时线程就可以去执行其他的任务,等到阻塞处有了合法的返回结果后,再去处理结果,继续向下运行。


极简物控团队采用异步非阻塞技术实现电力物联网网关通信协议,显著提升通信效率。异步非阻塞采用异步的方法,在多任务并行的基础上实现。这需要异步运行时来对用户设定的任务进行调度,如果某个任务发生了阻塞,则安排其他任务线程上执行。阻塞处不需要进行轮询查看,而是采用中断的方式。当I/O的数据准备好时,操作系统内核会直接将数据传递到线程,并引发中断,提醒线程数据已经准备好,可以进行后续操作。

1653042669(1).jpg

异步非阻塞通信的原理

如上图所示,线程Thread1执行Task1,遇到阻塞的I/O请求时,将其交给系统内核后就安排执行Task2。I/O得到数据后,将数据拷贝到线程。此时Task2已经执行完,可以继续执行Task1的剩余部分以及后续的任务Task3。


异步非阻塞通信的实现难度较大,异步程序编写复杂,而且需要操作系统底层的I/O支持。但从实现方式上看,异步非阻塞是充分利用CPU资源、支持大规模并发通信的最佳方案。它能够利用等待数据准备好的空闲去执行其他任务,也能通过异步运行时的调度,实现多个数据请求的处理,而且不会带来额外的开销。


基于异步非阻塞技术实现性能最强的电力物联网网关

针对当前基于阻塞I/O技术的通信难以适应新型电力系统海量数据采集处理的问题,极简物控团队完全自主独立研发实现了基于非阻塞通信技术的各类常用工业通信协议,如下表所示,用户在使用时可以根据需要方便地选择配置,实现高可靠、高效率的通信。

研发的电力物联网网关支持多种通信协议配置

通讯协议介绍可配置项
Modbus通讯协议

Modbus TCP/IP服务端

Modbus是一种串行通讯协议,已经成为工业领域通信协议的业界标准。而Modbus TCP/IP是基于以太网TCP的Modbus网络通信协议。当通讯设备作为从站时,采用ModBus TCP/IP服务端通信协议,从站有多个,对主站请求给予相应。1)通道名称;2)连接个数;3)服务端口;4)连接名称;5)测点个数;6)客户端IP;7)客户端端口;8)slave id;9)通信协议: XA;10)一次读寄存器数上限;11)一次读开关数上限;12)一次写寄存器上限;13)一次写开关数上限;14)轮询周期和超时时间;15)通道状态测点号

Modbus TCP/IP客户端

当设备采用TCP网络通信且作为主站时,采用ModBus TCP/IP客户端通信协议。主站唯一,向各从站发送请求帧,主动建立通讯连接。1)连接名称;2)测点个数;3)服务端IP;4)服务端端口;5)slave id;6)通信协议: XA;7)一次读寄存器数上限;8)一次读开关数上限;9)一次写寄存器上限;10)一次写开关数上限;11)轮询周期和超时时间;12)通道状态测点号

Modbus RTU Over TCP/IP服务端

当设备采用TCP网络通信且作为主站时,采用ModBus TCP/IP客户端通信协议。主站唯一,向各从站发送请求帧,主动建立通讯连接。1)通道名称;2)连接个数;3)服务端口;4)连接名称;5)测点个数;6)客户端IP;7)客户端端口;8)slave id;9)通信协议: ENCAP;10)一次读寄存器数上限;11)一次读开关数上限;12)一次写寄存器上限;13)一次写开关数上限;14)轮询周期和超时时间;15)通道状态测点号

Modbus RTU Over TCP/IP客户端

当设备使用TCP层传输Modbus-RTU报文通信且作为主站时,采用Modbus RTU Over TCP/IP客户端通信协议。主站唯一,向各从站发送请求帧,主动建立通讯连接。1)连接名称;2)测点个数;3)服务端IP;4)服务端端口;5)slave id;6)通信协议: ENCAP;7)一次读寄存器数上限;8)一次读开关数上限;9)一次写寄存器上限;10)一次写开关数上限;11)轮询周期和超时时间;12)通道状态测点号

ModBus RTU服务端

Modbus RTU是采用RTU报文的Modbus串口通信协议。当通讯数据量大而且是二进制数值时,多采用该协议。当设备作为从站时,采用ModBus RTU服务端通信协议,每个从站都有唯一编号(即设备地址),对主站请求给予响应。1)通道名称;2)测点个数;3)文件路径;4)波特率;5)slave id;6)通信协议: RTU;7)一次读寄存器数上限;8)一次读开关数上限;9)一次写寄存器上限;10)一次写开关数上限;11)轮询周期和超时时间;12)通道状态测点号

ModBus RTU客户端

当设备采用RTU串口通信且作为主站时,采用ModBus RTU客户端通信协议。主站唯一,通过单播和广播两种方式向从站发出请求。1)通道名称;2)连接个数;3)波特率;4)文件地址;5)连接名称;6)测点个数;7)描述;8)优先级;9)slave id;10)通信协议: RTU;11)一次读寄存器数上限;12)一次读开关数上限;13)一次写寄存器上限;14)一次写开关数上限;15)轮询周期和超时时间;16)通道状态测点号
IEC 104通讯协议

IEC 104服务端

IEC 60870-5-104规约,简称IEC 104,由国际电工委员会制定,该标准为远动信息的网络传输提供了通信规约依据。设备作为服务端采用IEC 104服务端通讯协议。1)通道名称;2)连接个数;3)服务端口;4)连接名称;5)测点个数;6)客户端IP;7)客户端端口;8)通道状态点号

IEC 104客户端

设备作为客户端采用IEC 104客户端通讯协议。1)通道名称;2)服务端口;3)连接名称;4)测点个数;5)服务端IP;6)通道状态点号

DL /T645通信协议

DL /T 645是多功能电能表与数据终端设备进行数据交换式的物理连接和协议的规范和标准。1)通道名称;2)连接个数;3)服务端口;4)文件地址;5)数据位;6)停止位;7)校验位;8)连接名称;9)测点个数;10)slave id;11)客户端端口;12)通道状态点号;13)轮询周期;14)超时时间;15)通道状态测点号

MQTT通讯协议

MQTT协议是一种消息列队传输协议,采用订阅、发布机制,既保证了必要的数据的交换,又避免了无效数据造成的储存与处理,在工业物联网中得到广泛的应用。1)通道名称;2)服务端IP;3)服务端端口;4)测点个数;5)通道状态测点号;6)读主题;7)写主题

以IEC 104协议的非阻塞实现为例,团队将IEC 104规约分为TCP/IP层、应用层、用户进程的三层结构进行设计。以Tokio异步框架为基础,设计非阻塞I/O的网络通信框架,包括客户端的连接和服务端的监听与连接,完成读写的方法设计,能够实现与下层TCP/IP连接的数据交互。通过异步通道,设计了应用层和用户进程两个任务之间的信息共享和命令传输。在应用层的设计中,采用异步和状态机的设计思想,实现了IEC 104协议的链路传输规则、报文的解析和组装、应用功能等。另外,还设计了支持用户使用表格方式简便配置IEC 104规约的方法。

1.png

IEC 104总体结构与数据流向

经一致性测试、性能测试和实地测试结果证明,所研发的IEC 104协议实现了除文件传输以外的所有应用功能,各项参数和功能符合IEC 104协议的规定,具有占用内存小、吞吐量大、延迟低的优势,能够充分利用自身硬件资源。通信软件集成于电力物联网网关后能够与商业软件完成通信,可以在实地稳定运行。下图为所研发网关通信与传统方案的性能对比。

1_看图王.jpg

与传统方案的延迟率对比

如上图所示,当通信负载较高时,所研发网关的延迟率显著低于传统方案。采用的异步非阻塞技术使得物联网网关性能得以发挥至极致,即使在硬件资源受限的条件下,该物联网网关也可以有效发挥其功效,保证通信数据的准确性与实时性。在该技术的支持下,极简物控开发出的物联网网关最小产品仅仅不超过一只手机大小,其可以完全支持各类通信协议下每秒2000测点的实时通信。

X100.png

基于异步非阻塞通信技术的高性能电力物联网网关

以ARM-V7架构的小型电力物联网网关为例,其基本硬件配置如下表所示:

CPU/主频Cortex-A71/1.2GHz
内存150MB
外存4GB
操作系统Armv7l GNU/Linux

使用该网关通过Modbus TCP协议对5000待采集测点以2s为周期进行数据采集,其CPU使用率仅达60%,内存使用率65%,在持续运行的60天中,其CPU及内存使用率基本保持稳定,无大幅波动。

实际工程应用案例

团队研制的电力物联网网关已在广州从化明珠工业园区、国电南自微网、阿里数据中心等多个工程项目中稳定、可靠、高效运行,在实际应用中能够满足用户实时监控、多能互补、故障检测等诸多需求,帮助企业园区转型升级、降本增效。


1.jpg

储能电站项目


展望

基于团队研发的异步非阻塞通信技术,可以实现IEC 104、IEC61850、Modbus、DLT645、MQTT等常用工业通信协议,团队所研制的电力物联网网关中已集成了以上协议,并可支持不同协议的转换发送。在多个实际工程中的应用效果表明所研发的电力物联网网关能够提高电力工业通信各模块之间信息交互的速度和效率,节约更多的系统资源,实现了电力物联网网关性能更强的进一步突破,有效应对新型电力系统海量数据带来的挑战。