电力物联网关.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

什么是电力物联网网关

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

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

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

阻塞通信的原理

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

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

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

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

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

异步非阻塞通信的原理

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

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

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

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

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

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

您可能关注的文档

文档评论(0)

赣州小李 + 关注
实名认证
内容提供者

成套,试验,调试,监控

1亿VIP精品文档

相关文档