基于泛在电力物联网架构的智能电量计量终端设计
2020-04-14马青云王永坤潘晓波王丹豪蔡言兴欧阳海林彭道刚
马青云,王永坤,潘晓波,王丹豪,蔡言兴,欧阳海林,彭道刚
(1.国网上海电力公司崇明供电公司,上海 201250;2.上海电力大学 自动化工程学院,上海 200090)
0 引言
用电设备具有分布广、规模大等特点。为了保证当前用户侧用电,在实际使用中需要对用电设备进行分散式监控,电能计量部分成为监控用电设备的重要环节。当前来看,一方面随着交直流输电规模的迅速扩大,分布式发电设备接入类型和数量的快速增加,导致电网复杂程度不断提升,对传统电网提出了新的挑战;另一方面新近出现的人工智能等新技术的发展也对电网的功能和运行方式提出了新的要求,智能化成为了未来电力能源体系发展的大趋势[1]。本文从泛在电力物联网的四层技术架构出发[2],通过了解GPRS(通用分组无线服务)技术在电能采集装置中的应用[3],结合新兴物联网技术[4],总结传统设备设计的优缺点,结合用户侧用电设备的实际情况,提出设计方案。
1 智能电量计量终端硬件设计框架
在本设计中,智能电量计量终端主要由电能计量模块、控制处理模块、有线通信模块和无线通信模块4 个部分组成。其功能为负责参量信号的采集、信号处理、数据传输和指令上传下发等复杂逻辑。电能计量模块采取ADE9153B 芯片及其外围电路为核心;控制模块采用三星公司的S5PV210 芯片作为智能电量计量终端的MCU(微控制单元);有线通信模块采用串行外设接口和通用异步收发传输器;无线通信模块采用GPRS和NB-IoT(窄带物联网)共同进行无线数据的传输。智能电量计量终端装置系统硬件结构如图1所示。
图1 智能电量计量终端硬件结构
1.1 电能计量模块电路设计
电能计量模块原理如图2 所示。电能计量模块采用ADE9153B 作为高精度的电能计量IC(集成电路)芯片,该芯片具有校准功能,其内部原理如图2(a)所示。该芯片所使用的mSure 技术可实现自动校准,校准过程中无需基准量程;内部集成3 个高性能的ADC(模数转换器),具有测量电压、电流、有功功率、频率、功率因数等功能。采用图2(b)为该计量芯片进行电压采集的典型分压电路结构,图中电路采用1 MΩ 电阻和1 kΩ 电阻串联分压;电流测量采用低阻值分流电阻,mSure 电流驱动器的输出端IAMS 连接到分流电阻的负载侧,电流互感器测量零线电流并通过采样电阻进行采样。
图2 电能计量模块原理
在电能计量模块中还有一个MCU 处理器STM32F103RCT6 通过SPI(串行外设)接口读取ADE9153B 的数据,再通过有线通信接口实现嵌入式主控制S5PV210 对电能处理模块的实时控制,且模块预留串口屏幕接口和按键接口,可以实现单模块的运行调试和数据可视化显示。
1.2 本地通信模块
本地通信模块主要应用在电能计量芯片ADE9153B 与子控制器的数据接收,主控制器S5PV210 对电能计量模块的控制这2 个部分。
图3 为本地通信模块原理图。图3(a)为电能计量芯片ADE9153B 与子控制器STM32F103RCT6的数据传输采用的四线制SPI 接口。SPI 接口是一种高速、全双工、同步的通信总线,使用四根线作为硬件连接,节约了芯片管脚,对于单主控的典型场景十分合适。图3(b)为主控制器S5PV210 对电能计量模块进行控制的UART(通用异步收发传输器)接口。UART 接口采用3 线制通信,统一使用TTL 电平的接口方式,简化了硬件连接的复杂度。三线通信主要是电能计量模块控制器的GND 和主控制器的GND 相连,统一零电位;电能计量模块控制器的RX 线和主控制器的TX 相连接,将主控制器所发送的指令信息传送到电能计量模块控制器中;电能计量模块控制器的TX 线和主控制器的RX 相连接,将电能计量模块所得到的数据信息传送到主控制器中。
图3 有线通信模块接线
1.3 无线通信模块
在物联网环境下,万物互联使用GPRS 技术通过GSM 网络实现的数据传输比较普遍。GSM是一个蜂窝网络,也就是说物联网设备需要连接到它能搜索到的最近的蜂窝单元区域。GSM 网络的信号覆盖范围广,传输速率高,且可以使用GPRS 业务的地区也很广泛,这是GPRS 技术通信技术的主要优点;但是相应的,物联网设备终端大都采用GSM 网络,而GSM 网络基站承载能力有限,在运营商网络拥堵的情况下,GSM 网络则会优先保证用户的通话质量,对于GPRS 通信设备存在踢出网络的可能。
NB_IoT 是基于现有技术演变而来,而且是针对于LPWAN(低功率广域网络)概念的技术实现。NB_IoT 技术同样构建于蜂窝网络,可以直接部署于GSM 网络,只消耗180kHz 的带宽。使用NB_IoT 技术的物联网终端功耗非常低;具备大连接特性,对于现有2G,3G 移动网络有50~100倍的用户容量提升,不用担心踢网的可能;广覆盖,NB-IoT 比现有的网络增益20 dB,相当于提升了100 倍的覆盖区域;具备更低的模块成本。但是NB_IoT 对于实时性没有要求,由于NB_IoT的穿透性好,在此过程中会自动的反复发送,只要有一次发送成功就可以,无法保证送达时间。
在本设计中,无线通信模块将采用双模设计:GPRS 通信技术和NB_IoT 通信技术。终端的实时数据传输和指令的下发将优先采用GPRS 通信方式,NB_IoT 则进行数据和指令的验证和备份。此外,对于终端运行多时的打包数据则主要通过NB_IoT 技术进行传输。结合这2 种技术的优势,既可以满足本设计的所有需求,也可以灵活的应对现行NB_IoT 网络未完全覆盖且2G 网络逐渐退出的情况。
图4 为本设计所用的无线通信模块,其中之一为SIM900A,是一款GSM 模块,将GSM 射频芯片、基带处理芯片、存储器、功放器件等集成在一块线路板上,具有独立的操作系统、GSM 射频处理、基带处理并提供标准接口的功能模块;其中之二为NB-IoT 模块NB73,内嵌华为海思芯片,使用UART 通信模式进行模块配置。
图4 无线通信模块示意
本设计通过上述2 种无线通信硬件设备,为物联网协议的实现做了硬件准备,通过软硬件结合可以实现数据的不间断传输,确保数据的准确性、安全性和稳定性。
1.4 控制处理模块
图5 为控制处理模块的核心组成,主要包括这几部分:控制核心三星公司的S5PV210 芯片及其运行最小系统,是基于ARMv7 架构的Cortex-A8 处理器,可以运行经过裁剪的嵌入式Linux 系统,控制电量计量终端的运行、下发指令的执行和数据的事件性上传;UART 为TTL 电平信号,方便数据的接收,简化了硬件复杂度和数据传输协议的复杂度;USB Host 接口为无线通信模块进行AT 指令的直接控制(嵌入式Linux 系统中加载有USB 转RS232 驱动),且模块的通信网络全部通过电信运营商基站进行无线数据的传输,无需自建基站和通信网络,偏远地区也可以使用;报警模块主要是有LED 等加蜂鸣器组成本地故障报警机制;显示模块使用3.5 寸的电阻屏幕,其显示界面使用QT 开发的窗口化进程,同时接收参数的设置信息;RTC 实时时钟用来精确时间;AD/DC 接口用来直接拓展额外功能;按键模块用以调试运行和设置参数;冗余模块包括I/O 接口、JLINK 下载接口,便于实现硬件和功能的拓展加强。
图5 控制处理模块的核心组成
2 无线网络通信
无线网络通信的作用是通过互联网、移动通信网、卫星通信网等基础网络设施,对来自硬件终端的信息进行接入和传输。以泛在电力物联网技术架构的网络层相匹配。在泛在电力物联网的四层架构中,网络层接驳感知层和平台层,具有强大的纽带作用。本设计拟采用双重无线通信方式来保证数据准确性和数据传输的稳定性。在物联网传输协议上,针对于现有的物联网协议进行改进,使之适应本项目数据和指令所需。
2.1 无线通信模块驱动
图6 所示为AT 指令操作无线通信模块的流程,通过AT 指令的简单设置,便可以实现电量计量终端连接蜂窝网络,即为数据可以无线传输到平台提供了必要条件。
图6 无线通信模块AT 指令配置连接网络流程
2.2 无线通信模块网络直连策略
2.1 节验证了使用UART 向无线通信模块逐次发送AT 指令时,可以实现无线通信模块与服务器平台层的连接以及数据的双相传送。但是,在电量计量终端的程序运行过程中,直接使用AT 指令进行多线程的收发数据时,会出现程序处理错误。究其原因为多个AT 指令频繁作用于同一个UART 时,导致指令执行的先后顺序无法得到保证,所以需要一种策略保证在电量计量终端开机时,就自行启动无线通信模块的AT 配置指令,使得电量计量终端获得本地的IP 地址,目的IP 的指向云服务器平台。这样,就可以通过基于socket 的TCP/IP 编程使用多线程实现数据的无错误收发。
针对于上述问题及其出现问题的原因,本设计在电量计量终端的嵌入式操作系统中移植并且改进了PPP 来作为解决方案。这种解决方案针对于其他的嵌入式芯片同样有着重要的指导作用。移植过程中主要是配置拨号要使用的连接脚本,只要用到了3 个文件:pppd,chat 和options。当pppd 程序启动之后,会按照pathname.h 中的内容去所指定的文件位置处寻找options 脚本;然后按照options 脚本的顺序读入参数行,开始配置硬件设备,比如设备的选择,波特率的选取等;chat 脚本用来进行AT 指令的呼叫和控制,在TCP/IP 程序的执行过程中,会移植保持AT 指令对无线通信模块的控制;当pppd 程序执行成功后,联通或者移动的基站分配一个IP 地址作为自己的客户端地址,接下来按照socket 的流程建立客户端与服务器的连接。PPP 协议简化了无线通信模块的操作步骤,且可以保证无线网络的绝对连通性(无外界故障时),软件操作流程可以直接进行基于TCP/IP 的socket 套接字编程,无需再次进行底层AT 指令的直接控制。
2.3 软件数据收发策略
当软件的硬件环境配置完成后,需要从硬件端、云服务器平台端、APP 端配置数据和指令的收发规则。一般通用的实现数据消息推送相关途径有3 种方法:PULL 模式,SMS 模式和推送模式。PULL 模式属于轮询模式,客户端每隔一段时间(固定或者规律)自发的向服务器发起并且建立连接,同时查询是否有新的消息,PULL 方法的好处是实时性好,缺点也比较明显:网络和资源开销大,客户端机制控制不好会使得服务器短时间内收到大量请求;无法确认到达率。SMS 推送模式是当服务器有新消息时,向客户端发送一条特殊指令,终端获取后立即向服务器获取信息。SMS 方法的实时性较好,但是成本较高;推送方式是在客户端和服务器之间形成永久连接,通过长连接进行实时推送。
标准物联网协议之一MQTT 是一个基于发布/订阅模式的“轻量级”推送式的长连接通信协议,该协议构建与TCP/IP 上[5]。MQTT 的最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。从参考文献中可以了解到MQTT 协议具有以下几个特性:使用发布/订阅消息订阅模式,提供了一对多的消息发布,解除了应用程序耦合;对负载内容屏蔽的消息进行传输;使用TCP/IP 数据连接进行数据推送;有3 种消息发布服务质量,分别为“至多一次”“至少一次”“只有一次”;小型传输开销很小(固定长度为2 个字节)[6]。
2.4 数据代理服务器(MQTT Broker)部署
在泛在电力物联网的四层技术框架中,电量计量终端与平台层、应用层进行正常的信息交互是不可避免的问题,技术架构上还需要一个服务器用来进行辅助通信。开源软件Mosquitto 就是其中一种解决方案,且MQTT 协议的实现也需要依靠此开源软件才可以进行正常的信息交互。
本设计所使用的平台层开发平台为Linux(Ubuntu)系统,安装Mosquitto 需要通过引入Mosquitto 仓库并进行更新以后才可以进行安装,其安装过程如图7 所示。
图7 MQTT Broker Mosquitto 在Linux(Ubuntu)系统的部署过程
Mosquitto 足以完成实时性消息的推送服务。图8 显示了一个简单的消息推送系统框架,客户端A(消息发布者)以MQTT 协议格式向服务器发布消息,服务器以MQTT 协议格式将消息推送给客户端B(消息订阅者),图中的箭头代表了消息从发布者到订阅者的流向。
图8 简易消息推送系统框架示意
此外,本设计所使用的MQTT 方案部署在不安全的网络通信环境中,在这种情况下,设备的连接验证和数据的安全性显得十分重要。本设计针对于泛在电力物联网的四层技术架构提供了多个层次的安全防护机制:在网络层中,使用了TLS 加密技术,此加密技术防止了中间人攻击,其生成的客户端证书不仅可以作为设备的身份凭证,还可以用来验证设备的正确性;在应用层中,MQTT 协议提供了客户端标识以及用户名和密码,便于对设备进行验证。
3 软件系统框架
在本设计中,从硬件电路设计为出发点,系统的软件控制逻辑分为2 个较低耦合度的部分:部分1 为本地终端的数据采集控制和MQTT 消息发布框架;部分2 为上层服务数据存储、数据处理和可视化显示部分设计框架。
首先说明数据和指令的流向问题:数据流从下层服务向上层服务进行依次传递,经由电量计量控制器、无线通信模块、服务器,最后到达手机APP 端的可视化界面显示;指令流从最上层服务向下层服务依次传递,经由手机APP、服务器、无线通信模块,最后到达电量计量控制器。
3.1 本地终端软件设计框架
图9 所示为本地终端的软件设计流程,第一步需要进行硬件电路的自检,只有硬件电路连接正确,才可以进行后续的控制。接着智能电量计量终端使用双线程开始运行,在运行过程中子程序之间彼此有数据交互。2 个线程之间的控制逻辑互不干扰,一路线程控制电量数据的读取和MQTT 的数据发布;一路数据专门用来订阅应用层的指令数据,然后通过特定子程序,改变其中的数据和硬件控制状态。
3.2 上层服务软件设计框架
图10 所示为上层服务的软件流程,从图中可知,2 个线程之间的耦合度较高,存在数据和指令的交叉,此时的MQTT 的发布客户端和订阅客户端不仅要处理感知层经过网络成传输上来的数据,还有处理应用层所执行的指令命令和数据库数据的存取。
在研发终端的过程中,将底层设备的控制逻辑和上层服务的控制逻辑进行分离,降低了程序的耦合度,适合于多人开发。底层设备的控制逻辑与上层服务之间的数据交互使用MQTT 的发布/订阅消息实现,简化了交接流程[7]。
图10 上层服务的软件设计流程
4 终端验证分析
综合上述的控制逻辑分析、实际硬件电路搭建和软件编程,构成了智能电量计量终端平台。本设计包括电量计量硬件终端和手机端APP 数据采集显示平台,在实际用电环境中测试,其测试结果表现良好。
表1 为分别使用智能电量计量终端和某品牌计量插座对于实际用电参数的测试结果,其结果表明:智能电量计量终端的测试结果与计量插座的测试结果的误差极小,且与实际用电情况相符合,表征感知层所设计电量采集模块的正确性。
表1 智能电量计量终端和某品牌计量插座的实际电参数测试结果
表2 为智能电量计量终端平台联合调试的测试结果,其中包括电量数据到达平台层的延迟时间、硬件终端响应用户下发的指令数据时间、手机端APP 更新实时数据的延迟时间和显示电量曲线的延迟时间。其结果表明:智能电量计量终端平台可以较好地满足实时性的需求,电量数据可以较快地传输到平台层进行存储,硬件终端可以快速响应手机端APP 所发出的指令数据,平台层数据可以快速在手机端APP 的界面进行显示,表征整个系统的实时性和实用性。
表2 智能电量计量终端平台联合调试的测试结果
5 结语
本设计以泛在电力物联网的四层技术架构为依托,实现了智能电量计量终端硬件平台和软件平台,其测试使用效果良好。
(1)针对于泛在电力物联网架构的感知层,设计了电量参数计量模块,可以准确的测量6 种相关的电量参数,实现了对用电数据的分散性监控。
(2)针对于泛在电力物联网架构的网络层,使用GPRS 和NB_IoT 的双模无线通信技术,辅以可以简化无线通信步骤的PPP 协议和数据加密技术实现了数据的准确传输,并且满足了系统实时性的要求。
(3)针对于泛在电力物联网架构的平台层,通过移植MQTT 代理服务器和数据库设计,实现了电量数据的存储、快速检索和集中统计分析。
(4)针对于泛在电力物联网架构的应用层,使用谷歌新近推出的移动UI 框架Flutter,通过手机端APP 编写,实现了电量数据的可视化显示和用户指令的便捷操作。
通过在实际用电环境下进行测试,验证了智能电量计量终端的实用性效果。