基于Modbus协议的电力开关成套设备远程监控系统
2019-01-25施盛华项新建郑永平
施盛华,项新建,郑永平
(浙江科技学院 自动化与电气工程学院,杭州 310023)
随着中国经济的快速发展,电力设备广泛地应用于石油、化工、发电厂及高层建筑等诸多领域[1-2]。电力开关成套设备在电力设备中作为配电、输电和电能转换的关键设备,其稳定安全地运行是用电安全的重要保障[3-6]。因此,构建一个可靠的监控系统对电力开关成套设备运行状态和工作环境实现监控已经成为一个迫切的需求。
目前电力设备监控方式主要有本地存储、有线传输、无线传输。其中本地存储需要人员定期前往现场对数据进行转换和存储,效率低,消息滞后。有线传输发展较为成熟,但是局限性也很明显,存在现场布线困难,施工周期长,安全性低等缺点。无线传输则分为无线射频传输和GPRS网络传输两种,其中无线射频技术虽具备功耗低、抗干扰能力强等优点,但其数据传输距离不足1 000 m,无法满足要求;而GPRS网络是一种稳定性高、覆盖范围广的无线通信方式,因而在远程监控系统中受到广泛应用[7-9]。秦业等[10]设计了一种电力设备运行环境温度的远程监控系统,该系统利用GPRS将温度采集终端与Internet广域网进行数据交互,实现了用户远程对电力设备运行环境的长期、可靠的监控。路小俊等[11]设计了一种基于GPRS通信技术的新型配变远程监控系统,该系统在GPRS技术的基础上结合VPN技术,使得数据传输拥有更高的优先级,远程监控响应更为迅速,传输更加安全可靠。由于电力开关成套设备中存在多个线路,需要对各线路的电力参数进行监测,导致采集节点的分散性,而Modbus总线技术很好地解决了采集设备的分散化[12-14]。在电力监测设备中,不可避免地因为环境因素的干扰或现场的偶然性导致传感器采集结果偏差而引发误报警,从而造成经济损失,因此系统抗干扰措施不可或缺。
基于上述研究,笔者提出一种基于Modbus协议的电力开关成套设备远程监控系统。该系统采用Modbus协议一主多从的方式实时采集设备中多个线路的数据,然后通过GPRS网络技术与远程用户监控终端进行数据交互;在系统的抗干扰措施上,采取在硬件层面上通过隔离,在软件层面上利用一阶后滞滤波算法的方式,实现电力开关成套设备长期、稳定的实时监控与管理。
1 系统的总体架构
图1 系统架构Fig.1 System architecture
基于Modbus总线的电力开关成套设备远程监控系统由3部分组成,分别是电力开关设备数字终端、GPRS通信控制器、远程用户监控终端。各部分设计相对独立,具有良好的可扩展性、可操作性和应用性。系统总体构架如图1所示。为了显示方便,架构图中将开关设备内的电力开关设备数据终端置于外部,实际位于开关成套设备内。电力开关设备数字终端通过多个采集子模块的传感器获取开关设备内多线路的电力参数,将获取的参数信息进行分析处理,然后通过Modbus总线集中传输给主控模块进行数据统一管理。主控模块通过串行技术将这些参数传送给GPRS通信控制器,由其负责完成数据的远程传输。远程用户监控终端在PC上运行,其通过Socket技术与GPRS通信控制器建立稳定的连接,从而实现在远程实时监控电力开关成套设备的运行状态。
2 系统设计
2.1 监控系统硬件设计
2.1.1 电力开关设备数字终端
电力开关设备数字终端不但需要实时获取开关设备各个电力参数信息,而且需要采集多条线路的参数,所以不仅设计了多个可以获取信息的采集子模块,还添加了可以与多个采集子模块通信、与GPRS控制器数据交互的主控模块。
采集子模块采用高精度的三相电能芯片AT7022B,它能将采集电路中三相电压、电流进行模数转换并采样,通过对数据的处理得到各相的有功功率、无功功率、视在功率,同时还能测量各相电流与电压的有效值、功率因数、相位角、频率等参数。考虑到处理的参数较多,采集子模块搭载了STC15F2K60S2微处理器,与AT7022通过SPI总线建立通信从而进行数据交互。在电压、电流采样电路中,采用互感器接入方式,将芯片与电网进行隔离,从而获得良好的抗干扰能力。为了实现与主控模块通信,外部还扩展了Modbus(RS485)总线通信,同时添加MAX485芯片将RS485总线输出的差分数据电平转换成TTL电平使得能与微处理器进行数据交互。采集子模块硬件原理如图2所示。
图2 采集子模块硬件原理Fig.2 Hardware principle of the collector module
主控模块搭载STC15F2K60S2微处理器,该单片机是宏晶科技有限公司(STC)生产的单时钟/机器周期为1T的单片机,指令代码完全兼容传统8051,但速度快7~12倍,同时内部集成高精度R/C时钟,范围在5~35 MHz,支持两个完全独立高速异步串行通信端口,能够高速稳定地对数据进行收发和处理[15]。为了能与多个采集子模块通信,外部扩展了485集线器,能够将外部多条采集子模块RS485线转换为一个RS485主线,从而与主控模块连接通信,以此为硬件基础实现一主多从的Modbus通信传输。主控模块不仅需要收发来自采集子模块的数据,还需要与GPRS通信控制器通信。基于GPRS的全双工数据传输,采用RS232接口的方式进行连接,在主控模块上添加MAX232芯片完成传输电平的转换。温度传感器DS18B20实时对温度进行检测。主控模块硬件原理如图3所示。
图3 主控模块硬件原理Fig.3 Main control module hardware principle
2.1.2 GPRS通信控制器
GPRS通信控制器的设计采用厦门灵旗通信有限公司的LQ1000 GPRS DTU模块,该模块采用先进的GPRS无线通信技术[16]、嵌入式单片机技术和TCP/IP网络通信技术,无需用户再对其进行硬件开发,可直接进行无线数据透传。该模块的使用只需要利用灵旗通信开发的上位机软件,通过串口的方式设置IP、心跳包等相关参数,然后放置好SIM卡即可使用。具体的工作过程为,该远程模块与电力开关设备数字终端中的主控模块通过RS232连接完成数据的接收工作,然后利用GPRS网络向远程用户端发送数据。
2.2 监控系统软件设计
2.2.1 Modbus通信协议
Modbus协议采用Master-Slave技术,允许一个主机和一个或多个从机通信来完成编程、数据传送、程序上传/下载和主机操作[17]。每个从设备须要有不同的地址编号1~247,通过地址识别来决定要产生何种行动。从机与主机采用命令/应答方式,每一种命令信息对应一种应答信息。主机发出命令信息,从机按照命令信息与自身地址判断,若地址匹配才发送应答信息进行响应。Modbus通信协议支持2种传输模式:RTU模式和ASCII模式。由于ASCII模式的数据字节是7 bit数据位,单片机无法实现,而且通信速率较慢,所以本系统采用RTU模式。
采用Modbus RTU模式需要按照一定的协议格式。Modbus RTU数据帧分为地址码、功能码、数据部分、CRC校验码4个部分,地址码长度为1 B,功能码长度为1 B,数据部分长度不定,CRC校验码长度为2 B,两个数据帧之间至少有传输3.5 B数据的间隔时间[18]。其中功能码种类理论上可达256个,本系统主要使用功能码03H和06H来实现对采集子模块的数据读出和写入。
2.2.2 数字终端程序设计
程序设计中采集子模块与主控模块的通信是建立在Modbus协议之上的。将采集子1模块地址设为01,由于需要读取电压、电流、相位角、功率因数、有功功率、无功功率、视在功率这7个参数,同时为了保证精度,将AT7022获取的参数分为整数和小数两部分。以300.38电压为例,将300转化为16进制即12C,小数部分38转化为16进制的26,将12C存入0000寄存器,26存入0001寄存器,于是一个参数需要2个寄存器。因为是三相的参数,每相都有7个参数,总共需要2×7×3=42个寄存器来存储参数。读取参数时主从机数据帧格式见表1。
表1 读取参数时主从机数据帧格式Table 1 Data frame format of master and slave computer while reading parameters
其中01为设备地址,03为读寄存器功能码,其后的00 00为读寄存器的起始地址,00 2A为读取42个寄存器的数值,65 CB为CRC校验码由相关算法计算出。从机的84表示发送84字节数据(1个寄存器包含2个字节数据),01 2C 00 26表示读取到的A相电压值300.38,之后数据依次为A相电流、相位角、功率因数、有功功率、无功功率、视在功率。B相与C相也同A相参数顺序一样依次向后排列。表中其余20个参数以省略号代替。
为了保证数据的可靠性,当写入参数时从机会回复主机相同的数据帧,数据帧格式见表2。根据Modbus协议,当写寄存器的时候,从机成功完成该指令的操作后,会把主机发送的指令直接返回。其中06为写寄存器功能码,其后数据部分的00 00为写寄存器的地址,00 01为写入寄存器的数值。在本设计中00 01为合闸指令,数值00 00为关闸指令。
表2 写入参数时主从机数据帧格式Table 2 Data frame format of master and slave computer while writing parameters
根据Modbus协议制定通信规则后,描述采集子模块程序流程,流程如图4所示。采集子模块上电后,首先进行定时器、串口等相关参数初始化,其中串口波特率设置为9 600 bit/s,初始化后对AT7022进行校表。然后不断更新来自AT7022的电力参数并对数据进行存储。当接收到数据时,进入串口中断,对收到的数据进行存储。当收到一帧数据时,对该帧数据进行判断。若符合本机地址,则根据上述规则返回指令并执行相应关合闸操作。
主控模块上电后,首先进行参数初始化,主控模块程序流程如图5所示。其中串口1与RS485/Modbus总线相连,串口2通过RS232与GPRS端相连,波特率均为9 600 bit/s。然后等待消息到来,当收到消息时判断是来自串口1还是串口2,若是串口1的消息则对数据进行处理后发送给GPRS传输端,若是来自串口2的消息,则将消息进行处理转换成Modbus指令发送给采集子模块。
图4 采集子模块程序流程Fig.4 Process of collecting sub module
图5 主控模块程序流程Fig.5 Process of main control module
2.2.3 抗干扰措施
由于外界环境干扰和供电电源不稳定等容易导致传感器采集的数据波动,引起误差,本系统所采用的采集模块通过互感器接入的方式使得芯片与电网进行隔离,在硬件层面上具备抗干扰的能力,同时在软件层面上引入一阶后滞滤波算法:
Yn=αXn+(1-α)Yn-1。
(1)
式(1)中:α为滤波系数,Xn为本次采样值,Yn-1为上次滤波输出值,Yn为本次滤波输出值。
主控模块将采集模块传来的数据通过一阶后滞滤波算法处理后,数据更加平滑,减少由数据波动引起的误差。经过大量试验,当α=0.4时,采集结果与电表测量值更为接近,因此本系统采用α=0.4作为滤波系数值。
2.2.4 远程用户监控终端软件设计
远程用户监控终端采用Microsoft推出的Visual Studio 2012上的MFC平台下开发的基于TCP/IP协议栈的网络编程,采用C/S模式,同时结合Access 2008数据库实现对数据的管理存储。主界面包含各线路电力参数显示、闸门状态及控制、数据库管理、报警阈值设定、电力开关设备温度信息等。其中电力参数信息通过手动操作实时获取,数据库可以查询历史的各个电力参数,同时为了保障数据安全,添加用户密码设置,用户可简单快捷修改数据库密码。由于网络链路的不稳定性,常常出现在通信过程中连接断开的情况,为了改善这种情况,采用心跳包的机制。若每隔60 s能收到心跳包,界面中的网络状态则变绿,指示当前连接正常,此时用户方可对电力开关设备实现远程监控;否则网络状态变红,指示连接异常。
3 系统性能测试与运行测试
3.1 电力参数性能测试
利用北京北研兴电力仪表有限责任公司生产的BY2083C三相精密电源与福禄克电表对监控系统的电气参数性能进行测试,结果见表3~4。
表3 主进线电路与配电电路电力参数性能测试Table 3 Power line parameter performance test of main incoming circuit and distribution circuit
表4 动力照明电路与补偿电路电力参数性能测试Table 4 Power lighting circuit and compensation circuit power parameter performance test
由测试结果可以看出,监控系统对电力参数的测量精度较高,其中电压测量误差均小于1%,电流测量误差小于2%,相位角的误差也小于1%。此外,无功、有功、视在功率等参数也较为准确,能够满足实际需求。
3.2 运行测试
为测试本系统的实际效果,在室内搭建系统平台并连续运行200 h,每隔12 h对系统进行远程监控,有效应答率为100%,这表明系统能够长时间稳定运行。实际运行时远程监控终端界面如图6所示。
图6 远程监控终端界面Fig.6 Remote monitoring terminal interface
4 结 语
本研究针对现有电力开关成套设备远程监控系统中存在的问题,结合监控系统的应用需求提出一种基于Modbus总线的多线路电力开关设备远程监控系统设计方案。该系统搭载AT7022计量芯片保证了其高精度;通过Modbus总线作为采集模块与控制模块的通信方式解决了传统开关设备中多线路采集延时、数据丢包等问题;同时利用GPRS无线传输克服了电力系统现场布线困难、安全性低等缺点;远程用户监控终端界面友好、操作简单。在对该系统进行性能测试与运行测试后,结果表明系统测量精度高、数据传输稳定、操作维护方便,适用于各类多线路电力开关成套设备的远程监控与管理。